软件工程软件维护.ppt
软 件 工 程第21讲:软件维护,主讲人:阳王东Email:,主要内容,1、软件维护概述 2、软件维护过程 3、逆向工程4、程序修改的步骤及修改的副作用,1.1 背景知识,软件的生命周期维护是延长软件生命周期的途径千年虫问题新环境下的老问题维护的价值软件维护是软件的成本的重要组成部分不堪重负的维护维护也是商机,1、软件系统概述,1.2 软件维护的定义,定义在软件运行维护阶段对软件产品进行的修改就是所谓的维护,以保障软件能够正常运行。维护的类型改正性维护。纠正在使用过程中暴露出来的错误 适应性维护。适应外部环境的变化 完善性维护。改进原有的软件预防性维护。提高可维护性和可靠性,1、软件维护概述,1.3 维护的工作量分配,1、软件维护概述,1.4 软件维护中存在的主要问题,程序的源代码或算法可读性差,加大了软件维护的难度。文档丢失或文档不全。软件的开发人员和软件维护人员分离,软件维护的逆向工程花费软件维护人员的大量时间和精力。软件本身可修改性差,无法二次开发。开发方和出资方对软件维护的认识不足,资金追加不够,软件维护工作无法深入。软件维护工作繁琐,时间长,影响软件的正常使用,容易导致用户对软件维护人员和软件系统的不信任。,1、软件维护概述,1.5 软件维护的内容,程序维护文件备份及修复查杀病毒硬件维护系统优化,1、软件维护概述,1.6 软件维护工作的特点,软件维护耗时费力软件维护的代价昂贵远程维护是现代软件维护的新途径软件复用技术简化了软件维护,1、软件维护概述,1.7 软件的可维护性,可理解性可靠性可测试性可修改性可移植性可使用性,1、软件维护概述,2 软件维护过程,2.1 建立维护的机构2.2 规范维护流程2.3 编写维护报告2.4 进行软件修改2.5 保存维护记录2.6 评价维护结果,2.1 维护机构,三种常用的软件维护组织方式留下开发人员做维护公司建立单独的维护部门进行维护维护外包维护的三个层次客户自己维护技术支持人员维护开发人员维护,2、软件维护过程,2.2 维护管理流程,2、软件维护过程,2.3 编写维护报告,2、软件维护过程,2.4 进行软件修改,(1)由系统管理员提出软件修改请求报告;(2)由有关领导审批请求报告;(3)手续完备后,实施软件的修改;(4)进行软件修改后的测试与试运行;(5)作总结调整并修改文档资料;(6)交付修改的软件(7)软件做新的备份,并同定稿的文档资料一起存档,这里的文档主要应包括以下内容:维护的审批人、提请人、维护人的姓名、维护时间、修改原因、修改的内容、修改后的现状。,2、软件维护过程,2.5 保存维护记录,维护请求变动的程序和文档维护日志维护效果客户确定,2、软件维护过程,2.6 评价维护结果,2、软件维护过程,软件维护评价,3 逆向工程,逆向工程是通过源程序,甚至是目标程序,由此导出设计模型、分析模型的过程。逆向工程被用到了软件维护上,通过从老化系统的源代码中提取程序流程设计、系统结构设计,甚至数据流图,由此而给老化系统的维护带来方便。,4 程序修改的步骤,4.1 分析和理解程序4.2 修改程序4.3 重新验证程序,4.1 分析和理解程序,理解程序的功能和目标;掌握程序的结构信息,即从程序中细分出若干结构成分。如程序系统结构、控制结构、数据结构和输入输出结构等;了解数据流信息,即涉及到的数据来源何处,在哪里被使用;了解控制流信息,即执行每条路径的结果;理解程序的操作(使用)要求。,4、程序修改,4.2 修改程序,设计程序的修改计划修改代码,以适应变化修改程序的副作用修改代码的副作用在修改源代码时,都可能引入错误。修改数据的副作用可能造成软件设计与数据结构不匹配文档的副作用。软件文档不能反映软件的当前状态。,4.3 重新验证程序,确定测试确定修改程序的正确性确定满足维护的请求回归测试确定未修改程序的正确性确定未修改功能的正确性,小结,本章介绍软件维护的特点、软件维护活动的类型和维护过程,以及提高软件可维护性的技术。软件维护是软件生存周期的最后一个阶段,也是持续时间最长、工作量最大的一项不可避免的过程。软件维护的基本目标和任务是改正错误、增加功能、提高质量、优化软件、延长软件寿命,提高软件产品价值。软件维护活动分为改正性维护、完善性维护、适应性维护和预防性维护四种类型。,作业,对于ATM系统,分析一下该系统主要的维护项目有哪些?应该采用哪些维护策略?,