0% encontró este documento útil (0 votos)
352 vistas57 páginas

Architectural Driven Design - ADD

Este documento presenta el método Architectural Driven Design (ADD) para el diseño de arquitecturas de software. Explica conceptos clave como vistas arquitectónicas, elementos de diseño, drivers arquitectónicos y pasos del método ADD.

Cargado por

John Becerra
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
352 vistas57 páginas

Architectural Driven Design - ADD

Este documento presenta el método Architectural Driven Design (ADD) para el diseño de arquitecturas de software. Explica conceptos clave como vistas arquitectónicas, elementos de diseño, drivers arquitectónicos y pasos del método ADD.

Cargado por

John Becerra
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 57

Arquitectura de Proyectos de IT

Architectural Driven Design - ADD

Francisco Amadeo

© 2005
Agenda

# Tema Duración
1 ADD Overview 5 min
2 Claves del Diseño Arquitectonico 5 min
3 Desarrollo Evolutivo, RUP 5 min
4 Nocion de Arquitectura Conceptual 10 min

5 Objetivos 5 min
6 Pasos del Metodo 15 min
7 Vistas Lógica, de Concurrencia y Deployment 10 min
8 Architectural Drivers 10 min
9 Tradeoffs 5 min
10 Caso de estudio: Sistema de Chat 15 min

2
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

3
Arquitectura de Proyectos de IT
ADD Overview

 Método propuesto por el Software Engineering Institute (SEI)


 El método ADD es un enfoque para definir una arquitectura de
software en el cual el proceso de diseño esta basado en los
requerimientos de calidad del software.
 Proporciona una serie de pasos para el diseño de alto nivel de la
arquitectura de un sistema (arquitectura conceptual)
 Las actividades de diseño son organizadas de acuerdo a un proceso
recursivo de descomposición
- Guiado por los “architectural drivers”.
- Refinamiento progresivo de un diseño inicial, agregando información para
hacerlo más consistente y completo.

4
Arquitectura de Proyectos de IT
ADD Overview

 El metodo ADD esencialmente sigue un ciclo del tipo “Plan, Do, and Check”
(Planear, Realizar, Verificar)
• Plan: Los atributos de calidad y las restricciones de diseño son
consideradas para seleccionar que tipo de elementos seran utilizados en
la arquitectura.
• Do: Los elementos son instanciados para satisfacer los requerimientos
de calidad asi tambien los requerimientos funcionales.
• Check: El diseño resultante es analizado con el fin de determinar si los
requerimientos fueron alcanzados.
 Este proceso se repite hasta que los requerimientos significantes para la
arquitectura son alcanzados.

5
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

6
Arquitectura de Proyectos de IT
Claves del Diseño Arquitectónico

 El diseño consiste en la toma de decisiones

 El método ADD es un ejemplo de como el entendimiento de la


arquitectura y sus influencias pueden ser utilizados para guiar el
proceso de desarrollo.
– Estilos Arquitectónicos y Tacticas
– Vistas (estructuras)
– Funcional
– Concurrencia
– Deployment
– Architectural Drivers

7
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

8
Arquitectura de Proyectos de IT
Desarrollo Evolutivo

9
Arquitectura de Proyectos de IT
Ejemplo RUP

10
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

11
Arquitectura de Proyectos de IT
Nocion de Arquitectura Conceptual

12
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

13
Arquitectura de Proyectos de IT
Principales Objetivos del Método ADD

 Focalizado en la arquitectura de una “product-line” o “long-lived


systems”
– El detalle de muchos requerimientos no es conocido de antemano
• Cuáles son todas las prestadoras que pueden operar un sistema
de control telefónico?
• Formas de tarifar y facturar
 Utilización de mecanismos arquitectónicos para cumplir con:
– requerimientos funcionales
– requerimientos de calidad
– requerimientos del negocio

(Architectural Drivers)

14
Arquitectura de Proyectos de IT
Método ADD (SEI, 2000)

15
Arquitectura de Proyectos de IT
Método ARCS (Bosch, 1998)

16
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

17
Arquitectura de Proyectos de IT
Orden del Proceso

 La presentación dada por el método es top-down


 Sin embargo, el proceso general puede ser:
– bottom-up
– back and forth
– feedback loops

 Factores que influencian este orden


– Conocimiento del dominio
– Personal asignado al proyecto
– Uso de nuevas tecnologias
– Restricciones de diseño
– Elementos del negocio

18
Arquitectura de Proyectos de IT
Pasos del Método ADD

1. Elegir un modulo
2. Refinar dicho elemento de acuerdo a los siguientes pasos:
1. Seleccionar los “architectural drivers”
2. Elegir patrones/tácticas y modulos “hijos ” para satisfacer los
drivers
3. Instanciar los módulos hijos y asignar funcionalidad de los casos de
uso usando multiples views

3. Refinar los casos de uso y los escenarios de calidad como


restricciones a los módulos hijos
4. Repetir para el siguiente módulo

19
Arquitectura de Proyectos de IT
Arbol de Descomposición

20
Arquitectura de Proyectos de IT
Elementos de Diseño y Vistas

 Elementos de Diseño
– Se refieren genéricamente al sistema, a los subsistemas y
componentes
– Implementan una colección de responsabilidades
– Poseen una interface conceptual

 Vistas
– Ayudan a los desarrolladores a analizar propiedades de la
arquitectura, desde diferentes puntos de vista
– Lógica
– Concurrencia
– Deployment

21
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

22
Arquitectura de Proyectos de IT
Vistas Principales

 Funcional
– Mantiene las responsabilidades de las estructuras
arquitectónicas, y las conexiones entre estas estructuras

 Concurrencia
– Considera cuestiones de concurrencia, como si hubiera un
solo procesador (threads, puntos de sincronización)

 Deployment
– Se ocupa de la asignación a múltiples procesadores (red,
distribución de threads)

23
Arquitectura de Proyectos de IT
Ejemplo de Vista Logica

24
Arquitectura de Proyectos de IT
Ejemplo Vista de Concurrencia

25
Arquitectura de Proyectos de IT
Ejemplo Vista de Deployment

26
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

27
Arquitectura de Proyectos de IT
Architectural Drivers

 Combinación de requerimientos funcionales, de calidad y de


negocio, que en forma conjunta definen la arquitectura

 No dependen de los detalles de requerimientos funcionales o de


calidad
– Representan una ABSTRACCION de ellos

 Guian el análisis de puntos de trade-off

28
Arquitectura de Proyectos de IT
Ejemplo de Architectural Drivers

 The purpose of a flight simulator is to train aircrews and this dictates


both high fidelity of the simulation and realtime performance
 The purpose of an air traffic control system is to perform realtime
control of enroute aircraft and this dictates high availability and
reasonably stringent performance
 The purpose of some financial systems is to transfer money or orders
from one place to another and this dictates high security and high
availability
 The organization has an investment in prior systems in the domain. This
dictates reusing component from prior sytems
and, consequently, either reusing the architecture from prior systems
or developing an architecture that accomodates the legacy systems

29
Arquitectura de Proyectos de IT
El ADD dentro del Ciclo de Desarrollo

30
Arquitectura de Proyectos de IT
Casos de Uso y Escenarios de Calidad

 Casos de uso [Jacobson99]


– Un caso de uso es una pieza de funcionalidad en el sistema, que da al usuario
un resultado de valor
– Los casos de uso capturan requerimientos funcionales

 Escenarios de calidad
– Definen escenarios específicos con respecto a atributos de calidad
– cambios, performance, confiabilidad, interoperabilidad, etc.

– El sistema debe ser fácil de modificar


– Debe ser facil de agregar nuevas capacidades del tipo Z …al subsistema
X

31
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

32
Arquitectura de Proyectos de IT
Agenda

# Tema
1 ADD Overview
2 Claves del Diseño Arquitectonico
3 Desarrollo Evolutivo, RUP
4 Nocion de Arquitectura Conceptual

5 Objetivos
6 Pasos del Metodo
7 Vistas Lógica, de Concurrencia y Deployment
8 Architectural Drivers
9 Tradeoffs
10 Caso de estudio: Sistema de Chat

33
Arquitectura de Proyectos de IT
Caso de Estudio: Sistema de Chat

34
Arquitectura de Proyectos de IT
Requerimientos Funcionales

35
Arquitectura de Proyectos de IT
Requerimientos de Calidad (1)

36
Arquitectura de Proyectos de IT
Requerimientos de Calidad (2)

37
Arquitectura de Proyectos de IT
Eleccion de Opciones Arquitectonicas

38
Arquitectura de Proyectos de IT
Chat: Selección de “Architectural Drivers”

39
Arquitectura de Proyectos de IT
Pasos de Diseño a Seguir

40
Arquitectura de Proyectos de IT
Consideraciones para la Descomposición

41
Arquitectura de Proyectos de IT
Actividades para un Elemento de Diseño

42
Arquitectura de Proyectos de IT
Chat: Fase 1

43
Arquitectura de Proyectos de IT
Funcionalidad / Estilos Arquitectónicos

44
Arquitectura de Proyectos de IT
Asignación de Responsabilidades

45
Arquitectura de Proyectos de IT
Chat: Obtención de Responsabilidades

46
Arquitectura de Proyectos de IT
Chat: Asignar Funcionalidad al Estilo

47
Arquitectura de Proyectos de IT
Chat: Un usuario se logea al sistema

48
Arquitectura de Proyectos de IT
Chat: Envio de un mensaje público

49
Arquitectura de Proyectos de IT
Generación de la Vista de Concurrencia

50
Arquitectura de Proyectos de IT
Concurrencia: 2 Usuarios diferentes

51
Arquitectura de Proyectos de IT
Generación de la Vista de Deployment

52
Arquitectura de Proyectos de IT
Chat: Esquema de Deployment

53
Arquitectura de Proyectos de IT
Verificación de Escenarios

54
Arquitectura de Proyectos de IT
Escenarios de Calidad / Restricciones

55
Arquitectura de Proyectos de IT
Fase 1: Resultados Verificación

56
Arquitectura de Proyectos de IT
Refinamientos Adicionales

57
Arquitectura de Proyectos de IT

También podría gustarte