Was sind in UML-Klassendiagrammen Grenzklassen, Kontrollklassen und Entitätsklassen?

84

Ich verwende jetzt NetBeans als IDE meiner Wahl und es gibt ein Plugin für die UML-Modellierung. Im Klassendiagramm gibt es Modellelemente wie bekannt Boundary Class, Control Classund Entity Class. Ich kann jedoch keine gute Definition finden, aber ich habe diese Site in UML-Klassendiagrammen gefunden.

Thomas Owens
quelle

Antworten:

22

Wird häufig mit / als Teil von OOAD und Geschäftsmodellierung verwendet. Die Definition von Neil ist korrekt, aber im Grunde identisch mit MVC, aber nur für das Unternehmen abstrahiert. Die "gute Zusammenfassung" ist gut gemacht, daher werde ich sie hier nicht kopieren, da es nicht meine Arbeit ist, detaillierter, aber im Einklang mit Neils Stichpunkten.

Gute Zusammenfassung - Conceito: Entity-Control-Boundary-Muster

OOAD

Ted Johnson
quelle
3
MVC ist jedoch nur für die Ansichtsebene vorgesehen.
Alex78191
2
Die Antwort sollte Informationen enthalten und nicht nur einen Link dazu enthalten. Leider ist der Link tot.
Johan
2
@ Ted-Johnson Gibt es eine Chance für einen aktualisierten Link? Vielen Dank!
Narshe
Aktualisierter Link zu einer ähnlichen Website mit Inhalt.
Ted Johnson
193

Robustheitsdiagramme werden nach Anwendungsfällen und vor Klassendiagrammen geschrieben. Sie helfen dabei, die Rollen von Anwendungsfallschritten zu identifizieren. Sie können sie verwenden, um sicherzustellen , dass Ihre Anwendungsfälle ausreichend robust sind, um die Nutzungsanforderungen für das von Ihnen erstellte System darzustellen.

Sie beinhalten:

  1. Schauspieler
  2. Anwendungsfälle
  3. Entitäten
  4. Grenzen
  5. Kontrollen

Während das Model-View-Controller- Muster für Benutzeroberflächen verwendet wird, wird das Entity-Control-Boundary-Pattern (ECB) für Systeme verwendet. Die folgenden Aspekte der EZB können mit einer abstrakten Version von MVC verglichen werden, wenn dies hilfreich ist:

UML-Notation

Entitäten (Modell)
Objekte, die Systemdaten darstellen, häufig aus dem Domänenmodell.

Grenzen (View / Service Collaborator)
Objekte, die mit Systemakteuren (z. B. einem Benutzer oder einem externen Service ) verbunden sind. Windows, Bildschirme und Menüs sind Beispiele für Grenzen, die mit Benutzern verbunden sind.

Steuerelemente (Controller)
Objekte, die zwischen Grenzen und Entitäten vermitteln. Diese dienen als Bindeglied zwischen Grenzelementen und Entitätselementen und implementieren die Logik, die zum Verwalten der verschiedenen Elemente und ihrer Interaktionen erforderlich ist. Es ist wichtig zu verstehen, dass Sie sich möglicherweise dafür entscheiden, Controller in Ihrem Design als etwas anderes als Objekte zu implementieren. Viele Controller sind einfach genug, um beispielsweise als Methode einer Entität oder Grenzklasse implementiert zu werden.

Für ihre Kommunikation gelten vier Regeln:

  1. Schauspieler können nur mit Grenzobjekten sprechen.
  2. Grenzobjekte können nur mit Controllern und Akteuren kommunizieren.
  3. Entitätsobjekte können nur mit Controllern kommunizieren.
  4. Controller können mit Grenzobjekten und Entitätsobjekten und mit anderen Controllern sprechen, jedoch nicht mit Akteuren

Kommunikation erlaubt:

         Entity    Boundary   Control
Entity     X                     X
Boundary                         X
Control    X          X          X
Welpe
quelle
12
Den Kommentaren nach zu urteilen, hilft diese Antwort den Menschen nicht, den Unterschied zwischen "Entity Boundary Control" und MVC zu erkennen. Eine davon ist, dass eine Grenze keine Ansicht ist; Es ist ein Element des Systems, das die Kommunikation mit Elementen außerhalb des zu entwerfenden Bereichs verwaltet, unabhängig davon, um welchen Bereich es sich handelt. Beispielsweise kann eine PayPal-REST-API-Fassade in Ihrem System ein Grenzelement sein. Darüber hinaus können Ihre Subsysteme eigene Grenzen haben. Vergleichen Sie dies mit einer Ansicht, die aus jeder Perspektive immer eine Ansicht ist und immer dem Benutzer zugewandt ist.
DavidS
2
Diese Antwort beinhaltet das Gleiche: "Grenze: Objekte, die mit Systemakteuren in Verbindung stehen (z. B. ein Benutzer oder ein externer Dienst )". Mein Punkt ist jedenfalls, dass sie unterschiedlich sind: Die EZB ist keine "Vereinfachung" der MVC.
DavidS
Ein Punkt, diese Stereotypen scheinen nicht in der UML-Spezifikation definiert zu sein ...
Granier
16

Dies sind Klassenstereotypen, die in der Analyse verwendet werden.

  • Grenzklassen sind solche an der Grenze des Systems - die Klassen, mit denen Sie oder andere Systeme interagieren

  • Entitätsklassen Klassen sind typische Geschäftsentitäten wie "Person" und "Bankkonto".

  • Steuerklassen implementieren die eine oder andere Geschäftslogik


quelle
4

Tatsächlich sind die Robustheitsdiagramme (oder Analysediagramme, wie sie manchmal genannt werden) nur spezialisierte Klassendiagramme. Sie sind Teil von UML und waren von Anfang an dabei (siehe Jacobsons Buch The Unified Software Development Process - Teil der Buchreihe "Three Amigos"). Das oben erwähnte Buch enthält eine gute Definition dieser drei Klassen auf den Seiten 183-185.


quelle
4

Grenzsteuerung Entitätsmuster haben zwei Versionen:
- alte Struktur, beschrieben bei 127 (Entität als Datenmodellelemente, Steuerung als Funktionen, Grenze als Anwendungsschnittstelle)
- neues Objektmuster


als Objektmuster:
- Grenze ist eine Schnittstelle für " andere Welt "
- Steuerung in einer beliebigen internen Logik (wie ein Dienst im DDD-Muster)
- Entität ist ein Persistenz-Serwis für Objekte (wie ein Repository im DDD-Muster).
Alle Klassen verfügen über Operationen (siehe Anti-Pattern-Modell für das anämische Fowler-Domänenmodell). Alle Klassen sind
eine Modellkomponente im MVC-Pattern. Die Regeln:
- Nur Boundary bietet Dienste für die "andere Welt" an.
- Boundary kann nur Controlling
anrufen. - Control kann jeden anrufen
- Entität kann niemanden anrufen (!), Nur angerufen werden.

jz

Jarek Zelinski
quelle