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