Initial commit: IHK Ausbildung materials
This commit is contained in:
@@ -0,0 +1,335 @@
|
||||
# 5.2 Softwaremodellierung
|
||||
|
||||
## Modellierungssprachen
|
||||
|
||||
### Übersicht
|
||||
|
||||
```
|
||||
Modellierung - Sprachen
|
||||
├── UML (Unified Modeling Language)
|
||||
├── Struktogramme (Nassi-Shneiderman)
|
||||
├── Flussdiagramme (Flowcharts)
|
||||
├── Entity-Relationship (ER)
|
||||
└── Aktivitätsdiagramme
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## UML - Unified Modeling Language
|
||||
|
||||
### UML-Diagrammtypen
|
||||
|
||||
```
|
||||
UML 2.5 - Diagrammübersicht
|
||||
├── Strukturdiagramme
|
||||
│ ├── Klassendiagramm
|
||||
│ ├── Objektdiagramm
|
||||
│ ├── Komponentendiagramm
|
||||
│ ├── Verteilungsdiagramm
|
||||
│ └── Paketdiagramm
|
||||
└── Verhaltensdiagramme
|
||||
├── Anwendungsfalldiagramm
|
||||
├── Aktivitätsdiagramm
|
||||
├── Zustandsdiagramm
|
||||
└── Sequenzdiagramm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Klassendiagramm
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Klassendiagramm - Symbole
|
||||
┌─────────────────────────┐
|
||||
│ Klassenname │
|
||||
├─────────────────────────┤
|
||||
│ - attribut: Typ │ ← Eigenschaften
|
||||
├─────────────────────────┤
|
||||
│ + methode(): Rückgabetyp│ ← Methoden
|
||||
└─────────────────────────┘
|
||||
|
||||
Sichtbarkeit:
|
||||
+ public (öffentlich)
|
||||
- private (privat)
|
||||
# protected (geschützt)
|
||||
~ package (Paket)
|
||||
```
|
||||
|
||||
### Beziehungen
|
||||
|
||||
```
|
||||
Beziehungsarten
|
||||
├── Assoziation ───────
|
||||
├── Aggregation ◇─────── (hat ein, kann auch ohne existieren)
|
||||
├── Komposition ◆────── (hat ein, existiert nicht ohne)
|
||||
├── Vererbung △───────
|
||||
└── Implementierung ▷───
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌─────────────┐
|
||||
│ Kunde │ 1 * │ Bestellung │
|
||||
├─────────────┤─────────│─────────────┤
|
||||
│ -name │* │ -datum │
|
||||
│ -adresse │ │ -status │
|
||||
├─────────────┤ ├─────────────┤
|
||||
│ +bestellen()│ │ +erstellen()│
|
||||
└─────────────┘ └─────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anwendungsfalldiagramm (Use Case)
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Anwendungsfall-Diagramm
|
||||
┌─────────────┐
|
||||
│ Akteur │
|
||||
└──────┬──────┘
|
||||
│
|
||||
│ (Verbindung)
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Anwendungsfall │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌────────┐
|
||||
│ Kunde │
|
||||
└────┬───┘
|
||||
│
|
||||
┌────┴────┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────────┐ ┌─────────────────┐
|
||||
│ Suchen │ │ Bestellen │
|
||||
└─────────┘ └─────────────────┘
|
||||
│
|
||||
┌───┴───┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌────────┐ ┌──────────┐
|
||||
│ Bezahlen│ │ Zurückgeben│
|
||||
└────────┘ └──────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Aktivitätsdiagramm
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Aktivitätsdiagramm - Symbole
|
||||
┌─────────┐ ◇──────►
|
||||
│ Start │ (Objekt)
|
||||
└─────────┘
|
||||
|
||||
▭ Entscheidung ▢ Parallel
|
||||
|
||||
┌─────────┐ ╱ ╲
|
||||
│ Aktion │ ╱ Merge ╲
|
||||
└─────────┘ ╲ ╱
|
||||
|
||||
┌─────────┐
|
||||
│ Ende │
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
▭
|
||||
▼
|
||||
┌───────────┐
|
||||
│ Bestellung │
|
||||
│ starten │
|
||||
└─────┬─────┘
|
||||
│
|
||||
▼
|
||||
┌───────────┐
|
||||
│ Ware │
|
||||
│ verfügbar?│
|
||||
└─────┬─────┘
|
||||
│
|
||||
╱ ╲
|
||||
Ja Nein
|
||||
╲ ╱
|
||||
▼ ▼
|
||||
┌────────┐ ┌──────────┐
|
||||
│Liefern │ │Benachrich-│
|
||||
│ │ │tigen │
|
||||
└───┬────┘ └────┬─────┘
|
||||
│ │
|
||||
└─────┬─────┘
|
||||
▼
|
||||
┌────────┐
|
||||
│ Ende │
|
||||
└────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sequenzdiagramm
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Sequenzdiagramm - Elemente
|
||||
┌──────┐ ┌──────┐
|
||||
│ Actor│ │ System│
|
||||
└──┬───┘ └──┬───┘
|
||||
│ │
|
||||
│ Nachricht ──►
|
||||
│ │
|
||||
│ ◄─────── Rückmeldung
|
||||
│ │
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌────────┐ ┌────────┐ ┌────────┐
|
||||
│ Client │ │ Server │ │ Daten- │
|
||||
│ │ │ │ │ bank │
|
||||
└───┬────┘ └───┬────┘ └───┬────┘
|
||||
│ │ │
|
||||
│──Login()───►│ │
|
||||
│ │──Query()───►│
|
||||
│ │◄─────────── │
|
||||
│◄─────────── │ │
|
||||
│ │ │
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Struktogramme (Nassi-Shneiderman)
|
||||
|
||||
### Grundelemente
|
||||
|
||||
```
|
||||
Struktogramme
|
||||
┌──────────────────┐
|
||||
│ Anweisung │ ← einfache Anweisung
|
||||
└──────────────────┘
|
||||
|
||||
┌──────────────────┐
|
||||
│ Verzweigung │
|
||||
│ │
|
||||
│ Wenn Bedingung │
|
||||
│ dann Anweisung │
|
||||
│ sonst Anweisung│
|
||||
└──────────────────┘
|
||||
|
||||
┌──────────────────┐
|
||||
│ Schleife │
|
||||
│ │
|
||||
│ solange Bed. │
|
||||
│ Anweisung │
|
||||
└──────────────────┘
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────┐
|
||||
│ Eingegebene Zahl ist negativ? │
|
||||
├──────────────────────────────────────┤
|
||||
│ JA NEIN │
|
||||
│ │ │ │
|
||||
│ ┌─────┴─────┐ ┌────┴────┐ │
|
||||
│ │ "Zahl ist │ │ "Zahl │ │
|
||||
│ │ negativ" │ │ ist pos.│ │
|
||||
│ └───────────┘ └─────────┘ │
|
||||
└──────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Flussdiagramme (Flowchart)
|
||||
|
||||
### Symbole
|
||||
|
||||
```
|
||||
Flussdiagramm - Symbole
|
||||
┌─────────┐
|
||||
│ Oval │ → Start/Ende
|
||||
└─────────┘
|
||||
|
||||
┌─────────┐
|
||||
│ Rechteck│ → Aktion/Prozess
|
||||
└─────────┘
|
||||
|
||||
┌────┐
|
||||
│Raute│ → Entscheidung
|
||||
└────┘
|
||||
|
||||
→ → Verbindungslinie
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
│ Start │
|
||||
└───┬───┘
|
||||
│
|
||||
▼
|
||||
┌────────┐
|
||||
│ Zahl │
|
||||
│ einlesen│
|
||||
└───┬────┘
|
||||
│
|
||||
▼
|
||||
┌───────────┐
|
||||
│negativ? │
|
||||
└─────┬─────┘
|
||||
╱ ╲
|
||||
Ja Nein
|
||||
╲ ╱
|
||||
▼ ▼
|
||||
┌─────────┐ ┌─────────┐
|
||||
│ negativ │ │ positiv │
|
||||
└────┬────┘ └────┬────┘
|
||||
│ │
|
||||
└─────┬──────┘
|
||||
▼
|
||||
┌───────┐
|
||||
│ Ende │
|
||||
└───────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Werkzeuge
|
||||
|
||||
### Modellierungs-Tools
|
||||
|
||||
| Tool | Typ | Plattform |
|
||||
|------|-----|----------|
|
||||
| PlantUML | Text-basiert | Alle |
|
||||
| Mermaid | Text-basiert | Alle |
|
||||
| draw.io | Visuell | Web |
|
||||
| Lucidchart | Professionell | Web |
|
||||
| Enterprise Architect | Professionell | Windows |
|
||||
| Visual Paradigm | Professionell | Alle |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF5-01-Anforderungsanalyse|Zurück: Anforderungsanalyse]]
|
||||
- [[LF5-03-Programmierung|Nächstes Thema: Programmierung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
Reference in New Issue
Block a user