【教学课件】第六章软件维护工程.ppt





《【教学课件】第六章软件维护工程.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第六章软件维护工程.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 软件维护工程软件维护工程软件维护的概念软件维护的概念软件维护是在软件已交付给用户使用后,为了改正错误,或者满足用户新的需求而修改软件的过程。软件维护一般不包括重大体系结构的修改。软件维护的原因:修改软件中的错误;软件运行环境发生了变化;用户要求增加软件新的功能或提高软件的性能。软件维护分类n纠错性维护n适应性维护n完善性维护n预防性维护 三类维护所占比例三类维护所占比例:其它维护其它维护 5%5%适应性适应性维维 护护 25%25%改正性改正性维维 护护 20%20%扩充与完扩充与完善性维护善性维护 50%50%改正性维护占全部维护量的比率已从改正性维护占全部维护量的比率已从80
2、80年代初年代初的的20%20%大幅度下降大幅度下降,90,90年代初一些公司的产品年代初一些公司的产品差错率已接近于零差错率已接近于零各类维护活动的根本目的是各类维护活动的根本目的是延长软件生存期延长软件生存期其它维护其它维护 4%4%软件软件生存生存周期周期软件诞生软件诞生计计划划分分析析设设计计编编码码测测试试运行和维护运行和维护(简称维护简称维护)改善期改善期 稳定期稳定期 陈旧期陈旧期1 1年年-10-10年年2 2个月个月-2-2年年重构重构软件工程周期软件工程周期软件维护过程软件维护过程 影响软件维护工作量的因素:n系统的大小。n程序设计语言。n系统的年龄。n数据库技术的应用。n
3、先进的软件开发技术。n其他因素。例如,在程序中使用的数学模型、任务的难度、IF嵌套的深度开关和标记等等,都会对维护工作有影响。MP+Ke e=(c c-d d)M M :维护工作总工作量维护工作总工作量P P:生产性工作量生产性工作量K K :经验常数经验常数c c:复杂度复杂度d d:对该软件熟悉程度的度量对该软件熟悉程度的度量维护的成本维护的成本该模型说明,如果没有一个好的软件开发途径,原来的开发人员不能参加维护工作,则维护工作量将按指数级增加。修改修改负责人负责人维维护申请护申请系统监督员系统监督员配置管理员配置管理员维维护护组织组织 维护人员维护人员维护管理员维护管理员维护申请报告维护
4、申请报告 n内容:n(1)所需要修改的性质;n(2)申请修改的优先级;n(3)为满足某一项维护申请所需要的工作量;n(4)预计修改后的状况。软件维护流程软件维护流程 n见教材图维护记录维护记录维护过程中作应记录的数据维护过程中作应记录的数据F程序标识程序标识F源程序语句数目源程序语句数目F机器代码指令条数机器代码指令条数F.F.以收集的数据为基础构造维护数据库以收集的数据为基础构造维护数据库,供维护评价使用供维护评价使用.软件维护评价软件维护评价 n可供参考的度量值是:n(1)程序每次运行的平均失效的次数;n(2)各类维护活动所花费的总“人时”数;n(3)每个程序、每种语言、每种维护类型所做的
5、程序变动平均数;n(4)因为维护而增加或删除一个源程序语句,平均花费的“人时”数;n(5)维护每一种语言的程序所花费的“人时”数;n(6)维护申请报告的平均处理时间;n(7)各类维护申请的百分比。修改程序的副作用修改程序的副作用修改代码的副作用修改代码的副作用修改数据的副作用修改数据的副作用修改文档的副作用修改文档的副作用重新验证程序重新验证程序 n静态确认。在软件修改时,可能会产生新的错误,为此,要进行必要的检查。n计算机确认。通过计算机对修改的程序进行确认测试。例如,要确认测试的顺序,首先测试经过修改的部分,再测试没有修改的部分,然后,把它们集成起来测试;准备好标准的和有效的测试用例;充分
6、利用软件工具帮助测试;在确认测试过程中,邀请用户参加。n文档验收。经过修改的软件交付给用户前,维护主管部门要检查文档。例如,所有的文档是否完备,是否更新,文档与程序是否一致;全部的测试用例和测试结果是否都正确记载;软件配置是否都有了副本;维护的工序和责任是否已经确定。维护中的典型问题维护中的典型问题(1)(1)难以跟踪软件版本的进化过程难以跟踪软件版本的进化过程,软件的变化未在文档中反映出来软件的变化未在文档中反映出来.(2)(2)难以跟踪软件的创建过程难以跟踪软件的创建过程.(3)(3)难以读懂他人程序难以读懂他人程序.(4)(4)无文档或不全无文档或不全.(5)(5)软件人员流动性大软件人
7、员流动性大.(6)(6)设计时未考虑修改需要设计时未考虑修改需要,修改困难修改困难.(7)(7)维护工作无吸引力维护工作无吸引力,缺乏成就感缺乏成就感.软件可维护性软件可维护性软件软件可维可维护性的定义护性的定义 软件可维护性是指纠正软件系统出现的软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。行修改、扩充或压缩的容易程度。软件的可维护性度量软件的可维护性度量 n(1)可理解性n可理解性表明人们通过阅读源代码和相关的文档,了解程序功能以及如何运行的容易程度。例如,模块化、程序设计风格,程序结构化、完整性等。n(2)
8、可靠性n可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。可靠性是度量软件整体质量的一个重要指标之一,n(3)可测试性n可测试性表明论证程序正确性的容易程度。一个可测试程序应当是可理解的、可靠的、简单的。因为程序越简单,要证明它的正确性就越容易;要设计有效的和合适的测试用例,重要的是要理解程序。n(4)可修改性n软件可修改性表明程序容易修改的程度。一个可修改的程序,应该具有可理解性、通用性、灵活性等等。通用性是指程序适用于各种功能变化而无须修改;灵活性是指能够容易地对程序进行修改。n(5)可移植性n软件可移植性表明程序能转移到另一个新环境的可能性大小,或者表明程序可
9、以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具有良好的结构和灵活性,即不依赖具体的硬件环境或操作系统。n(6)效率n软件的效率表明了一个程序能完成预定的功能,但又不浪费资源的程度。这些资源可以包括机器的内存容量、外存容量、通道容量等,以及执行时间。n(7)可用性n软件的可用性定义为程序方便、实用、易使用的程度。例如,界面友好、具有在线帮助功能、容错性好等,不因为用户的误操作而陷入混乱状态。可维护性的度量可维护性的度量度量程序可维护性的度量程序可维护性的7 7个特性在各类维护个特性在各类维护中的侧重点中的侧重点 改正性维护改正性维护 适应性维护适应性维护 完善性维护完
10、善性维护可理解性可理解性 可测试性可测试性 可修改性可修改性 可靠性可靠性 可移植性可移植性 可使用性可使用性 效率效率 提高可维护性的方法提高可维护性的方法F 建立明确的软件质量目标和优先级建立明确的软件质量目标和优先级F 使用提高软件质量的技术和工具使用提高软件质量的技术和工具F 进行明确的质量保证审查进行明确的质量保证审查F 选择可维护的程序设计语言选择可维护的程序设计语言F 改进程序的文档改进程序的文档F 开发软件时考虑到维护开发软件时考虑到维护软件再工程软件再工程什么是软件再工程什么是软件再工程在软件复用中在软件复用中,有问题是与现有系统密切相关的有问题是与现有系统密切相关的例如例如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第六 软件 维护 工程

限制150内