- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 软件维护 8.1.1 软件维护的定义 软件维护是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 软件维护的类型: 改正性维护 适应性维护 完善性维护 预防性维护 改正性维护 起因 开发时测试的不彻底、不完全,部分隐藏的错误遗留到运行阶段,在某些特定使用环境下才暴露出来。 维护活动 为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,进行的诊断和改正错误的过程,约占整个维护的20%。 例如: 特殊的输入数据组合未处理引起的故障 适应性维护 起因 运行环境的变化: 外部环境:新的硬、软件配置 数据环境:数据库、数据格式、数据输入/输出方式、数据存储介质 维护活动 使软件适应处理环境或数据要求的变化而修改软件的活动,约占整个维护的25%。 例如: 要求系统从windows转换到unix系统下运行 完善性维护 起因 用户对软件提出新的功能或性能要求。 维护活动 修改或再开发软件,以扩充软件功能,增强软件性能等。约占整个维护的50%。 例如: 修改工资管理程序,以体现新的结算方法 预防性维护 起因 为提高软件的可维护性等,以便将来进一步改进软件打基础。 维护活动 采用先进的软件工程方法对需要维护的软件或软件的某一部分(重新)进行设计、编码和测试,连同其它维护约占整个维护的5%。 例如: 将非结构化的应用软件转化成结构化的软件 各类维护的比例 8.1.1 软件维护的定义 维护的特点 非结构化维护 在软件配置的唯一成分只有程序代码的情况下所进行的维护。 结构化维护 在软件配置完整的情况下所进行的维护。 评价设计文档,确定软件的重要结构特点、性能特点及接口特点; 估量要求的改动将带来的影响,编写相应的源程序代码; 回归测试后再交付用户。 8.1.2 影响维护工作量的因素 为了有效地维护软件并控制维护的成本,应当对影响软件维护工作量的因素采取相应的维护策略。 影响软件维护工作量的因素: 系统大小 程序设计语言 系统年龄 数据库技术的应用 先进的软件开发技术 其它 8.1.2 影响维护工作量的因素 系统大小 系统越大,理解掌握起来越困难,所执行功能越复杂,需要维护的工作量越多。 程序设计语言 使用强功能的程序设计语言可以控制程序的规模,语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。 8.1.2 影响维护工作量的因素 系统年龄 老系统随着不断的修改,结构越来越乱; 维护人员经常更换,程序又变得越来越难于理解; 没有文档,或文档太少; 在长期的维护过程中文档在许多地方与程序实现变得不一致; 8.1.2 影响维护工作量的因素 数据库技术的应用 使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。 先进的软件开发技术 在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量的工作量。 8.1.2 影响维护工作量的因素 其它 应用的类型 数学模型 任务的难度 开关与标记、IF嵌套深度、索引或下标数等 许多软件在开发时并未考虑将来的修改,为软件的维护带来许多问题。 维护工作量的模型 M是维护中消耗的总工作量 p是上面描述的生产性工作量 K是一个经验常数 c是因缺乏好的设计和文档而导致复杂性的度量 d是对软件熟悉程度的度量。 模型表明:如果使用了不好的软件开发方法(未按软件工程要求做),原开发人员不能参加维护,则工作量(及成本)将按指数级增加。 8.1.3 软件维护的策略 改正性维护 要生成100%可靠的软件成本太高,通过使用新技术,减少进行改正性维护的需要。 这些技术包括:数据库管理系统、软件开发环境、程序自动生成系统,以及新的开发方法、软件复用、防错程序设计及周期性维护审查等。 8.1.3 软件维护的策略 适应性维护 这类维护不可避免,可以控制。 ①在配置管理时,把硬件、操作系统和其它相关环境因素的可能变化考虑在内。 ②把与硬件、操作系统,以及其它外围设备有关的程序归到特定的程序模块中。 ③使用内部程序列表、外部文件,以及处理的例行程序包,可为维护时修改程序提供方便。 8.1.3 软件维护的策略 完善性维护 建立软件系统的原型,把它在实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。 8.2 软件维护过程 为了有效地进行软件维护,应事先就开始做组织工作。 首先建立维
文档评论(0)