UML的关系

一百个读者,就有一百个哈姆雷特。

上篇文章已讲解UML 的结构,本文就个人理解讲述 UML 的关系。

___________________文章出于个人理解,错误不足处请指点;本文如有雷同,纯属巧合


关联关系(Association)

它描述不同类的对象之间的结构关系,在一段时间内将多个类的实例连接在一起。是用线段或带箭头的线段表示。

当我们默认为A和B都相互“知道”对方的存在


如果强调了关联的方向,那么表示的是A“知道”B,但B不知道A


用个简单的例子便于理解,公司与员工之间一对多关系,乘车人和车票之间的一对一关系,公民和身份证之间的一对一关系,就是用一条直线表示的,强调的是不同类的对象之间的结构关系;员工与职位之间,学生与课程之间,教师与任课之间,都是强调了关联的方向。


依赖关系(Dependency)

它描述一个对象在运行期会使用到另一个对象的关系,是一种临时性的关系,通常都是在运行期产生,并且随着运行场景的不同,依赖关系也可能发生变化。是用一条带箭头的虚线表示的。先看一个简单的依赖关系:


当人和船这两个对象,如果运行场景是开动轮船,那么轮船依赖于人(水手);如果场景变为渡海,那么变成人依赖于船,由此可见,依赖关系不是天然存在的,并且会随着运行场景的变化而变化。如人和刀,平时它们是没有关系的,但在切菜这个场景里,人依赖于刀,脱离了这个场景,或当场景结束后,依赖关系也就不存在了。


扩展关系(Extends)

它是在用例模型中说明向基本用例中的某个扩展点插入扩展用例,用一条带箭头的虚线加版型<<extends>>表示的,


扩展用例是带有抽象性质的,它表示用例场景中的某个“支流”,由特定的扩展点触发而被启动,让我们来看一个例子:再打电话时,如果在通话过程中收到另一个呼叫,我们可以将当前通话保留而接听另一个通话,。在这个场景中,保留通话用例就是打电话用例的一个扩展用例。


包含关系(Include)

它是说明在执行基本用例的用例实例过程中插入的行为段,通过分析业务用例场景而抽象出关键的必选的核心业务而形成包含用例,与扩展用例不同的是,包含用例表示的是“必需”而不是“可选”。用一条带箭头的虚线加版型<<include>>表示的


为了理解包含关系,让我们来看一个例子:去银行办理业务,不论是取钱、转账还是修改密码。我们都需要首先核对账号和密码,因此可以将核对账号作为上述业务用力的共有行为提取出来,形成一个包含用例,如果缺少包含用例,取钱、转账的业务用例是不完整的,同时,核对账号也不能脱离取钱、转账等业务用例而单独存在。


实现关系(Realize)

它用于用例模型中连接用例的和用例实现,说明基本用例的一个实现方式。如下图,可以看到,交纳电话费是一个业务目标,其实现途径可能有营业厅交费,网上交费,预存话费等,每一个用例实现都是同一业务目标的不同实现过程,因此它们之间是实现的关系,

用一条带箭头的虚线表示的



实现所代表的含义是,基本用例描述一个业务目标,但是该业务目标可有多种可能实现的途径,每一种实现途径可以用用例实现来表示,用例实现与基本用例之间就构成了实现关系。


精化关系(Refine)

它用于用例模型,一个基本用例可以分解出许多更小的关键精化用例,这些更小的精化用例更细致地展示了基本用例的核心业务。精化关系仅仅用于建模阶段,但可以用于模型与模型之间,表示某个模型是通过精化另一个模型而得到的。就上图中的网上交费用例精化展示,

用一条带箭头的虚线加版型<<Realize>>表示的




泛化关系(Generalization)

它可用于建模过程中任意一个阶段,说明两对象之间的继承关系,即表示一个类对另一个类的继承(包括任何特征,如属性、关系、或对其对象执行的操作。

用一条带空心箭头的直线表示的



聚合关系(Aggregation)

它用于类图,特别表示实体对象之间的关系,表达整体由部分构成,但即使整体不存在,部分依然存在。

用一条空心菱形的直线表示的,


组合关系(Composition)

它用于类图,特别用于表示实体对象关系,表达整体拥有部分的语义,一种强以来的额特殊聚合关系,如果整体不存在了,则部分也将消亡。

用一条带实心菱形箭头的直线表示的,

如母公司和子公司的关系,母公司一旦倒闭,子公司也将不复存在。


                    

 本篇我们学习了UML 的关系,在整个建模过程中都要与这些关系打交道,准确地理解这些关系的含义是让模型正确的保障。细细品味和理解这些关系。

UML 之旅正在起航……



————————附:本文资料《UML视频》、《Think in UML 大象》


     


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值