waterfall开发模式大家都耳熟能详,而我要是问,你能解释一下么,有哪些具体内容呢?
你是不是就愣了一下, 对!就因为太熟悉了,反而灯下黑。
而且,对瀑布的深刻理解有助于对敏捷的理解。
瀑布模型(Waterfall Model)是Royce在1970年提出的,他把大型软件开发分为:分析与编程,象工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。该模型非常符合软件工程学的分层设计思路,所以成为软件开发企业使用最多的开发模型。
在Royce的原始设计中,瀑布模型包含一下6个阶段:
- System and software requirements: captured in a product requirements document
- Analysis: resulting in models, schema, and business rules
- Design: resulting in the software architecture
- Coding: the development, proving, and integration of software
- Testing: the systematic discovery and debugging of defects
- Operations: the installation, migration, support, and maintenance of complete systems
Thus the waterfall model maintains that one should move to a phase only when its preceding phase is reviewed and verified.
瀑布模型的创意来自于制造业和建筑业, 在开发阶段任何的改变都会带来高昂的成本。
瀑布模型的特点:
1、强调文档,前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到开发的后期,才可以看到软件的“模样”。
2、 没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,瀑布就意味着没有回头路。一方面市场带动需求变化,另一方面初期客户对需求描述不清楚。
而后期的需求更改成本是开始的10倍基数。
所以瀑布模型的管理框架:
- 线性工序,上一阶段的输出是下一阶段输入
- 文档驱动
- 下一阶段有缺陷,必须回到上一阶段