web-dev-qa-db-ja.com

ドメインクラス図とデザインクラス図の違いは何ですか?

ドメインクラス図とデザインクラス図の違いを誰かが簡単に説明できますか?

Yahoo Answers の説明を見つけましたが、非常に紛らわしいと思います。

19
user2810895

ドメインモデル概念モデルと呼ばれ、データベースモデリングでは設計モデル論理モデルと呼ばれます。

これらの区別は、モデル駆動型開発でも使用されます。モデル駆動型開発では、次の3種類のモデルが継承されます。

  1. (ソリューションに依存しない)ドメインモデル開発のシステム分析または開始、フェーズでのドメイン/要件エンジニアリングの結果プロジェクト
  2. (プラットフォームに依存しない)設計モデルエラボレーションフェーズでのシステム設計アクティビティの結果
  3. (プラットフォーム固有)実装モデル、設計モデルから派生

システムモデリングには情報モデリングとプロセスモデリングの両方が含まれますが、関心があるのは情報モデリングのみです。ここでは、概念情報モデルおよびUMLクラス図の形式で作成された情報設計モデルに対して、「ドメインクラス図」および「設計クラス図」という用語を使用できます。

[以下の説明/図は、2016年9月と2019年3月に追加されました]

次の図に、概念モデルと設計モデルの間、および設計モデルと実装モデルの間の1対多の関係を示します。

The one-to-many relationships in model refinement

情報/クラス/データモデリングを考慮すると、次の図が得られます。

enter image description here

概念から設計、実装までの派生チェーンがどのように機能するかを示す例として、人/人の概念/クラスの次のモデルを考えます。

enter image description here

ドメインモデルは、ソフトウェアエンジニアリングプロジェクトの分析フェーズで生成される問題ドメインのソリューションに依存しない記述です。 「概念モデル」という用語は、「ドメインモデル」の同義語としてよく使用されます。ドメインモデルには、ドメインの状態構造の説明(概念情報モデル)とプロセスの説明(概念プロセスモデル)の両方が含まれる場合があります。システム設計の選択やその他の計算上の問題に関心がないという意味で、ソリューションに依存しない、または「計算に依存しない」。むしろ、検討中のドメインの主題専門家の視点と言語に焦点を当てています。

設計段階では、まず、与えられたソフトウェアエンジニアリングの問題に対する一般的な計算ソリューションとして、プラットフォームに依存しない設計モデルがドメインモデルに基づいて開発されます。同じドメインモデルを使用して、さまざまな設計の選択肢を表すいくつかの(根本的にも)さまざまな設計モデルを作成することができます。次に、アーキテクチャスタイル、最大化される非機能品質基準(例:パフォーマンス、適応性)、およびターゲットテクノロジプラットフォームに至るまで、多くの実装の問題を考慮することにより、1つ以上のプラットフォーム固有の実装モデルが設計モデルから導出されます。

http://web-engineering.info/book/WebApp1/ch05s03.html も参照してください

31
Gerd Wagner

diagram自体に焦点を合わせている場合、ドメインモデルに関する図と設計モデルに関する図の間には、少なくとも2つの大きな違いがあります(少なくとも、これはラーマンの本MLとパターンの適用言う)

  1. ドメインモデルを表すUML図では、矢印を使用できません。すべてのクラスは「リレーション」を意味する行で相互リンクされています。行にテキスト注釈を使用して、それがどのような関係であるかを示す必要があります。設計モデルでは、矢印、すべてのタイプの矢印を使用する必要があります:関連、継承など。

  2. 設計モデルではプロパティやメソッドなどのタイプを指定する必要がありますが、ドメインモデルでは追加することなくそれらを記述するだけで済みます(現実世界と同じように)。例えば、 value: int設計モデルでは、ドメインモデルではvalueとして記述されます。

参照:MLおよびパターンの第3版の適用第9章および第16章.

14
xji

UMLにはそのような図はありません

エンタープライズアーキテクトにはドメインモデルがあります。 wiki をご覧ください。

「クラス設計図」に関しては、EA、VP UML、またはUML自体のどちらでも不明です。 UMLの通常のクラス図は意味があると思います。

3
Gangnus