本文用书:《软件工程导论》 第六版 清华大学出版社
1、软件维护的定义
2、了解软件维护的特点
3、软件维护过程中维护组织包括哪些人员?
4、决定软件的可维护性的因素有哪些?
5、软件再工程过程
第八章 维护
8.1 软件维护的定义
1.软件维护:指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。
(1)完善性维护:扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要。
(2)纠错性维护:对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。
(3)适应性维护: 要使运行的软件能适应运行环境的变动而修改软件的过程。
(4)预防性维护:为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。
8.2 软件维护的特点
1.结构化维护与非结构化维护差距巨大
(1)结构化维护:指软件开发过程是按照软件工 程方法,软件的维护过程,有一整套完整的方案、技术、审定过程。
(2)非结构化维护:缺乏必要的文档说明,难于 确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。
2.维护的代价高昂
3.维护的问题很多
8.3 软件维护的过程
1.维护组织人员:维护管理员、系统管理员、变化授权人。
2.维护报告
3.维护的事件流
4.保护维护记录
5.评价维护活动
8.4 软件的可维护性
1.决定软件可维护性的因素:
(1)可理解性;
(2)可测试性;
(3)可修改性;
(4)可移植性;
(5)可重用性。
2.文档:
(1)用户文档:主要描述系统功能和使用方法,并不关心这些功能是怎样实现的
(2)系统文档:系统文档描述系统设计、实现和测试等各方面的内容
3.可维护性复查
8.5 预防性维护(略)
8.6软件在工程过程
1.库存目录分析:
每个软件组织都应该保存其拥有的所有应用系统的库存目录。该目录包含关于每个应用系统的基本信息;对库中每个程序都做逆向工程或再工程是不现实的。
下述3类程序有可能成为预防性维护的对象:
(1) 预定将使用多年的程序;
(2) 当前正在成功地使用着的程序;
(3) 在最近的将来可能要做重大修改或增强的程序。
2.文档重构:
老程序固有的特点是缺乏文档。具体情况不同,处理这个问题的方法也不同:
(1)建立文档非常耗费时间,不可能为数百个程序都重新建立文档。
(2)为了便于今后的维护,必须更新文档,但是由于资源有限,应采用“使用时建文档”的方法,也就是说,不是一下子把某应用系统的文档全部都重建起来,而是只针对系统中当前正在修改的那些部分建立完整文档。
(3)如果某应用系统是完成业务工作的关键,而且必须重构全部文档,则仍然应该设法把文档工作减少到必需的最小量。
3.逆向工程:
是分析程序以便在比源代码更高的抽象层次上创建出程序的某种表示的过程,也就是说,逆向工程是一个恢复设计结果的过程,逆向工程工具从现存的程序代码中抽取有关数据、体系结构和处理过程的设计信息。
4.代码重构:
是最常见的再工程活动。某些老程序具有比较完整、合理的体系结构,但是,个体模块的编码方式却是难于理解、测试和维护的。在这种情况下,可以重构可疑模块的代码。
5.数据重构:
对数据体系结构差的程序很难进行适应性修改和增强,事实上,对许多应用系统来说,数据体系结构比源代码本身对程序的长期生存力有更大影响。
6.正向工程:
正向工程也称为革新或改造,这项活动不仅从现有程序中恢复设计信息,而且使用该信息去改变或重构现有系统,以提高其整体质量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)