第八章维护
软件生命周期——软件维护
问题定义软件维护
?软件交付用户使用之后进入软件生命周期的最后
可行性研究一个阶段——软件运行维护。
软件定义时期?软件维护的基本任务是保证软件在相对较长的一
需求分析
段时间内能够正常运行。
?软件维护的工作量大(占软件总工作量的4倍左
总体设计
右),成本高(占整个软件成本的60%以上)。
?好的开发和好的维护可延长软件的生命期。
详细设计
软件开发时期
编码与单元测试
综合测试
软件维护时期
软件维护
第8章维护
8.1软件维护的定义
8.2软件维护的特点
8.3软件维护过程
8.4软件的可维护性
8.5预防性维护
8.6软件再工程过程
8.7小结
8.1软件维护的定义
?软件维护定义
–所谓软件维护就是在软件已经交付使用之后,为了改
正软件错误和满足新的需求,保证软件在相当长的时期
能够正常运作所进行的软件活动。
?维护的类型有四种:
–改正性维护:修改软件改正软件中固有的错误。
–适应性维护:修改软件使之适应变化了的运行环境。
–扩充与完善性维护:对软件扩充新功能和修改已有功能
以满足用户的新要求。
–预防性维护:修改软件以满足可能的未来对软件新版本
的需求。
4
改正性维护CorrectiveMaintenance
?在软件交付使用后,因开发时测试的不彻底
、不完全,必然会有部分隐藏的错误遗留到
运行阶段。
?这些隐藏下来的错误在某些特定的使用环境
下就会暴露出来。
?为了识别和纠正软件错误、改正软件性能上
的缺陷、排除实施中的误使用,所进行的诊
断和改正错误的过程就叫做改正性维护。
适应性维护AdaptiveMaintenance
?在使用过程中,外部环境(新的硬、软件配
置)、数据环境(数据库、数据格式、数据
输入/输出方式、数据存储介质)可能发生
变化。
?为使软件适应这种变化,而去修改软件的过
程就叫做适应性维护
扩充与完善性维护PerfectiveMaintenance
?在软件的使用过程中,用户往往会对软件提
出新的功能与性能要求。
?为了满足这些要求,需要修改或再开发软件
,以扩充软件功能、增强软件性能、改进加
工效率、提高软件的可维护性。
?这种情况下进行的维护活动叫做扩充与完善
性维护。
预防性维护PreventiveMaintenance
?预防性维护是为了提高软件的可维护性、可
靠性等,为以后进一步改进软件打下良好基
础。
?预防性维护定义为:采用先进的软件工程方
法对需要维护的软件或软件中的某一部分(
重新)进行设计、编制和测试。