页数:50页文件大小:193.2 KB来源: 软件工程ppt课件
本课件讲解软件维护的定义与四类维护活动、结构化与非结构化维护的差别、维护过程与影响可维护性的因素,并介绍预防性维护与软件再工程过程的六个步骤。
第8章 维护:第8章:维护软件维护是软件生命周期的最后一个阶段。它的任务是:维护软件的正常运行,不断改进软件的性能和质量,为软件的进一步推广应用和更新替换做积极工作
软件维护的工作量:软件维护所需的工作量非常大,一般说来,大型软件的维护成本高达开发总成本的四倍左右。目前,软件开发组织把60%以上的工作量用于维护自己的软件上
软件交付使用:问题:软件交付使用软件验收测试以后,就标志着软件设计开发阶段的结束。而软件交付用户使用,才真正标志漫长的维护阶段的开始
软件交付是一个过程:软件交付使用就是新系统和旧系统的转换。旧系统可能是人工作业系统,也可能是某个旧的计算机系统。软件交付应该是一个过程,而不是一个突然事件,软件的交付使用应尽可能平稳过渡,不影响生产或工作,新系统逐步安全地取代旧系统
软件交付使用的工作
直接方式
直接方式的风险与应对:由于新系统没有承担过实际工作,可能会出现意想不到的问题,甚至出现程序设计错误。因此,实际应用时,采取一些措施,以便新系统一旦出错,旧系统能够恢复运行。直接方式不适用于一些关系重大的系统
并行方式:2)并行方式旧系统新系统(b)并行方式一些关系重大的软件产品在验收测试后,并不立即投入生产性运行,而是同时运行新系统和旧系统,以比较处理结果,这就是并行方式
并行方式的优缺点
逐步方式:3)逐步方式逐步方式是将软件分期,部分地交付使用。这种方式克服了上面两种方式的缺点,既能防止直接转换产生的危险性,又能减少并行方式的费用。但是这种方法使得整个系统中一部分是旧系统,一部分是新系统,所以必须考虑好它们的相互配合问题和接口问题
混合交付方式:实际应用中,常常是混合以上几种方法。对系统不重要的部分采用直接方式,对系统重要部分采用并行方式,使系统平稳交付使用
软件维护的原因(上)
软件维护的原因(下):3)用户和数据处理人员在使用时常提出改进现有功能、增加新功能、以及改善总体性能的要求,为满足这些要求,需要修改软件
改正性维护:1)改正性维护交付给用户使用的软件,即使通过严格的测试,仍可能有一些潜在的错误在用户使用的过程中发现和修改。诊断和改正错误的过程称为改正性维护。8.1.2软件维护的类型
适应性维护:2)适应性维护随着计算机的飞速发展,新的硬件系统和外部设备时常更新和升级,一些数据库环境、数据输入/输出方式、数据存储介质等也可能发生变换。为了使软件适应这些环境变化而修改软件的过程叫做适应性维护
完善性维护:3)完善性维护在软件投入使用过程中,用户可能还会有新的功能和性能要求,可能会提出增加新功能、修改现有功能等要求。为了满足这类要求而进行的维护称为完善性维护
预防性维护:4)预防性维护为了改进软件未来的可维护性或可靠性,或者为了给未来的改进奠定更好的基础而进行的修改,称为预防性维护。这种维护活动在实践中比较少见
各类维护所占比例:在各类维护中,完善性维护占软件维护工作的大部分。根据国外的数据统计表明,完善性维护占全部维护活动的50%~66%,改正性维护占17%~21%,适应性维护占18%~25%,其它维护活动占4%左右
结构化与非结构化维护
维护的有形代价:软件维护的代价表现为有形代价和无形代价。有形代价指软件维护的费用开支。70年代,用于软件维护的费用只占软件总预算的30%~40%,80年代上升到60%左右,90年代许多软件项目的维护经费预算达到了80%。8.2.2软件维护的代价1.有形代价与无形代价
维护的无形代价
软件维护工作量:软件维护所花费的工作量,一部分用于生产性活动,如分析、评价、修改设计、编写程序等;另一部分用于非生产性活动,如理解代码的含义、解释数据结构和接口特点等
Belady与Lehman模型:Belady和Lehman提出了一种维护工作量模型:M=P+Ke(c-d)其中:M:用于维护工作的总工作量;P:生产性工作量;K:经验常数;c:因缺乏好的设计和文档而导致软件复杂性的度量;d:维护人员对软件熟悉程度的度量
维护工作量模型的结论:上述模型指出:如果使用了不好的软件开发方法,原来参加开发的人员或小组不能参加维护,则工作量和成本将按指数级增加
软件维护的典型问题(上)
软件维护的典型问题(下)
维护组织:软件维护过程1.维护组织…维护要求(软件问题报告)维护管理员系统管理员软件系统变化授权人图
维护报告:根据软件问题报告(维护要求),作出的软件修改报告包含的信息主要有
维护的事件流:类型开始分析问题评价优先度计划改正进度开始分析维护任务复审估量错误严重程度维护要求错误严重适应完善不严重错误改正目录开发目录高低分配的人员分配的人员修改后的软件配置复审后供使用的软件配置图8.2维护阶段的工作流程⊕⊕⊕⊕
保存维护记录
评价维护活动
软件的可维护性:软件可维护性是:维护人员理解、改正和改进软件的难易程度。一个软件的可维护性,主要由三个因素决定:1.可理解性可理解性表现为外来读者理解软件的结构、接口、功能和内部过程的难易程度
影响可理解性的因素:影响软件可理解性的重要因素有:模块化、结构化设计、详细的设计文档资料、源代码内部文档、良好的程序设计语言等。2.可测试性在设计开发阶段应该注意尽量把软件设计成容易测试和容易诊断的,可用的测试工具和调试工具对测试和诊断非常重要
可测试性与可修改性:可修改性软件的可修改程度与软件设计阶段采用的原则和策略是直接相关的。如:模块的耦合、内聚、控制范围和作用范围、局部化程度都直接影响软件的可修改性
可移植性与可重用性
文档的分类
可维护性复审:测试结束时进行正式的可维护性复审,称为配置复审,目的是:保证软件配置的所有成分是完整的、一致的和可理解的
影响维护工作量的因素:在软件的维护过程中,花费的大量工作量会直接影响软件的成本。因此,应当考虑有哪些因素会影响软件维护的工作量,应该采取什么维护策略,才能有效地维护软件并控制维护的成本
系统大小与程序设计语言:影响软件维护工作量的因素有
系统年龄与数据库技术
先进的软件开发技术
预防性维护的做法
进行预防性维护的理由
软件再工程过程:正向工程库存目录分析文档重构逆向工程代码重构数据重构活动以线性顺序发生,但并非总是这样。对于任意一个特定循环,可在完成任意一个活动后终止
再工程活动(上):该模型定义的6
再工程活动(下)
第8章小结:◇软件维护手册主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。◇软件问题报告指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。◇软件修改报告软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批
开发进度月报:软件工程开发中其它重要的文档◇开发进度月报该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等
项目开发总结报告:◇项目开发总结报告软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。软件工程开发中其它重要的文档
用户操作手册:◇用户操作手册本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。软件工程开发中其它重要的文档
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}