软件的可维护性

软件的可维护性

软件具有可维护性由三个因素决定

  • 可理解性
  • 可测试性
  • 可修改性

软件维护的分类

纠错型维护

虽然经过严格的测试,不能保证软件彻底没有错误,随着运行时间的延续,数据量的积累,应用环境的变化,软件错误仍会顽固暴漏出来,此时就要进行纠错型维护。

适应型维护

伴随计算机硬件的新产品,操作系统的新版本不断推出,正在运行的软件必须进行适应性维护。

完善型维护

用户逐渐熟悉软件以后,会提出一些改进需求,为了满足这些需求,必须进行完善性维护,这样的维护工作量占到一半以上。比如打印格式调整,统计口径增加,业务流程完善等。

预防型维护

潜在错误成为实际错误之前,修改和更正

影响软件维护的工作量的因素

  • 编码格式混乱,注释不清
  • 开发混乱,导致软件复杂度增加,从而使维护人员理解软件的难度增加
  • 软件本身质量(设计质量、代码质量、文档质量和测试质量)
  • 维护人员对软件的熟悉程度
  • 系统的类型不同,维护工作量也有区别(一个系统越依赖于真实世界,就越可能发生变化,也就需要- 更大的维护工作量),抽象系统维护工作量最小,模拟系统维护工作量最大
  • 维护工作是否规范,是否按软件工程的正确方法进行,对后续的维护工作量影响不可忽视
  • 硬件因素,不可靠的硬件系统会使软件系统产生令人恼火的随机性的问题,使追踪问题的根源更加困难

软件维护作业的实施和管理

建立维护组织

维护管理员
维护配置员
维护负责人1及其小组
维护负责人2及其小组
维护负责人3及其小组
有实力的企业应该建立专业的维护部门,组建维护小组,明确维护流程,专设维护配置员

提出维护需求

用户提出问题->提交维护管理员->根据维护小组分工->转交相应维护小组->由负责人组织实施维护作业->维护配置员进行资源配置管理

实施维护作业

确认维护需求->制定维护计划->编码->测试->交付用户

记录维护要素

及时记录维护有关信息,考查维护技术的有效性,估计软件“优良”程度,确定维护实际代价

评价维护活动

借助于维护记录,对维护工作做一些定量的统计,维护分类占比,最终强化技术培训或者优化资源或合理规划维护工作量

软件正式交付用户以后,进入漫长的维护期。此阶段,基本任务是保障正常运行。软件维护的工作量很大,随着时间的推移,软件维护对开发商带来的成本压力也很大。现在许多软件开发商要把70%的工作量用在维护已有软件上,调查统计,大型软件维护成本高达开发成本的4倍左右。

软件的可维护性