Вы находитесь на странице: 1из 7

Diagrama de Estructura Compuesta UML 2

Diagramas de Estructura Compuesta Un diagrama de estructura compuesta es un diagrama que muestra la estructura interna de un clasificador, incluyendo sus puntos de interaccin a otras partes del sistema. Esto muestra la configuracin y relacin de las partes que juntas realizan el comportamiento de clasificador contenido. Los elementos de clase han sido descriptos en gran detalle en la seccin en los diagramas de clase. Esta seccin describe la forma en que las clases se pueden mostrar como elementos compuestos exponiendo interfaces y conteniendo puertos y partes.

Parte Una parte es un elemento que representa un conjunto de una o ms instancias que pertenecen a una instancia del clasificador contenida. Por ejemplo, si una instancia de diagrama se apropia de un conjunto de elementos grficos, luego los elementos grficos se pueden representar como partes, si fuera til hacer eso para modelar algn tipo de relacin entre ellos. Tener en cuenta que una parte se puede quitar de sus padres antes de que el padre se elimine, para que la parte no se elimine al mismo tiempo. Una parte se muestra como un rectngulo no adornado dentro del cuerpo de una clase o del elemento componente.

Puerto Un Puerto es un elemento escrito que representa una parte visible externa de una instancia del clasificador contenido. Los puertos definen la interaccin entre un clasificador y su entorno. Un Puerto puede aparecer en el lmite de la parte contenida, una clase o una estructura compuesta. Un Puerto puede especificar los servicios que un clasificador provee as como tambin los servicios que este requiere de su entorno. Un Puerto se muestra como un rectngulo nombrado en el borde del lmite de su clasificador apropiado.

Interfaces Una interfaz es similar a una clase pero con un nmero de restricciones. Todas las operaciones de la interfaz son pblicas y abstractas, y no proveen ninguna implementacin predeterminada. Todos los atributos de la interfaz deben ser constantes. Sin embargo, mientras que una clase puede solo heredar de una sola super-clase, puede implementar interfaces mltiples. Una interfaz, cuando esta sola en un diagrama, se muestra como un rectngulo del elemento clase con la clave interfaz y con su nombre en itlica para denotar que es abstracto, o se muestra como un circulo.

Tener en cuenta que la notacin del crculo no muestra las operaciones de la interfaz. Cuando las interfaces se muestran como si fueran apropiadas por las clases, se refieren a ellas como interfaces expuestas. Una interfaz expuesta se puede definir como provista o requerida. Una interfaz provista es una afirmacin que el clasificador contenido provee a las operaciones definidas por el elemento de la interfaz nombrada y se define dibujando un vnculo de realizacin entre la clase y la interfaz. Una interfaz requerida es un estado que el clasificador puede comunicar con algn otro clasificador que provee operaciones definidas por el elemento de la interfaz nombrada y se define dibujando un vnculo de dependencia entre la clase y la interfaz Una interfaz provista se muestra como una pelota en un palo adjuntada al borde de un elemento clasificador. Una interfaz requerida se muestra como una copa en un palo adjuntada al borde de un elemento clasificador.

Delegar Un conector delegar se usa para definir los trabajos internos de los puertos e interfaces externas del componente. Un conector delegar se muestra como una flecha con un estereotipo delegar. Esto conecta un contrato externo de un componente como se muestra por sus puertos a la

realizacin interna del comportamiento de la parte del componente.

Colaboracin Una colaboracin define un conjunto de roles co-operativos usados colectivamente para ilustrar una funcionalidad especifica. Una colaboracin debera solo mostrar los roles y los atributos requeridos para lograr sus tareas o funciones definidas. Aislar los roles primarios es un ejercicio de simplificar la estructura y clasificar el comportamiento, y tambin provee para poder re- usarlo. Un elemento colaboracin a menudo implementa un patrn. Un elemento colaboracin se muestra como un elipse

Enlace de Roles Un conector enlace de roles se dibuja desde una colaboracin a un clasificador que completa el rol. Esto se muestra como una lnea de trazos con una punta de flecha y el estereotipo enlace de roles.

Representa Un conector representa se puede dibujar desde una colaboracin a un clasificador para mostrar que una colaboracin se usa en el clasificador. Se muestra como una lnea de trazos con una punta de flecha y el estereotipo representa.

Ocurrencia Un conector ocurrencia se puede dibujar desde una colaboracin a un clasificador para mostrar que la colaboracin representa (sic) el clasificador. Esto se muestra como una lnea de trazos y el estereotipo ocurrencia.

En el mundo real, el mundo de los objetos, algo normal que nos encontramos son objetos que estn compuestos por ms objetos. UML nos permite modelar dicha informacin por medio de relaciones de composicin entre los objetos contenedores y sus partes. Dicha relacin se muestra tradicionalmente con un diamante relleno en la orilla del contenedor, en una relacin entre el contenedor y la parte. En el siguiente diagrama podemos ver que un carro tiene un motor, y dicho motor no puede ser parte de otro carro en un momento determinado en el tiempo.

Pero, modelar en UML composiciones de objetos poda volverse muy complejo en ciertas situaciones. Como en el caso de un carro y un barco que estuvieran compuestos por motor, pero donde para el primero el motor ayudara a mover las ruedas delanteras y en el segundo caso el motor sirviera para mover el propulsor del barco. Habra que realizar un modelo complejo para aclarar (a quien pudiera leer el diagrama), que habia una diferencia entre el motor que tena el carro y el motor del barco.

El diagrama anterior intenta explicar esto, pero tiene deficiencias, pues aunque aclara con la multiplicidad de las conexiones de carro y barco (0..1) como contenedores del motor, que slo puede estar la instancia del motor en uno de los dos; por otra parte parece decirnos que el motor del carro puede mover tanto propulsor como llantas. Lo cual es equivocado, pues el motor del barco slo mueve el propulsor y el del carro slo mueve sus llantas. Tampoco aclara que las dos llantas que mueve el motor en el carro son las delanteras, y no las dos traseras. Para modelarlo correctamente en un diagrama de clases tendramos que elaborar toda una jerarqua de herencia entre clases para distinguir entre los motores de barcos y carros, y entre las llantas delanteras y traseras de un carro, o marcando dependencias entre las relaciones. Con UML 2 ahora contamos con un nuevo diagrama, llamado diagrama de estructura compuesta, que nos permite contextualizar las partes que componen a una clase. As podemos armar un diagrama donde aclaremos que el carro tiene un motor que mueve las dos llantas delanteras (pero, no las traseras ni el propulsor), y otro diagrama del mismo tipo que nos permitira mostrar el barco con un motor que exclusivamente mueve su propulsor (y no las llantas). El contexto lo define la clase contenedora, que con fines de este ejemplo seran el carro o el barco. Y dentro de dicha clase modelamos las partes que lo componen, como se muestra a continuacin. Cada uno de estos diagramas muestra la estructura interna de una instancia de carro y de barco respectivamente.

En este caso nos queda mucho ms claro que cada uno tiene un motor, pero que funciona de manera diferente. Incluso es claro que el motor del carro mueve exclusivamente las dos llantas delanteras, y no las dos traseras. Los elementos que tradicionalmente se muestran en este tipo de diagrama son:

Clase. Para mostrar la parte de la cual se ilustra su composicin interna (ejemplo: carro o Barco) Parte. Se muestra con un rectngulo, e indica los objetos que conforman al objeto principal. Ejemplo: el motor y las llantas en el carro, o el motor y el propulsor en el Barco. Si se coloca una parte dentro de una clase significa, en un diagrama de clases, que la clase contenedor tiene una relacin de composicin con dicho elemento. Conector. Indica la relacin entre las parte internas de la clase que se analiza. Puertos. Se pueden mostrar puertos para indicar la entrada o salida de una parte hacia otra parte. Se muestran como pequeos cuadrados al final de un conector entre dos partes. No son obligatorias, pero son recomendables si se quiere encapsular el funcionamiento de las partes.

Un uso adicional que se puede dar a los diagramas de estructura compuesta es para mostrar las partes que colaboran, por ejemplo, en un caso de uso. Aunque en esta ocasin no explicaremos esta perspectiva, consideramos importante mencionarlo y mostrar un pequeo ejemplo.

En este ejemplo podemos ver que son tres las clases que colaboran en el caso de uso Participar en curso: el estudiante, el curso y el seminario. Esta forma nos permitira modelar patrones de diseo indicando los roles que juega cada clase en la colaboracin.

Como ejemplo, considere un modo posible de modelar la produccin de la Sucesin de Fibonacci.

Diagrama de estructura compuesta UML 2.0 Este diagrama de estructura compuesta UML 2.0 especifica que las instancias de la clase 'FibonacciSystem' estn compuestas de varias partes. La superior de estas partes est identificada como teniendo el clasificador 'FibonacciFunction'. Tres de las partes son identificadas por el rol que ellas juegan dentro de instancias del FibonacciSystem el rol NMinus2, el rol NMinus1, y el rol N. La quinta parte, identificada por su clasificador Viewer, incluye una especificacin de multiplicidad. En tiempo de ejecucin puede haber 0 o ms instancias de Viewer o de alguna subclase concreta de Viewer.

En tiempo de ejecucin las instancias de clase que implementan estos tres roles deben proveer los servicios especificados por la interfaz IVar mediante sus puertas var. Una de tales clases es Variable, mostrada sobre el diagrama con una puerta llamada var de tipo Var que realiza la interfaz IVar. La puerta llamada "view" es una puerta no-pblica que puede ser usada por una instancia de FibonacciSystem para acceder a la(s) instancia(s) opcional(es) de Viewer.

Вам также может понравиться