第11章 软件维护

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程概论SoftwareEngineering杨璐yanglu@suda.edu.cn第11章软件维护11.1系统的变化11.2软件维护的基本内容和特点11.3软件维护的实施11.4软件的可维护性11.5软件维护的副作用11.6软件再工程11.1系统的变化软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。维护活动1.改正性维护:在任何大型程序的使用期间,用户发现程序错误,并且把问题报告给维护人员,进行诊断和改正错误的过程。2.适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动。3.完善性维护:在使用软件的过程中用户提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。4.预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件。11.1系统的变化软件系统的变化:系统的需求越依赖于客观世界,就越倾向于变化。系统的类型S-系统:有规格说明定义或来源于规格说明。在这些系统中特定的问题是根据它应用的整个环境来描述的。P-系统:可以用抽象的方式描述这个问题。然后从抽象的观点出发书写系统的需求说明。近似解E-系统:嵌入到现实世界中的,而且随着世界的变化而变化逐个解决方案建立在涉及的抽象过程的模型的基础上。11.1系统的变化系统生命周期中的变化软件开发阶段的改变导致变化的活动相应需要改变的手工材料需求分析需求说明系统设计架构设计说明技术设计说明程序设计程序设计说明程序实现程序代码程序文档模块测试测试计划测试脚本系统测试测试计划测试脚本系统提交用户文档培训工具操作员文档系统指南程序员指南培训课程11.1系统的变化系统的生命范围与系统的开发与维护相联系的,从创作到淘汰的一系列的全部耗费称为生命循环成本。通常,根据比较原始系统、修改系统和新系统生命循环的成本来决定是维护、重建还是取而代之。11.2软件维护的基本内容和特点软件维护分类:①改正性维护。在软件开发阶段,由于测试技术的局限性,必然会有某些错误未被发现一些隐藏下来的错误在运行过程中,在特定的条件下就会显现出来被用户发现。针对这种错误进行修改的维护就是改正性维护。②适应性维护。软件运行的软硬件环境随着计算机技术的飞速发展也日新月异。为适应这种环境的改变而进行的维护就是适应性维护。11.2软件维护的基本内容和特点③完善性维护。在软件的使用过程中,用户对软件功能和性能的要求总是不断变化的。例如快捷键的修改、界面风格的修改。为了满足这类要求进行的维护就是完善性维护。④预防性维护。为了提高软件的可维护性和可靠性而进行的维护就是预防性维护。维护70.8%适应性维护适应性维护25%改正性维护20%其他维护5%完善性维护50%11.2软件维护的基本内容和特点软件维护的特点非结构化维护:软件的配置中只有代码部分,而没有相应的文档说明。结构化维护:软件的配置是完整无缺的。维护请求配置理解设计交付使用修改代码理解代码功能修改代码修改设计方案规划理解测试复审测试复审NYYYNN11.2软件维护的基本内容和特点软件系统成本控制:软件维护费用、工作量软件维护的工作量分为助动性(理解代码、判明数据结构、接口特性等为主的维护活动)和生产性(分析和评价、设计修改和实现等维护活动)。维护总的工作量的估算公式:M=P+Ke(C-D)式中:M表示维护活动的总工作量;P表示生产性工作量;K表示经验常数;C表示软件的维护复杂度;D表示维护人员对软件的熟悉度;Ke(C-D)是助动性工作量。11.2软件维护的基本内容和特点影响维护工作的主要因素:①系统规模。②配套的文档。③其他因素。11.2软件维护的基本内容和特点维护中的问题①理解详细设计人员的代码是很困难的。②文档不规范。③开发人员不能实时参与。④分析和设计的缺陷。⑤维护工作的乏味。⑥用户使用者苛刻的要求。11.2软件维护的基本内容和特点软件维护的过程软件维护开始软件维护结束决定维护目标测试修改程序考虑波及影响产生维护方案理解软件通过修改文档否是11.2软件维护的基本内容和特点维护组织:维护人员、维护管理员、系统管理员、修改控制决策机构以及配置管理员是该模式维护组织的一般组成人员。修改控制部门维护申请配置管理人员维护控制员系统管理员维护工作人员11.2软件维护的基本内容和特点维护的报告和审核:维护申请单(MaintenanceRequestForm,MRF):适应性或者完善性维护。需要附加简短的修改需求说明,即需求规格说明书中应做哪些改动,如增加功能或修改界面等。软件问题报告单(SoftwareProblemReport,SPR):改正性维护。提供完整的错误情况说明,出错信息、错误发生环境等,包括交互数据清单和其他有关信息等。软件修改报告单(SoftwareChangeReport,SCR):软件修改的真正依据是SCR。包括:为满足软件问题报告实际需要的工作量。所需修改变动性质。请求修改的优先级。修改的时候数据。11.2软件维护的基本内容和特点维护过程的事件流维护申请类型类型严重性评价和分类立即进行评价优先次序评价优先次序行动通知申请者排列优先级从优先次序中选择下一任务应用软件工程方法计划组织应用资源开发新软件工作完成其他错误适应性完善性非常严重不严重否是是否11.2软件维护的基本内容和特点保存维护记录:要将维护阶段产生的文档保存到原有文档中去,完善整个软件的文档说明。新产生的维护记录应该包括三类信息:维护前软件运行情况(程序行数、指令条数、运行错误信息等)、维护对软件产生的修改情况(维护类型、SCR单、变动的程序行数与功能、维护周期等)以及数据变更情况。11.2软件维护的基本内容和特点评价维护活动①程序运行的平均失效次数,失效次数/运行次数。②每一类维护活动的总人时数。③每个程序、每种语言、每种维护类型所做的平均程序变动数。④维护阶段修改每条语句平均花费的人时数。⑤维护每种语言平均花费的人时数。⑥一张MRF或者SPR的平均周转时间。⑦各种维护类型所占的百分比。11.2软件维护的基本内容和特点软件维护的技术按照目的的不同,软件维护的技术分为两类:①面向维护的技术。面向维护的技术是软件开发阶段用来减少错误,提高软件可维护性的技术,它涉及软件开发的各个阶段。②维护支援技术。维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术。11.4软件的可维护性软件的可维护性是指软件被理解、改正、调整和改进的容易程度。软件的可维护性、可使用性和可靠性是衡量软件质量的3个主要特征,也是开发人员与用户最关心的问题。但是,到目前为止还没有普遍适用的定量度量标准。11.4软件的可维护性软件度量学的7个质量特性①可理解性。通过阅读源代码和相关文档,了解程序功能及其如何运行,对源程序的代码容易理解。②可靠性。按照用户的要求和设计目标,一个程序在给定的一段时间内正确执行的概率。③可测试性。表明论证程序正确性的容易程度。④可修改性。表明程序容易修改的程度。⑤可移植性。表明程序转移到一个新的计算机环境的容易程度的大小。⑥效率。表明一个程序能执行预定功能而又不浪费其资源的程度。⑦可使用性。表明用户使用方便、实用及易于使用的程度。11.4软件的可维护性间接地度量可维护性:维护全过程中查错—改错—验证的一个周期,即从检测出软件运行时出现的错误开始直到错误改正完成并经回归测试验证这段时间。①觉察到问题所用的时间。②收集维护工具所用的时间。③分析问题所需的时间。④形成修改说明书所用的时间。⑤修改设计与源代码所用的时间。⑥测试(部分、整体)所用的时间。⑦维护复审所用的时间。⑧完全恢复所用的时间。11.4软件的可维护性提高可维护性的方法①建立明确的软件质量目标。②使用先进的软件开发技术和工具。③进行明确的质量保证审查。④选择可维护的程序设计语言。⑤改进程序文档。11.5软件维护的副作用软件维护的副作用:因修改软件而造成的错误或其他不希望出现的情况。代码副作用①删除或修改一个子程序。②删除或改变一个语句标号。③删除或改变一个标识符。④为改进执行性能所做的修改。⑤改变文件的打开或关闭。⑥改变逻辑运算符。⑦把设计修改翻译成主代码的修改。⑧对边界条件的逻辑测试所做的修改。11.5软件维护的副作用数据副作用①重新定义局部和全程常量。②重新定义记录或文件格式。③增大或减小一个数组或高阶数据结构的大小。④修改全程数据。⑤重新初始化控制标记或指针。⑥重新排列I/O或子程序的自变量。文档副作用11.6软件再工程软件再工程就是将新技术和新工具应用于旧的软件以期增强它的功能,提高其性能的一种预防性维护技术。软件再工程不同于以完成纠错或适应需求变化为目的的一般的软件维护,它是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合,并重新构建软件,用以提高软件的各种性能。11.6软件再工程软件再工程的过程软件再工程模型,6类活动:①库存目录分析。②文档重构。③逆向工程。④代码重构。⑤数据重构。⑥正向工程。11.6软件再工程软件再工程的方法①“大爆炸”方法。②增量方法。③演化方法。小结本章主要介绍了软件维护范畴的相关知识。软件维护是软件生命周期中持续时间最长的一个阶段,所需要的人力、费用等资源也相当大。维护的内容不仅仅是对错误的修改(改正性维护),还包括适应性维护、完善性维护和预防性维护。整个维护过程需要遵循一定的顺序(软件维护的具体实施),通过一系列科学严格的步骤来完成一次维护。

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功