2013-10-27 111 views
1

我想繪製一個UML類,其中我唯一指定的是操作的名稱。換言之,沒有屬性隔離區,方法隔間包含方法名稱,但不包含參數。我已閱讀UML參考指南,顯然允許我做這樣的事情UML類圖:如何省略屬性區並省略操作區中的參數?

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

其中汽車是類名,changeChassis是需要的參數,其類型我不想指定的方法。換句話說,上述類的Java實現可能是

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

問題在於我的圖表模糊不清。我省略了屬性隔離區,但沒有參數列表,我的方法changeChassis可能是一個屬性。

我讀過的一些文本表明,即使操作實際上帶有參數,也可以使用空參數列表來指示操作。例如,即使您所指的操作實際上是爲了獲取參數,您也可以編寫changeChassis()。但是UML引用不允許這樣做,並且它顯然是不明確的。

另一種解決方案是放入一個空的屬性區域。例如:

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

但是,UML參考文獻說,除非類真正沒有屬性,否則不能這樣做。

有沒有什麼辦法做我想要遵守的標準,並避免含糊不清?

回答

1

根據UML specification,你必須用它的名字,參數和制動器代表操作。 如果您省略參數,但保留空的制動器,則與其他可能的操作具有相同的名稱但參數不相同的含義不明確。 如果您省略參數和制動器,它與其他可能的操作具有相同的名稱但含糊不清不一樣的參數,但也有屬性...

2

不,這是一個非常糟糕的做法,首先你的演示沒有任何方法,實際上開發人員發現changeChassis作爲一個屬性,這是可能的省略void方法的返回類型,或省略輸入參數的名稱,但不建議這樣做。
您需要指定整個類結構。
enter image description here