FAQ zu UML-Klassendiagrammen & Domänenmodellierung
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 6,03 KB
Wie werden Klassen als Datentypen dargestellt?
Obwohl eine Klasse als Attribut einer anderen Klasse dargestellt werden könnte, ist es oft sinnvoller, sie als eigene konzeptuelle Klasse in einem separaten Rechteck darzustellen. Dies gilt insbesondere, da sie im Gegensatz zu primitiven Datentypen eigene Attribute und Assoziationen besitzt.
Sollten Attribute zur Verknüpfung von Klassen dienen?
Nein, im Domänenmodell (MD) sollten keine Attribute verwendet werden, um konzeptuelle Klassen miteinander zu verknüpfen. Ein typischer Fehler ist das Hinzufügen von Fremdschlüssel-Attributen, eine Praxis, die aus dem Design relationaler Datenbanken stammt, aber nicht in die konzeptuelle Modellierung gehört.
Was sind Assoziationsklasse, Aggregation & Komposition?
- Assoziationsklasse: Eine Klasse, die einer Assoziation eigene Attribute und Operationen hinzufügt.
- Aggregation: Eine spezielle Art von Assoziation, die eine Teil-Ganzes-Beziehung modelliert.
- Komposition: Eine stärkere Form der Aggregation, bei der die Teile existenziell vom Ganzen abhängig sind.
Wie wird die Aggregation in UML dargestellt?
In UML wird eine Aggregation durch eine hohle Raute (leerer Diamant) am Ende der Assoziation auf der Seite des „Ganzen“ dargestellt. Sie symbolisiert eine Teil-Ganzes-Beziehung.
Was bedeutet Komposition (gefüllte Raute)?
Die Komposition (dargestellt durch eine gefüllte Raute) ist eine starke Form der Aggregation. Sie bedeutet:
- Existenzabhängigkeit: Der Teil kann nicht ohne das Ganze existieren. Wird das Ganze gelöscht, werden auch die Teile gelöscht.
- Exklusive Zugehörigkeit: Ein Teil gehört zu genau einem Ganzen.
Beispiel: Eine Kompositionsbeziehung besteht zwischen einer Hand und ihren Fingern. Ein Finger kann nicht ohne die Hand existieren.
Was bedeutet geteilte Aggregation (hohle Raute)?
Die geteilte oder schwache Aggregation (dargestellt durch eine hohle Raute) bedeutet, dass ein Teil zu mehreren „Ganzen“ gleichzeitig gehören kann. Die Teile können auch unabhängig vom Ganzen existieren.
Beispiel: Ein UML-Paket aggregiert seine Elemente, aber ein Element könnte in mehr als einem Paket referenziert werden.
Wann und warum sollte man eine Aggregation verwenden?
Eine Aggregation sollte dargestellt werden, wenn sie folgende Vorteile bietet:
- Präzisierung von Domänenregeln: Sie verdeutlicht die Existenzabhängigkeit (oder Unabhängigkeit) des Teils vom Ganzen.
- Unterstützung bei Design-Mustern: Sie hilft bei der Anwendung von Mustern wie dem GRASP-Creator-Muster.
- Kaskadierende Operationen: Sie zeigt an, dass Operationen auf das Ganze (z. B. Löschen) sich auf die Teile auswirken.
Was befindet sich an den Enden einer Assoziation?
Jedes Ende einer Assoziation wird als Rolle bezeichnet. Eine Rolle hat mehrere Eigenschaften, darunter:
- Rollenname: Beschreibt die Funktion, die ein Objekt in der Assoziation einnimmt.
- Multiplizität (Kardinalität): Gibt an, wie viele Instanzen an dieser Rolle beteiligt sein können (z. B. 1, 0..*, 1..*).
Wie können Rollen modelliert werden?
In einem Domänenmodell kann eine Rolle auf zwei Arten modelliert werden:
- Als Rolle in einer Assoziation: Dies ist nützlich, um darzustellen, wie dieselbe Instanz (z. B. eine Person) in verschiedenen Assoziationen unterschiedliche Rollen einnimmt.
- Als separate konzeptuelle Klasse: Dieser Ansatz ist flexibler. Er ermöglicht es, der Rolle eigene Attribute und Assoziationen zuzuordnen. Zudem ist die Implementierung als separate Klasse in objektorientierten Sprachen oft einfacher.
Was ist ein abgeleitetes Element im Domänenmodell?
Ein abgeleitetes Element (Attribut oder Assoziation) ist ein Element, dessen Wert aus anderen Elementen berechnet werden kann. In UML-Diagrammen werden sie mit einem vorangestellten Schrägstrich (/) gekennzeichnet.
Empfehlung: Zeigen Sie abgeleitete Elemente nur dann, wenn sie ein wichtiger Begriff in der Domänenterminologie sind und das Verständnis des Modells verbessern.
Was ist ein Qualifizierer in einer Assoziation?
Ein Qualifizierer kann verwendet werden, um die Menge der Objekte am anderen Ende einer Assoziation basierend auf einem Schlüsselwert zu reduzieren. Er präzisiert die Assoziation und reduziert oft die Multiplizität (z. B. von 0..* auf 0..1). Obwohl er oft als Designdetail betrachtet wird, kann er das Domänenwissen verbessern.
Was ist eine reflexive Assoziation?
Eine reflexive Assoziation (oder rekursive Assoziation) ist eine Beziehung, bei der eine Klasse mit sich selbst in Beziehung steht. Instanzen dieser Klasse können also mit anderen Instanzen derselben Klasse verknüpft sein.
Wie stellt man geordnete Objekte in einer Assoziation dar?
Wenn die mit einer Assoziation verbundenen Objekte eine bestimmte Reihenfolge haben, wird dies in UML durch die Hinzufügung der Eigenschaftszeichenfolge {ordered} am entsprechenden Assoziationsende gekennzeichnet.
Wie organisiert man Domänenmodelle mit Paketen?
Um große Domänenmodelle (MD) übersichtlich zu halten, können sie in Pakete (in UML als Ordnersymbol dargestellt) aufgeteilt werden. Pakete gruppieren eng zusammengehörige Konzepte.
Kriterien für die Aufteilung in Pakete sind:
- Elemente gehören zum selben Fachgebiet.
- Elemente sind Teil derselben Klassenhierarchie.
- Elemente sind an denselben Anwendungsfällen (Use Cases) beteiligt.
- Elemente sind stark miteinander verbunden (hohe Kohäsion).