diff --git a/Writerside/images/image_100.png b/Writerside/images/image_100.png new file mode 100644 index 0000000..b258d4a Binary files /dev/null and b/Writerside/images/image_100.png differ diff --git a/Writerside/images/image_101.png b/Writerside/images/image_101.png new file mode 100644 index 0000000..b6189f7 Binary files /dev/null and b/Writerside/images/image_101.png differ diff --git a/Writerside/images/image_102.png b/Writerside/images/image_102.png new file mode 100644 index 0000000..f12eeb8 Binary files /dev/null and b/Writerside/images/image_102.png differ diff --git a/Writerside/images/image_103.png b/Writerside/images/image_103.png new file mode 100644 index 0000000..a7d1ed5 Binary files /dev/null and b/Writerside/images/image_103.png differ diff --git a/Writerside/images/image_104.png b/Writerside/images/image_104.png new file mode 100644 index 0000000..f301d96 Binary files /dev/null and b/Writerside/images/image_104.png differ diff --git a/Writerside/images/image_105.png b/Writerside/images/image_105.png new file mode 100644 index 0000000..7981def Binary files /dev/null and b/Writerside/images/image_105.png differ diff --git a/Writerside/images/image_106.png b/Writerside/images/image_106.png new file mode 100644 index 0000000..d2350e4 Binary files /dev/null and b/Writerside/images/image_106.png differ diff --git a/Writerside/images/image_107.png b/Writerside/images/image_107.png new file mode 100644 index 0000000..3b74779 Binary files /dev/null and b/Writerside/images/image_107.png differ diff --git a/Writerside/images/image_108.png b/Writerside/images/image_108.png new file mode 100644 index 0000000..5bd3f42 Binary files /dev/null and b/Writerside/images/image_108.png differ diff --git a/Writerside/images/image_109.png b/Writerside/images/image_109.png new file mode 100644 index 0000000..6458127 Binary files /dev/null and b/Writerside/images/image_109.png differ diff --git a/Writerside/images/image_110.png b/Writerside/images/image_110.png new file mode 100644 index 0000000..9240755 Binary files /dev/null and b/Writerside/images/image_110.png differ diff --git a/Writerside/images/image_99.png b/Writerside/images/image_99.png new file mode 100644 index 0000000..c87be19 Binary files /dev/null and b/Writerside/images/image_99.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index b1decd3..a796127 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -29,5 +29,4 @@ - \ No newline at end of file diff --git a/Writerside/topics/OOAD/UML.md b/Writerside/topics/OOAD/UML.md index 1830410..94f453d 100644 --- a/Writerside/topics/OOAD/UML.md +++ b/Writerside/topics/OOAD/UML.md @@ -72,6 +72,19 @@ Es gibt zwei Arten die Attribute darzustellen ![image_87.png](image_87.png) + +### Erstellung eines Klassen-Diagramms +1. Identifizierung der Klassen + - ![image_107.png](image_107.png) +2. Identifizierung der Attribute + - ![image_108.png](image_108.png) +3. Identifizierung von Generalisierungen + - ![image_109.png](image_109.png) +4. Identifizierung von Assoziationen und Aggregationen + - ![image_110.png](image_110.png) + +_Entstandenes UML-Diagramm ist nicht einzig korrektes!_ + ## Objekt Diagramme ### Beispiel Objekt Diagramme: - 4 Instanzen / Objekte vom Typ Student (Helen, Mike, Paul) @@ -97,6 +110,7 @@ Klassen arbeiten zusammen über verschiedene Arten von Relationships ### Association Wenn ein Objekt einer Klasse mit Objekten einer anderen Klasse arbeitet + ![image_89.png](image_89.png) - schwächstes Relationship - Kommunikationspartner können auf Attribute und Methoden des Anderen zugreifen @@ -109,19 +123,28 @@ Wenn ein Objekt einer Klasse mit Objekten einer anderen Klasse arbeitet - nix: undefined - ### Aggregation Wenn eine Klasse eine Referenz zu Objekten einer anderen Klasse besitzt und teilt + ![image_90.png](image_90.png) +- Objekte existieren auch unabhängig +- Es können auch [mehrere Objekte](UML.md#relationship-overview) in einer Aggregation verbunden werden + ### Composition Wenn eine Klasse Objekte einer anderen Klasse enthält + ![image_91.png](image_91.png) -### Generalization +- Nur maximal eine Instanz +- Objekt kann nicht allein existieren + +### Generalization (Inheritance) Wenn eine Klasse ein Typ einer anderen Klasse ist + ![image_92.png](image_92.png) + ## Erstellung von Klassen ### Appropriate Level of detail Detail der Zeichnung sollte abhängig vom [SDLC](IntroductionOOAD.md#software-development-lifecycle-sdlc) sein. @@ -133,3 +156,31 @@ Detail der Zeichnung sollte abhängig vom [SDLC](IntroductionOOAD.md#software-de - ![image_95.png](image_95.png) ## N-Ary Association +- Relationship zwischen mehr als zwei Klassen + - Wird durch hohle Raute in der Mitte der Klassen dargestellt + - bspw.: ![image_99.png](image_99.png) + +### Implementierung in Code von N-Ary Association + - nicht existent in Standard-Programmiersprachen + +#### Using Two Binary Associations +![image_100.png](image_100.png) + +#### Using additional Class +![image_101.png](image_101.png) + +## Association Class +### Introduction Association Class +Erlaubt [N-Ary Associations](UML.md#n-ary-association) + +### Possible Implementations of Association Classes +![image_102.png](image_102.png) ![image_103.png](image_103.png) + + +## Abstract Class +![image_104.png](image_104.png) + +- nur im Kontext von Generalisierungsbeziehungen sinnvoll + +## Interface +![image_106.png](image_106.png) \ No newline at end of file