updatet
This commit is contained in:
parent
465f6f5668
commit
1846711991
@ -18,7 +18,10 @@
|
|||||||
<toc-element topic="SoftwareProcesses.md"/>
|
<toc-element topic="SoftwareProcesses.md"/>
|
||||||
<toc-element topic="ImplementingForMaintainability.md"/>
|
<toc-element topic="ImplementingForMaintainability.md"/>
|
||||||
<toc-element topic="DesigningForMaintainability.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-element>
|
||||||
<toc-element toc-title="Rechnerarchitektur">
|
<toc-element toc-title="Rechnerarchitektur">
|
||||||
@ -29,4 +32,5 @@
|
|||||||
</toc-element>
|
</toc-element>
|
||||||
</toc-element>
|
</toc-element>
|
||||||
</toc-element>
|
</toc-element>
|
||||||
|
|
||||||
</instance-profile>
|
</instance-profile>
|
@ -3,9 +3,9 @@
|
|||||||
### Structure Diagrams
|
### Structure Diagrams
|
||||||
- dynamisches Verhalten der Elemente (bspw. Veränderung über Zeit) wird nicht beachtet
|
- dynamisches Verhalten der Elemente (bspw. Veränderung über Zeit) wird nicht beachtet
|
||||||
|
|
||||||
- **[Class Diagram](UML.md#klassen-diagramme)**
|
- **[Class Diagram](UMLKlassenDiagramme.md)**
|
||||||
- Package Diagram
|
- Package Diagram
|
||||||
- **[Object Diagram](UML.md#objekt-diagramme)**
|
- **[Object Diagram](UMLKlassenDiagramme.md#objekt-diagramme)**
|
||||||
- Component Diagram
|
- Component Diagram
|
||||||
- Profile Diagram
|
- Profile Diagram
|
||||||
- Composition Structure Diagram
|
- Composition Structure Diagram
|
||||||
@ -19,168 +19,10 @@
|
|||||||
- **Use Case Diagram**
|
- **Use Case Diagram**
|
||||||
- Activity Diagram
|
- Activity Diagram
|
||||||
- Interaction Diagram
|
- Interaction Diagram
|
||||||
- **Sequence Diagram**
|
- **[Sequence Diagram](UMLSequenzDiagramme.md)**
|
||||||
- Interaction Overview Diagram
|
- Interaction Overview Diagram
|
||||||
- Communication Diagram
|
- Communication Diagram
|
||||||
- Timing 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
|
|
||||||

|
|
158
Writerside/topics/OOAD/UMLKlassenDiagramme.md
Normal file
158
Writerside/topics/OOAD/UMLKlassenDiagramme.md
Normal file
@ -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
|
||||||
|

|
1
Writerside/topics/OOAD/UMLSequenzDiagramme.md
Normal file
1
Writerside/topics/OOAD/UMLSequenzDiagramme.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Sequenz Diagramme
|
Loading…
x
Reference in New Issue
Block a user