软件维护

372

 如今,软件工程已经成为重要的学科之一,它让所有事情变得简单有条理,它代替了人脑处理了各种纷繁复杂的信息,完成了各项事物。但是,不会存在完美的软件,随着要处理的事物复杂性越来越高,对软件的要求也越来越高,为了保证软件能够按质按量地完成人们的工作,不断对软件进行维护也就成为了软件工程的一部分,其重要性也显而易见,好的软件维护能够让软件的寿命更久,也更能满足人们的需求。

     在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。

维护的类型有四种:

1.改正性维护:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。

2.适应性维护:在使用过程中,外部环境(新的硬、软件配置),数据环境(数据库、

数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。

3.完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。

为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。

4.预防性维护:预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改

进软件打下良好基础。预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。

     在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。

影响维护工作量的因素

在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成本。影响因素如下:

• 系统大小:系统越大,理解掌握起来越困难。系统越大,所执行功能越复杂。因而需要更多的维护工作量。

• 程序设计语言:使用强功能的程序设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。

• 系统年龄:老系统随着不断的修改,结构越来越乱;维护人员经常更换,程序又变得越来越难于理解。许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文档太少。在长期的维护过程中文档在许多地方与程序实现变得不一致,在维护时就会遇到很大困难。

• 数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。

• 先进的软件开发技术:在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量的工作量。

软件维护的策略

• 改正性维护:通常要生成100%可靠的软件并不一定合算,成本太高。但通过使用

新技术,可大大减少进行改正性维护的需要。这些技术包括:数据库管理系统、软件开发环境、程序自动生成系统、较高级(第四代)的语言。以及新的开发方法、软件复用、防错程序设计及周期性维护审查等。

• 适应性维护:这一类维护不可避免,但可以控制。

(1) 在配置管理时,把硬件、操作系统和其它相关环境因素的可能变化考虑在内。

(2) 把与硬件、操作系统,以及其它外围设备有关的程序归到特定的程序模块中。

(3) 使用内部程序列表、外部文件,以及处理的例行程序包,可为维护时修改程序提供方便。

• 完善性维护:利用前两类维护中列举的方法,也可以减少这一类维护。特别是数据

库管理系统、程序生成器、应用软件包,可减少维护工作量。此外,建立软件系统的原型,把它在实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。

软件维护活动

为了有效地进行软件维护,应事先就开始做组织工作;

A.首先建立维护的机构;

B.申明提出维护申请报告的过程及评价的过程;

C.为每一个维护申请规定标准的处理步骤;

D.建立维护活动的登记制度以及规定评价和评审的标准。


分享到: