- ベストアンサー
UMLの関連・依存
現在UMLの勉強をしてます。 JAVAの時に使用するつもりでいます。 質問は2つあります。 1つ目は 依存の説明は、引数・ローカル変数・グローバル変数として参照する時とありました。 グローバル変数というのは、メソッド内で、別クラスの静的なメソッド等の呼び出しのことでしょうか? 2つ目は 実装段階でクラス図を描く時に、メソッド内の一時的な参照は実現にして、フィールドは集約とコンポジションで表すことができると思います。 なので、関連は実装段階では必要ないと思うのですがこれで合ってるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 1つ目は > 依存の説明は、引数・ローカル変数・グローバル変数として参照する時とありました。 > グローバル変数というのは、メソッド内で、別クラスの静的なメソッド等の呼び出しのことでしょうか? Javaでは厳密な意味でのグローバル変数はありませんが、publicで静的(static)なフィールドはどこからで参照できますのでグローバル変数に該当するものと言って良いでしょう。 その説明では、引数やローカル変数として宣言したもの以外を指しているようですので、別クラスのフィールドを参照すること全般に該当するでしょう。同一パッケージ内では、protectedやデフォルトの可視性でもアクセスできますが、それなども含まれるかと。 場所は、フィールドの宣言部や初期化ブロックなど、メソッドでなくてもクラス内であれば依存性が生じます。 例) --------------------------------------------------------------- public class A { public static String hoge = "hoge"; } class B { String aaa = A.hoge; // フィールド宣言で依存 void name() { System.out.println(A.hoge); // メソッド内でも依存 } } ------------------------------------------------------------------- > 2つ目は > 実装段階でクラス図を描く時に、メソッド内の一時的な参照は実現にして、フィールドは集約とコンポジションで表すことができると思います。 > なので、関連は実装段階では必要ないと思うのですがこれで合ってるでしょうか? 集約とコンポジションは、関連の一種と考えられます。 ただし、集約の方は通常の関連との違いが分かりにくいので、可能であれば通常の関連として表した方が読者を混乱させなくて良いかもしれません。 http://capsctrl.que.jp/kdmsnr/wiki/bliki/?cmd=view&p=AggregationAndComposition&key=%A5%B3%A5%F3%A5%DD%A5%B8%A5%B7%A5%E7%A5%F3