软件开发:详解软件开发的几种模式。
1、边做边改模型:
发现许多产品实际使用中都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被。
在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新代码,直到用户和测试等等满意为止。这是一种类似作坊的开发方式,边做边改模型的优点毫无疑问就是前期出成效快。
对编写逻辑不需要太严谨的小程序来说还可以对付得过去,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:
1)缺少规划和设计环节,软件的结构随着不断的越来越糟,导致无法继续;
2)忽略需求环节,给软件开发带来很大的风险;
3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
2、瀑布模型:
瀑布模型是一种比较老旧的软件开发模型,1970年温斯顿·罗伊斯提出了的“瀑布模型”,直到80年代都还是一直被广泛采用的模型。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回。
瀑布模型优点是严格遵循预先计划的步骤顺序进行,一切按部就班比较严谨。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
4)各个软件生命周期衔接花费时间较长,团队人员交流成本大。
5)瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
3、迭代模型:也被称作迭代增量式开发或迭代进化式开发。
迭代模型是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。
在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。