笔趣阁
会员书架
首页 >其他小说 >软件工程思想 > 第23章

第23章(第1 / 3页)

上一章 章节目录 加入书签 下一页
推荐小说:

以下一些因素将导致维护工作变得困难:

(1)软件人员经常流动,当需要对某些程序进行维护时,可能已找不到原来的开发人员。只好让新手去“攻读”那些程序。

(2)人们一般难以读懂他人的程序。在勉强接受这类任务时,心里不免嘀咕:“我又不是他肚子里的虫子,怎么知道他如何编程。”

(3)当没有文档或者文档很差时,你简直不知道如何下手。

(4)很多程序在设计时没有考虑到将来要改动,程序之间相互交织,触一而牵百。即使有很好的文档,你也不敢轻举妄动,否则你有可能陷进错误堆里。

8.1节将介绍“软件维护的常识”,对维护活动进行分类,并解释为什么维护比较困难。

软件公司的经理们没有哪一个喜欢被维护的费用吓一跳,但软件维护的代价通常是高昂的。7.2节将说明影响维护代价的一些主要技术因素与非技术因素。

如果希望提高已有软件的质量并且提高商业竞争力,却又无法靠维护来实现,只好对已有软件进行全部或者部分的改造,这种活动叫再生工程(Reengineering)。7.3节将解释什么是再生工程,并论述再生工程的三种类型:重构(Restructure)、逆向工程(ReverseEngineering)和前向工程(ForwardEngineering)。

8.1软件维护的常识

对软件而言,“维护”是个不太直观的术语,因为软件产品在重复使用时不会被磨损,并不需要进行像对车辆或电器那样的维护。软件维护是人们对既丰富多彩又会令人心酸的活动的统称。其中丰富多彩的活动是指那些反映客观世界变化、能使软件系统更加完善的修改和扩充工作。令人心酸的活动是指那些永无修止、并且改了旧错却引起新错让人欲哭无泪的工作。

(5)如果软件发行了多个版本,要追踪软件的演化非常困难。

(6)维护将会产生不良的副作用,不论是修改代码、数据或文档,都有可能产生新的错误。

(7)维护工作毫无吸引力。高水平的程序员自然不愿主动去做,而公司也舍不得让高水平的程序员去做。带着低沉情绪的低水平的程序员只会把维护工作搞得一塌糊涂。

一些学者将软件维护划分为主要的三类:纠错性维护(Correctivemaintenance)、适应性维护(Adaptivemaintenance)和完善性维护(Perfectivemaintenance):

(1)纠错性维护。由于前期的测试不可能揭露软件系统中所有替在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。

(2)适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。

(3)完善性维护。在软件的正常使用过程中,用户还会不断提出新的需求。为了满足用户新的需求而增加软件功能的活动称为完善性维护。

Lientz和Swanson调查发现(1980年),完善性维护约占65%,适应性维护约占18%,纠错性维护约占17%[Sommerville1992]。上述调查已是20年前的事了,我们不必太关心具体的比例,心里有数即可。

点击切换 [繁体版]    [简体版]
上一章 章节目录 加入书签 下一页