快速原型模型的特点和适用范围(快速原型模型的特点及优缺点)

1、瀑布模型

软件计划 -> 需求分析 -> 软件设计 -> 程序编码 -> 软件测试 -> 运行维护,按照这样的流程一个阶段一个阶段的进行,发现问题返回上一阶段修改,

这种模型出来之后得到广泛使用,在实际开发中慢慢地淡出视线,几乎被淘汰,因为他有重大缺陷,这种缺陷可能导致项目的失败,成本超支,延期。瀑布模型适用于需求明确的项目,结构化中的方法。

2、快速原型模型

由瀑布模型和构建化开发模型组成的模型(业务建模,数据建模,过程建模,应用生成,测试与交付),能够快速地构建应用系统,所以得以广泛应用

3、原型

用户对系统有心里预期,可以是一个简易的系统演示给用户看,让用户看到开发出来的系统什么样,东西做出来之后用户发现很多问题和提出问题,通过检疫系统的方式,以比较低的成本,只适用于需求阶段

4、演化模型

将原型通过演化最后的得到完整的系统

5、增量模型

由原型的思想加上瀑布模型的思想得到增量模型,用户有多种多样的需求,先将核心部分做出来,给用户使用并修改,然后在开发下一功能,一步一步完成系统,强调的是分功能开发,可按功能重要性来排序

6、螺旋模型

以原型为核心,将一个项目分为若干个小项目,每个小项目以瀑布模型为主,在瀑布模型前加上风险评估,缺点是较大项目中未能及时标识风险可能赵成重大损失,过多的迭代增加了成本

7、构件组装模型(CBSD)

各个模块都可考虑作为构件建,将各个构件组装得到应用系统,极大程度地提高了软件开发的复用性,极大地减小的开发时间,降低软件开发成本,提高软件可靠性,步骤:

需求分析与定义 -> 软件架构设计 -> 构件库的建立(构件获取和构件管理) -> 应用软件构建 -> 测试和发布

8、喷泉模型

面向对象模型,正因为他是面向对象模型所以有迭代和无间隙,多个阶段同步进行,需大量开发人员,不利于项目管理,严格管理文档,审核难度加大

9、V模型

和瀑布模型非常接近,在V模型中测试更加重要,细分了测试环节,需求和验收测试有着对应关系,在需求分析阶段就可以写验收测试和系统测试报告,这样可以提前发现问题,避免了瀑布模型在最后的测试阶段发现问题再修改需求的问题。概要设计阶段同步做集成测试,集成测试主要是测试模块间的衔接,提前发现模块划分的问题,详细设计阶段同步单元测试,V模型是强调测试的模型。

需求分析 -> 概要设计 -> 详细设计 -> 编码 -> V模型 -> 单元测试 -> 集成测试 -> 系统测试 -> 验收测试

10、统一过程(UP)

目前应用比较广泛的模型,了解模型特点,模型阶段,模型核心人物,统一过程有三大特点:用例驱动,通过需求分析挖掘出用例,整个开发过程由用例把各阶段串起来并推动各个阶段,强调先要把架构设计好,然后再填充相应的构件,迭代与增量形成环状,每个循环完成会有一个增量。

初始阶段:确定项目范围和边界,识别系统关键用例(2-8定理,80%的人使用20%的系统功能),展示系统的候选架构,估计项目费用和时间,评估项目风险

细化阶段:分析系统问题领域,建立软件架构基础,淘汰最高风险元素

构建阶段:将构件组装起来并测试,开发剩余的构件

交付阶段:进行β测试,制作发布版本,文档定稿,确认新系统,培训调整产品,终上所述统一过程也不是一次性完成系统,也需要逐步完善

敏捷开发方法:

属于比较年轻的开发方法,最初没有开发方法,发现开发出来的软件质量很难控制,发展出来了开发模型,开发方法,慢慢规范后发现重量级模型(注重流程和文档)开发得不到很好的效果,去掉不必要的文档和流程

敏捷开发包括:自适应开发,水晶方法,特征驱动开发,SCRUM,极限编程XP。

基本原则:短平快的会议(砍掉不必要的会议,缩短会议控制时长),小型版本发布,较少的文档,合作为重,客户直接参与,自动化测试,自适应计划调整,结对编程,测试驱动开发,持续集成,重构

极限编程4大价值观:沟通、简单、反馈、勇气

极限编程5大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作

极限编程12个最佳实践:小型发布、简单设计、测试先行、结对编程、计提代码所有制、每周工作40小时、现场客户,编码标准