1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 读书笔记:软件工程(8) - 软件过程模型:喷泉模型 其他模型

读书笔记:软件工程(8) - 软件过程模型:喷泉模型 其他模型

时间:2020-01-16 10:55:34

相关推荐

读书笔记:软件工程(8) - 软件过程模型:喷泉模型 其他模型

喷泉模型

喷泉模型是一种比较典型的面向对象软件开发模型,以用户需求为动力,以对象作为驱动的模型,适合面向对象的开发方法。这克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性,如图1.6所示。

图2.6所示的喷泉模型是典型的面向对象生命周期模型。

图中代表不同阶段的圆圈相互重叠,这明确表示两个活动之间存在交迭;图中在一个阶段内的向下箭头代表该阶段内的迭代(或求精)。图中较小的圆圈代表维护,圆圈较小象征着采用了面向对象范型之后维护时间缩短了。

系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。无间隙性是指在开发活动,即分析、设计和实现之间不存在明显的边界。

喷泉模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙,体现了面向对象方法的迭代和无间隙特性。迭代是指开发活动需要多次重复。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙实质开发活动之间不存在明显的边界。如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。正是因为喷泉模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间。由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

喷泉模型主要有以下的一些特点:

(1)模型规定软件开发过程有5个阶段,即分析、设计、实现、测试与集成。

(2)模型从高层返回低层无资源消耗,反映了软件过程迭代的自然特性。

(3)以分析为基础,资源消耗呈塔型,在分析阶段消耗的资源最多。

(4)各阶段相互重叠反映了软件过程并行性。

(5)模型强调增量开发,它依据分析一点,设计一点的原则,并不要求一个阶段的彻底完成,整个过程是一个迭代的逐步提炼的过程。

(6)模型是对象驱动的过程,对象是所有活动作用的主体和项目管理的基本内容。

(7)模型在实现时,由于活动不同,可分为系统实现和对象实现,这既反映了全系统的开发过程,也反映了对象的开发和重用过程。

喷泉模型使用的面向对象技术导致其局限性,这种模型在除面向对象的开发方法之外其它开发方法中都不适用。

专用过程模型

基于构件的开发

商业现货软件构件由厂家作为产品供应,通过良好定义的接口提供特定的功能,这些构件能够集成到正在构建额软件中。基于构件的开发模型具有许多螺旋模型的特点。它本质上是演化模型,需要以迭代方式构建软件。不同之处在于,基于构件的开发模型采用预先打包的软件构件来开发应用系统。建模和构建活动开始于识别可选构件。这些构件有些设计成传统的软件模块,有些设计成面向对象的类或类包。若不考虑构件的开发技术,则基于构件开发模型由以下步骤组成(采用演化方法):

1.对于该问题的应用领域研究和评估可用的基于构件的产品。

2.考虑构件集成的问题。

3.设计软件架构以容纳这些构件。

4.将构件集成到架构中。

5.进行充分的测试以保证功能正常。

形式化方法模型

形式化方法模型的主要活动是生成计算机软件形式化的数学规格说明。形式化方法使软件开发人员可以应用严格的数学符号来说明,开发和验证基于计算机的系统。这种方法的一个变形是净室软件工程。

传统软件工程和面向对象软件工程的分析方法对比

面向对象开发方法不再是以功能划分为导向,而是以对象作为整个问题分析的中心,围绕对象展开系统的分析与设计工作。

在开发过程方面,面向对象软件工程和传统软件工程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各个阶段的具体工作不同,除了在编码阶段使用的语言不同外,面向对象软件工程为待开发软件确定“类与对象”一般在需求分析阶段进行设计阶段则主要完成对象内部的详细设计;而在传统软件工程中,将软件设计划分为“总体设计”和“详细设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。即:传统软件工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和测试面向对象软件工程开发过程包括需求分析与对象抽取、对象详细设计、面向对象的编码和测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。