1

指定するのは操作の名前だけである 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 リファレンスには、クラスに本当に属性がない場合を除き、それを行うことはできないと書かれています。

標準に準拠し、あいまいさを回避する方法はありますか?

4

2 に答える 2

2

NO this is a very bad practice, at the first your demo doesn't have any method, in fact the developer find the changeChassis as an attribute, this is possible that omit the return type of void method, or omit the name of input arguments, but this is not recommended.
you need to specify the whole class structure.
enter image description here

于 2013-10-28T10:00:55.883 に答える