1.瀑布模型
瀑布模型(Waterfall Model)是最早使用的软件过程模型之一,包含一系列活动。这些活动从一个阶段到另一个阶段逐次下降,它的工作流程在形式上很像瀑布,因此被称为瀑布模型。如下图所示
瀑布模型的特点是因果关系紧密相连,前一个阶段工作的输出结果,是后一个阶段工作的输入。每一个阶段都是建筑在前一个阶段正确实施的结果之上。每一个阶段工作完成后都伴随着一个里程碑(一组检查条件),对该阶段的工作进行审查和确认。历史上,瀑布模型起到了重要作用,它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究。
瀑布模型的主要缺点有:
1、软件需求的完整性、正确性很难确定,甚至是不可能和不现实的。因为用户不理解计算机和软件系统,无法回答目标系统“做什么”,对系统将来的改变也难以确定,往往用“我不能准确地告诉你”回答开发人员。
2、瀑布模型是一个严格串行化的过程模型,使得用户和软件项目负责人要相当长时间才能得到一个可以看得见的软件系统。如果出现与用户的期望不一致,或者出现需求变更,将会带来巨大的损失(例如人力、财力、时间等)
3、瀑布模型的基本原则是在每个阶段一次性地完全解决该阶段的工作,不会出现遗漏、错误等情况,而实际上这是不现实或不可能的。
2.原型模型(Prototype Model)又称快速原型。由于瀑布模型的缺点,人们借鉴建筑师、工程师建行原型的经验,提出了原型模型。如下所示:
原型模型主要有以下两个阶段:
1、原型开发阶段
软件开发人员根据用户提出的软件系统的定义,快速地开发一个原型。该原型应该包含目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能等。
可以考虑以下几种途径:
- 利用模拟软件系统的人机界面和人机交互方式。如Axure
- 真正开发一个原型
- 找来一个或几个正在运行的类似软件进行比较
2、目标软件开发阶段
在征求用户对原型的意见后对原型进行修改完善,确认软件系统的需求并达到一致的理解,进一步开发实际系统。但是在实际工作中,由于各种原因,大多数原型都废弃不用,仅仅把建立原型的过程当作帮助定义软件需要的一种手段。
后续又演变出了抛弃型原型和演化型原型。
抛弃型原型:将原型作为需求确认的手段,在需求确认结束后,原型就被抛弃不用,重新采用一个完整的瀑布模型进行开发。
深化型原型:在需求确认结束后,不断补充和完善原型,直至形成一个完整的产品
3.螺旋模型
螺旋模型(Spiral Model)是在快速原型的基础上扩展而成。也有人把螺旋模型归到快速原型,实际上,它是生命周期模型与原型模型的结合,如下图所示。这种模型把整个软件开发流程分成多个阶段,每一个阶段都由4部分组成,它们是:
1、目标设定
为该项目进行需求分析,定义和确定这一个阶段的专门目标,指定对过程和产品的约束,并且制订详细的管理计划。
2、风险分析
对可选方案进行风险识别和详细分析,制定解决办法,采取有效措施避免这些风险。
3、开发和有效性验证
风险评估后,可以为系统选择开发模型,并且进行原型开发,即开发软件产品。
4、评审
对项目进行评审,以确定是否需要进入螺旋线的下一次回路,如果决定继续,就要制订下一阶段计划。
螺旋模型的软件开发过程实际上是上述4个部分的迭代过程,每迭代一次,螺旋线就增加一圈,软件系统就生成一个新的版本,这个新版本实际上是对目标系统的一个逼近。经过若干次的迭代后,系统应该尽快地收敛到用户允许或可以接受的目标范围内,否则也有可能中途夭折。
该模型支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,也适用于几种开发方法的组合。




还不快抢沙发