一、瀑布模型

1、概念

  • 是将软件的生命周期,按照活动的规律划分成若干个 依次线性连接的 结构。
  • 瀑布模型将软件划分成 定义阶段、开发阶段、运维阶段三个大的阶段。每个阶段的阶段成果出来之后,评审通过才会进入下一阶段。
  • 将整个过程分为 软件计划、需求分析、软件设计、程序编码、软件测试、运行维护。

2、特点

  • 易理解。
  • 管理起来成本低。
  • 强调早期的需求分析阶段,需求需要明确。如果早期的需求分析阶段有问题,那么后期的软件设计、程序编码、软件测试就都会存在问题,如果在软件测试阶段发现问题再去解决问题,成本是很高的。

3、缺点

  • 客户必须能够正确完整清晰的表达自己的需求。
  • 在定义阶段很难评估软件开发阶段的进度。由此会导致大量的测试工作在尾部时间节点进行,发现问题后修改成本高、软件质量可能会出问题,也会造成开发进度延期、成本超预算等问题。 

4、应用场景

  • 主要用于需求明确、解决方案明确的项目。

5、考点:瀑布模型的特点及适应场景

二、V模型

1、概念

  • 是对瀑布模型的改良,V模型纠正了瀑布模型中对软件测试阶段的不重视。

2、特点

  • V模型中将软件测试阶段与系统开发阶段对应起来了,将软件测试分为4个阶段:单元测试、集成测试、系统测试、验收测试。
  • V模型的软件测试策略既包括低层测试(单元测试)又包括高层测试(验收测试)。

3、缺点

  • V模型欸有从根本上解决瀑布模型的问题。由上图箭头的方向可知,单元测试开始依然实在程序编码阶段后,所以软件测试阶段相当于还是在项目交付之前的的尾部阶段进行的,软件质量依然可能会存在问题。

4、应用场景

  • 主要用于需求明确、解决方案名曲、对性能、安全要求较高的项目。

5、考点:V模型特点及应用场景

三、原型模型

1、概念

  • 始于沟通,需求分析人员和软件开发人员,与客户进行沟通了解需求后,快速做的一个模型,然后再与用户进行沟通,确认模型中展示的功能与用户需求不一致的地方并进行改进,经过多个这样的交流过程,最终能够明确用户的需求,最后将构建的原型转换成一个软件系统,这样过程叫做原型法。
  • 我们创建的体现系统核心功能的,可运行的一个版本,叫做原型。只是一个原型,可能是还没有开发实现的,例如一个简单的UI界面图。补充:原型分为抛弃型原型和演化型原型。
  • 原型法是明确用户的需求后再进行一步步开发,所以最终的交付只有 一次。

2、特点

  • 最初不要求用户能够正确完整清晰的描述自己的需求。
  • 便于与用户进行沟通,明确用户的需求。

3、缺点

  • 因为原型模型各个阶段都要求快速,所以整个软件生命周期中有部分工作是来不及做的,例如文档编写工作。
  • 采用抛弃型原型时,构建原型的工作可能会被浪费。

4、应用场景

  • 主要用于需求不明确,需求动态变化(例如界面开发)的项目。

5、考点:原型模型的特点及应用场景

四、增量模型

1、概念

  • 注意:不要将增量模型与原型模型中的演化型原型搞混淆。
  • 增量模型的最终交付有很多次。增量n次就会交付n次。
  • 增量模型结合了瀑布模型将软件生命周期按照活动规律分阶段,再结合原型模型不断地迭代的一种开发模型。

2、特点

  • 客户只需描述出大概的、主要的需求,软件分析人员根据用户主要的需求梳理出用户的核心需求,基于核心需求开发第一个版本交付给用户使用。
  • 分阶段分批次逐渐的激发用户的需求。
  • 可以将复杂的系统分多次开发和交付,降低了整个系统失败的风险。

3、缺点

  • 增量的粒度不好衡量。
  • 如果早期交付的系统在完整性、稳定性方面有问题,就增大了后期开发的复杂度,重新部署的难度等。

4、应用场景

  • 主要用于需求大部分明确、系统较为复杂,有一定技术风险的项目。

5、考点:增量模型的特点及应用场景

五、螺旋模型

1、概念

  • 螺旋模型采用周期性方法进行开发,结合了演化原型法和瀑布模型。

2、特点

  • 具有原型的迭代,每一个迭代又分为需求计划的制定、风险的分析、实施、评审。
  • 螺旋模型最大的特点就是每一阶段都有风险分析。

3、缺点

  • 风险分析需要有经验的分析人员来做,所以风险分析人员的经验会直接影响到这个项目的风险。

4、应用场景

  • 主要用于庞大、复杂并具有高风险的系统。

5、考点:螺旋模型的特点及应用场景

六、喷泉模型

1、概念

  • 以用户需求为动力,以对象为驱动的一种开发模型。

2、特点

  • 喷泉模型的分析、设计、实现阶段可以重叠进行,开发人员可以边做分析边做实现,这样就节约了开发时间。
  • 由于阶段区分界限不是很明确,采用喷泉模型开发对文档要求比较严格。
  • 喷泉模型适用于面向对象开发的软件。

3、缺点

  • 因为阶段划分不是很明确,所以项目初期就需要投入大量人员,人员多了不利于项目管理。
  • 对文档的审计难度会增加。
  • 面向对象开发过程中,信息和需求在不断地增加,使得管理起来比较复杂。

4、应用场景

  • 主要用于采用对象技术的软件开发项目。

5、考点:喷泉模型的特点及应用场景

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐