クラス図を使用してソフトウェアの一部をマッピングしていますが、これをパッケージ図でパッケージに分割したいと考えています。
私の問題はこれです: 2 つの異なるパッケージのクラス間の接続をどのように表現しますか?
たとえば、'View' パッケージの別のクラスに接続する 'Database' パッケージにクラスがあります。ただし、それらを 2 つの別個のクラス図 (パッケージごとに 1 つ) に分割すると、その接続は表現されません。これでいいですか?
クラス図を使用してソフトウェアの一部をマッピングしていますが、これをパッケージ図でパッケージに分割したいと考えています。
私の問題はこれです: 2 つの異なるパッケージのクラス間の接続をどのように表現しますか?
たとえば、'View' パッケージの別のクラスに接続する 'Database' パッケージにクラスがあります。ただし、それらを 2 つの別個のクラス図 (パッケージごとに 1 つ) に分割すると、その接続は表現されません。これでいいですか?
パッケージの良い使い方の 1 つは、さまざまな問題空間間の依存関係を示すドメイン チャートです。各問題空間はパッケージで表されます。パッケージは依存関係の線で接続されています。これは、各パッケージが、依存関係を通じて関連付けられているパッケージへのインターフェイスを公開することを意味します。
ドメイン汚染が少しあるように思えます。おそらく、データベースはビューについて認識すべきではありません。おそらく、データベースを読み取ってビューを更新するコントローラーが必要です。パッケージ内の機能にアクセスするクラスは、パッケージ インターフェイスにアクセスします。
システム設計におけるこの手法の利点は、このカプセル化とデカップリングにより、システム全体に変更が波及することなく、1 つのクラスの内部を簡単に変更できることです。
さまざまなパッケージの要素を 1 つの図に表示することはまったく問題ありません。このような場合、パッケージは名前空間を作成するため、要素には修飾名を付ける必要があることに注意してください。パッケージ A の要素のクラス図を作成する場合は、他のパッケージ (パッケージ B など) の要素に対してのみ修飾名を使用する必要があることに注意してください。