UML-Klassendiagramme: Richtlinien
In Visual Studio Ultimate können Sie ein UML-Klassendiagramm verwenden, um Datentypen und ihre Beziehungen getrennt von ihrer Implementierung zu beschreiben.Das Diagramm wird verwendet, um die Konzentration auf die logischen Aspekte der Klassen zu leiten, anstatt auf ihre Implementierung.
Um ein UML-Klassendiagramm, auf dem Menü Architektur zu erstellen, wählen Sie Neues Diagramm.
Hinweis |
---|
In diesem Thema geht es um UML-Klassendiagramme.Es gibt noch eine andere Art von Klassendiagramm, das erstellt und verwendet wird, um Programmcode visuell darzustellen.Siehe Klassen und Typen entwerfen und Anzeigen. |
In diesem Thema
Verwenden von UML-Klassendiagrammen
Grundlegende Schritte zum Zeichnen von Klassendiagrammen
Verwenden von Klassen, Schnittstellen und Enumerationen
Attribute und Vorgänge
Zeichnen und Verwenden von Zuordnungen
Vererbung
Vorlagentypen
Definieren von Namespaces mit Paketen
Generieren von Code von UML-Klassendiagrammen
Verwenden von UML-Klassendiagrammen
Sie können ein UML-Klassendiagramm für viele verschiedene Zwecke verwenden:
Zum Bereitstellen einer von der Implementierung unabhängigen Beschreibung der Typen, die in einem System verwendet und zwischen Komponenten übergeben werden.
Der Typ "Meal Order" kann z. B. in .NET-Code auf Geschäftsebene, in XML auf den Schnittstellen zwischen Komponenten, in SQL in der Datenbank und in HTML auf der Benutzeroberfläche implementiert werden.Obwohl diese Implementierungen sich in ihren Details unterscheiden, ist die Beziehung zwischen "Meal Order" und anderen Typen wie "Menu" und "Payment" immer gleich.Das UML-Klassendiagramm macht es möglich, diese Beziehungen getrennt von den Implementierungen darzustellen.
Zum Verdeutlichen des Glossars mit den Begriffen, die für die Kommunikation zwischen der Anwendung und ihren Benutzern und in Beschreibungen der Benutzeranforderungen verwendet werden.Siehe Modellieren von Benutzeranforderungen.
Nehmen wir z. B. die Benutzertextabschnitte, Anwendungsfälle oder anderen Anforderungsbeschreibungen einer Restaurantanwendung.Diese Beschreibungen enthalten zum Beispiel Begriffe wie Menu (Speisekarte), Order (Bestellung), Meal (Gericht), Price (Preis), Payment (Bezahlung) usw.Sie können ein UML-Klassendiagramm zeichnen, das die Beziehungen zwischen diesen Begriffen definiert.Auf diese Weise wird das Risiko von Inkonsistenzen in den Anforderungsbeschreibungen, in der Benutzeroberfläche und in den Hilfedokumenten reduziert.
Beziehung zu anderen Diagrammen
Ein UML-Klassendiagramm wird normalerweise zusammen mit anderen Modellierungsdiagrammen gezeichnet, um Beschreibungen der verwendeten Typen bereitzustellen.Die physische Darstellung der Typen wird in keinem der Diagramme wiedergegeben.
Gezeichnetes Diagramm: |
UML-Klassendiagramm zum Beschreiben von: |
---|---|
Aktivitätsdiagramm |
Typ der Daten, der über einen Objektknoten übergeben wird. Typen von Eingabe- und Ausgabepins und Aktivitätsparameterknoten. |
Sequenzdiagramm |
Typen von Parametern und Rückgabewerte von Meldungen. Typen der Lebenslinien.Die Klasse einer Lebenslinie sollte Vorgänge für alle Meldungen enthalten, die empfangen werden können. |
Komponentendiagramm |
Komponentenschnittstellen, unter denen die Vorgänge aufgeführt sind. Sie können auch eine vollständige Komponente als Klasse beschreiben. |
Anwendungsfalldiagramm |
Typen, die in Beschreibungen der Ziele und Schritte eines Anwendungsfalls erwähnt werden. |
Grundlegende Schritte zum Zeichnen von Klassendiagrammen
Referenzinformationen zu den Elementen in UML-Klassendiagrammen finden Sie unter UML-Klassendiagramme: Referenz.
Hinweis |
---|
Eine ausführliche Beschreibung der Schritte zum Erstellen der Modellierungsdiagramme finden Sie unter Gewusst wie: Bearbeiten von UML-Modellen und Diagrammen. |
So erstellen Sie ein UML-Klassendiagramm
Klicken Sie im Menü Architektur wählen Sie Neues Diagramm aus.
Die Vorlagen wählen Sie UML-Klassendiagramm aus.
Benennen Sie das Diagramm.
In Zu Modellierungsprojekt hinzufügen wählen Sie ein in der Projektmappe vorhandenes Modellierungsprojekt oder Neues Modellierungsprojekt erstellen aus, und wählen Sie dann OK aus.
Ein neues Klassendiagramm mit der Toolbox UML-Klassendiagramm wird angezeigt.Die Toolbox enthält die erforderlichen Elemente und Beziehungen.
So zeichnen Sie ein UML-Klassendiagramm
Um einen Typ zu erstellen, wählen Sie Klasse, Schnittstelle oder Tool Enumeration in der Toolbox auf, und klicken Sie dann auf einen leeren Teil des Diagramms.
Sie können Typen auf Grundlage auch erstellen im Code.Sie können Typen vom aus dem Projektmappen-Explorer, Abhängigkeitsdiagrammen oder Architektur-Explorer in das Diagramm ziehen.Siehe Gewusst wie: Erstellen von UML-Klassendiagrammen aus dem Code.
Um den Typen Attribute oder Vorgänge oder einer Enumeration Literale hinzuzufügen, Attribute, Vorgänge oder Literale auszuwählen, die im Typ vorangehen, und drücken Sie die EINGABETASTE.
Sie können eine Signatur schreiben, z. B. f(x:Boolean):Integer.Siehe Attribute und Vorgänge.
Um schnell mehrere Elemente hinzuzufügen, drücken Sie am Ende jedes Elements zweimal die EINGABETASTE.Sie können in der Liste mit den PFEILTASTEN nach oben und unten navigieren.
Um einen Typ zu erweitern oder zu reduzieren, wählen Sie das Chevronsymbol.Außerdem können Sie den Abschnitt Attribute und Vorgänge einer Klasse oder Schnittstelle erweitern oder reduzieren.
Um zwischen den Typen Zuordnungs-, Vererbungs- oder Abhängigkeitslinks zu zeichnen, klicken Sie auf das entsprechende Beziehungstool, auf den Quelltyp und dann auf den Zieltyp.
Um Typen in einem Paket zu erstellen, erstellen Sie mit dem Tool Paket ein Paket und erstellen im Paket dann neue Typen und Pakete.Sie können auch den Kopierbefehl verwenden, um Typen zu kopieren und in ein Paket einzufügen.
Jedes Diagramm ist eine Ansicht eines Modells, das im gleichen Projekt auch von anderen Diagrammen genutzt wird.Um eine Strukturansicht des vollständigen Modells anzuzeigen, wählen Sie Ansicht, Weitere Fenster, UML-Modell-Explorer.
Verwenden von Klassen, Schnittstellen und Enumerationen
In der Toolbox sind drei Standardarten von Klassifizierern verfügbar.Diese werden im gesamten Dokument als Typen bezeichnet.
Verwenden Sie in den meisten Fällen Klassen (1), um Daten oder Objekttypen darzustellen.
Verwenden Sie Schnittstellen (2) in einem Kontext, in dem Sie zwischen reinen Schnittstellen und konkreten Klassen unterscheiden müssen, die über interne Implementierungen verfügen.Dieser Unterschied ist nützlich, wenn der Zweck des Diagramms darin besteht, eine Softwareimplementierung zu beschreiben.Er ist weniger nützlich, wenn Sie passive Daten modellieren oder wenn Sie Konzepte definieren, die zum Beschreiben der Benutzeranforderungen verwendet werden.
Verwenden Sie eine Enumeration (3), um einen Typ darzustellen, der über eine begrenzte Anzahl von Literalwerten verfügt, zum Beispiel Stop und Go.
Fügen Sie die Literalwerte der Enumeration hinzu.Geben Sie jedem Wert einen anderen Namen.
Sie können bei Bedarf auch einen numerischen Wert für jeden Literalwert angeben.Öffnen Sie das Kontextmenü für das Literal in der Enumeration, wählen Sie Eigenschaften aus und geben eine Zahl in das Feld WertEigenschaften im Fenster ein.
Geben Sie jedem Typ einen eindeutigen Namen.
Abrufen von Typen aus anderen Diagrammen
Sie können festlegen, dass Typen aus einem anderen Diagramm in Ihrem UML-Klassendiagramm angezeigt werden.
Anderer Diagrammtyp |
Abrufen von Typen aus dem anderen Diagramm |
---|---|
UML-Klassendiagramm |
Sie können festlegen, dass eine Klasse in mehr als einem UML-Klassendiagramm angezeigt wird.Wenn Sie eine Klasse auf einem Diagramm erstellt haben, ziehen Sie die Klasse aus dem UML-Modell-Explorer auf das andere Diagramm. Dies ist nützlich, wenn Sie erreichen möchten, dass der Schwerpunkt in jedem Diagramm auf einer bestimmten Gruppe von Beziehungen liegt. Beispielsweise können Sie die Zuordnungen zwischen einer Essensbestellung (Meal Order) und der Speisekarte (Menu) des Restaurants in einem Diagramm und die Zuordnungen zwischen Essensbestellung und Bezahlung (Payment) in einem anderen Diagramm anzeigen. |
Komponentendiagramm |
Wenn Sie Komponenten in einem Komponentendiagramm definiert haben, können Sie eine Komponente aus dem UML-Modell-Explorer auf das Klassendiagramm ziehen.Sie wird als Klasse angezeigt.Siehe UML-Komponentendiagramme: Richtlinien. |
UML-Sequenzdiagramm |
Sie können Klassen und Schnittstellen von Lebenslinien aus in einem Sequenzdiagramm erstellen und die Klasse aus dem UML-Modell-Explorer dann in ein UML-Klassendiagramm ziehen.Jede Lebenslinie in einem Sequenzdiagramm stellt eine Instanz eines Objekts, einer Komponente oder eines Akteurs dar. Um eine Klasse aus einer Lebenslinie zu erstellen, öffnen Sie das Kontextmenü für die Lebenslinie, und wählen Sie dann Klasse erstellen oder Schnittstelle erstellen aus.Siehe UML-Sequenzdiagramme: Richtlinien. |
Programmcode |
Sie können Typen aus dem Code im Modell darstellen.Ziehen Sie Klassen, Schnittstellen oder Enumerationen von den Architektur-Explorer- oder Abhängigkeitsdiagrammen auf ein UML-Klassendiagramm. Typen, die Sie ziehen, werden im Diagramm.Abhängige Typen werden auch dem Modell hinzugefügt.Wenn ein UML-Typ auf diese Weise erstellt wurde, können Sie darauf doppelklicken, um den Quellcode zu öffnen.Siehe Gewusst wie: Erstellen von UML-Klassendiagrammen aus dem Code.
Hinweis
Der Code und das Modell werden nicht synchronisiert gespeichert.Sie können das Diagramm zur Erläuterung von Änderungsvorschlägen aktualisieren, ohne den Code zu beeinflussen.Nachfolgende Änderungen im Code wirken sich nicht automatisch auf das Diagramm, es sei denn, Sie erneut die Typen in das Diagramm ziehen.
|
Attribute und Vorgänge
Ein Attribut (4) ist ein benannter Wert, über den jede Instanz eines Typs verfügen kann.Das Zugreifen auf ein Attribut führt nicht dazu, dass der Zustand der Instanz geändert wird.
Ein Vorgang (5) ist eine Methode oder Funktion, die Instanzen des Typs ausführen kann.Dabei kann ein Wert zurückgegeben werden.Wenn seine isQuery-Eigenschaft den Wert "true" hat, kann er den Zustand der Instanz nicht ändern.
Um einem Typ ein Attribut oder einen Vorgang hinzuzufügen, öffnen Sie das Kontextmenü für den Typ, wählen Sie Hinzufügen aus und wählen dann Attribut oder Operation aus.
Um die Eigenschaften anzuzeigen, öffnen Sie das Kontextmenü für das Attribut oder den Vorgang, und wählen Sie dann Eigenschaften aus.Die Eigenschaften werden im Eigenschaftenfenster angezeigt.
Um die Eigenschaften der Parameter einer Operation anzuzeigen, wählen Sie […] in der Eigenschaft Parameter.Ein neues Eigenschaftendialogfeld wird angezeigt.
Ausführliche Informationen über alle Eigenschaften, die Sie festlegen können, finden Sie unter:
Typen von Attributen und Vorgängen
Jeder Typ eines Attributs oder eines Vorgangs und jeder Parametertyp kann einen der folgenden Werte aufweisen:
(Keiner) – Sie können die Angabe eines Typs in der Signatur vermeiden, indem Sie den vorangestellten Doppelpunkt (:) weglassen.
Einen der standardmäßigen primitiven Typen: Boolesch, Ganze Zahl, Zeichenfolge.
Einen Typ, der im Modell definiert ist.
Ein parametrisierter Wert eines Vorlagentyps der Form "Vorlage<Parameter>".Weitere Informationen finden Sie unter Vorlagentypen.
Sie können auch den Namen eines Typs schreiben, den Sie im Modell noch nicht definiert haben.Der Name wird unter Nicht spezifizierte Typen im UML-Modell-Explorer aufgeführt.
Hinweis |
---|
Wenn Sie anschließend im Modell eine Klasse oder Schnittstelle mit diesem Namen definieren, verweisen ältere Attribute und Operationen weiterhin auf das Element in "Nicht spezifizierte Typen".Wenn Sie diese älteren Komponenten ändern möchten, damit sie auf die neue Klasse verweisen, müssen Sie für jedes Attribut bzw. jede Operation den Typ zurücksetzen und die neue Klasse im Dropdownmenü auswählen. |
Mehrere Typen
Sie können eine Multiplizität für beliebige Attribute, Vorgänge oder Parametertypen festlegen.
Die zulässigen Werte lauten wie folgt:
Multiplizität |
Das Attribut, der Parameter oder der Rückgabewert enthält Folgendes: |
---|---|
[1] |
Ein Wert des angegebenen Typs.Dies ist die Standardeinstellung. |
[0..1] |
Null oder ein Wert des angegebenen Typs. |
[*] |
Eine Auflistung einer beliebigen Anzahl von Instanzen des angegebenen Typs. |
[1..*] |
Eine Auflistung von mindestens einer Instanz des angegebenen Typs. |
[n..m] |
Eine Auflistung von zwischen n und m Instanzen des angegebenen Typs. |
Wenn die Multiplizität mehr als 1 beträgt, können Sie auch diese Eigenschaften festlegen:
IsOrdered – Bei "true" hat die Auflistung eine definierte Reihenfolge.
IsUnique – Bei "true" enthält die Auflistung keine doppelten Werte.
Sichtbarkeit
Die Sichtbarkeit gibt an, ob auf das Attribut oder den Vorgang von außerhalb der Klassendefinition aus zugegriffen werden kann.Die zulässigen Werte lauten wie folgt:
Name |
Kurzform |
Bedeutung |
---|---|---|
Public |
+ |
Zugriff ist von allen anderen Typen möglich. |
Private |
- |
Zugriff ist nur auf die interne Definition dieses Typs möglich. |
Package |
~ |
Der Zugriff ist nur innerhalb des Pakets, das diesen Typ enthält, und in allen Paketen möglich, die diesen explizit importieren.Weitere Informationen finden Sie unter Definieren von Namespaces und Paketen. |
Protected |
# |
Der Zugriff ist nur auf diesen Typ und die Typen möglich, die davon erben.Weitere Informationen finden Sie unter Vererbung. |
Festlegen der Signatur eines Attributs oder eines Vorgangs
Die Signatur eines Attributs oder eines Vorgangs ist eine Auflistung von Eigenschaften, die die Sichtbarkeit, den Namen, die Parameter (für Vorgänge) und den Typ enthält.
Sie können eine Signatur direkt in das Diagramm schreiben.Klicken Sie zum Auswählen auf das Attribut oder den Vorgang, und klicken Sie dann noch einmal darauf.
Schreiben Sie die Signatur wie folgt:
visibility attribute-name : Type
- oder -
visibility operation-name (parameter1 : Type1, ...) : Type
Beispiel:
+ AddItem (item : MenuItem, quantity : Integer) : Boolean
Verwenden Sie die Kurzform der Sichtbarkeit.Der Standardwert ist + (öffentlich).
Bei jedem Typ kann es sich um im Modell definierte Typen, Standardtypen wie "Ganze Zahl" oder "Zeichenfolge" oder den Namen eines neuen Typs handeln, den Sie noch nicht definiert haben.
Hinweis |
---|
Wenn Sie einen Namen ohne einen Typ in eine Parameterliste schreiben, wird anstelle seines Typs der Name des Parameters angegeben.In diesem Beispiel werden "MenuItem" und "Integer" zu den Namen von zwei Parametern mit nicht angegebenen Typen: AddItem(MenuItem, Integer) /* parameter names, not types! */ |
Um die Multiplizität eines Typs in einer Signatur festzulegen, schreiben Sie die Multiplizität in eckigen Klammern nach dem Typnamen, z. B.:
+ AddItems (items : MenuItem [1..*])
+ MenuContent : MenuItem [*]
Falls das Attribut oder der Vorgang statisch ist, wird sein Name in der Signatur unterstrichen angezeigt.Wenn dieser abstrakt ist, wird der Name kursiv angezeigt.
Sie können die Eigenschaften Is Static und Is Abstract jedoch nur im Eigenschaftenfenster festlegen.
Vollständige Signatur
Wenn Sie die Signatur eines Attributs oder Vorgangs bearbeiten, werden ggf. einige zusätzliche Eigenschaften am Ende der Zeile und nach jedem Parameter angezeigt.Sie stehen in geschweiften Klammern ({…}).Sie können diese Eigenschaften bearbeiten oder hinzufügen.Beispiel:
+ AddItems (items: MenuItem [1..*] {unique, ordered})
+ GetItems (filter: String) : MenuItem [*] {ordered, query}
Dort stehen die folgenden Eigenschaften zur Auswahl:
In Signatur |
Eigenschaft |
Bedeutung |
---|---|---|
unique |
Ist eindeutig |
Die Auflistung enthält keine doppelten Werte.Gilt für Typen mit einer Multiplizität größer als 1. |
ordered |
Is Ordered |
Die Auflistung ist eine Sequenz.Bei "false" ist kein eindeutiges erstes Element vorhanden.Gilt für Typen mit einer Multiplizität größer als 1. |
query |
Is Query |
Der Vorgang ändert den Zustand seiner Instanz nicht.Gilt nur für Vorgänge. |
/ |
Is Derived |
Das Attribut wird aus Werten anderer Attribute oder Zuordnungen berechnet. "/" steht vor dem Namen eines Attributs.Beispiel:
|
Normalerweise wird die vollständige Signatur nur im Diagramm angezeigt, während Sie es bearbeiten.Wenn Sie die Bearbeitung beenden, werden die zusätzlichen Eigenschaften ausgeblendet.Wenn Sie die vollständige Signatur immer anzeigen möchten, öffnen Sie das Kontextmenü für den Typ, und wählen Sie dann Vollständige Signatur anzeigen aus.
Zeichnen und Verwenden von Zuordnungen
Verwenden Sie eine Zuordnung, um eine beliebige Art von Verknüpfung zwischen zwei Elementen darzustellen, und zwar unabhängig davon, wie die Verknüpfung in der Software implementiert ist.Sie können eine Zuordnung z. B. verwenden, um einen Zeiger in C#, eine Beziehung in einer Datenbank oder einen Querverweis von einem Teil einer XML-Datei zu einem anderen darzustellen.Sie kann eine Zuordnung zwischen realen Objekten darstellen, z. B. Erde und Sonne.Die Zuordnung besagt nicht, wie der Link dargestellt wird, sondern nur, dass die Informationen vorhanden sind.
Eigenschaften einer Zuordnung
Nachdem Sie eine Zuordnung erstellt haben, legen Sie die Eigenschaften dafür fest.Öffnen Sie das Kontextmenü für die Zuordnung, und wählen Sie dann Eigenschaften aus.
Zusätzlich zu den Eigenschaften der Zuordnung als Ganzes, verfügt jede Rolle, also jedes Ende der Zuordnung, über einige eigene Eigenschaften.Um diese anzuzeigen, erweitern Sie die Eigenschaften Erste Rolle und Zweite Rolle.
Einige Eigenschaften jeder Rolle sind direkt im Diagramm sichtbar.Dies sind:
Der Rollenname.Er wird am entsprechenden Ende der Zuordnung im Diagramm angezeigt.Sie können den Namen entweder im Diagramm oder im Eigenschaftenfenster festlegen.
Die Multiplizität, deren Standardwert 1 ist.Diese Eigenschaft wird auch am entsprechenden Ende der Zuordnung im Diagramm angezeigt.
Aggregation.Wird an einem Ende des Konnektors in Rautenform angezeigt.Damit können Sie angeben, dass die Aggregierungsrolle Instanzen der anderen besitzt oder enthält.
Navigierbar.Wenn nur für eine Rolle "true" gilt, wird ein Pfeil angezeigt, der in die navigierbare Richtung zeigt.Sie können dies nutzen, um die Navigierbarkeit von Links und Datenbankbeziehungen in der Software anzugeben.
Ausführliche Informationen zu diesen und anderen Eigenschaften finden Sie unter Eigenschaften von Zuordnungen in UML-Klassendiagrammen.
Navigierbarkeit
Eine gezeichnete Zuordnung weist an einem Ende einen Pfeil auf, der angibt, dass die Zuordnung in dieser Richtung navigierbar ist.Dies ist hilfreich, wenn das Klassendiagramm Softwareklassen darstellt und die Zuordnungen Zeiger oder Verweise darstellen.Wenn Sie jedoch ein Klassendiagramm zum Darstellen von Entitäten und Beziehungen oder Geschäftskonzepten verwenden, ist es weniger wichtig, die Navigierbarkeit darzustellen.In diesem Fall kann es ratsam sein, Zuordnungen ohne Pfeile zu zeichnen.Hierfür legen Sie die Is Navigable-Eigenschaft an beiden Enden der Zuordnung auf True fest.Um dies zu erleichtern, können Sie das Codebeispiel UML-Domänen-Modellierung herunterladen.
Attribute und Zuordnungen
Eine Zuordnung ist eine grafische Darstellung eines Attributs.Anstatt z. B. eine Klasse "Restaurant" mit einem Attribut vom Typ "Menu" zu erstellen, können Sie eine Zuordnung von "Restaurant" zu "Menu" ziehen.
Jeder Attributname wird zu einem Rollennamen.Er wird am entgegengesetzten Ende der Zuordnung des besitzenden Typs angezeigt.Ein Beispiel in der Abbildung ist myMenu.
Normalerweise ist es besser, Attribute nur für Typen zu verwenden, die Sie nicht im Diagramm zeichnen würden, z. B. primitive Typen.
Vererbung
Verwenden Sie das Tool Vererbung, um die folgenden Beziehungen zu erstellen:
Eine Verallgemeinerungsbeziehung zwischen einem spezialisierten Typ und einem allgemeinen Typ
- oder -
Eine Realisierungsbeziehung zwischen einer Klasse und einer Schnittstelle, die diese implementiert.
Sie können in Vererbungsbeziehungen keine Schleifen erstellen.
Generalisierung
Generalisierung bedeutet, dass der spezialisierende oder abgeleitete Typ Attribute, Vorgänge und Zuordnungen des allgemeinen Typs oder Basistyps erbt.
Der allgemeine Typ wird am Pfeilspitzenende der Beziehung angezeigt.
Die geerbten Vorgänge und Attribute werden in den spezialisierenden Typen normalerweise nicht angezeigt.Sie können der Vorgangsliste des spezialisierenden Typs jedoch geerbte Vorgänge hinzufügen.Dies ist nützlich, wenn Sie im spezialisierenden Typ einige der Eigenschaften eines Vorgangs überschreiben möchten oder wenn Sie angeben möchten, dass der implementierende Code dies durchführen soll.
So überschreiben Sie die Definition eines Vorgangs in einem spezialisierenden Typ
Klicken Sie auf die Generalisierungsbeziehung.
Es wird hervorgehoben und ein Aktionstag angezeigt.
Klicken Sie auf das Aktionstag und dann auf Vorgänge überschreiben.
Das Dialogfeld Vorgänge überschreiben wird angezeigt.
Wählen Sie die Vorgänge aus, die im spezialisierenden Typ angezeigt werden sollen, und klicken Sie dann auf OK.
Die ausgewählten Vorgänge werden jetzt im spezialisierenden Typ angezeigt.
Realisierung
Realisierung bedeutet, dass eine Klasse die Attribute und Vorgänge implementiert, die von der Schnittstelle angegeben werden.Die Schnittstelle befindet sich am Pfeilende des Konnektors.
Wenn Sie einen Realisierungskonnektor erstellen, werden die Vorgänge der Schnittstelle automatisch in der realisierenden Klasse repliziert.Wenn Sie einer Schnittstelle neue Vorgänge hinzufügen, werden diese in den realisierenden Klassen repliziert.
Nachdem Sie eine Realisierungsbeziehung erstellt haben, können Sie diese in eine Lollipopnotation konvertieren.Klicken Sie mit der rechten Maustaste auf die Beziehung, und wählen Sie Als Lollipop anzeigen.
Auf diese Weise können Sie die von einer Klasse implementierten Schnittstellen anzeigen, ohne dass die Klassendiagramme zu viele Realisierungslinks enthalten.Außerdem können Sie die Schnittstelle und die Klassen, die diese realisieren, in separaten Diagrammen anzeigen.
Vorlagentypen
Sie können einen generischen Typ oder Vorlagentyp definieren, der von anderen Typen oder Werten parametrisiert werden kann.
Sie können z. B. ein generisches Wörterbuch erstellen, das mithilfe von Schlüssel- und Werttypen parametrisiert wird:
So erstellen Sie einen Vorlagentyp
Erstellen Sie eine Klasse oder eine Schnittstelle.Dies wird zu Ihrem Vorlagentyp.Benennen Sie diesen entsprechend, z. B. Dictionary.
Öffnen Sie das Kontextmenü für den neuen Typ, und wählen Sie dann Eigenschaften aus.
Klicken Sie im Eigenschaftenfenster im Feld Vorlagenparameter auf […].
Das Dialogfeld Auflistungs-Editor für Vorlagenparameter wird angezeigt.
Wählen Sie Hinzufügen aus.
Legen Sie die Namenseigenschaft auf einen Parameternamen für den Vorlagentyp fest, z. B. Key.
Legen Sie Parameterart fest.Der Standardwert ist Klasse.
Wenn der Parameter nur abgeleitete Klassen einer bestimmten Basisklasse akzeptieren soll, legen Sie Eingeschränkter Wert auf die gewünschte Basisklasse fest.
Fügen Sie so viele Parameter Sie Anforderung hinzu, und wählen Sie OK aus.
Fügen Sie dem Vorlagentyp Attribute und Vorgänge hinzu, wie Sie dies auch bei anderen Klassen tun.
Sie können Parameter vom Typ Klasse, Schnittstelle oder Enumeration in der Definition von Attributen und Vorgängen verwenden.Indem Sie beispielsweise die Parameterklassen Key und Value verwenden, können Sie den Vorgang in Dictionary definieren:
Get(k : Key) : Value
Sie können einen Parameter vom Typ Ganze Zahl als Grenze einer Multiplizität verwenden.Beispielsweise kann ein Parameter mit einer ganzen Zahl und einem Maximalwert verwendet werden, um die Multiplizität eines Attributs als [0..max] zu definieren.
Wenn Sie Vorlagentypen erstellt haben, können Sie diese zum Definieren von Vorlagenbindungen verwenden:
So verwenden Sie einen Vorlagentyp
Erstellen Sie einen neuen Typ, z. B. AddressTable.
Öffnen Sie das Kontextmenü für den neuen Typ, und wählen Sie dann Eigenschaften aus.
Wählen Sie in der Template Binding-Eigenschaft (Vorlagenbindung) in der Dropdownliste den Vorlagentyp aus, zum Beispiel Dictionary.
Erweitern Sie die Template Binding-Eigenschaft.
Für jeden Parameter des Vorlagentyps wird eine Zeile angezeigt.
Legen Sie jeden Parameter auf einen geeigneten Wert fest.Legen Sie den Key-Parameter z. B. auf eine Klasse mit dem Namen Name fest.
Pakete
Sie können Pakete in einem UML-Klassendiagramm anzeigen.Ein Paket ist ein Container für andere Modellelemente.Sie können in einem Paket beliebige Elemente erstellen.Im Diagramm werden die im Paket enthaltenen Elemente neu angeordnet, wenn Sie das Paket verschieben.
Sie können das Steuerelement zum Reduzieren/Erweitern verwenden, um den Inhalt des Pakets aus- oder einzublenden.
Siehe Definieren von Paketen und Namespaces.
Generieren von Code von UML-Klassendiagrammen
Um das Implementieren der Klassen in einem UML-Klassendiagramm beginnen, können Sie C#-Code generieren oder Vorlagen für Codegenerierung anpassen.Um das Generieren von Code mithilfe der bereitgestellten C#-Vorlagen beginnen:
Öffnen Sie das Kontextmenü für das Diagramm oder ein Element, wählen Sie Code generieren aus und legen Sie dann die erforderlichen Eigenschaften fest.
Weitere Informationen dazu, wie diese Eigenschaften festlegen und die bereitgestellten Vorlagen, finden Sie unter Gewusst wie: Generieren von Code aus UML-Klassendiagrammen angepasst wird.
Siehe auch
Referenz
UML-Sequenzdiagramme: Referenz
Konzepte
Gewusst wie: Bearbeiten von UML-Modellen und Diagrammen
UML-Klassendiagramme: Referenz
Modellieren von Benutzeranforderungen
UML-Komponentendiagramme: Referenz