—已有的软件构件随着时间的流逝会逐渐变得不可 使用,如何对它们进行维护,以延长其生命期,充分利用 这些可复用构件?
改正性维护占全部维护量的比率已从80年代初 的20%大幅度下降, 90年代初一些公司的产品 差错率已接近于零
内容: (1)所需要修改的性质; (2)申请修改的优先级; (3)为满足某一项维护申请所需要的工 作量; (4)预计修改后的状况。
程序标识 源程序语句数目 机器代码指令条数 ....... .......
软件维护是在软件已交付给用户使用后,为了改正错误 ,或者满足用户新的需求而修改软件的过程。软件维护 一般不包括重大体系结构的修改。
软件维护的原因: ·修改软件中的错误; ·软件运行环境发生了变化; ·用户要求增加软件新的功能或提高软件的性能。
软件可移植性表明程序能转移到另一个新环境的可能性大小,或 者表明程序可以容易地、有效地在各种各样的计算环境中运行的 容易程度。一个可移植的程序应具有良好的结构和灵活性,即不 依赖具体的硬件环境或操作系统。
软件的效率表明了一个程序能完成预定的功能,但又不浪费资源 的程度。这些资源可以包括机器的内存容量、外存容量、通道容 量等,以及执行时间。
建立明确的软件质量目标和优先级 使用提高软件质量的技术和工具 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档 开发软件时考虑到维护
—现有软件系统如何适应当前技术的发展及需求的 变化,采用更易于理解的、适应变化的、可复用的系统 软件构架并提炼出可复用的软件构件?
·文档验收。经过修改的软件交付给用户前,维护主管 部门要检查文档。例如,所有的文档是否完备,是否更 新,文档与程序是否一致;全部的测试用例和测试结果 是否都正确记载;软件配置是否都有了副本;维护的工 序和责任是否已经确定。
1年-10年 运行和维护其(它简维称护维护) 改善期 稳定4期% 陈旧期
影响软件维护工作量的因素: ·系统的大小。 ·程序设计语言。 ·系统的年龄。 ·数据库技术的应用。 ·先进的软件开发技术。 ·其他因素。例如,在程序中使用的数学模型、 任务的难度、IF嵌套的深度开关和标记等等,都 会对维护工作有影响。
可理解性表明人们通过阅读源代码和相关的文档,了解 程序功能以及如何运行的容易程度。例如,模块化、程 序设计风格,程序结构化、完整性等。
可靠性表明一个程序按照用户的要求和设计目标,在给 定的一段时间内正确执行的概率。可靠性是度量软件整 体质量的一个重要指标之一,
可测试性表明论证程序正确性的容易程度。一个可测试 程序应当是可理解的、可靠的、简单的。因为程序越简 单,要证明它的正确性就越容易;要设计有效的和合适 的测试用例,重要的是要理解程序。
软件可修改性表明程序容易修改的程度。一个可修改的程序,应 该具有可理解性、通用性、灵活性等等。通用性是指程序适用于 各种功能变化而无须修改;灵活性是指能够容易地对程序进行修 改。
软件的可用性定义为程序方便、实用、易使用的程度。例如,界 面友好、具有在线帮助功能、容错性好等维护工程,不因为用户的误操作 而陷入混乱状态。
可供参考的度量值是: (1)程序每次运行的平均失效的次数; (2)各类维护活动所花费的总“人时”数;
(5)维护每一种语言的程序所花费的“人时 ”数; (6)维护申请报告的平均处理时间; (7)各类维护申请的百分比。
(4)无文档或不全. (5)软件人员流动性大. (6)设计时未考虑修改需要,修改困难. (7)维护工作无吸引力,缺乏成就感.
软件可维护性是指纠正软件系统出现 的错误和缺陷,以及为满足新的要求 进行修改、扩充或压缩的容易程度。
·静态确认。在软件修改时,可能会产生新的错误,为 此,要进行必要的检查。
·计算机确认。通过计算机对修改的程序进行确认测试 。例如,要确认测试的顺序,首先测试经过修改的部分 ,再测试没有修改的部分,然后,把它们集成起来测试 ;准备好标准的和有效的测试用例;充分利用软件工具 帮助测试;在确认测试过程中,邀请用户参加。