名前空間とパッケージ
モデリングの概念 への移動
モデリング機能のドキュメントでは、パッケージと名前空間という用語はほぼ同じ意味です。 パッケージという用語はデザイン プロジェクトに用いられるのに対して、名前空間という用語は実装プロジェクトに用いられます。
UML では、パッケージは、あらゆるモデリング要素をグループにまとめるための汎用メカニズムを提供します。 パッケージは、名前で識別可能な一連の名前付き要素で構成される UML モデル要素です。 パッケージの最も一般的な用途は、クラスをグループ化することです。
モデリング機能では、モデリング プロジェクトは 1 つ以上のパッケージ(または名前空間)で構成されます。 各クラスは単一パッケージの要素でなければなりません。 パッケージは他のパッケージの要素になることもできます。 パッケージには、サブパッケージもクラスも(さらには、インターフェイスや列挙型といった他のパッケージ化可能な要素も)入れることができます。
各モデリング プロジェクトには、自動的に作成されたデフォルト パッケージ(または名前空間)が含まれています。
ダイアグラムでは、パッケージは以下のようなタブ付きフォルダとして表示されます。
パッケージ(名前空間)の内容は、特別な種類のクラス図、つまりパッケージ図(または名前空間図)に表示できます。
プログラミング用語では、パッケージは(C++ や Delphi の)名前空間のようなグループ構文要素に対応します。 各パッケージは名前空間を表します。つまり、どのクラスにも、それを所有するパッケージの中で一意になるような名前が必要です。 たとえば、Account
というクラスを作成するときは、Account
クラスが Banking
パッケージに既に含まれている場合でも、別個のパッケージに入れさえすれば、独自の Account
クラスを作成できます。 どの Account
クラスを使用するかをはっきりさせるには、完全修飾名、つまり所有元のパッケージを明示する名前を使用できます。 たとえば、Banking::Account
や MyUtils::Account
などの完全修飾名を使用できます。
パッケージを使用して要素の可視性を制御することで、一部の要素をパッケージの外部からでも参照できるようにする一方、他の要素を参照できなくすることが可能です。
パッケージを使用して、システムの見え方をさまざまに変えることができます。