第八章软件维护
- 格式:ppt
- 大小:1.25 MB
- 文档页数:32


第11章 软件维护
第11章 软件维护
11.1 软件维护包含哪些类型?这些类型的维护是什么情况下实施的?其中哪一类型的实施工作量最大?
根据维护工作的性质,软件维护的活动可以分为以下4种类型:
1)改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,而进行的诊断和改正错误的过程,称为改正性维护。
2)适应性维护:随着信息技术的飞速发展,软件运行的外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而修改软件的过程叫做适应性维护。
3)完善性维护:为了满足新的功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。
4)预防性维护:预防性维护是指把今天的方法学用于昨天的系统以满足明天的需要。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
在整个软件维护阶段花费的全部工作量中,完善性维护占了几乎一半的工作量,工作量最大。
11.2 影响软件维护工作量的因素有哪些?
在软件维护中,影响维护工作量的因素主要有以下6种:
1)系统规模。
2)程序设计语言。
3)系统年龄大小。
4)数据库技术的应用水平。
5)所采用的软件开发技术及软件开发工程化的程度。
6)其他:如应用的类型、数学模型、任务的难度、IF嵌套深度、索引或下标数等,对维护工作量都有影响。
11.3 简要说明程序修改的三个步骤。
为了正确、有效地进行程序修改,需要经历3个步骤:分析和理解程序、实施修改以及重新验证程序。
11.4 什么是程序修改的副作用?如何控制程序修改的副作用?
所谓程序修改的副作用是指因修改软件而造成的错误或其他不希望发生的情况,有以下3种副作用: 第11章 软件维护
1)修改代码的副作用:在使用程序设计语言修改源代码时,有可能引入新的错误。
《软件工程》教学教案
一、第一章:软件工程概述
1. 教学目标
了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。
2. 教学内容
软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。
3. 教学方法
采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。
4. 教学资源
教材、课件、案例分析。
5. 教学评价
通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。
二、第二章:软件需求分析
1. 教学目标
掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。
2. 教学内容
软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。
3. 教学方法
采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。
4. 教学资源
教材、课件、实例分析。 5. 教学评价
通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。
三、第三章:软件设计
1. 教学目标
掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。
2. 教学内容
软件设计的基本概念;设计方法和过程;设计工具的使用。
3. 教学方法
采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。
4. 教学资源
教材、课件、实例分析。
5. 教学评价
通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。
四、第四章:软件实现
1. 教学目标
掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。
2. 教学内容
软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。
3. 教学方法
采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。
4. 教学资源 教材、课件、编程环境和测试工具。
5. 教学评价
通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。
五、第五章:软件维护
第八章 维护
8.1 软件维护的定义
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
四类维护活动:
改正性维护
适应性维护
扩充与完善性维护
预防性维护
改正性维护(corrective maintenance)
诊断和改正软件中存在的错误的活动。通常占整个维护活动的17-21%。
适应性维护(adaptive maintenance)
为了和变化了的环境适当地配合而进行的修改软件的活动。通常占整个维护活动的18-25%。
完善性维护(perfective maintenance)
为了满足用户在使用软件的过程中提出的增加新功能、修改已有功能或其它一般性改进的要求而进行的软件修改活动。通常占整个维护活动的50-66%。
预防性维护(preventive maintenance)
为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件的活动。通常占整个维护活动的4%。
各类维护活动的根本目的是延长软件生存期
8.2 维护的特点
非结构化维护
在软件配置的唯一成分只有程序代码的情况下所进行的维护 。
结构化维护
在软件配置完整的情况下所进行的维护。
8.2.2 维护的成本
用于维护已有软件的费用占软件总预算的比例:
1970年为35-40%,1980年为40-60%,1990年为70-80%。 各类维护活动的根本目的是延长软件生存期
其它维护
4 % 软件
生存
周期
软件诞生 计
划 分
析 设
计 编
码 测
试 运行和维护(简称维护)
改善期 稳定期 陈旧期 1年-10年 2个月-2年
重构 软件工程周期
常规软件生成周期时间的估计
其它无形的代价 :
* 因为可用的资源必须供维护任务使用,以致耽误甚至丧失了开发新软件的良机。
第8章例题分析与解答
作者:不详 来源: 2006年9月4日 发表评论 进入社区
一、填空题
1.为了识别和纠正运行中产生的错误而进行的维护称为_________维护。
2.采用软件工程方法开发软件,各阶段均有文档,容易维护,这种维护是________。
3.为提高可维护性,要使用的先进的、强有力的、实用的软件开发方法是________。
4.在软件维护中,因修改软件而导致出现的错误或其他情况称为__________。
二、选择题
1.为增加软件功能和性能而进行的软件修改维护过程是( )。
A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
2.维护中用来指出修改的工作量、工作性质、优先权、修改的事后性质的文档是( )。
A.软件需求说明 B.软件修改报告 C.软件问题报告 D.测试分析报告
3.维护中,因修改全局或公用数据而引起的错误是( )。
A.文档副作用 B.数据副作用 C.编码副作用 D.设计副作用
4.生产性维护活动是( )。
A.修改设计 B.理解设计 C.解释数据结构 D.理解功能
答案:
一、填空题 1.校正性
2.结构化维护
3.面向对象方法
4.维护的副作用
二、选择题
1.C
2.B
3.B
4.A 第8章自测题及参考答案
作者:不详 来源: 2006年9月1日 发表评论 进入社区
一、名词解释
1.校正性维护 2.适应性维护 3.完善性维护
4.预防性维护 5.软件可维护性 6.软件维护的副作用
二、填空题
1.维护阶段是软件生存周期中时间最长的阶段,也是花费精力和费用________的阶段。
2.在软件交付使用后,由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现,必然有一部分隐含错误带到_________阶段。
3.采用手工方法开发软件只有程序而无文档,维护困难,这是一种___________维护。