Diseño arquitectónico
-
Upload
damian-rotta -
Category
Software
-
view
576 -
download
0
Transcript of Diseño arquitectónico
Diseño Arquitectónico
Ingeniería de Software 2015Rotta, Damián
Índice
0-Objetivos de la presentación.1-Qué es el diseño arquitectónico?2-Decisiones de Diseño Arquitectónico.3-Vistas Arquitectónicas.4-Patrones Arquitectónicos.5-Arquitecturas de Aplicación.
2
Objetivos de la presentación
0
3
Objetivos
Entender porque el diseño arquitectónico del software es importante.
Comprender las decisiones que se deben tomar respecto al sistema durante el proceso de diseño arquitectónico.
4
Objetivos
Introducir el concepto de patrones arquitectónicos.
Conocer los patrones arquitectónicos usados con frecuencia en diferentes tipos de aplicaciones.
5
Que es el diseño arquitectónico
1
6
Que es el Diseño Arquitectónico
Organización del sistema -> Diseño de la estructura global.
Identificación componentes estructurales principales y la relación entre ellos.
Desarrollo incremental de arquitecturas no suele tener éxito.
7
Arquitectura de un sistema de control para un robot empacador
8
Abstracción en el diseño arquitectónico
Architecture in the small:Arquitectura de los programas individuales.
Architecture in the large:Arquitectura de sistemas complejos. Distribuidos en diferentes computadoras.
9
Importancia de la arquitectura del software
Requisitos funcionales:Componentes individuales
Requisitos no funcionales: La manera en que los componentes están organizados y en que se comunican.
10
Ventajas de una arquitectura explícita
Comunicación con los interesados (stakeholders)
Análisis de Sistemas
Reutilización a gran escala
11
Representación
Diagrama de bloques:
Muy abstractos.Útiles para la comunicación.
Contradicción?No, el modelo puede ser usado de distintas maneras
12
Uso de los modelos arquitectónicos
Cómo una manera de facilitar la discusión sobre el diseño del sistema:Discusión sobre el sistema cómo un todo.
Cómo una manera de documentar la arquitectura que ha sido:Mostrar componentes, sus interfaces y sus conecciones.
13
Decisiones de diseño arquitectónico
2
14
Decisiones del diseño arquitectónico
Procesos difieren dependiendo del tipo de sistema que está siendo desarrollado.
Conjunto de decisiones comunes a todos los procesos de diseño.
Pensar el diseño arquitectónico cómo una serie de decisiones más que cómo una secuencia de actividades.
15
Decisiones del diseño arquitectónico
Arquitectura de aplicaciones genéricas. Distribución del sistema.Patrones arquitectónicos (architectural styles).Enfoque fundamental.Descomposición del sistema.Estrategia de control.Evaluación del diseño. Documentación.
16
Arquitectura y características del sistema
DesempeñoSeguridad de datos (security)Arquitectura de capasSeguridad de personas(safety)Disponibilidad Mantenibilidad
17
Vistas Arquitectónicas
3
18
Vistas Arquitectónicas
Perspectivas y vistas útiles para documentar y diseñar la arquitectura.
Notación ha ser usada.
Cada modelo arquitectónico muestra solo una vista o perspectiva.
19
Vista del modelo de la arquitectura 4+1Vista lógica: abstracciones clave
Vista de procesos: procesos interactuantes
Vista de desarrollo: cómo se descompone en módulos durante el desarrollo Vista física: cómo se distribuye (hw y sw) a través de distintos procesadores.
Casos de uso relacionados
20
Dónde estamos?
0-Objetivos de la presentación.
1-Qué es el diseño arquitectónico?2-Decisiones de Diseño Arquitectónico.3-Vistas Arquitectónicas.4-Patrones Arquitectónicos.5-Arquitecturas de Aplicación.
21
Patrones arquitectónicos
4
22
Patrones arquitectónicos
Representar, compartir y reutilizar conocimiento.
Descripción estilizada de una buena práctica de diseño, probada en diferentes ambientes.
Deben incluir información sobre cuándo son útiles y cuando no.
Representados mediantes tablas y gráficos.
23
Patrón Modelo-Vista-Controlador
24
La organización del patrón MVC
25
Arquitectura de una aplicación web que usa el patrón MVC
26
Arquitectura de capas (layered)
Usada para modelar la interconexión entre subsistemas.Organiza el sistema en un conjunto de capas donde cada una brinda una serie de servicios dados.
Permite el desarrollo incremental de las capas. Solo las capas adyacentes se ven afectadas.
27
Patrón de Arquitectura en capas
28
Una arquitectura de capas genérica
29
La arquitectura del sistema LIBSYS
30
Arquitectura de Repositorio
31
Arquitectura de Repositorio
Los subsistemas deben intercambiar datos:
-BD Centralizada o repositorio.
-Cada subsistema mantiene su BD y los datos se transfieren explícitamente.
32
El patrón Repositorio
33
Arquitectura de repositorio para un IDE
34
Arquitectura Cliente-Servidor
Datos y procesos están distribuidos a través de una gama de componentes.
Conjunto de servidores autónomos proveen servicios específicos,Conjunto de clientes que solicitan esos servicios yRed que permite a los clientes acceder a los servidores
35
El patrón Cliente-Servidor
36
Ejemplo Cliente-Servidor para filmoteca
37
Arquitectura Pipe and Filter
Transformaciones funcionales procesan entradas para producir salidas.
Datos fluyen de una a otra y son transformados en el camino.
38
Arquitectura Pipe and Filter
39
Ejemplo arquitectura Pipe and Filter
40
Arquitecturas de Aplicación
5
41
Arquitecturas de aplicación
Usados para satisfacer necesidades de una organización.
Organizaciones similares tienen requerimientos parecidos.
Podemos hablar de arquitecturas de aplicación genéricas que podamos adaptar.
42
Uso de las arquitecturas de aplicación
Punto de partida para el proceso de diseño arquitectónico.
Lista de comparación en el diseño (design checklist).
Una manera de organizar el trabajo del equipo de desarrollo.
Medida de reutilización de componentes.
Vocabulario para hablar sobre tipos de aplicación.
43
Ejemplos de tipos de aplicaciones
Procesamiento de:Datos.
Transacciones.Eventos.Lenguajes.
44
Ejemplos de tipos de aplicaciones
Nos enfocaremos en dos tipos de aplicaciones.
Procesamiento de transacciones:-Sistemas de comercio electrónico (e-commerce)
-Sistemas de reservación
Procesamiento de lenguaje:-Compiladores-Intérpretes de comandos 45
Sistemas de procesamiento de transacciones
Procesos del usuario solicitan información de una base de datos o quieren actualizarla.
Perspectiva del usuario: transacción es cualquier secuencia coherente de acciones que satisfacen un objetivo.
46
Arquitectura de aplicaciones de procesamiento de transacciones
47
Arquitectura de software de un ATM
48
Arquitectura de sistemas de información
Tienen una estructura genérica que puede organizarse cómo una arquitectura de capas.
Sistemas basados en transacciones que generalmente involucran operaciones con bases de datos.
49
Arquitectura en capas de un sistema de información
50
Arquitectura del MHC-PMS
51
Sistemas de información basados en web
Interfaz de usuario implementada mediante un navegador web.
Ej: comercio electrónico.
Algunas funcionalidades adicionales.
52
Implementación del servidor
Usualmente implementados cómo arquitecturas cliente-servidor multinivel (multi-tier)
Servidor responsable de todas las interacciones con el usuario.
Gestor de la base de datos maneja dlas transacciones.
53
Sistemas de procesamiento de lenguajes
Aceptan un lenguaje natural o artificial cómo entrada y generan alguna otra representación de ese lenguaje.
Compiladores tienen una arquitectura genérica (análisis léxico, sintáctico, etc)
54
Arquitectura de un sistema de procesamiento de lenguajes
55
Componentes de un compilador
Un analizador léxico.
Una tabla de símbolos.
Un analizador sintáctico.
Un árbol sintáctico.
Un analizador semántico.
Un generador de código.
56
Compilador con arquitectura Pipe and Filter
57
Procesamiento de lenguajes con arquitectura de repositorio
58
Recapitulando (1)
Arquitectura de software como descripción de la organización de un sistema.
Decisiones de diseño arquitectónico incluyen: tipo de aplicación, distribución y patrones arquitectónicos.
Arquitecturas pueden ser documentadas desde varias perspectivas.
59
Recapitulando (2)
Patrones arquitectónicos son una manera de reutilizar conocimiento.
Modelos de sistemas de aplicación ayudan comprensión y comparación.
Sistemas de procesamiento de transacciones y de lenguajes.
60
Créditos y referencias
“Software Engineering”, Ian Sommerville, 9th Edition. Pags: 147-172
El template de la presentación es de SlidesCarnival.
61
Gracias!Alguna Pregunta?
62