牛腩新闻发布系统——用例图知识,温故知新

引言

  牛腩新闻发布系统看起来很有feel,一条线的感觉,毕竟,这是一个系统实现的教程,包含了各种细节,虽然只是看了10集左右,但是深深的被牛腩老师的讲解思路带进去了,尤其是一些以前学习的过程中忽略的细节,米老师说过,眼下学习的知识,后续的学习中还会遇到。真的是这样,学习就是一个圈,循环这个特性专门用来对我们以往的学习效果给出评定,并给出我们查漏补缺的机会。

正文

  牛腩视频开篇老师就带领我们画了这个系统的用例图,于是趁这个机会,我又复习了一遍用例图中的几种关系:
  关联(association)
  包含(include) 
  扩展(extend)
  泛化(generalization)

  关联关系



  描述参与者和用例之间的关系。
  用单向箭头,表示谁启动用例。
  每个用例都有角色启动,除了包含和扩展用例。


  包含关系

  是指两个用例之间的关系。其中一个用例(基本用例,base use case)的行为包含了另一个用例(包含用例,inclusion use case)的行为。
  如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中,其他用力拉可以和这个用例建立包含关系。
 
牛腩新闻发布系统——用例图知识,温故知新_第1张图片

  上面的例子就是说查询、提款和转账三个用例都有一个一致的功能,所以将这个功能提取出来为一个用例。且这三个用例和提取出的这个用例之间是包含的关系。

  执行基本用例的时候也可以执行被包含的用例,被包含的用例也可以单独执行。

牛腩新闻发布系统——用例图知识,温故知新_第2张图片

 

  如果一个用例的功能太多时,可以用包含关系建模成两个或多个小用例。

牛腩新闻发布系统——用例图知识,温故知新_第3张图片

 

  扩展关系

  也是指两个用例之间的关系。一个用例可以被定义为基础用例的增量的扩展,称作为扩展关系。扩展关系是把新的行为插入到已有的用例中方法。基础用例即使没有扩展用例的执行不会涉及扩展用例,只有在特定的条件发生,扩展用例才被执行。

牛腩新闻发布系统——用例图知识,温故知新_第4张图片

 

  泛化(继承)关系

  一个用例和其几种情形的用例间构成泛化关系。往往父用例表示为抽象用例。

  任何父用例出现的地方子用例也可出现。

牛腩新闻发布系统——用例图知识,温故知新_第5张图片

 

真题练习


【典型题1-2-2】  (2005上半年试题2、3)
● 在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例。这种用例称为 (1);在UML的用例图上,将用例之间的这种关系标记为(2)。
(1) A.扩展用例      B.抽象用例   C.公共用例      D.参与用例
(2) A.association     B.extends   C.uses       D.inheritances
要点解析:
用例(use case)描述了一个与系统参与者进行交互、并由系统执行的动作序列。UML规范提供了用例之间包含(include)、扩展(extend)和泛化(generalization)等3种相关性的关系,各种关系功能及区别见下表:

  用例图各种关系说明表

牛腩新闻发布系统——用例图知识,温故知新_第6张图片

  由以上分析可知,抽象用例是从几个执行相同功能步骤的用例中,将公共步骤提取而成的独立用例。可见抽象用例代表某种形式的“复用”,它是降低用例之间冗余的一种工具。例如,在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是一种包含(include)关系。
  对于选项A的“关联(Association)”是两个或多个特定类之间的关系,它描述了这些类元的实例的联系。选项D的“继承(inheritances)”描述了子用例与父用例之间的一般关系。
  解答此类试题的一般思路是识记用例的3种关系。
  参考答案:(1)B;(2)C。

结束

  相信大家在进行机房重构或是合作的时候,电脑上都装了EA,我在学习的时候有点钻牛角尖,看用Rational Rose画的某些线时,有的线带箭头,就觉得每个软件表达同样的关系时都是一样的,所以用Rational Rose画完图后,不太习惯EA中的那些线(自己掌握的不牢固也是一方见面),所以便认真重温了一遍用例图相关知识。接下来就让我们看一下用EA画的用例图是什么样子吧:

牛腩新闻发布系统——用例图知识,温故知新_第7张图片




你可能感兴趣的:(UML图,关联关系,包含关系,扩展关系,泛化关系)