updatet f5aw
BIN
Writerside/images/image_87.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
Writerside/images/image_88.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
Writerside/images/image_89.png
Normal file
After Width: | Height: | Size: 896 B |
BIN
Writerside/images/image_90.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
Writerside/images/image_91.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
Writerside/images/image_92.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Writerside/images/image_93.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
Writerside/images/image_94.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Writerside/images/image_95.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
Writerside/images/image_96.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
Writerside/images/image_97.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
Writerside/images/image_98.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
135
Writerside/topics/OOAD/UML.md
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
# UML (Unified Modeling Language)
|
||||||
|
## Categories
|
||||||
|
### Structure Diagrams
|
||||||
|
- dynamisches Verhalten der Elemente (bspw. Veränderung über Zeit) wird nicht beachtet
|
||||||
|
|
||||||
|
- **[Class Diagram](UML.md#klassen-diagramme)**
|
||||||
|
- Package Diagram
|
||||||
|
- **[Object Diagram](UML.md#objekt-diagramme)**
|
||||||
|
- 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](UML.md#sichtbarkeit-von-attributen-methoden)
|
||||||
|
- Name
|
||||||
|
- Typ (primitiv / komplex)
|
||||||
|
- Durch [Assoziation](UML.md#association)
|
||||||
|
- bspw.: entries 
|
||||||
|
#### 3. Bereich: Methoden der Klasse
|
||||||
|
- Haben 4 Elemente:
|
||||||
|
- [Sichtbarkeit](UML.md#sichtbarkeit-von-attributen-methoden)
|
||||||
|
- 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
|
||||||
|
|
||||||
|
### 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](IntroductionOOAD.md#software-development-lifecycle-sdlc) sein.
|
||||||
|
1. keine Details (erste Analyse für die ersten Diskussionen des Domänen-Konzepts)
|
||||||
|
- 
|
||||||
|
2. mehr Details (während späterer Analysen)
|
||||||
|
- 
|
||||||
|
3. sehr detaillierte Beschreibung (detaillierte Analyse oder während Implementierung)
|
||||||
|
- 
|
||||||
|
|
||||||
|
## N-Ary Association
|