Diagramas de perfil UML
Cómo extender el propio UML. Estereotipos, valores etiquetados y la flecha de extensión - el mecanismo detrás de cada «entity», «service» y «microservice» que hayas visto en un diagrama.
6 min de lecturaUML 2.5.130 de 35
La respuesta corta
- Cada comilla angular que hayas visto en un diagrama - entity, service, microservice - fue definida en algún sitio por un perfil.
- Los estereotipos añaden significado; los valores etiquetados añaden datos. Un estereotipo service que define una etiqueta SLA permite a un componente llevar un SLA concreto.
- La flecha de extensión es lo que ata un estereotipo a una metaclase. Extender Class significa que se aplica a clases y a nada más.
- Define un perfil cuando quieras que las herramientas actúen sobre una anotación. Una nota es invisible para toda herramienta; un estereotipo es parte del modelo.
01Qué muestra#
Un diagrama de perfil es UML describiendo una extensión de sí mismo. Es el único diagrama del lenguaje cuyo sujeto es el lenguaje, y por eso se siente distinto de los otros trece y por eso la mayoría de la gente no dibuja ninguno nunca.
Casi con seguridad has usado el resultado. Cada vez que has visto «entity», «service», «controller» o «microservice» en una caja de clase, estabas mirando un estereotipo aplicado. Un diagrama de perfil es donde se define ese estereotipo: cómo se llama, a qué puede engancharse y qué propiedades adicionales lleva.
02La notación#
| Elemento | Notación | Qué significa |
|---|---|---|
| Metaclase | caja, «metaclass» | Un elemento del propio UML: Class, Component, Association. Lo que estás extendiendo. |
| Estereotipo | caja, «stereotype» | El concepto nuevo que estás añadiendo al lenguaje. |
| Extensión | Línea sólida, triángulo rellenoen la metaclase. «Este estereotipo puede aplicarse a esa clase de elemento.» | |
| Valor etiquetado | un atributo en el estereotipo | Una propiedad extra que te da aplicar el estereotipo: slo: Duration. |
| Perfil | paquete, «profile» | El paquete que agrupa un conjunto de estereotipos para que puedan aplicarse juntos. |
| «apply» | De un paquete a un perfil: todo lo de aquí puede usar esos estereotipos. |
03Cuándo necesitas uno de verdad#
Sé honesto sobre el umbral. Usar un estereotipo no necesita perfil alguno: «entity» en una caja se comunica perfectamente con un lector humano sin que haya nada definido formalmente. Necesitas un diagrama de perfil cuando el estereotipo tiene que significar algo para una máquina.
Eso ocurre en tres situaciones. Cuando una herramienta debe validar el modelo: negarse a aplicar «microservice» a una asociación, o exigir que cada uno declare un SLO. Cuando se genera código o documentos a partir del modelo y el generador se ramifica según el estereotipo. Y cuando toda una industria se ha puesto de acuerdo en un vocabulario: SysML, MARTE, SoaML y similares son todos perfiles UML, y son la razón principal de que exista el mecanismo.
04Mantener útil un perfil#
Úsalo cuando
- Una herramienta tiene que validar o generar a partir del estereotipo, no solo mostrarlo
- Necesitas datos estructurados extra en los elementos del modelo: responsable, SLO, clasificación
- Estás adoptando un perfil estándar como SysML que ya definió otra persona
- El mismo puñado de conceptos de dominio se repite en muchos diagramas y equipos
Usa otra cosa cuando
- Uno o dos estereotipos usados solo como etiquetas visuales: escríbelos y ya está
- Los conceptos que añades ya existen en ArchiMate o en otro lenguaje
- Nadie va a mantener el perfil cuando se vaya quien lo escribió
- Estás extendiendo UML para no aprender la parte de UML que ya lo cubre
Un buen perfil es pequeño. De cinco a diez estereotipos, cada uno con un significado obvio y como mucho un par de valores etiquetados, aplicados de forma coherente, valen mucho más que cuarenta que nadie recuerda. Y cada valor etiquetado que añades es un campo que alguien tendrá que rellenar en cada elemento, para siempre; así que haz que cada uno se gane su sitio.
Una advertencia práctica sobre portabilidad: los perfiles son la parte de UML que peor viaja entre herramientas. Las definiciones de estereotipos sobreviven a un viaje de ida y vuelta por XMI bastante menos fielmente que los elementos de modelo corrientes, y los valores etiquetados llegan a menudo como cadenas sin tipo, o no llegan. Si tu modelo tiene que moverse entre herramientas, mantén el perfil tan pequeño como puedas soportar.
En una línea cada uno
- 01El único diagrama UML cuyo sujeto es el propio UML.
- 02Un estereotipo extiende una metaclase; la flecha es una línea sólida con triángulo RELLENO.
- 03El triángulo hueco de la generalización significa otra cosa y es el error habitual.
- 04Los valores etiquetados son propiedades extra que aporta aplicar el estereotipo.
- 05Solo necesitas un perfil formal cuando una herramienta debe actuar sobre el estereotipo.
- 06Mantén los perfiles pequeños: son además la parte de un modelo que se exporta menos fiablemente.
05Preguntas frecuentes#
¿Qué es un estereotipo en UML?
Una extensión con nombre de un elemento UML existente, escrita entre comillas angulares: entity, service, controller. Permite especializar el lenguaje para un dominio sin inventar notación nueva, y cada uno que hayas visto fue definido en algún sitio por un perfil.
¿Qué es un valor etiquetado?
Una propiedad que un estereotipo añade a un elemento. Un estereotipo service puede definir una etiqueta SLA; aplicarlo a un componente permite que ese componente lleve un valor de SLA concreto. Los valores etiquetados son cómo un perfil añade datos, igual que los estereotipos son cómo añade significado.
¿Qué es la relación de extensión?
La flecha del estereotipo a la metaclase que extiende, dibujada con línea continua y triángulo relleno. Es lo que hace que un estereotipo sea aplicable a una clase concreta de elemento: extender Class significa que se aplica a clases y a nada más.
¿Cuándo definir un perfil en vez de usar notas?
Cuando la misma anotación aparece con suficiente frecuencia como para querer que las herramientas actúen sobre ella: validarla, filtrar por ella o transformarla al exportar. Una nota es invisible para toda herramienta; un estereotipo es parte de pleno derecho del modelo.
En esta serie
- 01¿Qué es UML?
- 02Símbolos UML
- 03Elegir un diagrama
- 04Diagramas de clases
- 05Ejemplos de diagramas de clases
- 06Cómo dibujar un diagrama de clases
- 07Símbolos del diagrama de clases
- 08Diagramas de secuencia
- 09Ejemplos de diagramas de secuencia
- 10Cómo dibujar un diagrama de secuencia
- 11Diagramas de casos de uso
- 12Ejemplos de casos de uso
- 13Diagramas de actividad
- 14Ejemplos de actividad
- 15Diagramas de máquina de estados
- 16Ejemplos de máquina de estados
- 17Diagramas de componentes
- 18Ejemplos de componentes
- 19Dibujar un diagrama de componentes
- 20Símbolos de componentes
- 21Diagramas de despliegue
- 22Ejemplos de despliegue
- 23Diagramas de objetos
- 24Diagramas de paquetes
- 25Diagramas de estructura compuesta
- 26Diagramas de comunicación
- 27Secuencia vs comunicación
- 28Diagramas de tiempos
- 29Diagramas de visión general de interacción
- 30Diagramas de perfil
- 31UML con IA
- 32Ejemplo de e-commerce
- 33Ejemplo bancario
- 34Ejemplo de microservicios
- 35Ejemplo de AWS
Lecturas relacionadas
Fundamentos
Diagramas de estructura
Diagramas de estructura
Diagramas de estructura
Práctica del modelado
Diagramas de comportamiento