20160306
典型的开发模型有:
1. 边做边改模型(Build-and-Fix Model); 2. 瀑布模型(Waterfall Model); 3. 快速原型模型(Rapid Prototype Model);
4. 增量模型(Incremental Model); 5.螺旋模型(Spiral Model); 6.演化模型(evolution model);
7.喷泉模型(fountain model); 8.智能模型(四代技术(4GL)); 9.混合模型(hybrid model);
10.RAD模型;
开发模型的主要思想及图解:
1.边做边改模型:,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,
或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。
2.瀑布模型:将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下
、相互衔接的固定次序,如同瀑布流水,逐级下落。
3.快速原型模型:第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。
通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
4.增量模型:整个产品被分解成若干个构件,开发人员逐个构件地交付产品。
5.螺旋模型:螺旋模型沿着螺线进行若干次迭代:制定计划,风险分析,实施计划,客户评估。
6.演化模型:演化模型是一种全局的软件(或产品)生存周期模型。属于迭代开发方法。
7.喷泉模型:(也称面向对象的生存期模型, OO模型)
喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。
8.智能模型:拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),
每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码
9.混合模型:过程开发模型又叫混合模型(hybrid model),或元模型(meta-model),把几种不同模型组合成一种混合模型,
它允许一个项目能沿着最有效的路径发展,这就是过程开发模型(或混合模型)。实际上,一些软件开发单位都是使用几种不同的开发方法组成他们自己的混合模型。
10.RAD模型:瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发。如果需求理解得好且约束了项目的范围,
随后是 数据建模、过程建模、应用生成、测试及反复。
软件开发模型优点缺点:
模型 | 优点 | 缺点 |
边做边改模型 | 编写小程序的效率高 | 缺少规划和设计环节,忽略需求环节, 没有考虑测试和程序的可维护性 |
瀑布模型 | 严格按照线性方式进行, 强调文档的作用 | 大量的文档极大地增加了工作量,开发的风险大 |
快速原型模型 | 快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果 | 可能导致系统设计差、效率低,难于维护 |
增量模型 | 风险发早期反馈及时,易于维护 | 需要开放式体系结构,可能会导致效率低下 |
螺旋模型 | 将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,适应于内部的大规模软件开发 | 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险 |
演化模型 | 从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。 | 开发周期长 |
喷泉模型 | 提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。 | 需要大量的开发人员,因此不利于项目的管理; 要求严格管理文档,使得审核的难度加大 |
智能模型 | 高效的程序代码、智能缺省假设、完备的数据库和应用程序生成器 | 主要限于事务信息系统的中、小型应用程序的开发 |
混合模型 | 选择面多,易于最优化,它允许一个项目能沿着最有效的路径发展 | 过程中异常因素多,需要做很多分析 |
RAD模型 | 强调极短的开发周期 | 大型项目RAD需要足够的人力资源 不能合理模块化的系统、高性能需求并且要调整构件接口的系统均不适合 |