2012-09-28 73 views
9

Cuando estaba creando por primera vez un diagrama de clase uml para un pequeño proyecto de C#, tuve algunos problemas con las propiedades. Al final acabo de agregar las propiedades como una variable con <<property>> al comienzo. Ahora me pregunto cómo puedo resolver esto con un método abstracto. ¿Debo agregar <<abstract>> al método una multa? Estoy haciendo algo como esto:Diagrama de clase UML: ¿cómo escribir un método y una propiedad abstractos?

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

¿Esto está bien? ¿Alguna sugerencia?

Respuesta

6

Cada "atributo" es en realidad una propiedad en UML2. Los métodos abstractos se muestran en cursiva (UML tiene un valor booleano para esto).

La notación que está utilizando se llama Keyword (simple way) o Stereotype (más compleja). Si desea marcar una propiedad como un tipo de "especial", está bien con una palabra clave como la suya.

0

Como no hay propiedades en UML, creo que esta es una posible solución para enfatizar que un atributo debe implementarse como propiedad. Sin embargo, debe documentar el uso de esta palabra clave no estándar dentro del documento que usa el diagrama.

Otra solución sería crear una convención de que todos los atributos públicos deben implementarse como propiedades (a menos que ocurran algunas excepciones ...).

Si no recuerdo mal, los métodos abstractos se muestran con texto en cursiva. Aunque no me gusta este enfoque, porque podría supervisarse más fácilmente que en su diagrama. También podría depender de las posibilidades que ofrece su editor UML, donde generalmente prefiero adaptar el método del editor para mantenerlo alineado con otros diagramas dibujados con el mismo editor.

Cuestiones relacionadas