软件开发模式有哪些

软件开发模式主要有:1.边做边改模型;2. 瀑布模型;3. 迭代模型;4. 快速原型模型;5. 增量模型;6. 螺旋模型。

下面来介绍这些模型。

1.  边做边改模型

在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户和测试等等满意为止。

其实现在许多产品实际都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。

2.  瀑布模型

这一模型的核心思想:按工序将问题化简,将功能的实现与设计分开,便于分工协作,采用结构化的分析与设计方法将逻辑实现与物理实现分开,依照软件生命周期自上而下,相互衔接的次序。

瀑布模型优点是严格遵循预先计划的步骤顺序进行,一切按部就班比较严谨。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。

瀑布模型的主要问题在于:

①在项目各个阶段之间极少有反馈,各个阶段的划分完全固定,阶段之间产生大量的文档,增加了工作量

②用户只有在项目生命周期的后期才能看到结果,增加了开发的风险

③需要过多的强制完成日期和里程碑来跟踪各个项目的阶段

④在每个阶段都会产生循环反馈

3.  迭代模型

在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。

每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。

4.  快速原型模型

快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型,展示待开发软件的全部或部分功能和性能过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善。

优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险

缺点: 所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统加上连续的修改可能会造成产品质量底下

5.  增量模型

增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。

在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。

6.  螺旋模型

螺旋模型适合用于需求经常变化的项目,适合于大型复杂的系统。

它主要是风险分析与评估,沿着螺线进行若干次迭代,其过程为:

①   制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件

②   风险分析:分析评估所选方案,考虑如何识别和消除风险

③   实施工程:实施软件开发和验证

④   客户评估:评价开发工作,提出修正建议,制定下一步计划。