�� 软件维护费用的上升,还只是软件维护的有形成本,而其他非直接的的维护成本有更大的影响。例如,无形的成本可以是:
��1、一些看起来是合理的修复或修改请求不能及时安排,使得客户不满意;
��2、变更的结果可能把一些潜在错误引入软件,降低了软件的整体质量;
��3、把软件人员抽调到维护工作中去时,就使得软件开发工作受到干扰。
��软件维护的费用之所以上升是由于软件维护的生产率非常低。例如,1976年美国的飞行控制软件中每条指令的开发成本是75美元,而维护成本则是每条指令大约4000美元,生产率下降了50倍。
��软件维护工作可以分成生产性活动和非生产性活动。生产性活动包括软件的分析和评价、设计修改和实现;而非生产性活动包括理解程序代码功能、判明数据结构、接口特性、性能界限等。下面给出一个维护工作量的估算模型: |
|
��其中,M是维护的总工作量,p是生产性活动的工作量,K是一个经验常数,c是因缺乏好的设计和文档而导致复杂性的度量,d是对软件熟悉程度的度量。
��这个模型表明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则c增大,d降低,维护工作量(及成本)将按指数级增加。
�� |
|