




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 软件维护软件维护概述1软件维护技术5软件维护过程模型3应注意的问题2小结61软件维护概述软件维护的基本概念软件维护的基本类型维护的困难性2软件维护的定义IEEE/EIA 12207ISO/IEC2008中对软件维护的定义是:软件维护是指由于软件产品出现问题或需要改进而对代码及相关文档的修改,其目的是对现有软件产品进行修改的同时保持其完整性。3软件维护的必要性软件维护能够改正错误。软件维护能够改善设计。软件维护能够实现软件的改进。软件维护能够实现与其他系统的交互。软件维护能够为使用不同的硬件、软件、系统的新性能以及通讯设备等而对软件进行改进。软件维护能够完成遗留系统的移植。软件退出使用。
2、遗留系统:仍能够使用的旧系统,有时对于业务运行来说至关重要。原因:过时的语言或技术实现、昂贵的系统支持导致维护昂贵、结构性差。4软件维护的成本软件维护阶段一般要消耗软件生命周期中经费开支的大部分。软件维护的费用占软件总预算的比例:70年代的35%40%80年代上升为40%60% 90年代已经占70%80%5软件维护的基本类型维护的类型有四种: 纠错性维护 适应性维护 完善性维护 预防性维护国外的统计数字表明,完善性维护占全部维护活动的50%66%,纠错性维护占17%21%,适应性维护占18%25%,其他维护活动只占4%左右6纠错性维护在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分
3、隐藏的错误遗留到运行阶段。设计错误、编码错误、数据错误、文档错误这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误用,应当进行的诊断和改正错误的过程就叫做纠错性维护。7适应性维护在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)网络环境等其他可能发生的变化。为使软件适应外部、数据、网络的变化,而去修改软件的过程就叫做适应性维护。8完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足新的功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、
4、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部分维护工作是改变和加强软件,而不是纠错。完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。9预防性维护预防性维护是防止问题发生而事先维护,目的是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。体系结构不良、数据结构不理想、文档不全、缺少变更记录等。预防性维护定义为:采用适当的方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。逆向工程、软件再工程等。10软件维护中应注意的问题(一)技术方面程序的理解:
5、有限理解测试:完整测试消耗大,往往选择回归测试、局部测试。软件运行中,协调测试困难。影响分析可维护性11影响分析影响分析是对修改的影响进行完整分析,衡量消耗的可接受程度。目标:决定改变的范围。这对合理计划和完成工作有重要意义对完成工作所需的资源进行精确的估计。分析改变的费用/效益比由于对软件进行变更往往是牵一发而动全身的,因此如果给出了一个变更,必须考虑到关联性的复杂情况。12可维护性可维护性是指通过一定的手段,使软件可以被维护、改进、改动或修正,以满足特定的需求的方便程度。决定要素:可理解性可测试性可修改性可移植性可重用性环境要素:维护文档运行环境维护组织维护质量13软件维护中应注意的问题(
6、二)管理方面契合组织的目标:延长软件生命、软件升级、改进的需要,但投资回报不明确。权衡消耗与收益。人力资源:吸引和维持软件维护队伍。“二等公民”误区过程:需要开发过程没有的活动,如逆向工程,管理挑战如何组织维护活动:责任到人外包:有效控制是重点,确定服务的范围以及合约细节是挑战。14软件维护中应注意的问题(三)维护费用估算参数模型M = P + K e (cd)M是维护用的总工作量,P是生产性工作量,K是经验常数,c是复杂程度,d是维护人员对软件的熟悉程度。生产性成本包括分析评价、修改设计和编码等。非生产性成本包括程序理解、数据结构解释、接口特点和性能限度等。基于经验专家判断、类推、工作分解结
7、构15软件维护过程模型IEEE维护模型图分类与鉴别阶段分析阶段设计阶段实现阶段系统测试阶段验收测试阶段交付阶段修改输入16软件维护技术程序的理解软件再工程软件逆向工程17程序的理解为了有效维护,需要阅读和理解程序,方法:1、文档理解、代码理解、注释理解2、代码浏览工具(Source Insight等)程序理解的任务:以软件维护、升级和再工程为目的,在不同的抽象级别上建立基本软件的概念模型,包括从代码本身的模型到基本应用领域的模型,即建立从问题/应用域到程序设计/实现域的映射集18程序理解的具体任务通过检查单个的程序设计结构,程序被表示成抽象语法树、符号表或普通源文本。包括手工代码阅读、人工提取
8、、程序分析、静态分析和动态分析等。尽量做到程序隐含信息的显性表示及程序内部关系的可视化。如控制流、数据流分析、程序视图构造等。从源代码中提取信息,并存放在通用的数据库中,然后通过查询语言对数据库进行查询。检查程序构造过程中的结构关系,明确表示程序组成部分之间的依赖关系。识别程序的高层概念,如标准算法、数据结构、语法及语义匹配等。19软件再工程定义软件再工程(Re-engineering)指对现有软件进行仔细审查和改造,对其进行重新构造,使之成为一个新的形式,同时包括随之产生的对新形式的实现。20软件再工程模型数据重构正向工程库存目录分析代码重构逆向工程文档重构应用系统的库存目录:系统规模、使用
9、年限、业务重要程度等信息。根据相关信息选择再工程业务,后分配资源。系统可以正常运作,并可预见能够支撑至终点,文档不变。文档必须更新,但资源有限,部分重构。系统关键业务,必须完全重构,则完全重构。某些老程序的体系结构比较合理,但是,一些模块的编码方式却是难于理解、测试和维护的。代码重构:不改变系统行为,只是对程序结构进行改变和优化,使其易于理解、测试和维护。方法:分析源代码,标记与程序设计概念相违背的部分,重构。新代码评审和测试。全范围在工程活动,对当前数据体系结构进行分解,定义必要的数据模型,表示数据对象和属性,进行质量评审。如数据结构较差,进行再工程。数据结构改变影响体系结构和代码,慎重。也
10、称为革新或改造。整个 系统代码、数据重构。正向工程过程应用现代软件工程的概念、原理、技术和方法,重新开发现有的某些应用系统。在大多数情况下,经过正向工程过程后得出的软件,不仅重新实现了现有系统的功能,而且增加了新功能,提高了整体性能。21软件逆向工程软件逆向工程(Software Reverse Engineering)是分析目标系统,识别系统的构件及其交互关系,并且通过高层抽象或其他形式来展现目标系统的过程。方法:分析系统, 抽象系统和展现系统, 从而实现协助用户理解系统的目的。-设计恢复的过程。22逆向工程过程23逆向工程主要内容一、数据的逆向工程二、处理的逆向工程三、用户界面的逆向工程四
11、、逆向工程的工具24数据的逆向过程一、数据结构提取1、模式分析:通过分析现有的结构化模式推出隐含的构造与约束,以提供一个原始的物理模式。2、程序分析:分析应用程序以及其他一些过程(如:触发器)的代码,以得到隐含的数据结构和完整性约束。3、数据分析:分析数据,以得到暗含的数据结构以及特性的数据模式,同时,对一些假设进行验证。4、模式集成:合并上述过程所得到的不同模式,最终得到完整的逻辑模式,其中包含隐式和显式的结构和约束。二、数据结构的概念化 分为以下几个步骤:去除过时的和技术性的结构以及重命名;提取相关的语义信息;对被优化的构造进行识别和变形,(逆优化);检索每一个实现构造中的源概念结构;以及
12、规范化。25处理的逆向过程为了理解过程抽象,需要在不同的抽象级别(系统级、程序级、构件级、模式级和语句级)分析代码对大型系统,通常用半自动方法完成逆向工程。使用自动化工具帮助软件工程师理解现有代码的语义,然后将该过程的结果传递给重构和正向工程工具以完成再工程过程。26用户界面的逆向工程弄清几个问题:界面必须处理的基本动作是什么?系统对这些动作的行为反应的简要描述是什么?有哪些界面的等价概念是相关的?27逆向过程的工具静态模型逆向工具Rational RoseRigiJBPAS动态模型逆向工具SCEDISVisBorland Together理论和技术还不够完善,工具支持很重要,但是无法完全依赖。28本章小结软件维护可以分为纠错性维护、适应性维护、完善性维护、预防性维护。软件维护实践中经常会遇到各种困难,需要在技术、管理方面进行考虑,并对维护费用进行估算。软件维护按IEEE 维护过程模型可以分为七个阶段。程序的理解对软件维护具有重要意义,程序理解的任务就是要揭示程序的功能与实现机制。软件的再工程是对现有软件进行仔细审查和改造,进行重新构造,最终成为一个新的形式。六种活动构成了再工程的循环模型。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利工程的风险与应对策略考核试卷
- 家电产品视觉设计与品牌形象考核试卷
- 旅游规划与市场营销考核试卷
- 热电联产在能源协同效率提升的研究考核试卷
- 洗浴服务行业服务流程优化实践考核试卷
- 灯具行业创业机遇与风险分析考核试卷
- 水电工程清洁能源发展与政策支持考核试卷
- 入围渣土清运合同标准文本
- 业务代理记账公司合同标准文本
- 煤炭制品营销案例分析考核试卷
- 【苏州工学院智能建造研究院】2025中国低空经济产业链全面解析报告
- 浙江省义乌市宾王中学教育集团2024-2025学年九年级3月作业检测道德与法治试题(原卷版+解析版)
- 2025年甘肃省兰州市政建设集团有限责任公司招聘笔试参考题库附带答案详解
- 2025世界防治结核病日主题宣传教育课件
- 2025年驾照理论测试题及答案
- 物理-安徽省天一大联考2024-2025学年(下)2025届高三3月调研考试试题和答案
- 美容行业:美容师简历
- 2024年皖西卫生职业学院单招职业技能测试题库附答案
- 房屋建筑工程 危险性较大分部分项工程巡检记录表
- 《创新创业教育基础》课程教学大纲3篇
- 各国电压一览表
评论
0/150
提交评论