Professional Documents
Culture Documents
Patrones de Arquitectura
Un patrn de arquitectura de software es:
un esquema genrico probado para solucionar un problema particular recurrente que surge en un cierto contexto. Este esquema se especifica describiendo: las componentes, sus responsabilidades, relaciones, y las formas en que colaboran.
Qu es un Patrn?
Patrn
Contexto
Situacin de diseo que da lugar al problema.
Problema
Conjunto de fuerzas que surgen del contexto.
Solucin
Configuracin para balancear las fuerzas: Componentes y relaciones, Comportamiento dinmico.
Descripcin de un Patrn
Ejemplo Nombre Contexto Problema Solucin Estructura Dinmica Implementacin Resolucin del ejemplo Variantes Usos conocidos Consecuencias Ejemplo conocido de la literatura Nombre descriptivo Situacin en que surge el problema Fuerzas que surgen en el contexto Configuracin que balancea las fuerzas Diagramas que describen la configuracin Descripcin del comportamiento. Escenarios Gua para implementar el patrn Aplicacin del patrn al ejemplo Alternativas para resolver el ejemplo Descripcin de problemas donde se aplica Ventajas y Desventajas
Es la estructura tpica de un sistema de procesamiento de datos tradicional por lotes (batch). Cada proceso se ejecuta completamente antes de comenzar la ejecucin del siguiente.
Escribir ingls
Escribir chino
11
secuencia de tokens
Anlisis Sintctico/Parser
programa AuLait
Optimizacin
12
13
Fuerzas:
Futuros cambios intercambiando algunos filtros. Pequeas transformaciones son ms fcilmente reutilizadas. Los datos pueden tener diferentes formatos.
14
Buschmann:
el sistema se divide en varios pasos secuenciales de procesamiento los pasos se conectan con flujos de datos cada filtro consume y procesa sus datos en forma incremental el origen de los datos, el destino y los filtros se conectan con tubos que implementan el flujo de datos entre pasos de procesamiento.
15
16
17
Destino de datos:
a l llegan los resultados del procesamiento del sistema existen destinos activos (pull) y pasivos
18
El Ejemplo
Parser
bool yyparse() call yylex call semantic check read pipe
Intrprete AuLait
int getchar()
Scanner
token yylex() call getchar
Analizador Semntico
call codgen
tubo UNIX
read write write pipe
Input
int getchar()
Generador de Cdigo
writeCodeByte()
19
Filtro 1 push
write
Filtro 2 push f1
data
Data Sink
write
f2
data
write
20
Data Source
read
data
Filtro 2 pull/push f1
Data Sink
data
f2
data
write
21
22
Tabla de Smbolos
Analizador Sintctico/Parser
Analizador Semntico
23
Desventajas:
compartir informacin de estado es caro y poco flexible ineficiencia por conversin de datos errores pueden implicar reiniciar el sistema.
24
25
26