UML Klassendiagramm: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
(43 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= UML-Klassendiagramm =
Ein '''UML-Klassendiagramm''' zeigt den Aufbau von Klassen sowie deren Beziehungen zueinander. 
Es ist eines der wichtigsten Diagramme der Unified Modeling Language ([[UML]]) und wird in der Softwareentwicklung eingesetzt, um Strukturen verständlich darzustellen.


Ein '''UML-Klassendiagramm''' zeigt den Aufbau von Klassen sowie deren Beziehungen zueinander. 
Klassendiagramme gehören zu den '''[[UML#Strukturdiagramme|Strukturdiagrammen]]''' der [[UML]].
Es ist eines der wichtigsten Diagramme der Unified Modeling Language (UML) und wird in der Softwareentwicklung eingesetzt, um Strukturen verständlich darzustellen.


== Aufbau einer Klasse ==
== Aufbau einer Klasse ==
Zeile 11: Zeile 11:
# '''Methoden''' (Funktionen)
# '''Methoden''' (Funktionen)


Beispiel (textuell dargestellt):
Beispiel:
 
[[Datei:Aufbau Klasse.png|rahmenlos|upright=2|links|alternativtext=Aufbau_Klasse|Aufbau Klasse]]
Bild folgt
<br clear="all" />


=== Sichtbarkeiten ===
=== Sichtbarkeiten ===
* '''-''' | private
{| class="wikitable" style="width:100%; text-align:center;"
* '''#''' | protected
! Symbol !! Sichtbarkeit !! Erklärung
* '''~''' | package
|-
* '''+' '' | public
| '''-''' || private || Nur innerhalb der eigenen Klasse sichtbar
|-
| '''#''' || protected || Sichtbar in der eigenen Klasse, im selben Paket und für Unterklassen
|-
| '''~''' || package || Sichtbar für alle Klassen im selben Paket (Standard-Sichtbarkeit)
|-
| '''+''' || public || Von überall sichtbar
|}


== Beziehungen im Klassendiagramm ==
== Beziehungen im Klassendiagramm ==


=== 1. Vererbung (Generalisierung) ===
=== Vererbung (Generalisierung) ===
Die Unterklasse erbt von der Basisklasse.   
Die Unterklassen erben alle Eigenschaften und Methoden von der Basisklasse.   
Darstellung: Linie mit '''hohlem Dreieck''' zur Basisklasse.
Darstellung: Linie mit '''hohlem Dreieck''' zur Basisklasse.


Beispiel:
Beispiel:
Bild folgt
[[Datei:Vererbung user admin.png|rahmenlos|links|upright=3|alternativtext=Vererbung_user_admin|Vererbung_user_admin]]
<br clear="all" />
 
=== Implements (Interface-Implementierung): ===
Eine Klasse implementiert ein Interface und verpflichtet sich damit, alle im Interface definierten Methoden bereitzustellen.
Das Interface beschreibt nur den Vertrag, nicht die konkrete Umsetzung.
Darstellung: Linie mit '''hohlem Dreieck''' zur Basisklasse und gestrichelter Linie.
 
Beispiel:
[[Datei:Interface auth user.png|rahmenlos|links|upright=3|alternativtext=Interface auth user|Interface auth user]]
<br clear="all" />


=== 2. Assoziation ===
=== Assoziation ===
Allgemeine Beziehung zwischen zwei Klassen.   
Allgemeine Beziehung zwischen zwei Klassen.   
Beispiel: Ein Auto hat einen Motor.


=== 3. Aggregation (schwache Ganzes-Teil-Beziehung) ===
Beispiel: Ein User kann mehrere Posts schreiben.
Die Aggregation beschreibt eine '''schwache Ganzes-Teil-Beziehung'''.
 
Das Teil kann unabhängig vom Ganzen existieren.   
[[Datei:Assoziation user post.png|rahmenlos|links|upright=3|alternativtext=Assoziation User Post|Assoziation User Post]]
Beispiel: Eine Klasse besteht aus Schülern – die Schüler existieren auch ohne die Klasse.
<br clear="all" />
 
=== Aggregation (schwache Ganzes-Teil-Beziehung) ===
Die Aggregation beschreibt eine '''schwache Ganzes-Teil-Beziehung'''. Das Teil kann unabhängig vom Ganzen existieren.   


Symbol: '''hohle Raute''' auf der Seite des Ganzen.
Symbol: '''hohle Raute''' auf der Seite des Ganzen.


=== 4. Komposition (starke Ganzes-Teil-Beziehung) ===
Beispiel: Eine Gruppe besteht aus Usern. Die User existieren auch ohne die Gruppe.
Die Komposition ist eine '''starke Ganzes-Teil-Beziehung'''.   
 
Das Teil kann ohne das Ganze nicht weiter existieren.   
[[Datei:Aggregation group user.png|rahmenlos|links|upright=3|alternativtext=Aggregation Group User|Aggregation Group User]]
Beispiel: Ein Haus besteht aus Räumen – ohne das Haus existieren die Räume nicht.
<br clear="all" />
 
=== Komposition (starke Ganzes-Teil-Beziehung) ===
Die Komposition ist eine '''starke Ganzes-Teil-Beziehung'''.  Das Teil kann ohne das Ganze nicht weiter existieren.   


Symbol: '''gefüllte Raute''' auf der Seite des Ganzen.
Symbol: '''gefüllte Raute''' auf der Seite des Ganzen.


=== 5. Abhängigkeit (Dependency) ===
Beispiel: Ein Post enthält Kommentare. Ohne den Post existieren die Kommentare nicht.
Eine Klasse nutzt eine andere kurzfristig, z. B. als Parameter. 
 
Darstellung: gestrichelter Pfeil.
[[Datei:Komposition post comment.png|rahmenlos|links|upright=3|alternativtext=Komposition post comment|Komposition post comment]]
<br clear="all" />


== Beispielklassendiagramm ==
== Beispielklassendiagramm ==
Ein einfaches Beispiel:
Ein einfaches Beispiel:


Bild folgt
[[Datei:Klassendiagramm gesamt user.png|rahmenlos|links|upright=3|alternativtext=Klassendiagramm gesamt user|Klassendiagramm gesamt user]]
<br clear="all" />


== Anwendung ==
== Anwendung ==
Zeile 66: Zeile 90:


== Kurzmerksatz ==
== Kurzmerksatz ==
'''Ein UML-Klassendiagramm zeigt Klassen, ihre Attribute, Methoden und Beziehungen inklusive Vererbung, Assoziation und Ganzes-Teil-Beziehungen wie Aggregation und Komposition.'''
'''Ein UML-Klassendiagramm zeigt Klassen, ihre Attribute, Methoden und Beziehungen, inklusive Vererbung, Assoziation und Ganzes-Teil-Beziehungen wie Aggregation und Komposition.'''

Aktuelle Version vom 27. Januar 2026, 13:15 Uhr

Ein UML-Klassendiagramm zeigt den Aufbau von Klassen sowie deren Beziehungen zueinander. Es ist eines der wichtigsten Diagramme der Unified Modeling Language (UML) und wird in der Softwareentwicklung eingesetzt, um Strukturen verständlich darzustellen.

Klassendiagramme gehören zu den Strukturdiagrammen der UML.

Aufbau einer Klasse

Eine Klasse wird in einem Rechteck dargestellt, das in drei Bereiche aufgeteilt ist:

  1. Klassenname
  2. Attribute (Eigenschaften)
  3. Methoden (Funktionen)

Beispiel:

Aufbau_Klasse
Aufbau Klasse


Sichtbarkeiten

Symbol Sichtbarkeit Erklärung
- private Nur innerhalb der eigenen Klasse sichtbar
# protected Sichtbar in der eigenen Klasse, im selben Paket und für Unterklassen
~ package Sichtbar für alle Klassen im selben Paket (Standard-Sichtbarkeit)
+ public Von überall sichtbar

Beziehungen im Klassendiagramm

Vererbung (Generalisierung)

Die Unterklassen erben alle Eigenschaften und Methoden von der Basisklasse. Darstellung: Linie mit hohlem Dreieck zur Basisklasse.

Beispiel:

Vererbung_user_admin
Vererbung_user_admin


Implements (Interface-Implementierung):

Eine Klasse implementiert ein Interface und verpflichtet sich damit, alle im Interface definierten Methoden bereitzustellen. Das Interface beschreibt nur den Vertrag, nicht die konkrete Umsetzung. Darstellung: Linie mit hohlem Dreieck zur Basisklasse und gestrichelter Linie.

Beispiel:

Interface auth user
Interface auth user


Assoziation

Allgemeine Beziehung zwischen zwei Klassen.

Beispiel: Ein User kann mehrere Posts schreiben.

Assoziation User Post
Assoziation User Post


Aggregation (schwache Ganzes-Teil-Beziehung)

Die Aggregation beschreibt eine schwache Ganzes-Teil-Beziehung. Das Teil kann unabhängig vom Ganzen existieren.

Symbol: hohle Raute auf der Seite des Ganzen.

Beispiel: Eine Gruppe besteht aus Usern. Die User existieren auch ohne die Gruppe.

Aggregation Group User
Aggregation Group User


Komposition (starke Ganzes-Teil-Beziehung)

Die Komposition ist eine starke Ganzes-Teil-Beziehung. Das Teil kann ohne das Ganze nicht weiter existieren.

Symbol: gefüllte Raute auf der Seite des Ganzen.

Beispiel: Ein Post enthält Kommentare. Ohne den Post existieren die Kommentare nicht.

Komposition post comment
Komposition post comment


Beispielklassendiagramm

Ein einfaches Beispiel:

Klassendiagramm gesamt user
Klassendiagramm gesamt user


Anwendung

Klassendiagramme werden verwendet für:

  • Planung von Softwarearchitektur
  • Analyse von Anforderungen
  • Dokumentation bestehender Systeme
  • Kommunikation im Team

Kurzmerksatz

Ein UML-Klassendiagramm zeigt Klassen, ihre Attribute, Methoden und Beziehungen, inklusive Vererbung, Assoziation und Ganzes-Teil-Beziehungen wie Aggregation und Komposition.