欢迎来到天天文库
浏览记录
ID:42791793
大小:433.50 KB
页数:25页
时间:2019-09-22
《《软件工程与项目管理》第7章_软件维护》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章软件维护掌握:软件维护的定义、软件维护的种类、软件维护的策略、软件维护的实施、软件可维护的定义、软件可维护性度量、提高软件可维护性的方法。7.1软件维护的概念7.1.1软件维护的定义第一,它是在软件交付之后进行的,此时绝大部分的软件已开发完成;第二,它是基于某种目的(如订正错误、改善性能或其他属性,或者适应变化的环境等)而对原有系统的一种修改。7.1.2软件维护的种类要求进行维护的原因多种多样,归结起来主要有3种类型:(1)改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷。(2)因在软件使
2、用过程中数据环境发生变化(如一个事务处理代码发生改变)或处理环境发生变化(如安装了新的硬件或操作系统),需要修改软件以适应这种变化。(3)用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求,为满足这些要求,就需要修改软件,把这些要求纳入到软件之中。1.改正性维护在软件交付使用后,由于开发时测试的不彻底、不完全,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏的错误在某些特定的使用环境中就会暴露。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用而进行的诊断和
3、改正错误的过程,就叫做改正性维护。2.适应性维护随着计算机技术的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而修改软件的过程就叫做适应性维护。3.完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。4.预防性维护除了以上3类维护之外,还有一类维护活动,
4、叫做预防性维护,这种维护活动为了提高软件的可维护性、可靠性,为以后进一步改进软件打下良好基础。7.1.3软件维护的策略1.改正性维护策略在软件开发过程中,可以通过使用新技术大大提高软件的可靠性,并减少改正性维护。这些技术包括数据库管理系统、软件开发环境、程序自动生成系统、较高级(第四代)语言,应用这些技术可产生更加可靠的代码。此外,还可利用以下方法提高软件的可靠性:(1)利用应用软件包。利用应用软件包可开发出比完全由用户自己开发的系统可靠性更高的软件。(2)结构化技术。用结构化技术开发的软件易于理解和测试
5、。(3)防错性程序设计。把自检能力引入程序,通过非正常状态的检查提供审查跟踪。(4)周期性维护审查。通过周期性维护审查,在形成维护问题之前就可确定质量缺陷。2.适应性维护策略适应性维护不可避免,但可以控制。(1)配置管理适应性维护时就考虑到硬件变化,以及操作系统和其他相关环境因素的可能变化,可以减少某些适应性维护的工作量。(2)将与硬件、操作系统,以及其他外围设备有关的程序归到特定的程序模块中,也可以减少某些适应性维护的工作量。(3)使用内部程序列表、外部文件以及处理的例行程序包,可为维护时修改程序提供参
6、考。3.完善性维护策略用前两类维护中列举的方法,也可以减少完善性维护的工作量。此外,通过为用户提供软件系统的原型,使用户通过研究原型进一步完善他们的功能要求,同样可以减少完善性维护。7.1.4软件维护的代价软件维护的代价与软件的复杂性有关。近些年来,随着软件复杂性的不断提高,软件维护的代价也在逐步上升。根据有关资料表明,70年代用于维护软件的费用只占软件总预算的35%~40%,80年代上升为40%~60%,到了90年代则上升为70%~80%。除此之外,软件维护还有一些额外的代价。例如,当看起来合理的变更要
7、求不能及时满足时,可能会引起用户的不满;由于维护时的改动,在软件中引入新的错误,从而降低了软件的质量;当必须把软件开发工程师调去从事维护工作时,对开发工作会造成影响等。7.2软件维护的实施7.2.1维护组织图7-1软件维护控制流程7.2.2维护申请报告维护申请报告是由软件组织外部提交的文档,它是计划维护工作的基础。软件组织内部应相应地做出软件修改报告,指明:(1)修改变动的性质。(2)申请修改的优先级。(3)为满足某个维护申请报告,所需的工作量。7.2.3软件维护工作流程7.2.4维护评价维护评价是指对软
8、件维护的过程进行评价。可参考的度量值如下:(1)每次程序运行时的平均出错次数。(2)花费在每类维护上的总“人时”数。(3)每个程序、每种语言、每种维护类型的程序平均修改次数。(4)因为维护、增加或删除每个源程序语句所花费的平均“人时”。(5)用于每种语言的平均“人时”数。(6)维护申请报告的平均处理时间。(7)各类维护申请的百分比。7.3软件可维护性7.3.1软件可维护性的定义软件可维护性是指纠正软件系统出现的错误和缺陷,以及
此文档下载收益归作者所有