From 1846711991dae36ae16fa95ba8d74dbfb76c3126 Mon Sep 17 00:00:00 2001
From: David Schirrmeister <david.schirrmeister@stud.h-da.de>
Date: Tue, 7 May 2024 09:21:11 +0200
Subject: [PATCH]     updatet

---
 Writerside/in.tree                            |   6 +-
 Writerside/topics/OOAD/UML.md                 | 164 +-----------------
 Writerside/topics/OOAD/UMLKlassenDiagramme.md | 158 +++++++++++++++++
 Writerside/topics/OOAD/UMLSequenzDiagramme.md |   1 +
 4 files changed, 167 insertions(+), 162 deletions(-)
 create mode 100644 Writerside/topics/OOAD/UMLKlassenDiagramme.md
 create mode 100644 Writerside/topics/OOAD/UMLSequenzDiagramme.md

diff --git a/Writerside/in.tree b/Writerside/in.tree
index a796127..f6e1ef0 100644
--- a/Writerside/in.tree
+++ b/Writerside/in.tree
@@ -18,7 +18,10 @@
             <toc-element topic="SoftwareProcesses.md"/>
             <toc-element topic="ImplementingForMaintainability.md"/>
             <toc-element topic="DesigningForMaintainability.md">
-                <toc-element topic="UML.md"/>
+                <toc-element topic="UML.md">
+                    <toc-element topic="UMLKlassenDiagramme.md"/>
+                    <toc-element topic="UMLSequenzDiagramme.md"/>
+                </toc-element>
             </toc-element>
         </toc-element>
         <toc-element toc-title="Rechnerarchitektur">
@@ -29,4 +32,5 @@
             </toc-element>
         </toc-element>
     </toc-element>
+
 </instance-profile>
\ No newline at end of file
diff --git a/Writerside/topics/OOAD/UML.md b/Writerside/topics/OOAD/UML.md
index 94f453d..165d5b5 100644
--- a/Writerside/topics/OOAD/UML.md
+++ b/Writerside/topics/OOAD/UML.md
@@ -3,9 +3,9 @@
 ### Structure Diagrams
 - dynamisches Verhalten der Elemente (bspw. Veränderung über Zeit) wird nicht beachtet
 
-- **[Class Diagram](UML.md#klassen-diagramme)**
+- **[Class Diagram](UMLKlassenDiagramme.md)**
 - Package Diagram
-- **[Object Diagram](UML.md#objekt-diagramme)**
+- **[Object Diagram](UMLKlassenDiagramme.md#objekt-diagramme)**
 - Component Diagram
 - Profile Diagram
 - Composition Structure Diagram
@@ -19,168 +19,10 @@
 - **Use Case Diagram**
 - Activity Diagram
 - Interaction Diagram
-    - **Sequence Diagram**
+    - **[Sequence Diagram](UMLSequenzDiagramme.md)**
     - 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 ![image_96.png](image_96.png)
-#### 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.
-
-![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)
-- Helen ist im Kurs oom und iprog
-- Der Kurs db ist in der LectureHall lh2
-- ![image_88.png](image_88.png)
-
-## 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
-
-![image_89.png](image_89.png)
-- schwächstes Relationship
-  - Kommunikationspartner können auf Attribute und Methoden des Anderen zugreifen
-- Bsp.:
-  - ![image_98.png](image_98.png)
-
-#### 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
-
-![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)
-
-- 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.
-1. keine Details (erste Analyse für die ersten Diskussionen des Domänen-Konzepts)
-   - ![image_93.png](image_93.png)
-2. mehr Details (während späterer Analysen)
-   - ![image_94.png](image_94.png)
-3. sehr detaillierte Beschreibung (detaillierte Analyse oder während Implementierung)
-   - ![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
diff --git a/Writerside/topics/OOAD/UMLKlassenDiagramme.md b/Writerside/topics/OOAD/UMLKlassenDiagramme.md
new file mode 100644
index 0000000..4f03dd4
--- /dev/null
+++ b/Writerside/topics/OOAD/UMLKlassenDiagramme.md
@@ -0,0 +1,158 @@
+# 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](UMLKlassenDiagramme.md#sichtbarkeit-von-attributen-methoden)
+    - Name
+    - Typ (primitiv / komplex)
+- Durch [Assoziation](UMLKlassenDiagramme.md#association)
+    - bspw.: entries ![image_96.png](image_96.png)
+#### 3. Bereich: Methoden der Klasse
+- Haben 4 Elemente:
+    - [Sichtbarkeit](UMLKlassenDiagramme.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.
+
+![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)
+- Helen ist im Kurs oom und iprog
+- Der Kurs db ist in der LectureHall lh2
+- ![image_88.png](image_88.png)
+
+## 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
+
+![image_89.png](image_89.png)
+- schwächstes Relationship
+    - Kommunikationspartner können auf Attribute und Methoden des Anderen zugreifen
+- Bsp.:
+    - ![image_98.png](image_98.png)
+
+#### 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
+
+![image_90.png](image_90.png)
+
+- Objekte existieren auch unabhängig
+- Es können auch [mehrere Objekte](UMLKlassenDiagramme.md#relationship-overview) in einer Aggregation verbunden werden
+
+### Composition
+Wenn eine Klasse Objekte einer anderen Klasse enthält
+
+![image_91.png](image_91.png)
+
+- 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.
+1. keine Details (erste Analyse für die ersten Diskussionen des Domänen-Konzepts)
+    - ![image_93.png](image_93.png)
+2. mehr Details (während späterer Analysen)
+    - ![image_94.png](image_94.png)
+3. sehr detaillierte Beschreibung (detaillierte Analyse oder während Implementierung)
+    - ![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](UMLKlassenDiagramme.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
diff --git a/Writerside/topics/OOAD/UMLSequenzDiagramme.md b/Writerside/topics/OOAD/UMLSequenzDiagramme.md
new file mode 100644
index 0000000..85c5fd4
--- /dev/null
+++ b/Writerside/topics/OOAD/UMLSequenzDiagramme.md
@@ -0,0 +1 @@
+# Sequenz Diagramme