Domänenmodell erleichtert Kommunikation

15.11.2005
Von Niklas Feuring und Matthias Scholze

Zur Darstellung von Domänenmodellen wird das UML-Klassendiagramm empfohlen. Dieses bietet einerseits alle notwendigen Modellierungselemente und wird andererseits von zahlreichen Werkzeugen unterstützt. Eine Übersicht über 100 kommerzielle und frei verfügbare Tools steht unter www.jeckle.de/umltools.html zur Verfügung - die Tabelle "Auswahl Modellierungswerkzeuge" nennt einige interessante davon.

Beispiel für unterschiedliche Modellierungs-Level.
Beispiel für unterschiedliche Modellierungs-Level.

Damit an dieser Stelle kein falscher Eindruck entsteht: Die Modellierung von Domänen wird oft mit der Entwicklung von Software verwechselt. Dies liegt an der aus der Softwareentwicklung entliehenen UML-Modellierungsnotation und an den eingesetzten Werkzeugen, die meist aus dem Bereich Softwareentwicklung stammen. Doch der Lernaufwand für den Entwurf von Domänenmodellen beschränkt sich auf wenige Stunden, da nur eine begrenzte Zahl von Modellierungselementen benötigt wird. Die Erfahrung zeigt, dass Gesprächspartner ohne Modellierungskenntnisse die Interpretation des Domänenmodells innerhalb einer Diskussion erfassen und bereits Änderungsvorschläge einbringen können. Insofern können Domänenmodelle auch als eine erste, leicht zu legende Basis verstanden werden, auf der dann zum Beispiel die komplexere Modellierung einer Fachanwendung erfolgen kann.

Ein weiterer Vorteil der Domänenmodellierung ist, dass es keinen vorgegebenen Detaillierungsgrad für die Modellierung gibt. Dadurch kann der Anwender mit den Basiselementen beginnen und das Modell bei Bedarf sukzessive verfeinern. Im Folgenden werden die drei Modellierungs-Levels "Basis", "Fortgeschrittener" und "Experte" beschrieben.

Basis-Level - erste Schritte

Im ersten Schritt sind die Entitäten einer Domäne zu ermitteln und durch ein Rechteck darzustellen, welches den Namen der jeweiligen Entität enthält. Entitäten sind verallgemeinernde, abstrakte Beschreibungen von Objekten mit gleichen Eigenschaften (Attribute). Das trifft beispielsweise auf alle Angestellten zu, da jedem Angestellten ein Name, ein Geburtsdatum, ein Einstellungsdatum etc. zugeordnet ist. Typischerweise handelt es sich bei den Entitäten um

  • Personen (Kunde, Verkäufer, Ansprechpartner),

  • Zustände eines Prozesses (Transaktion, Buchung, Abflug),

  • Sachgegenstände (Vertrag, Rechnung, Auto, Haus) oder

  • Infrastruktur (Firma, Abteilung, Zimmerplan).

Anschließend ist darzustellen, welche Entitäten miteinander in Beziehung stehen. Man beachte, dass eine Entität eine Beziehung zu sich selbst haben kann, womit in der Regel zwei unterschiedliche Instanzen einer Entität gemeint sind. Als Beispiel soll hier die Entität "Angestellter" dienen, bei der durch die Beziehung auf sich selbst die Unternehmenshierarchie abgebildet werden kann. Die Beziehung wird durch eine Linie zwischen den Entitäten dargestellt. Werden Entitäten aus unterschiedlichen Domänen modelliert, so können die Entitäten jeder Domäne durch ein Rechteck mit dem Namen der Domäne gruppiert werden.

Level für Fortgeschrittene

Auf den nächsten Ebenen (für Fortgeschrittene) werden die im Basis-Level identifizierten Entitäten und Beziehungen verfeinert. Für die Entitäten sind die dazugehörigen Attribute zu definieren. Diese beschreiben die Eigenschaften der Entität wie beispielsweise Name, Status, Typ oder Datum. Die Darstellung erfolgt in einem Rechteck, das die Namen der Attribute enthält und unter dem Rechteck der Entität angeordnet wird. Im nächsten Schritt werden die vorhandenen Beziehungen um die so genannte Kardinalität erweitert. Diese gibt die Anzahl an Beziehungen an, die zwischen den Instanzen von Entitäten auftreten können (n = genau n Beziehungen, n..m = n bis m Beziehungen, * = keine oder eine unbeschränkte Anzahl an Beziehungen und + = eine oder eine unbeschränkte Anzahl an Beziehungen).

Auswahl Modellierungswerkzeuge

Auswahl Modellierungswerkzeuge

Kommerzielle Produkte

Frei verfügbare Werkzeuge

Aris, IDS-Scheer, www.ids-scheer.de;

Argo UML, University of California, www.argouml.org;

Together, Borland, www.borland.com/together;

Eclipse UML, Omondo, www.eclipseuml.com

Rational Rose XDE, IBM, www.ibm.com/software;

Fujaba, Universität Paderborn, www.uni-paderborn.de/cs/fujaba;

Objectif, Microtool, www.microtool.de/objectif;

Jude, ESM Inc., www.esm.jp/jude-web/en/index.html.