Vous êtes sur la page 1sur 44

Ingeniera de

Software
Diseo Arquitectnico

Prof. Pedro G. Campos

Diseo Arquitectnico

Sistemas grandes se pueden


descomponer en subsistemas.
Diseo Arquitectnico:
Proceso inicial para identificar
subsistemas y establecer la
comunicacin entre ellos y su control.
De acuerdo a ISO/IEC 42010

La arquitectura (de un sistema o software)


corresponde a los conceptos o propiedades
fundamentales de un sistema sus
elementos, relaciones, y los principios de su
diseo y evolucin.
2

Diseo Arquitectnico

Architecture in the small: arquitectura de


programas individuales. En este caso,
interesa la forma en que se descompone el
programa en mdulos

Architecture in the large: arquitectura de


grandes y complejos sistemas empresariales
que incluyen otros sistemas. Estos sistemas
empresariales suelen estar distribuidos en
diferentes computadores, que pueden ser
propiedad de (y administrados por)
diferentes compaas.
3

Diseo Arquitectnico

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

Diseo Arquitectnico

5
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, 20

Diseo Arquitectnico

6
Arquitectura del sistema de recomendacin de Netflix.
Fuente: Amatriain, X. and Basilico, J. System Architectures for Personalization and Recommendation. Netflix Tech Blog, techblog.ne

Diseo Arquitectnico

Ventajas de especificacin del diseo y


documentacin de una arquitectura de
software:
Comunicacin entre los stakeholders
Anlisis del sistema

Afectarn desempeo, fiabilidad y mantenibilidad

Reutilizacin a gran escala

La arquitectura se puede transferir a sistemas con


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

Diseo Arquitectnico

Actividades comunes
1. Estructuracin del sistema:

Se estructura en varios subsistemas (unidad de


software independientes)

2. Modelado de control:

Son las relaciones de control entre las partes del


sistema.

3. Descomposicin modular:

Cada subsistema se descompone en mdulos.

Diseo Arquitectnico

No existe una distincin clara entre


subsistemas y mdulos pero es til
distinguirlos:
1. Subsistema:

Es un sistema por si mismo cuya operacin no


depende de otro subsistema.

2. Mdulo:

Es por lo regular un componente del sistema


que suministra servicios a otros mdulos.

Diseo Arquitectnico

Representacin
Se usan comnmente diagramas de bloques,
simples e informales, mostrando las entidades
(mdulos/subsistemas) y relaciones entre ellas.
Muchas veces se critica la falta de formalismo y
semntica.
Sin embargo, esta representacin es til para la
comunicacin con los stakeholders y para la
planificacin del proyecto

10

Diseo Arquitectnico

Modelo de 4 + 1 vistas de arquitectura de


software
Vista lgica, que muestra las principales abstracciones
en el sistema.
Vista de proceso, que muestra cmo, en tiempo de
ejecucin, interactan los procesos que componen el
sistema.
Vista fsica, que muestra el hardware del sistema y
cmo se distribuyen los componentes de software en los
procesadores del sistema.
Vista de desarrollo, que muestra cmo se descompone
el software para el desarrollo.
Relacin con casos de uso o escenarios (+1).
11

12
Arquitectura del sistema de recomendacin de Netflix.
Fuente: Amatriain, X. and Basilico, J. System Architectures for Personalization and Recommendation. Netflix Tech Blog, techblog.ne

Diseo Arquitectnico

Uso de modelos arquitectnicos


Facilita la discusin sobre el diseo general del
sistema.
Permite documentar la arquitectura que se ha
diseado.

13

Diseo Arquitectnico y
caractersticas del
sistema
Rendimiento

Localizar operaciones crticas y minimizar


comunicaciones. Usar componentes grandes
Seguridad
Utilizar una arquitectura de capas con los elementos
crticos en las capas internas
Localizar las caractersticas crticas en un nmero
pequeo de subsistemas.
Disponibilidad
Incluir componentes redundantes y mecanismos para
tolerancia a fallos
Mantenibilidad
Utilizar componentes pequeos y reemplazables
14

Modelos Arquitectnicos

Arquitectura de depsito repositorio o base de


datos centralizada (repository architecture):
El intercambio de datos entre mdulos se realiza por
medio de un depsito central.
Es particularmente til cuando se deben intercambiar
grandes volmenes de datos entre mdulos.
Permite una alta independencia entre mdulos, y
facilita la mantencin de la consistencia de los datos.
El repositorio se transforma en un punto crtico, por lo
que un fallo en l afecta a todo el sistema.

15

El modelo de depsito: la
arquitectura de una
herramienta CASE de tipo
entorno
Editor de
diseo

Traductor
de diseo

Generador
de cdigo

Depsito de
proyectos

Analizador
de diseo

Editor de
programas

Generador
de Informes
16

Modelos Arquitectnicos

Arquitectura cliente-servidor (client-server


architecture):
La funcionalidad de los sistemas se organiza en torno a
servicios.
Cada servicio es proporcionado por un servidor diferente.

Un servidor en este modelo es un proceso lgico.


Pueden ejecutarse varios servidores en un mismo computador.

Es til cuando se necesita acceso desde diferentes


lugares, y en casos en que la carga del sistema es
variable.
Permite que los servidores sean distribuidos en una red.
Cada servicio es un posible punto de falla. El rendimiento
depende tanto de la red como del resto del sistema.
17

El modelo cliente-servidor:
biblioteca de pelculas e
imgenes
Cliente 1
Cliente 2
Cliente 3
Cliente 4
Red de banda ancha

Servidor de
catlogos

Servidor de
videos

Servidor de
imgenes

Servidor de
hipertexto

Catlogo

Archivos de
clips de videos

Fotografas
digitalizadas

Web de
hipertexto
18

Sistema cliente
servidor de cajero
automtico (ATM)
ATM

ATM

Account server
TeleCustomer
processing account
monitor
database

ATM
ATM

19

Clientes gruesos (fat) o


delgados (thin)

Modelo cliente delgado (thin client)

Todo el procesamiento y
administracin de los datos es hecha
por el Servidor. El cliente solo ejecuta
una aplicacin de despliegue.

Modelo cliente grueso (fat client)

El servidor es solo responsable por el


almacenamientio de los datos.
20

Clientes gruesos (fat) o


delgados (thin)
Presentation
Thin-client
model

Data management
Application
processing

Client

Presentation
Application processing
Fat-client
model

Client

Server

Server
Data
management

21

Modelos Arquitectnicos

Arquitectura de capas (layered architecture):


Organiza el sistema como un conjunto de capas (o
mquinas abstractas), cada una de las cuales
provee un conjunto de servicios relacionados.
Las capas de mayor nivel utilizan servicios
provistos por las capas de menor nivel.
Permite el reemplazo de capas completas,
mientras la interfaz se mantenga.
Suele ser difcil conseguir una separacin limpia
entre capas. Puede llevar a problemas de
rendimiento por el paso por mltiples niveles.
22

El modelo de capas (mquina


abstracta): sistema de
administracin de versiones
Administrador de versiones
Administrador de archivos fuente
Sistema de Bases de Datos
Sistema
Operativo

23

Modelos Arquitectnicos

Arquitectura Modelo-Vista-Controlador (MVC,


Model-View-Controller architecture):
Separa la presentacin (e interaccin) de los datos
del sistema.

El sistema se estructura en torno a componentes lgicos de


tres tipos.
El modelo administra los datos y las operaciones sobre ellos.
La vista se encarga de presentar los datos a los usuarios.
El controlador gestiona la interaccin del usuario (teclas,
clicks de mouse, etc.).

Permite gestionar de forma independiente los


datos y la presentacin de ellos.
24

Modelo MVC: aplicacin


Web

25

Mezcla de modelos:
Arquitectura C/S de 3
capas
Presentation
Client

Server

Server

Application
processing

Data
management

26

Arquitectura de Sitios
Web

27

Arquitectura de Sitios
Web Dinmicos

28

Arquitectura de
Aplicaciones Web

29

Arquitectura de
Aplicaciones Web

30

Arquitectura de
Aplicaciones Web

31

Arquitectura de
Aplicaciones Web

32

Arquitectura de
Aplicaciones Web

33

Arquitectura de
Aplicaciones Web

34

Modelo genrico: flujo de


datos de un compilador
Tabla de
smbolos

Anlisis
lxico

Anlisis
sintctico

Anlisis
semntico

Generacin
de cdigo

35

Modelo de referencia: la
arquitectura OSI
7

Application
Application

Application

Presentation

Presentation

Session

Session

Transport

Transport

Network

Network

Network

Data link

Data link

Data link

Physical

Physical

Physical

Communica tions medium


36

Modelo de referencia:
Java EE

37

Modelo de referencia:
.NET: Aplicacin Web

38

Modelos de control:
control centralizado
Programa
principal

Rutina 1

Rutina 1.1

Rutina 1.2

Rutina 2

Rutina 3

Rutina 3.1

Rutina 3.2

39

Modelos de control:
sistemas dirigidos por
eventos
Subsistema
1

Subsistema
2

Subsistema
3

Subsistema
4

Controlador de eventos y mensajes

40

Descomposicin
modular: modelos de
objetos
Customer

customer#
name
address
credit period

Payment
invoice#
date
amount
customer#

Receipt

Invoice
invoice#
date
amount
customer

invoice#
date
amount
customer#

issue ()
sendR eminder ()
acceptPayment ()
sendR eceipt ()

41

Modelos de flujos de datos:


sistema de procesamiento de
facturas

Read issued
invoices

Invoices

Issue
receipts

Receipts

Find
payments
due

Issue
payment
reminder

Identify
payments
Reminders

Payments

42

Conclusiones

El diseo de la arquitectura de un
sistema permite dar estructura al mismo.
Existen diferentes tipos de arquitectura,
las cuales pueden ser mezcladas.
Resulta til, en la etapa de requerimientos,
tener al menos un esbozo inicial de la
arquitectura del sistema.
Diferentes estilos arquitectnicos pueden
influir en las caractersticas generales
de los sistemas.
43

Preguntas?

44

Vous aimerez peut-être aussi