web-dev-qa-db-ja.com

クラス図に外部システムを含める必要がありますか?

アプリケーションについて、以下を示すクラス図を描画したいと思います。

  • 一部のニュースアイテムを公開する外部コンテンツ管理システム。
  • アプリケーションのニュース項目を表すクラス。

問題は、外部コンテンツ管理システムを図のクラスとして含めますか(そして、異なる色を付けたり、外部コンポーネントであることをコメントに追加したりすることですか)ですか。

答えが「いいえ」の場合、クラス図には何を含めますか?ネタクラスのみ?そして、ニュースアイテムクラスと外部コンテンツ管理システムとの関係をどのように示すのですか?

3
Mina Samy

外部API(コンテンツ管理システムへの接続)はクラスではなく、インターフェースです。 このスタックオーバーフローの質問 に示されているように、次のようになります。

enter image description here

5
Robert Harvey

私はFortune 100の会社でシニアアーキテクトとして働いています。私たちはあなたが業界で見ているのと同じくらいUMLについて緊密であり、私たちはこのようなことについて心配していません。

基本的に、外部システムを含めること(通常は個別のパッケージ表記を使用すること)が説明に役立つ場合は、それを含めます。誰も気にしない重要ではないコーナーケースのためだけに存在する場合は、オフのままにします。

UMLは主にがコミュニケーションツールとして存在します。重要なのは、システムの重要な機能を説明する図を用意できることです。したがって、anyUML図にany機能を含めるか無視するかを決定するとき、最初の質問は次のようになります。「この図の目的を考えると、これは私のシステムの重要な側面を説明するために必要ですか?」 (さまざまなUMLダイアグラムには異なる目的があるため、あるものを正当に無視し、別のものに含めることができます。)

4
Calphool

外部システムのクラスとの関係が、クラス図に表示したいものに関連している場合は、必ずそれらを表示する必要があります。

一部のクラスが別のモジュール/システム/ものに属していることを示す標準のUMLの方法は、それらを別のパッケージに入れることです。ダイアグラムでは、外部システムのパッケージシンボル内にクラスを描画するか、完全修飾名(<external system name>::<class name>)これらのクラス。