天天看点

软件过程模型(2)

喷泉模型

概念:喷泉模型(fountain model)是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。

软件过程模型(2)

该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

优点:

喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

基于组建的开发模型

概念:使用现有的组件和系统框架进行产品开发。

优点:

1.由于由于现有组件大多已经经历实际应用的反复检验,因此其可靠性相对其他新研发组件高出很多。

2.充分体现了软件复用的思想,降低开发成本和风险,加快了产品的开发。

软件过程模型(2)

统一软件开发过程模型

基于UML

面向对象软件开发模型

采用迭代和增量递进的开发策略

用例驱动,架构优先

参考链接

软件过程模型(2)

敏捷过程与极限编程

强调快捷、小文档、轻量级的敏捷开发方法是一种轻量级的软件工程方法,相对于传统的软件工程方法,它更强调软件开发过程中各种变化的必然性,通过团队成员之间充分的交流与沟通,以及合理的机制来有效地响应变化。

1、敏捷过程:

“敏捷软件开发宣言“的4个价值观

(1)个体与交互高于过程和工具

(2)可运行软件高于详尽的文档

(3)与客户协作高于合同(契约)谈判

(4)对变更及时响应高于遵循计划

敏捷方法的12条原则

1)首先要做的是通过尽早和持续交付有价值的软件来让客户满意。

2)需求变更可以发生在整个软件的开发过程中,即使在开发后期,也欢迎客户对于需求的变更。敏捷过程利用变更为客户创造竞争优势。

3)经常交付可工作的软件。交付的时间间隔越短越好,最好2~3周一次。

4)在整个软件开发周期中,业务人员和开发人员应该天天在一起工作。

5)围绕受激励的个人构建项目,给他们提供所需的环境和支持,并且信任他们能够完成工作。

6)在团队的内部,最有效果和效率的信息传递方法是面对面交谈。

7)可工作的软件是进度的首要度量标准。

8)敏捷过程提倡可持续的开发速度。责任人、开发人员和用户应该能够保持一种长期稳定的开发速度。

9)不断地关注优秀的技能和好的设计会增强敏捷能力

10)尽量使工作简单化。

11)好的架构、需求和设计来源于自组织团队。

12)每隔一定时间,团队应该反省如何才能有效地工作,并相应调整自己的行为。

2、极限编程

敏捷模型包括多种实践方法,如极限编程(eXtremeProgramming,XP)、自适应软件开(AdaptiveSoftwareDevelopment,ASD)、动态系统开发方法(DynamicSystemDevelopmentMeth-od,DSDM)、Scrum、Cyrstal和特征驱动开发(FeatureDrivenDevelopment,FDD)等。

1)极限编程是一种实践性较强的、规范化的软件开发方法,它强调用户需求和团队工作。

2)XP特别适用于软件需求模糊且容易改变、开发团队人数少于10人、开发地点集中。

特点:

采用CRC卡

采用结对编程

编码之前构造测试用例

开发人员有责任向用户证明代码的正确性,而不是由用户来查找代码的缺陷。

几种模型之间的关系

1、瀑布模型与RUP模型之间的关系

在宏观上,瀑布模型是静态模型,RUP模型(RUP模型是迭代模型的一种)是动态模型。RUP模型的每一次迭代,实际上都需要执行一次瀑布模型,都要经历先启、细化、构建和产品化这4个阶段,完成瀑布模型的整个过程。

在微观上,瀑布模型与RUP模型都是动态模型。瀑布模型与RUP模型在每一个开发阶段(先启、细化、构建、产品化)的内部都需要有一个小小的迭代过程,只有进行这样的迭代,开发阶段才能做得更好。

软件过程模型(2)

2、瀑布模型与增量模型之间的关系

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,一个模块接着一个模块地进行开发,直到开发完所有的模块。

在开发每个模块时,通常都是采用瀑布模型,从分析、设计、编码和测试这几个阶段进行开发。所以,增量模型中有瀑布模型,即宏观上是增量模型,微观上是瀑布模型。

增量模型也体现了迭代思想,每增加一个模块,就进行一次迭代,执行一次瀑布模型,所以,增量模型本质上是迭代的。

3、瀑布模型与快速原型模型之间的关系

快速原型模型的基本思想是快速建立一个能反映用户主要需求的原型系统,在此基础上之后的每一次迭代,都可能会用到瀑布模型。

快速原型模型中不但包含了迭代模型的思想,而且包含了瀑布模型的思想。

4、瀑布模型与螺旋模型之间的关系

螺旋模型是瀑布模型和快速原型模型的结合,快速原型模型是原型模型的简化,原型模型又是迭代模型和瀑布模型的组合,这些模型之间是相互依存的、彼此有关的。

螺旋模型每一次顺时针方向旋转,相当于顺时针方向迭代一次,都是走完一次瀑布模型,这就是瀑布模型与螺旋模型之间的关系。实际上,瀑布模型与喷泉模型也有关系。

继续阅读