Diagramas de secuencia de UML: Instrucciones
En Visual Studio Ultimate, 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. Si desea una demostración en vídeo, vea Sketching Interactions by using Sequence Diagrams.
Para crear un diagrama de secuencia de UML, en el menú Arquitectura, haga clic en Nuevo diagrama.
Existen dos tipos de diagramas de secuencia:
Los diagramas de secuencia basados en código, que se pueden generar desde el código de programa .NET. Para obtener más información, vea Como: Explorar el código con diagramas de secuencia.
Los diagramas de secuencia de UML, que forman parte de los proyectos de modelado de UML.
En este tema se analizan los diagramas de secuencia de UML.
Para obtener información detallada sobre los elementos que pueden verse en un diagrama de secuencia, vea Diagramas de secuencia UML: Referencia.
En este tema
Usar diagramas de secuencia de UML
Pasos básicos para dibujar diagramas de secuencia
Crear y usar diagramas de secuencia sencillos
Clases y líneas de vida
Crear secuencias de interacciones reutilizables
Contraer grupos de líneas de vida
Describir estructuras de control con fragmentos
Generar diagramas de secuencia desde el código
Usar diagramas de secuencia de UML
Los diagramas de secuencia pueden utilizarse para una gran variedad de propósitos y con diferentes niveles de detalle sobre el programa. Las ocasiones más frecuentes en las que se crea un diagrama de secuencia son las siguientes:
Si tiene un diagrama de casos de uso en el que se resumen los usuarios del sistema y sus objetivos, puede dibujar diagramas de secuencia para describir el modo en que los principales componentes del sistema interactúan para lograr el objetivo de cada caso de uso. Para obtener más información, vea Diagramas de casos de uso de UML: Instrucciones.
Si ha identificado los mensajes que llegan a una interfaz de un componente, puede crear diagramas de secuencia en los que se describa cómo interactúan los elementos internos del componente para lograr el resultado necesario para cada mensaje entrante. Para obtener más información, vea Diagramas de componentes de UML: Instrucciones.
El uso de diagramas de secuencia tiene algunas ventajas:
Puede verse con facilidad cómo se distribuyen las tareas entre los componentes.
Pueden identificarse los modelos de interacción que dificultan la actualización de software.
Relación con otros diagramas
Existen varios mecanismos que permiten utilizar los diagramas de secuencia de UML junto con otros diagramas.
Líneas de vida y tipos
Las líneas de vida que se dibujan en un diagrama de secuencia pueden representar instancias típicas de los componentes o clases del sistema. Puede crear líneas de vida a partir de tipos y tipos a partir de líneas de vida y mostrar los tipos en diagramas de clases de UML y diagramas de componentes de UML. Para obtener más información, vea Clases y líneas de vida.
Tipos de parámetros
También puede describir en un diagrama de clases de UML los tipos de parámetros y valores devueltos utilizados en los mensajes enviados entre las líneas de vida.
Detalles de casos de uso
Un caso de uso representa el objetivo de un usuario, junto con una secuencia de pasos para lograr dicho objetivo. La secuencia de pasos se puede describir de varias maneras. Una opción es crear un diagrama de secuencia en el que se muestren las interacciones entre los usuarios y los principales componentes del sistema. Para obtener más información, vea Diagramas de casos de uso de UML: Instrucciones.
Código fuente
Puede generar un diagrama de secuencia desde el código fuente. Puede revisar el diagrama para probar diferentes opciones de diseño. Si lo desea, también puede copiar el contenido en un diagrama de secuencia de un proyecto de modelado. Para obtener más información, vea Generar diagramas de secuencia desde el código.
Pasos básicos para dibujar diagramas de secuencia
Para obtener una lista completa de los elementos de los diagramas de secuencia, vea Diagramas de secuencia UML: Referencia.
Nota
En Cómo: Modificar un modelo UML y los diagramas, se describen en detalle los pasos para crear diagramas de modelado.
Para crear un diagrama de secuencia
En el menú Arquitectura, haga clic en Nuevo diagrama.
En Plantillas, haga clic en Diagrama de secuencia UML.
Especifique un nombre para el diagrama.
En Agregar a proyecto de modelado, seleccione un proyecto de modelado existente de la solución o Crear un 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 requeridos.
Para dibujar un diagrama de secuencia
Arrastre las líneas de vida (1) del cuadro de herramientas al diagrama para representar instancias de clases, componentes, actores o dispositivos.
Nota
También puede crear una línea de vida arrastrando una clase, interfaz, actor o componente existente del Explorador de modelos UML al diagrama. De este modo, creará una línea de vida que representará una instancia del tipo elegido.
Cree mensajes para mostrar de qué modo colaboran las líneas de vida con el fin de conseguir un objetivo concreto.
Para crear un mensaje (3, 4, 6, 7), haga clic en una herramienta de mensajes. A continuación, haga clic en el punto de la línea de vida emisora en el que desee que comience el mensaje y después haga clic en la línea de vida receptora.
En la línea de vida receptora aparecerá una incidencia de ejecución (5). La incidencia de ejecución representa un período de tiempo durante el que la instancia está ejecutando un método. Puede crear otros mensajes que se inicien a partir de una incidencia de ejecución.
Para mostrar un mensaje que procede de un origen de eventos desconocido (9) o que se va a difundir a destinatarios desconocidos (10), dibuje un mensaje asincrónico que tenga como origen o destino un espacio en blanco del diagrama. Estos mensajes se denominan mensajes encontrados (9) y mensajes perdidos (10).
Nota
Si desea mover un grupo de líneas de vida que tienen mensajes perdidos o encontrados, siga estos pasos para seleccionar las líneas de vida antes de moverlas: dibuje un rectángulo en torno a estas 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 a continuación, 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.
Dibuje diagramas de secuencia para cada mensaje principal dirigido al mismo componente o sistema.
Para cambiar el orden 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 utilice las teclas FLECHA ARRIBA y FLECHA ABAJO para ajustar las posiciones del mensaje. Utilice 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
Haga clic con el botón secundario del mouse en un mensaje (3, 4) y, a continuación, haga clic en Copiar.
Haga clic con el botón secundario del mouse en la incidencia de ejecución (5) o en una línea de vida (1) desde la que desee enviar el nuevo mensaje y, a continuación, haga clic en Pegar. El nuevo remitente podrá estar en otro diagrama, si así lo desea.
Al final de la incidencia de ejecución o de la línea de vida, se agrega una copia del mensaje y de todos sus mensajes secundarios.
Nota
El mensaje pegado siempre aparece al final de la incidencia de ejecución o línea de vida. Después de pegarlo, puede arrastrarlo hasta una posición anterior.
Para mejorar el diseño de un diagrama de secuencia
Haga clic con el botón secundario del mouse en un espacio en blanco del diagrama y, a continuación, haga clic en Reorganizar diseño.
Para deshacer la operación, haga clic en Edición y, a continuación, en Deshacer.
Para cambiar el paquete que contiene la interacción
En el Explorador de modelos UML, busque la interacción que se muestra en el diagrama de secuencia.
Nota
La interacción no aparecerá en el Explorador de modelos UML hasta que agregue la primera línea de vida al diagrama de secuencia.
Arrastre la interacción hasta el paquete.
-O bien-
Haga clic con el botón secundario del mouse en la interacción y, a continuación, haga clic en Cortar. Haga clic con el botón secundario del mouse en el paquete y, a continuación, haga clic en Pegar.
Crear y usar diagramas de secuencia sencillos
El diseño más simple y más utilizado de un diagrama de secuencia es el que contiene exclusivamente líneas de vida y mensajes. Un diagrama de este tipo permite representar con claridad una secuencia de interacciones típica entre los objetos del diseño o entre el sistema y los usuarios. Normalmente, suele ser suficiente para ayudarle a analizar y difundir el diseño.
Conviene tener algunas cosas en cuenta al dibujar un diagrama de secuencia sencillo.
Tipos de mensajes
Hay tres herramientas que puede utilizar para crear mensajes.
Utilice la herramienta Synchronous para describir una interacción en la que el remitente espera a que el receptor devuelva una respuesta (3).
Al final de la incidencia de ejecución, aparecerá una flecha <<devolver>>. Esta flecha indica la devolución del control al remitente.
Utilice la herramienta Asynchronous para describir una interacción en la que el remitente puede continuar inmediatamente sin necesidad de esperar la respuesta del receptor (4).
Utilice la herramienta Create para describir una interacción en la que el remitente crea al receptor (8).
El primer mensaje que recibe el receptor debería ser un mensaje de creación.
Comentar las interacciones
Para describir con más detalle la secuencia, puede agregar un comentario en cualquier parte del diagrama.
Con los vínculos de comentarios, puede vincular un comentario a líneas de vida, ejecuciones, usos de interacción y fragmentos.
Precaución |
---|
Si desea adjuntar un comentario a un punto determinado de la secuencia, vincúlelo a una incidencia de ejecución, uso de interacción o fragmento. No lo vincule a una línea de vida porque, en ese caso, no se mantendrá adjunto en el punto correcto de la secuencia. |
Utilice un comentario para:
Dar cuenta de lo que se ha conseguido en los puntos clave de la secuencia. De este modo, ayudará a los lectores a ver los objetivos de las interacciones.
Describir el objetivo global de toda la secuencia. Adjunte el comentario a la incidencia de ejecución inicial o déjelo sin adjuntar. Por ejemplo, "El cliente ha elegido elementos del menú y se le ha proporcionado 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 opciones de menú del cliente".
Dar cuenta de las excepciones o alternativas que podrían producirse como disyuntiva a la secuencia normal mostrada. Por ejemplo "El cliente puede optar por omitir el resto de esta secuencia".
- Considere la posibilidad de utilizar fragmentos como una alternativa más formal a este tipo de nota. Vea Describir estructuras de control con fragmentos
Decidir el ámbito del diagrama
Es importante tener claro lo que se desea mostrar en el diagrama.
Evento de iniciación
Cada diagrama debe mostrar la secuencia de interacciones que se obtiene como resultado de un evento de iniciación. Podría tratarse, por ejemplo:
De un usuario que inicia un caso de uso, por ejemplo, al abrir la página web para comprar un menú.
De un mensaje que se transmite de un componente del sistema a otro, por ejemplo, para consultar la disponibilidad de elementos que el cliente desea comprar.
De un evento que se activa por un cambio de estado, por ejemplo, cuando las existencias de un elemento descienden por debajo del umbral establecido.
Nivel de detalle
En los diagramas de secuencia, el nivel de detalle puede variar. 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 del código del programa, que ya existen o que se están desarrollando.
Los componentes o sus subcomponentes, sin incluir por lo general los elementos de fachada, los servidores proxy y otros mecanismos de conexión.
Los actores del sistema y los actores externos
Los mensajes pueden representar uno de estos niveles de detalle:
Los mensajes de software del código de programa, en una API o interfaz web.
Las transacciones o transacciones secundarias, por ejemplo, entre los usuarios y el sistema o entre el código y la base de datos.
Los casos de uso: interacciones principales entre los usuarios y el sistema.
Si está analizando el código existente o describiendo un nuevo diseño, normalmente le será útil dibujar y explorar vistas con menos detalles.
Describir variaciones
En el diagrama se muestra una sola secuencia de eventos típica. Si desea mostrar las alternativas posibles, como los escenarios de error, puede utilizar cualquiera de estas opciones:
Dibujar diagramas de secuencia diferentes para describir dichos escenarios
Usar descripciones de estructuras de control con fragmentos para mostrar bucles, alternativas, etc.
Acceso al diseño
Puede utilizar el diagrama para evaluar la distribución de las tareas entre sus objetos o componentes. Considere la posibilidad de utilizar la refactorización si observa estos modelos:
Parece que una línea de vida hace todo, ya que se encarga de hacer las llamadas a los demás elementos, mientras que las demás líneas de vida únicamente se encargan de responder de forma pasiva.
Hay muchos mensajes que cruzan las líneas de vida. Cada línea de vida solamente debe enviar mensajes a unos pocos elementos vecinos, pero no debe comunicarse con los vecinos de dichos elementos. Normalmente debería ser posible organizar las líneas de vida para que hubiera muy pocos lugares en los que se cruzan con mensajes, y, allí donde se produjeran cruces, la línea de vida de destino no debería intercambiar mensajes que tuvieran líneas de vida con cruces.
Algunas líneas de vida parecen administrar varios tipos de tareas. Debería ser fácil encontrar una frase sucinta que describa las responsabilidades de cada línea de vida y que resuma el trabajo que realiza en respuesta a cada mensaje que recibe.
Clases y líneas de vida
En las líneas de vida de los diagramas de secuencia se muestran instancias de clases o interfaces de componentes. Existen dos mecanismos para asignar un nombre a una línea de vida:
Para este propósito |
Use este formato |
---|---|
Instancia anónima de un tipo. Utilícela si tiene únicamente una línea de vida de cada tipo. |
typeName |
Instancia con nombre de un tipo. Utilícela si desea mostrar una secuencia que implique varias instancias del mismo tipo. |
objectName:typeName |
Crear líneas de vida a partir de tipos
Puede crear nuevas líneas de vida a partir de las clases que ya ha definido, por ejemplo, en un diagrama de clases.
Nota
Asegúrese de que ya cuenta con 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, componente o interfaz del Explorador de modelos UML a un diagrama de secuencia.
-O bien-
Haga clic con el botón secundario del mouse en la clase, componente o interfaz de su respectivo diagrama y, a continuación, haga clic en Crear línea de vida.
En el cuadro de diálogo Crear línea de vida, seleccione un diagrama de secuencia y, a continuación, haga clic en Aceptar.
Aparecerá una nueva línea de vida de la instancia con nombre cuyo tipo será el tipo que arrastró.
Nota
Puede repetir esta acción tantas veces como desee. De este modo, creará líneas de vida con nombres de instancias diferentes.
Para cambiar el tipo de una línea de vida
Haga clic con el botón secundario del mouse en una línea de vida y, a continuación, haga clic en Propiedades.
En la ventana Propiedades, establezca la propiedad Type. Puede seleccionar un tipo en el menú desplegable o especificar un nuevo nombre.
Crear clases a partir de líneas de vida
Una vez que ha creado uno o varios diagramas de secuencia, puede resumir las líneas de vida creando clases o interfaces a partir de ellas.
Para crear una clase o interfaz a partir de una línea de vida
Haga clic con el botón secundario del mouse en la línea de vida y, a continuación, haga clic en Crear clase o Crear interfaz.
En el Explorador de modelos UML aparecerá una nueva clase o interfaz.
En la clase o interfaz, cree las operaciones de los mensajes que la línea de vida recibe:
Seleccione todos los mensajes que desee incluir.
Haga clic con el botón secundario del mouse 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 Operation del mensaje.
Si su mensaje contiene parámetros con el formato "(parámetro: tipo)", aparecerán en la lista de parámetros de la nueva operación.
Nota
Debe repetir este paso para agregar nuevos mensajes al diagrama de secuencia.
Para ver la nueva clase o interfaz en detalle, agréguela a un diagrama de clases o componentes.
Abra o cree un diagrama de clases o componentes.
Arrastre la nueva clase o interfaz del Explorador de modelos UML a un diagrama de clases.
La clase o interfaz aparece en el diagrama de clases.
-O bien-
Arrastre la nueva interfaz del Explorador de modelos UML a un componente o puerto de 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 utilizar un diagrama de clases UML para describir los tipos de parámetro.
Crear secuencias de interacciones reutilizables
Puede utilizar un diagrama independiente para describir una secuencia que contenga detalles que desee separar o que sea común a varios diagramas.
Puede crear un rectángulo de uso de interacción (12) en un diagrama que apunte a los detalles de otro diagrama.
Haga doble clic en un uso de interacción para abrir el diagrama de secuencia al que está vinculado.
Para crear una secuencia de interacciones reutilizable a partir de líneas de vida existentes
En el Cuadro de herramientas, haga clic en Uso de interacción.
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. Comience en la posición vertical en la que desea insertar el uso de interacción.
Aparecerá un uso de interacción que cruzará las líneas de vida seleccionadas del diagrama de secuencia.
Haga doble clic en el nombre del uso de interacción y asígnele un nuevo nombre que describa el efecto de la secuencia reutilizable en este diagrama.
-O bien-
Escriba el nombre como una llamada de función, con parámetros.
Vincule el uso de interacción a otro diagrama de secuencia. Haga clic con el botón secundario del mouse en el uso de interacción y, a continuación:
Haga clic en Crear nueva secuencia para crear un nuevo diagrama de secuencia.
-O bien-
Haga clic en Vincular a secuencia para vincularlo a un diagrama existente.
Visual Studio crea un vínculo entre el uso de interacción y la nueva secuencia de interacción.
Aparecerá un nuevo diagrama de secuencia en la solución. Este diagrama contendrá las líneas de vida que se utilizaron para crear el uso de interacción.
Nota
Únicamente albergará las líneas de vida que se utilizaron para crear el uso de interacción. El nuevo diagrama no incluirá las líneas de vida que se crearon después del uso de interacción, aunque actualmente estén cubiertas por el uso de interacción.
Para crear una secuencia reutilizable a partir de mensajes existentes
Haga clic con el botón secundario del mouse en el mensaje que desea mover y, a continuación, haga clic en Mover a diagrama.
Visual Studio:
Reemplace el mensaje seleccionado y sus mensajes secundarios por un uso de interacción.
Mueva los mensajes reemplazados a un nuevo diagrama de secuencia.
Cree un vínculo entre el uso de interacción y el nuevo diagrama de secuencia.
Para navegar a la secuencia a la que el uso de interacción hace referencia
Haga doble clic en el uso de interacción.
-O bien-
Haga clic con el botón secundario del mouse 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 utilizarlo como un marcador de posición de una parte de la secuencia cuyos detalles aún no ha desarrollado. Utilice el nombre del uso de interacción para indicar el resultado que desea obtener.
Contraer grupos de líneas de vida
Puede contraer un conjunto de líneas de vida de manera que el grupo aparezca como una sola línea de vida. De este modo, podrá visualizar un grupo de objetos como un único componente. Los mensajes y los usos de interacción entre las líneas de vida de un grupo contraído quedan ocultos. En cambio, se muestran los mensajes y las secuencias de interacciones que incluyen otras líneas de vida.
Para contraer un grupo de líneas de vida a la vez
Seleccione dos o más líneas de vida.
Haga clic con el botón secundario del mouse en una de ellas y, a continuación, haga clic en Contraer.
Las distintas líneas de vida se sustituyen por una única línea de vida.
Los mensajes y usos de interacción que solo implican a miembros del grupo quedan ocultos.
Para cambiar el nombre del grupo, haga clic en el nombre.
Nota
Cuando expanda el grupo, se perderá el nombre del grupo.
Para expandir un grupo contraído
Haga clic con el botón secundario del mouse en la línea de vida contraída y, a continuación, haga clic en Expandir.
Nota
El nombre del grupo se perderá, así como cualquier vínculo entre el grupo y los comentarios o elementos de trabajo.
Describir estructuras de control con fragmentos
Puede utilizar fragmentos combinados (13) para definir bucles, bifurcaciones y procesamientos simultáneos en un diagrama de secuencia. Si lo desea, también puede utilizar en su lugar un diagrama de actividades. El diagrama de actividades no resulta útil para mostrar mensajes entre actores, pero en algunos casos es más idóneo para mostrar bucles, bifurcaciones y procesos simultáneos.
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
Seleccione un mensaje o una secuencia de mensajes en la que todos se inicien en la misma línea de vida o incidencia de ejecución.
Nota
Seleccione las flechas de mensaje y no las incidencias de ejecución a las que apuntan los mensajes.
Haga clic con el botón secundario del mouse en uno de los mensajes, elija Delimitar con y, a continuación, haga clic en el tipo de fragmento correspondiente.
Aparecerá un nuevo fragmento. Este fragmento contendrá los mensajes que se seleccionaron.
Si el tipo de fragmento combinado permite varios fragmentos, aparecerá también un fragmento vacío.
Para establecer la protección de un fragmento, haga clic con el botón secundario del mouse en el borde del fragmento y, a continuación, haga clic en Propiedades. Establezca la propiedad Guard.
La protección se utiliza para definir la condición de una bifurcación o un bucle.
Para agregar un nuevo fragmento a un tipo que permite varios fragmentos, haga clic con el botón secundario del mouse en el límite de un fragmento y elija Agregar. Haga clic en Operando de interacción Before o en Operando de interacción After.
Para agregar nuevos mensajes a un fragmento, utilice las herramientas de mensajes o copiar y pegar.
Generar diagramas de secuencia desde el código
Puede generar un diagrama de secuencia a partir de una definición de un método en un archivo de código de Visual C# o Visual Basic.
Un diagrama de secuencia generado es muy similar a un diagrama de secuencia que se haya creado en un proyecto de modelado. Sin embargo, en un diagrama de secuencia generado, los elementos no aparecen en el Explorador de modelos UML.
Para generar un diagrama de secuencia desde el código
En Visual Studio, abra el archivo de código que contiene la definición del método.
Haga clic con el botón secundario del mouse en cualquier parte del interior de la definición del método y, a continuación, haga clic en Generar diagrama de secuencias.
Para obtener más información, vea Como: Explorar el código con diagramas de secuencia.
Nota
Después de generar el diagrama, los cambios que realice en el diagrama no aparecerán en el código y los cambios que efectúe en el código no aparecerán en el diagrama. Para mostrar estos cambios, debe generar un nuevo diagrama de secuencia. Puede generar un nuevo diagrama de secuencia desde el mismo método tantas veces como desee.
Puede navegar desde las líneas de vida y los mensajes a las definiciones del código de las clases y métodos que representan.
Para navegar desde los mensajes y las líneas de vida generadas al código
- Haga clic con el botón secundario del mouse en un mensaje o línea de vida generada y, a continuación, haga clic en Ir a definición.
Copiar secuencias generadas en un modelo UML
Puede copiar líneas de vida, mensajes y otras partes de una secuencia generada en un diagrama de secuencia de un proyecto de modelado.
Para realizar una copia de un diagrama de secuencia generado tomando como origen o destino un modelo UML
En un diagrama de secuencia, seleccione los elementos que desea copiar, como las líneas de vida y los mensajes. Si desea copiar todo lo que aparece en el diagrama, en el menú Edición, haga clic en Seleccionar todo.
En el menú Edición, haga clic en Copiar.
Cree o abra un diagrama de secuencia en un proyecto de modelado. Para obtener información acerca de esta operación, vea Pasos básicos para dibujar diagramas de secuencia.
En el menú Edición, haga clic en Pegar.
En el diagrama aparecen las copias de los elementos seleccionados.
Nota
Quizás sea necesario ajustar el color de los elementos pegados. Selecciónelos y establezca el color en la ventana Propiedades.
Vea también
Referencia
Diagramas de secuencia UML: Referencia
Conceptos
Cómo: Modificar un modelo UML y los diagramas
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