clase 08a estilos_arquitectonicos

Post on 28-Jun-2015

1.191 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Estilos Arquitectónicos(Arquitectura de Software para Practicantes)

Universidad de los AndesDemián Gutierrez

Marzo 2013

2

Diseño Arquitectónico

Diseño Arquitectónico

Arquitectura del Software

Bibliotecas /Componentes

Patrones de Diseño

Clases / Funciones

Frameworks(Marcos)

Estilos Arquitectónicos

3

Diseño Arquitectónico

¿qué es un estilo?

¿qué es un estiloarquitectónico?

4

Estilos Arquitectónicos

Art Deco Modernismo

aunque conste que sigo pensando que la comparacióndel software con la ingeniería civil es muy desafortunada

5

Estilos Arquitectónicos

aunque conste que sigo pensando que la comparacióndel software con la ingeniería civil es muy desafortunada

6

¿Estilos Arquitectónicos?

Un estilo arquitectónico define una familia de sistemas (cierto tipo de sistemas) en términos de patrones estructurales, de

control, de comunicación, etcétera

Sommerville (Cap 11)

7

Estilos Arquitectónicos

Un conjunto de conectores entre componentes(comunicación, coordinación, cooperación, etcétera)

Restricciones que definen cómo se integranlos componentes para formar el sistema

Un conjunto de componentes y (con sus responsabilidades)

Modelos que permiten comprender laspropiedades de un sistema general en función de laspropiedades conocidas de las partes que lo integran

un estilo arquitectónico describe

Fuente: Pressman (Cap 10)

¿no suena todo esto sospechosamente parecido alconcepto de arquitectura de software?

8

Diseño Arquitectónico

un estilo arquitectónico define(a alto nivel)

la arquitectura de un sistema

La arquitectura de un sistema de software puede basarse en uno (o en varios)

modelos o estilos arquitectónicos bien conocidos

Sommerville (Cap 11)

9

Estilos Arquitectónicos

para todas losestilos arquitectónicos

(arquitecturas)es necesario preguntarse:

¿en qué contextos aplica?¿qué ventajas tiene el estilo?

¿qué desventajas tiene?¿cómo se combina con otros estilos?

10

Estilos ArquitectónicosImpacto en los Requisitos NF

EscalabilidadPortabilidad ReusabilidadDisponibilidad

Facilidad dePrueba

EficienciaMemoria/EjecuciónMantenibilidad

¿de qué forma impacta el uso de un estiloen las propiedades del sistema?

Seguridad RendimientoConfiabilidad Extensibilidad

...otras...

11

Estilos Arquitectónicos¿Acoplamiento / Cohesión?

Acoplamiento Cohesión

¿será posible analizar un estilo arquitectónicoen función de estos dos conceptos?

¿qué hay sobre estos dos conceptos?

12

Estilos Arquitectónicos¿La importancia de la responsabilidad?

Responsabilidades

¿cuáles son las responsabilidades decada bloque/parte de la arquitectura?

13

Diseño Arquitectónico

algunos estilosarquitectónicos bien

conocidos

14

Arquitectura Monolítica

Fuente: http://en.wikipedia.org/wiki/Monolithic_application

Una arquitectura monolítica describe una aplicación en la que toda la

funcionalidad del sistema (ej. acceso a datos, interfaz de usuario, lógica,

etcétera) está implementada y mezclada en un solo bloque.

Esto, en la gran mayoría de los casos, no es una buena idea...

¿por qué?Sistema

TODO EL SISTEMA

¿impacto sobre el acoplamiento y la cohesiónresponsabilidades, otras características?

15

Arquitectura Monolítica(Un Ejemplo)

Programa ClienteCódigo cliente general, interfaces de usuario, lógica, todo mezclado

con el SQL, con el código encargado del acceso a la BD, etc.

Si es necesario cambiar el código de acceso a la BD,(por ejemplo, migrar de MySQL a PostgreSQL)

¿el trabajo se hace fácil o difícil?

16

Arquitectura Monolítica(Un Ejemplo / Una Mejora)

Programa Cliente

DAOs / DTO

Código SQL junto al código encargado del

acceso a la BD

Código cliente general, interfaces de usuario,

lógica, etc.

Si es necesario cambiar el código de acceso a la BD,(por ejemplo, migrar de MySQL a PostgreSQL)

¿el trabajo se hace fácil o difícil?

17

Estilos Arquitectónicos(Tuberías y Filtros)

Filtro 1

Filtro 2

Filtro 3

Filtro 5Filtro 4

Tuberías(Flujo de Datos /

Información)

Filtros(Transformación

de Datos / Información)

Tuberías y Filtros

¿Impacto sobre el acoplamiento y la cohesión?

18

Estilos Arquitectónicos(Tuberías y Filtros)

Tuberías y Filtros

19

Estilos Arquitectónicos(Tuberías y Filtros)

Tuberías y FiltrosEl “pipeline” de OpenGL

20

Arquitectura por Capas

Arquitectura por Capas

¿Impacto sobre el acoplamiento y la cohesión?

Capa 1

Capa 2

Capa N

...

API (Application

Programming Interface)

Interfaz

Mas S

e guridad / Prote cción

Menos A

bstrac ción

21

Arquitectura por Capas(La Infame Arquitectura a 3 Capas)

Capa de Presentación

(Interfaz Gráfica de Usuario)

(HTML, Swing, Qt, GTK, etcétera)

Capa de Proceso / Negocio

(Lógica / Reglas de Negocio)

Capa de Persistencia BD

Arquitectura a tres Capas

(muy utilizada en aplicaciones empresariales)

22

Arquitectura por Capas(Sistemas Operativos)

Arquitectura por Capas

23

Estilos Arquitectónicos(Repositorio / Pizarrón)

Aplicación / Modulo 1

Aplicación / Modulo 2

Aplicación / Modulo 3

Aplicación / Modulo 4 ...

Aplicación / Modulo N

Repositorio(Base de Datos, Sistema de Archivos,

Memoria Compartida, etcétera)

Repositorio / Pizarrón

¿Impacto sobre el acoplamiento y la cohesión?

24

Estilos Arquitectónicos(Control Centralizado - Síncrono)

Control Centralizado

Programa Principal

Rutina 1 Rutina 2 Rutina 3

Rutina 1.1 Rutina 1.2 Rutina 2.1 Rutina 2.1 Rutina 3.1 Rutina 3.2

25

Estilos Arquitectónicos(Control Centralizado - Asíncrono)

Control Centralizado

¿Impacto sobre el acoplamiento y la cohesión?

Controladordel Sistema

ProcesosTipo 1

(Ej: Sensores)

ProcesosTipo 2

(Ej: Cálculo)

ProcesosTipo 4

(Ej: Actuadores)

ProcesosTipo 3

(Ej: Fallos)

ProcesosTipo 5

(Ej: Fallos)

26

Estilos Arquitectónicos(Sistemas Dirigidos por Eventos)

Cada subsistema genera eventos según su condición y define que eventos de otros subsistemas desea atender

Manejador de Eventos

Subsistema 1

Subsistema 2

...Subsistema

N

El manejador de eventos se encarga de enviar los eventos generados a aquellos sistemas interesados en recibirlos

¿Impacto sobre el acoplamiento y la cohesión?

27

Arquitectura Cliente-Servidor

Cliente 1

Cliente 2

Cliente N

...

Servidor 1

Servidor N

...

Petición

Respuesta

RedInternet,

LAN, WAN

Cliente Servidor

28

Arquitectura Cliente-Servidor(Liviano vs Pesado)

¿Cliente “Liviano” vs Cliente Pesado?

ClienteServidor

Petición

Respuesta

Red

29

Arquitectura WEB(Contenido Estático)

Petición: GET index.html

Respuesta:

Servidor

Cliente

navegadorWEB

(Ej. Firefox)

servidorWEB

(Ej. Apache)index.html

Arquitectura WEB(Contenido Estático)

30

Arquitectura WEB(Contenido Dinámico)

Arquitectura WEB(Contenido Dinámico)

Petición: GET index.php

Respuesta:

Servidor

Cliente

navegadorWEB

(Ej. Firefox)

motor dePHP

resultadoen HTML

Servidor

BD

index.php

31

Diseño Arquitectónico

¿cómo se podría combinarel estilo cliente-servidorcon los otros estilos que

hemos discutido?

32

Estilos Arquitectónicos(Sistema Distribuido / Arquitecturas Peer To Peer)

P1

P7P4

P6P2

P8P3

P5

P9

Un par puede jugar un rol de

cliente y/ode servidor,

dependiendo de las necesidades

del momento

Cada uno de los pares descubre a sus otros pares y establecen conexiones al mismo nivel

(no de forma jerárquica)cooperando para lograr un objetivo determinado

33

Estilos Arquitectónicos(Arquitecturas de Referencia)

Normalmente se obtienen por medio del estudio de

un tipo de aplicación(de un dominio en

particular)

Representan una arquitectura “ideal” que

incluye todas las características que cierto

tipo de sistema podría/debería incorporar

34

Gracias

¡Gracias!

top related