基于UML的面向对象软件开发过程

上一篇 / 下一篇  2010-11-09 14:44:34 / 个人分类:编程与其它

UML基本概念:51Testing软件测试网A].K5u}GD&i

UMl是一种标准的图形化建模语言,它是面向对象分析和设计的一种标准表示。经常用的工具有Microsoft Office Visio 2007 .

8N$hP&Tv5B0

3[/pKv3k#{4G0视图

f[u?%?P ~?0

6AXt5TuM|[0UML中的视图大致分为如下5种:

(Btvoa8~]051Testing软件测试网%NM6n)~H7x&Y-}

1、用例视图。用例视图强调从系统的外部参与者(主要是用户)的角度看到的或需要的系统功能。

)~8C eG4q,W!Wh.i0

,V,D)U| H7AK02、逻辑视图。逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能。51Testing软件测试网6K"Ou'L*K ^ d

51Testing软件测试网IhB4J/_GY

3、组件视图。组件视图显示代码组件的组织结构。

3Yl?T_U1pZ0

spYy~Z Y2k04、并发视图。并发视图显示系统的并发性,解决在并发系统中存在的通信和同步问题。

i\Uz+w*}!_2T0

.M}ZZ3Z*@ Z1x05、配置视图。配置视图显示系统的具体部署。部署是指将系统配置到由计算机和设备组成的物理结构上。51Testing软件测试网q~.F3c2f4Od)?

.\F"Z&A X P(Mg2O0上述5种视图分别描述系统的一个方面,5种视图组合成UML完整的模型。下图显示了构成UML完整模型的5种视图间的关系

6Z9uM)g(kF+d7p051Testing软件测试网0wu2n+@d4~`

[.G4|/O.r/oX'g0

h` B `t0

?9Io SJT)F)Y}0

,K3m6CX4q%TM$e }0一、用例视图51Testing软件测试网rMr G;_6t

51Testing软件测试网/V3]7]%z;c8Dl

用例视图描述系统应具备的功能,也就是被成为参与者的外部用户所能观察到的功能。用例是系统的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。参与者可以是一个用户或者另外一个系统。客户对系统要求的功能被当作多个用例在用例视图中进行描述,一个用例就是对系统的一个用法的通用描述。用例模型的用途就是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。用例视图是其他视图的核心,它的内容直接驱动其他视图的开发。51Testing软件测试网^T0c}:C0Bi1?a

(H~VoL3l'Z?\ R0二、逻辑视图51Testing软件测试网 uu5H`&K;N/]R

e/z-l#py(u0w3~4D0逻辑视图描述用例视图中提出的系统功能的实现。与用例视图相比,逻辑视图主要关注系统内部,它既描述系统的静态结构(类、对象以及他们之间的关系),也描述系统内部的动态协作关系。系统的静态结构在类图和对象图中进行描述,而动态模型则在状态图、时序图、协作图以及活动图中进行描述。逻辑视图的使用者主要是设计人员和开发人员。

!bq1skyx-u8u051Testing软件测试网K&n(X'b)T#Fv6fd

三、并发视图51Testing软件测试网E-?.q'md6\ D$_

8L%f g#B&Q-Ip-OtJ0并发视图主要考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。除了将系统划分为并发执行的控制以外,并发视图还需要处理线程之间的通信和同步。并发视图的使用者是开发人员和系统集成人员。并发视图由状态图、协作图、以及活动图组成。

S*`.{$sO)v%U b051Testing软件测试网&|#~|5ibY

四、组件视图

yfw[8q;_n}051Testing软件测试网?B'iYp%Xa x x%@r

组件是不同类型的代码模块,它是构造应用的软件单元。组件视图描述系统的实现模块以及它们之间的依赖关系。组件视图中也可以添加组件的其他附加信息,例如资源分配或者其他管理信息。组件视图主要由组件图构成,它的使用者主要是开发人员。51Testing软件测试网*UK5LL_%m0T"t

[c;dG3ld qW,\0五、配置视图51Testing软件测试网1U&\1O s%{$J

51Testing软件测试网+z1a,S^!\'}H!k?2Q

配置视图显示系统的物理部署,它描述位于节点上的运行实例的部署情况。配置视图主要由配置图表示,它的使用者是开发人员、系统集成人员和测试人员。配置视图还允许评估分配结果和资源分配。

7y}Xm7PC0

X,su*]j$p!f051Testing软件测试网 P0~9]I!k(Y"AD

r/Gqmb9V:d0UML的各种图是UML模型的重要组成部分51Testing软件测试网-wGlM]9CX

y { qBW01、 用例图(Use Case Diagram51Testing软件测试网L W,K9]x ]6Ihr

_*{X R*CdR%e0用例是系统中的一个可以描述参与者与系统直接交互作用的功能单元,用例图的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。51Testing软件测试网2Jp_WB Z

_:E*c X HZ@0B-i3j02、 类图(Class Diagram51Testing软件测试网R u"]4E7c0n$Z:@

51Testing软件测试网5ZGwq(d-z;\Mq2sv

类是对应用领域或应用解决方案中概念的描述。类图以类为中心组织,类图中国的其他元素或属于某个类,或与类相关联。

T.[7Wu)WX0

j1p%]QZS(\H^03、 对象图(Object Diagram51Testing软件测试网4H-Y3y'Dqs$?

.EF%Gto0对象图是类图的变体,它使用与类图相似的符号描述,不同之处在于对象图显示的是类的多个对象实例而非实际的类。可以说对象图是类图的一个例子,对象图与类图表示的不同之处在于它用带下划线的对象名称类表示对象,显示一个关系中的所有实例。

Jiij,rY0

y%NOTonW04、 状态图(State Diagram

'F'dT4MN!z t:Z;k0

v7? ~@$q'zd3l0状态图是对类描述的补充,它用于显示类的对象可能具备的所有状态,以及引起状态改变的事件。实际建模时,并不需要为所有的类都绘制状态图,仅对那些具有多个明确状态并且这些状态会影响和改变其行为的类才有绘制状态图的必要。此外,还可以为系统绘制整体状态图。51Testing软件测试网 s{*vu M3tx&^8N

51Testing软件测试网`3]Z g3c.y4^

5、 时序图(Sequence Diagram

9z2s a1?v9t"Eh0

/K*cieN0时序图显示多个对象间的动作协作,重点是显示对象之间发送的消息的时间顺序。51Testing软件测试网h*p|.d1Ch)F Hh

Pf8zy7l_06、 协作图(Collaboration Diagram51Testing软件测试网|0J p b^c

51Testing软件测试网0R }+d1_.b.`"v

协作图对在一次交互中有意义的对象和对象间的链建模。除了显示消息的交互以外,协作图也显示对象以及它们之间的关系。时序图和协作图都可以表示各对象间的交互关系,但它们的侧重点不同。时序图用消息的几何排列关系来表达消息的时间顺序,各角色之间的关系是隐含的。协作图用各个角色排列来表示角色之间的关系,并用消息类说明这些关系。在实际应用中可以根据需要选用这两种图:如果需要重点强调时间或顺序,那么选择时序图;如果需要重点强调上下文,那么选择协作图。

5]X!G d&Jg051Testing软件测试网 Y#@#D^$\Vi4?;} x

7、 活动图(Activity Diagram

H|3[0G6t'k2w;?0b0

@h+Z|N0活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动。活动状态代表了一个活动,即一个工作流步骤或一个操作的执行。活动图由多个动作状态组成,当一个动作完成后,动作状态将会改变,转换为一个新的状态。51Testing软件测试网0[-@ qZJpR ?

@ }.p qFR08、 组件图(Component Diagram51Testing软件测试网/XS'|bNv0|

51Testing软件测试网7R F Ye9k%[o o

组件图是用代码组件来显示代码物理结构。一个组件包含它所实现的一个或多个逻辑类的相关信息。通常组件图用于实际的编程工作中。

eK$@lG ?vAl0

"o6~2S{;M-n0lr2Y09、 配置图(Deployment Diagram51Testing软件测试网D8Nh3J#?0t$B4M5L

51Testing软件测试网Q lifif(}L+a

配置图用于显示系统中的硬件和物理结构。51Testing软件测试网,xE+j*?[I*g;h

-Op s"r"U a%@-SlVt P#T0模型元素

Y'?*B _F Be051Testing软件测试网fe-f%{Z{k'\

UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。51Testing软件测试网S Z(y,Fd#Muou

#k+r/fk#@L1t0一、 事物51Testing软件测试网8ES&Ed'Y3Ni`

J`vU'AF5g0UML中事物可以分为结构事物、动作事物、分组事物和注释事物。

}.| R*`b9ov~051Testing软件测试网+O9[?L1a7V&{

1、 结构事物51Testing软件测试网$d&ql2gN5H U8z

4kp;S;dJ,q(ufc0结构事物分为:类、接口、协作、用例、活动类、组件和节点

a;V#t B:?zw0yQ0

C3R5ufC Y%z"K01) 类。类是对具有相同属性、方法、关系和语义的对象的抽象,一个类可以实现一个或多个接口。类用包括类名、属性和方法的矩形表示。51Testing软件测试网.H&O'EZO

51Testing软件测试网%TFfoC`F8s

d H#y(c kA051Testing软件测试网 H1?{? aX xa

51Testing软件测试网}6\ O AE

o/IAt$Gm!?w02) 接口。接口是为类或组件提供特定服务的一组操作的集合。

,nE[q+?-Jp_9p,ZZ0

r`{x[ ^l jHF^'V0

G zCOv Y^6xC0

p)J9Y)O |f3G:FN}S0

't?U(cgzC*b0

ifI2S3y/[po DN03) 协作。协作定义了交互操作。一些角色和其他元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。UML中协作用虚线构成的椭圆表示。

y2R J1]!HT"`051Testing软件测试网dW0j9cnbjc:U)@(v

)Od1qb.Qnm0

'O7`6Z(aU!W2`'F-m0 51Testing软件测试网|7n5k!wYuT\v

51Testing软件测试网{^ Qx _LN&P}T

*s,rA9uLkUD0

k/A"W+L!}&l-kqgo p04) 用例。用例描述系统对一个特定角色执行的一系列动作。在模型中用例通常用来组织动作事物,它是通过协作来实现的。UML中,用例用标注了用例名称的实线椭圆表示。51Testing软件测试网"i&|7]DX}

51Testing软件测试网.G!Pk1X}!PZ a

51Testing软件测试网a a3jr)Nz

xp(A^3{b0

)IN&PIa4b051Testing软件测试网#i3k'dU;lvc(a9R`

eO-s5`R7Z F3F0

IL9U q+B6M ~%U~05) 活动类。活动类是类对象有一个或多个进程或线程的类。在UML中活动类的表示法和类相同,只是边框用粗线条。51Testing软件测试网#w3X6Q_:u}5i

51Testing软件测试网C%l&{*vU:{:t ]?k

9T$qvhxw051Testing软件测试网*hla ^j:`-O/X

e'MZ0i"f051Testing软件测试网3R}PU:o9Hh8gz~

6) 组件。组件是实现了一个接口集合的物理上可替换的系统部分。51Testing软件测试网$qw5j-c"s4W:v

Q8z?9{3S&qH0

+t-Q%{Sz u5qO0

_:Hm;try)i!`051Testing软件测试网$TCj(w1R-Y*O0_fi

51Testing软件测试网z[Z!H(Z

7) 节点。节点是在运行时存在的一个物理元素,它代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点,但也可以从一个节点转到另一个节点。

/xO!K;u:o0r'f0

#Ui n-Ryl0

T4y)X {'Mc051Testing软件测试网a|&K5J3YnA@

)s5TZ G'j o6Aq zT0

\;q:E#qB-rXwx02、 动作事物

5m3]Zx9jG?1B4v0v0

9Ddm u7h2K?3L0动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素。51Testing软件测试网DsI;E|BIF;B5D |

^$fD1r/Kp9Z01) 交互。交互是一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。在交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次数(消息产生的动作)、连接(对象之间的连接)。

aUd.P\.?"wdB `051Testing软件测试网hVW O_o

51Testing软件测试网6Op6o,n w$P"Y

51Testing软件测试网 AfTTnsQEK

51Testing软件测试网"TIkY&sO? G

2}/Gr~+J$|\02) 状态机。状态机由一系列对象的状态组成。

hrqM-N#sM*i^051Testing软件测试网0d[,MD9A.h m#^+ou

1~Dz t*yTL1D0

4RH-N;D.w0

:j#|elc2c051Testing软件测试网 D*W!W;o%u

3、 分组事物51Testing软件测试网k+E:r Pv1H

51Testing软件测试网-]R.] `&u"Tx

分组事物是UML模型中组织的部分,分组事物只有一种,称为包。

Jg(M q)O3L"r2J(l051Testing软件测试网)B7r@@R-}"oV

2Ue#_ Agv(^1bV051Testing软件测试网b~vPI

51Testing软件测试网3X;M5AMzQ

51Testing软件测试网jSG!D OtWG/_ Wi$Z

4、 注释事物

4kX,Q;p {u F051Testing软件测试网 A4Fy;g&l&}E

注释事物是UML模型的解释部分。

\ r]t(l|ri051Testing软件测试网%I7Z){I&W#R&t'G5QWg

dS5`,\,y0

,zKdbY9UC051Testing软件测试网,xw/\ s(yxD(h

f3Y'H$V9F`0二、UML中的关系51Testing软件测试网fAhz%k7e2O3L+L

51Testing软件测试网 I'K\ w[G m.a.fv

1、 关联关系

iE9|5z+p/v!W0Mc051Testing软件测试网Q[8[L(P:k[sN

关联关系连接元素和链接实例,它用连接两个模型元素的实线表示,在关联的两端可以标注关联双方的角色和多重性标记。51Testing软件测试网!Ci0j7y-h l0srA2I9c

.A M9Fg?t$CI)R6b051Testing软件测试网(|:D/W7h/b*nK

QC%sV g p0

_@ s*wnl051Testing软件测试网vn,k`,gV4Q"X

2、 依赖关系51Testing软件测试网9})oV,t(e`&{$M

51Testing软件测试网8u0C Yh!}%Ke(\?r

依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示。51Testing软件测试网0\\|#X3^ w5x

51Testing软件测试网k8s"\'tC L

51Testing软件测试网T)V]1|4F7d3Q nd

c)y3G6E~)@F(Q/f051Testing软件测试网9o|~-V9AM NdR j

51Testing软件测试网u T/DrFik c

3、 泛化关系

\6uS,w)B'`0

} p.F\ M!cX0泛化关系也称为继承关系,泛化用一条带空心三角箭头的实线表示,从子类指向父类。

Jv QFP;G0

f7Q4a*ODl"j0v)^@0

Si~ D'b-~v8R0

j f cyf~fJ051Testing软件测试网L9?8g6H]jF

.@+FF:mY04、 实现关系51Testing软件测试网t+~p|2@k!I

51Testing软件测试网6{`*p2i]mY

实现关系描述一个元素实现另一个元素。51Testing软件测试网._XyY4QAfA

51Testing软件测试网K f,MGy#Z}

51Testing软件测试网9o3}t:s \*Qpq

FF F\-z"s$[051Testing软件测试网Mq\+N_H U2Eh+he

51Testing软件测试网m~8Y&Ub}&W*]lY

5、 聚合关系51Testing软件测试网8W |o.~&g*Fo

]"{{+Cls0uc[e/h0聚合关系描述元素之间部分和整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。51Testing软件测试网 HfK4T!k T9f

X(Bvq b051Testing软件测试网~r)W0ts3^

51Testing软件测试网.t!qX Bw!~

51Testing软件测试网v(Z Xf.t

51Testing软件测试网 u.znE v

通用机制

2hXgXiM4H051Testing软件测试网xO~DoI

一、 修饰。51Testing软件测试网Ng.U[-T9X

+Wk[-LRt/VP-_0在使用UML建模时,可以将图形修饰附加到UML图中的模型元素上。比如,当一个元素代表某种类型的时候,它的名称可以用粗体字形类显示;当同一元素表示该类型的实例时,该元素的名称用一条下划线修饰。51Testing软件测试网uAj&O5^,n^~d

51Testing软件测试网,mVzII]

u`GXj @0

3ES4e6|m0

:EPT/_ Hz2}4J T051Testing软件测试网(c \?5dt O

二、 注释。

:|2SKGw]'wd C G!z0

^r!r9D*AHw0UML中用一条虚线将注释连接到它为之解释的或细化的元素上。51Testing软件测试网&rl5hk}g

51Testing软件测试网,_H(Q Q |a.Fn6_$[

%Lix'S$P| a%G051Testing软件测试网 @ E-WK4S vE

,CHx ^$qQ-W.Du0

mt @DL!bv8p(iA0三、 通用划分。

?$C ^9k|zy051Testing软件测试网2O(|oh hOn/O

UML对其模型元素规定了两种类型的通用划分:型-实例(值)和接口-实现。

'un!S*|R0];\X.r051Testing软件测试网2y mG{R!dN

1、型-实例(Type-Instance):描述一个通用描述符与单个元素项之间的对应关系。实例元素使用与通用描述符相同的表示图形,但是名字的表示与通用描述符不同:实例元素名字带有下划线,而且后面还要加上冒号和通用描述符的名字。51Testing软件测试网E Go \HU3E&R

51Testing软件测试网#E4?PY-pp?-^3N%d|

51Testing软件测试网1R"P3py)~ tX

(c Y z0Qi4w02、接口-实现:接口声明了一个规定了服务的约定,接口的实现负责执行接口的全部语义定义并实现该项服务。

j"|nY)s0

{z(osv+\051Testing软件测试网,{4r8f.rIm

XhT{OV J051Testing软件测试网#i ~"v`%?,p^;|]!o

]d5`vY6X0基于UML的面向对象软件开发过程:51Testing软件测试网'y tvgb7h

&Juuaj/O:~!G-b0统一过程(up)已成为一种流行的构造面向对象系统的软件开发过程,RUP是对UP的详细精化,下面介绍在业务建模、需求、设计、实现和测试这几个流程中使用UML的哪些图进行建模。51Testing软件测试网f%X~lp`,q w3f

M y:S.|(@$`j01.业务建模51Testing软件测试网OaBm#Kh$p"fW0T]

l ro/M3n fRT_0采用UML的对象图和类图表示目标软件系统所基于的的应用领域中的概念和概念间的关系。这些相互关联的概念构成了领域模型。领域模型一方面可以帮助软件项目组理解业务背景,与业务专家进行有效沟通;另一方面,随着软件开发阶段的不断推进,领域模型将成为软件结构的主要基础。如果领域中含有明显的流程处理部分,可以考虑利用UML的活动图来刻画领域中的工作流,并标识业务流程中的并发、同步等特征。51Testing软件测试网0ohk(iE:S'L N

51Testing软件测试网%Qu+x"|*z3n"z.I+z!uF

2.需求51Testing软件测试网K*k$zx&o*q4F+C:j$e

R kXT;eIwAB+h-{A0UML的的用例视图以用户为中心,对系统的功能性需求进行建模。通过识别位于系统边界之外的参与者以及参与者的目标,来确定系统要为用户提供哪些功能,并用用例进行描述。可以用文本形式或UML活动图描述用例,利用UML用例图表示参与者与用例之间、用例与用例之间的关系。采用UML顺序图图形描述参与者和系统之间的系统事件。利用系统操作契约刻画系统事件的发生引起系统内部状态的变化。如果目标系统比较庞大,用例较多,则可以用包来管理和组织这些用例,将关系密切的用例组织到同一个包里,用UML包图刻画这些包及其关系。51Testing软件测试网6J+oJnvdb ?*l9O

5Q3VL"gb0h|5d%fq03.设计

"hRx _6Y`&o#y051Testing软件测试网c,Q;Pd+}H.n

把分析阶段的结果扩展成技术解决方案,包括软件体系结构设计和用力实现的设计。采用UML包图设计软件体系结构,刻画系统的分层、分块思路。采用UML协作图或顺序图寻找参与用例实现的类及其职责,这些类一部分来自领域模型,另一部分是软件实现新加入的类,它们为软件提供基础服务,如负责数据库持久化的类。用UML类图描述这些类及其关系,这些类属于体系结构的不同的包中。用UML状态图描述那些具有复杂生命周期行为的类。用UML活动图描述复杂的算法过程和有多个对象参与的业务处理过程,活动图尤其合适描述过程中的并发和同步。此外,还可以使用UML构件图描述软件代码的静态结构与管理。UML部署图描述硬件的拓扑结构以及软件和硬件的映射问题。51Testing软件测试网*ZAh3RG

3h)x+~:q"uxz-g04.实现51Testing软件测试网s-A1S3x%}

51Testing软件测试网3P#AtR7D

把设计得到的类转换成某种面向对象程序设计语言的代码。

G#_/]X5a8i f051Testing软件测试网+Hs%Fm$P[4n0K/nZ

5.测试51Testing软件测试网$P%D{;z!m naw

51Testing软件测试网gsz6[&z wo7q

不通的测试小组使用不同的UML图作为他们工作的基础:单元测试使用类图和类的规格说明,集成测试典型地使用构件图和协作图,而确认测试使用用例图和用例文本描述的来确认系统的行为是否符合这些图中的定义。

;r S1C IJ1wM0|051Testing软件测试网8k u)`*R~

[转载 作者:aci]

vy7gD.x#\`-Sx@0

TAG: UML uml

 

评分:0

我来说两句

Open Toolbar