在介绍软件工程的书中,都会讲到瀑布式软件过程。尽管 瀑布式软件过程已不是根实用,但它有助于埋解和掌握做软件的规律。
在过去的十多年中,专家们指出了做软件所要涉及的主要工作,大致上分为七个环节。
第一个环节是需求分析。
主要是了解用户的需求,最终要落实到一份或一套需求文件中。在文件中描述用户所要的软件系统是什么样子。
第二个环节是结构设计。
通过结构设计,提出一十解央方案,米满足用户的需求。
第二个环节是详细设计。
对于需要组建一个团队来开发的软件系统,其可划分成子系统,子系统叉可划分成模块。详细设计就足定义模块中的接口、数据结构和算法。
第四个环节是编码和调试。
第五个环节是单元测试。
确保所做的模块足可以用的,基本上没有错谋,或没有很容易发现的错误。
第六个环节是系统测试。
两个模块都没有错误,但它们合起来并不能肯定没有问题。通过系统测试,软件就可以交付给用户使用了。
第七十环节是软件维护。
用户在使用软件后,仍击发现j妻件有各种各样的问题。一种可能是软件中的错误在测试中役被发现-但在用户使用过程中出现了。另一种可能是需求发生丁变化,用户卫有新的需求。软件维护要求及时、有效地处理和排除错误,满足新的需求。
瀑布式软件过程理解起来比较简单,但却不便于在实际工作中操作和执行。原因有多个方面,一个主要原因是瀑布式软件过程有一个假设,就是前一个环节的工作全部完成之后,才开始第二个环节的工作。
但这样的假设与实际情况并不完全相符。以需求分析为例做需求分析是很困难的,很难说得清楚需求分析的结果是否已经没有问题了。如果等到需求分析没有问题了,才开始结构设计,耶就不知何时才能开始。现实的情况是,需求分析中总会存在各种各样的问题,甚至是很严重的问题,如果按瀑布式过程去操作的话,是根本不可能的。 在做实际的商业软件时,没有哪个开发团队会完全按照瀑布式软件过程去做。基本上说,瀑布式软件过程足不用管理的,无法有效地控制项目开发的质量和进度。