Architectural Driven Design - ADD



Documentos relacionados
Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Fundamentos del diseño 3ª edición (2002)

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

Mejor Framework PythonOO + SOLID. Vivir sin Frameworks

Ingeniería de Software: Parte 2

INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones

Modelado y Diseño de Arquitectura de Software

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Desarrollo de Líneas de Productos de Software

CMM - Capability Maturity Model. Estructura de CMM... Componentes de CMM. Estructura de CMM

Patrones de software y refactorización de código

Ingeniería de Software. Pruebas

CMMI (Capability Maturity Model Integrated)

Unidad 5. Modelo de objetos del dominio del problema. Trimestre 10-I. Universidad Autonomía Metropolitana. Unidad 5

Elementos requeridos para crearlos (ejemplo: el compilador)

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Entidad Formadora: Plan Local De Formación Convocatoria 2010


Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008)

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Garantía de Calidad. Calidad durante el Proceso de Ingeniería. Recapitulación (I)

INGENIERÍA DEL SOFTWARE I. Univ. Cantabria Fac. de Ciencias. Especificación de Requisitos. Práctica 2

Anexo 4 Documento de Arquitectura

Taller de Sistemas de Información 1. Clase 2 Sistemas de información Arquitectura

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases

capitulo3 MARCO TEÓRICO Para el diseño de la reubicación de los procesos se hará uso de la Planeación

6 Anexos: 6.1 Definición de Rup:

ARC 101 Architecture Overview Diagram

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Introducción a la simulación de circuitos

EL PROCESO DE DISEÑO DEL SOFTWARE

Introducción. Conceptos y principios. Introducción. Introducción. Elementos del modelo de análisis. Elementos del modelo de diseño.

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Base de Datos, Teoría General de Sistemas Área:

Componentes de Integración entre Plataformas Información Detallada

Proceso de Arquitectura de Software. Segunda. Semana. Dr. Cuauhtémoc Lemus Olalde. Noviembre 7, Informática

Ciclo de vida del software

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Recursos HELP DESK Biblioteca 2012

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Microsoft Dynamics Sure Step Fundamentos

Metodologías de diseño de hardware

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

Enterprise Architect y UML Básico

Diseño Basado en Componentes. Curso 2008/09

Capítulo 5. Cliente-Servidor.

2. Proceso de creación de bases de datos

ARC 108 Component Model

Ingeniería de Software en SOA

Contenido. Parte I Introduccion. Parte II Modulo CTPAT. Parte III Parámetros. Parte IV Embarques Rutas de Transportistas ...

Una puerta abierta al futuro

Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

1. Cuál es el objetivo del Diseño del Sistema de Información? del sistema. información. a. 5. b. 4. c. 3. d. 2. c. Diseño de. b.

Contenido de la sesión. Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas

Introducción a Rational Unified Process (RUP)

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

DISEÑO DE SOFTWARE INTEGRADO Unidad I: Introducción al Diseño de Software Integrado. Profesor: Cristián Chávez T

Sistema de Administración de Farmacias Plan de Proyecto Versión 1.1. Historia de revisiones

Oferta tecnológica: Herramienta software y método para modelar aplicaciones web independientes de dispositivo

"Módulo OOWS para StarUML" INTRODUCCIÓN

Ciclo de vida y Requerimientos de software. Laboratorio de Programación

Figure 9-1: Phase C: Information Systems Architectures

El Proceso Unificado de Desarrollo de Software

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Syllabus.

EASY Software & Innovation

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

MANTENIMIENTO Y SOPORTE

Ingeniería del Software I

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Estructura de clases. Estructura de Objetos. Arquitectura de módulos. Arquitectura de procesos

Laboratorio de Diseño de Sistemas Digitales

Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari

CLASE 2: INTRODUCCIÓN A LA ING. DE SOFTWARE. MODELOS DE PROCESOS. MEJORES PRÁCTICAS. USB Ing. De Software. Prof. I. C. Martínez

SW-CMM Capability Maturity Model for Software

Curso 8980: Microsoft Dynamics CRM 4.0 Aplicaciones

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

MF0964_3 Desarrollo de Elementos Software para Gestión de Sistemas

Sistema Gestión Licitación para la compra del desarrollo y migración del Sistema de Gestión de Activos y Configuraciones para Plan Ceibal

Figure 7-1: Phase A: Architecture Vision

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

EL DOCUMENTO DE ESPECIFICACIÓN FUNCIONAL

Arquitectura de sistema de alta disponibilidad

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Trabajo de Investigación

INSTRUCTIVO PARA LA CUENTA DE PUNTOS FUNCIÓN

Resumen General del Manual de Organización y Funciones

Método-Asistente para la toma de decisiones de diseño de arquitecturas de software (MATDDS)

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Maestría en Ciencias y Tecnologías de la Información

Transcripción:

Architectural Driven Design - ADD Francisco Amadeo 2005

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat Duración 5 min 5 min 5 min 10 min 5 min 15 min 10 min 10 min 5 min 15 min 2

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 3

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

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

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 6

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

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 8

Desarrollo Evolutivo 9

Ejemplo RUP 10

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 11

Nocion de Arquitectura Conceptual 12

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 13

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

Método ADD (SEI, 2000) 15

Método ARCS (Bosch, 1998) 16

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 17

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

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

Arbol de Descomposición 20

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

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 22

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

Ejemplo de Vista Logica 24

Ejemplo Vista de Concurrencia 25

Ejemplo Vista de Deployment 26

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 27

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

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

El ADD dentro del Ciclo de Desarrollo 30

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

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 32

Agenda # 1 2 3 4 5 6 7 8 9 10 Tema ADD Overview Claves del Diseño Arquitectonico Desarrollo Evolutivo, RUP Nocion de Arquitectura Conceptual Objetivos Pasos del Metodo Vistas Lógica, de Concurrencia y Deployment Architectural Drivers Tradeoffs Caso de estudio: Sistema de Chat 33

Caso de Estudio: Sistema de Chat 34

Requerimientos Funcionales 35

Requerimientos de Calidad (1) 36

Requerimientos de Calidad (2) 37

Eleccion de Opciones Arquitectonicas 38

Chat: Selección de Architectural Drivers 39

Pasos de Diseño a Seguir 40

Consideraciones para la Descomposición 41

Actividades para un Elemento de Diseño 42

Chat: Fase 1 43

Funcionalidad / Estilos Arquitectónicos 44

Asignación de Responsabilidades 45

Chat: Obtención de Responsabilidades 46

Chat: Asignar Funcionalidad al Estilo 47

Chat: Un usuario se logea al sistema 48

Chat: Envio de un mensaje público 49

Generación de la Vista de Concurrencia 50

Concurrencia: 2 Usuarios diferentes 51

Generación de la Vista de Deployment 52

Chat: Esquema de Deployment 53

Verificación de Escenarios 54

Escenarios de Calidad / Restricciones 55

Fase 1: Resultados Verificación 56

Refinamientos Adicionales 57