24小时咨询电话

13162062660

NEWS

精准掌握最新行业动态 ! 走在行业前沿 !

  • 软件开发模式有哪些?
    15
    01-2018


    软件开发.jpg

    软件开发有很多种模式,但是对于初学者来说怎样选择软件开发的模式,每种模式又要如何操作呢?今天我们就一起来了解一下软件开发的几种常见模式。

    一、瀑布模型

    瀑布模型是温斯顿·罗伊斯(Winston Royce)在1970年提出的,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型核心是按工序将问题化简,将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,每个阶段都只执行一次。

    瀑布模型的优点是严格遵循预先计划的步骤顺序进行,为项目提供了按阶段划分的检查点,并且可在迭代模型中应用瀑布模型;缺点是在项目各个阶段之间极少有反馈,只有在项目生命周期的后期才能看到结果,因此不适应用户需求的变化,此外各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

    二、螺旋模型(Spiral Model)

    1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”。一般在软件开发初期需求不是很明确时采用这种模型。它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,这种模型往往需要软件开发人员擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险,而且,如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。

    三、迭代模型(stagewise model)

    迭代模型是一种与传统的瀑布式开发相反的软件开发过程,每次迭代都会完整地经过所有工作流程的过程。它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。采用这种方法,每一次的迭代都会产生一个可以发布的产品。

    四、增量模型(Incremental Model)

    在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。但是,由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。而且,在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

    五、快速原型模型(Rapid Prototype Model)

    快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

    显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

    六、敏捷软件开发 (Agile development)

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

    七、混合模型(hybrid model)

    过程开发模型又叫混合模型(hybrid model),或元模型(meta-model),把几种不同模型组合成一种混合模型,它允许一个项目能沿着最有效的路径发展,这就是过程开发模型(或混合模型)。实际上,一些软件开发单位都是使用几种不同的开发方法组成他们自己的混合模型。

    以上是比较主流的几种软件开发模式,还有一些模式不一一列举,想了解更多APP开发技术欢迎关注上海道道园艺科技。