Símbolos del diagrama de componentes
Todas las marcas que puede llevar un diagrama de componentes UML y a qué te compromete cada una: el icono de enchufe, la piruleta y el casquillo, los conectores de ensamblado y delegación, los puertos y los cuatro estereotipos que merecen escribirse.
7 min de lecturaUML 2.5.120 de 35
La respuesta corta
- Una piruleta es una interfaz provista, y una flecha de realización hacia una caja de interfaz dice lo mismo. Una forma por diagrama, nunca las dos.
- La realización va de la implementación al contrato; una dependencia con punta abierta va al revés. La misma línea discontinua, la afirmación contraria.
- UML 1 sustituía la caja por un rectángulo con dos pestañas. UML 2 conserva la caja de clasificador y reduce ese icono a la esquina superior derecha.
- El casquillo es la otra mitad de la bola: una interfaz requerida. Un componente con solo piruletas no ha declarado ni una dependencia.
01El componente en sí#
Circulan dos formas y ambas son correctas, y por eso el mismo sistema dibujado en dos herramientas puede parecer dos notaciones.
| Elemento | Notación | Qué significa |
|---|---|---|
| Componente (UML 2) | caja, pequeño icono de enchufe arriba a la derecha | Una caja de clasificador corriente con el icono encogido en la esquina. A menudo lleva la palabra clave «component» encima del nombre. Esto es lo que dibujan por defecto las herramientas actuales. |
| Componente (UML 1) | caja con dos pestañas en el borde izquierdo | La forma antigua, donde el icono es la figura. Sigue siendo común en libros de texto y en diagramas heredados de los años 2000; reconócela, pero no la dibujes en trabajo nuevo. |
| Subsistema | «subsystem» en un componente | Un componente lo bastante grande como para tener partes propias. Solo vale la pena escribirlo cuando el diagrama muestra lo que hay dentro. |
| Artefacto | «artifact», hoja con la esquina doblada | El archivo físico con el que se entrega un componente: un jar, una imagen, un bundle. Pertenece a un diagrama de despliegue, no aquí, salvo que de lo que se hable sea justamente del empaquetado. |
02Interfaces provistas y requeridas#
Cada componente tiene dos listas - lo que provee y lo que requiere - y toda la notación son maneras de escribir esas dos listas. Hay dos, y son intercambiables.
| Elemento | Notación | Qué significa |
|---|---|---|
| Provista (explícita) | Línea discontinua, triángulo hueco, apuntando a la interfaz. El componente implementa ese contrato. | |
| Provista (piruleta) | un círculo en un palito corto | La misma afirmación, dibujada en el borde del componente con el nombre de la interfaz junto al círculo. Compacta, y por eso la mayoría de herramientas la usan por defecto. |
| Requerida (explícita) | Línea discontinua, punta abierta, apuntando a la interfaz. Normalmente etiquetada «use». El componente necesita que alguien la satisfaga. | |
| Requerida (casquillo) | media taza en un palito corto | La misma afirmación en forma compacta. Un casquillo con nada dentro es una dependencia sin cubrir, y es algo útil que un diagrama pueda mostrar. |
Explícito o abreviado, nunca ambos en un mismo diagrama: un lector no debería tener que comprobar si dos notaciones en la misma imagen significan dos cosas distintas.
03Conectores, puertos y delegación#
En cuanto los componentes contienen otros componentes aparecen dos marcas más. Un conector de ensamblaje conecta la interfaz provista de un componente directamente con la requerida de otro - una bola metida en un casquillo, que es la abreviatura de las dos flechas de la figura del principio de este artículo. Un conector de delegación va de un puerto de la frontera exterior a la parte interior que lo cumple.
| Elemento | Notación | Qué significa |
|---|---|---|
| Conector de ensamblaje | una bola apoyada en un casquillo | Un componente satisface el requisito de otro. La misma afirmación que una realización más una dependencia a través de una interfaz compartida, en un tercio del espacio. |
| Puerto | cuadradito en la frontera | Un punto de interacción distinto. Vale la pena dibujarlo cuando un componente tiene de verdad superficies separadas - una API pública y una API de administración - y es ruido en cualquier otro caso. |
| Conector de delegación | De un puerto a una parte interna: este contrato externo lo atiende aquella pieza. Es lo que hace comprobable el interior de un subsistema frente a su exterior. | |
| Dependencia entre componentes | Legal y casi siempre un defecto: dice «depende de algún modo», que es la vaguedad que el diagrama existe para eliminar. Nombra mejor la interfaz. |
El anidamiento es la tercera manera de decir «dentro», y la que dibuja esta serie: partes colocadas dentro de la frontera de su dueño, como arriba. No necesita ningún símbolo extra y sobrevive a un lector que nunca ha visto un conector de delegación, que es la mayoría de lectores.
04Los estereotipos que vale la pena escribir#
Un estereotipo entre comillas angulares amplía el significado de una caja, y la tentación es inventarse un vocabulario entero. Cuatro se ganan su sitio, porque cada uno cambia lo que el lector debe hacer con la caja:
«subsystem»: esto tiene partes propias, y puede que estén en otro diagrama.«service»: esto está desplegado y se alcanza por red, así que su interfaz es un contrato en el cable y versionarla es trabajo de alguien.«library»: esto se enlaza, no se llama a través de una frontera, así que cambiarlo es una recompilación y no un despliegue.«external»: esto es de otro, así que su interfaz es una restricción y no una decisión.
Cualquier cosa más allá de esas cuatro suele ser un perfil disfrazado. Si un equipo necesita de verdad un vocabulario formal propio - elementos marcados, elementos restringidos, reglas impuestas por la herramienta - para eso está un perfil UML, y escribirlo como es debido sale más barato que una convención que sigue la mitad del equipo.
05Dónde discrepan las herramientas#
Tres diferencias explican casi toda la confusión cuando un diagrama cambia de herramienta, y ninguna de ellas cambia el significado:
- Icono o palabra clave. Unas herramientas dibujan el icono del enchufe, otras escriben
«component», otras hacen las dos cosas. Las tres son el mismo componente de UML 2. - Piruletas por defecto. La mayoría de herramientas de dibujo pegan la bola y el casquillo al borde del componente; las herramientas de modelado que mantienen un repositorio tienden a dibujar la interfaz como elemento propio, porque lo es.
- Puertos donde no los hay. Algunas herramientas ponen un cuadradito en cada punto de conexión de una interfaz. Si el diagrama nunca distingue dos superficies en un componente, esos cuadraditos no llevan información.
En una línea cada uno
- 01Caja con icono de enchufe en la esquina: el componente de UML 2. Dos pestañas en el borde izquierdo: la forma de UML 1.
- 02La realización - discontinua, triángulo hueco - va del implementador al contrato.
- 03La dependencia - discontinua, punta abierta - va del que necesita al contrato.
- 04La piruleta es lo provisto, el casquillo lo requerido, la bola en el casquillo el ensamblaje de ambos.
- 05Un puerto es un punto de interacción distinto; un conector de delegación lo encamina a una parte interna.
- 06Una flecha entre dos componentes sin interfaz no nombra nada: ese es el defecto que hay que buscar.
Los símbolos en uso sobre sistemas reales están en los cinco ejemplos resueltos, y el orden en el que ponerlos está en cómo dibujar un diagrama de componentes.
06Preguntas frecuentes#
¿Qué significa el símbolo de piruleta en UML?
Una piruleta - un círculo pequeño sobre un palo corto - es una interfaz provista: el componente al que está unida implementa ese contrato. Es la forma compacta de una flecha de realización hacia una caja de interfaz; ambas dicen lo mismo, así que un diagrama debe elegir una de las dos.
¿Se pueden mezclar piruletas y cajas de interfaz en un diagrama?
Se puede, y le cuesta trabajo al lector sin dar nada a cambio. Las dos formas dicen exactamente lo mismo, así que dos notaciones en una misma imagen obligan a comprobar si la diferencia significa algo. Usa la forma compacta de bola y casquillo cuando falte espacio, y cajas explícitas cuando lo que se discute son las flechas.
¿Qué significa una flecha discontinua con triángulo hueco?
Es una realización, y en un diagrama de componentes siempre va de la implementación al contrato. El componente del extremo promete satisfacer la interfaz de la punta. Una flecha discontinua con punta abierta es la otra cara de la misma relación: una dependencia, el componente necesita ese contrato de alguien.
¿El símbolo de componente cambia entre UML 1 y UML 2?
Sí, y aún se dibujan los dos. UML 1 sustituía la caja por un rectángulo con dos rectángulos menores en el borde izquierdo. UML 2 usa una caja de clasificador normal con ese icono reducido en la esquina superior derecha, opcionalmente con la palabra clave «component» sobre el nombre, que es lo que dibujan las herramientas actuales.
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
Diagramas de estructura
Diagramas de estructura
Práctica del modelado
Diagramas de estructura
Referencia de notación
Diagramas de estructura