tema 07_diseño arquitectónico

44
Ingeniería de Ingeniería de Software Software Diseño Arquitectónico Diseño Arquitectónico Prof. Pedro G. Campos

Upload: raul-opazo

Post on 15-Feb-2016

2 views

Category:

Documents


0 download

DESCRIPTION

Tema 07_Diseño Arquitectónico

TRANSCRIPT

Page 1: Tema 07_Diseño Arquitectónico

Ingeniería de Ingeniería de SoftwareSoftwareDiseño ArquitectónicoDiseño Arquitectónico

Prof. Pedro G. Campos

Page 2: Tema 07_Diseño Arquitectónico

22

Diseño Arquitectónico Diseño Arquitectónico Sistemas grandes se pueden Sistemas grandes se pueden

descomponer en subsistemas.descomponer en subsistemas. ““Diseño Arquitectónico”:Diseño Arquitectónico”:

Proceso inicial para identificar Proceso inicial para identificar subsistemas y establecer la subsistemas y establecer la comunicación entre ellos y su control.comunicación entre ellos y su control.

De acuerdo a ISO/IEC 42010De acuerdo a ISO/IEC 42010– La arquitectura (de un sistema o software) La arquitectura (de un sistema o software)

corresponde a los conceptos o corresponde a los conceptos o propiedades fundamentales de un sistema propiedades fundamentales de un sistema … sus elementos, relaciones, y los … sus elementos, relaciones, y los principios de su diseño y evolución.principios de su diseño y evolución.

Page 3: Tema 07_Diseño Arquitectónico

33

Diseño Arquitectónico Diseño Arquitectónico Architecture in the smallArchitecture in the small: arquitectura de : arquitectura de

programas individuales. En este caso, programas individuales. En este caso, interesa la forma en que se descompone el interesa la forma en que se descompone el programa en módulosprograma en módulos

Architecture in the largeArchitecture in the large: arquitectura de : arquitectura de grandes y complejos sistemas empresariales grandes y complejos sistemas empresariales que incluyen otros sistemas. Estos sistemas que incluyen otros sistemas. Estos sistemas empresariales suelen estar distribuidos en empresariales suelen estar distribuidos en diferentes computadores, que pueden ser diferentes computadores, que pueden ser propiedad de (y administrados por) propiedad de (y administrados por) diferentes compañías.diferentes compañías.

Page 4: Tema 07_Diseño Arquitectónico

44

Diseño Arquitectónico Diseño Arquitectónico

Arquitectura general del sistema de streaming de video Netflix.Fuente: Cockcroft, A. Netflix Cloud Architecture. 2011 O’Reilly Velocity Conference, Santa Clara, CL, USA, 2011.

Page 5: Tema 07_Diseño Arquitectónico

55

Diseño Arquitectónico Diseño Arquitectónico

Arquitectura del sistema Zuul, front door de la familia de sistemas de Netflix. Fuente: Cohen, M. and Hawthorne, M. Announcing Zuul: Edge Service in the Cloud. Netflix Tech Blog, techblog.netflix.com, 2013.

Page 6: Tema 07_Diseño Arquitectónico

66

Diseño Arquitectónico Diseño Arquitectónico

Arquitectura del sistema de recomendación de Netflix. Fuente: Amatriain, X. and Basilico, J. System Architectures for Personalization and Recommendation. Netflix Tech Blog, techblog.netflix.com, 2013.

Page 7: Tema 07_Diseño Arquitectónico

77

Diseño Arquitectónico Diseño Arquitectónico Ventajas de especificación del diseño y Ventajas de especificación del diseño y

documentación de una arquitectura de documentación de una arquitectura de software:software:

– Comunicación entre los stakeholdersComunicación entre los stakeholders– Análisis del sistemaAnálisis del sistema

Afectarán desempeño, fiabilidad y mantenibilidadAfectarán desempeño, fiabilidad y mantenibilidad

– Reutilización a gran escalaReutilización a gran escala La arquitectura se puede transferir a sistemas con La arquitectura se puede transferir a sistemas con

requerimientos similares y así poder reutilizar requerimientos similares y así poder reutilizar software a gran escala.software a gran escala.

Page 8: Tema 07_Diseño Arquitectónico

88

Diseño Arquitectónico Diseño Arquitectónico Actividades comunesActividades comunes

– 1. Estructuración del sistema:1. Estructuración del sistema: Se estructura en varios subsistemas (unidad de Se estructura en varios subsistemas (unidad de

software independientes)software independientes)– 2. Modelado de control:2. Modelado de control:

Son las relaciones de control entre las partes Son las relaciones de control entre las partes del sistema.del sistema.

– 3. Descomposición modular:3. Descomposición modular: Cada subsistema se descompone en módulos.Cada subsistema se descompone en módulos.

Page 9: Tema 07_Diseño Arquitectónico

99

Diseño Arquitectónico Diseño Arquitectónico No existe una distinción clara entre No existe una distinción clara entre

subsistemas y módulos pero es útil subsistemas y módulos pero es útil distinguirlos:distinguirlos:– 1. Subsistema:1. Subsistema:

Es un sistema por si mismo cuya operación no Es un sistema por si mismo cuya operación no depende de otro subsistema.depende de otro subsistema.

– 2. Módulo:2. Módulo: Es por lo regular un componente del sistema Es por lo regular un componente del sistema

que suministra servicios a otros módulos.que suministra servicios a otros módulos.

Page 10: Tema 07_Diseño Arquitectónico

1010

Diseño Arquitectónico Diseño Arquitectónico RepresentaciónRepresentación

– Se usan comúnmente diagramas de bloques, Se usan comúnmente diagramas de bloques, simples e informales, mostrando las entidades simples e informales, mostrando las entidades (módulos/subsistemas) y relaciones entre ellas.(módulos/subsistemas) y relaciones entre ellas.

– Muchas veces se critica la falta de formalismo y Muchas veces se critica la falta de formalismo y semántica.semántica.

– Sin embargo, esta representación es útil para la Sin embargo, esta representación es útil para la comunicación con los comunicación con los stakeholdersstakeholders y para la y para la planificación del proyectoplanificación del proyecto

Page 11: Tema 07_Diseño Arquitectónico

1111

Diseño Arquitectónico Diseño Arquitectónico Modelo de 4 + 1 vistas de arquitectura de Modelo de 4 + 1 vistas de arquitectura de

softwaresoftware– Vista lógicaVista lógica, que muestra las principales abstracciones , que muestra las principales abstracciones

en el sistema.en el sistema.– Vista de procesoVista de proceso, que muestra cómo, en tiempo de , que muestra cómo, en tiempo de

ejecución, interactúan los procesos que componen el ejecución, interactúan los procesos que componen el sistema.sistema.

– Vista físicaVista física, que muestra el hardware del sistema y , que muestra el hardware del sistema y cómo se distribuyen los componentes de software en cómo se distribuyen los componentes de software en los procesadores del sistema.los procesadores del sistema.

– Vista de desarrolloVista de desarrollo, que muestra cómo se , que muestra cómo se descompone el software para el desarrollo.descompone el software para el desarrollo.

– Relación con casos de uso o escenarios (+1).Relación con casos de uso o escenarios (+1).

Page 12: Tema 07_Diseño Arquitectónico

1212Arquitectura del sistema de recomendación de Netflix. Fuente: Amatriain, X. and Basilico, J. System Architectures for Personalization and Recommendation. Netflix Tech Blog, techblog.netflix.com, 2013.

Page 13: Tema 07_Diseño Arquitectónico

1313

Diseño Arquitectónico Diseño Arquitectónico Uso de modelos arquitectónicosUso de modelos arquitectónicos

– Facilita la discusión sobre el diseño general del Facilita la discusión sobre el diseño general del sistema.sistema.

– Permite documentar la arquitectura que se ha Permite documentar la arquitectura que se ha diseñado.diseñado.

Page 14: Tema 07_Diseño Arquitectónico

1414

Diseño Arquitectónico y Diseño Arquitectónico y características del características del sistemasistema RendimientoRendimiento

– Localizar operaciones críticas y minimizar Localizar operaciones críticas y minimizar comunicaciones. Usar componentes grandescomunicaciones. Usar componentes grandes

SeguridadSeguridad– Utilizar una arquitectura de capas con los elementos Utilizar una arquitectura de capas con los elementos

críticos en las capas internascríticos en las capas internas– Localizar las características críticas en un número Localizar las características críticas en un número

pequeño de subsistemas.pequeño de subsistemas. DisponibilidadDisponibilidad

– Incluir componentes redundantes y mecanismos para Incluir componentes redundantes y mecanismos para tolerancia a fallostolerancia a fallos

MantenibilidadMantenibilidad– Utilizar componentes pequeños y reemplazablesUtilizar componentes pequeños y reemplazables

Page 15: Tema 07_Diseño Arquitectónico

1515

Modelos ArquitectónicosModelos Arquitectónicos

Arquitectura de depósito –repositorio o base de Arquitectura de depósito –repositorio o base de datos centralizada– datos centralizada– (repository architecture):(repository architecture):– El intercambio de datos entre módulos se realiza por El intercambio de datos entre módulos se realiza por

medio de un depósito central.medio de un depósito central.– Es particularmente útil cuando se deben intercambiar Es particularmente útil cuando se deben intercambiar

grandes volúmenes de datos entre módulos.grandes volúmenes de datos entre módulos.– Permite una alta independencia entre módulos, y Permite una alta independencia entre módulos, y

facilita la mantención de la consistencia de los datos.facilita la mantención de la consistencia de los datos.– El repositorio se transforma en un punto crítico, por lo El repositorio se transforma en un punto crítico, por lo

que un fallo en él afecta a todo el sistema.que un fallo en él afecta a todo el sistema.

Page 16: Tema 07_Diseño Arquitectónico

1616

El modelo de depósito: la El modelo de depósito: la arquitectura de una arquitectura de una herramienta CASE de tipo herramienta CASE de tipo entornoentorno

Traductor de diseño

Editor de diseño

Generador de código

Depósito de proyectos

Editor de programas

Generador de Informes

Analizador de diseño

Page 17: Tema 07_Diseño Arquitectónico

1717

Modelos ArquitectónicosModelos Arquitectónicos

Arquitectura cliente-servidor Arquitectura cliente-servidor (client-server (client-server architecture):architecture):– La funcionalidad de los sistemas se organiza en torno a La funcionalidad de los sistemas se organiza en torno a

servicios.servicios.– Cada servicio es proporcionado por un servidor diferente.Cada servicio es proporcionado por un servidor diferente.

Un servidor en este modelo es un proceso lógico.Un servidor en este modelo es un proceso lógico. Pueden ejecutarse varios servidores en un mismo computador.Pueden ejecutarse varios servidores en un mismo computador.

– Es útil cuando se necesita acceso desde diferentes Es útil cuando se necesita acceso desde diferentes lugares, y en casos en que la carga del sistema es lugares, y en casos en que la carga del sistema es variable.variable.

– Permite que los servidores sean distribuidos en una red.Permite que los servidores sean distribuidos en una red.– Cada servicio es un posible punto de falla. El rendimiento Cada servicio es un posible punto de falla. El rendimiento

depende tanto de la red como del resto del sistema.depende tanto de la red como del resto del sistema.

Page 18: Tema 07_Diseño Arquitectónico

1818

El modelo cliente-servidor: El modelo cliente-servidor: bibliotecabiblioteca de películas e de películas e imágenesimágenes

Servidor de catálogos

Catálogo

Servidor de videos

Archivos de clips de videos

Servidor de imágenes

Fotografías digitalizadas

Servidor de hipertexto

Web de hipertexto

Cliente 1 Cliente 2 Cliente 3 Cliente 4

Red de banda ancha

Page 19: Tema 07_Diseño Arquitectónico

1919

Sistema cliente Sistema cliente servidor de cajero servidor de cajero automático (ATM)automático (ATM)

Account server

Customeraccountdatabase

Tele-processing

monitor

ATM

ATM

ATM

ATM

Page 20: Tema 07_Diseño Arquitectónico

2020

Clientes gruesos (fat) o Clientes gruesos (fat) o delgados (thin)delgados (thin) Modelo cliente delgado (thin client)Modelo cliente delgado (thin client)

– Todo el procesamiento y Todo el procesamiento y administración de los datos es hecha administración de los datos es hecha por el Servidor. El cliente solo por el Servidor. El cliente solo ejecuta una aplicación de despliegue.ejecuta una aplicación de despliegue.

Modelo cliente grueso (fat client)Modelo cliente grueso (fat client) – El servidor es solo responsable por el El servidor es solo responsable por el

almacenamientio de los datos.almacenamientio de los datos.

Page 21: Tema 07_Diseño Arquitectónico

2121

Thin-clientmodel

Fat-clientmodel Client

Client

ServerData management

Applicationprocessing

Presentation

Server

Datamanagement

PresentationApplication processing

Clientes gruesos (fat) o Clientes gruesos (fat) o delgados (thin)delgados (thin)

Page 22: Tema 07_Diseño Arquitectónico

2222

Modelos ArquitectónicosModelos Arquitectónicos

Arquitectura de capas Arquitectura de capas (layered architecture):(layered architecture):– Organiza el sistema como un conjunto de capas (o Organiza el sistema como un conjunto de capas (o

máquinas abstractas), cada una de las cuales máquinas abstractas), cada una de las cuales provee un conjunto de servicios relacionados.provee un conjunto de servicios relacionados.

– Las capas de mayor nivel utilizan servicios Las capas de mayor nivel utilizan servicios provistos por las capas de menor nivel.provistos por las capas de menor nivel.

– Permite el reemplazo de capas completas, Permite el reemplazo de capas completas, mientras la interfaz se mantenga.mientras la interfaz se mantenga.

– Suele ser difícil conseguir una separación “limpia” Suele ser difícil conseguir una separación “limpia” entre capas. Puede llevar a problemas de entre capas. Puede llevar a problemas de rendimiento por el paso por múltiples niveles.rendimiento por el paso por múltiples niveles.

Page 23: Tema 07_Diseño Arquitectónico

2323

El modelo de capas (máquina El modelo de capas (máquina abstracta): sistema de abstracta): sistema de administración de versionesadministración de versiones

Sistema Operativo

Sistema de Bases de Datos

Administrador de archivos fuente

Administrador de versiones

Page 24: Tema 07_Diseño Arquitectónico

2424

Modelos ArquitectónicosModelos Arquitectónicos

Arquitectura Modelo-Vista-Controlador Arquitectura Modelo-Vista-Controlador (MVC, (MVC, Model-View-Controller architecture):Model-View-Controller architecture):– Separa la presentación (e interacción) de los datos Separa la presentación (e interacción) de los datos

del sistema.del sistema. El sistema se estructura en torno a componentes lógicos de El sistema se estructura en torno a componentes lógicos de

tres tipos.tres tipos. El modelo administra los datos y las operaciones sobre ellos.El modelo administra los datos y las operaciones sobre ellos. La vista se encarga de presentar los datos a los usuarios.La vista se encarga de presentar los datos a los usuarios. El controlador gestiona la interacción del usuario (teclas, El controlador gestiona la interacción del usuario (teclas,

clicks de mouse, etc.).clicks de mouse, etc.).– Permite gestionar de forma independiente los Permite gestionar de forma independiente los

datos y la presentación de ellos.datos y la presentación de ellos.

Page 25: Tema 07_Diseño Arquitectónico

2525

Modelo MVC: aplicación Modelo MVC: aplicación WebWeb

Page 26: Tema 07_Diseño Arquitectónico

2626

Mezcla de modelos: Mezcla de modelos: Arquitectura C/S de 3 Arquitectura C/S de 3 capascapas

Client

Server

Datamanagement

PresentationServer

Applicationprocessing

Page 27: Tema 07_Diseño Arquitectónico

2727

Arquitectura de Sitios Arquitectura de Sitios WebWeb

Page 28: Tema 07_Diseño Arquitectónico

2828

Arquitectura de Sitios Arquitectura de Sitios Web DinámicosWeb Dinámicos

Page 29: Tema 07_Diseño Arquitectónico

2929

Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web

Page 30: Tema 07_Diseño Arquitectónico

3030

Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web

Page 31: Tema 07_Diseño Arquitectónico

3131

Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web

Page 32: Tema 07_Diseño Arquitectónico

3232

Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web

Page 33: Tema 07_Diseño Arquitectónico

3333

Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web

Page 34: Tema 07_Diseño Arquitectónico

Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web

3434

Page 35: Tema 07_Diseño Arquitectónico

3535

Modelo genérico: flujo de Modelo genérico: flujo de datos de un compiladordatos de un compilador

Análisis léxico

Análisis sintáctico

Análisis semántico

Generación de código

Tabla de símbolos

Page 36: Tema 07_Diseño Arquitectónico

3636

Modelo de referencia: la Modelo de referencia: la arquitectura OSIarquitectura OSI

Application

Presentation

Session

Transport

Network

Data link

Physical

7

6

5

4

3

2

1

Communica tions medium

Network

Data link

Physical

Application

Presentation

Session

Transport

Network

Data link

Physical

Application

Page 37: Tema 07_Diseño Arquitectónico

3737

Modelo de referencia: Modelo de referencia: Java EEJava EE

Page 38: Tema 07_Diseño Arquitectónico

3838

Modelo de referencia: Modelo de referencia: .NET: Aplicación Web.NET: Aplicación Web

Page 39: Tema 07_Diseño Arquitectónico

3939

Modelos de control: Modelos de control: control centralizadocontrol centralizado

Programa principal

Rutina 1 Rutina 2 Rutina 3

Rutina 3.1 Rutina 3.2Rutina 1.2Rutina 1.1

Page 40: Tema 07_Diseño Arquitectónico

4040

Modelos de control: Modelos de control: sistemas dirigidos por sistemas dirigidos por eventoseventos

Controlador de eventos y mensajes

Subsistema 1

Subsistema 2

Subsistema 3

Subsistema 4

Page 41: Tema 07_Diseño Arquitectónico

4141

Descomposición Descomposición modular: modelos de modular: modelos de objetosobjetos

issue ()sendReminder ()acceptPayment ()sendReceipt ()

invoice#dateamountcustomer

Invoice

invoice#dateamountcustomer#

Receipt

invoice#dateamountcustomer#

Payment

customer#nameaddresscredit period

Customer

Page 42: Tema 07_Diseño Arquitectónico

4242

Modelos de flujos de datos: Modelos de flujos de datos: sistema de procesamiento de sistema de procesamiento de facturasfacturas

Read issuedinvoices

Identifypayments

Issuereceipts

Findpayments

due

Receipts

Issuepaymentreminder

Reminders

Invoices Payments

Page 43: Tema 07_Diseño Arquitectónico

4343

ConclusionesConclusiones El diseño de la El diseño de la arquitecturaarquitectura de un de un

sistema permite dar sistema permite dar estructuraestructura al mismo. al mismo. Existen diferentes tipos de arquitectura, Existen diferentes tipos de arquitectura, las cuales pueden ser mezcladas.las cuales pueden ser mezcladas.

Resulta útil, en la etapa de requerimientos, Resulta útil, en la etapa de requerimientos, tener al menos un tener al menos un esbozo inicialesbozo inicial de la de la arquitectura del sistema.arquitectura del sistema.

Diferentes estilos arquitectónicos pueden Diferentes estilos arquitectónicos pueden influir en las influir en las características generalescaracterísticas generales de los sistemas.de los sistemas.

Page 44: Tema 07_Diseño Arquitectónico

4444

¿Preguntas?¿Preguntas?