updatet
This commit is contained in:
parent
465f6f5668
commit
1846711991
@ -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>
|
@ -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
|
||||

|
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