预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共25页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章软件维护7.1软件维护的概念7.1.1软件维护的定义7.1.2软件维护的种类1.改正性维护在软件交付使用后,由于开发时测试的不彻底、不完全,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏的错误在某些特定的使用环境中就会暴露。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用而进行的诊断和改正错误的过程,就叫做改正性维护。2.适应性维护随着计算机技术的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而修改软件的过程就叫做适应性维护。3.完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。4.预防性维护除了以上3类维护之外,还有一类维护活动,叫做预防性维护,这种维护活动为了提高软件的可维护性、可靠性,为以后进一步改进软件打下良好基础。7.1.3软件维护的策略2.适应性维护策略适应性维护不可避免,但可以控制。(1)配置管理适应性维护时就考虑到硬件变化,以及操作系统和其他相关环境因素的可能变化,可以减少某些适应性维护的工作量。(2)将与硬件、操作系统,以及其他外围设备有关的程序归到特定的程序模块中,也可以减少某些适应性维护的工作量。(3)使用内部程序列表、外部文件以及处理的例行程序包,可为维护时修改程序提供参考。3.完善性维护策略用前两类维护中列举的方法,也可以减少完善性维护的工作量。此外,通过为用户提供软件系统的原型,使用户通过研究原型进一步完善他们的功能要求,同样可以减少完善性维护。7.1.4软件维护的代价7.2软件维护的实施7.2.1维护组织7.2.2维护申请报告7.2.3软件维护工作流程7.2.4维护评价7.3软件可维护性7.3.1软件可维护性的定义7.3.2软件可维护性度量2.可靠性可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的标准主要有:(1)平均失效间隔时间MTTF,即两次失效之间的平均操作时间。(2)平均修复时间MTTR,即修复一个故障平均需用的时间。(3)有效性A=(MTTF/(MTTF+MTTR))。度量可靠性的方法,主要有两种:(1)根据程序错误统计数字进行可靠性预测。(2)根据程序复杂性预测软件可靠性。3.可测试性可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。设计合适的测试用例,取决于对程序的全面理解。因此,一个可测试的程序应当是可理解的、可靠的。对于程序模块,可用程序复杂性来度量可测试性。程序的环路复杂性越大,程序的路径就越多,全面测试程序的难度也就越大。4.可修改性可修改性表明程序容易修改的程度。一个可修改的程序应当是可理解的、通用的、灵活的。其中,通用性是指程序适用于各种功能变化而无需修改,灵活性是指能够容易地对程序进行修改。5.可移植性可移植性表明程序转移到一个新的计算环境的可能性的大小,或者表明程序可以有效地在各种环境中运行的容易程度。一个可移植的程序应具有结构良好、灵活,不依赖于某一具体计算机或操作系统的性能。6.效率效率表明一个程序能执行预定功能而又不浪费机器资源的程度。这些机器资源包括内存容量、外存容量、通道容量和执行时间。7.可使用性从用户观点出发,把可使用性定义为程序方便、实用、易于使用的程度。一个可用程序应当是易于使用的,能允许用户出错,并尽可能不使用户陷入混乱状态的程序。7.3.3提高软件可维护性的方法7.3.4软件维护的副作用第7章结束