Diseño arquitectónico

62
Diseño Arquitectónico Ingeniería de Software 2015 Rotta, Damián

Transcript of Diseño arquitectónico

Page 1: Diseño arquitectónico

Diseño Arquitectónico

Ingeniería de Software 2015Rotta, Damián

Page 2: Diseño arquitectónico

Í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

Page 3: Diseño arquitectónico

Objetivos de la presentación

0

3

Page 4: Diseño arquitectónico

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

Page 5: Diseño arquitectónico

Objetivos

Introducir el concepto de patrones arquitectónicos.

Conocer los patrones arquitectónicos usados con frecuencia en diferentes tipos de aplicaciones.

5

Page 6: Diseño arquitectónico

Que es el diseño arquitectónico

1

6

Page 7: Diseño arquitectónico

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

Page 8: Diseño arquitectónico

Arquitectura de un sistema de control para un robot empacador

8

Page 9: Diseño arquitectónico

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

Page 10: Diseño arquitectónico

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

Page 11: Diseño arquitectónico

Ventajas de una arquitectura explícita

Comunicación con los interesados (stakeholders)

Análisis de Sistemas

Reutilización a gran escala

11

Page 12: Diseño arquitectónico

Representación

Diagrama de bloques:

Muy abstractos.Útiles para la comunicación.

Contradicción?No, el modelo puede ser usado de distintas maneras

12

Page 13: Diseño arquitectónico

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

Page 14: Diseño arquitectónico

Decisiones de diseño arquitectónico

2

14

Page 15: Diseño arquitectónico

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

Page 16: Diseño arquitectónico

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

Page 17: Diseño arquitectónico

Arquitectura y características del sistema

DesempeñoSeguridad de datos (security)Arquitectura de capasSeguridad de personas(safety)Disponibilidad Mantenibilidad

17

Page 18: Diseño arquitectónico

Vistas Arquitectónicas

3

18

Page 19: Diseño arquitectónico

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

Page 20: Diseño arquitectónico

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

Page 21: Diseño arquitectónico

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

Page 22: Diseño arquitectónico

Patrones arquitectónicos

4

22

Page 23: Diseño arquitectónico

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

Page 24: Diseño arquitectónico

Patrón Modelo-Vista-Controlador

24

Page 25: Diseño arquitectónico

La organización del patrón MVC

25

Page 26: Diseño arquitectónico

Arquitectura de una aplicación web que usa el patrón MVC

26

Page 27: Diseño arquitectónico

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

Page 28: Diseño arquitectónico

Patrón de Arquitectura en capas

28

Page 29: Diseño arquitectónico

Una arquitectura de capas genérica

29

Page 30: Diseño arquitectónico

La arquitectura del sistema LIBSYS

30

Page 31: Diseño arquitectónico

Arquitectura de Repositorio

31

Page 32: Diseño arquitectónico

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

Page 33: Diseño arquitectónico

El patrón Repositorio

33

Page 34: Diseño arquitectónico

Arquitectura de repositorio para un IDE

34

Page 35: Diseño arquitectónico

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

Page 36: Diseño arquitectónico

El patrón Cliente-Servidor

36

Page 37: Diseño arquitectónico

Ejemplo Cliente-Servidor para filmoteca

37

Page 38: Diseño arquitectónico

Arquitectura Pipe and Filter

Transformaciones funcionales procesan entradas para producir salidas.

Datos fluyen de una a otra y son transformados en el camino.

38

Page 39: Diseño arquitectónico

Arquitectura Pipe and Filter

39

Page 40: Diseño arquitectónico

Ejemplo arquitectura Pipe and Filter

40

Page 41: Diseño arquitectónico

Arquitecturas de Aplicación

5

41

Page 42: Diseño arquitectónico

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

Page 43: Diseño arquitectónico

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

Page 44: Diseño arquitectónico

Ejemplos de tipos de aplicaciones

Procesamiento de:Datos.

Transacciones.Eventos.Lenguajes.

44

Page 45: Diseño arquitectónico

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

Page 46: Diseño arquitectónico

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

Page 47: Diseño arquitectónico

Arquitectura de aplicaciones de procesamiento de transacciones

47

Page 48: Diseño arquitectónico

Arquitectura de software de un ATM

48

Page 49: Diseño arquitectónico

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

Page 50: Diseño arquitectónico

Arquitectura en capas de un sistema de información

50

Page 51: Diseño arquitectónico

Arquitectura del MHC-PMS

51

Page 52: Diseño arquitectónico

Sistemas de información basados en web

Interfaz de usuario implementada mediante un navegador web.

Ej: comercio electrónico.

Algunas funcionalidades adicionales.

52

Page 53: Diseño arquitectónico

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

Page 54: Diseño arquitectónico

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

Page 55: Diseño arquitectónico

Arquitectura de un sistema de procesamiento de lenguajes

55

Page 56: Diseño arquitectónico

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

Page 57: Diseño arquitectónico

Compilador con arquitectura Pipe and Filter

57

Page 58: Diseño arquitectónico

Procesamiento de lenguajes con arquitectura de repositorio

58

Page 59: Diseño arquitectónico

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

Page 60: Diseño arquitectónico

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

Page 61: Diseño arquitectónico

Créditos y referencias

“Software Engineering”, Ian Sommerville, 9th Edition. Pags: 147-172

El template de la presentación es de SlidesCarnival.

61

Page 62: Diseño arquitectónico

Gracias!Alguna Pregunta?

62