天天看点

软件开发过程模型,软件过程模型,软件开发过程几种模型对比

软件开发过程模型主要有:51Testing软件测试网@$H5K2K2e0x/k8O

 瀑布模型(V模型、喷泉模型 )51Testing软件测试网 tQ5e8r8E#E

 螺旋模型51Testing软件测试网'E,g#YO!e^Z!R

 原型模型(锯齿模型、快速原型)51Testing软件测试网(A'L0y*{8F`~�R"j"a

 构件组装模型 (增量模型)51Testing软件测试网/Z Of0bR%BA `

 统一软件过程RUP模型

1. 瀑布模型

软件开发过程模型,软件过程模型,软件开发过程几种模型对比
软件开发过程模型,软件过程模型,软件开发过程几种模型对比

A. 瀑布模型特征

n%D#V5Pr0  从上一项活动接收该项活动的工作 对象,作为输入51Testing软件测试网CV*hy&dO+U7K&ZU H

 利用这一输入实施该项活动应完成的内容;

t%^bf5W"q}0  给出该项活动的工作成果,作为输出传给下一项活动;

;Wy3|p0L|/M0  对该项活动实施的工作进行评审,若其工作得到确认,则继续下一项活动,否则返回前项,甚至更前项的活动进行返工。

[email protected] B. 瀑布模型的优点51Testing软件测试网YNH%TGRc

 通过设置里程碑,明确每阶段的任务与目标

1k_ f ~!w C5W0  可为每阶段制定开发计划,进行成本预算,组织开发力量51Testing软件测试网Z y#~v R2]'^

 通过阶段评审,将开发过程纳入正确轨道51Testing软件测试网D x4I+ml kt9{

 严格的计划性保证软件产品的按时交付

x:S1R:D|}�[email protected] C. 瀑布模型的缺点51Testing软件测试网B|G0}"DTz]O'l

 缺乏灵活性,不能适应用户需求的改变51Testing软件测试网"|-B-q n1{ GeN

 开始阶段的小错误被逐级放大,可能导致软件产品报废

Mn-dA$DkE0i0  返回上一级的开发需要十分高昂的代价

m-g8x*K1/0  随着软件规模和复杂性的增加,软件产品成功的机率大幅下降51Testing软件测试网_]Mq-j'@F8w^1Q du g'{/7sI$e z0 2. 螺旋模型(图)

软件开发过程模型,软件过程模型,软件开发过程几种模型对比

A. 螺旋模型的特征

A5~(Pr8h0  每一圈是一个阶段,每个阶段里又有一些活动

iRLL!R%}0  阶段可分为:操作的概念、软件需求、产品设计、详细设计、编码、单元测试 、集成和测试、验收测试、实现51Testing软件测试网O` jw&[

 活动有:需求与计划、风险分析、设计与制作、用户评价

N5q"W|f8K:H0 B. 螺旋模型的优点

veS/Km Hq0  风险分析可使一些极端困难的问题和可能导致费用过高的问题被更改或取消51Testing软件测试网6I-Hf5fU YF

 用户评价为需求的变更带来柔性51Testing软件测试网 ^Z k+][dWx

C. 螺旋模型的缺点51Testing软件测试网$Yl4?%q$PA

 需要开发人员具有相当丰富的风险评估经验和专门知识51Testing软件测试网:i.nQ;] {-Vc

 要求用户参与阶段评价,对用户来说比较困难,不易取得好的效果51Testing软件测试网neP4^9h$WjQ 51Testing软件测试网c0I5R Av.g 51Testing软件测试网"sj'U l�O+{ sn%x,@

3. 原型模型(图)

软件开发过程模型,软件过程模型,软件开发过程几种模型对比

A. 原型模型的特征51Testing软件测试网Zsc&RJ$Udi r

 立项以后先提交原型给用户,在用户试用的基础上进行需求调查与原形修改51Testing软件测试网'Lu)[email protected]$t7A;r

 强调用户对软件功能和使用性能的评价51Testing软件测试网�zHaI1?2h

 设计、修改原型与试用交替进行51Testing软件测试网3oxXxFRp*|

 一次迭代中的开发步骤:51Testing软件测试网/zuZz]8qg

*了解用户/设计者的基本信息需求

7CV;M�r1XU0 *开发初始原型系统51Testing软件测试网6F-`u/k.} o r

*用户/设计者试用和评估原型系统51Testing软件测试网$/R }]r!c,re)K,z8su

B. 原型模型的优点51Testing软件测试网3~?Q$pE7P

 开发者与用户充分交流,可以澄清模糊需求,需求定义比其他 模型好得多51Testing软件测试网$~E6BKU"k%OC

 开发过程与用户培训过程同步51Testing软件测试网.~F[sTL D1`-K Y

 为用户需求的改变提供了充分的余地

CYkjS? s0  开发风险低,产品柔性好51Testing软件测试网h+gd||%I

 开发费用低,时间短51Testing软件测试网)D!](m.{5Q0j,Q M

 系统易维护,对用户更友好

Ow"wE%b*u*bK0 C. 原型模型的缺点

b2F B,ECIam0  开发者在不熟悉的领域中不易分清主次,原型不切题

j'e6zy,W|1oc0  产品原型在一定程度上限制了开发人员的创新

/X W%K LEgn;~0  随着更改次数的增多,次要部分越来越大,“淹没”了主要部分51Testing软件测试网}Y^D"que

 原型过快收敛于需求集合,而忽略了一些基本点51Testing软件测试网ex7h*^+sx2] ax'o

 资源规划和管理较为困难,随时更新文档也带来麻烦51Testing软件测试网&p"{8[)|)Kwu9d|&s

 只注意原型是否满意,忽略了原型环境与用户环境的差异B7qyhc'||0 51Testing软件测试网&T3jqjM[

51Testing软件测试网:[g y H*D5?X [email protected]

4. 构件组装模型/增量模型(图)

软件开发过程模型,软件过程模型,软件开发过程几种模型对比

A. 构件组装模型的特征

!p%zw3e-}0  应用软件可用预先编好的、功能明确的产品部件定制而成, 并可用不同版本的部件实现应用的扩展和更新。

3j&l9K&d/3Uo X'a [(j0  利用模块化方法,将复杂的难以维护的系统分解为互相独立、协同工作的部件,并努力使这些部件可反复重用。51Testing软件测试网t}.f!`^X/J

 突破时间、空间及不同硬件设备的限制,利用客户和软件之间统一的接口实现跨平台的互操作。51Testing软件测试网+F9U�n(rykw

B. 构件组装模型的优点

)V~)aG*DFj0  构件组装模型导致了软件的复用,提高了软件开发的效率,面向对象技术是软件工程的构件组装模型的基础。51Testing软件测试网Tq:[(FTP,x

 构件可由一方定义其规格说明,被另一方实现,然后供给第三方使用。

G6]u_0l+P%J${0  构件组装模型允许多个项目同时开发,降低了费用,提高了可维护性。

8SIU3u]F/'W0  可实现分步提交软件产品。

b5HiEY0 C. 构件组装模型的缺点51Testing软件测试网l N#H}r

 可重用性和软件高效性不易协调。51Testing软件测试网?1KJ1|8?H rN

 缺乏通用的组装结构标准,而自定义的组装结构标准引入较大的风险。51Testing软件测试网'a,t3j5jt!I#hb

 需要精干的有经验的分析和开发人员,一般的开发人员插不上手。51Testing软件测试网1fJ*q7FV*CD7N rS

 客户的满意度低。{M�l5D iDlF0 51Testing软件测试网f7/(]9Kd k

5. 统一软件过程RUP模型(图)

软件开发过程模型,软件过程模型,软件开发过程几种模型对比

A. RUP模型特征

:so)^uh3KiH�r0  RUP 可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段 (Phase)、迭代(Iteration)和里程碑(Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的 术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。51Testing软件测试网v(fW2a"zX)D'r

RUP的时间轴

6sQ!y7e�v[$u-V0 被分解为四个顺序的阶段,分别是:51Testing软件测试网9Cn8y-ZI*OVg a`*e

 初始阶段(Inception)、51Testing软件测试网!qH)lF;]tHEg~

 细化阶段(Elaboration)、51Testing软件测试网!Gx `1N3O2v~ S

 构造阶段(Construction)和51Testing软件测试网;UL7_1D/@

 交付阶段(Transition)51Testing软件测试网!kqN:["g-j5A$lo

每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

.[�gci*JD1T0 RUP的阶段目标51Testing软件测试网 [email protected] w+Yd*VT

 初始阶段的目标是为系统建立商业案例并确定项目的边界。

7S)`}S,X;cl)u0  细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。

)a r rJN8DK)C0  在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。51Testing软件测试网(J%vfY4y XX

 交付阶段的重点是确保软件对最终用户是可用的。51Testing软件测试网%s /#I LTI#wH

RUP的核心工作流

&Dr0X*M z`G*W0  RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期 中一次又一次被访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。

mrW(},];k0 核心过程工作流51Testing软件测试网z1e$/g1_"`'`

 商业建模工作流为组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。51Testing软件测试网f1F4S H:xp.I

 需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。

Q0}f%qr5aOj;O�UU0  分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。51Testing软件测试网$|:d Dj"r veF

核心过程工作流

!S K%C%r7e2K"oq(XHp0  实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。

%Yb oxYG0 核心过程工作流

*`N&D {:hP0  测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别、提出缺陷并确认缺陷在软件部署之前被处理。

i#wrx+o;l0  部署工作流的目的是成功的生成版本并将软件分发给最终用户。51Testing软件测试网9TIJ[5sQhg

核心支持工作流51Testing软件测试网3g-Hz,] M;sF$s

 配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物,管理演化系统中的多个变体,跟踪软件创建过程中的版本。51Testing软件测试网0T&b(k6T A+v[

 软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。51Testing软件测试网2r9Dp l;de&LX'_$h,T(Yo

 环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。51Testing软件测试网 k0^2z9f4kf r*[ |SX%j

B. RUP模型的优点

5{&s*iRu+]H&sU o|K0  RUP 具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的 开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用 性。51Testing软件测试网}$Be tV{(C

C. RUP模型的缺点51Testing软件测试网M,l(St%[?�G^_

 一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

51Testing软件测试网�|"?7/UH n,A7eiP

继续阅读