请说明模型的作用,例举3个常用模型,具体说明其模型结构,特点,简要分析各自的优缺点
人们在研究、处理实际问题时,最常用的方法就是对一个实际问题简单化和抽象化,即我们经常遇到的所谓建立模型
RogerS
Pressman认为软件工程是一种层次化技术,分为质量保证层、过程层、方法层和工具层,过程层属于基层
软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地、及时地开发出来
软件过程模型是指从软件项目需求定义开始直至软件使用后废弃为止,针对系统开发、运作和维护所实施的全部过程、活动和任务的结构框架
瀑布模型(waterfallmodel),又称线性顺序模型,首先由Royce[Royce,1970]提出
该模型规定了各项软件工程活动,包括制定开发计划、进行需求分析和说明、软件设计、程序编码、测试及运行维护
并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落
瀑布模型属于线性顺序模型,是最早、也是应用最广泛的软件工程范例,已在各类产品中获得了巨大的成功
瀑布模型的主要缺点是它没能把软件看成是一个问题解决的过程
瀑布模型源自硬件领域,表达了软件开发的制造观点
螺旋模型(spiralmodel)[Boehm,1988]将瀑布模型与演化模型结合起来,并且添加两种模型均忽略的风险分析
螺旋模型沿着螺线旋转,在笛卡儿坐标的4个象限上分别表达了4个方面的活动
螺旋模型有许多优点
对可选方案和约束条件的强调支持了现有软件的重用有助于将软件的质量作为一个特殊的目标融入产品开发中
此外,软件开发中的一个共同问题是判断一个特定的产品在何时已得到了充分的测试
螺旋模型有一定的适用限制条件特别是,当前形式的螺旋模型排它性地适用于内部的大规模软件开发增量和迭代模型减少循环周期的一种方法是使用阶段化开发
设计系统时使其能一部分一部分地移交,使用户在使用部分功能的同时