UMLのクラス図を、実際にソースコードに落としたときのスケルトンでまとめてみました。 単純な関連 †まずは単純な関連です。誘導可能性がないため、どちらにも参照をもつ*1形になってしまいますね。あんまりよろしくないでしょう。 public class Directory { private File child; } public class File { private Directory parent; } 誘導可能性を追加した関連 †誘導可能性を追加すると、片方にしか参照をもたなくなります。一般的な関連といえますね。 public class Directory { private File child; } public class File { } 継承関係 †継承はこんな感じ。 public class Directory { private File child; } public class File extends Directory { } 集約の関係 †集約(Aggregate)にしてみました。ここでは配列ですが、Listでもよいですね。 public class Directory { private File[] child; } public class File extends Directory { } インターフェースの関係*2 †インターフェースの実現の関係です。 public interface Entry { } public class Directory implements Entry { private Entry[] entry; } public class File implements Entry { } 依存関係 †依存はフィールドに持たないような関連性の低い関連(?)*3を表すときに用います。 関連性の低い関連、を説明しているサイトがありました ここを引用すると、
んだそうです。だいたい上の説明であってるみたい。 細かい話 †関連クラスのはなし*4 †複数の会社に属する人がいるってのを表すと、始めこうモデル化されると思いました。 オブジェクト図で表すと下図のようになりますが、 よく考えると社員は複数の会社の社員番号*5をもてないって事になります。 いろいろ考えるとモデリングが悪いって事で、改善した結果がこれ。 オブジェクト図を書いてみて、正しく表現できそうですね。 この社員情報クラスのように、二つのインスタンス間の関連に付属する属性のクラスのことを関連クラスというそうです。UMLで記述する場合 と書きます。 限定子の使い方 †クラス間で、どの属性を用いて相手のインスタンスを特定するかを表すために限定子という記号を用います。たとえば、次のモデルの場合 会社から見た場合、組織は組織コードによってユニークになります。それを表すとき と書きます。この組織コードという一つの四角のことを限定子と呼びます。限定子によって組織クラスはユニークとなるため、関連の多重度が1になっているところがポイントです。 この記事は
現在のアクセス:197070 |