4.1 KiB
UML (Unified Modeling Language)
Categories
Structure Diagrams
-
dynamisches Verhalten der Elemente (bspw. Veränderung über Zeit) wird nicht beachtet
-
Package Diagram
-
Component Diagram
-
Profile Diagram
-
Composition Structure Diagram
-
Deployment Diagram
Behavior Diagram
-
Kann Verhalten detailliert definieren
-
Bestimmt, wie sich der Zustand eines Elements über Zeit verändert
-
State Machine Diagram
-
Use Case Diagram
-
Activity Diagram
-
Interaction Diagram
- Sequence Diagram
- Interaction Overview Diagram
- Communication Diagram
- Timing Diagram
Klassen Diagramme
- Klassen werden als Boxen dargestellt mit
- Name
- Attribute
- Methoden
Aufbau Klassen-Diagramm
1. Bereich: Name der Klasse
- beginnt mit Großbuchstaben
- ist ein Nomen
- sollte die Klasse beschreiben
2. Bereich: Attribute der Klasse
Es gibt zwei Arten die Attribute darzustellen
- Inline, dabei muss angegeben werden:
- Sichtbarkeit
- Name
- Typ (primitiv / komplex)
- Durch Assoziation
3. Bereich: Methoden der Klasse
- Haben 4 Elemente:
- Sichtbarkeit
- Name
- ggf Parameter
- Rückgabewert
- Bspw.:
+ addEntry(int number, string description): void
Sichtbarkeit von Attributen / Methoden
- Public (+)
- Jedes Objekt anderer Klassen kann zugreifen
- Protected (#)
- Jedes Objekt der Klasse und der Unterklassen kann darauf zugreifen
- Package (~)
- Jedes Objekt, deren Klasse im selben Package ist, kann darauf zugreifen
- Private (-)
- Nur das Objekt selbst kann darauf zugreifen
Beispiel Klassen Diagramme:
- 3 Klassen (Student, Course, LectureHall)
- Student kann keine bis n Lectures beitreten
- Courses können in keine bis einer LectureHall stattfinden
- Student hat einen first name, last name, date of birth...
- etc.
Objekt Diagramme
Beispiel Objekt Diagramme:
- 4 Instanzen / Objekte vom Typ Student (Helen, Mike, Paul)
- Helen ist im Kurs oom und iprog
- Der Kurs db ist in der LectureHall lh2
Relationship Overview
Klassen arbeiten zusammen über verschiedene Arten von Relationships
- Relationships werden als Linie zwischen den Boxen dargestellt mit
- Name
- Leserichtung
- Multiplizität
- Sind als Intervall dargestellt [Min..Max]
- Falls es kein Limit gibt: *
- Falls Min = Max: nur eins hinschreiben
- Bsp.:
[0..1]
: Attribut hat 0 - 1 Wert[5]
: Attribut hat genau 5 Werte[*]
: Attribut hat 0 bis unendlich Werte[3..*]
: Attribut hat 3 bis unendlich Werte
- Sind als Intervall dargestellt [Min..Max]
Association
Wenn ein Objekt einer Klasse mit Objekten einer anderen Klasse arbeitet
- schwächstes Relationship
- Kommunikationspartner können auf Attribute und Methoden des Anderen zugreifen
- Bsp.:
Navigatability
- x: Darauf ist nicht zugreifbar
- >: Darauf kann zugegriffen werden
- nix: undefined
Aggregation
Wenn eine Klasse eine Referenz zu Objekten einer anderen Klasse besitzt und teilt
Composition
Wenn eine Klasse Objekte einer anderen Klasse enthält
Generalization
Wenn eine Klasse ein Typ einer anderen Klasse ist
Erstellung von Klassen
Appropriate Level of detail
Detail der Zeichnung sollte abhängig vom SDLC sein.
- keine Details (erste Analyse für die ersten Diskussionen des Domänen-Konzepts)
- mehr Details (während späterer Analysen)
- sehr detaillierte Beschreibung (detaillierte Analyse oder während Implementierung)