Hoja de trucos de flechas Uml
Necesito ayuda para tratar de entender cuál es el significado de la flecha en un Diagrama de Clases UML, más específicamente en este Diagrama Compuesto. ¿Cuál es la diferencia entre la línea simple (de una clase a otra) y la flecha (no la flecha de herencia, me refiero a la negra)?
Una línea sólida que conecta dos clases, como por ejemplo entre Client y BookComponent es simplemente una relación de asociación. A menudo se utiliza para indicar que una clase conoce (tal vez como en recibe como un argumento a un método) o tiene otra clase (tal vez como una variable de instancia). Sin ninguna decoración o con una flecha en ambos extremos, la relación es bidireccional – las dos clases comparten la relación y se conocen mutuamente. En algunos casos, como en la línea 1 de la figura, la relación es direccional. La clase Cliente conoce a BookComponent, pero lo contrario no es cierto ya que BookComponent no tiene ni conoce a Cliente. Tenga en cuenta que también hay otras anotaciones que pueden aparecer en las relaciones de asociación, como la multiplicidad o los roles de clase.
Flecha de agregación
Recientemente he estado estudiando UML y dibujando diagramas simples con flechas ordinarias entre clases, pero sé que no es suficiente. Hay muchas otras flechas: de generalización, de realización, etc. que tienen un significado para el lector del diagrama.
En este caso, tratamos de analizar la relación entre ellas. Un aula tiene una relación con los alumnos. Eso significa que el aula está formada por uno o varios alumnos. Incluso si eliminamos la clase Classroom, la clase Students no necesita destruirse, lo que significa que podemos utilizar la clase Student de forma independiente.
En este caso, pages es un libro, lo que significa que las colecciones de páginas forman el libro. Si eliminamos la clase Libro, toda la clase Página será destruida. Esto significa que no podemos utilizar la clase de la página de forma independiente.
Si eres más de MOOC, un curso gratuito que recomendaría que te enseña todos los entresijos de la mayoría de los diagramas UML es este de Udacity: https://www.udacity.com/course/software-architecture-design–ud821
Diagrama Uml
Ilustre las clases con rectángulos divididos en compartimentos. Coloque el nombre de la clase en la primera partición (centrado, en negrita y en mayúsculas), enumere los atributos en la segunda partición (alineado a la izquierda, sin negrita y en minúsculas) y escriba las operaciones en la tercera.
Utilice marcadores de visibilidad para indicar quién puede acceder a la información contenida en una clase. La visibilidad privada, denotada con un signo -, oculta la información de cualquier cosa fuera de la partición de la clase. La visibilidad pública, indicada con un signo +, permite a todas las demás clases ver la información marcada. La visibilidad protegida, denotada con un signo #, permite a las clases hijas acceder a la información que han heredado de una clase padre.
Las asociaciones representan relaciones estáticas entre clases. Coloque los nombres de las asociaciones por encima, por encima o por debajo de la línea de asociación. Utilice una flecha rellena para indicar la dirección de la relación. Coloque los roles cerca del final de una asociación. Los roles representan la forma en que las dos clases se ven entre sí.
Coloque anotaciones de multiplicidad cerca de los extremos de una asociación. Estos símbolos indican el número de instancias de una clase vinculadas a una instancia de la otra clase. Por ejemplo, una empresa tendrá uno o más empleados, pero cada empleado trabaja para una sola empresa.
Tipos de conexión del diagrama de clases
He implementado el diagrama de clases UML utilizando muestras de diagramas de clases UML (http://gojs.net/latest/samples/umlClass.html). Y también he implementado el menú contextual del botón derecho para añadir un nuevo nodo hijo al nodo seleccionado. El problema es que las flechas se superponen después de añadir el nodo hijo como se muestra a continuación.
¿Qué tipo de enlace añadió al nuevo nodo? ¿Era su data.relationship === «generalización»? ¿Ha modificado la plantilla de enlaces de la muestra de http://gojs.net/latest/samples/umlClass.html?
El diagrama inicial tenía sólo dos nodos BusinessObject (padre) y POM_object (hijo) y luego añadí el nodo «Enter Business Object Name» como hijo haciendo clic con el botón derecho en el nodo «BusinessObject» y después de esto la flecha del nodo «POM_object» se superpone con el nodo recién añadido.