- Die Unified Modeling Language ( UML ) ist eine universelle Modellierungssprache für die Entwicklung im Bereich der Softwareentwicklung, die entwickelt wurde, um einen Standardansatz für die Visualisierung des Systemdesigns bereitzustellen. Die ursprüngliche Motivation für die Erstellung von UML war der Wunsch, verschiedene Notationssysteme und Softwaredesignmethoden zu standardisieren. In UML ist ein Klassendiagramm eine von sechs Arten von Strukturdiagrammen . Klassendiagramme sind die Grundlage des Objektmodellierungsprozesses und modellieren die statische Struktur des Systems.
Struktogramme zeigen die statische Struktur des Systems und seiner Teile auf verschiedenen Abstraktions- und Implementierungsebenen und wie sie zueinander in Beziehung stehen. Die Elemente in einem Strukturdiagramm stellen die bedeutungsvollen Konzepte eines Systems dar und können abstrakte, reale und Implementierungskonzepte umfassen. Es gibt sieben Arten von Strukturdiagrammen:
- Klassen Diagramm
- Komponentendiagramm
- Bereitstellungsdiagramm
- Objektdiagramm
- Paketdiagramm
- Zusammengesetztes Strukturdiagramm
- Profildiagramm
Was ist ein Klassendiagramm?
Ein Klassendiagramm in der Unified Modeling Language (UML) ist ein statisches Strukturdiagramm, das die Struktur eines Systems beschreibt, indem es seine Klassen, ihre Attribute, Operationen (oder Methoden) und die Beziehungen zwischen Objekten zeigt. Ein Klassendiagramm ist eine Blaupause für ein System oder Subsystem. Sie können Klassendiagramme verwenden, um die Objekte zu modellieren, aus denen das System besteht, die Beziehungen zwischen Objekten darzustellen und die Rollen dieser Objekte und die von ihnen bereitgestellten Dienste zu beschreiben.
Der Ursprung von UML
Das Ziel von UML ist es, eine Standardnotation bereitzustellen, die von allen objektorientierten Methoden verwendet werden kann, und die besten Elemente von Vorläufernotationen auszuwählen und zu integrieren. UML wurde für ein breites Anwendungsspektrum entwickelt. Daher stellt es Konstrukte für eine breite Palette von Systemen und Aktivitäten (z. B. verteilte Systeme, Analyse, Systemdesign und -einsatz) bereit.
UML ist eine Notation, die aus der Vereinheitlichung von OMT hervorgegangen ist
- Object Modeling Technique OMT [ James Rumbaugh 1991] – eignete sich am besten für Analysen und datenintensive Informationssysteme.
- Booch [ Grady Booch 1994] – war hervorragend für Design und Umsetzung. Grady Booch hatte intensiv mit der Ada -Sprache gearbeitet und war maßgeblich an der Entwicklung objektorientierter Techniken für die Sprache beteiligt gewesen. Obwohl die Booch-Methode stark war, wurde die Notation weniger gut angenommen (viele Wolkenformen dominierten seine Modelle – nicht sehr aufgeräumt)
- OOSE (Object-Oriented Software Engineering [ Ivar Jacobson 1992]) – enthielt ein Modell, das als Use Cases bekannt ist. Anwendungsfälle sind eine leistungsstarke Technik, um das Verhalten eines gesamten Systems zu verstehen (ein Bereich, in dem OO traditionell schwach war).
1994 verblüffte Jim Rumbaugh, der Schöpfer von OMT, die Softwarewelt, als er General Electric verließ und zu Grady Booch bei Rational Corp. wechselte Methode war in der Tat die „Einheitliche Methode“).
Der Zweck des Klassendiagramms
Klassendiagramme sind in vielen Phasen des Systemdesigns nützlich. Während der Analysephase können Ihnen Klassendiagramme helfen, die Anforderungen der Problemdomäne zu verstehen und ihre Komponenten zu identifizieren. In objektorientierten Softwareprojekten enthält das in den frühen Phasen des Projekts erstellte Klassendiagramm Klassen, die beim Schreiben von Code häufig in tatsächliche Softwareklassen und -objekte umgewandelt werden.
Später können Sie die frühen Analyse- und Konzeptmodelle in Klassendiagramme verfeinern, um bestimmte Teile des Systems, Benutzeroberflächen, Logikimplementierungen usw. zu zeigen.
Klassendiagramme werden häufig bei der Modellierung objektorientierter Systeme verwendet, da sie die einzigen UML-Diagramme sind, die direkt auf objektorientierte Sprachen abgebildet werden können. Während der Implementierungsphase des Softwareentwicklungszyklus können Sie Klassendiagramme verwenden, um Modelle in Code und Code in Modelle umzuwandeln.
Klasse Beispiel
Ein Hund hat Zustände – Farbe, Name, Rasse sowie Verhaltensweisen – Wedeln, Bellen, Fressen. Ein Objekt ist eine Instanz einer Klasse.
UML-Klassennotation
Eine Klasse stellt ein Konzept dar, das Zustand ( Attribute ) und Verhalten ( Operationen ) kapselt . Jedes Attribut hat einen Typ. Jede Operation hat eine Signatur . Der Klassenname ist die einzige obligatorische Information .
Klassenname:
- Der Name der Klasse erscheint in der ersten Partition.
Klassenattribute:
- Attribute werden in der zweiten Partition angezeigt.
- Der Attributtyp wird nach dem Doppelpunkt angezeigt.
- Attribute werden im Code Membervariablen (Datenmembern) zugeordnet.
Klassenoperationen (Methoden):
- Operationen werden in der dritten Partition gezeigt. Sie sind Dienste, die die Klasse bereitstellt.
- Der Rückgabetyp einer Methode wird nach dem Doppelpunkt am Ende der Methodensignatur angezeigt.
- Der Rückgabetyp von Methodenparametern wird nach dem Doppelpunkt nach dem Parameternamen angezeigt. Operationen werden Klassenmethoden im Code zugeordnet
Klassenbeziehungen
Eine Klasse kann an einer oder mehreren Beziehungen mit anderen Klassen beteiligt sein. Eine Beziehung kann einer der folgenden Typen sein: (Die grafische Darstellung von Beziehungen finden Sie in der Abbildung rechts).
Beziehungstyp Grafische Darstellung Vererbung (oder Generalisierung): - Repräsentiert eine „Ist-ein“-Beziehung.
- Ein abstrakter Klassenname wird kursiv dargestellt.
- SubClass1 und SubClass2 sind Spezialisierungen der Superklasse.
- Eine durchgehende Linie mit einer hohlen Pfeilspitze, die von der untergeordneten zur übergeordneten Klasse zeigt
Einfache Assoziation : - Eine strukturelle Verbindung zwischen zwei Peer-Klassen.
- Es besteht eine Zuordnung zwischen Class1 und Class2
- Eine durchgezogene Linie, die zwei Klassen verbindet
Aggregation :Eine besondere Art von Verein. Es stellt eine „Teil von“-Beziehung dar. - Klasse2 ist Teil von Klasse1.
- Viele Instanzen (mit * gekennzeichnet) von Class2 können Class1 zugeordnet werden.
- Objekte von Klasse1 und Klasse2 haben unterschiedliche Lebensdauern.
- Eine durchgezogene Linie mit einer ungefüllten Raute am Assoziationsende, verbunden mit der Verbundklasse
Zusammensetzung :Eine besondere Art der Aggregation, bei der Teile zerstört werden, wenn das Ganze zerstört wird. - Objekte von Class2 leben und sterben mit Class1.
- Class2 kann nicht alleine stehen.
- Eine durchgezogene Linie mit einer gefüllten Raute an der Assoziation, die mit der Klasse der Verbundwerkstoffe verbunden ist
Abhängigkeit : - Existiert zwischen zwei Klassen, wenn die Änderungen an der Definition der einen Änderungen an der anderen bewirken können (aber nicht umgekehrt).
- Klasse1 hängt von Klasse2 ab
- Eine gestrichelte Linie mit einem offenen Pfeil
Beziehungsnamen
- Namen von Beziehungen werden in die Mitte der Assoziationslinie geschrieben.
- Gute Beziehungsnamen machen Sinn, wenn man sie laut vorliest:
- „Jedes Tabellenblatt enthält eine gewisse Anzahl von Zellen“,
- „ein Ausdruck ergibt einen Wert“
- Sie haben oft eine kleine Pfeilspitze, um die Richtung anzuzeigen, in der die Beziehung gelesen werden soll, z. B. werden Ausdrücke zu Werten ausgewertet, aber Werte werden nicht zu Ausdrücken ausgewertet.
Beziehung – Rollen
- Eine Rolle ist ein Richtungszweck einer Assoziation.
- Rollen werden an die Enden einer Assoziationslinie geschrieben und beschreiben den Zweck, den diese Klasse in der Beziehung spielt.
- Eine Zelle ist zB mit einem Ausdruck verbunden. Die Art der Beziehung besteht darin, dass der Ausdruck die Formel der Zelle ist.
Sichtbarkeit von Klassenattributen und Operationen
Im objektorientierten Design gibt es eine Notation der Sichtbarkeit für Attribute und Operationen. UML unterscheidet vier Arten von Sichtbarkeit: public , protected , private und package .
Die Symbole +, -, # und ~ vor einem Attribut- und Operationsnamen in einer Klasse geben die Sichtbarkeit des Attributs und der Operation an.
- + bezeichnet öffentliche Attribute oder Operationen
- – bezeichnet private Attribute oder Operationen
- # bezeichnet geschützte Attribute oder Operationen
- ~ bezeichnet Paketattribute oder Operationen
Beispiel für Klassensichtbarkeit
Im obigen Beispiel:
- attribute1 und op1 von MyClassName sind öffentlich
- attribute3 und op3 sind geschützt.
- attribute2 und op2 sind privat.
Der Zugriff für jeden dieser Sichtbarkeitstypen wird unten für Mitglieder verschiedener Klassen gezeigt.
Zugriffsrecht öffentlich (+) Privat (-) geschützt (#) Paket (~) Mitglieder der gleichen Klasse Jawohl Jawohl Jawohl Jawohl Mitglieder abgeleiteter Klassen Jawohl Nein Jawohl Jawohl Mitglieder einer anderen Klasse Jawohl Nein Nein im selben Paket Vielzahl
Wie viele Objekte jeder Klasse an den Beziehungen und der Multiplizität teilnehmen, kann ausgedrückt werden als:
- Genau eine – 1
- Null oder Eins – 0..1
- Viele – 0..* oder *
- Eine oder mehrere – 1..*
- Genaue Zahl – zB 3..4 oder 6
- Oder eine komplexe Beziehung – zB 0..1, 3..4, 6.* würde eine beliebige Anzahl von Objekten außer 2 oder 5 bedeuten
Beispiel für Multiplizität
- Voraussetzung: Ein Student kann viele Kurse belegen und viele Studenten können in einem Kurs eingeschrieben sein.
- Im Beispiel unten beschreibt das Klassendiagramm (links) die obige Aussage der Anforderung für das statische Modell, während das Objektdiagramm (rechts) die Momentaufnahme (eine Instanz des Klassendiagramms) der Kursanmeldung für zeigt die Studiengänge Software Engineering bzw. Database Management)
Aggregationsbeispiel – Computer und Teile
- Eine Aggregation ist ein Sonderfall der Assoziation, der eine „besteht aus“-Hierarchie bezeichnet
- Das Aggregat ist die übergeordnete Klasse, die Komponenten sind die untergeordneten Klassen
Vererbungsbeispiel – Zelltaxonomie
- Vererbung ist ein weiterer Sonderfall einer Assoziation, die eine Art von Hierarchie bezeichnet
- Die Vererbung vereinfacht das Analysemodell durch die Einführung einer Taxonomie
- Die untergeordneten Klassen erben die Attribute und Operationen der übergeordneten Klasse.
Klassendiagramm – Beispiel für ein Diagrammtool
Ein Klassendiagramm kann auch Notizen zu Klassen oder Beziehungen haben. Notizen werden grau dargestellt.
Im obigen Beispiel:
Wir können die Bedeutung des obigen Klassendiagramms interpretieren, indem wir die Punkte wie folgt durchlesen.
- Shape ist eine abstrakte Klasse. Es ist kursiv dargestellt.
- Shape ist eine Superklasse. Circle, Rectangle und Polygon werden von Shape abgeleitet. Mit anderen Worten, ein Kreis ist eine Form. Dies ist eine Verallgemeinerungs-/Vererbungsbeziehung.
- Es besteht eine Zuordnung zwischen DialogBox und DataController.
- Shape ist Teil von Window. Dies ist eine Aggregationsbeziehung. Form kann ohne Fenster existieren.
- Point ist Teil von Circle. Dies ist eine Kompositionsbeziehung. Punkt kann ohne Kreis nicht existieren.
- Das Fenster ist vom Ereignis abhängig. Event ist jedoch nicht von Window abhängig.
- Die Attribute von Circle sind Radius und Zentrum. Dies ist eine Entitätsklasse.
- Die Methodennamen von Circle sind area(), circum(), setCenter() und setRadius().
- Der Parameter radius in Circle ist ein in-Parameter vom Typ float.
- Die Methode area() der Klasse Circle gibt einen Wert vom Typ Double zurück.
- Die Attribute und Methodennamen von Rectangle werden ausgeblendet. Bei einigen anderen Klassen im Diagramm sind die Attribute und Methodennamen ebenfalls ausgeblendet.
Beispiel eines Klassendiagramms: Ordnungssystem
Beispiel für ein Klassendiagramm: GUI
Ein Klassendiagramm kann auch Notizen zu Klassen oder Beziehungen haben.
Umgang mit komplexen Systemen – Mehrfach- oder Einzelklassendiagramm?
Wenn Sie ein großes System oder einen großen Geschäftsbereich modellieren, müssen Sie zwangsläufig zahlreiche Entitäten berücksichtigen. Sollen wir mehrere oder ein einzelnes Klassendiagramm zur Modellierung des Problems verwenden? Die Antwort ist:
- Anstatt jede Entität und ihre Beziehungen in einem einzelnen Klassendiagramm zu modellieren, ist es besser, mehrere Klassendiagramme zu verwenden.
- Das Unterteilen eines Systems in mehrere Klassendiagramme erleichtert das Verständnis des Systems, insbesondere wenn jedes Diagramm eine grafische Darstellung eines bestimmten Teils des Systems ist.
Perspektiven des Klassendiagramms im Softwareentwicklungslebenszyklus
Wir können Klassendiagramme in verschiedenen Entwicklungsphasen eines Softwareentwicklungslebenszyklus verwenden und in der Regel, indem wir Klassendiagramme schrittweise in drei verschiedenen Perspektiven (Detailebenen) modellieren, während wir voranschreiten:
Konzeptionelle Perspektive : Die Diagramme werden so interpretiert, dass sie Dinge in der realen Welt beschreiben. Wenn Sie also die konzeptionelle Perspektive einnehmen, zeichnen Sie ein Diagramm, das die Konzepte in dem untersuchten Bereich darstellt. Diese Konzepte beziehen sich natürlich auf die Klassen, die sie implementieren. Die konzeptionelle Perspektive gilt als sprachunabhängig .
Spezifikationsperspektive : Die Diagramme werden so interpretiert, dass sie Software-Abstraktionen oder -Komponenten mit Spezifikationen und Schnittstellen beschreiben, jedoch ohne Bindung an eine bestimmte Implementierung. Wenn Sie also die Spezifikationsperspektive einnehmen, betrachten wir die Schnittstellen der Software , nicht die Implementierung.
Implementierungsperspektive : Die Diagramme werden so interpretiert, dass sie Softwareimplementierungen in einer bestimmten Technologie und Sprache beschreiben . Wenn Sie also die Implementierungsperspektive einnehmen, betrachten wir die Softwareimplementierung .
Auf der Suche nach einem kostenlosen Tool zum Erstellen von Diagrammen?
Visual Paradigm Online (VP Online) Free Edition ist eine kostenlose Online-Zeichensoftware, die Klassendiagramme, andere UML-Diagramme, ERD-Tools und Organigramm-Tools unterstützt. Es verfügt über einen einfachen, aber leistungsstarken Editor, mit dem Sie schnell und einfach Klassendiagramme erstellen können. Dieser kostenlose UML-Editor hat keine Werbung, keine Zugriffsfristen und keine Einschränkungen, zum Beispiel in Bezug auf die Anzahl der Diagramme, die Anzahl der Formen usw. Die Diagramme, die Sie erstellen, gehören Ihnen für persönliche und nicht kommerzielle Zwecke.
Suchen Sie nach formellerer UML-Modellierung auf Ihrem Desktop?
Visual Paradigm Community Edition wurde seit 2004 eingeführt, um eine kostenlose UML-Software für ausschließlich nichtkommerzielle Zwecke bereitzustellen, die Benutzer unterstützt, die ihre ersten Schritte in der UML-Modellierung machen und eine kostenlose und plattformübergreifende UML-Modellierungssoftware für den persönlichen Gebrauch benötigen, z B. die Anwendung von UML in Studentenprojekten.
Kostenloses UML-Modellierungstool für alle Arten von nichtkommerziellen Zwecken. Unterstützung der 13 UML 2.x-Diagramme
Wir werden von über 1 Million Installationen auf der ganzen Welt übernommen und wachsen weiter. Viele Menschen verwenden die kostenpflichtigen Editionen von Visual Paradigm, um täglich professionelle UML- und ERD-Diagramme für System- und Datenbankdesign und -analyse zu zeichnen.
Grund 2
Vertrauen von IT-Experten und großen Organisationen
Viele Blue-Chip-Organisationen, IT-Unternehmen, Berater, Universitäten, NGOs und Regierungseinheiten auf der ganzen Welt haben Visual Paradigm (die kostenpflichtigen Editionen) übernommen. Die folgende Abbildung zeigt einige unserer zahlenden Kunden.
Grund 3
Hochwertig – Preisgekrönt
Uns vertrauen nicht nur die bekanntesten Unternehmen weltweit, sondern auch die Industrie. Visual Paradigm ist mehrfacher internationaler Preisträger.
Grund 4
Die am weitesten verbreitete Modellierungsplattform für die Wissenschaft
Das am weitesten verbreitete UML-Tool für die Wissenschaft, das von Tausenden von Universitäten und Hochschulen übernommen wird.
Grund 5
Riesige Sammlung KOSTENLOSER Lernressourcen (Unterstützung durch VP Community Circle)
Hunderte von UML- und ERD-Beispielen , die zum sofortigen Experimentieren oder zum Einstieg in Ihr eigenes UML-Modell in Visual Paradigm importiert werden können. Alles KOSTENLOS.
Grund 6
Upgrade-Pfad zu den kommerziellen Editionen für ein breites Spektrum an Anwendungen und Möglichkeiten
Einfaches Upgrade für eine Vielzahl zusätzlicher Funktionen (z. B. BPMN- und Teamzusammenarbeitsunterstützung) und für die kommerzielle Nutzung, beginnend bei 6 $ / Monat .
Grund 7
Aktives Benutzerforum, um Hilfe zu erhalten und Ideen und Erfahrungen auszutauschen
Unterstützen, teilen und tauschen Sie Ihre Ideen mit anderen im aktiven Benutzerforum von Visual Paradigm aus .
Grund 8
Plattformübergreifende, benutzerfreundliche, schnelle und reaktionsschnelle Anwendung
Visual Paradigm kann auf verschiedenen Plattformen wie Windows, Linux und Mac ausgeführt werden. Die intuitive Benutzeroberfläche und die leistungsstarken Modellierungsfunktionen machen die Modellierung schnell und einfach!
Verweise
- Was ist UML?
- Warum UML-Modellierung?
- Überblick über die 14 UML-Diagrammtypen
- Was ist ein Klassendiagramm?
- Was ist Komponentendiagramm?
- Was ist ein Bereitstellungsdiagramm?
- Was ist ein Objektdiagramm?
- Was ist ein Paketdiagramm?
- Was ist ein zusammengesetztes Strukturdiagramm?
- Was ist ein Profildiagramm?
- Was ist ein Anwendungsfalldiagramm?
- Was ist ein Aktivitätsdiagramm?
- Was ist ein Zustandsmaschinendiagramm?
- Was ist ein Sequenzdiagramm?
- Was ist ein Kommunikationsdiagramm?
- Was ist das Interaktionsübersichtsdiagramm?
- Was ist ein Zeitdiagramm