产品生命周期模型有:瀑布模型、快速原型模型、迭代模型、螺旋模型、W模型、V模型。
瀑布模型(Waterfall Model)首先由Royce提出。该模型由于酷似瀑布闻名。在该模型中产品需要经历可行性分析与开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等阶段,在这种模型中只有当上一个阶段的文档编制好并且获得SQA的认可,才可以进入下一个阶段。该模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务,整个模型都是以文档驱动的。虽然瀑布模型有很多很好的思想可以借鉴,但是在过程能力上有天生的缺陷。
PS:参考链接:https://blog.csdn.net/ValDC_Morning/article/details/78166386
迭代式模型是RUP(Rational Unified Process,统一开发过程,统一软件过程)推荐的周期模型。在RUP中,迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代的思想如下图所示。
快速原型模型又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。快速原型模型在功能上等价于产品一个的子集,根据客户的需要在很短的时间内解决用户最迫切需要的,完成一个可以演示的产品,这个产品只是实现部分的功能。快速原型真正的目的是为了确定用户真正的需求,在获得用户的准确需求之后,原型可能会被抛弃。
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
V模型,也即是RAD(RapApplication Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称V模型。V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
W模型,由Evolutif公司提出,相对于V模型,W模型增加了软件开发各阶段中同步进行的验证和确认活动。测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等开发输出的文档同样要测试(这里针对设计文档,一般可以划分为需求设计文档、概要设计文档、详细设计文档和代码文档),也就是说,测试与开发是同步进行的。
在具体实践过程中,到底应该选择怎样的方法设计产品?方法的选择与团队构成、人员能力、质量要求、交付时间、面向用户、商业模式、市场环境等因素有关,产品经理(项目经理等)可以根据实际情况选择适合团队的软件设计方法。
不论选择哪种方法设计产品,核心目的是确保产品的成功,通过构建的有效解决方案,向用户传达价值。