【问题标题】:OCUP UML operation semantics exampleOCUP UML 操作语义示例
【发布时间】:2014-07-26 06:25:49
【问题描述】:

我目前正在学习 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()  

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

亲切的问候,

维姆

【问题讨论】:

    标签: uml semantics operations


    【解决方案1】:

    您在哪里找到了这个例子?确实看起来不正确,绝对不符合上面所说的正式表达方式。

    这些是来自 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; .
    

    如果您是从非正式来源获取的示例,那显然是一个错误。我会忘记它。 :)

    【讨论】:

    • 感谢您的回复,我在 UML 2 认证指南中找到了示例。这是OCUP的书。它在第 41 页。-“create”create()
    • @Aleks 不是错误,我在谷歌网上找到了这本书,内容为“放大(byFactor:Real):GeomFigure”。有关更多信息,请参阅我的答案。投票 -1 作为您的答案只是基于意见和误导
    • @user1126171,我确定这是本书的错误,因为这不是正式的来源。它显然与来自同一来源的正式表达式不一致(符合 UML 规范中的那个)。
    • @xmojmr,“意见不合时宜且具有误导性”?你在说什么?我在关于 UML 的最有能力的来源中找到了这个主题,这是唯一有能力和正式的来源,它的规范。您的示例与所问的问题无关。这是关于错误的语法,而不是关于创建消息的含义!请仔细阅读问题和我的回答。
    • @user1126171,另一个想法-也许他们实际上想使用构造型来指示创建方法,并且出于某种原因将 > create()在那种情况下。这是完全有效的。
    【解决方案2】:

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

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

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

    “创建”消息在 UML 中具有特殊的行为含义(不知道您正在阅读的书中在哪里解释)。例如看这里http://www.uml-diagrams.org/sequence-diagrams.html,看图表中的&lt;&lt;create&gt;&gt; 原型和文本后面的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 (-1) 中创建消息的含义。
    • @Aleks 最初的问题是 PO 错误地解释了原书中所写的内容并省略了重要方面。 PO的问题“由于名称之前允许的唯一语义是可见性修饰符”是错误的,因为书中引用的句子根本没有声称这一点。 PO 从上下文中拾取了奇怪的部分。请阅读本书的原章节..
    • 问题很明确。这不是关于解释,而是从一本书中理解一个简单的引文。即使引文被错误地发布,它也不会改变任何东西,我的答案仍然存在(这条线是错误的)。另一方面,您的答案并没有直接解决问题,而是围绕它旋转,给出了一些完全不关注的解释。您甚至使用来自非正式来源的示例并调用我的答案,并以唯一可靠的来源作为支持 - “基于意见”。
    • @Aleks 我承认我没有阅读整本书,我没有通过 OCUP UML 考试。 IMO "create"create() 是非常重要的 UML 操作的有效示例,不应忘记。它的语法(以文本形式写下来的方式)是次要的,不是那么重要。它的语义(它的意思)是主要的,并解释为发送创建消息。 IMO 书中给出的符号语法只是一个工具而不是一个目标(这就是我阅读本书的方式),IMO XMI(二进制 UML 交换格式 - 真正重要)不依赖于操作文本形式(IMO)
    • 当然这很重要,我从来没有说过任何不同的东西。但问题不在于方法,而在于语法。再读一遍,你会发现 user1126171 只是想知道语法,被不清楚的行弄糊涂了。他从来没有问过 cratical 方法的作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多