Introducción a ATAM.pptx

Anuncio
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
Descargar