Jewiki unterstützen. Jewiki, die größte Online-Enzy­klo­pädie zum Judentum.

Helfen Sie Jewiki mit einer kleinen oder auch größeren Spende. Einmalig oder regelmäßig, damit die Zukunft von Jewiki gesichert bleibt ...

Vielen Dank für Ihr Engagement! (→ Spendenkonten)

How to read Jewiki in your desired language · Comment lire Jewiki dans votre langue préférée · Cómo leer Jewiki en su idioma preferido · בשפה הרצויה Jewiki כיצד לקרוא · Как читать Jewiki на предпочитаемом вами языке · كيف تقرأ Jewiki باللغة التي تريدها · Como ler o Jewiki na sua língua preferida

Klasse (UML)

Aus Jewiki
Zur Navigation springen Zur Suche springen

Eine Klasse (englisch class) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme. Sie beschreibt eine Menge von Ausprägungen mit gleichen Merkmalen, gleichen Einschränkungen und gleicher Semantik.

Beschreibung

Eine Klasse ist ein Typ. Sie besitzt eine Liste von Merkmalen, vor allem Attribute und Operationen, aber auch Ports und Signalempfänger. Zusätzlich kann sie über eine Liste von inneren Klassen verfügen. Innere Klassen sind Klassen, die im Namensraum der Klasse selbst definiert sind.

Eine Klasse kann eine oder mehrere andere Klassen spezialisieren sowie über Assoziationen und Abhängigkeitsbeziehungen in Beziehung zu Klassen und anderen Modellelementen stehen.

Arten von Klassen

Aktive Klassen

Die UML unterscheidet zwischen aktiven und passiven Klassen. Alle Instanzen von aktiven Klassen sind aktive Objekte, das heißt, Objekte, die ein „Eigenleben führen“. Unmittelbar wenn eine Instanz einer aktiven Klasse angelegt wird, startet ein für die Klasse spezifiziertes Verhalten. Dieses Verhalten läuft weiter, bis es explizit gestoppt oder bis das Objekt zerstört wird. Nur aktive Klassen können Signalempfänger besitzen.

Beispiel einer aktiven Klasse mit zwei Signalempfängern

Eine aktive Klasse wird mit einem doppelten linken und rechten Rand gezeichnet.

Abstrakte Klassen

Abstrakte Klassen sind Klassen, von denen keine Exemplare angelegt werden können. Abstrakte Klassen sehen in UML wie normale Klassen aus. Um sie zu unterscheiden, steht unterhalb des Klassennamens das Wort abstract in geschweiften Klammern. Alternativ kann der Klassenname auch kursiv geschrieben werden, wenn dies gut erkennbar ist.

Datei:Class-3.png
Detaillierte Darstellung einer abstrakten Klasse

Verschachtelte Klassen

In der UML ist jede Klasse zugleich ein Namensraum. Damit ist einerseits gewährleistet, dass Attribute und Operationen, die einer Klasse gehören, nur im Bereich dieser Klasse einen eindeutigen Namen haben müssen. Zwei Attribute, die unterschiedlichen Klassen gehören, können durchaus gleich heißen. Andererseits erlaubt das Metamodell der UML dadurch auch, dass eine Klasse sogenannte verschachtelte Klassen (engl. nested classes) besitzen darf. Die UML-Spezifikation enthält jedoch keine Angaben, wie verschachtelte Klassen grafisch in einem Klassendiagramm dargestellt werden.

In der Softwareentwicklung, zum Beispiel in der Programmiersprache Java, kennt man das Konzept der inneren Klassen. Verschachtelte Klassen im Sinne der UML entsprechen statischen inneren Klassen in Java.

Notation

Klassen werden in Klassendiagrammen dargestellt. Die folgenden drei Abbildungen zeigen drei Varianten der grafischen Notation für eine Klasse. Abhängig davon, ob eine Klasse in einem Klassendiagramm für ein Design- oder ein Analysemodell gezeichnet wird, können mehr oder weniger Details dargestellt werden.

Datei:Class-1.png
Einfachste Form der Darstellung für eine Klasse
Datei:Class-2.png
Zusätzliche Darstellung von Attributen
Datei:Class-3.png
Detaillierte Darstellung einer Klasse

Unterschiede zur UML 1.4

Ab der Version 2.0 der UML können Klassen innere Klassen besitzen.

Im Gegensatz zur UML 1.x gibt es in der UML2 kein Modellelement Attribut mehr. Attribute einer Klasse werden neu als Eigenschaften (engl. property) modelliert. Dieser Ansatz wurde eingeführt, damit das Metamodell der UML2 sowohl Attribute einer Klasse als auch Enden von Assoziationen einheitlich als Eigenschaften modellieren kann.

Neben Eigenschaften und Operationen kann eine Klasse in UML2 neu auch über Ports und Signalempfänger als Merkmal verfügen.

Dieser Artikel basiert ursprünglich auf dem Artikel Klasse (UML) aus der freien Enzyklopädie Wikipedia und steht unter der Doppellizenz GNU-Lizenz für freie Dokumentation und Creative Commons CC-BY-SA 3.0 Unported. In der Wikipedia ist eine Liste der ursprünglichen Wikipedia-Autoren verfügbar.