El significado y uso de varias flechas y líneas en los diagramas de clases UML (girar)

El significado y uso de flechas y líneas en diagramas de clases UML

1. Relación UML

En esta sección, aprenderé de ti el significado de las flechas y líneas de UML. Las relaciones en UML incluyen principalmente dependencia, agregación, síntesis, generalización e implementación. Veamos cómo se pueden implementar estas relaciones con flechas y líneas de UML .

relación

Los siguientes ejemplos mostrarán varias relaciones de forma independiente para un propósito específico. Aunque la gramática es correcta, estos ejemplos se pueden refinar aún más para incluir más semántica dentro de su rango efectivo.

Dependencia

Una relación de "uso" entre entidades implica que un cambio en la especificación de una entidad puede afectar a otras instancias que dependen de ella (Figura D). Más específicamente, se puede convertir a cualquier tipo de referencia a una clase u objeto que no esté en el alcance de la instancia. Esto incluye una variable local, una referencia a un objeto obtenido a través de una llamada a un método (como se muestra en el siguiente ejemplo) o una referencia a un método estático de una clase (y no existe una instancia de esa clase). También puede utilizar "dependencia" para indicar la relación entre paquetes y paquetes. Debido a que el paquete contiene clases, puede expresar la relación entre el paquete y el paquete basándose en la relación entre las clases en esos paquetes.

Figura D

Asociación (Asociación)

Una relación estructurada entre entidades indica que los objetos están conectados entre sí. La flecha UML es opcional, se usa para especificar las capacidades de navegación. Si no hay una flecha, implica una capacidad de navegación bidireccional. En Java, la asociación (Figura E) se transforma en una variable de ámbito de instancia, al igual que el código que se muestra en el área "Java" de la Figura E. Se pueden adjuntar otros modificadores a una asociación. El modificador de multiplicidad implica la relación entre instancias. En el código de muestra, Employee puede tener 0 o más objetos TimeCard. Sin embargo, cada TimeCard solo pertenece a un único empleado.

Figura E

Agregación

La agregación (Figura F) es una forma de asociación.Las flechas UML representan la relación total / parcial entre dos clases. La agregación implica que el todo está conceptualmente en un nivel más alto que la parte, mientras que la asociación implica que las dos clases están conceptualmente en el mismo nivel. La agregación también se convierte en una variable de ámbito de instancia en Java. 7MIrrhk
yC7lR # N8j0
La diferencia entre asociación y agregación es puramente conceptual y se refleja estrictamente en la semántica. La agregación también implica que no hay bucles en el diagrama de instancias. En otras palabras, solo puede ser una relación unidireccional.

Figura F

Composición

La síntesis (Figura G) es una forma especial de agregación. Las flechas UML implican la responsabilidad de por vida de las "partes" dentro de los "totalidades". La composición tampoco se comparte. Por lo tanto, aunque la parte no necesariamente tiene que ser destruida con la destrucción del todo, el todo es responsable de mantener viva la parte o de destruirla. La parte no se puede compartir con otros todos. Sin embargo, el conjunto puede transferir la propiedad a otro objeto, quien luego asumirá la responsabilidad de por vida.

La relación entre Empleado y TimeCard puede ser más adecuada para expresarse como "síntesis" en lugar de como "asociación".

Figura G

Generalización

La generalización (Figura H) representa la relación entre un elemento más generalizado y un elemento más específico. La generalización es un elemento UML que se utiliza para modelar la herencia. En Java, la palabra clave extiende se usa para expresar directamente esta relación.

Figura H

Realización

Ejemplo (Figura I) La flecha de relación UML especifica un contrato entre dos entidades. En otras palabras, una entidad define un contrato y otra entidad garantiza la ejecución del contrato. Al modelar una aplicación Java, la relación de implementación se puede representar directamente mediante la palabra clave implements.

Imagen I

 

2. Descripción UML

El significado de cada símbolo del diagrama de clases UML Los símbolos básicos del diagrama de clases se pueden dividir en línea discontinua, flecha, línea sólida, triángulo rectángulo hueco, triángulo rectángulo sólido, diamante hueco y diamante sólido. Estos gráficos básicos se combinan para formar los símbolos básicos del diagrama de clases. Aquí debemos prestar atención al orden de estos símbolos, que representa el grado de acoplamiento entre la clase y la relación. Cuanto más a la derecha, mayor es el grado de acoplamiento. Entre ellos, la línea discontinua + flecha indica la relación de dependencia, la línea continua + flecha indica la relación asociada, la línea discontinua + el triángulo rectángulo hueco indica implementaciones, y la línea continua + triángulo rectángulo hueco indica la generalización, es decir, la Relación de herencia de la clase. La línea continua + el diamante hueco representa la relación de agregación y la línea continua + el diamante sólido representa la relación de combinación. Otro punto es prestar atención al mirar el diagrama de clases. De hecho, la idea de diagrama de clases no se ha desviado de la idea orientada a objetos, con una clase determinada como centro, se inyectan algunas líneas y se inyectan algunas líneas. Las líneas inyectadas indican qué clases llama esta clase, y las líneas inyectadas indican qué clases llama esta clase, incluidas las cuatro relaciones de generalización, asociación, dependencia, agregación y combinación. Esto es similar a la descripción de gráficos en matemáticas discretas.  

1. Clase: Está representada por una caja rectangular de tres capas. El nombre de la clase de visualización de primer nivel, si es una clase abstracta, se mostrará en cursiva. La segunda capa son los campos y los atributos. La tercera capa es el método de la clase. Preste atención al símbolo anterior, '+' significa público, '-' significa privado y '#' significa protegido.   

2. Interfaz: está representada por un marco rectangular de dos capas, la principal diferencia con el diagrama de clases es la visualización de <<interface>> en la parte superior. La primera línea es el nombre de la interfaz. La segunda línea es el método de interfaz.     

3. Clase de herencia (se extiende): Está representada por un triángulo hueco + línea continua.     

4. Interfaz de implementación (implementos): representada por un triángulo hueco + línea discontinua    

5. Asociación (Asociación): indicado por flechas sólidas, por ejemplo: golondrinas y clima   

6. Agregación: use un diamante hueco + flecha sólida para indicar agregación: representa una relación de "propiedad" débil, lo que refleja que un objeto A puede contener un objeto B, pero el objeto B no es parte de un objeto A, por ejemplo: Compañía y empleados     

7. Composición: Utilice un diamante sólido + flecha sólida para indicar la composición: la relación entre la parte y el todo, y el ciclo de vida es el mismo. Por ejemplo: personas y manos     

8. Dependencia: utilice flechas de puntos para indicar, por ejemplo: animales y oxígeno.     

9. Cardinalidad: Los números en ambos extremos de la línea indican que puede haber varias instancias de la clase en este extremo, por ejemplo: un pájaro debe tener dos alas. Si puede haber innumerables instancias de una clase, use 'n' para representarla. Asociación, agregación y combinación son cardinales. 

 

La relación entre clases UML divide la relación entre clases en los siguientes cinco tipos.    

 ● Asociación: existe una correspondencia específica entre las instancias de clase A y clase B    

● Dependencia: la clase A accede a los servicios proporcionados por la clase B     

● Agregación: la clase A es una clase general, la clase B es una clase local y los objetos de la clase A se componen de objetos de la clase B    

● Generalización: la clase A hereda la clase B    

● Implementación: Clase A implementa la interfaz B. Asociación (Asociación)    

 

La asociación se refiere a la correspondencia específica entre clases, representada por flechas con líneas continuas en UML. Según la comparación cuantitativa entre las clases, las asociaciones se pueden dividir en los siguientes tres tipos:

● Asociación uno a uno  

● Asociación de uno a varios    

● Asociación de varios a varios  

Nota: la asociación debe dividirse en asociación unidireccional y asociación bidireccional 

 

Dependencia (Dependencia) La dependencia se refiere a la relación de llamada entre clases, representada por flechas con líneas discontinuas en UML. Si la clase A accede a las propiedades o métodos de la clase B, o la clase A es responsable de instanciar la clase B, entonces se puede decir que la clase A depende de la clase B. A diferencia de la relación de asociación, no es necesario definir atributos de clase B en la clase A.  

 

Agregación La agregación se refiere a la relación entre el todo y la parte, que está representada por una flecha de diamante con una línea sólida en UML. La relación de agregación también se puede dividir en dos tipos:    

● Se permite desmontar y reemplazar el subsistema agregado, lo cual es una relación de agregación normal.     

● Los subsistemas agregados no pueden ser desarmados o reemplazados Este tipo de agregación se denomina relación de agregación fuerte o relación de composición.     

Nota: La agregación (composición) fuerte se puede representar mediante una flecha de diamante sólida con una línea sólida.   

 

Generalización (Generalización) La generalización se refiere a la relación de herencia entre clases, que está representada por una flecha triangular con una línea sólida en UML.   

 

Realización Realización se refiere a la relación entre una clase y una interfaz, que está representada por una flecha triangular con una línea de puntos en UML.

 

Reimpreso de: http://blog.csdn.net/iamherego/article/details/44802855

Supongo que te gusta

Origin blog.csdn.net/hn_tzy/article/details/105832642
Recomendado
Clasificación