www.wikidata.de-de.nina.az
Strukturdiagramme der UMLKlassendiagrammKomponentendiagrammKompositionsstrukturdiagrammObjektdiagrammPaketdiagrammProfildiagrammVerteilungsdiagrammVerhaltensdiagramme der UMLAktivitatsdiagrammAnwendungsfalldiagrammInteraktionsubersichtsdiagrammKommunikationsdiagrammSequenzdiagrammZeitverlaufsdiagrammZustandsdiagrammEin Klassendiagramm ist ein Strukturdiagramm der Unified Modeling Language UML zur grafischen Darstellung Modellierung von Klassen Schnittstellen sowie deren Beziehungen Eine Klasse ist in der Objektorientierung ein abstrakter Oberbegriff fur die Beschreibung der gemeinsamen Struktur und des gemeinsamen Verhaltens von Objekten Klassifizierung Sie dient dazu Objekte zu abstrahieren Im Zusammenspiel mit anderen Klassen ermoglichen sie die Modellierung eines abgegrenzten Systems in der objektorientierten Analyse und Entwurf Seit den 1990er Jahren werden Klassendiagramme meistens in der Notation der UML dargestellt Das Klassendiagramm ist eine der 14 Diagrammarten der UML einer Modellierungssprache fur Software und andere Systeme Inhaltsverzeichnis 1 Notation in der Unified Modeling Language 1 1 Klassen 1 2 Schnittstellen 2 Wichtige Beziehungen 2 1 Generalisierung 2 2 Assoziation 2 3 Komposition und Aggregation 3 Formale Semantik 3 1 Klassen und Attribute 3 2 Assoziationen 3 3 Operationen 4 Beispieldiagramm 5 Literatur 6 Weblinks 7 EinzelnachweiseNotation in der Unified Modeling Language BearbeitenKlassen Bearbeiten Klassen werden durch Rechtecke dargestellt die entweder nur den Namen der Klasse fett gedruckt tragen oder zusatzlich auch Attribute Operationen und Eigenschaften spezifiziert haben Dabei werden diese drei Rubriken engl compartment Klassenname Attribute Operationen Eigenschaften jeweils durch eine horizontale Linie getrennt Wenn die Klasse keine Eigenschaften oder Operationen besitzt kann die unterste horizontale Linie entfallen Oberhalb des Klassennamens konnen Schlusselworter engl keyword in Guillemets und unterhalb des Klassennamens in geschweiften Klammern zusatzliche Eigenschaften wie abstrakt stehen Die Attribute werden wie folgt spezifiziert Sichtbarkeit name Typ Multiplizitat Vorgabewert eigenschaftswert Daraus folgt dass in der UML ausschliesslich der Name eines Attributs angegeben werden muss und zwar eindeutig innerhalb einer Klasse Klassenattribute werden unterstrichen Daruber hinaus sind bei Attributnamen samtliche Zeichen erlaubt auch wenn in einigen Programmiersprachen beispielsweise Umlaute verboten sind Operationen werden in ahnlicher Art und Weise spezifiziert Sichtbarkeit name Parameter Ruckgabetyp eigenschaftswert Zudem wird ein Parameter wie folgt aufgebaut Ubergaberichtung name Typ Multiplizitat Vorgabewert eigenschaftswert Die Namensgebung und der Zeichenraum sind hier genauso wie bei den Attributsspezifikationen Klassenoperationen werden auch hier unterstrichen Den Pseudotyp void gibt es in der UML nicht daher muss in einem solchen Fall der Ruckgabetyp weggelassen werden Ansonsten konnen bei Attributen und Operationen samtliche primitiven Typen sowie selbst definierte Klassen oder Interfaces als Typ bzw Ruckgabetyp verwendet werden Die Sichtbarkeit von Operationen und Attributen wird wie folgt gekennzeichnet fur public engl offentlich unbeschrankter Zugriff fur protected engl geschutzt Zugriff nur von der Klasse sowie von Unterklassen Klassen die erben fur private engl privat nur die Klasse selbst kann es sehen fur package engl Paket innerhalb des Pakets sichtbar nur in wenigen Programmiersprachen etwa Java und C implementierbar Mogliche Eigenschaften sind ordered die Daten werden geordnet zuruckgegeben redefines lt Operationsname gt nur bei Operationen diese Operation uberschreibt die geerbte Operation lt Operationsname gt read only auf diese Variable kann nur lesend zugegriffen werdenDie Ubergaberichtungen in Der ubergebene Parameter wird nur gelesen Standard wenn nichts angegeben wurde out Der ubergebene Parameter wird beschrieben ohne ihn vorher zu lesen inout Der ubergebene Parameter wird gelesen bzw verarbeitet und beschrieben beispielsweise um das Ergebnis zuruckzugeben Die folgenden Abbildungen zeigen zwei Varianten der grafischen Notation fur eine Klasse Abhangig davon ob eine Klasse in einem Klassendiagramm fur ein Design oder fur ein Analysemodell gezeichnet wird konnen mehr oder weniger Details dargestellt werden Einfachste Form der Darstellung fur eine Klasse Zusatzliche Darstellung von Attributen und Operationen Detaillierte Darstellung einer KlasseAbstrakte Klassen sind Klassen von denen keine Instanz angelegt werden kann 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 Beispiel einer aktiven Klasse mit zwei SignalempfangernEine aktive Klasse wird mit einem doppelten linken und rechten Rand gezeichnet KlassenschabloneEinige Programmiersprachen ermoglichen eine Parametrisierung von Klassenschablonen Class Templates um Objekte basierend auf diesen Vorlagenparametern zu erzeugen Die UML bietet dafur die Notation fur Template Arguments an Dabei werden die Vorlagenparameter in einem gestrichelten Rechteck uberlappend an die rechte obere Ecke der Klasse eingetragen Im Beispiel ist eine Klasse Vector mit dem Vorlagenparametertyp int und dem Parameternamen T VALUE eingetragen Schnittstellen Bearbeiten Eine Schnittstelle wird ahnlich wie eine Klasse mit einem Rechteck dargestellt zur Unterscheidung aber mit dem Schlusselwort interface gekennzeichnet Schnittstellen konnen seit der UML 2 auch Attribute besitzen 1 Eine Schnittstelle wird mit dem Schlusselwort lt lt interface gt gt markiert Angebotene Schnittstelle dargestellt mit einer SchnittstellenrealisierungsbeziehungWichtige Beziehungen BearbeitenGeneralisierung Bearbeiten GeneralisierungEine Generalisierung in der UML ist eine gerichtete Beziehung zwischen einer generelleren und einer spezielleren Klasse Exemplare der spezielleren Klasse sind damit auch Exemplare der generelleren Klasse Konkret bedeutet dies dass die speziellere Klasse implizit uber alle Merkmale Struktur und Verhaltensmerkmale der generelleren Klasse verfugt implizit deshalb weil diese Merkmale in der spezielleren Klasse nicht explizit deklariert werden Man sagt dass die speziellere Klasse sie von der generelleren Klasse erbt oder ableitet 2 Eine Generalisierung wird als durchgezogene Linie zwischen den beiden beteiligten Classifiern dargestellt Am Ende mit dem generelleren Classifier wird eine geschlossene nicht ausgefullte Pfeilspitze gezeichnet In gangigen objektorientierten Programmiersprachen entspricht dies dem Konzept der Vererbung wobei der Pfeil auf die Oberklasse zeigt Generalisierung in einem Beispiel angewandtAssoziation Bearbeiten Eine Assoziation beschreibt eine Beziehung zwischen zwei oder mehr Klassen An den Enden von Assoziationen sind haufig Multiplizitaten vermerkt Diese drucken aus wie viele dieser Objekte in Relation zu den anderen Objekten dieser Assoziation stehen Beispiel fur eine binare Assoziation Beispiel fur eine reflexive Assoziation Komposition und Aggregation Bearbeiten Dieser Abschnitt bedarf einer grundsatzlichen Uberarbeitung Naheres sollte auf der Diskussionsseite zu diesem Artikel angegeben sein Bitte hilf mit ihn zu verbessern und entferne anschliessend diese Markierung Beispiele fur Komposition und AggregationEine Beziehung zwischen Klassen die relativ haufig benotigt wird ist die Beziehung zwischen einem Ganzen und seinen Teilen Die UML sieht dafur zwei spezielle Assoziationen vor die Aggregation und die speziellere Komposition Durch Wahl der Aggregation oder der Komposition wird die Beziehung der Teile zu ihrem Ganzen beschrieben In der grafischen Darstellung einer Komposition dekoriert eine ausgefullte Raute das Ende mit der Multiplizitat 1 oder 1 1 das mit dem Ganzen verbunden ist Im Fall der Aggregation ist es eine nicht ausgefullte Raute mit einer Kardinalitat von 0 Die Komposition ist ein Spezialfall der Aggregation und bildet den Fall ab bei dem die Teile nicht ohne das Ganze existieren konnen Man spricht auch davon dass die Teile vom Ganzen existenziell abhangig sind Existenzabhangigkeit Im Gegensatz dazu konnen Teile in einer Aggregation sehr wohl existieren wenn auch das Ganze noch nicht existiert Die Teile sind hier nicht existenziell vom Ganzen abhangig Wird eine solche Beziehung modelliert bedeutet dies immer dass das Ganze eine Kardinalitat von 0 1 oder von 1 1 besitzt die Teile sind Bestandteil genau eines Ganzen oder noch freistehend sie gehoren jedoch niemals zu mehreren Ganzen Der Fokus liegt hierbei eher auf den Teilen Der Modellierer will durch eine Aggregation Komposition aussagen dass die Teile von ihrem Ganzen abhangig sind Dabei definiert der Unterschied in der Kardinalitat 0 oder 1 1 ob eine Aggregation oder der Spezialfall Komposition vorliegt Eine Komposition liegt genau dann vor wenn die Kardinalitat am Ganzen 1 1 lautet oder wie im Bild abgekurzt einfach nur 1 Eine Aggregation liegt vor wenn die Kardinalitat 0 lautet Fur das Beispiel heisst die Existenzabhangigkeit folgendes Komposition Ein Raum kann nicht ohne Gebaude existieren Aggregation Ein Student kann ohne Vorlesung existieren Dennoch bestehen die linken Entitaten aus den rechten Entitaten Ein Gebaude besteht aus Raumen Im Beispiel aus mindestens einem Raum ist als Kardinalitat auch 0 Raume zulassig so ist die Beziehung dennoch eine Komposition Eine Vorlesung besteht aus Studenten Im Beispiel aus mindestens drei Studenten ist als Kardinalitat auch 0 Studenten zulassig so ist die Beziehung dennoch eine Aggregation In Hinblick auf eine besteht aus Beziehung unterscheiden sich Komposition und Aggregation nicht Dies ist genau das was sie vereint Sie unterscheiden sich jedoch in der kann ohne sein Ganzes existieren Beziehung Liegt eine Komposition vor spricht man auch von einer referenziellen Integritat die fur einen Teil angibt dass es vom Ganzen abhangig ist Das Ganze darf zusatzliche Beziehungen zu anderen Klassen oder weitere eigene Attribute besitzen es muss nicht ausschliesslich aus Teilen einer Klasse bestehen Formale Semantik BearbeitenRumbaugh Jacobson und Booch fordern eine eher minimal definierte mengentheoretische Semantikbeschreibung 3 Demnach ist eine Konfiguration englisch snapshot s sigma eines UML Klassendiagrammes eine Menge von Objekten der in dem Diagramm vorhandenen Klassen Eine Konfiguration ist konsistent wenn alle in dem Diagramm angegebenen Einschrankungen eingehalten werden wie z B Multiplizitaten oder OCL Constraints Klassen und Attribute Bearbeiten In jeder Konfiguration wird eine Klasse als Menge ihrer Objekte beschrieben Wenn c n a m e cname der Name einer Klasse ist dann ist s c n a m e sigma cname eine Menge Diese Menge darf auch leer sein wenn es kein Objekt gibt Wenn a t t r i b n attribn ein Attribut vom Typ t y p n typn einer Klasse mit dem Klassennamen c n a m e cname ist dann ist s a t t r i b n sigma attribn eine partielle Funktion von der Menge der Objekte s c n a m e sigma cname in die Menge der Objekte des Attributstyps s t y p n sigma typn Die Funktion muss partiell sein da sie fur noch nicht initialisierte Attribute undefiniert ist Klassenattribute werden genauso behandelt haben aber die zusatzliche Einschrankung dass alle Objekte einer Klasse auf dasselbe Objekt des Attributtyps abgebildet werden mussen Wurde zusatzlich eine Multiplizitat eines Attributes definiert mit dem Intervall I I dann ist s a t t r i b n sigma attribn eine Relation mit s a t t r i b n s c n a m e s t y p n sigma attribn sigma cname times sigma typn mit der zusatzlichen Einschrankung dass fur jedes a s c n a m e a in sigma cname C a r d b a b s a t t r i b n I Card b langle a b rangle in sigma attribn in I gilt Falls eine Klasse mit Namen c n a m e 1 cname1 eine Unterklasse von der Klasse mit Namen c n a m e cname ist dann gilt s c n a m e 1 s c n a m e sigma cname1 subseteq sigma cname Assoziationen Bearbeiten Eine Assoziation r r zwischen Klassen mit den Namen c n a m e 1 cname1 und c n a m e 2 cname2 wird als Relation s r sigma r zwischen den Mengen der Objekte der Klassen interpretiert s r s c n a m e 1 s c n a m e 2 sigma r sigma cname1 times sigma cname2 Die Multiplizitaten mussen in beiden Richtungen wie oben beschrieben behandelt werden Diese Darstellung erlaubt allerdings keine Behandlung der Rollennamen an den Assoziationsenden Um dies dennoch zu ermoglichen konnte eine eindeutige Labelfunktion und deren Inverse eingefuhrt werden Bei dieser Art der Betrachtung der Semantik wird nicht zwischen normalen Assoziationen und deren speziellen Auspragungen Aggregation Komposition unterschieden Operationen Bearbeiten Im Allgemeinen lost eine Operation einen Ubergang von einer Konfiguration zu einer anderen aus Im Falle nicht deterministischer Operationen gibt es eine Menge von Nachfolge Konfigurationen Einen Sonderfall stellen Query Operationen dar Da diese keine Seiteneffekte haben durfen erfolgt auch kein Zustandsubergang in eine andere Konfiguration Operationen entsprechen in vielen Programmiersprachen Methoden bzw Funktionen Beispieldiagramm Bearbeiten Beispiel eines Klassendiagramm mit funf Klassen zwei Generalisierungen und drei AssoziationenLiteratur BearbeitenHeide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf mit der UML 2 Elsevier Spektrum Akademischer Verlag 2005 ISBN 3 8274 1162 9 Christoph Kecher UML 2 0 Das umfassende Handbuch Galileo Computing 2006 ISBN 3 89842 738 2 Chris Rupp Stefan Queins Barbara Zengler UML 2 Glasklar Hanser Verlag 2007 ISBN 978 3 446 41118 0 James Rumbaugh Ivar Jacobson Grady Booch The Unified Modeling Language Reference Manual Addison Wesley 1998 ISBN 978 0 201 30998 0 Weblinks Bearbeiten Commons Klassendiagramm Sammlung von Bildern Videos und AudiodateienEinzelnachweise Bearbeiten Heide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf mit der UML 2 2 Auflage Spektrum Akademischer Verlag Heidelberg 2005 ISBN 978 3 8274 2903 2 S 543 Amelie Flatt Arne Langner Olof Leps Phase I Mapping Legal Concepts to Technical Objects In Model Driven Development of Akoma Ntoso Application Profiles Springer International Publishing Cham 2022 ISBN 978 3 03114131 7 S 13 17 doi 10 1007 978 3 031 14132 4 3 springer com abgerufen am 7 Januar 2023 James Rumbaugh Ivar Jacobson Grady Booch The Unified Modeling Language Reference Manual Addison Wesley 1998 ISBN 978 0 201 30998 0 Abgerufen von https de wikipedia org w index php title Klassendiagramm amp oldid 229601314