锋行天下

生命不息,奋斗不止

导航

一个典型的软件生命周期

Posted on 2012-07-23 00:47  Romant Sun  阅读(424)  评论(0)    收藏  举报

 

一个软件项目开始了。系统设计师们拿到了系统的设计要求,这个设计要求可能是一叠非常正规的文件,上面盖着客户的合同专用章,也可能只是几页草稿纸和一个口头协议。无论是哪种情况,现在系统设计师们开始进行系统设计了。

 

这个系统毫无疑问将是一个优美的系统。系统的美,首先存在于设计者们的头脑之中,然后存在于设计图纸之上,随后变成一个原型系统,最后变成一个真实的、有血有肉、可以交付客户使用的成品。

 

设计师们喜欢看它运行,程序员喜欢它的每一个功能键和图形界面,而客户终于看到花出去的钱变成了现实。这个时候,这个系统就像一个美少女一样,毫无疑问是纯净的、优美的、动人心弦的。

 

但是不久事情就开始发生了变化。客户看了运行中的系统,又提出了一些“小小的”修改要求,这些要求都是客户在提出系统设计要求的时候遗忘的一些“小”问题。设计师们讨论之后,给出了一些设计上的修改。由于这些修改与现有系统的设计不一定相容,所以设计师们不得不采取一些权宜之计,使得这些修改就像一个美丽少女脸上的青春痘。但是好像所有的软件都不能避免这些“青春痘”似的东西的出现,所以一切还不是很糟。

 

可是事情并没有就此结束,这些小痘痘越来越多,而且其中有一些变成了系统的肿瘤。随着时间的流逝,这些肿瘤变成了系统中最主要的组成部分,当初的美少女变成了一推丑陋不堪、日渐“腐烂”的代码,以至于没有人愿意去维护它。人们把它叫做 legacy 系统,而不得不去维护这个 legacy 系统的人们,会天天诅咒设计这个系统的设计师:“是谁设计出这么丑陋的一个东西?”
 

经过一段漫长的时间之后,“苦难”终于就要结束了!在抱怨了软件系统的维护之昂贵后,客户决定投入一笔资金,一个新的系统将被设计出来,而这个新系统将具有这个正在死去的系统的所有功能(当然还包括一些新的功能),并且取代这个已经“腐烂”的系统。

 

大家想想,这个新系统会面临什么样的命运呢?