UML - Objektdiagramme
Klassendiagramme vs Objektdiagramme I Ein Klassendiagrammzeigt eine Menge von Klassen und ihre Beziehungen. Sie stellen die statische Entwurfsschicht eines Systems dar: CFirma 1 1..100 CPerson Ein Objektdiagramm zeigt eine Menge von Objekten und ihre Beziehungen. Sie zeigen statische Momentaufnahmen der Instanzen von Klassendiagrammen mycomp:cfirma name= Xterm-Inate noofemployees=15 myemployee1:cperson nickname= Lucid Lynx codinglang= C++ myemployee2 :CPerson nickname= Maverick Meerkat codinglang= D
Klassendiagramme vs Objektdiagramme II Instanzname(optional) Klassenname Ausprägungen der Attribute myemployee1:cperson nickname= Lucid Lynx codinglang= C++
Objektdiagramm: 1:1 Assoziationen Land 0..1 1 hat Hauptstadt Stadt Klassen diagramm bonn:stadt ist keine Hauptstadt nrw:land dd:stadt ist Hauptstadt illegal: mehrere Hauptstädte nrw:land bayern:land dd:stadt m:stadt illegal: ist mehrfache Haupstadt illegal: hat keine Hauptstadt takatuka:land
Objektdiagramm: 1:N Assoziationen Polygon 0..1 3..* hat Eckpunkt Punkt Klassen diagramm :Polygon :Punkt :Punkt :Punkt :Punkt Polyon mit 4 Ecken :Punkt Singulärer Eckpunkt illegal: Zu wenig Eckp. :Polygon :Punkt illegal: Zu wenig Eckp. :Polygon :Punkt illegal: mehrfacher Eckpunkt illegal: Zu wenig Eckp. :Polygon
Objektdiagramm: M:N Assoziation Firma * * Person Klassen diagramm hat mehrere Arbeitnehmer zeitarbeit:firma claudia:person hat einen Job hat einen Arbeitnehmer ichag:firma peter:person hat mehrere Jobs hat keinen Arbeitnehmer briefkasten:firma opa:person hat keinen Jobs
Objektdiagramm: Aggregation I Pfad * * Segment Ist Teil von Teile dürfen in mehreren Ganzen enthalten sein Ihre Lebensdauer ist nicht von der des Ganzen abhängig B C A Die roten Segmente sind Teile der Pfade AB und AC: Ein Pfad besteht aus mehreren Segmenten, das Segment kann aber ohne den Pfad existieren!
Objektdiagramm: Aggregation II Pfad * * Segment s1:segment AB:Pfad r1:segment AC:Pfad r2:segment s2:segment s3:segment
Objektdiagramm: Komposition I * Unterabteilung Firma 1 1..* Abteilung ist ausschließliches Teil von -Beziehung Lebensdauer des Teils endet mit Lebensdauer des Ganzen 1 Hauptabteilung Codfather Company Development Testing Sales D1 D2 D3 T1 T2 T3 S1 S2 S3
Objektdiagramm: Komposition II * Firma Abteilung 1 Hauptabteilung CFC:Firma Dev:Abteilung Testing:Abteilung Sales:Abteilung d1:abteilung d2:abteilung d3:abteilung t1:abteilung t2:abteilung t3:abteilung s1:abteilung s2:abteilung s3:abteilung
Objektdiagramme Beispiel Ia Ist eine Momentaufnahme der aktuellen Objekte: Objektdiagramm: Klassendiagramm: Klassenname Attribute
Objektdiagramme Beispiel Ib public class Paar{ private Person[] personen; public Paar(Person a, Person b){ personen = new Person[2]; personen[0] = a; personen[1] = b; } public static void main(string args[]) {. Paar paar = new Paar(p1, p2); } Internes Array für die Personenliste Im Konstruktor werden zwei Personen festgelegt Zuweisung der Personen im Konstruktor
Objektdiagramme Beispiel Ic public class Gruppe { private List<Person> personen; public Gruppe(){ personen = new Vector<Person>(); } public void addperson(person person){ personen.add(person); } public void removeperson(person person){ personen.remove(person); } } Internes Array für die Personenliste Im Konstruktor wird die Vector-Klasse festgelegt Zufügen einer Person Entfernen einer Person
Objektdiagramme Beispiel IIa Ist eine Momentaufnahme der aktuellen Objekte: Objektdiagramm: Klassendiagramm:
Objektdiagramme Beispiel IIb public static void main(string args[]) {... Gruppe gruppe = new Gruppe(); gruppe.addperson(p1); gruppe.addperson(p2); gruppe.addperson(p3); gruppe.removeperson(p1); } Drei Personen zufügen Erste Person entfernen
Objektdiagramme Beispiel IIIa Klassendiagramm:
Objektdiagramme Beispiel IIIb Objektdiagramm:
Objektdiagramm: Assoziationsklassen und n-äre Assoziation Hier: https://www.sparxsystems.de/ressourcen/literatur/leseprobe-zu-projektabwicklung-mit-uml-und-enterprise-architect/klassendiagramm-class-diagram/