Este diagrama puede incluir partes internas , puertos a través de los cuales las partes interactúan entre sí o a través de los cuales las instancias de la clase interactúan con las partes y con el mundo exterior, y conectores entre partes o puertos. Una estructura compuesta es un conjunto de elementos interconectados que colaboran en tiempo de ejecución para lograr algún propósito. Cada elemento tiene un rol definido en la colaboración.
Conceptos
Las entidades de estructura compuesta clave identificadas en la especificación UML 2.0 son clasificadores estructurados, partes, puertos, conectores y colaboraciones. [2]
Parte: una parte representa una función desempeñada en tiempo de ejecución por una instancia de un clasificador o por una colección de instancias . La parte puede nombrar únicamente la función, puede nombrar una superclase abstracta o puede nombrar una clase concreta específica. La parte puede incluir un factor de multiplicidad, como el [0..*] que se muestra para Viewer en el diagrama.
Puerto: Un puerto es un punto de interacción que se puede utilizar para conectar clasificadores estructurados con sus partes y con el entorno. Los puertos pueden especificar opcionalmente los servicios que proporcionan y los servicios que requieren de otras partes del sistema. En el diagrama, cada uno de los cuadrados pequeños es un puerto. Cada puerto tiene un tipo y está etiquetado con un nombre, como "var", "indVar1" o "view" en el diagrama. Los puertos pueden contener un factor de multiplicidad, por ejemplo [3].
Los puertos pueden delegar las solicitudes recibidas a partes internas o pueden entregarlas directamente al comportamiento del clasificador estructurado que contiene el puerto. Los puertos públicos que son visibles en el entorno se muestran a caballo entre los límites, mientras que los puertos protegidos que no son visibles en el entorno se muestran dentro de los límites. Todos los puertos del diagrama son públicos, excepto el puerto de visualización a lo largo del límite derecho de FibonacciSystem.
Conector: un conector une dos o más entidades, lo que les permite interactuar en tiempo de ejecución. El conector se muestra como una línea entre una combinación de partes, puertos y clasificadores estructurados . El diagrama muestra tres conectores entre puertos y un conector entre un clasificador estructurado y una parte.
Colaboración: una colaboración es generalmente más abstracta que un clasificador estructurado. Se muestra como un óvalo punteado que contiene funciones que las instancias pueden desempeñar en la colaboración.
Clasificador estructurado: un clasificador estructurado representa una clase, a menudo una clase abstracta, cuyo comportamiento puede describirse total o parcialmente a través de interacciones entre partes.
Clasificador encapsulado: un clasificador encapsulado es un tipo de clasificador estructurado que contiene puertos. En el diagrama siguiente, tanto FibonacciSystem como Variable son clasificadores encapsulados porque ambos tienen puertos a lo largo de sus límites.
Ejemplos
A modo de ejemplo, consideremos una forma posible de modelar la producción de la secuencia de Fibonacci .
Este diagrama de estructura compuesta UML 2.0 especifica que las instancias de la clase 'FibonacciSystem' están compuestas por varias partes. La parte superior de estas partes se identifica por tener el clasificador 'FibonacciFunction'. Tres de las partes se identifican por el rol que desempeñan dentro de las instancias de FibonacciSystem : el rol NMinus2 , el rol NMinus1 y el rol N. La quinta parte, identificada por su clasificador Viewer , incluye una especificación de multiplicidad. En tiempo de ejecución puede haber 0 o más instancias de Viewer o alguna subclase concreta de Viewer.
En tiempo de ejecución, las instancias de clase que implementan estos tres roles deben proporcionar los servicios especificados por la interfaz IVar a través de sus puertos var . Una de esas clases es Variable , que se muestra en el diagrama con un puerto llamado var de tipo Var que implementa la interfaz IVar .
El puerto denominado "vista" es un puerto no público que puede ser utilizado por una instancia de FibonacciSystem para acceder a las instancias opcionales de Viewer .
Referencias
^ "Diagrama de estructura compuesta". Lenguaje de modelado unificado 2.5.1. Número de documento OMG formal/2017-12-05. Organización de desarrollo de estándares del Object Management Group (OMG SDO). Diciembre de 2017. pág. 728.
^ OMG (2008). Lenguaje de modelado unificado OMG (OMG UML), Superestructura, V2.1.2 Archivado el 23 de septiembre de 2010 en Wayback Machine, págs. 161-192.
Enlaces externos
Wikimedia Commons tiene medios relacionados con Diagrama de estructura compuesta.
Información general sobre UML, incluida la especificación oficial de UML 2.0. Véase especialmente la amplia sección sobre estructuras compuestas.
El proyecto de código abierto Xholon mantiene un conjunto de enlaces que tienen que ver con la estructura compuesta.