软件维护的分类课件.ppt

上传人(卖家):ziliao2023 文档编号:5635852 上传时间:2023-04-28 格式:PPT 页数:26 大小:491KB
下载 相关 举报
软件维护的分类课件.ppt_第1页
第1页 / 共26页
软件维护的分类课件.ppt_第2页
第2页 / 共26页
软件维护的分类课件.ppt_第3页
第3页 / 共26页
软件维护的分类课件.ppt_第4页
第4页 / 共26页
软件维护的分类课件.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、西安交通大学 刘海岩1l软件维护的概念l软件维护的活动l软件的可维护性l软件再工程西安交通大学 刘海岩2 当软件系统在实际环境被用户使用时,软件开发宣告结束。但软件总是要变化的,在软件交付使用后修改软件的过程称为软件维护。软件维护一般不包括重大的体系结构的改变,变更的实现方法一般是修改已有的系统构件以及在必要的地方添加新构件到系统中。1、软件维护的分类、软件维护的分类 改正性维护:修改软件缺陷。适应性维护:适应变更的操作环境(硬件、操作系统 平台、其他支持软件)。增强性维护:系统需求改变(机构因素、业务改变)。西安交通大学 刘海岩3 Lientz和Swanson(1980)对维护的工作量做过调

2、查,如图所示。Nosek和Palvia(1990)在十年后给出的数据与此相似。适应性维护和增强 性维护占了绝大部分工 作量。维护是系统开发 过程的自然延续,同样 也涉及到需求描述、设 计、实现和测试活动。西安交通大学 刘海岩42、维护的成本、维护的成本 维护成本和开发成本的比例在不同的应用域中是不同的。Guimaraes(1983)的研究表明,对于业务应用系统,维护成本和系统开发成本大体相等。对于嵌入式实时系统,维护费用是开发成本的四倍以上。带来高维护费用的关键因素:人员的不稳定 合同责任 维护人员技术水平 系统结构衰退 遗留系统的结构受到频繁变更的破坏;没有使用现代的软件工程技术开发;文档不

3、全、不一致;没有采用配置管理,系统变更时在寻找系统构件的合适版本上浪费时间。西安交通大学 刘海岩5 Belady和Lehman提出了一个计算维护工作量的模型:MpKe(c d)其中 M:软件维护所有的工作量;p:生产性工作量(分析、设计、编码及测试);K:经验常数;c:复杂程度;d:维护人员对软件的熟悉程度。该模型描述了影响维护的诸多因素中重要的关系。如果一个系统开发没有遵循软件工程原则,软件结构不好,c的值就会很高,再加上维护人员对软件的不熟悉,d的值很低。结果是,维护的成本呈指数级的增长。西安交通大学 刘海岩6 如何降低软件维护的费用?如何降低软件维护的费用?(1)从开发阶段的一开始就按质

4、量标准构建系统,给予“可维护性”属性以足够的重视,这样可以使系统的整个生命周期成本减少。下图说明了这个问题。系统1在开发成本中多投入$25000,用于提高系统的可维护性,结果在整个生命周期中节省了$100 000的维护成本。西安交通大学 刘海岩7 (2)采用演化式的系统开发模型(如增量、螺旋),建立能结合新需求而演化和变更的系统。(3)实施软件再工程,改善系统结构,提高可维护性。西安交通大学 刘海岩8 Pfleeger和Bohner(1990)提出了软件维护的一种模型,其中包含了度量的反馈,见下图:西安交通大学 刘海岩9 该图说明了当要求进行一项变动时要执行的活动,底部带标注的箭头代表提供的度

5、量信息,管理人员利用这些信息决定什么时候和怎样进行变动。维护活动:维护活动:(1)变更分析 各种变更带来的的负面影响:产生不正确或不完整的补丁软件、结构很差的设计与编码、构件不标准等等。这些负面影响使软件复杂性增加,更不易理解。因此对变更的成本、影响要进行分析。(2)理解变更,规划新版本 根据变更的类型(缺陷修正、适应性调整或增加新功能),决定哪些变更在下一个版本中完成。西安交通大学 刘海岩10 (3)实现变更 分析系统变更的需求(如有必要,可对提出的变更建立原型),对系统构件重新设计,编码、测试。软件开发中重要的配置管理思想在这里同样适用。对于紧急变更,保证更快速度完成比保证变更过程规范化更

6、重要。(4)后果分析 维护活动中改动的是需求、设计与代码构件、测试用例以及文档等工作产品。一个工作产品的质量可能影响到其他工作产品,Pfleeger(1990)提出必须建立并跟踪工作产品之间的关系,帮助我们评估一个构件的变更对所有其他构件的影响。下图展示了工作产品之间的关系及可追踪性:西安交通大学 刘海岩11R1R2R3RiD1D2D3Dj.水平追踪连接水平追踪连接C1C2C3Ck.T1T2T3Tn.垂直追踪连接垂直追踪连接需求需求设计设计代码代码测试测试工作产品的追踪图工作产品的追踪图西安交通大学 刘海岩12 其中:每个矩形框内的结点表示为该阶段产生的工作产品或构件。构件及之间的实线箭头构成

7、了度量产品度量产品的垂直跟踪图的垂直跟踪图。某一阶段内(矩形框内),在产品变动前后分别对以下度量指标求值:结点总数、指向一个结点的边数(该结点的入度)、一个结点发出的边数(出度)、环路数。Pfleeger提出计算最小路径集,如果变动后覆盖的路径增加,或者结点的入度、出度增加,则系统会更复杂、更难于维护。利用此信息,维护组可能决定用另一种方式实现或者取消该变动。虚线箭头连接的图构成了系统的水平跟踪图水平跟踪图,代表了对变动的一个过程的度量过程的度量。每一对工作产品:需求产品与设计产品,设计产品与代码产品,代码产品与测试用例,在两者之间形成关系子图,度量规模和复杂性关系,从而得出负面影响。还可浏览

8、整个水平跟踪图,了解变动后总的可追踪性变得更复杂还是简单了。西安交通大学 刘海岩13 软件的可维护性、可靠性和可用性是衡量软件质量的几个主要特性,是用户最关心的几个问题。软件可维护性可定性地定义为:维护人员理解、改正、改动和改进这个软件的难易程度。1 1、用于衡量可维护性的软件特性、用于衡量可维护性的软件特性:可用下面 7 7个质量特性来衡量:可理解性、可测试性、可修改性、可靠性、可移植性、可理解性、可测试性、可修改性、可靠性、可移植性、可使用性可使用性和效率效率。对于不同类型的维护,这7种特性的侧重点也不相同。要将这些质量要求贯彻到各开发阶段的各步骤中。软件的可维护性是产品投入运行以前各阶段

9、针对上述各质量特性要求进行开发的最终结果。西安交通大学 刘海岩14 开发阶段 可维护性因素 需求分析 明确维护的范围和责任。检查每条需求,分析维护时可能需要的支持。明确哪些资源可能会变化以及带来的影响。了解系统可能的扩展与变更。设计阶段 设计系统扩展、压缩或变更的方法(如将变动 部分与稳定部分分离)。做一些变更或适应不同软硬件环境的实验。遵循高内聚、低耦合原则。设计界面不受系统内部变更的影响。每一个模块只完成一个功能。西安交通大学 刘海岩15编码阶段 检查源程序与文档的一致性。检查源程序的可理解性。源程序是否符合编码规范。测试阶段 维护人员与测试人员一起按照需求文档和设 计文档测试软件的有效性

10、、可用性。维护人员将收集的出错信息分类统计,为今 后的维护奠定基础。西安交通大学 刘海岩162、可维护性的度量、可维护性的度量 (1)使用质量检查表度量一个可维护性的软件的7种特性。质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单,检查者对表上的每一个问题,回答“是”或“否”。(2)间接地度量可维护性(面向时间的度量):察觉到问题所耗的时间;分析问题所用的时间;形成修改说明所需时间;修改所用时间;局部测试所用时间;整体测试所用时间;维护复审所用时间;完全恢复所用时间。有关设计结构和软件复杂性的度量也可间接说明软件的可维护性。西安交通大学 刘海岩173、如何提高软件的可维护性、如何提

11、高软件的可维护性 (1)建立明确的软件质量目标;有一些特性是相互促进的,有一些是相互矛盾的,根据用途不同或计算机环境不同,确定最重要的特性。(2)使用先进的开发技术和工具;传统方法开发的软件结构紧密相关于所要完成的功能,结构不稳定。(3)建立明确的质量保证措施;在各里程碑处检查与可维护性相关的软件特性。(见下图)西安交通大学 刘海岩18各里程碑处对与可维护性相关的软件特性的检查:(4)选择易理解、易编程的语言,如4GL;(5)建立完整、一致和正确的文档。分析分析设计设计编码编码测试测试验收验收配置配置复审复审可靠性可靠性可移植性可移植性可用性可用性可理解性可理解性可修改性可修改性可测试性可测试

12、性可理解性可理解性可修改性可修改性可移植性可移植性效率效率可靠性可靠性效率效率完整性完整性一致性一致性可理解性可理解性西安交通大学 刘海岩19 在许多有大量软件的企业中,维护这些软件是一个挑战!如一个保险公司使用多种实现语言在不同平台上支持许多不同的应用程序,例如有一个应用程序处理某种类型的保险单、保单持有人信息、保险统计与记帐信息。这样的保单可能要维持数十年。有时不到最后一个保单持有人死亡并且每一项索赔都得到支付,是不可能报废软件的。这些软件有的已老化,虽然经常出错,但对业务处理提供了有力的支持。企业还要依赖这些系统,却很难决定怎样使这些系统更易于维护。其选择可能是扩充或者用新技术替换;每种

13、选择都希望在成本尽可能低的情况下保持或者增加软件质量。因此软件再工程软件再工程是试图增加当前系统(或称遗留系统)的总体质量、提高可维护性的工程。西安交通大学 刘海岩20 软件再工程与新开发软件之间的重要差别表现在开发的起点上。再工程开始于已有的系统,通过改善原始系统的结构和产生新的系统文档,使之更容易理解、更易于维护。实施软件再工程的优越性是:(1)减少重新开发软件的风险 (9)降低开发软件的成本 再工程的成本比重新开发要小的多。Ulrich(1990)引用了一个商业系统的例子:重新实现预算5000万美元,经过再工程,仅用了1200万美元,是重新开发费用的四分之一。因此当一个系统有很高的业务价

14、值同时需要很高的维护费用时,对该系统实施再工程是个经济的办法。软件再工程过程中的活动主要包括以下几个方面:西安交通大学 刘海岩21 文档重构(redocument)结构重组(restructuring)逆向工程(reverse engineering)再工程(reengineering)西安交通大学 刘海岩221、文档重构、文档重构 对源代码进行静态分析,产生以下用图标和文本表示的信息:构件的调用关系 类或构件的层次关系 数据接口表 数据词典信息 数据流图、控制流图、实体-关系图、结构图 伪代码 测试路径 构件与变量的交叉引用 图形、文本、表格信息用来帮助维护人员理解代码,评估一个系统是否需要

15、结构重组。西安交通大学 刘海岩23 2、结构重组、结构重组 使用CASE工具分析源代码,产生内部表示(语义网或有向图)并利用转换技术对内部表示进行精化,产生结构良好的系统代码。3、逆向工程、逆向工程 和文档重构一样,从系统的源代码中得出系统的说明和设计等信息,把这种信息求精与简化并储存成表格以被后用。逆向工程的关键在于它从详细的源代码实现中抽取出抽象说明的能力。对于实时系统,由于频繁的性能优化,实现与设计之间的对应关系比较松散,设计信息不易抽取。西安交通大学 刘海岩24 4、再工程、再工程 是逆向工程的扩展。根据抽取出的信息,在不改变整个系统功能的前提下产生新的源代码。(1)进行逆向工程,然后

16、用当前新的方法对内部表示进行修改,以便详细说明和设计软件;(2)纠正并完善软件系统模型;(3)根据新的说明或设计产生新系统。再工程过程的输入:包括源程序文件、数据库文件、屏幕生成文件等与系统相关的文件。再工程过程的输出:系统说明、设计、源程序等所有文档。西安交通大学 刘海岩25 5、软件再工程的问题与前景、软件再工程的问题与前景(Pfleeger)(1)需要自动化工具的支持 有可以标识、分析并提出源代码中的信息的工具,但它们不能重构、获取及表达设计抽象这些没有直接表示在源代码中的信息。(2)源代码中没有包含原设计的太多信息,缺失的信息必须从推论中重构。逆向工程的尝试最好是容易理解的、稳定领域中

17、出现的信息系统。(3)在其他领域,只有用代码中隐含的信息、现有的设计文档、人员的经验以及问题域的全面了解,才能进行设计恢复。(4)设计符号的形式化和领域模型的引入,将扩展我们理解与维护软件时用到的信息。期望转换技术的提高,支持更多的应用领域 并提高再工程的自动化。西安交通大学 刘海岩261、什么是软件维护?分为哪几类?2、软件生存期内为何维护的成本最高?如何降低软件维护的成本?3、软件维护有哪些活动?如何进行维护后果分析?4、软件的可维护性指什么?与可维护性相关的质量属性是什么?如何提高软件的可维护性?5、请说明软件再工程的意义,与新开发软件有何区别?软件再工程中有哪些活动?解释这些活动的含义。

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件维护的分类课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|