软件工程基础之07软件维护.ppt

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

《软件工程基础之07软件维护.ppt》由会员分享,可在线阅读,更多相关《软件工程基础之07软件维护.ppt(30页珍藏版)》请在第壹文秘上搜索。

1、软件维护概述软件维护概述1 1软件维护技术软件维护技术5 5软件维护过程模型软件维护过程模型3 3应注意的问题应注意的问题2 2小结小结6 6 软件维护的基本概念软件维护的基本概念 软件维护的基本类型软件维护的基本类型 维护的困难性维护的困难性 IEEE/EIA 12207ISO/IEC2008IEEE/EIA 12207ISO/IEC2008中中对软件维护的定义是:软件维护是对软件维护的定义是:软件维护是指指由于软件产品出现问题或需要改由于软件产品出现问题或需要改进而对代码及相关文档的修改进而对代码及相关文档的修改,其,其目的是对现有软件产品进行修改的目的是对现有软件产品进行修改的同时保持其

2、完整性。同时保持其完整性。1.1. 软件维护能够改正错误。软件维护能够改正错误。2.2. 软件维护能够改善设计。软件维护能够改善设计。3.3. 软件维护能够实现软件的改进。软件维护能够实现软件的改进。4.4. 软件维护能够实现与其他系统的交互。软件维护能够实现与其他系统的交互。5.5. 软件维护能够为使用不同的硬件、软件、系统的软件维护能够为使用不同的硬件、软件、系统的新性能以及通讯设备等而对软件进行改进。新性能以及通讯设备等而对软件进行改进。6.6. 软件维护能够完成遗留系统的移植。软件维护能够完成遗留系统的移植。7.7. 软件退出使用。软件退出使用。遗留系统:仍能够使用的旧系统,有时对于遗

3、留系统:仍能够使用的旧系统,有时对于业务运行来说至关重要。业务运行来说至关重要。原因:过时的语言或技术实现、昂贵的系统原因:过时的语言或技术实现、昂贵的系统支持导致维护昂贵、结构性差。支持导致维护昂贵、结构性差。 软件维护阶段一般要消耗软件生命软件维护阶段一般要消耗软件生命周期中经费开支的周期中经费开支的大部分大部分。 软件维护的费用占软件总预算的比软件维护的费用占软件总预算的比例:例: 7070年代的年代的35%40%35%40% 8080年代上升为年代上升为40%60%40%60% 9090年代已经占年代已经占70%70%80%80% 维护的类型有维护的类型有四四种:种:o 纠错纠错性维护

4、性维护o 适应性维护适应性维护o 完善性维护完善性维护o 预防性维护预防性维护 国外的统计数字表明,完善性维护占全部维护国外的统计数字表明,完善性维护占全部维护活动的活动的50%50%66%66%,纠错性维护占,纠错性维护占17%17%21%21%,适应性维护占,适应性维护占18%18%25%25%,其他维护活动只,其他维护活动只占占4%4%左右左右 在软件交付使用后,因开发时测试的不彻底、不在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分完全,必然会有部分隐藏的错误隐藏的错误遗留到运行阶段遗留到运行阶段。 设计错误、编码错误、数据错误、文档错误设计错误、编码错误、数据错误、文档错

5、误 这些隐藏下来的错误在某些特定的使用环境下就这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。会暴露出来。 为了为了识别和纠正软件错误、改正软件性能上的缺识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误用,应当进行的诊断和改正陷、排除实施中的误用,应当进行的诊断和改正错误的过程错误的过程就叫做纠错性维护。就叫做纠错性维护。 在使用过程中,在使用过程中,o 外部环境(新的硬、软件配置)外部环境(新的硬、软件配置)o 数据环境(数据库、数据格式、数据输入数据环境(数据库、数据格式、数据输入/ /输出方式、输出方式、数据存储介质)数据存储介质)o 网络环境等其他可能发生的变化。网络环境

6、等其他可能发生的变化。 为使软件为使软件适应外部、数据、网络的变适应外部、数据、网络的变化化,而去修改软件的过程就叫做适应,而去修改软件的过程就叫做适应性维护。性维护。 在软件的使用过程中,用户往往会对软件提出在软件的使用过程中,用户往往会对软件提出新的功能与新的功能与性能要求性能要求。 为了满足为了满足新的功能与性能要求新的功能与性能要求,需要修改或再开发软件,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。件的可维护性。 这种情况下进行的维护活动叫做完善性维护。这种情况下进行的维护活动叫做完善性维护。

7、实践表明,在几种维护活动中,实践表明,在几种维护活动中,完善性维护所占的比重最完善性维护所占的比重最大大。即大部分维护工作是改变和加强软件,而不是纠错。即大部分维护工作是改变和加强软件,而不是纠错。 完善性维护不一定是救火式的紧急维修,而可以是有计划完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。、有预谋的一种再开发活动。 预防性维护是防止问题发生而事先维护,目预防性维护是防止问题发生而事先维护,目的是为了提高软件的可维护性、可靠性等,的是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。为以后进一步改进软件打下良好基础。 体系结构不良、数据结构不

8、理想、文档不全体系结构不良、数据结构不理想、文档不全、缺少变更记录等。、缺少变更记录等。 预防性维护定义为:预防性维护定义为:采用适当的方法对需要采用适当的方法对需要维护的软件或软件中的维护的软件或软件中的某一部分(重新)进某一部分(重新)进行设计、编码和测试行设计、编码和测试。 逆向工程、软件再工程等。逆向工程、软件再工程等。 技术方面技术方面o程序的理解:有限理解程序的理解:有限理解o测试:完整测试消耗大,往往选择回归测试:完整测试消耗大,往往选择回归测试、局部测试。软件运行中,协调测测试、局部测试。软件运行中,协调测试困难。试困难。o影响分析影响分析o可维护性可维护性 影响分析是对修改的

9、影响进行完整分析,影响分析是对修改的影响进行完整分析,衡量消耗的可接受程度。衡量消耗的可接受程度。 目标:目标: 决定决定改变的范围改变的范围。这对合理计划和完成工作有重。这对合理计划和完成工作有重要意义要意义 对完成工作对完成工作所需的资源所需的资源进行精确的估计。进行精确的估计。 分析改变的分析改变的费用费用/ /效益比效益比 由于对软件进行变更往往是牵一发而动全身的,由于对软件进行变更往往是牵一发而动全身的,因此如果给出了一个变更,必须考虑到关联性的因此如果给出了一个变更,必须考虑到关联性的复杂情况复杂情况。可维护性是指通过一定的手段,使软件可以被维护可维护性是指通过一定的手段,使软件可

10、以被维护、改进、改动或修正,以满足特定的需求的方便程、改进、改动或修正,以满足特定的需求的方便程度。度。决定要素:决定要素:可理解性可理解性可测试性可测试性可修改性可修改性可移植性可移植性可重用性可重用性环境要素:环境要素:维护文档维护文档运行环境运行环境维护组织维护组织维护质量维护质量 管理方面管理方面o 契合组织的目标契合组织的目标: :延长软件生命、软件升级、改延长软件生命、软件升级、改进的需要,但投资回报不明确。权衡消耗与收进的需要,但投资回报不明确。权衡消耗与收益。益。o 人力资源:吸引和维持软件维护队伍。人力资源:吸引和维持软件维护队伍。“二等二等公民公民”误区误区o 过程:需要开

11、发过程没有的活动,如逆向工程过程:需要开发过程没有的活动,如逆向工程,管理挑战,管理挑战o 如何组织维护活动:责任到人如何组织维护活动:责任到人o 外包:有效控制是重点,确定服务的范围以及外包:有效控制是重点,确定服务的范围以及合约细节是挑战。合约细节是挑战。 维护费用估算维护费用估算o 参数模型参数模型M = P + K M = P + K e e (c (c d)d) M M是维护用的总工作量,是维护用的总工作量,P P是生产性工作量,是生产性工作量,K K是经是经验常数,验常数,c c是复杂程度,是复杂程度,d d是维护人员对软件的熟悉是维护人员对软件的熟悉程度。生产性成本包括分析评价、

12、修改设计和编码程度。生产性成本包括分析评价、修改设计和编码等。非生产性成本包括程序理解、数据结构解释、等。非生产性成本包括程序理解、数据结构解释、接口特点和性能限度等。接口特点和性能限度等。o 基于经验基于经验 专家判断、类推、工作分解结构专家判断、类推、工作分解结构 IEEEIEEE维护模型图维护模型图分类与鉴分类与鉴别阶段别阶段分析阶段分析阶段设计阶段设计阶段实现阶段实现阶段系统测试系统测试阶段阶段验收测试验收测试阶段阶段交付阶段交付阶段修改输入修改输入 程序的理解程序的理解 软件再工程软件再工程 软件逆向工程软件逆向工程 为了有效维护,需要阅读和理解程序,方为了有效维护,需要阅读和理解程

13、序,方法:法: 1 1、文档理解、代码理解、注释理解、文档理解、代码理解、注释理解 2 2、代码浏览工具(、代码浏览工具(Source InsightSource Insight等)等) 程序理解的任务:以软件维护、升级和再程序理解的任务:以软件维护、升级和再工程为目的,在不同的抽象级别上建立基工程为目的,在不同的抽象级别上建立基本软件的概念模型,包括从代码本身的模本软件的概念模型,包括从代码本身的模型到基本应用领域的模型,即型到基本应用领域的模型,即建立从问题建立从问题/ /应用域到程序设计应用域到程序设计/ /实现域的映射集实现域的映射集 通过检查单个的程序设计结构,程序被表示成通过检查单

14、个的程序设计结构,程序被表示成抽象语法树抽象语法树、符号表或普通源文本。、符号表或普通源文本。包括手工代码阅读、人工提取、包括手工代码阅读、人工提取、程序分析、静态分析和动态分析等。程序分析、静态分析和动态分析等。 尽量做到程序尽量做到程序隐含信息隐含信息的显性表示及程序的显性表示及程序内部关系内部关系的可视的可视化。如控制流、数据流分析、程序视图构造等。化。如控制流、数据流分析、程序视图构造等。 从源代码中从源代码中提取信息提取信息,并存放在通用的数据库中,然后通,并存放在通用的数据库中,然后通过查询语言对数据库进行查询。过查询语言对数据库进行查询。 检查程序构造过程中的检查程序构造过程中的

15、结构关系结构关系,明确表示程序组成部分,明确表示程序组成部分之间的依赖关系。之间的依赖关系。 识别程序的识别程序的高层概念高层概念,如标准算法、数据结构、语法及语,如标准算法、数据结构、语法及语义匹配等。义匹配等。 定义定义 软件再工程(软件再工程(Re-engineeringRe-engineering)指)指对现有软件进行仔细审查和改造,对现有软件进行仔细审查和改造,对其进行对其进行重新构造重新构造,使之成为一个,使之成为一个新的形式,同时包括随之产生的新的形式,同时包括随之产生的对对新形式的实现新形式的实现。数据重构数据重构正向工程正向工程库存目录分析库存目录分析代码重构代码重构逆向工程

16、逆向工程文档重构文档重构应用系统的库存目录:系统规应用系统的库存目录:系统规模、使用年限、业务重要程度模、使用年限、业务重要程度等信息。根据相关信息选择再等信息。根据相关信息选择再工程业务,后分配资源。工程业务,后分配资源。系统可以正常运作,并可预见能够支系统可以正常运作,并可预见能够支撑至终点,文档不变。撑至终点,文档不变。文档必须更新,但资源有限,部分重文档必须更新,但资源有限,部分重构。构。系统关键业务,必须完全重构,则完系统关键业务,必须完全重构,则完全重构。全重构。某些老程序的体系结构比较合理,但是,一些某些老程序的体系结构比较合理,但是,一些模块的编码方式却是难于理解、测试和维护的。模块的编码方式却是难于理解、测试和维护的。代码重构:不改变系统行为,只是对程序结构代码重构:不改变系统行为,只是对程序结构进行改变和优化,使其易于理解、测试和维护。进行改变和优化,使其易于理解、测试和维护。方法:分析源代码,标记与程序设计概念相违方法:分析源代码,标记与程序设计概念相违背的部分,重构。新代码评审和测试。背的部分,重构。新代码评审和测试。全范围在工程活动,对当前数据体系全范围在工程

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

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

copyright@ 2008-2023 1wenmi网站版权所有

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

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