Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OCUPUML操作语义示例_Uml_Semantics_Operations - Fatal编程技术网

OCUPUML操作语义示例

OCUPUML操作语义示例,uml,semantics,operations,Uml,Semantics,Operations,我目前正在为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

我目前正在为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

您在哪里找到了这个示例?它看起来确实不正确,而且绝对不符合上述正式表述

以下是UML规范最新版本的示例,它们都非常好:


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

您引用的书中第49页的第2.2.11章操作也说

..符号和语义..操作的语法..符号应该如下

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

create消息在UML中有特殊的行为含义,我不知道你正在读的书中对它的解释在哪里。例如,看这里,在图中看到原型,在后面的文本中创建消息

另请参见此处的对象创建消息一章

Kirill Fakhroutdinov的在线书籍是作者从官方来源UML规范以及其他非UML背景来源和一些常识中汇编的非常好的UML参考资料

浏览本书可能是准备考试的更简单的方法,或者至少把它看作是另一种阅读方式。包括许多可视示例


欢迎来到Stack Overflow并阅读

谢谢您的回复,我在UML2认证指南中找到了这个示例。这是OCUP的书。在第41页createcreate@Aleks这不是一个错误,我在谷歌网上找到了这本关于enlargebyFactor:Real:GeomFigure的书。更多信息请参见我的答案。投票-1,因为你的答案是基于意见和misleading@user1126171,我相信这是本书中的一个错误,因为这不是正式的来源。它显然与来自同一来源的形式化表达式不一致,这与UML规范@xmojmr中的形式化表达式一致,是否有误导性?你在说什么?我在UML上最有竞争力的源代码中找到了这个主题,它是唯一的内容和正式的源代码,它的规范。你的例子根本与所问的问题无关。这是关于错误的语法,而不是关于创建消息的含义!请仔细阅读问题和我的答案。@user1126171,另一个想法-也许他们实际上想用原型来表示创作方法,出于某种原因,这根本不能回答问题。最初的问题在于方法表示的语法混乱,而不是UML-1中创建消息的含义。@Aleks最初的问题在于PO错误地解释了原书中所写的内容,并忽略了重要方面。PO的问题是,名字前唯一允许的语义是可见性修饰语,这是错误的,因为书中引用的句子根本没有这样说。阿宝断章取义地说出了那个奇怪的部分。请读这本书的第一章1.问题很清楚。这不是关于解释,而是理解一本书中的简单引文。即使引文贴错了,也不会改变任何事情,我的回答仍然站着,因为这行是错的。另一方面,你的答案并没有直接解决这个问题,而是绕着它转,给出一些完全偏离焦点的解释。你甚至可以使用非正式来源的例子来调用我的答案,并以唯一可靠的来源-基于观点的观点作为支持。@Aleks我承认我没有阅读整本书,我没有通过OCUP UML考试。在我看来,createcreate是一个非常重要的UML操作的有效例子,不应该忘记。它的语法在文本形式中的书写方式是次要的,并不那么重要。它的意思是主要的,并解释为发送创建消息。IMO书中给出的符号语法只是一个工具而不是目标这是我读这本书的方式,IMO的XMI二进制UML交换格式-真正重要的是不依赖于操作文本形式IMO当然这很重要,我从来没有说过什么不同。但问题不在于方法,而在于语法。再读一遍,您会发现user1126171只是对语法感到疑惑,被不清楚的行弄糊涂了。他从来没有问过民主方法的作用。
  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; .