Components & Connectors Viewtype Introducción 1
Requisitos sobre el modelo Visibilidad de los elementos con presencia runtime del software (procesos, objetos, clientes, servers y repositorios). Visibilidad sobre los componentes y sus asignaciones funcionales. Visibilidad sobre los caminos que la información toma a lo largo de los componentes (caminos potenciales) 2
Utilidad y elementos del modelo Nos brinda una vista sobre las entidades de ejecución en acción. Cada tipo de componente y conector puede presentar varias instancias en el mismo modelo. Los mecanismos de interacción son elementos de primera clase. 3
Ejemplo 4
Análisis de atributos de calidad Las propiedades del sistema en general pueden ser inferidas a partir de analizar este tipo de diagramas Conociendo valores cuantitativos de los atributos individuales de los componentes y conectores podemos calcular atributos del sistema en su conjunto 5
Elementos Son entidades con manifestación runtime que consumen recursos de ejecución y contribuyen al comportamiento en ejecución del sistema La configuración del sistema es un grafo conformado por la asociación entre componentes y conectores Las entidades runtime son instancias de tipos de conector o componente 6
Componentes Identificamos componentes con un nombre que nos de una pista sobre su función Los componentes son instancias de un tipo de componente El tipo de componente nos indica las interfaces que provee y las propiedades requeridas Muchas veces los tipos de componente son heredados del estilo Los componentes tienen puertos que deben encontrarse documentados 7
Conectores Un conector representa un camino en la interacción en tiempo de ejecución entre dos o más componentes El tipo de conector indica la cardinalidad (cantidad de componentes en la interacción), las interfaces que soporta y las propiedades requeridas El tipo de conector se hereda generalmente del estilo El conector asume un conjunto de roles dentro de la arquitectura 8
Relaciones La relación es attachment. Indica qué componentes están vinculados con qué conectores Formalmente siempre se asocian puertos de componentes con puertos de conectores 9
Relaciones p r 1 p 2 Un puerto de componente p 1, es vinculado con un role de conector r, si el componente interactúa sobre el conector usando la interfaz descrita por p 1 y cumpliendo con la expectativas descritas por r. 10
Relaciones (guía) Indicar claramente a qué estilo nos referimos (o indicar una guía de tipos de componente y conector) Vincular un conector solo a un puerto específico Dejar clara la validez del vínculo, de no ser así justificarlo Indicar cuales puertos son usados para conectar el sistema con su entorno externo 11
Propiedades Confiabilidad Podemos usarlo para determinar la funcionalidad del sistema en su conjunto Performance Tiempo de respuesta / carga Tiempo de latencia y volumen de procesamiento Recursos requeridos Necesidades de almacenamiento Necesidades de procesamiento 12
Propiedades Funcionalidad Funciones mapeadas sobre el componente Protocolos Patrones de eventos o acciones que pueden tener lugar en una interacciones representada por el elemento Seguridad Encripta Audita Autentica 13
Utilidad Cuales son los componentes ejecutables y como interactúan? Cuáles son los repositorios y que componentes los acceden? Qué partes del sistema son replicadas y cuantas veces? Cómo progresan los datos a los largo del sistema a medida que éste se ejecuta? 14
Utilidad Qué protocolos de interacción son usados por las entidades comunicantes? Qué partes del sistema se ejecutan en paralelo? Cómo la estructura del sistema puede cambiar a medida que se ejecuta? 15
Para lo que NO sirve No se debe usar para modelar elementos de diseño que no tienen comportamiento runtime Una clase no es un componente. Un componente no representa de ninguna manera una visión estática de diseño Estar atento a que si no tiene sentido caracterizar la interfaz de un elemento probablemente no sea un componente 16
Relación n con otros viewtypes Claramente un componente se relaciona con al menos un módulo de la vista de módulos Un módulo puede estar relacionado con varios componentes (varias copias del código ejecutan en diferentes componentes) Dependiendo del estilo los componentes se relacionan más directamente con los módulos (Por ejemplo: data stream styles) 17
Resumen Los conectores no son necesariamente binarios Si un componente tiene como función mediar en la interacción entre otros componentes representarlo como un conector y no como un componente Los conectores pueden representar formas complejas de interacción La documentación del conector debería explicitar el protocolo bajo el cual los componentes interactúan 18
Resumen Conectores C&C viewtype define modelo consistente de elementos que tienen presencia runtime C&C viewtype incluye información sobre los caminos de interacción entre los componentes Los componentes tienen interfaces llamadas ports Los conectores tienen interfaces llamadas roles 19
Resumen Puertos Indicar claramente qué puerto se usa cuando se vincula un componente a un conector Cuando no sea claro si es válido conectar un puerto a un role, justificar esto en la documentación adicional Indicar que puertos son usados para conectar el sistema con su entorno 20