一、变换模型
1.概念
基于形式化规格说明语言及程序变换的软件开发模型,采用形式化的软件开发方法对形式化的软件规格说明进行一系列自动或半自动的程序变换,最后映射为计算机系统能够接受的程序系统。
2.优点
a.解决了代码结构经多次修改而变坏的问题
b.减少了许多中间步骤,如设计、编码和测试等
3.局限性
需严格的数学理论和一整套开发环境的支持,目前形式化开发方法在理论、实践和人员培训方面距工程应用尚有一段距离。

二、喷泉模型
1.概念
以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。各开发阶段没特定次序要求,并可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。
2.优点
提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程
3.缺点
各开发阶段是重叠的,因此需大量开发人员,不利于项目管理。且要求严格管理文档,审核难度大。

三、智能模型
所解决的问题是特定领域的复杂问题,涉及大量的专业知识,而开发人员一般不是该领域的专家,他们对特定领域的熟悉需要一个过程,所以软件需求在初始阶段很难定义得很完整。因此,采用原型实现模型需要通过多次迭代来精化软件需求。

四、增量模型
1.特点
引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发
2.优点
a.人员分配灵活
b.当配备的人员不能在设定的期限内完成产品时,可以先推出核心产品
c.能有计划地管理技术风险
3.缺点
如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。

五、快速原型模型
能克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。其关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。
