软件开发模型整理一下:
1.瀑布模型:软件开发按需求分析、设计、编码、测试、运维的顺序开展,每个阶段都有相应的文档产生,项目质量较高,适合于需求明确的项目开发。缺点:建设周期长、风险大、难以满足用户需求。
2.螺旋模型:以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。适用于需求经常变化的大型复杂系统。缺点:很难让用户确信这种演化方法的结果是可以控制的,且建设周期长。
3.增量模型:采用随时间进展而交错的线性序列、每个序列产生一个可发布的增量、每个增量产生一个可操作的产品、第一个增量是核心产品。适用于需求经常变化的项目。缺点是需要有一个开放的产品架构,可能项目没有整体设计,质量会比较差。
4.快速原型模型:快速构建可运行的软件模型,以便理解和澄清问题,进一步细化需求,在新获取需求基础上进行系统开发。适合于做POC,缺点是产品质量差。
5.迭代模型:每次迭代就会产生一个可发布的产品,也就是把一个大项目拆成若干个小项目,分步实施。适合于分多期实施的项目,第二期的程序代码会完全替换第一期的代码。缺点是项目风险高。
6.喷泉模型:软件开发过程的各个阶段是相互迭代的、无间歇的。软件的某个部分常常被重复工作多次,相关对象在每次迭代中加入渐近的软件成分。适合于面向对象的软件开发,开发效率相对较高。缺点是常规的项目管理方法不适用。
7.V模型:这是一种以测试为中心的软件开发模型,适用于功能很明确的项目,先有测试案例,开发出的程序通过测试案例进行验证。缺点是一般项目不适用。
8.敏捷开发方法:比较典型的是极限编程,这是一种轻量级的、高效的软件开发方法,适合于中小型开发团队,客户需求模糊或多变的情况。缺点是一般项目不适用。
9.RUP:又称为统一过程,这是一种基于构件开发的方法。具有用例驱动、以基本架构为中心、迭代和增量的特点;在时间上分为四个连续的阶段,即初始阶段、细化阶段、构建阶段和交付阶段。适用于特定项目或产品的开发。
10.演化模型:也称变换模型,在原型基础上经过改进形成最终产品。