UMLクラス図では、境界クラス、制御クラス、およびエンティティクラスとは何ですか?


85

現在、選択のIDEとしてNetBeansを使用しており、UMLモデリング用のプラグインがあります。クラス図では、存在として知られているモデル要素はBoundary ClassControl Class、およびEntity Class。しかし、それらの適切な定義を見つけることはできませんが、UMLクラス図でこのサイトを見つけました。

回答:


23

多くの場合、OOADおよびビジネスモデリングとともに/その一部として使用されます。Neilによる定義は正しいですが、基本的にMVCと同じですが、ビジネスのために抽象化されています。「良い要約」はよくできているので、ここではコピーしません。これは私の仕事ではなく、より詳細ですが、ニールの箇条書きに沿ったものです。

良い要約-概念:エンティティ-制御-境界パターン

OOAD


3
ただし、MVCはビューレイヤー専用です。
Alex78191 2016

2
回答には、リンクだけでなく情報が含まれている必要があります。残念ながら、リンクは切れています。
ヨハン

2
@ ted-johnson更新されたリンクのチャンスはありますか?ありがとう!
Narshe

コンテンツのある同様のサイトへのリンクを更新しました。
テッドジョンソン

196

堅牢性図は、ユースケースの後、クラス図の前に作成されます。これらは、ユースケースステップの役割を特定するのに役立ちます。これらを使用して、構築しているシステムの使用要件を表すのに十分な堅牢性ユースケースで確保できます。

それらは以下を含みます:

  1. 俳優
  2. ユースケース
  3. エンティティ
  4. 境界
  5. コントロール

一方、モデル・ビュー・コントローラ・パターンは、ユーザインターフェースのために使用される、エンティティ制御境界パターン(ECB)は、システムのために使用されます。ECBの次の側面は、それが役立つ場合は、MVCの抽象バージョンに例えることができます。

UML表記

エンティティ (モデル)
システムデータを表すオブジェクト。多くの場合、ドメインモデルからのものです。

境界 (ビュー/サービスコラボレーター)
システムアクター(ユーザー外部サービスなど)とインターフェイスするオブジェクト。ウィンドウ、画面、メニューは、ユーザーとやり取りする境界の例です。

コントロール (コントローラー)
境界とエンティティの間を仲介するオブジェクト。これらは、境界要素とエンティティ要素の間の接着剤として機能し、さまざまな要素とそれらの相互作用を管理するために必要なロジックを実装します。デザイン内にオブジェクト以外のものとしてコントローラーを実装することを決定する可能性があることを理解することが重要です。多くのコントローラーは、たとえばエンティティまたは境界クラスのメソッドとして実装できるほど単純です。

彼らのコミュニケーションには4つのルールが適用されます。

  1. アクターは境界オブジェクトとのみ話すことができます。
  2. 境界オブジェクトは、コントローラーとアクターとのみ通信できます。
  3. エンティティオブジェクトは、コントローラーとのみ通信できます。
  4. コントローラーは、境界オブジェクトやエンティティオブジェクト、および他のコントローラーと通信できますが、アクターとは通信できません。

許可された通信:

         Entity    Boundary   Control
Entity     X                     X
Boundary                         X
Control    X          X          X

12
コメントから判断すると、この回答は、「エンティティ境界制御」とMVCの違いを理解するのに役立っていません。それらの1つは、境界はビューではないということです。それは、その領域が何であれ、設計中の領域の外側の要素との通信を管理するシステムの要素です。たとえば、システム内のPayPal RESTAPIファサードが境界要素である可能性があります。さらに、サブシステムには独自の境界がある場合があります。これをビューと比較してください。ビューは常にあらゆる観点からのビューであり、常にユーザー向けです。
DavidS 2015年

2
この回答には、実際には同じことを言うことが含まれています。「境界:システムアクター(ユーザーや外部サービスなど)とインターフェイスするオブジェクト」。とにかく、私のポイントはそれらが異なるということです:ECBはMVCの「単純化」ではありません。
DavidS 2015年

ポイント、これらのステレオタイプはUML仕様で定義されていないようです...
granier 2017年

16

これらは、分析で使用されるクラスステレオタイプです。

  • 境界クラスは、システムの境界にあるクラスです-あなたまたは他のシステムが相互作用するクラス

  • エンティティクラスクラスは、「個人」や「銀行口座」などの一般的なビジネスエンティティです。

  • 制御クラスは、いくつかのビジネスロジックまたはその他を実装します


5

境界制御エンティティパターンには2つのバージョンがあります。
-127で説明されている古い構造(データモデル要素としてのエンティティ、関数としての制御、アプリケーションインターフェイスとしての境界)
-新しいオブジェクトパターンオブジェクトパターン


として:
-境界は "のインターフェイスです"他の世界」
-任意の内部ロジックでの制御(DDDパターンのサービスなど)
-エンティティは、オブジェクトの永続性サービス(DDDパターンのリポジトリなど)です。
すべてのクラスには操作があります(ファウラー貧血ドメインモデルのアンチパターンを参照)
。これらはすべて、MVCパターンのモデルコンポーネントです。ルール:
-境界のみが「他の世界」にサービスを提供します
-境界はControllにのみ
呼び出すことができます-Controlは誰にでも呼び出すことができます
-エンティティは誰にも呼び出すことはできず(!)、呼び出されるだけです。

jz


4

実際、ロバストネス図(または分析図と呼ばれることもあります)は、特殊なクラス図にすぎません。それらはUMLの一部であり、最初からあります(Jacobsonの本、Unified Software Development Process-「ThreeAmigos」シリーズの本の一部を参照)。前述の本には、183〜185ページのこれら3つのクラスの適切な定義があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.