考研复试【软件工程常见模型】

软件生存周期一般划分为:需求分析,设计,编码实现,测试,运行维护等几阶段,称为软件的生命周期。用不同的方式将软件生命周期中的所有活动节点组织起来形成一定的结构框架来指导软件开发,从而形成了不同的软件开发模型。

1、瀑布模型:

考研复试【软件工程常见模型】

是一种线性模型,将软件生命周期中的活动线性连接,包括需求分析、设计、编码、测试等。这些过程从前到后相互衔接,后一部分的实现依赖于前一部分的完成。

优点:适合需求固定且明确的软件项目开发。当前阶段完成后,只需要去关心后续阶段,而不必向前看。

缺点:由于整个开发过程是线性的,用户只有等到整个开发结束后才能看到成果,而且其中的错误在早期不会被发现,后期修改会很复杂。

2、v模型

考研复试【软件工程常见模型】

 v模型以测试驱动,测试过程贯穿开发过程的始终,是瀑布模型的变体。使用v模型开发,研发人员与测试人员同时工作,提高软件质量。V模型非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。

 V模型适用于需求明确和需求变更不频繁的软件项目开发。

3、增量模型

考研复试【软件工程常见模型】

与瀑布模型相反,增量模型分批向用户提交产品。它将需求分为一系列增量进行设计、编码和测试 ,每个增量可以分别开发并发布一个可操作的产品。客户对每个增量的使用和评估都作为下一个增量发布的新功能,这样不断重复,直到产生最后的完善的产品。

优点:第一个可交付产品所需的时间和成本较少,强调开发的阶段性早期计划及需求调查和产品测试。

缺点:如果早期没有对用户的变更需求进行规划,产生的初始增量可能会给后来的增量造成不稳定性。

4、螺旋模型

考研复试【软件工程常见模型】

 螺旋模型结合了演化模型和增量模型的优点,它包括制定计划,风险分析,实施工程,客户评估四个部分。螺旋模型将开发过程分为几个螺旋周期,每个周期和瀑布模型类似。

5、喷泉模型

考研复试【软件工程常见模型】

喷泉模型是面向对象的开发过程,它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,使开发过程具有迭代性和无间隙性。