1.瀑布模型 开发模型呈线性,所以当开发成果沿未经过测试时,用户无法看到软件的效果,这样软件与用户见面的时间间隔,也增加了一定的风险;在软件开发前期末发现的错误传到后面的开发活动时,可能会扩散,进而可能会造成整个软件项目开发失败;在软件需求分析阶段,完全确定用户的需求是比较困难的,甚至可以说是不太可能的.
2.螺旋模型 需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果末能及时标识风险,势必造成重大损失;过多的迭代次数会增加开发成本,延迟提交时间
3.喷泉模型 以用户需求为动力,主要用于面向对象的软件项目,软件的某个部分通常被重复多次,相关对象在每次迭代中随之加入渐进出境的软件成分,各个阶段没有明显的界限
4.智能模型 基于知识的软件开发模型 把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员的工作.适合于特定领域软件和专家决策系统的开发
5.增量模型 融合了瀑布模型的基本成分和原形实现的迭代特征,优点是人员分配灵活,刚开始不用投入大量人力资源.如果核心产品很受欢迎,则可增加人力实现下一下增量
6.WINWIN模型 融合了螺旋模型的基本成分和原形实现的迭代劳特征,强调风险分析和标识.通过早期谈判客户和开发者之间达成一致协议.它将变成进展到软件和系统定义的关键标准.
7.原形实现模型 原形实现模型从需求收集开始,开发者和客户在一起定义软件的总目标,标识出已知的需求,并规划出需要进一步定义的区域,然后是"快速设计",即集中于软件中那些对用户/客户可见的部分的表示,这将导致原形的创建,其最大的特点是能够快速实现一个可实际运行的系统初步模型,供开发人员和用户进行交流和评审,以便较准确地获得用户的需求, 供开发人员和用户进行交流和评审,这个过程是迭代过程,它可以避免在瀑布模型冗长的开发过程中看不见产品雏开的现象,其优点之一是开发工具先进,开发效率高,使总的开发费用降低,时间缩短,二是开发人员与用户交流直观,可以澄清模糊需求,调用用户的积极参与,能及早显露实施后潜在的一些问题,三是原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程,缺点是在一定的程序上限制了开发人员的创新,没有考虑软件的整体质量和长期的可维护性,由于达不到质量要求产品可能被抛弃,而采用新模型重新设计,因此原形实现不适合嵌入式,实时控制及科学数值计算等大型软件系统的开发
8.RAD模型 增量型的软件开发,采用基于构件的建造方法赢得了快速开发
9.并行开发模型
10.基于构件的开发模型 利用模块化方法将整个系统模块化,并在一定构件模型的支持下复用构件库中的一个或多个软件构件,通过组合手段效率,高质量地构造应用软件系统的过程,缺乏通用的组装标准,因而编入了较大的风险
11.基于体系结构的开发模型
12.XP方法 其核心思想是交流(communication),简单(Simplicity),反馈(Feedback)和进取.xp小组不仅包括开发人员,还包括管理人员和客户,该模型强调小组成员之间要经常进行交流.优点是:采用简单计划策略,不需要长期计划和复杂模型,开发周期短;在全过程采用迭代增量开发,反馈修正和反复测试的方法,软件质量有保证;能够适应用户经常变化的需求,提供用户满意的高质量软件