Klassendiagramm (UML) – Klassen, Attribute, Methoden, Vererbung, Assoziation, Aggregation & Komposition
Dieser Beitrag ist eine Begriffserklärung zum Klassendiagramm – inklusive Prüfungsfragen und Tags.
In a Nutshell
Klassendiagramme zeigen die Struktur eines Softwaresystems durch Klassen, ihre Attribute, Methoden und die Beziehungen untereinander – zentraler Bestandteil der objektorientierten Modellierung mit UML.
Kompakte Fachbeschreibung
Ein Klassendiagramm visualisiert die statische Struktur eines objektorientierten Systems. Es zeigt Klassen mit ihren Attributen und Methoden sowie Beziehungen wie Assoziation, Vererbung, Aggregation und Komposition. Jede Klasse wird als Rechteck mit drei Bereichen dargestellt: Name, Attribute, Methoden. Sichtbarkeiten (+ public, - private, # protected) und Datentypen werden explizit angegeben. UML-Klassendiagramme sind wichtig für die Entwurfsphase, da sie das spätere objektorientierte Design abbilden und frühzeitig potenzielle Probleme aufdecken.
Prüfungsrelevante Stichpunkte
- Bestandteil der UML zur Modellierung der Systemstruktur
- Enthält Klassen mit Attributen und Methoden
- Stellt Beziehungen wie Vererbung, Assoziation, Aggregation, Komposition dar
- Erlaubt Sichtbarkeiten und Datentypen (IHK-relevant)
- Unterstützt objektorientiertes Denken
- Fördert frühzeitige Fehlererkennung durch statische Struktur
- Erleichtert Aufwandsschätzung durch Komplexitätsanalyse
- Muss dokumentiert und versioniert abgelegt werden
Kernkomponenten
- Klassenname
- Attribute mit Datentyp und Sichtbarkeit
- Methoden mit Rückgabetyp und Parametern
- Vererbung
- Assoziation
- Komposition
- Aggregation
- Schnittstelle (Interface)
- Abhängigkeit (Dependency)
- Multiplizität an Beziehungen
Praxisbeispiel
// Beispiel: Kunden und Bestellungen
class Kunde {
-name: String
-email: String
+bestellen(): void
}
class Bestellung {
-datum: Date
+berechnenGesamtpreis(): float
}
Kunde --> Bestellung
Erklärung: Ein Kunde kann Bestellungen aufgeben. Die Pfeilrichtung zeigt eine Assoziation von Kunde zu Bestellung.
Vorteile und Nachteile
Vorteile
- Hohe Verständlichkeit durch Standardnotation
- Frühzeitige Visualisierung der Softwarestruktur
- Unterstützung objektorientierter Prinzipien
- Hilfreich bei Teamkommunikation
Nachteile
- Keine Darstellung des Zeitverhaltens
- Nicht geeignet für dynamische Abläufe
- Gefahr der Überkomplexität bei großen Systemen
Typische Prüfungsfragen (mit Kurzantwort)
- Klassendiagramm stellt dar? Struktur eines objektorientierten Systems mit Klassen, Attributen, Methoden und Beziehungen.
- Sichtbarkeiten in UML-Klassen?
- public, - private, # protected
- Komposition vs. Aggregation? Komposition bedeutet strenge Lebensdauerabhängigkeit, Aggregation ist lockerere Teil-Ganzes-Beziehung.
- Schnittstellen dargestellt? Interface mit Stereotyp «interface» und gestrichelte Linien zu implementierenden Klassen.
- Beziehungsarten zeigt? Vererbung, Assoziation, Aggregation, Komposition, Abhängigkeit
- Vorteile bei der Entwicklung? Strukturiertes Design und verbesserte Wartbarkeit.
- Test unterstützen? Klare Abgrenzung von Verantwortlichkeiten ermöglicht gezieltere Tests.
- Interface im Klassendiagramm? Sammlung abstrakter Methoden, die von Klassen implementiert werden müssen.