软件工程维护.ppt

上传人:王** 文档编号:168407 上传时间:2023-03-10 格式:PPT 页数:33 大小:284.50KB
下载 相关 举报
软件工程维护.ppt_第1页
第1页 / 共33页
软件工程维护.ppt_第2页
第2页 / 共33页
软件工程维护.ppt_第3页
第3页 / 共33页
软件工程维护.ppt_第4页
第4页 / 共33页
软件工程维护.ppt_第5页
第5页 / 共33页
软件工程维护.ppt_第6页
第6页 / 共33页
软件工程维护.ppt_第7页
第7页 / 共33页
软件工程维护.ppt_第8页
第8页 / 共33页
软件工程维护.ppt_第9页
第9页 / 共33页
软件工程维护.ppt_第10页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程维护.ppt》由会员分享,可在线阅读,更多相关《软件工程维护.ppt(33页珍藏版)》请在优知文库上搜索。

1、第第8章章 软件维护软件维护2学时学时引言o 例子:某药厂的设备管理信息系统已交付用户运行了1年,工厂购置了小型机,需要将原来的在Windows下运行的系统移植到Unix操作系统下运行。o 软件在交付给用户使用后,由于应用环境、业务需求变化以及软件自身问题,对它进行维护不可避免。o 软件维护是一个长期过程,耗费较大。主要内容1. 软件维护的概念2. 软件维护过程3. 软件维护工作的管理方法掌握理解 了解要求要求7.1 软件维护概念o 软件维护在软件交付使用之后对软件进行的任何改变工作。o 引起软件改变的原因为了纠正运行中出现的错误;为了使软件适应新的运行环境;用户增加新的需求;为了提高软件可靠

2、性。 软件维护分类o 纠正性维护o 完善性维护o 适应性维护o 预防性维护改正性维护o 什么是改正性维护改正软件中的错误o 起因软件运行过程中一旦发现错误,用户会向开发人员提出改正性维护的请求。o 目的诊断和改正软件系统中出现和潜藏的错误。o 出现概率占整个维护工作量21%。 o 通常遇到的错误有设计错误、逻辑错误、编码错误、文档错误、数据错误 。适应性维护o 什么是适应性维护对软件进行改造以便适应新的环境和平台。o 起因软件运行硬件、OS、网络等环境发生变化。o 目的适应环境变化和发展而对软件进行维护。o 出现频率占整个维护量的25% 。o 环境变化主要包括影响系统的规定、法律和规则发生了变

3、化;硬件配置发生了变化,例如机型、终端、打印机等;数据格式和文件结构发生变化;系统软件发生变化,例如操作系统、编译系统或实用程序包的变化。 完善性维护o 什么是完善性维护对软件进行完善以增加新的功能、修改已有功能。o 起因用户要求增加新的功能、修改已有功能,或提出其他改进意见o 目的满足用户日益增长的各种需求而对软件系统进行的改善和补充。o 出现频率占整个维护量50%。o 常见的完善要求用户的业务会发生变化,组织机构也会发生变化。 预防性维护o 什么是预防性维护对软件的结构进行改造以便提高软件的可靠性和可维护性等o 起因改进软件质量属性,为以后的软件改进奠定基础的维护活动。o 目的提高软件的质

4、量。o 出现频率占整个维护量的4%。7.1.1 影响维护的因素o软件规模:维护工作量与软件规模成正比。软件的规模可以由源程序的语句数量、模块数、输入输出文件数、数据库的规模,以及输出的报表数等指标来衡量。软件规模越大,复杂程度越高,其维护就越困难。o程序设计语言:通常高级语言编写的程序比低级语言编写的程序易于维护。o先进的软件开发技术:使用先进稳定的开发技术会提高软件的质量,例如,使用数据库技术、面向对象技术、构件技术和中间件技术可以提高软件的质量,减少维护费用。o软件年限:软件越老,其维护越困难。老的软件不断被修改,结构可能越来越混乱。随着时间的增长,原来的开发和维护人员不断离去,了解软件结

5、构的人越来越少,如果文档不全就更加难以维护。7.1.1 影响维护的因素(续)o文档质量:许多软件项目在开发过程中不断地修改需求和设计,但是对文档却不进行同步修改,造成交付的文档与实际系统不一致,使人们在后来参考文档对软件进行维护时无从下手。软件维护阶段利用历史文档可以简化维护工作,历史文档有下面3种。n软件开发日志:它记录了软件开发原则、目标、功能的优先次序、选择设计方案的理由、使用的测试技术和工具,计划的成功和失败之处,开发过程中出现的问题。n错误记载:记录了出错历史,对于预测今后可能发生的错误类型及出错频率有很大帮助,可以更合理地评价软件质量。n系统维护日志:记录了维护信息,包括修改目的和

6、策略、修改内容和位置、注意事项、新版本说明等信息。7.1.1 影响维护的因素(续)o软件的应用领域:有些软件用于一些特殊领域,涉及到一些复杂的计算和模型工具,这类软件的维护需要专门的业务知识和计算机软件知识。o软件结构:在进行概要设计时,遵循软件设计的高内聚、低耦合、信息隐藏等设计原则,使设计的软件具有优良的结构,会为今后的维护带来方便。o编程习惯:因为软件维护通常要理解别人写的程序,这是很困难的,如果仅有源程序没有说明的文档,则会使维护工作更加困难。如果开发人员都按照编程规范编写程序,并且程序思路清晰、结构简单,则程序易于维护。o人员的变动:由原来的开发人员参与维护是比较好的策略,可提高维护

7、效率。但是在软件的生命周期中人员变动是不可避免的,有时候这也是造成一个软件彻底报废的原因之一。7.1.2.软件维护策略 o针对软件的4种主要维护活动,James Martin提出了一些维护策略。1)改正性维护通过新技术和好的开发策略提高软件可靠性,减少改正性维护活动。2)适应性维护在设计时就把硬件和操作系统以及其他相关因素的可能变化考虑在内,可以减少某些适应性维护。 将与硬件、操作系统、其他外部设备相关的程序归纳到特定的程序模块中,一旦需要适应新的环境变化,只要修改几个相关的模块就可以了。 使用内部程序列表、外部文件为适应性维护提供方便。7.1.2.软件维护策略(续)3)完善性维护利用面向对象

8、方法的继承、封装和多态性技术减少因变动带来的影响。 采用原型法开发,使用户通过研究原型进一步完善系统的功能,对于减少完善性维护非常有益。4)预防性维护将自检能力引入程序,通过非正常状态的检查发现程序问题。对于重要软件通过周期性维护检查进行预防性维护。7.2 维护过程维护过程o 软件的可维护性常常随着时间的推移而降低,如果没有为软件维护工作制定严格的条例,许多软件系统都将蜕变到无法维护的地步。o 介绍一个典型的软件维护过程,见下图。用户维护人员001评价申请002判断维护类型003评价严重程度006评价优先级005安排改正性维护004开始问题分析D1错误改正计划D2 安排工作计划007开始问题分

9、析008维护009复审批准申请改正性维护适应性/完善性维护严重不严重低高安排维护安排维护修改后的软件理解源程序分析原设计安排更改计划修改程序测试程序通过并交付软件维护申请维护过程说明1. 受理维护申请。2. 分析修改内容和修改频度,考虑修改的必要性。研究修改对原设计的影响程度,有冲突?对原系统性能的影响?3. 同意或否决维护申请。4. 为每个维护申请分配一个优先级,并且安排工作进度和人员。5. 如果新增加功能,则要进行需求分析。6. 设计和设计评审。维护过程说明(续)7. 编码和单元测试。8. 评审编码情况,维护人员必须填写维护工作记录表,记录所做的修改。维护主管要检查维护记录,确保只在授权的

10、工作范围内作了修改。9. 不仅测试修改的部分,还要测试对其他部分的影响,可以借鉴开发阶段设计的测试用例对软件进行全面的测试。10.更新文档,保持程序和文档一致性。11.用户验收。12.评审修改效果及其对系统的影响。7.2.1 维护需要的文档模板维护需要的文档模板o 维护申请模板:申请可由用户也可以由系统维护者提出。o 内容:原因、缓急程度。如果是改正性维护,必须完整地说明出现错误的情况,包括输入数据、输出信息、错误信息以及其他相关信息。如果是适应性维护,应说明软件要适应的新环境。如果是完善性维护,必须详细说明软件功能和性能的变化,若增加新功能,还要进行需求分析、设计、编程和测试,相当于一个二次

11、开发的工程。o 维护机构对申请进行评价,将评价结果填写在申请表的评价结果栏内。7.2.1维护需要的文档模板(续)维护需要的文档模板(续)o 维护计划模板:维护主管负责制定维护计划 。o 内容:维护类别、内容、工作量、维护涉及的模块和文档、维护任务划分、各任务负责人、开始和结束时间等。o 负责人签字确认。7.2.1维护需要的文档模板(续)维护需要的文档模板(续)o 维护记录:维护人员做好维护记录。o 内容:维护初始状态、终止状态,参与的维护人员、实际工作量、编程语言、涉及的模块和文档、程序运行的状态、维护的结束时间等。o 维护人员签字。7.2.2源程序修改策略源程序修改策略o 步骤:分析源程序修

12、改源程序验证修改1)分析和理解源程序阅读和理解其他人的源程序是非常困难的。也是非常好的学习和锻炼机会。阅读理解别人写的源程序有一些技巧,可以帮助你快速、准确地理解源程序。下面介绍这些技巧:源程序阅读技巧o (1)首先要阅读与源程序相关的说明性文档包括程序功能说明、数据结构、输入输出格式说明、文件说明、程序使用说明,阅读这些文档有助于理解源程序。o (2)概览源程序。这步只能粗略地阅读源程序,因为对源程序了解还少,无法一下深入到源程序中。但是,这步要完成的任务比较多:源程序阅读技巧概览源程序1:o 记录源程序中所出现的全部过程及其参数。o 建立过程直接调用二维矩阵,若过程i调用了过程j,则二维表

13、的i行j列是1,否则是0。如果一个过程自己调用自己,即递归调用,则二维矩阵i行i列是1。另外,如果一个过程多次调用另一个过程,则二维矩阵的i行j列的值是调用次数。源程序阅读技巧概览源程序2:o 建立过程的间接调用二维表。若过程i调用过程j,过程j调用过程k,则间接表的第i行k列是1,否则是0。o 列出程序定义的全局变量和数据结构。对于复杂数据结构,画出数据结构图更好理解。源程序阅读技巧(续)o (3)分析程序结构。画出软件结构图,在这个图上反映过程之间的调用关系和调用参数。图中的箭头线表示过程之间的调用关系,带尾的箭头线表示过程调用传递的参数。o (4)画出软件的数据流程图。根据程序的信息处理

14、流程画出数据流程图,可以获得相关数据在过程间的处理和传递方式,对于维护人员判断问题、理解程序特别有用。源程序阅读技巧(续)o (5)分析程序中涉及的数据库表结构、数据文件结构,如果能够确定数据结构及数据项的含义就在此写出来。o (6)仔细阅读源程序的每个过程。画出每个过程的程序流程图,做一张过程引用全局数据结构的表,维护人员可以清晰地了解程序中对全局数据结构的访问情况。o (7)跟踪每个文件的访问操作,每个文件作一张过程访问表,记录过程的读写、打开、关闭操作。修改源程序2)修改源程序o (1)程序员修改源程序前,要先做好源程序的备份工作,以便于将来的恢复和结果对照。另一个重要工作是将修改的部分

15、以及受修改影响的部分与程序的其他部分隔离开来。o (2)修改源程序时应该尽量保持原来程序的风格,在程序清单上标注改动的代码。也可以先将原来的代码格式定义为统一的字体,将新修改的代码以加粗字体或其它颜色的字体显示。在修改模块的头部简单注明修改原因和日期。修改源程序(续)o (3)在修改源程序时还要特别注意,不要使用程序中已经定义的临时变量或共享工作区。为了减少修改带来的副作用,修改者应该定义自己的变量,并且在源程序中适当地插入错误检测语句。o (4)建议程序员养成良好的软件开发工作习惯,做好修改记录。验证修改3)o 修改后的程序应该进行测试,由于在修改过程中可能会引入新的错误,影响软件原来的功能

16、,因此在修改后应该先对修改的部分进行测试,然后隔离修改部分,测试未修改部分,最后再对整个程序进行测试。o 源程序修改后相应的文档应该修改。7.3 提高软件可维护性o 软件可维护性:指改正软件中的错误、完善软件功能的容易程度。o 提高软件的可维护性可以降低维护成本,提高维护效率,延长软件的生存期。o 为了提高软件的可维护性,在软件开发过程的各个阶段要充分考虑影响软件可维护性的因素。各阶段考虑软件可维护性的因素o在需求分析阶段检查每条需求,分析维护时这条需求可能需要的支持,对于可能会发生变化的需求要考虑系统的应变能力。o在设计阶段应做一些变更实验,检查系统的可维护性、灵活性和可移植性。将可能变更的内容与其他部分分离,遵循高内聚、低偶合的原则。o编码阶段保持源程序的可理解性、规范性、与文档一致性。o在测试阶段应该按照需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础。本章要点o 软件维护就是在软件交付使用之后对软件进行的任何改变工作。o 维护活动有4种:改正性维护、适应性维护、完善性维护、预防性维护

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 软件测试

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!