
# 一、瀑布模型
特点:
- 阶段间具有顺序性和依赖性
- 推迟实现的观点
- 质量保证的观点
优点:
- 可强迫开发人员采用规范的方法(例如:结构化技术);
- 严格地规定了每个阶段必须提交的文档;
- 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
缺点:
- “瀑布模型是由文档驱动的”在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样子的。但是通过写在纸上静态的规格说明,很难全面正确的认识动态的软件产品。
适用范围:
- 需求明确,小规模软件开发。
# 二、快速原型模型
特点:
- 快速建立起能够在计算机上运行的程序(最终产品功能的一个子集)。
优点:
- 软件产品的开发基本上是线性的
缺点:
- 必须迅速地构建原型然后根据用户意见循序的修改原型
适用范围:
- 用户需求不明确,需要通过构建原型来清楚的了解用户的真实需求。
# 三、增量模型
特点:
- 把软件产品作为一系列的增量构件来设计,编码,集成和测试。每个构件有多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。
优点:
- 能够在较短的时间内向用户提交可完成部分工作的产品;
- 逐步增加产品功能可以使用户有较充裕的时间学习适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:
- 较难把每个新的增量构件集成到现有的软件体系结构中,而又不破坏原来已经开发出的产品。
- 增量模型本身是自相矛盾的,它一方面要求开发人员把软件当做一个整体,另一个方面又要求开发人员把软件构件序列,每个构件本质上都独立于另一个构件,除非开发人员有足够的技术能力协调好这一明显的矛盾,否则增量模型开发出来的产品可能并不能令人满意。
适用范围:
- 软件开发周期较长的软件,有持续的合作。
# 四、螺旋模型
特点:
- 螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险,即是在每个阶段之前都增加了风险分析过程。
优点:
- 对可选方案和约束条件的强调有利于已有软件的重用,也有利于把软件质量作为软件开发的一个重要目标;
- 减少了过多测试(浪费资金)或者不足(产品故障多)所带来的风险;
- 在螺旋中维护的只是模型的另一个周期,在维护和开发之间没有本质的区别;
缺点:
- 除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险,当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
使用范围:
- 内部软件开发的大规模软件项目。
# 五、喷泉模型
特点:
- 面向对象的软件开发
优点:
- 对生命周期各阶段的区分变得不重要,不明显了;
- 分析阶段得到的对象模型也适用设计阶段和实现阶段;
- 提高软件项目开发效率,节省开发时间
缺点:
- 开发过程过分无序;
- 面向对象范型本身要求经常对开发活动进行迭代或求精;
- 在开发过程中需要大量的开发人员,因此不利于项目的管理。
适用范围:
- 面向对象的软件开发过程
上一篇
Html中用oncopy事件实现别人复制文章内容时自动追加版权信息
下一篇
python数据分析
微信扫一扫,分享到朋友圈