2012-09-28 11 views
9

Als ich das erste Mal ein UML-Klassendiagramm für ein kleines C# -Projekt erstellte, hatte ich einige Probleme mit den Eigenschaften. Am Ende habe ich gerade die Eigenschaften als Variable mit <<property>> am Anfang hinzugefügt. Nun wundere ich mich, wie ich das mit einer abstrakten Methode löse? Soll ich einfach <<abstract>> zu der Methode hinzufügen? Ich mache so etwas wie:UML-Klassendiagramm: Wie schreibt man abstrakte Methoden und Eigenschaften?

----------------------------------- 
|   <<abstract>>   | 
|    MyClass    | 
----------------------------------- 
|<<property>> + a : int   | 
|<<property>> + b : string  | 
----------------------------------- 
|<<abstract>> # Job() : void  | 
|<<abstract>> # Job2() : string | 
|- SomeNonAbstractMethod() : void | 
----------------------------------- 

Ist das in Ordnung? Irgendwelche Vorschläge?

Antwort

6

Jedes "Attribut" ist eigentlich eine Eigenschaft in UML2. Abstrakte Methoden werden in kursivem Text angezeigt (UML hat dafür einen booleschen Wert).

Die Notation, die Sie verwenden, heißt Schlüsselwort (einfacher Weg) oder Stereotyp (komplexer). Wenn Sie eine Property als eine Art "Special" markieren möchten, ist das bei einem Keyword wie Ihnen der Fall.

0

Da es in UML keine Eigenschaften gibt, halte ich dies für eine mögliche Lösung, um zu betonen, dass ein Attribut als Eigenschaft implementiert werden soll. Sie sollten jedoch die Verwendung dieses nicht standardmäßigen Schlüsselworts in dem Dokument dokumentieren, in dem Sie das Diagramm verwenden.

Eine andere Lösung wäre, eine Konvention zu erstellen, dass alle öffentlichen Attribute als Eigenschaften implementiert werden müssen (sofern nicht einige Ausnahmen auftreten ...).

Wenn ich mich richtig erinnere, werden abstrakte Methoden durch die Verwendung von Kursivschrift angezeigt. Ich mag diesen Ansatz jedoch nicht, weil er leichter übersehen werden kann als in Ihrem Diagramm. Es hängt vielleicht auch von den Möglichkeiten ab, die Ihr UML-Editor bietet, wobei ich normalerweise die Methode des Editors anpassen möchte, um mit anderen Diagrammen übereinzustimmen, die mit demselben Editor gezeichnet wurden.