Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

entity-control-boundary [2010/10/24 14:23] (aktuell)
Christian Mann angelegt
Zeile 1: Zeile 1:
 +== Historisches ==
 +Das Entity-Control-Boundary-(ECB)-Muster geht auf Ivar Jacobsons "[[ObjectOry]]" zurück, wo es in erster Linie als [[Architekturmuster]] definiert ist. ECB beschreibt das Schema, nachdem [[Use Case | Use Cases]] in Objekte umgesetzt werden.
 +== Struktur ==
 +Die Grundstruktur des Musters baut auf der Unterscheidung dreier verschiedener Objekttypen auf:
 +  * Entity -- Objekte, die persistentes Wissen (= Daten) repräsentieren;
 +  * Control -- Objekte, die Prozesswissen (= Funktionen) repräsentieren;
 +  * Boundary -- Objekte, die Schnittstellen zwischen UseCase und [Actor] repräsentieren.
 +
 +Die Abbildung vom UseCase auf die einzelnen Objekttypen folgt einem einfachen Schema:
 +  * Ein zentrales Control pro [[Use Case]]...
 +  * Ein Boundary pro [[Use Case]]-[[Actor]]-Beziehung...
 +  * Entities für alle persistenten Objekte, die im [[Use Case]] bearbeitet werden...
 +
 +{{ECB1.jpg}}
 +
 +== ECB und MVC ==
 +Auf den ersten Blick sehen ECB und [[Model-View-Controller|MVC]] sehr ähnlich aus:
 +  * Entities = Models
 +  * Boundaries = Views
 +  * Controls = Controller
 +
 +Allerdings unterscheiden sie sich bei näherer Betrachtung erheblich hinsichtlich der Rolle der Controls/Controller: Der [[Model-View-Controller|MVC]]-Controller hat rein technische Steuerungsfunktion, wohingegen das ECB-Control der designierte Ort für Geschäftsprozessfunktionalität ist (die in [[Model-View-Controller|MVC]] den Model-Klassen zugewiesen wird)!
 +
 +[[Model-View-Controller|MVC]] trägt damit Peter Coads Erkenntnis Rechnung, dass das Daten-Layout erheblich stabiler ist, als das Geschäftsprozessmodell, wohin gegen ECB eben dieser Volatilität des Geschäftsprozessmodells Rechnung trägt, indem es die Funktionalität eines Geschäftsprozesses (= -- cum grano salis -- [[Use Case]]) pflegefreundlich in einem Control-Objekt kapselt.
 +
 +ECB sieht auf diesem Hintergrund fast wie eine 1:1-Abbildung des guten alten 3-Schichten-Modells in Objekte aus!
 +
 +== ECB als Analysemuster ==
 +Was mich an diesem Muster am meisten reizt, ist allerdings nicht dieser pragmatische Aspekt der Prozessorientierung, als vielmehr die tatsache, dass sich ECB auch als [[Analysemuster]] lesen lässt, welches einen extrem einfachen Weg von der Geschäftsprozessmodellierung in das IT-System eröffnet:
 +  * Der Geschäftsprozess wird zum [[Use Case]] (Für Web-Projekte oftmals 1:1!)
 +  * Die bearbeiteten und abgelegten Akten werden zu (dummen) Entities...
 +  * Die Kundenschnittstelle (oftmals der Außendienstler) "gerinnt" in entsprechenden Boundaries...
 +  * Das interne Prozesswissen des Sachbearbeiters findet sich im Control wieder...
 +
 +{{ECB2.jpg}}
 +
 +...und schon weiß man, wie jemand "weg-rationalisiert" wird!
 +
 + --- //[[dr.mann@ipponsoft.de|Christian Mann]] 2010/10/24 14:17//
 
entity-control-boundary.txt · Zuletzt geändert: 2010/10/24 14:23 von Christian Mann
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki