クラス図に関するコレクションについて

2003 年 5 月 12 日

アルバムクラスにトラックの ArrayList があるとします。UML クラス図でこれをどのように示しますか?

通常、コレクションはクラス図でクラスとして示しません。アルバムクラスとトラッククラスの関連付けのみ示します。関連付けに * の多重度をマークすることで、コレクションが使用されていることを示唆します。

これにより、どのコレクションを使用するかの問題が発生します。UML で厳密にするには、コレクションには常にセットを使用する必要があります。これは、多次値のプロパティは UML ではセットのセマンティクスを持つためです。リストなどの順序付けられたコレクションを示すには、関連付けに {ordered} とマークする必要があります。実際には、ほとんどの人はコレクションにリストを使用しています(そうでなければテストが難しい場合があります)。厳密にはコレクションに重複を導入すべきではないことを認識する必要がありますが、それでもかまいません。

特別なコレクションを使用していることを示す場合は、<<doubly linked list>> などのステレオタイプを使用できます。ただし、これは非常にまれな場合にのみ行う必要があります。