Diagramas de secuencia de UML: Instrucciones

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

En Visual Studio, puede dibujar un diagrama de secuencia para mostrar una interacción. Una interacción es una secuencia de mensajes entre instancias típicas de clases, componentes, subsistemas o actores.

Los diagramas de secuencia de UML forman parte de un modelo UML y solo existen dentro de los proyectos de modelado UML. Para crear un diagrama de secuencia UML, en el menú Arquitectura, haga clic en Nuevo diagrama de capas o UML. Obtenga más información sobre elementos de diagrama de secuencia UML o diagramas de modelado UML en general. Para ver una demostración en vídeo, consulte Esbozar interacciones mediante diagramas de secuencia (2010).

Para ver qué versiones de Visual Studio admiten esta característica, vea Compatibilidad de versiones con las herramientas de arquitectura y modelado.

Uso de diagramas de secuencia UML

Pasos básicos para dibujar diagramas de secuencia

Creación y uso de diagramas de secuencia sencillos

Clases y líneas de vida

Creación de secuencias de interacciones reutilizables

Contracción de grupos de líneas de vida

Descripción de estructuras de control con fragmentos

Puede usar diagramas de secuencia para una variedad de propósitos en distintos niveles de detalle del programa. Las ocasiones típicas para dibujar un diagrama de secuencia son las siguientes:

  • Si tiene un diagrama de casos de uso que resuma los usuarios del sistema y sus objetivos, puede dibujar diagramas de secuencia para describir cómo interactúan los componentes principales del sistema para cumplir el objetivo de cada caso de uso. Para obtener más información, consulte Diagramas de casos de uso de UML: Instrucciones.

  • Si ha identificado mensajes que llegan a una interfaz de un componente, puede dibujar diagramas de secuencia a fin de describir cómo interactúan los elementos internos del componente para lograr el resultado necesario para cada mensaje entrante. Para obtener más información, consulte Diagramas de componentes de UML: Instrucciones.

El uso de diagramas de secuencia tiene algunas ventajas:

  • Puede ver fácilmente cómo se distribuyen las tareas entre los componentes.

  • Puede identificar patrones de interacción que dificultan la actualización de software.

Puede usar diagramas de secuencia UML junto con otros diagramas de varias maneras.

Líneas de vida y tipos

Las líneas de vida que dibuja en un diagrama de secuencia pueden representar instancias típicas de los componentes o clases en el sistema. Puede crear líneas de vida a partir de los tipos y tipos a partir de las líneas de vida, así como mostrar los tipos en diagramas de clases UML y diagramas de componentes UML. Para obtener más información, consulte Clases y líneas de vida.

Tipos de parámetros

También puede describir en un diagrama de clases UML los tipos de parámetros y valores devueltos que se usaron en los mensajes enviados entre las líneas de vida.

Detalles del caso de uso

Un caso de uso representa el objetivo de un usuario, junto con una secuencia de pasos para lograr el objetivo. La secuencia de pasos se puede describir de varias maneras. Una opción es dibujar un diagrama de secuencia que muestra las interacciones entre los usuarios y los principales componentes del sistema. Para obtener más información, consulte Diagramas de casos de uso de UML: Instrucciones.

Para obtener una lista completa de los elementos de los diagramas de secuencia, vea Diagramas de secuencia UML: Referencia.

System_CAPS_ICON_note.jpg Nota

En Editar modelos y diagramas UML se describen los pasos detallados para crear los diagramas de modelado.

Para crear un nuevo diagrama de secuencia

  1. En el menú Arquitectura, haga clic en Nuevo UML o diagrama de capas.

  2. En Plantillas, haga clic en Diagrama de secuencia UML.

  3. Especifique un nombre para el diagrama.

  4. En Agregar a proyecto de modelado, seleccione un proyecto de modelado existente de la solución o Crear nuevo proyecto de modelado y, a continuación, haga clic en Aceptar.

    Aparece un nuevo diagrama de secuencia con el cuadro de herramientas Diagrama de secuencia. El cuadro de herramientas contiene los elementos y conectores necesarios.

Elementos de un diagrama de secuencia

Para dibujar un diagrama de secuencia

  1. Arrastre Líneas de vida (1) desde el cuadro de herramientas hasta el diagrama para representar instancias de clases, componentes, actores o dispositivos.

    System_CAPS_ICON_note.jpg Nota

    Para crear una línea de vida también puede arrastrar una clase, interfaz, actor o componente existente desde Explorador de modelos UML hasta el diagrama. Esto crea una línea de vida que representa una instancia del tipo elegido.

  2. Dibuje mensajes para mostrar cómo colaboran las líneas de vida para lograr un objetivo específico.

    Para crear un mensaje (3, 4, 6, 7), haga clic en una herramienta de mensajes. A continuación, haga clic en la línea de vida emisora en el punto donde desea que comience el mensaje y, a continuación, haga clic en la línea de vida receptora.

    Una ocurrencia de ejecución (5) aparece en la línea de vida receptora. La ocurrencia de ejecución representa un período de tiempo durante el cual la instancia está ejecutando un método. Puede crear otros mensajes que se inicien desde una ocurrencia de ejecución.

  3. Para mostrar un mensaje que procede de un origen de eventos desconocido (9) o que difunde a destinatarios desconocidos (10), dibuje un mensaje asincrónico desde o hacia el espacio en blanco del diagrama. Estos mensajes se denominan mensajes encontrados (9) y mensajes perdidos (10).

    System_CAPS_ICON_note.jpg Nota

    Para mover un grupo de líneas de vida que tenga mensajes perdidos o encontrados, siga estos pasos para seleccionar las líneas de vida antes de moverlas: dibuje un rectángulo alrededor de esas líneas de vida o mantenga presionada la tecla CTRL mientras hace clic en cada línea de vida. Si usa Seleccionar todo o CTRL+A para seleccionar todas las líneas de vida y moverlas, los mensajes perdidos o encontrados que estén adjuntos a estas líneas de vida no se moverán. En este caso, podrá mover estos mensajes por separado.

  4. Dibuje diagramas de secuencia para cada mensaje principal dirigido al mismo componente o sistema.

Para cambiar el orden de presentación de los mensajes

  • Arrastre un mensaje hacia arriba o hacia abajo en su línea de vida. Puede arrastrarlo sobre otros mensajes o dentro o fuera de un bloque de ejecución.

    o bien

  • Haga clic en el mensaje y use las teclas FLECHA ARRIBA y FLECHA ABAJO para ajustar la posición del mensaje. Use MAYÚS+FLECHA ARRIBA y MAYÚS+FLECHA ABAJO para cambiar el orden de los mensajes.

Para mover o copiar secuencias de mensajes en el diagrama de secuencia

  1. Haga clic con el botón secundario en un mensaje (3, 4) y, a continuación, haga clic en Copiar.

  2. Haga clic en la ocurrencia de ejecución (5) o una línea de vida (1) desde la que desea que se envíe el nuevo mensaje y, a continuación, haga clic en Pegar. El nuevo remitente puede estar en un diagrama diferente si lo desea.

    Una copia del mensaje y todos sus mensajes secundarios se agrega al final de la ocurrencia de ejecución o al final de la línea de vida.

    System_CAPS_ICON_note.jpg Nota

    El mensaje pegado siempre aparece al final de la ocurrencia de ejecución o línea de vida. Después de pegarlo, puede arrastrarlo hasta una posición anterior.

Para mostrar y editar el texto de la firma de un mensaje

  • La línea de vida de destino debe estar enlazada o asignada para que los tipos del texto de la firma estén visible. Para realizar esta tarea, realice uno de los siguientes pasos:

    • Haga clic con el botón secundario en la línea de vida y, a continuación, elija Crear clase.

      O bien

    • Seleccione la línea de vida, presione F4 y, a continuación, en la ventana Propiedades, establezca la propiedad Tipo en un tipo existente o especifique el nombre de un nuevo tipo. Haga clic con el botón secundario en la etiqueta del mensaje y, a continuación, elija Crear operación.

    El texto de la firma aparece debajo de la etiqueta del mensaje. Ahora puede editar el texto de la firma. Para obtener más información, consulte Clases y líneas de vida.

Para mejorar el diseño de un diagrama de secuencia

  • Haga clic con el botón secundario en una parte en blanco del diagrama y, a continuación, haga clic en Reorganizar el diseño.

  • Para deshacer la operación, haga clic en Editar, y, a continuación, haga clic en Deshacer.

Para cambiar el paquete que contiene la interacción

  1. En Explorador de modelos UML, busque la interacción que muestra el diagrama de secuencia.

    System_CAPS_ICON_note.jpg Nota

    La interacción no aparecerá en Explorador de modelos UML hasta que agregue la primera línea de vida en el diagrama de secuencia.

  2. Arrastre la interacción hasta el paquete.

    o bien

    Haga clic con el botón secundario en la interacción y, a continuación, haga clic en Cortar. Haga clic con el botón secundario en el paquete y, a continuación, haga clic en Pegar.

La forma más simple y más difundida de diagrama de secuencia contiene solo líneas de vida y mensajes. Un diagrama de este tipo permite mostrar claramente una secuencia típica de las interacciones entre los objetos del diseño o entre el sistema y sus usuarios. Esto suele ser suficiente para ayudarle a debatir y transmitir el diseño.

Estas son algunas consideraciones cuando dibuja un diagrama de secuencia sencillo.

Tipos de mensaje

Hay tres herramientas que puede usar para crear mensajes.

  • Use la herramienta Sincrónico para describir una interacción en la que el remitente espera a que el receptor devuelva una respuesta (3).

    Se mostrará una flecha <<devolver>> al final de la ocurrencia de ejecución. Indica la devolución del control al remitente.

  • Use la herramienta Asincrónico para describir una interacción en la que el remitente puede continuar inmediatamente sin esperar al receptor (4).

  • Use la herramienta Crear para describir una interacción en la que el remitente crea el receptor (8).

    Un mensaje de creación debe ser el primer mensaje que recibe el receptor.

Comentar las interacciones

Para describir con más detalle acerca de la secuencia, puede colocar un comentario en cualquier lugar del diagrama.

Mediante vínculos de comentarios, puede vincular un comentario a líneas de vida, ejecuciones, usos de interacción y fragmentos.

System_CAPS_ICON_caution.jpg Precaución

Cuando desee adjuntar un comentario a un punto determinado en la secuencia, vincúlelo a una ocurrencia de ejecución, uso de interacción o fragmento. No lo vincule a una línea de vida, porque en ese caso, no permanecerá adjunto en el punto correcto de la secuencia.

Use un comentario para:

  • Tener en cuenta lo que se ha logrado en puntos clave de la secuencia. Esto ayuda a los lectores a ver los objetivos de las interacciones.

  • Describir el objetivo global de toda la secuencia. Adjunte el comentario a la ocurrencia de ejecución inicial o déjelo sin adjuntar. Por ejemplo, "el cliente eligió elementos del menú y se le proporcionó un precio".

  • Describir las responsabilidades de cada línea de vida. Adjunte el comentario a la línea de vida. Por ejemplo, "el administrador de pedidos recopila las elecciones del menú del cliente".

  • Tener en cuenta las excepciones o alternativas que pueden realizarse como una alternativa a la secuencia típica mostrada. Por ejemplo, "el cliente puede optar por omitir el resto de esta secuencia".

Es importante tener claro lo que el diagrama está diseñado para mostrar.

Evento de iniciación

Cada diagrama debe mostrar la secuencia de interacciones que es el resultado de un evento de iniciación. Por ejemplo, podría ser:

  • Un usuario que inicia un caso de uso, por ejemplo, abrir la página web para comprar alimentos.

  • Un mensaje de un componente del sistema a otro, por ejemplo, para consultar la disponibilidad de los artículos que un cliente desea comprar.

  • Un evento desencadenado por un cambio de estado, por ejemplo, las existencias de un artículo que caen por debajo del umbral.

Nivel de detalle

Los diagramas de secuencia pueden mostrar diferentes niveles de detalle. Puede decidir el nivel de detalle en dos dimensiones diferentes casi con total independencia:

Las líneas de vida pueden representar uno de estos niveles de detalle:

  • Los objetos en el código de programa, que ya existe o que está desarrollando.

  • Los componentes o sus subcomponentes, que suelen omitir fachadas, servidores proxy y otros mecanismos de conexión.

  • El sistema y los actores externos

Los mensajes pueden representar uno de estos niveles de detalle:

  • Los mensajes de software en el código de programa, en una API o interfaz web.

  • Las transacciones o subtransacciones, por ejemplo, entre los usuarios y el sistema, o entre el código y la base de datos.

  • Casos de uso: interacciones principales entre los usuarios y el sistema.

Tanto si va a explorar el código existente como si va a describir un nuevo diseño, a menudo resulta útil dibujar y discutir las vistas menos detalladas.

El diagrama muestra una única secuencia típica de eventos. Si desea mostrar las alternativas posibles, como los escenarios de error, puede usar cualquiera de estas opciones:

Puede usar el diagrama para evaluar la distribución de las tareas entre sus objetos o componentes. Considere la refactorización si observa estos patrones:

  • Una línea de vida parece hacer todo, hacer llamadas a todo lo demás, mientras que las otras líneas de vida solo responden de forma pasiva.

  • Muchos mensajes cruzan las líneas de vida. Cada línea de vida debe enviar mensajes a unos pocos elementos vecinos y no debe comunicarse con los vecinos de sus vecinos. Normalmente debería ser posible organizar las líneas de vida, de modo que haya muy pocos lugares donde los mensajes cruzan las líneas de vida. Y cuando hay cruces, la línea de vida de destino tampoco debe intercambiar los mensajes que tienen las líneas de vida cruzadas.

  • Algunas líneas de vida pueden controlar más de un tipo de tarea. Debería ser fácil encontrar una frase sucinta que describa las responsabilidades de cada línea de vida y resuma el trabajo que realiza en respuesta a cada mensaje que recibe.

Las líneas de vida de los diagramas de secuencia muestran instancias de clases o interfaces de componentes. Puede designar una línea de vida de dos maneras:

Para este propósitoUsar este formato
Instancia anónima de un tipo.

Úselo si tiene solo una línea de vida de cada tipo.
typeName
Instancia con nombre de un tipo.

Úselo si desea mostrar una secuencia que implica más de una instancia del mismo tipo.
objectName:typeName

Crear líneas de vida a partir de tipos

Puede crear nuevas líneas de vida de las clases que ya definió, por ejemplo, en un diagrama de clases.

System_CAPS_ICON_note.jpg Nota

Asegúrese de que tiene un diagrama de secuencia existente antes de realizar esta tarea.

Para crear una línea de vida a partir de un tipo existente
  • Arrastre una clase, un componente o una interfaz desde el explorador de modelos UML hasta un diagrama de secuencia.

    o bien

    1. Haga clic con el botón secundario en la clase, el componente o la interfaz en su respectivo diagrama y, a continuación, haga clic en Crear línea de vida.

    2. En el cuadro de diálogo Crear línea de vida, seleccione un diagrama de secuencia y, a continuación, haga clic en Aceptar.

    Aparece una nueva línea de vida de la instancia con nombre cuyo tipo es el tipo que arrastró.

    System_CAPS_ICON_note.jpg Nota

    Puede repetir esta acción tantas veces como desee. Se crearán líneas de vida con nombres de instancia diferentes.

Para cambiar el tipo de una línea de vida
  1. Haga clic con el botón secundario en una línea de vida y, a continuación, haga clic en Propiedades.

  2. En la ventana Propiedades, establezca la propiedad Tipo. Puede seleccionar un tipo en el menú desplegable o escribir un nombre nuevo.

Creación de clases a partir de líneas de vida

Cuando haya creado uno o varios diagramas de secuencia, puede resumir las líneas de vida mediante la creación de clases o interfaces de estas.

Para crear una clase o interfaz desde una línea de vida
  1. Haga clic con el botón secundario en la línea de vida y, a continuación, haga clic en Crear clase o Crear interfaz.

    Aparece una nueva clase o interfaz en el Explorador de modelos UML.

  2. Cree operaciones en la clase o interfaz para cada mensaje que recibe la línea de vida:

    1. Seleccione todos los mensajes que desea incluir.

    2. Haga clic con el botón secundario en uno de los mensajes y, a continuación, haga clic en Crear método.

      La nueva clase o interfaz tiene operaciones para cada mensaje seleccionado.

      El nombre de la operación aparece debajo de cada flecha de mensaje y, en la propiedad Operación del mensaje.

      Si el mensaje contiene parámetros en el formulario "(parámetro: tipo)", aparecerán en la lista de parámetros de la operación de nueva.

      System_CAPS_ICON_note.jpg Nota

      Debe repetir este paso si agrega nuevos mensajes en el diagrama de secuencia.

  3. Para ver la nueva clase o interfaz en detalle, agréguela a un diagrama de componentes o de clases.

    1. Abra o cree un diagrama de componentes o de clases.

    2. Arrastre la nueva clase o interfaz desde el Explorador de modelos UML a un diagrama de clases.

      La clase o interfaz aparece en el diagrama de clases.

      o bien

    3. Arrastre la nueva interfaz desde el Explorador de modelos UML a un componente o un puerto en un diagrama de componentes.

      La interfaz aparece en el componente como un círculo.

Crear clases para los parámetros

Puede incluir parámetros en los mensajes de un diagrama de secuencia. Puede usar un diagrama de clases UML para describir los tipos de parámetros.

Puede usar un diagrama independiente para describir una secuencia que contiene los detalles que desea separar o que es común entre varios diagramas.

Puede crear un rectángulo de uso de interacción (12) en un diagrama que apunte a los detalles en otro diagrama.

Haga doble clic en un uso de interacción para abrir el diagrama de secuencia que está vinculado a este.

Para crear una secuencia de interacción reutilizable a partir de líneas de vida existentes

  1. En el Cuadro de herramientas, haga clic en Uso de interacción.

  2. En el diagrama de secuencia, mantenga presionado el botón del mouse mientras arrastra las líneas de vida que desea incluir en la secuencia reutilizable. Empiece en la posición vertical donde desee insertar el uso de interacción.

    Aparece un uso de interacción en las líneas de vida seleccionadas en el diagrama de secuencia.

  3. Haga doble clic en el nombre del uso de interacción y cámbielo para describir el efecto de la secuencia reutilizable de este diagrama.

    o bien

    Escriba el nombre como una llamada de función con parámetros.

  4. Vincule el uso de interacción a otro diagrama de secuencia Haga clic con el botón secundario en el uso de interacción y después realice cualquiera de las siguientes acciones:

    Haga clic en Crear nueva secuencia para crear un nuevo diagrama de secuencia

    o bien

    Haga clic en Vincular a secuencia para vincular un diagrama existente.

    Visual Studio crea un vínculo entre el uso de interacción y la nueva secuencia de interacción..

    Aparece un nuevo diagrama de secuencia en la solución que contiene las líneas de vida utilizadas para crear el uso de interacción.

    System_CAPS_ICON_note.jpg Nota

    Solo se incluirán las líneas de vida utilizadas para crear el uso de interacción. El nuevo diagrama no incluirá las líneas de vida creadas después del uso de interacción, aunque el uso de interacción las cubra ahora.

Para crear una secuencia reutilizable a partir de mensajes existentes

  • Haga clic con el botón secundario en el mensaje que desea mover y, a continuación, haga clic en Mover a diagrama.

    Visual Studio:

    • Reemplaza con un uso de interacción el mensaje seleccionado y sus mensajes secundarios.

    • Mueva los mensajes reemplazados a un nuevo diagrama de secuencia.

    • Crea un vínculo entre el uso de interacción y el nuevo diagrama de secuencia.

Para navegar a la secuencia a la que hace referencia un uso de interacción

  • Haga doble clic en el uso de interacción.

    o bien

    Haga clic con el botón secundario en el uso de interacción y, a continuación, haga clic en Ir a secuencia.

Crear un marcador de posición con un uso de interacción

Puede crear un uso de interacción sin vincularlo a otro diagrama. Puede usarlo como marcador de posición para una parte de la secuencia cuyos detalles aún se tienen que averiguar. Use el nombre del uso de interacción para indicar el resultado que desee.

Puede contraer un conjunto de líneas de vida juntas, de modo que el grupo aparezca como una sola línea de vida. Esto le ayudará a visualizar un grupo de objetos como un solo componente. Se ocultan los mensajes y usos de interacción entre las líneas de vida de un grupo contraído. Se muestran los mensajes y las secuencias de interacción que incluyen otras líneas de vida.

Para contraer un grupo de líneas de vida juntos

  1. Seleccione dos o más líneas de vida.

  2. Haga clic con el botón secundario en una de ellas y, a continuación, haga clic en Contraer.

    Las líneas de vida independientes se reemplazan por una única línea de vida.

    Se ocultan los mensajes y usos de interacción que solo implican a miembros del grupo.

  3. Para cambiar el nombre del grupo, haga clic en el nombre.

    System_CAPS_ICON_note.jpg Nota

    Se perderá el nombre del grupo cuando expanda el grupo.

Para expandir un grupo contraído

  • Haga clic con el botón secundario en la línea de vida contraída y, a continuación, haga clic en Expandir.

    System_CAPS_ICON_note.jpg Nota

    Se perderá el nombre del grupo, junto con todos los vínculos del grupo a los comentarios o elementos de trabajo.

Puede usar fragmentos combinados (13) para definir bucles, bifurcaciones y el procesamiento simultáneo en un diagrama de secuencia. Como alternativa, considere la posibilidad de usar en su lugar un diagrama de actividad. El diagrama de actividad no es tan útil al mostrar mensajes entre actores, pero en algunos casos es mejor al mostrar bucles, bifurcaciones y simultaneidad.

Para obtener una lista completa de los tipos de fragmentos, vea Describir el flujo de control con fragmentos de diagramas de secuencia de UML.

Para crear un fragmento combinado

  1. Seleccione un mensaje o una secuencia de mensajes que comiencen en la misma línea de vida u ocurrencia de ejecución.

    System_CAPS_ICON_note.jpg Nota

    Seleccione las flechas del mensaje, no las ocurrencias de ejecución a las que apuntan los mensajes.

  2. Haga clic con el botón secundario en uno de los mensajes, seleccione Rodear con y, a continuación, haga clic en el tipo de fragmento que necesite.

    Aparecerá un nuevo fragmento que contiene los mensajes seleccionados.

    Si el tipo de fragmento combinado permite varios fragmentos, también aparecerá un fragmento vacío.

  3. Para establecer la restricción de un fragmento, haga clic con el botón secundario en el borde del fragmento y, a continuación, haga clic en Propiedades. Establezca la propiedad Restricción.

    La restricción se usa para definir la condición de una bifurcación o un bucle.

  4. Para agregar un nuevo fragmento a un tipo que permita varios fragmentos, haga clic con el botón secundario en el límite de un fragmento y seleccione Agregar. Haga clic en Operando de interacción Before o en Operando de interacción After.

  5. Para agregar nuevos mensajes a un fragmento, use las herramientas de mensajes o copiar y pegar.

Diagramas de secuencia UML: Referencia
Editar modelos y diagramas UML
Diagramas de casos de uso de UML: Referencia
Diagramas de clases de UML: Referencia
Diagramas de componentes de UML: Referencia
Diagramas de componentes de UML: Referencia
Vídeo: Esbozar interacciones mediante diagramas de secuencia

Mostrar: