El Modelo de Componentes


Este artículo describe cómo modelar los componentes de software y hardware en UML. El modelo de componentes ilustra los componentes de software que se usarán para construir el sistema. Se pueden construir a partir del modelo de clases y escribir desde cero para el nuevo sistema o se pueden importar de otros proyectos y de productos de terceros. Los componentes son agregaciones de alto nivel de las piezas de software más pequeñas y proveen un enfoque de construcción de bloques de “caja negra” para la elaboración de software.

Notación de Componentes
Un componente puede ser algo como un control Actives; tanto un componente de la interfaz de usuario como un servidor de reglas de negocio. Los componentes se representan gráficamente como muestra la figura siguiente:

El diagrama de componentes
El diagrama de componentes muestra la relación entre componentes de software, sus dependencias, su comunicación su ubicación y otras condiciones.

Interfaces
Los componentes también pueden exponer las interfaces. Estas son los puntos visibles de entrada o los servicios que un componente está ofreciendo y dejando disponibles a otros componentes de software y clases. Típicamente, un componente está compuesto por numerosas clases y paquetes de clases internos. También se puede crear a partir de una colección de componentes más pequeños.

Componentes y Nodos
Un diagrama de despliegue muestra el despliegue físico del sistema en un ambiente de producción (o de prueba). Muestra dónde se ubican los componentes, en qué servidores, máquinas o hardware. Puede representar los enlaces de redes, el ancho de banda de la LAN, etc.

Requisitos
Los componentes pueden tener requisitos adjuntos para indicar sus obligaciones contractuales; esto es, qué servicios proveen en el modelo. Los requisitos ayudan a documentar el comportamiento funcional de los elementos de software.

Restricciones
Los componentes pueden restricciones asignadas que indican el entorno en el que operan. Las pre-condiciones especifican lo que debe ser verdadero antes de que un componente pueda realizar alguna función; las post-condiciones indican lo que debe ser verdadero después de que un componente haya realizado algún trabajo y los invariantes especifican lo que debe permanecer verdadero durante la vida del componente.

Escenarios
Los escenarios son descripciones textuales y procedimentales de las acciones de un objeto a lo largo del tiempo y describen la forma en la que un componente trabaja. Se pueden crear múltiples escenarios para describir tanto el camino básico (una ejecución perfecta) como las excepciones, errores y otras condiciones.

Trazabilidad
Puede indicar la trazabilidad por medio de vínculos de realización. Un componente puede implementar otro elemento del modelo (por ejemplo un caso de uso) o un componente puede ser implementado por otro elemento (por ejemplo un paquete de clases). Al emplear las relaciones de realización desde y hacia los componentes, se pueden seguir las dependencias entre los elementos del modelo y la trazabilidad desde los requisitos iniciales hasta la implementación final.

Un ejemplo
El ejemplo siguiente muestra cómo se pueden relacionar los componentes para proveer una vista conceptual/lógica de la construcción de un sistema. Este ejemplo representa los elementos del servidor y la seguridad de una tienda de libros en línea. Se incluyen elementos tales como el servidor WEB, el firewall, las páginas ASP, etc.

Componentes del servidor
Este diagrama ilustra la organización de los componentes del lado del servidor principal que se requerirá construir para una tienda de libros en línea. Estos componentes son una mezcla de los ítems construidos a medida y adquiridos que se ensamblarán para proveer la funcionalidad requerida.

Componentes de seguridad
El diagrama de componentes de la seguridad muestra cómo trabaja en conjunto el software de seguridad, tal como la Autoridad Certificadora (Certificate Authority), el navegador (Browser), el servidor WEB y otros elementos del modelo para asegurar la provisión de la seguridad en el sistema propuesto.