8.8 KiB
8.8 KiB
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
Stand: 2024