2009-12-09 13 views
160

Ich habe kürzlich UML studiert und zeichne einfache Diagramme mit gewöhnlichen einfachen Pfeilen zwischen Klassen, aber ich weiß, dass es nicht genug ist. Es gibt viele andere Pfeile: Generalisierung, Realisation usw., die für den Diagrammleser eine Bedeutung haben.Erklärung der UML-Pfeile

Gibt es eine nette Quelle, die jeden Pfeil erklären könnte (gewöhnlicher, einfacher, gepunkteter, mit Diamanten gefüllter Diamant)?

Es wäre das Beste, wenn es einige Codebeispiele für sie haben würde.

+3

würde ich dringend dies unter Berücksichtigung empfehlen: https://dzone.com/refcardz/getting-started-uml – trinity

Antwort

364

Hier einige Erklärungen von dem Visual Studio 2015-Dokumentation:

UML-Klassendiagramme: Referenz: https://msdn.microsoft.com/library/dd409437%28VS.140%29.aspx

UML class diagram

: Verband: Eine Beziehung zwischen dem Mitglieder von zwei Klassifikatoren.

5a: Aggregation: Ein Verband eine gemeinsame Eigentümerbeziehung darstellt. Die Aggregation Eigenschaft der Besitzerrolle ist auf freigegeben festgelegt.

5b: Zusammensetzung: Ein Verband eine ganze teilige Beziehung darstellt. Die Aggregation Eigenschaft der Eigentümerrolle ist auf Composite festgelegt.

: Generalisierung: Die spezifische Klassifizierers erbt Klassifikator seiner Definition aus dem allgemeinen Teil. Der allgemeine Klassifizierer befindet sich am Pfeilende des Connectors. Attribute, Zuordnungen und Operationen werden vom spezifischen Klassifizierer übernommen. Verwenden Sie das Werkzeug Vererbung, um eine Generalisierung zwischen zwei Klassifikatoren zu erstellen.

Package diagram

: Import: Eine Beziehung zwischen Paketen, die anzeigt, dass ein Paket all der Definition eines andere umfasst.

: Dependency: Die Definition oder Implementierung des abhängigen Klassifikator könnte, wenn an der Pfeilspitze Ende der Klassifikator Änderung geändert wird.

Realization relationship

: Realization: Die Klasse implementiert die Operationen und durch die Schnittstelle definiert Attribute. Verwenden Sie das Tool Vererbung, um eine Realisierung zwischen einer Klasse und einer Schnittstelle zu erstellen.

: Realisierung: Eine alternative Darstellung der gleichen Beziehung. Das Etikett auf dem Lollipop-Symbol identifiziert die Schnittstelle.

UML-Klassendiagramme: Richtlinien: http://msdn.microsoft.com/library/dd409416%28VS.140%29.aspx

Eigenschaften eines Vereins

Aggregation: Dies erscheint als eine Diamantform an einem Ende des Verbinders. Sie können es verwenden, um anzugeben, dass Instanzen in der aggregierenden Rolle besitzen oder Instanzen der anderen enthalten.

Ist navigierbar: Wenn dies nur für eine Rolle gilt, erscheint ein Pfeil in der navigierbaren Richtung. Sie können verwenden, um die Navigation von Links und Datenbankbeziehungen in der Software anzuzeigen.


Generalisierung: Verallgemeinerung bedeutet, dass die Spezialisierung oder abgeleiteten Typ erbt Attribute, Operationen und Verbände des allgemeinen oder Basistypen. Der allgemeine Typ erscheint an der Pfeilspitze Ende der Beziehung.

Realisierung: Realisierung bedeutet, dass eine Klasse die von angegebenen Attribute und Operationen implementiert. Die Schnittstelle befindet sich am Pfeilende des Connectors.

Lassen Sie mich wissen, wenn Sie weitere Fragen haben.

+1

Schöne Referenz, aber für mich ein Menü -> MenuItem hat die gleiche Beziehung wie eine Bestellung -> OrderItem, so dass beide Kompositionen sind. –

+4

Das bedeutet nur, dass die Bestellposition zu einem Auftrag gehört und nicht verschoben werden kann. Der Menüpunkt kann jedoch angepasst werden - der Benutzer kann die Position des Menüpunkts ändern. Es ist die gewählte Lösung. Warum nicht? – Gangnus

+0

@Gangnus, danke. Diese Erklärung klärte den Unterschied, der mir lange entgangen ist. – JMD

13

Mein Lieblings UML "Spickzettel" ist UML Distilled, von Martin Fowler. Es ist das einzige seiner Bücher, das ich gelesen habe und das ich empfehlen kann.

+1

Interessant, ich mochte Refactoring. Hast du Meinungen dazu? – djna

+0

Ja, ich fand alles ein bisschen offensichtlich und mochte die Konzentration auf Java nicht. Bitte nehmen Sie meine Antwort auch nicht so, dass seine anderen Bücher Müll sind. –

+0

Fowlers Buch hat auch einen Spickzettel auf der Innenseite der Buchumschläge. Wirklich gut für den Start, vor allem, wie Ihre nächste Frage sein wird, in welche Richtung gehen die Pfeile? –

11

Hier ist Tutorial vereinfacht:

Practical UML

Weitere empfehle ich einige Literatur zu erhalten.

9

zum schnellen Nachschlagen zusammen mit klaren prägnanten Beispielen, Alle Holub UML Quick Reference ist ausgezeichnet:

http://www.holub.com/goodies/uml/

(Es gibt schon einige konkrete Beispiele für Pfeile und Zeiger in der ersten Spalte einer Tabelle, mit Beschreibungen in der zweiten Spalte.)

5

Eine sehr einfach zu verstehende Beschreibung ist the documentation of yuml, mit Beispielen für Klassendiagramme, Anwendungsfälle und Aktivitäten.

3

Die angenommene Antwort wird gesagt, es fehlen einige Erklärungen. zum Beispiel, was ist der Unterschied zwischen einer unidirektionalen und einer bidirektionalen Assoziation; beide im Beispiel verwendet. (Nummer '5' in den Pfeilen) Also, wenn Sie eine umfassendere Antwort suchen und mehr Zeit haben, schauen Sie here.