de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Una guía práctica de UML con Visual Paradigm y VPasCode

UML (Lenguaje Unificado de Modelado) es una forma estandarizada de describir la estructura y el comportamiento de un sistema. Ayuda a los equipos a discutir requisitos, diseñar software y documentar decisiones. UML es un lenguaje de modelado, no un lenguaje de programación: los diagramas comunican un modelo, pero no garantizan automáticamente que la implementación coincida con él.

Esta guía utiliza un sistema de compras en línea como ejemplo continuo. Cubre los tipos principales de diagramas UML y un flujo de trabajo utilizando Visual Paradigm para el modelado visual y VPasCode para diagramas basados en texto.

1. Comience con la pregunta que su diagrama debe responder

Antes de dibujar, decida qué necesita entender el lector:

  • ¿Qué pueden hacer los usuarios? Utilice un diagrama de casos de uso.

  • ¿Qué sucede durante un escenario? Utilice un diagrama de secuencia o de actividad.

  • ¿Qué conceptos y relaciones conforman el dominio? Utilice un diagrama de clases.

  • ¿Cómo se divide el software en partes desplegables o reemplazables? Utilice diagramas de componentes y de despliegue.

  • ¿Cómo cambia un objeto a lo largo del tiempo? Utilice un diagrama de máquina de estados.

Un diagrama que intenta responder todas las preguntas a la vez suele volverse difícil de leer. Prefiera varios diagramas enfocados en lugar de una sola visión general abarrotada.

2. Familias de diagramas UML

UML 2.x incluye 14 tipos de diagramas estándar, comúnmente agrupados en diagramas estructurales y comportamentales. Los diagramas de interacción son un subconjunto de los diagramas comportamentales.

Visión general de los 14 tipos de diagramas UML

Familia Diagrama Mejor utilizado para mostrar
Estructural Clase Clases, atributos, operaciones y relaciones
Estructural Objeto Una instantánea de instancias específicas y enlaces
Estructural Componente Componentes de software y sus dependencias o interfaces
Estructural Estructura compuesta Partes internas, puertos y conectores dentro de un clasificador
Estructural Paquete Cómo se agrupan los elementos del modelo y dependen unos de otros
Estructural Despliegue Artefactos de software mapeados a hardware o entornos de ejecución
Estructural Perfil Extensiones de UML, estereotipos y valores etiquetados
Comportamental Caso de uso Actores, objetivos y alcance del sistema
Comportamental Actividad Flujo de trabajo, decisiones, trabajo paralelo y carriles de responsabilidad
Comportamental Máquina de estados Estados y transiciones activadas por eventos de un objeto
Interacción Secuencia Mensajes intercambiados a lo largo del tiempo entre participantes
Interacción Comunicación Participantes y sus enlaces de mensajes, enfatizando la estructura de red
Interacción Temporización Cambios de estado o de valor a lo largo de una escala temporal
Interacción Vista general de la interacción Un flujo de alto nivel que conecta escenarios de interacción

Rara vez necesitas las 14 para un proyecto. Para muchos diseños de aplicaciones, un diagrama de casos de uso, de clases, de secuencia, de actividad, de componentes y de despliegue constituyen un conjunto inicial sólido.

3. Los diagramas más útiles, con un ejemplo de comercio electrónico

Diagrama de casos de uso: objetivos y límite del sistema

Un diagrama de casos de uso describe los objetivos del usuario, no los diseños de pantalla ni el código interno. Para una tienda en línea, los actores podrían incluir Cliente, Proveedor de pagos, y Servicio de almacén. Los casos de uso podrían incluir Navegar por los productos, Realizar un pedido, Pagar el pedido, y Rastrear el envío.

Usar <<incluir>>cuando un caso de uso siempre invoca otro comportamiento requerido. Usar <<extender>>para comportamientos opcionales o condicionales que se añaden a un caso de uso base. Mantén el límite del sistema claro para que los lectores puedan distinguir el sistema de los actores externos.

Diagrama de actividad: flujo de trabajo y decisiones

Los diagramas de actividad son útiles para procesos con ramificaciones o trabajo en paralelo. Un flujo de pago podría ser:

  1. Validar el carrito y la dirección.

  2. Calcular el envío y el impuesto.

  3. Crear un pedido pendiente.

  4. Solicitar autorización de pago.

  5. Si el pago tiene éxito, confirmar el pedido y notificar el cumplimiento.

  6. Si el pago falla, mostrar el error y dejar el pedido sin confirmar.

Utilice nodos de decisión y fusión para ramificaciones, nodos de bifurcación y unión para trabajo en paralelo, y carriles de navegación cuando la responsabilidad cambie entre un cliente, la tienda y un proveedor externo.

Diagrama de secuencia: un escenario a lo largo del tiempo

Los diagramas de secuencia muestran los participantes y los mensajes que intercambian. Son especialmente útiles para aclarar los límites del servicio, el orden de las llamadas y los casos de error. Agregue rutas alternativas para resultados como el rechazo del pago o la falta de inventario.

@startuml
actor Cliente
participant "Tienda en línea" as UI
participant "Servicio de Pedidos" as Pedidos
participant "Servicio de Inventario" as Inventario
participant "Proveedor de Pagos" as Pago

Cliente -> UI: enviar pago
UI -> Pedidos: crearPedido(carrito, direccion)
Pedidos -> Inventario: reservar(items)

alt items available
    Inventario --> Pedidos: reserva confirmada
    Pedidos -> Pago: autorizar(total)
    alt pago aprobado
        Pago --> Pedidos: aprobado
        Pedidos --> UI: pedido confirmado
        UI --> Cliente: mostrar confirmación
    else pago rechazado
        Pago --> Pedidos: rechazado
        Pedidos -> Inventario: liberar reserva
        Pedidos --> UI: pago fallido
        UI --> Cliente: mostrar error de pago
    end
else items unavailable
    Inventario --> Pedidos: reserva fallida
    Pedidos --> UI: artículo no disponible
    UI --> Cliente: mostrar error de disponibilidad
end
@enduml

Este ejemplo utiliza la sintaxis de PlantUML. Es un boceto de comportamiento, no una especificación de cada tiempo de espera, reintento o regla de seguridad. Agregue esos detalles cuando sean relevantes para el diseño.

Diagrama de clases: estructura del dominio

Los diagramas de clases describen los tipos y sus relaciones. Un modelo de pedido pequeño podría contener:

  • Cliente

  • Pedido

  • Línea de pedido

  • Producto

  • Pago

Muestre los atributos y operaciones cuando ayuden a explicar las responsabilidades. Utilice multiplicidades para hacer explícitas las reglas de cantidad: por ejemplo, un Pedido contiene una o más Línea de pedido objetos, mientras que cada Línea de pedido se refiere a un producto.

Tipos de relación comunes:

  • Asociación: un vínculo estructural general.

  • Herencia/generalización: una clase es un tipo especializado de otra.

  • Agregación: una relación todo-parte donde las partes pueden existir de forma independiente; úsela con moderación.

  • Composición: una relación todo-parte fuerte donde el ciclo de vida de una parte está vinculado al todo.

  • Dependencia: un elemento utiliza o depende de otro.

Para un modelo de comercio, un Línea de pedido suele modelarse como perteneciente a un pedido, mientras que un producto existe de forma independiente de cualquier pedido concreto. Elija la relación que refleje el ciclo de vida y las reglas reales del dominio.

Diagrama de máquina de estados: reglas del ciclo de vida

Utilice una máquina de estados cuando las transiciones permitidas de un objeto sean relevantes. Un pedido puede pasar por:

Pendiente → Esperando pago → Confirmado → Cumplido

También podría transicionar a Cancelado o Pago fallido. Etiquete las transiciones con eventos desencadenantes o condiciones, como pagoAprobado o [stockAvailable]. Este diagrama puede exponer transiciones inválidas, por ejemplo, si un pedido cumplido puede ser cancelado.

Diagramas de componentes y de despliegue: software y tiempo de ejecución

Un diagrama de componentesmuestra las responsabilidades y dependencias del software, como una tienda en línea, un servicio de pedidos, un servicio de inventario y un adaptador de pagos. Es útil para discutir la modularidad y los límites de integración.

Un diagrama de desplieguemuestra dónde se ejecuta el software: por ejemplo, navegador, tiempo de ejecución de la aplicación, base de datos y proveedor de pagos externo. Úsalo para discutir la topología en tiempo de ejecución, no la configuración detallada de la red.

4. Modelar bien: convenciones prácticas

  • Asigne a cada diagrama un título claro y un único propósito.

  • Utilice el lenguaje del dominio de manera consistente; evite inventar nombres diferentes para el mismo concepto.

  • Mantenga los diagramas lo suficientemente pequeños para leerlos en su tamaño previsto.

  • Incluya solo los detalles que respondan a la pregunta del diagrama.

  • Etiquete las asociaciones importantes y los flujos de mensajes.

  • Agregue multiplicidades a las asociaciones cuando las reglas de cantidad sean relevantes.

  • Utilice notas para supuestos, restricciones y decisiones pendientes.

  • Mantenga la coherencia en los nombres y responsabilidades a través de los diagramas.

  • Distinga lo que está confirmado de lo que se propone o aún es desconocido.

  • Actualice los diagramas cuando haya cambios importantes en las decisiones de diseño o en el comportamiento.

Trate UML como una ayuda para la comunicación. Un diagrama puede ser sintácticamente válido y aún así ser engañoso si sus etiquetas, supuestos o alcance no están claros.

5. Uso de Visual Paradigm

Visual Paradigm es adecuado para el modelado gráfico: cree y organice elementos UML en un lienzo, organice diagramas relacionados y refina un modelo mediante edición visual. Sus materiales de producto describen el modelado UML entre sus capacidades de modelado visual.

Un flujo de trabajo práctico:

De texto a arquitectura: acelerando el modelado UML con la IA generativa de Visual Paradigm - Blog de Visual Paradigm

  1. Cree un proyectopara el sistema o área delimitada que está modelando.

  2. Comience con los requisitos y el alcance.Identifique usuarios, sistemas externos y objetivos clave.

  3. Cree un diagrama de casos de usopara establecer el límite y las interacciones principales.

  4. Agregar diagramas de comportamiento para los escenarios que conllevan el mayor riesgo o ambigüedad.

  5. Construir el modelo de clases alrededor de los conceptos del dominio y sus reglas.

  6. Agregar vistas de componentes y despliegue si la arquitectura o la ubicación en tiempo de ejecución requieren discusión.

  7. Revisar con las partes interesadas. Verificar nombres, alcance, flujos alternativos y cardinalidades.

  8. Exportar o compartir diagramas en formatos adecuados para revisiones y documentación.

  9. Mantener el modelo actualizado. Asignar un responsable y actualizar los diagramas cuando cambien las decisiones.

Los nombres exactos de los menús y las funciones disponibles pueden variar según la edición y la versión de Visual Paradigm, por lo que utilice la documentación de la interfaz actual del producto para los pasos específicos de cada edición.

6. Uso de VPasCode

VPasCode es un editor de diagramas como código basado en navegador de Visual Paradigm. Su información de producto describe el soporte para formatos de diagramas basados en texto, incluidos PlantUML y Mermaid, con renderizado en vivo; también describe exportaciones como SVG y PNG.

Generador gratuito de diagramas de clases Java: de código Java a UML en VPasCode

Un flujo de trabajo sencillo:

  1. Abra VPasCode y elija el lenguaje de diagramas, como PlantUML.

  2. Escriba o pegue un guion de diagrama.

  3. Verifique la vista previa renderizada mientras edita.

  4. Refine nombres, relaciones, diseño y rutas de error.

  5. Exporte una imagen para un documento o una revisión.

  6. Mantenga el guion fuente con el proyecto si desea un registro basado en texto que pueda ser revisado y versionado.

VPasCode es adecuado para borradores rápidos, diagramas de documentación y equipos que prefieren la edición basada en texto. El modelo gráfico de Visual Paradigm es útil cuando desea manipular elementos del modelo visualmente y organizar diagramos como parte de un proyecto de modelado más amplio. Los dos enfoques pueden complementarse, pero no asuma que cada diagrama o modelo se transfiere entre ellos con una fidelidad de ida y vuelta perfecta; valide cualquier conversión en su flujo de trabajo.

7. Un flujo de trabajo útil de extremo a extremo

Para una función de pago, una secuencia de modelado ligera podría ser:

  1. Caso de uso: definir quién puede realizar un pedido y qué sistemas externos participan.

  2. Actividad: mapear el flujo de pago y sus decisiones.

  3. Secuencia: detalla las interacciones para los caminos de éxito, fallo de pago y stock no disponible.

  4. Clase: define los conceptos de pedido, línea de pedido, producto y pago, así como sus reglas.

  5. Máquina de estados: especifica el ciclo de vida válido del pedido.

  6. Componente: muestra qué servicios asumen esas responsabilidades.

  7. Despliegue: documenta la ubicación en tiempo de ejecución si las decisiones de infraestructura son relevantes.

Utiliza Visual Paradigm cuando el equipo se beneficia del modelado basado en lienzo y de un modelo visual gestionado. Utiliza VPasCode cuando el equipo desea escribir y renderizar texto de diagramas rápidamente. Un enfoque común es redactar un escenario en VPasCode, revisarlo y refinarlo con el equipo, y luego mantener los diagramas en el formato que mejor se ajuste a la documentación del proyecto y al proceso de cambios.

8. Errores comunes

  • Intentar diagramar todo el sistema de una vez: dividir por preocupación o escenario.

  • Confundir actividades con secuencias: las actividades enfatizan el flujo de trabajo; las secuencias enfatizan los mensajes a lo largo del tiempo.

  • Sobrecargar diagramas de clases: enfócate en los conceptos relevantes del dominio, no en cada detalle de implementación.

  • Usar incluir y extender como decoración: expresan relaciones específicas entre casos de uso.

  • Dejar fuera los caminos alternativos: los fallos y cancelaciones a menudo revelan requisitos importantes.

  • Tratar la imagen como la especificación: documenta explícitamente las reglas de negocio importantes, suposiciones y restricciones.

  • Permitir que los diagramas se vuelvan obsoletos: un diagrama desactualizado puede ser peor que no tener ningún diagrama, porque los lectores pueden confiar en él.

Un conjunto sólido de UML no es el más grande. Es el conjunto más pequeño de diagramas que permite a los lectores previstos comprender el sistema, discutir decisiones y detectar lagunas antes de que se vuelvan costosas.