UML类图:如何省略属性区并省略操作区中的参数?

时间:2013-10-27 12:44:24

标签: uml

我想绘制一个UML类,其中我唯一指定的是操作名称。换句话说,没有属性隔离专区,方法隔离专区包含方法的名称,但没有参数。我已经阅读了UML参考指南,显然我可以做这样的事情

--------------
|    Car      |
--------------
|changeChassis|
--------------

其中Car是类名,而changeChassis是一种方法,它接受我不想指定类型的参数。换句话说,上述类的Java实现可能是

public class Car {
     private String chassis;
     public void changeChassis(String chassis) {
          this.chassis=chassis;
}

障碍是我的图表含糊不清。我省略了属性隔离专区,但没有参数列表,我的方法changeChassis可能是一个属性。

我读过的一些文本建议您可以使用空参数列表来指示操作,即使操作实际上确实采用了参数。例如,即使您所指的操作实际上是为了获取参数,您也可以编写changeChassis()。然而,UML引用不允许这样做,而且显然是模棱两可的。

另一种解决方案是放入一个空的属性隔间。例如:

--------------
|    Car      |
--------------
|             |
--------------
|changeChassis|
--------------

然而,UML参考文献表示除非该类真正没有属性,否则不能这样做。

有没有办法做我想做的事情,遵守标准,避免含糊不清?

2 个答案:

答案 0 :(得分:2)

不,这是一个非常糟糕的做法,首先你的demo没有任何方法,实际上开发人员发现changeChassis作为属性,这可能省略了void方法的返回类型,或省略输入参数的名称,但不建议这样做 你需要指定整个班级结构 enter image description here

答案 1 :(得分:1)

根据UML specification,您必须使用其名称,参数和制动器来表示操作。 如果省略参数,但保留空的brakets,它将与其他可能具有相同名称但不具有相同参数的操作有歧义。 如果省略参数和制动器,它将与其他可能具有相同名称但不具有相同参数但也具有属性的操作有歧义......