1.4 软件开发过程模型
软件生命周期一般分为6个阶段,即制订计划、需求分析、设计、编码、测试、运行和维护。在软件工程中,这个复杂的过程用软件开发模型(Software Development Model)来描述和表示。软件开发模型是指软件开发全部过程、活动和任务的结构框架。软件开发模型能清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言、运用不同的管理方法和手段,允许采用不同的软件工具和不同的软件工程环境。软件开发模型发展经历了以下阶段:
(1)以软件需求完全确定为前提的第1代软件过程模型,如瀑布模型等。这类开发模型的特点是软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;其缺点是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。并且,如果在开发过程存在阻塞问题,则影响开发效率。
(2)在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和快速原型模型等。这类开发模型的特点是软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。通过迭代过程实现软件的逐步演化,最终得到软件产品。在此引入了风险管理,采取早期预防措施,增加项目成功几率,提高软件质量;其缺点是由于需求的不完全性,从而为软件的总体设计带来了困难和削弱了产品设计的完整性,对风险技能管理水平提出了更高的要求。
(3)以体系结构为基础的基于构件组装的开发模型,如基于构件的开发模型和基于体系结构的开发模型等。这类模型的特点是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。