UML: ¿puede un diagrama uml contener diferentes tipos de modelos uml?

7

^ p. ej. ¿Está permitido vincular directamente desde un caso de uso a un diagrama de actividad? ¿De un diagrama de clase a un caso de uso conectándolos con una nota de asociación o formando un diagrama componente a un diagrama de objeto? también, si está permitido, y creo firmemente que sí desde que vi tales diagramas, ¿dónde lo dice en el documento omg formal / 15-03-01?

Editar: Por ejemplo, ¿dónde dice la especificación que algo como esto está permitido?

    
pregunta kitty 21.04.2016 - 19:19

3 respuestas

3

Estoy viendo lo que actualmente es la última especificación UML, Unified Modeling Language v2.5, lanzada en junio 2015 . Se especifica en una especificación de idioma inglés y cuatro documentos XMI.

Creo que hay dos cosas a considerar para proporcionar una respuesta completa.

Lo primero que hay que tener en cuenta es la diferencia entre un "modelo" y un "diagrama". El anexo A define modelos y diagramas. Los elementos, como clases y nodos y asociaciones y actores y casos de uso, son parte de un modelo. Los diferentes modelos tienen diferentes elementos válidos, que se describen en la norma. Los diagramas son vistas gráficas del modelo. Un repositorio contiene uno o más modelos de un sistema de software.

La segunda cosa a considerar es el uso de UML. UML es un lenguaje, un conjunto de notaciones estándar con significados definidos. Martin Fowler identificó diferentes modos UML , como bocetos, planos, lenguaje de programación. Los bocetos y planos están diseñados para el consumo humano. Aprovechan las notaciones definidas para reducir la ambigüedad en un diagrama y facilitan la comunicación de ideas en un lenguaje compartido. UML como lenguaje de programación es un modo diseñado para ser consumido por una herramienta, como el código de generación automática.

La combinación de modelos no está permitida por la especificación formal. La definición de un modelo de actividad no permite la inclusión de elementos como actores, líneas de vida y objetos. Puede ver esto en los documentos XMI, o en la Sección 15 del estándar en idioma inglés. Simplemente no hay concepto de esto.

Sin embargo, al crear un diagrama (ya sea a mano o con un paquete de software), no hay nada que lo excluya. Por ejemplo, la Figura 18.12 muestra un diagrama de casos de uso que está asociado con un diagrama de máquina de estado. Las herramientas pueden mostrar estos en diferentes formatos. Tendría que profundizar más para ver si es posible vincular todos los diagramas que mencionó, pero es posible asociar un elemento de un modelo con un elemento en un modelo diferente, de modo que el diagrama de salida pueda contener representaciones visuales de múltiples modelos en una vista.

El Anexo A específico apoya esto:

  

Esta taxonomía proporciona una organización lógica para los diversos tipos principales de diagramas. Sin embargo, no impide mezclar diferentes tipos de tipos de diagramas, como se puede hacer cuando se combinan elementos estructurales y de comportamiento (por ejemplo, mostrando una máquina de estado anidada dentro de una estructura interna). En consecuencia, los límites entre los diversos tipos de tipos de diagrama no se aplican estrictamente.

    
respondido por el Thomas Owens 21.04.2016 - 20:08
2

Su ejemplo se parece mucho a uno de los diagramas de ejemplo en la especificación UML 2.5 oficial :

Entonces, supongo que si está en la especificación, podemos estar razonablemente seguros de que es un UML válido.

    
respondido por el Geert Bellekens 22.04.2016 - 08:25
0

Realmente no esperaba una pequeña discusión sobre qué es un diagrama y qué es un modelo.

Sin embargo, creo que encontré una notación que hace el truco a la perfección. Se conoce como 'Flujo de información' y utiliza la asociación de dependencia y el flujo de palabras clave en dobles chevrons / guillemets. Un libro en mis manos dice: "Un flujo de información especifica que uno o más elementos de información circulan desde sus fuentes hasta sus objetivos. Los flujos de información requieren algún tipo de 'canal de información para transmitir elementos de información'".

Así es como se ve

Y el documento oficial / 15-03-01 oficial dice en

20.1.3 Semántica (sobre InformationFlows):

  

En la práctica, una restricción en InformationFlow requiere que las fuentes y los objetivos deben ser uno de los siguientes tipos: Actor, Nodo, UseCase,   Artefacto, Clase, Componente, Puerto, Propiedad, Interfaz, Paquete,   ActivityNode, ActivityPartition, Behavior y InstanceSpecification.

... tan perfecto, eso es exactamente lo que estaba buscando. Bueno, podría haber otras formas de vincular modelos directamente, pero tuve que encontrar algo en los documentos oficiales de OMG.

    
respondido por el kitty 21.04.2016 - 23:56

Lea otras preguntas en las etiquetas