前言
理解软件开发模型, 我们可以从更加宏观的角度去看待软件开发提示:以下是本篇文章正文内容
一、软件开发模型是什么?
软件开发模型
是指软件开发全部过程,活动和任务的结构框架- 软件开发包括 需求, 设计, 编码, 和测试等阶段, 有时也包括维护阶段
- 软件开发模型能清晰, 直观的表达软件开发全过程, 明确规定了要完成的主要活动和任务, 用来作为软件项目工作的基础
二、典型软件开发模型
- 瀑布模型
- V模型
- 喷泉模型
- 快速原型模型
- 增量模型
- 螺旋模型
- 统一过程
- 敏捷开发
三、典型软件开发模型说明
1.瀑布模型
瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开
的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段
,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
2.V模型
一般来讲:单元测试所对应的是详细设计环节,也就是说,单元测试的测试用例是和详细设计一起出现的,在研发人员做详细设计的时候,相应的测试人员也就把测试用例写了出来;集成测试对应概要设计,在做模块功能分析及模块接口,数据传输方法的时候,就把集成测试用例根据概要设计中模块功能及接口等实现方法编写出来,以备以后作集成测试的时候可以直接引用;而系统测试,就是根据需求分析而来,在系统分析人员作系统分析,编写需求说明书的时候测试人员就根据客户需求说明书,把最后能实现系统功能的各种测试用例写出来,为做最后系统测试作准备。
V
左侧代表系统分析,V
右侧代表测试用例编写, 分析与用例可以同步进行, 从而减少整体时间
3. 喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。喷泉模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就如水喷上去又可以落下来,类似一个喷泉。该模型很形象, 各阶段无明显边界, 以用户需求为动力
4. 快速原型模型
改模型针对需求不明确, 有时候客户可能都不知道自己的明确需求, 此时我们先快速的设计出原型给用户作为参考, 从而确定客户需求
快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。 快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
5. 增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。该模型可以持续性交付, 软件功能逐步完善, 不必等到软件全部完成后交付, 同时分模块交付可以让使用者有较长的时间来熟悉软件功能
6. 螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。该模型特点可以较好的抵御风险, 每次执行计划前会有风险分析与评价
7. 统一过程
统一过程主要分五个阶段:开启阶段(inception),细化阶段(elaboration),构建阶段(construction),移交阶段(transition),生产(production)用例驱动、以构架为中心、迭代和增量的软件过程框架
8. 敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发