You are on page 1of 13

1

9- DIAGRAMAS DE ESTRUCTURA ESTATICA


(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.

You might also like