- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
XXXXXX大学软件工程SOFTWAREENGINEERING教师:XXXXX2024
教学目标:(1)理解软件维护的概念、类型、策略、软件维护的副作用和软件的可维护性;(2)掌握软件维护的实施过程;(3)理解软件再工程的概念和模型。第10章软件维护
10.1软件维护概述10.1.1软件维护的概念软件维护就是在软件产品投入使用之后,为了改正软件产品中的错误或为了满足用户对软件的新需求而修改软件的过程。软件维护不同于硬件维护,软件维护不是因为软件老化或磨损引起,而是由于软件设计不正确、不完善或使用环境的变化等引起。
10.1.2软件维护的类型软件维护的最终目的是为了满足用户对已开发产品的性能与运行环境不断提高的需要,进而达到延长软件寿命的目的。按照软件维护的目标,软件维护可分为完善性维护、适应性维护、改正性维护和预防性维护。
1.完善性维护。在功能和性能上还不能满足需求,用户可能提出新的功能及性能需求,为了满足这些需求,扩充软件功能和提高软件性能的过程称为完善性维护。2.适应性维护。随着时间的推移,软件产品的使用环境和支持平台可能发生变化,为了适应这些变化而修改软件的过程称为适应性维护。3.改正性维护。软件交付后,遇到的第一类维护问题就是软件中存在的错误。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误操作,而进行的诊断和改正错误的过程称为改正性维护。4.预防性维护。为了提高软件的可维护性、可靠性,或为了给未来的改进奠定更好的基础而修改软件的过程称为预防性维护。
10.1.3软件维护的策略1.完善性维护策略完善性维护主要采用的策略是建立软件系统的原型,把它在实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。2.适应性维护策略适应性维护主要采用以下策略。(1)在配置管理时,把硬件、操作系统和其他相关环境因素的可能变化考虑在内,可以减少某些适应性维护的工作量。(2)把硬件、操作系统,以及其它外围设备有关的程序划分到特定的程序模块中;把因环境变化而必须修改的程序局限于某些程序模块之中。(3)使用内部程序列表、外部文件以及处理的例行程序包,可为维护时修改程序提供方便。3.改正性维护策略改正性维护主要采用的策略是使用新技术,通过使用新技术可大大提高可靠性,减少进行改正性维护的需要。例如,利用数据库管理系统、软件集成开发环境、程序自动生成系统等方法可产生更加可靠的代码。
10.1.5软件的可维护性
10.2软件维护过程10.2.1软件维护机构
10.2.2软件维护申请所有的软件维护申请应按规定的方式提出。软件维护申请是在维护开始之前由用户填写的外部文件,也可称为修改申请单或软件问题报告单。改正性维护的申请单一般提供完整的错误情况说明、错误发生的环境,包括输入/输出数据清单和其它有关材料。若申请适应性维护或完善性维护,一般仅需提供简要的修改需求说明。软件维护申请应该提交给维护管理员,经批准后才能开始进一步安排维护工作。
10.2.3软件维护工作流程
10.3软件再工程1.库存目录分析库存目录一般是包含提供详细描述信息的一个电子表格模型。按照业务关键性、年份、当前可维护性以及其它局部标准排序库存目录信息,从中得到再工程的候选对象。然后,针对再工程工作的候选对象分配资源。2.文档重构缺少文档是很多待维护系统共同存在的问题。建立文档一般分为三种情况进行处理。情况之一是,如果系统能够正常运作,则保持其现状;情况之二是,仅对系统当前正在进行改变的部分程序建立完整的文档;情况之三是,系统的业务非常关键,必须完全地为此重构文档。3.逆向工程逆向工程是一个对已有系统分析的过程,通过分析识别出系统中的模块、组件及它们之间的关系,并以另一种形式或在更高的抽象层次上,创建出系统表示。逆向工程的目的就是在缺少文档说明、或根本没有文档的情况下,还原出软件系统的设计结构、需求实现,并尽可能地找出内部的各种联系,相应的接口等,从而恢复已遗失的信息,发现存在的缺陷,生成可变换的系统视图,综合出较高的抽象表示。
4.代码重构代码重构是软件再工程中最常见的活动,代码重构的目标是产生提供具有相同功能、但比原程序质量更高的程序的设计。通常情况下,可以使用重构工具分析源代码,标注出存在问题的部分,然后再重构这些代码。5.数据重构首先进行数据分析,即对数据定义、文件描述、输入输出以及接口描述的程序语句进行评估,其目的是抽取数据项和对象,获取关于数据流的信息,以及理解现存实现的数据结构。数据分析完成后开始数据重设计,包括数据记录标准化、文件格式转换、数据库类型转换等。6.正向工程
本章小节
文档评论(0)