《《软件工程》软件维护.ppt》由会员分享,可在线阅读,更多相关《《软件工程》软件维护.ppt(28页珍藏版)》请在第壹文秘上搜索。
1、.第第1414讲讲 软件维护软件维护.软件维护主要内容软件维护主要内容 软件维护的概念 软件维护的活动 软件维护的副作用 软件的可维护性 提高可维护性的方法 软件再工程.软件维护的定义软件维护的定义在软件运行维护阶段对软件产品进行的修改就是所谓的维护。维护的类型有四种: 改正性维护 适应性维护 完善性维护 预防性维护.改正性维护改正性维护在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。.适应
2、性维护适应性维护在使用过程中, 外部环境(新的硬、软件配置) 数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。.完善性维护完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。.预防性维护预防性维护预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(
3、重新)进行设计、编制和测试。.三类维护占三类维护占总维护比例总维护比例维护在软件生维护在软件生存期所占比例存期所占比例 .影响维护工作量的因素影响维护工作量的因素系统大小程序设计语言系统年龄软件开发技术.软件维护活动软件维护活动为了有效地进行软件维护,应事先就开始做组织工作。 首先建立维护的机构 申明提出维护申请报告的过程及评价的过程 为每一个维护申请规定标准的处理步骤 建立维护活动的登记制度以及规定评价和评审的标准。.软件维护的副作用软件维护的副作用- -源程序源程序通常对源程序的修改不能无计划地仓促上阵,为了正确、有效地修改,需要经历以下三个步骤。 分析和理解程序 修改程序 重新验证程序.
4、在修改源代码时,都可能引入错误。例如:删除或修改一个子程序、删除或修改一个标号、 删除或修改一个标识符、改变程序代码的时序关系、改变占用存储的大小、改变逻辑运算符、修改文件的打开或关闭、.(2) (2) 修改数据的副作用修改数据的副作用在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件出错。数据副作用就是修改软件数据结构导致的结果。.(3) (3) 文档的副作用文档的副作用对数据流、软件结构、 模块逻辑或任何其它有关特性进行修改时,必须对相关技术文档进行相应修改。软件文档不能反映软件的当前状态。如果对可执行软件的修改不反映在文档里,就会产生文档的副作用。.(4 4)重新验证程序
5、)重新验证程序在将修改后的程序提交用户之前,需要进行充分的确认和测试,以保证整个修改后程序的正确性。.软件的可维护性软件的可维护性软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。可维护性、可使用性、可靠性是衡量软件质量的主要质量特性。软件的可维护性是软件开发阶段各个时期的关键目标。.目前广泛使用的是用如下的七个特性来衡量程序的可维护性。可理解性 可重用性可测试性 可移植性可修改性 效率可靠性而且对于不同类型的维护,这七种特性的侧重点也不相同。.在各类维护中的侧重点在各类维护中的侧重点 .提高可维护性的方法提高可维护性的方法建立明确的软件质量目标和
6、优先级使用提高软件质量的技术和工具进行明确的质量保证审查选择可维护的程序设计语言改进程序的文档.提高软件质量的技术和工具提高软件质量的技术和工具模块化 如果需要改变某个模块的功能,则只要改变这个模块,对其它模块影响很小; 如果需要增加程序的某些功能,则仅需增加完成这些功能的新的模块或模块层; 程序的测试与重复测试比较容易; 程序错误易于定位和纠正。结构化程序设计面向对象的开发方法 .软件开发期间各个检查点的检查重点软件开发期间各个检查点的检查重点分析设计测试编码验收可靠性可适用性可理解性可修改性可测试性可理解性可修改性可移植性可靠性有效性有效性.选择可维护的程序设计语言选择可维护的程序设计语言机器语言 汇编语言 高级语言 查询语言第一代语言第二代语言第三代语言第四代语言低高.24软件再工程软件再工程正向工程数据重构代码重构文档重构逆向工程库存目录分析.逆向工程逆向工程干净的源代码脏的代码初始的规约处理界面数据库最终的规约代码重构抽取抽象求精简化.