UML:UML中的关系

关系:在UML中,关系是重要的语义。

 

——关联关系:用一条直线表示,AB,描述不同类的对象之间的结构关系。

关联关系表示一个对象了解其他对象,即关联关系描述了某个对象在一段时间内一直“知道”另一个对象的存在。例如:A对象保存了B对象的ID,因此,A对象“知道”B对象存在。在Rose中,为了区分相互“知道”和单向“知道”的关系,定义了关联关系的另一个变体,即单向关联关系,如A→B,说明A“知道”B,而B“不知道”A。在用例模型中,单向关联关系用于连接参与者和用例,箭头由参与者之相用例,表示参与者“知道”用例存在。

——依赖关系:用带箭头的虚线表示,如A→B(A,依赖于B),描述这样一种关系:一个对象的修改会导致另一个对象的修改。

与关联不同,依赖关系除了“知道”其他对象存在,还会“使用”其他对象的属性或方法。如A对象使用了B对象的属性或方法,则B的修改会导致A的修改,此时A依赖于B。双向依赖是一种不好的结构,应该保持单项依赖,杜绝双向依赖。

——扩展关系:A ---<<extend>>-B(A扩展出B),用于在用例模型中说明向基本用例中的某个扩展点插入扩展用例。

扩展用例带有抽象性质,表示用例场景中的某个“支流”,由特定的扩展点触发而被启动。与包含关系不同,扩展表示“可选”,而不是“必需”,这意味即使没有扩展用例,基本用例也是完整的,如果没有基本用例,扩展用例不能单独存在。如果有多个扩展用例,同一时间用例实例也只会使用其中一个。例子,通话过程中收到另外一个呼叫,可以将当前通话保留而接听另一个通话。

 

——包含关系:A---<<include>>→B(A包含B),特别用于用例模型,说明在执行基本用例的用例实例过程中插入的行为段。

包含用例带有抽象性质,基本用例可以控制与包含用例的关系,并可依赖于执行包含用例所得的结果,但基本用例和包含用例都不能访问对方的属性。包含用例是被封装的,代表可在各种不同基本用例中复用的行为。与扩展用例不同,包含用例表示的是“必需”,而不是“可选”,这意味不包含用例,基本用例就不完整,同时如果没有基本用例,包含用例就不能单独存在。例如:银行办业务,取钱、转账和修改密码,都需要核对帐号和密码,那么这个行为可以抽取出来,形成一个包含用例,这个包含用例带有复用的意义。如果缺少包含用例,取钱,转账等业务用例不完整,核对帐号也不能脱离取钱、转账等业务用例而单独存在。

 

——实现关系:A---|>B(A实现B),用于用例模型中连接用例和用例实现,说明基本用例的一个实现方式。

基本用例描述一个业务目标,该业务目标有多种可能的实现途径,每一种途径可以用用例实现来表示,用例实现和基本用例之间构成实现关系。即,每个实现途径都实现了基本用例的目标。

——精化关系:A---<<refine>>→B(A精化B)。特别用于用例模型。

一个基本用例可以分解出许多更小的关键精化用例,这些小的精化用例展示了基本用例的核心业务。与泛化关系不同,精化关系表示由基本对象可以分解更明确、精细的子对象,这些子对象并没有增加、减少、改变基本对象的行为和属性,仅仅是更加细致和明确化了。从业务模型中分析出实现业务目标的那些核心行为和实体,从而描述从一个关键的业务结构得到一个易于理解的业务框架,这些关键概念就是对业务用例的精化。

——泛化关系:A|>B。表示一个类对另外一个类的继承关系

 

——聚合关系:表示实体对象之间的关系,表达整体由部分构成的语义,例如,一个部门由许多人员构成。

——组合关系:表示实体对象关系,整体拥有部分的语义,例如,车轮是汽车的一部分。


UML类图图示样例:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值