UML中的关联,泛化,依赖,聚集,组合(转)

简介:

转自:http://blog.sina.com.cn/s/blog_5f8b45f20100dzjo.html

 

关联(association): 这是一种很常见的关系,这种关系在我们的生活中到处可见,如:一张订单对象一个客户,关联可以是单端关联也可以是多端关联。如:用户和身份证就是双向关联的。关联可以叫做持有对方引用。(用一条实线表示,可以还箭头)

泛化(generalization):这里的泛化可以理解为面向对象中的继承

依赖(dependency):是指两个对象间有依赖关系,如果一端修改了,那么依赖他的对象都会有影响.如:充电器和电池,机器和零件,等都有依赖关系。

 

聚合(aggregation):聚合是一种整体与部分的关系,比如车和轮子的关系就是一种聚合关系,但是轮子可以离开车子独立存在,轮子的生命周期与车子不相关,因为可以提前把轮子做出来再做车子。还有俱乐部和人的关系也是一种聚合。还有自行车和他的轮子,铃铛,龙头都是聚合关系。

组合(composition):组织也是一种整体和部会的关系。但是部分的存必须依赖于整体的存在,如果整体不存在了,部分也自然不存了。如:公司和部门就是一种组合关系:如果公司不存在了。那么也没有部门这个概念了。

 

包含(extend)和扩展(include)

 一般只有use   case之间有扩展关联和包含关联关系。   
  如果use   case   A和use   case   B有扩展关联关系,说明B的动作序列是A动作序列的一个分支,这个分支只有在某种条件下执行,B的动作序列插入A中的位置,称为“扩展点”。  
   
  比如A是一个从ATM取款的use   case,动作包括:插入卡、输入密码、选择取款服务、输入金额、吐钱、取回卡。  
   
  B表示密码错误的处理方法,B是A的扩展用例,在输入密码错误下执行:选择重新输入密码、系统提示错误、选择取回卡。这样B的动作只在A的第二个动作输入错误密码的情况下执行。扩展点就是输入错误密码。  
   
  如果use   case   A和use   case   B有包含关联关系,说明A的动作序列总是包含B的动作序列,不论在什么情况下。比如如果use   case   C表示验证用户,动作序列是插入卡、输入密码。A   include   C,不论什么情况下,A的动作序列都包含C。  
   
 注1: extend和include的区别是,extend是可选的,只在某种情况下执行另一个use   case,通常是异常条件下,而include是一定会执行的。因为它已经包含在其中了。

注2:聚合和组合的区别就是,聚合的的各部分可以独产存在,也就是他的生命周期没有依赖性,但是组合的各部门不能独立存在。


本文转载自SharkBin博客园博客,原文链接:http://www.cnblogs.com/SharkBin/p/7473064.html如需转载自行联系原作者


相关文章
|
测试技术 uml
UML图的依赖、关联、聚合、组合关系(突击软考)
UML图的依赖、关联、聚合、组合关系(突击软考)
184 0
|
uml
UML - 依赖与关联关系
UML - 依赖与关联关系
115 0
UML - 依赖与关联关系
|
Java uml
UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合) 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字e...
1170 0
|
uml
UML中的依赖,组合关系等+C#
具体的东西被抽象,然后加以概括,归类,我个人认为这是思维的一个升华,就像给一个东西下定义一样,如何才能用自己的话讲这个东西说明清楚,当然要有全面的认识,所以抽象不是没有根据的,而是建立在自己的认识之上。
819 0
|
uml 测试技术 算法
UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解
共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。
1492 0
|
21天前
|
uml
UML之类图
UML之类图
26 1
|
2月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
28 1