OCUP UML操作语义示例



我目前正在为OCUP UML基础考试学习。在阅读这本书时,我发现了一些关于操作的奇怪之处。

操作的语义

[visibility] name (parameter list)[:type][{property strings}]

现在有以下的例子:

- getPoistion(return x: int, return y: int)
- enlarge(byFactor: Real) : GeomFigure
- +addPhone(phone:String)
- deposit(in amount, Amount): Amount
- #release(): contractStatus
- "create"create()  

最后一个我觉得很奇怪。有人能解释一下为什么这是允许的吗?因为名称之前唯一允许的语义是可见性修饰符。

亲切的问候,

Wim

你所引用的http://issuu.com/maurosergio/docs/uml_2_certification_guide_-_fundamental_and_interm书中第49页第2.2.11章操作也说

. .符号和语义…操作的语法…符号应该是这样的…

符号不定义/限制操作的语义。它指定了通用的有用语法。

"创建"消息在UML中具有特殊的行为意义(不知道您正在阅读的书中在哪里解释了它)。例如,看这里http://www.uml-diagrams.org/sequence-diagrams.html,在图中看到<<create>>原型,在后面的文本中看到create消息。

也可以参见"对象创建消息"章节http://www.uml-diagrams.org/uml-object-oriented-concepts.html#message

Kirill Fakhroutdinov的在线书籍www.uml-diagrams.org是作者从官方来源(UML规范)和其他背景非UML来源和一些"常识"编译的非常好的UML参考。

浏览这本书可能是准备考试的更容易的方法,或者至少可以把它作为另一种阅读方式。许多"可视化"的例子包括


欢迎来到Stack Overflow也可以阅读https://stackoverflow.com/help/someone-answers

你到底是从哪里找到这个例子的?它看起来确实不正确,而且绝对不符合上面所述的正式表达式。

这些是UML规范的最后一个版本的例子,所有的都很好:

  9.6.5 Examples Normal Operations: 
    display ()
    -hide ()
    +createWindow (location: Coordinates, container: Container [0..1]): Window
    +toString (): String 
    A template Operation: f <T:Class>(x : T)  
    A binding of that template Operation. f << T -> Window >>(x : Window) 
    NOTE. Parameters may be suppressed; .

如果你从一个非正式的来源中取了一个例子,这显然是一个错误。我会忘记的。:)

最新更新