Initial commit: IHK Ausbildung materials

This commit is contained in:
2026-03-13 11:46:08 +01:00
commit eb4a13ef7c
67 changed files with 11361 additions and 0 deletions

View File

@@ -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*