von Robert Lemke, 28.02.2008

Lösungsansätze für die Entwicklung komplexer Webanwendungen: Domain-Driven Design

Aus dem
t3n Magazin Nr. 11

Jetzt kaufen

Destilliertes Wissen

Nun, da Sie wissen, dass Sie die Business-Logik von den übrigen Teilen der Anwendung trennen sollten, machen wir uns daran, ein Modell der Domäne zu erstellen. Projektleiter, Entwickler und Kunden erarbeiten zusammen ein Abbild der Realität, ein Modell, das das destillierte Wissen der Domäne enthält. Sie können hierfür UML-Diagramme anfertigen, auf einer Flipchart Skizzen anfertigen oder ein Brainstorming mit Metaplan-Wänden durchführen. Wichtig ist nur, dass sich alle Beteiligten auf ein Modell einigen können, das die Essenz des Fachgebiets enthält, Abläufe und Zusammenhänge verdeutlicht und Unwichtiges weglässt.

Naives Modell eines Hotelzimmers.

Naives Modell eines Hotelzimmers.

Betrachten wir noch einmal das Beispiel eines Buchungssystems. Während eines Meetings skizzieren Sie ein erstes Modell, das ein Hotelzimmer beschreiben könnte:

Es gibt eine Zimmernummer, die Anzahl an Betten ... die wichtigsten Eigenschaften eines Hotelzimmers können gespeichert werden. Natürlich ist das Modell unvollständig, es wirft jedoch auch andere Probleme auf:

  • Im Modell werden deutsche Bezeichner verwendet. Aus meiner Erfahrung sollten Sie, wenn es irgendwie geht, ausschließlich englische Bezeichner verwenden, auch wenn sämtliche Projektteilnehmer Deutsch sprechen. Die Mischung aus Ihrem deutschen und fremden englischen Quellcode würde sonst sehr unübersichtlich.
  • Es handelt sich um ein Datenmodell und kein ausdrucksvolles Modell einer Domäne. Machen Sie sich frei von dem Drang, in Datenbanktabellen zu denken. Ein Domain-Model besteht nicht nur aus Eigenschaften, sondern verkörpert auch die Aktionen, die das entsprechende Objekt bietet.

Der zweite Versuch berücksichtigt diese beiden Punkte. Ihr Kunde, der Domänenexperte, ist jedoch noch nicht zufrieden: Die bloße Angabe der Bettenanzahl reicht nicht aus, denn schließlich müssen Sie zwischen Einzel- und Doppelbett, Queen-Size-, King-Size- und Kinderbett unterscheiden. Außerdem müssen die „Belegungsarten“ vermerkt werden: Das Zimmer ist vielleicht grundsätzlich ein Doppelzimmer, das aber auch als Einzelzimmer oder als Eltern-und-Kind-Zimmer angeboten wird. Sie einigen sich mit dem Hotelier darauf, eine Standard-, Minimal- und Maximalbelegung aufzunehmen und hierfür den englischen Begriff „occupancy“ zu verwenden.

Seite:  1 2 3 4 5 6 7 8

2 Antworten

  1. von Die Zukunft der Extension-Entwicklung: N… 01.12.2009 (09:42Uhr) 1.

    [...] in abstrahierte Softwareobjekte – das Domänen-Modell („Domain Model“) – übersetzt [1]. Objekte, die explizit nicht zum Domänen-Modell gehören sind solche, die für das Speichern und [...]

  2. von Wie am besten Extbase lernen? - TYPO3-ne… 11.11.2011 (16:11Uhr) 2.

    [...] werden, der Autor hat außerdem eine Zusammenfassung veröffentlich.Domain-driven DesignEin  t3n-Artikel von Robert Lemke (Team Leader FLOW3) führt in das Thema ein.Das Buch Domain-Driven Design: Tackling Complexity in [...]

Deine Meinung


(wird nicht veröffentlicht)