软件开发到底是在做什么?(三)
三、典型的软件开发模型
软件开发模型是指软件开发全部过程、活动和任务的结构框架。它能清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务,用来作为软件项目工作的基础。
1、边做边改模型(Build-and-Fix Model)
在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员就重新修改代码,直到用户满意为止。
这种开发方式对编写几百行的小程序来说还不错,但对任何规模的开发来说都不能令人满意主要问题在于:
⑴、缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
⑵、忽略需求环节,给软件开发带来很大的风险;
⑶、没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
2、瀑布模型(Waterfall Model)
1970年温斯顿·罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
⑴、各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
⑵、由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
⑶、早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
软件开发模型是指软件开发全部过程、活动和任务的结构框架。它能清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务,用来作为软件项目工作的基础。
1、边做边改模型(Build-and-Fix Model)
在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员就重新修改代码,直到用户满意为止。
这种开发方式对编写几百行的小程序来说还不错,但对任何规模的开发来说都不能令人满意主要问题在于:
⑴、缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
⑵、忽略需求环节,给软件开发带来很大的风险;
⑶、没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
2、瀑布模型(Waterfall Model)
1970年温斯顿·罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
⑴、各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
⑵、由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
⑶、早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。