【问题标题】:How to present static class or function call in Sequence Diagram?如何在序列图中呈现静态类或函数调用?
【发布时间】:2012-02-24 21:22:54
【问题描述】:

静态类或对静态函数的调用如何在序列图中呈现?据我了解,生命线属于一个类的实例/对象。 This article 表示可以使用 元类 刻板印象。

【问题讨论】:

  • UML 2 Sequence Diagrams: Notice how object labels are underlined, classes and actors are not 听起来像静态类或对静态函数的调用用相同的构造型表示 1- 模式 name 的 name 部分:ClassName 应为空 2- 不应加下划线
  • 不确定,但是,我认为一些工具,另外,在对象的情况下使用圆角矩形边缘。

标签: static uml sequence-diagram


【解决方案1】:

“如有疑问,请使用 cmets 或刻板印象...”

序列图:

+-------------+           +-------------------+
|  <<class>>  |           |     <<class>>     |
|     Cat     |           |  FastFoodTerminal |
+------+------+           +---------+---------+
       |                            |
       |          <<static>>        |
       |           TurnOn()         |
       +--------------------------->+---+
       |                            |   |
       +<---------------------------+<--+
       |                            |
       |       Answer   =           |
       |  DoYouHaveCheeseBurger()   |
       +--------------------------->+---+
       |                            |   |
       +<---------------------------+<--+
       |                            |

类图:

+-------------------------------------------------+
|                    <<class>>                    |
|                FastFoodTerminal                 |
+-------------------------------------------------+
| [+] void: FastFoodTerminal();   <<constructor>> |
| [#] int: ObtainMoneyDifference();               |
| [+] void: ReceiveMoney();                       |
| [+] void: ReturnChange();                       |
| [+] FastFoodTerminal: TurnOn(); <<static>>      |
+-------------------------------------------------+

在这个例子中,“TurnOn()”是一个静态方法,它返回, “FastFoodTerminal”类的实例(对象)。

【讨论】:

  • 你用什么来制作那个 ascii 图?
  • @Petur 我将asciiflow.com 用于类图,稍后使用文本编辑器对其进行编辑。
【解决方案2】:

所以最后是使用构造型来提及静态类/函数。下划线不再适用于UML 2.4.1 Aug 2011,第 86 页,在标题 NotationPresentation Options

【讨论】:

  • (+1) 很高兴听到这个消息。在白板/黑板或笔记本上建模时,下划线不是很清楚。草书符号也是如此...
【解决方案3】:

我认为您的评论涵盖了大部分内容:

UML 2 序列图:注意对象标签是如何加下划线的,类和参与者不是 听起来像静态类或对静态函数的调用用相同的构造型表示 1- 模式名称的名称部分:类名应该是空 2- 不应加下划线。

UML 不能完全涵盖这一点,因为静态不是 UML 定义,每种语言都有细微的差异。但是 "features"[pg.] 的 UML 规范。 69](属性/操作):

isStatic: Boolean -- 指定此特征是表征由分类器分类的单个实例 (false) 还是分类器本身 (true)。默认值为 false。

注意他们说的是分类器本身。所以问题是我可以把分类器放在序列图上,而不是实例上吗?另请注意,这并不是说分类器可以是静态的。同一 UML 规范的第 27 页显示元类“分类器”(类)中没有 isStatic。所以 UML 没有为静态类提供正式的模型特性。您可以使用构造型或关键字,或您自己的 UML 配置文件并扩展类。但简短的回答是做你已经发布的。

【讨论】:

  • UML 2.4.1 Aug 2011,第 86 页,在标题 NotationPresentation Options 下,它看起来与我的 cmets 冲突,或者在此 UML 2 版本之后引用的文章不再有效
猜你喜欢
  • 2022-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 2019-07-30
  • 1970-01-01
  • 2011-10-04
相关资源
最近更新 更多