1.瀑布模型
瀑布模型的做法很形象,软件开发过程像瀑布一样,一层接着一层,完成上层步骤之后,接着开展下一项。前一阶段会形成一个文档,后一阶段根据这个文档进行操作。
具体的步骤为:(表格只是描述各个模型软件开发的过程,是精简版,不看也可)
优点:在软件开发中,由于技术人员没有深入分析项目需求,而匆忙开发,很容易导致最后的结果不符合需求。在瀑布模型中,前期强调文档与逻辑的实现,没有关于软件的物理实现,很大程度上提高了最后成型的效率并降低成本。
缺点:瀑布模型太过于注重文档,有一种说法是瀑布模型是由文档驱动的,它的传递过程都是从纸上静态的传递项目的信息,很难动态的了解跟进项目的进程,容易导致开发出的项目不符合要求。
注意:瀑布模型每一环节是带有反馈的,当后一阶段发现文档出现了错误,需要交还给前一阶段进行文档的修改。
2.快速原型模型
快速原型搭建的是一个具有初级功能的项目,这个项目与客户要求具有一定的功能,但只是其子集,或者说完成了其中的一部分功能,并没有全部实现。它在搭建好之后,会请顾客来进行试用,对于试用完之后的产品,顾客一般会提出改进意见,或者对于之前自己提出的需求有所更改,根据最新的指导意见,开发人员再进行开发。快速原型对比于瀑布模型,所增加的内容就是变化需求的处理。
优点:快速原型模型在开发每一阶段,开发人员根据用户提出的需求能够快速地更改项目程序,不需要大面积返工。开发人员通过建立模型,知道了什么该做,什么不该做。减少了前期所犯的错误。因此不需要反馈环。
缺点:原型系统主要是要快速的建立起模型,以此确定用户需求,当用户需求确定之后,就直接将原型模型抛弃。
注意:快速原型模型是不带有反馈环的,这是因为其自身的特点所决定的,自身特点在上段中已介绍清楚。
3.增量模型
增量模型不同于之前两个模型是一次性交付完成,是一次次增加产量。增量模型对于不同的构件分别进行搭建,增量模型要求软件系统是开放的。第一次增量模型构建的时候,需要实现软件的核心基本功能,之后的慢慢的增加功能,直至完成整个项目的开发。只有软件体系是开放的,后面的软件模块才能够慢慢的增加。
优点:逐渐增加项目的模块,让客户有一个学习与使用软件的过程。
缺点:软件系统必须是开放的。
4.螺旋模型
螺旋模型实质上可以看做是增加了风险分析的快速原型模型。看了个大概意思,等真明白就具体的讲讲。
5.喷泉模型
在面向对象的开发过程中,喷泉模型实现了各个步骤之间的无缝对接。在整个软件开发过程中,都存在着迭代。也没太明白。反正感觉就是来回反复的迭代。
6.Rational统一模型
具体分为六条最有效的开发经验,这六条经验就是软件开发总结的精华:
(1)迭代式开发:不断地重复开发,对于需求不断深入了解,以免设计出错
(2)需求管理:对于客户提出的需求必须要仔细的提取分析
(3)基于构建的系统组件:构件可重用的代码块可以节省大量时间
(4)可视化建模:可视化会让项目开发顺序,遇到的问题十分清楚,看图说话即可
(5)验证软件质量:在开发的每个阶段都要进行质量验证,以免最后验证时出现重大错误
(6)控制软件变更:软件要可以进行功能变更,确保修改能够溯源追踪。
缺点:这只是一个开发过程,缺少维护等后续的软件问题。