CALIDAD DE SOFTWARE (CSO) Práctica 2: Calidad de Arquitecturas Software Introducción a ATAM Índice • ¿Qué es ATAM? • ¿Cuáles son las salidas de ATAM? • Las fases y pasos de ATAM • Ejemplo de aplicación de ATAM Introducción a ATAM 2 ¿Que es ATAM? ¿Que es ATAM? Salidas de ATAM Fases y Pasos de ATAM I Fases y Pasos de ATAM II • ATAM (Architecture Trade-Off Analysis Method) es un método de evaluación de arquitecturas desarrollado por el Software Engineering Institute a finales de los 90s. – El propósito de ATAM es evaluar las consecuencias de las decisiones arquitectónicas en relación a determinados atributos de calidad. – ATAM ayuda a predecir como un atributo de interés puede ser afectado por decisiones arquitectónicas. – Los atributos de calidad de interés son clarificados mediante el análisis de los escenarios definidos por los distintos stakeholders en términos de estímulos y respuestas – Una vez los escenarios han sido definidos y priorizados el siguiente paso es definir que enfoques arquitectónicos pueden afectar a esos atributos de calidad. Introducción a ATAM 3 ¿Que es ATAM? Salidas de ATAM ¿Cuáles son las salidas de ATAM? Fases y Pasos de ATAM I Fases y Pasos de ATAM II • Las salidas de ATAM son : – Un conjunto de enfoques arquitectónicos identificados y/o aplicados – Un árbol de utilidad: modelo jerárquico de los requisitos de la arquitectura – Un conjunto de escenarios identificados y el subconjunto de ellos que han sido mapeados en la arquitectura – Un conjunto de cuestiones acerca de los atributos de calidad que han sido aplicadas a la arquitectura y las respuestas a esas cuestiones – Un conjunto de riesgos identificados – Un conjunto de riesgos mitigados por la arquitectura – Una síntesis de los riesgos que realmente amenazan los objetivos de negocio del sistema. Introducción a ATAM 4 ¿Que es ATAM? Salidas de ATAM Las fases y pasos de ATAM (1/2) • Fases y Pasos de ATAM I Fases y Pasos de ATAM II FASE 1: Presentación 1. Presentar ATAM: se presenta el método a los evaluadores y stakeholders 2. Presentar los objetivos de negocio: Se presentan las metas de negocio que motivan el esfuerzo de desarrollo y que deberán ser brindados por la arquitectura. 3. Presentar la arquitectura: Presentar la arquitectura haciendo énfasis en como aborda los objetivos de negocio • FASE 2: Investigación y análisis 4. Identificar los enfoques (patrones) arquitectónicos: los arquitectos presentan los enfoques arquitectónicos para este dominio / arquitectura para hacer frente a las metas del sistema y los objetivos de negocio. 5. Generar el árbol de utilidad: Los factores de calidad (fiabilidad, disponibilidad, rendimiento…) son identificados y especificados hasta el nivel de escenarios, con estímulos y respuestas y después priorizados. 6. Analizar los enfoques arquitectónicos: los stakeholders y el arquitecto analizan como los enfoques arquitectónicos afectan a los factores identificados en el paso anterior. Introducción a ATAM 5 Las fases y pasos de ATAM (2/2) • ¿Que es ATAM? Salidas de ATAM Fases y Pasos de ATAM I Fases y Pasos de ATAM II Fase 3: Testing 7. Brainstorming y priorización de escenarios: Si es necesario de se generan nuevos escenarios mas detallados que los del árbol de utilidad y se priorizan junto a los del árbol de utilidad 8. Analizar los enfoques arquitectónicos: Se repite el paso 6 pero considerando los escenarios de alta prioridad definidos en el punto y se decide que cambios se han de acometer sobre la arquitectura. • Fase 4: Presentación de Informes 9. Presentar resultados Introducción a ATAM 6 Ejemplo de Aplicación de ATAM ATAM en un Sistema de Control de Misiones Fase 1 - Presentación ATAM - Presentación Objetivos - Presentación Arquitectura Fase 2 Fase 3 Fase 4 FASE 1: 1. Presentación de ATAM 2. Presentación de los objetivos de negocio: En nuestro ejemplo vamos a tratar con un sistema de control de misiones y los objetivos de negocio son, entre otros, la alta disponibilidad y asegurar un rendimiento mínimo del sistema. 3. Presentación de la arquitectura: – El sistema de nuestro ejemplo es un sistema software para el control de los movimientos de tropas en misiones en el campo de batalla. Hay distintos tipos de nodos en este sistema: • Nodo Servidor (Comandante): es el nodo que da soporte a los encargado de tomar decisiones y de transmitir las ordenes a los nodos cliente. Además está en comunicación con otros nodos Servidor para enviar y recibir ordenes. • Nodos Cliente (Soldados): Realizan consultas y actualizaciones de la base de datos del servidor. – Se dispone de un canal de comunicación cifrado • Con un ancho de banda de 9600bd • Solamente un nodo puede hacer broadcast en cada instante. Introducción a ATAM 8 Fase 1 - Presentación ATAM - Presentación Objetivos - Presentación Arquitectura Fase 2 Fase 3 Fase 4 3. Presentación de la Arquitectura Other Mission Servers Client Server Client Client Client Introducción a ATAM Client 9 4. Identificación de patrones arquitectónicos: Backup Server Fase 1 Fase 2 - Identificación Enfoques - Generación Árbol de Utilidad - Análisis de Enfoques Fase 3 Fase 4 Problema: • El sistema depende totalmente del nodo Servidor. Si el nodo servidor falla el sistema deja de funcionar. Estructura • Un nodo cliente puede Promociona a Backup Server enviando una petición y recibiendo el ACK del servidor. • El nodo Backup Server hace replica de todo el estado del servidor cada 10 minutos, monitoriza las comunicaciones (se guarda copia de todos los mensajes) y si el Server falla automáticamente promociona a Server. Consecuencias • Aumenta la disponibilidad del sistema (el sistema pervive a la caída del servidor) • Incrementa las comunicaciones a través del canal al tener que recibir replica del estado del servidor (55Kb) Introducción a ATAM 10 4. Identificación de patrones arquitectónicos: Non ACK Backup (1/2) Fase 1 Fase 2 - Identificación Enfoques - Generación Árbol de Utilidad - Análisis de Enfoques Fase 3 Fase 4 3x Problema: • El sistema depende totalmente del nodo Servidor. Si el nodo servidor falla el sistema deja de funcionar. Estructura • Un nodo cliente promocionan a Non-ACK Backup enviando una petición al servidor. • Un nodo Non-ACK Backup promociona enviando una petición y recibiendo el ACK del servidor. • El nodo Non-ACK Backup solamente monitoriza las comunicaciones guardando copias de los mensajes. Si necesita promocionar a Server directamente por caída del Backup y del Server solicitará retransmisión del estado a los otros nodos cliente. • Los nodos Backup Server hacen replica de todo el estado del servidor cada 10 minutos, monitorizan las comunicaciones guardando copia de los mensajes y si el Server falla, el nodo Backup mas antiguo automáticamente promociona a Server Introducción a ATAM 11 4. Identificación de patrones arquitectónicos: Non ACK Backup (2) Fase 1 Fase 2 - Identificación Enfoques - Generación Árbol de Utilidad - Análisis de Enfoques Fase 3 Fase 4 3x Consecuencias: • Mejora la disponibilidad del sistema. El sistema pervive a una eventual caída del Server y del Backup Server antes de que este ultimo haya promocionado a Server. • Mantener dos nodos Backup aumenta la carga de la red, dado que tienen que estar recibiendo copia del estado del servidor cada 10 minutos (55Kb cada copia). • En caso de caída del servidor y de todos los Backups antes de que estos promocionen a Server hará que el nodo Non-Ack Backup tenga que solicitar al resto de nodos cliente el envío de su estado, aumentando el tiempo de promoción a Server. Introducción a ATAM 12 5. Generación del árbol de utilidad Necesidad de alcanzar ese requisito (Alta/ Media/Baja) Introducción a ATAM Fase 1 Fase 2 - Identificación Enfoques - Generación Árbol de Utilidad - Análisis de Enfoques Fase 3 Fase 4 Dificultad de alcanzar dicho objetivo (Alta/ Media/Baja). 13 Fase 1 Fase 2 - Identificación Enfoques - Generación Árbol de Utilidad - Análisis de Enfoques Fase 3 Fase 4 Evaluación de la arquitectura (Paso adicional a ATAM) • Other Mission Servers Análisis de la fiabilidad: – El porcentaje de que un nodo falle, incluyendo al servidor es de un 5% Client • Análisis de Prestaciones: Server Client Client Client • – El canal de comunicaciones solo se utiliza para transmisiones entre servidores y cliente. Client Vamos a obtener los valores de las métricas mediante una hoja Excel que nos asiste en los cálculos – Fiabilidad: Probabilidad de fallo Valor Obtenido: 5% ¿Cumple con el valor mínimo? NO – Rendimiento: Porcentaje de Canal Libre Introducción a ATAM Valor Obtenido: 100% ¿Cumple con el valor mínimo? SI 14 6. Análisis de los enfoques arquitectónicos • Fase 1 Fase 2 - Identificación Enfoques - Generación Árbol de Utilidad - Análisis de Enfoques Fase 3 Fase 4 Analizar los enfoques arquitectónicos – ¿Cómo van los enfoques identificados a mejorar los factores de calidad presentados en el árbol de utilidad? – La aplicación del patrón Backup va a incrementar la fiabilidad del sistema – La aplicación del patrón Non-ACK Backup va a mejorar aun mas la fiabilidad, pero a costa de que el canal de comunicaciones este demasiado tiempo ocupado. Introducción a ATAM 15 Priorización de Escenarios y Análisis de enfoques Fase 1 Fase 2 Fase 3 - Priorización de Escenarios - Análisis de Enfoques Fase 4 FASE 3: 7. Priorización de Escenarios – En nuestro caso no tenemos nuevos escenarios y ambos son de alta prioridad, así que no vamos a añadir nuevos escenarios 8. Análisis de Enfoques – Considerando la arquitectura, los escenarios de alta prioridad y los enfoques analizados deberemos decidir que enfoque es el mas apropiado y detectar los cambios en la arquitectura. • Los cambios sobre la arquitectura y la arquitectura resultado se facilitan como parte del ejercicio. Introducción a ATAM 16 8. Análisis de Enfoques Arquitectura original Fase 1 Fase 2 Fase 3 - Priorización de Escenarios - Análisis de Enfoques Fase 4 Opción 1 Other Mission Servers Client Opción 2 Server Client Client Client Client Escenarios (H,M) La probabilidad de fallo del sistema debe ser <1 % Introducción a ATAM (H,M) El canal de comunicación debe estar libre para transmitir al menos el 99% del tiempo 17 Fase 1 Fase 2 Fase 3 - Priorización de Escenarios - Análisis de Enfoques Fase 4 Análisis de Enfoques: Opción Backup Server Other Mission Servers Client Backup Server Server Client Client Client Introducción a ATAM Client 18 Evaluación de la arquitectura: Backup Server • Análisis de la fiabilidad: La probabilidad global de fallo del sistema es la probabilidad acumulada de que fallen ambos nodos P(Backup) * P(Server) • Análisis de Prestaciones: Analizaremos el porcentaje del tiempo que estamos realizando tareas de sincronización entre servidores. Other Mission Servers Client Backup Server Server Client Client Client • Client – El Backup hace una replica cada 10minutos (600s) y se requiere transmitir 55Kb (a 9600bps) 𝑇𝑟𝑎𝑓𝑖𝑐𝑜𝑆𝑖𝑛𝑐𝑟𝑜𝑛𝑖𝑐𝑎𝑧𝑖ó𝑛=55𝐾𝑏⁄9600 /600 ∗100 Vamos a obtener los valores de las métricas mediante una hoja Excel que nos asiste en los cálculos – Fiabilidad: Probabilidad de fallo Valor Obtenido: 0,25% ¿Cumple con el valor mínimo? SI – Rendimiento: Porcentaje de Canal Libre Introducción a ATAM Valor Obtenido: 99% ¿Cumple con el valor mínimo? SI 19 Presentación de Resultados • La arquitectura inicial no cumple con el escenario de fiabilidad • Tras modificar la arquitectura mediante la aplicación del patrón de Backup Server se consigue que la arquitectura cumpla con ambos escenarios Fiabilidad: Probabilidad de Fallo: 0,25% Rendimiento: Porcentaje de tiempo en el que el canal está libre: 99% Introducción a ATAM 20 CALIDAD DE SOFTWARE (CSO) Introducción a ATAM