(2da PARTE): DIAGRAMA DE COMPONENTES, DE DESPLIEGUE Y DE PAQUETES Diagrama Elementos Centrales Propiedades De Componentes Componentes Modelan la estructura en componentes, correspondencia entre componentes lgicos y artefactos fsicos. De Despliegue Nodos, Artefactos Detalles de instalacin y ejecucin. De Paquetes Paquetes Agrupa diagramas de clases en paquetes, mayor nivel de abstraccin
1) Diagrama de Componentes Los diagramas de componentes reflejan la estructura esttica del diseo del sistema, pero desde un punto de vista fsico. Muestran el empaquetado fsico de las partes reutilizables del sistema en unidades sustituibles, llamadas componentes. Describen la estructura del software mostrando la organizacin y las dependencias entre un conjunto de componentes. Pueden representar la encapsulacin de un componente con sus interfaces, puertos y estructura interna (posiblemente formada por otros componentes anidados y conectores). Generalmente, ya tenemos la codificacin de nuestro sistema realizada y plasmamos las ubicaciones fsicas dentro de los diagramas de componentes. Componente Definicin: Unidad modular con interfaces bien definidas pensada para ser utilizada como parte reemplazable de un sistema o entorno. Sus elementos internos quedan ocultos, pero tiene una o varias interfaces proporcionadas bien definidas a travs de las cuales se puede obtener acceso a sus funciones.
Caractersticas: -Pone nfasis en reutilizacin y encapsulamiento. -Detalla servicios que provee y requiere (interfaces). -Ejemplos: componentes lgicos (componentes de negocio, de proceso) y fsicos (EJB, CORBA, COM+, .NET, 47). -Define su comportamiento en base a interfaces requeridas y ofertadas. -Son reutilizables -El sistema se define en base a componentes conectados entre s. -Los componentes pueden ser de granularidad variable. -Cada componente incorpora la implementacin de ciertas clases del diseo del sistema. - Los componentes bien diseados no dependen directamente de otros componentes sino de las interfaces que ofrecen los componentes. En este caso, un componente en un sistema se pude sustituir por otro componente que ofrezca las interfaces apropiadas.
2 Un componente puede representar tanto el cdigo de una clase como de una instancia, una interfaz o, incluso, tambin puede interpretarse como paquetes. Sus principales usos son los siguientes: - Modelar el cdigo fuente (incluye libreras, ejecutables, tablas, archivos y documentos) - Modelar las distintas versiones del software final - Modelar base de datos fsicas.
Un componente se dibuja como un rectngulo, con dos rectngulos pequeos a un lado. Puede ser unido por lneas slidas a los crculos que representan sus interfaces.
Componente
Parte fsica y por tanto reemplazable de un modelo, que agrupa un conjunto de interfaces, archivos de cdigo fuente, clases, colaboraciones y proporciona la implementacin de dichos elementos.
Elementos de un diagrama de componentes: Los elementos que componen un diagrama de componentes son los componentes propiamente dichos sumados a la especificacin de interfaces, as como tambin toda la variedad posible de relaciones entre todos los elementos. Los componentes, a su vez, en su estructura interna pueden incluir tanto paquetes como clases.
Forma Elemento Descripcin y propiedades principales 1 Componente Elemento de funcionalidad del sistema reutilizable. Un componente proporciona y utiliza el comportamiento a travs de
3 las interfaces y puede hacer uso de otros componentes.
2 Puerto de interfaz proporcionada Representa un grupo de mensajes o llamadas que un componente implementa y que otros componentes o sistemas externos pueden utilizar. Un puerto es una propiedad de un componente que tiene una interfaz como tipo. 3 Puerto de interfaz necesaria Representa un grupo de mensajes o llamadas que el componente enva a otros componentes o sistemas externos. El componente est diseado para que se acople a los componentes que proporcionan al menos estas operaciones. El puerto tiene una interfaz como tipo. 4 Dependencia Se puede utilizar para indicar que una interfaz necesaria de un componente se puede satisfacer mediante una interfaz proporcionada de otro. Las dependencias tambin se pueden utilizar con ms frecuencia entre los elementos del modelo para mostrar que el diseo de uno depende del diseo del otro. 5 Parte Atributo de un componente cuyo tipo normalmente es otro componente. Los elementos se utilizan en el diseo interno de su componente primario. Los elementos se muestran de forma grfica, anidados dentro del componente primario. Varios elementos pueden tener el mismo tipo y varios componentes distintos pueden tener elementos del mismo tipo. 6 Ensamblado de elementos Conexin entre los puertos de la interfaz necesaria de un elemento y los puertos de la interfaz proporcionada de otro. La implementacin de un ensamblado de elementos puede variar de un componente a otro. Los elementos conectados deben tener el mismo componente primario. 7 Delegacin Vincula un puerto a una interfaz de uno de los elementos del componente. Indica que los mensajes enviados al componente se administran en el elemento o que los mensajes enviados desde el elemento se envan fuera del componente primario. (no se muestra) Generalizacin Indica que un componente hereda de otro componente. Los elementos y las interfaces se heredan. (no se muestra) Comentario Se utiliza para agregar notas adicionales. Puede vincular un comentario a cualquier nmero de elementos del diagrama.
4 Interfaces Una interfaz es una lista de las operaciones que una pieza de software ofrece y puede realizar. Las interfaces pueden clasificarse en necesarias y proporcionadas: Un puerto con una interfaz proporcionada suministra operaciones que se implementan en el componente y que otros componentes pueden utilizar. Un puerto con una interfaz necesaria representa el requisito de un componente de que un grupo de operaciones o servicios sea provisto por otros componentes o sistemas externos.
Mediante la conexin de las interfaces proporcionadas y las interfaces necesarias de distintos componentes, puede construirse un componente mayor. Un sistema de software completo se puede concebir como un componente.
El uso de las llamadas interfaces permite evitar las dependencias directas entre componentes, facilitando una sustitucin ms fcil de nuevos componentes. En los diagramas de componentes tambin se puede especificar interfaces y reflejar aquellas clases que implementan interfaces del sistema. Un diagrama de componentes muestra dependencias entre los componentes. Cada componente ofrece algunas interfaces y utiliza otras. Si las dependencias entre componentes se hacen a travs de interfaces, los componentes se pueden sustituir por otros componentes que realicen las mismas interfaces.
Como estamos representando la estructura esttica de la implementacin del sistema, es fundamental reflejar en los modelos para cada clase las interfaces que implementa. Las interfaces se grafican a travs de un crculo, a diferencia del rectngulo empleado en los diagramas de objetos. Esto se debe a que en los diagramas de componentes estamos refirindonos a la estructura fsica de la interface y no a su estructura lgica. Ejemplos:
5
6 Los componentes en una jerarqua de elementos estructurales:
Ventaja del uso de Diagramas de Componentes
El uso de diagramas de componentes tiene algunas ventajas: Concebir el diseo atendiendo a los bloques principales ayuda al equipo de desarrollo a entender un diseo existente y a crear uno nuevo. Al pensar en el sistema como una coleccin de componentes con interfaces proporcionadas y necesarias bien definidas, se mejora la separacin entre los componentes. Esto, a su vez, facilita la comprensin y los cambios cuando se modifican los requisitos. Puede utilizar un diagrama de componentes para representar el diseo con independencia del lenguaje o plataforma que el diseo utiliza o va a utilizar.
Relacin con otros diagramas Otro diagrama Ayuda a debatir y transmitir los siguientes aspectos del diseo Diagrama de Secuencia Interacciones entre los componentes de un sistema. Interacciones entre los elementos que contiene un componente.
Diagrama de Clases Las interfaces de un componente. El diagrama de clases permite detallar los mtodos de la interfaz. Los datos enviados en los parmetros a travs de las interfaces de los componentes. Diagramas de Actividades El procesamiento interno efectuado por un componente en respuesta a los mensajes entrantes.
7 2) Diagrama de Despliegue El Diagrama de Despliegue define la arquitectura de ejecucin de un sistema, describe la vista de despliegue esttica de una arquitectura. Un diagrama de despliegue muestra las relaciones fsicas entre los componentes de software (artefactos) y de hardware (nodos) en el sistema entregado, representa la asignacin de artefactos software a nodos, junto a la disposicin fsica de stos ltimos. Artefactos -Elementos concretos (ej. archivos) que son el resultado del proceso de desarrollo. -Parte fsica y reemplazable de un sistema que contiene informacin fsica (bits). -Es utilizada o generada en el proceso de desarrollo. -Hay diferentes artefactos de despliegue: cdigo fuente, ejecutables, scripts, etc. -Especializaciones de artefacto: Aplicaciones, Documentos, Archivos, Bibliotecas, Pginas, Tablas.
Nodos - Un nodo es un elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional que, por lo general, dispone de algo de memoria y, con frecuencia, de capacidad de procesamiento. - Elementos hardware, o entornos de ejecucin software. Muestran el hardware, el software y el middleware usado para conectar las mquinas. - Las conexiones entre nodos muestran las rutas de comunicacin a travs de las cuales interactuar el sistema. - En un nodo pueden residir un conjunto de artefactos. - Sirven para describir las plataformas en las que se ejecutan las aplicaciones. - Cada nodo (hardware) suele albergar uno o ms componentes.
Durante la ejecucin, los nodos pueden tener componentes y objetos. La asignacin de componentes y de objetos a los nodos puede ser esttica, o pueden migrar entre nodos. El diagrama de despliegue puede mostrar cuellos de botella para el rendimiento si las instancias de los componentes con dependencias se ponen en distintos nodos. Un nodo es un objeto fsico de ejecucin que representa un recurso computacional (que generalmente tiene memoria y capacidad de proceso). Los nodos pueden tener estereotipos para distinguir diferentes tipos de recurso, tales como CPU, dispositivos y memorias. Los nodos pueden contener objetos, instancias, instancias del componente.
Nodo
Elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional con capacidad de procesar.
8 Un nodo se representa mediante un cubo estilizado con el nombre del nodo, y opcionalmente su clasificacin.
Las asociaciones entre los nodos representan lneas de comunicacin. Las asociaciones pueden tener estereotipos para distinguir diversos tipos de enlaces. Los nodos pueden tener relaciones de generalizacin para relacionar una descripcin general de un nodo con una variacin ms especfica. Mediante iconos especializados se puede precisar la naturaleza de los nodos como constituyentes fsicos (dispositivos, archivos, bases de datos, etc.) de un sistema.
Ejemplos:
9
10 3) Diagrama de Paquetes Un diagrama de paquetes busca un mayor nivel de abstraccin y es puramente conceptual, slo existe en tiempo de desarrollo, y se utiliza para simplificar la modelizacin. Un paquete en UML consiste en un grupo de diagramas y clases organizados segn algn criterio. El razonamiento subyacente es que todos los elementos de un paquete tienen un objetivo en comn y son consistentes en su formacin. La organizacin de paquetes denota prcticamente una organizacin arquitectnica del sistema. Un diagrama de paquetes nos permite ver cmo los principales paquetes del sistema interactan. Tambin podemos ver a cada paquete como la perspectiva del sistema bajo un determinado concepto. De esta forma, un diagrama de paquetes nos permite ver, en el mismo lugar y de manera simple, cmo se mezclan e interceptan los diferentes puntos de vista. Por estas razones se puede concluir que existe una fuerte conexin entre todos los elementos del paquete. Las mtricas de cohesin y acoplamiento deben ser ptimas si un paquete est bien organizado. Caractersticas: -Muestran la descomposicin del propio modelo en unidades organizativas (paquetes) y sus dependencias. -Los diagramas de paquetes muestran la estructura de alto nivel de la aplicacin. -Sirven para simplificar los diagramas de clases complejos, permitiendo el agrupamiento de los clasificadores en paquetes. -Son las partes organizativas de los modelos UML. -Son las cajas en las que puede dividirse un modelo. -Hay un tipo principal: Paquete
Paquete: -Mecanismo de propsito general para organizar el propio diseo -Un paquete puede incluir elementos estructurales, de comportamiento y otros paquetes. -Un paquete es puramente conceptual (slo existe en tiempo de desarrollo) -Es recomendable que el contenido sea una coleccin de elementos UML relacionados de forma lgica. -Se pueden utilizar en cualquier tipo de diagrama UML.
11 -Un paquete puede contener otros paquetes, sin lmite de anidamiento, pero cada elemento pertenece a (est definido en) slo un paquete. -La visibilidad de los elementos incluidos en un paquete puede controlarse para que algunos sean visibles fuera del paquete mientras que otros permanezcan ocultos. -Un paquete es un contenedor que agrupa elementos relacionados.
Paquetes y Subsistemas
Relacionado con los paquetes, existe el concepto de subsistema: una porcin del sistema que es independiente y que engloba una nica funcionalidad. Es un tipo especial de paquete que se enfoca, principalmente, en un concepto dinmico. Se utiliza el constructor de subsistemas para reflejar una parte independiente del sistema que est siendo modelado. Los diagramas de paquetes tienen dos elementos bsicos: paquetes y subsistemas, as tambin como las relaciones entre ambos. Grficamente, los paquetes se denotan con un rectngulo con una pequea solapa en el extremo superior izquierdo. Con respecto a su nombre ste debe ser nico. Como en la designacin de archivos, el nombre de un paquete puede ser absoluto (indica toda la cadena de dependencias hacia l) o puede ser el nombre relativo (especifica solamente su nombre actual).
Un paquete puede contener diagramas, clases, instancias, e incluso otros paquetes. La relacin entre un paquete y sus elementos es una relacin de composicin, es decir, los elementos pertenecen al paquete y dependen de l para subsistir dentro de los modelos. Esto significa que eliminar un paquete implica eliminar tambin todos los elementos que lo componen. Un paquete puede tener muchos elementos, pero un elemento pertenece, como mximo a un nico paquete. Un paquete tambin puede interactuar con subsistemas. Grficamente, un subsistema se distingue de un paquete debido a que presenta un smbolo especial en la solapa del rectngulo. En el siguiente ejemplo se incorpora un subsistema de ventas online como actividad separada e independiente de la venta tradicional.
12
Relacin entre Paquetes Si bien las clases y los diagramas estn organizados en paquetes, esto no significa que sean independientes unas de otras. Una clase definida en un paquete seguramente interactuar con otras clases y entidades definidas en otros paquetes. La forma de comunicacin ms comn entre paquetes es utilizar, dentro de un paquete, clases y elementos definidos en otros.
Para denotar la interaccin entre paquetes se usan dos tipos especiales de asociacin: la relacin import y la relacin access. La primera expresa que los contenidos del paquete destino estarn disponibles en el paquete origen. Al estar disponibles, no es necesario anteponer el nombre del paquete al usar clases definidas en l. Si se usa la relacin access, los nombres no estarn disponibles directamente y se deber anteponer el nombre del paquete. Otras dos formas comunes de relacionar paquetes son a travs de las relaciones de generalizacin y de combinacin. El concepto de generalizacin entre paquetes es idntico al de generalizacin entre clases. Un paquete puede heredar comportamiento de otro, principalmente los elementos declarados en el paquete padre. Tambin pueden redefinir el comportamiento que heredan de sus paquetes padres, como lo pueden hacer tambin las clases.
13 La relacin de combinacin entre paquetes tiene como objetivo reflejar que los contenidos de los paquetes involucrados en la composicin deben entremezclarse para formar un nuevo concepto, el cual incorpora caractersticas de todos los paquetes involucrados. El contexto ideal para aplicar este constructor es cuando se tiene elementos definidos en distintos paquetes que representan el mismo concepto bajo diferentes nombres. Grficamente, la nocin de combinacin se ilustra con el estereotipo definido en UML <<merge>>
Relacin entre diagrama de paquetes y diseo arquitectnico Para modelar la arquitectura con UML, debemos utilizar los diagramas de paquetes e interpretarlos como componentes arquitectnicos. Ambos agrupan conceptos, ambos se relacionan, ambos manejan conceptos a un alto nivel de abstraccin. Un diagrama de paquetes arquitectnico es idntico a un diagrama de paquetes tradicional, con la salvedad de que los paquetes son interpretados como componentes arquitectnicos.