1 引言
2 维护
在软件产品被开发出来并交付用户使用之后,就进入了软件的运行维护阶段。这个阶段是软件生命周期的最后一个阶段,其基本任务是保证软件在一个相当长的时期能够正常运行。 软件维护需要的工作量很大,平均说来,大型软件的维护成本高达开发成本的4倍左右。 软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。
2.1 维护的定义
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。可以通过描述软件交付使用后可能进行的4项活动,具体地定义软件维护。
2.1.1 改正性维护
因为软件测试不可能暴露出一个大型软件系统中所有潜藏的错误,所以必然会有第一项维护活动: 在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。把诊断和改正错误的过程称为改正性维护。
2.1.2 适应性维护
因此,适应性维护,也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。
2.1.3 完善性维护
当一个软件系统顺利地运行时,常常出现第三项维护活动:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行完善性维护。这项维护活动通常占软件维护工作的大部分。
2.1.4 预防性维护
当为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,出现了第四项维护活动。这项维护活动通常称为预防性维护,目前这项维护活动相对比较少。
2.2 软件维护的特点
2.2.1 结构化维护和非结构化维护差别巨大
2.2.2 软件的维护成本代价高昂
2.2.3 维护的问题很多
2.3 软件维护过程
2.3.1 软件维护的本质
维护过程本质上是修改和压缩了的软件定义和开发过程,而且事实上远在提出一项维护要求之前,与软件维护有关的工作已经开始了。
首先必须建立一个维护组织
随后必须确定报告和评价的过程
而且必须为每个维护要求规定一个标准化的事件序列
此外,还应该建立一个适用于维护活动的记录保管过程,并且规定复审标准。
2.4 软件的可维护性
维护人员理解、改正、改动或改进这个软件的难易程度。
2.4.1 决定软件可维护性的因素
可理解性可测试性
可修改性
可移植性
可重用性
2.4.2 文档
文档是影响软件可维护性的决定因素。由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档比程序代码更重要。软件文档应该满足下述要求:
必须描述如何使用这个系统,没有这种描述时即使是最
简单的系统也无法使用。
(2) 必须描述怎样安装和管理这个系统。
(3) 必须描述系统需求和设计。
(4) 必须描述系统的实现和测试,以便使系统成为可维护的
文档可以分为用户文档和系统文档两类。
1.用户文档
用户文档是用户了解系统的第一步,它应该能使用户获得对系统的准确的初步印象。
(1)功能描述
(2) 安装文档
(3) 使用手册
(4) 参考手册(要完整)
(5) 操作员指南(如果需要有系统操作员的话)
所谓系统文档指从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是极端重要的。
和用户文档类似,系统文档的结构也应该能把读者从对系统概貌的了解,引导到对系统每个方面每个特点的更形式化更具体的认识。
2.4.3 可维护性复审
2.5 预防性维护
2.6 软件再工程过程
3 结束语
编译原理实验二的代码没有写出来。。。。