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  -#### 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. - - - - -### Erstellung eines Klassen-Diagramms -1. Identifizierung der Klassen - -  -2. Identifizierung der Attribute - -  -3. Identifizierung von Generalisierungen - -  -4. Identifizierung von Assoziationen und Aggregationen - -  - -_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 --  - -## 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 - - - -- 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 - - - -- Nur maximal eine Instanz -- Objekt kann nicht allein existieren - -### Generalization (Inheritance) -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 -- Relationship zwischen mehr als zwei Klassen - - Wird durch hohle Raute in der Mitte der Klassen dargestellt - - bspw.:  - -### Implementierung in Code von N-Ary Association - - nicht existent in Standard-Programmiersprachen - -#### Using Two Binary Associations - - -#### Using additional Class - - -## Association Class -### Introduction Association Class -Erlaubt [N-Ary Associations](UML.md#n-ary-association) - -### Possible Implementations of Association Classes -  - - -## Abstract Class - - -- nur im Kontext von Generalisierungsbeziehungen sinnvoll - -## Interface - \ 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  +#### 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. + + + + +### Erstellung eines Klassen-Diagramms +1. Identifizierung der Klassen + -  +2. Identifizierung der Attribute + -  +3. Identifizierung von Generalisierungen + -  +4. Identifizierung von Assoziationen und Aggregationen + -  + +_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 +-  + +## 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 + + + +- 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 + + + +- Nur maximal eine Instanz +- Objekt kann nicht allein existieren + +### Generalization (Inheritance) +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 +- Relationship zwischen mehr als zwei Klassen + - Wird durch hohle Raute in der Mitte der Klassen dargestellt + - bspw.:  + +### Implementierung in Code von N-Ary Association +- nicht existent in Standard-Programmiersprachen + +#### Using Two Binary Associations + + +#### Using additional Class + + +## Association Class +### Introduction Association Class +Erlaubt [N-Ary Associations](UMLKlassenDiagramme.md#n-ary-association) + +### Possible Implementations of Association Classes +  + + +## Abstract Class + + +- nur im Kontext von Generalisierungsbeziehungen sinnvoll + +## Interface + \ 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