软件工程方法与奥践 第8章软件维护 子教
软件工程方法与实践 第 8 章 软件维护 电 子教 案
第8章软件维护 8.1软件维护概述 ⊙82软件维护类型 8.3软件维护技术 ⊙84小结
第 8 章 软件维护 8.1 软件维护概述 8.2 软件维护类型 8.3 软件维护技术 8.4 小结
8软件维护概述 从软件(产品)交付使用,即发布之日起,到软件被废止 使用,整个运行期间为软件维护阶段。 从软件工程的角度,软件产品投入运行,随着运行时间的 推移还会发生变更(或称为演化)。软件产品在运行期间 的演化过程就是软件维护过程。无论软件(产品)的规模 怎样,开发一个完全不需要改变的软件是不可能的。即使 到了软件运行期,软件还是在不断进化以适应变更的需求。 所以,软件维护是一个不可避免的过程
8.1 软件维护概述 从软件(产品)交付使用,即发布之日起,到软件被废止 使用,整个运行期间为软件维护阶段。 从软件工程的角度,软件产品投入运行,随着运行时间的 推移还会发生变更(或称为演化)。软件产品在运行期间 的演化过程就是软件维护过程。无论软件(产品)的规模 怎样,开发一个完全不需要改变的软件是不可能的。即使 到了软件运行期,软件还是在不断进化以适应变更的需求。 所以,软件维护是一个不可避免的过程
811维护阶段的任务 软件维护是指在软件维护阶段对软件产品所进行的 系列维护活动。因为软件(产品)不仅仅包括程序, 任何对文档、手册或产品其他组成部分的修改也都属 于软件维护范围。 软件维护阶段变更演化软件的基本目标: ①改正错误、优化软件、增加功能,提高软件产品质 量 ②延长软件寿命(软件生存周期),提高软件产品的 价值
8.1.1 维护阶段的任务 软件维护是指在软件维护阶段对软件产品所进行的一 系列维护活动。因为软件(产品)不仅仅包括程序, 任何对文档、手册或产品其他组成部分的修改也都属 于软件维护范围。 软件维护阶段变更/演化软件的基本目标: ① 改正错误、优化软件、增加功能,提高软件产品质 量; ② 延长软件寿命(软件生存周期),提高软件产品的 价值
811维护阶段的任务 变更演化软件的维护活动的任务,包括: ①提出维护申请; ②论证维护申请; ③制定维护方案; ④进行维护活动; ⑤建立维护文档; ⑥评价维护结果。 从软件工程的角度,一项软件维护任务,又好似重复了 个从“问题提出→需求分析→设计→实现→验收”的 软件开发全过程
8.1.1 维护阶段的任务 变更/演化软件的维护活动的任务,包括: ① 提出维护申请; ② 论证维护申请; ③ 制定维护方案; ④ 进行维护活动; ⑤ 建立维护文档; ⑥ 评价维护结果。 从软件工程的角度,一项软件维护任务,又好似重复了 一个从“问题提出→需求分析→设计→实现→验收”的 软件开发全过程
812软件维护的特点 ①软件维护是软件生产性活动中延续时间最长、工作量 最大的活动。所以,软件维护是使软件成本大幅度上升 的重要因素。 ②软件维护不仅工作量大、任务重,如果维护得不当, 还会产生一些副作用,甚至引入新的错误。因此,软件 维护直接影响软件(产品)的质量和使用寿命,维护活 动必须慎之又慎
8.1.2 软件维护的特点 ① 软件维护是软件生产性活动中延续时间最长、工作量 最大的活动。所以,软件维护是使软件成本大幅度上升 的重要因素。 ②软件维护不仅工作量大、任务重,如果维护得不当, 还会产生一些副作用,甚至引入新的错误。因此,软件 维护直接影响软件(产品)的质量和使用寿命,维护活 动必须慎之又慎
812软件维护的特点 ③软件维护活动实际是一个修改和简化了的软件开发过 程。软件开发的所有环节,如分析、设计、实现和测试 等几乎都要在维护活动中用到。 ④软件维护和软件开发一样,都要采用软件工程原理和 方法。这样才可以保证软件维护的标准化、高效率,从 而降低维护成本
8.1.2 软件维护的特点 ③ 软件维护活动实际是一个修改和简化了的软件开发过 程。软件开发的所有环节,如分析、设计、实现和测试 等几乎都要在维护活动中用到。 ④ 软件维护和软件开发一样,都要采用软件工程原理和 方法。这样才可以保证软件维护的标准化、高效率,从 而降低维护成本
813软件可维护性 ◆在软件工程领域,软件的可维护性是衡量软件(产 品)维护容易程度的一种软件质量属性。 软件的可维护性对于延长软件的生存期具有决定性的 意义。它是软件开发各个阶段,甚至各项开发活动 (包括维护阶段的维护活动)的关键目标之一。 ◆软件可维护性是指纠正软件的错误和缺陷,为满足 新要求或环境变化而进行修改、扩充、完善的容易程 度。软件可维护性定义为软件的可理解、可测试、可 修改性的难易程度
8.1.3 软件可维护性 ◆在软件工程领域,软件的可维护性是衡量软件(产 品)维护容易程度的一种软件质量属性。 软件的可维护性对于延长软件的生存期具有决定性的 意义。它是软件开发各个阶段,甚至各项开发活动 (包括维护阶段的维护活动)的关键目标之一。 ◆软件可维护性是指纠正软件的错误和缺陷,为满足 新要求或环境变化而进行修改、扩充、完善的容易程 度。软件可维护性定义为软件的可理解、可测试、可 修改性的难易程度
813软件可维护性 可维护性既是软件(产品)质量的属性之一,又和其他 软件质量属性有相当密切的关系。定义或影响软件可维 护性的质量属性有: ◆可理解性是指人们通过阅读源代码和相关文档,了解 程序功能、结构、接口和内部过程的容易程度。 ◆可测试性是指论证程序正确性的容易程度。程序复杂 度越低,证明其正确性就越容易。 ◆可修改性是指程序容易修改的程度。一个可修改的程 序应当是可理解的、通用的、灵活的和简单的
8.1.3 软件可维护性 可维护性既是软件(产品)质量的属性之一,又和其他 软件质量属性有相当密切的关系。定义或影响软件可维 护性的质量属性有: ◆可理解性是指人们通过阅读源代码和相关文档,了解 程序功能、结构、接口和内部过程的容易程度。 ◆可测试性是指论证程序正确性的容易程度。程序复杂 度越低,证明其正确性就越容易。 ◆可修改性是指程序容易修改的程度。一个可修改的程 序应当是可理解的、通用的、灵活的和简单的
813软件可维护性 ◆可靠性是指一个程序按照用户的要求和设计目标,在 给定的一段时间内正确执行的概率。 ◆可移植性表明程序转移到一个新的计算机环境的可能 性的大小,或者表明程序可以容易地、有效地在各种各 样的计算机环境中运行的容易程度。 ◆可使用性是从用户的观点,定义程序方便、实用,以 及易于使用的程度。 ◆效率表明一个程序能执行预定功能而又不浪费机器资 源的程度。机器资源包括内存容量、外存容量、通 道容量和执行时间等
◆可靠性是指一个程序按照用户的要求和设计目标,在 给定的一段时间内正确执行的概率。 ◆可移植性表明程序转移到一个新的计算机环境的可能 性的大小,或者表明程序可以容易地、有效地在各种各 样的计算机环境中运行的容易程度。 ◆可使用性是从用户的观点,定义程序方便、实用,以 及易于使用的程度。 ◆效率表明一个程序能执行预定功能而又不浪费机器资 源的程度。机器资源包括内存容量、外存容量、通 道容量和执行时间等。 8.1.3 软件可维护性