Академический Документы
Профессиональный Документы
Культура Документы
(Diseo y Arquitectura)
Clases 12 y 13
Otoo del 2005
Estructura de la Presentacin
Generalidades
Conclusiones
El Proyecto:
Los desafos:
Jules Park
The Dutchess restaurant
A gravel parking lot
The post office
The marshes (pantanos)
Locally made street signs
Fearings soda shop
The church
The cemetery
... Etc.
Objetivo:
. conocimiento reusable.
Investigacin en Patrones de
Arquitectura
Premisas:
Patrones de Arquitectura de
Software
Patrones: el Reuso de la
Experiencia
Qu es un Patrn?
Un patrn de arquitectura de software es un
esquema genrico probado para solucionar
un problema particular, el cual es recurrente
dentro de un cierto contexto. Este esquema
se especifica describiendo los componentes,
con sus responsabilidades y relaciones.
Ms Caractersticas de los
Patrones
Patrones en la Ingeniera de
Software
Contexto
Problema
requisitos de la solucin
restricciones
propiedades deseables/indeseables
Solucin
Descripcin de Patrones
Descripcin Completa de un
Patrn
Categoras de Patrones
Arquitectnicos
Patrones Simples
Sistemas Distribuidos
Sistemas Interactivos
Modelo-View-Controlador, PresentacinAbstraccin-Control
Patrones Adaptables
MicroKernel, Reflexion
Patrones Arquitectnicos
Simples
Patrones Simples
Layers: Ayuda a estructurar aplicaciones que pueden
ser descompuestas en grupos de subtareas con
distintos niveles de abstraccin (granularidad).
Layers
La arquitectura de layers o capas
ayuda a estructurar aplicaciones que
pueden descomponerse en grupos de
subtareas con diferentes niveles de
abstraccin.
Layers: Contexto
Layers: Problema
Layers: Solucin
Nivel N
Nivel N-1
Nivel N-2
Servicios Utilizables
Servicios Bsicos
Nivel
Bsico
Nivel 2
Nivel 1
Usuario
comp. 2.2
comp. 2.3
Nivel 2
comp. 1.1
comp. 1.2
comp. 1.3
Nivel 1
Layers: Dinmica
Escenario 1:
eventualmente la respuesta
vuelve a la capa N y al
usuario;
Escenario 2:
Escenario 3:
la comunicacin slo
sucede entre ciertas
capas.
Layers: Implementacin
Layers: Implementacin
Layers: Implementacin
Protocolo FTP
Protocolo TCP
Protocolo IP
Protocolo Ethernet
FTP
TCP
IP
Ethernet
Conexin Fsica
Cada protocolo
virtual es estricto.
Variantes
Layers relajados:
Otras Aplicaciones
Mquinas Virtuales.
APIs.
Sistemas de Informacin.
Layers: Consecuencias
Beneficios:
reutilizacin de niveles,
soporte para la
estandarizacin,
los cambios en el
cdigo son locales a
cada nivel.
Desventajas:
ineficiencia
excesivo trabajo,
difcil establecer la correcta
granularidad de los niveles:
pocos niveles no explotan el
5-Tier Architecture
Pipes y Filtros
El patrn de arquitectura de pipes y filtros
provee una estructura para procesar flujos
de datos. Cada paso de procesamiento se
encapsula en un filtro. Los datos se pasan
usando los pipes entre filtros adyacentes.
Recombinando los filtros pueden construirse
distintas familias de sistemas relacionados.
Anlisis
Lexicogrfico
secuencia de tokens
Anlisis
Sintctico/Parsing
Anlisis
Semntico
Generacin de
Cdigo Intermedio
programa AuLait
Optimizacin
AuLait corre en la
mquina virtual CUP.
MIPS
Intel
SPARC
Intrprete
bien ordenadas,
sin estado interno,
independientes.
Fuerzas:
Componentes:
filtros
(transformaciones,
procesamiento local,
asncrono);
pipes (streams);
Conectores:
flujo de datos.
Estructura de control:
Segn Buschmann:
Filtros:
unidades de procesamiento;
enriquece, refina y/o transforma datos;
el procesamiento se inicia:
el elemento siguiente solicita datos (pull),
el elemento anterior enva datos (push),
el filtro tiene un ciclo interno que solicita datos del filtro
anterior y enva datos al siguiente (filtro activo);
Pipes:
Filtro 1
push
Filtro 2
push
Destino de Datos
data
f1
data
f2
data
read
Filtro 1
pull
Filtro 2
pull/push
Destino de Datos
read
f1
data
f2
data
write
determina la
implementacin de
los filtros (activo o
pasivo).
ser independientes y
ordenados.
flexibilidad vs.
performance.
Decidir implementacin
de cada pipe:
Disear e implementar
filtros.
Disear poltica de
errores.
Instalar el sistema.
Analizador
Lexicogrfico
Tabla de Smbolos
Analizador
Sintctico/Parser
Analizador
Semntico
Generador de
Cdigo Intermedio
Beneficios:
los archivos
intermedios no son
necesarios,
flexibilidad,
reutilizacin de filtros,
rpida prototipacin,
eficiencia con
procesamiento
paralelo.
Desventajas:
compartir informacin
de estado es caro y
poco flexible,
ineficiencia por
conversin de datos,
errores pueden
implicar reiniciar el
sistema.
Pizarrn
El patrn de arquitectura de pizarrn es
til para problemas en que no se conoce
una estrategia determinstica para calcular
la solucin. Varios subsistemas
especializados reunen su conocimiento
para construir una solucin parcial
aproximada.
Ejemplos
Visin artificial,
reconocimiento
de imgenes y
voz.
Inteligencia
artificial.
Sistemas
colaborativos de
apoyo a la toma
de decisiones.
bc2
bc1
bc3
acceso
directo
Pizarron
(datos compartidos)
bc7
bc4
bc6
memoria
bc5
cmputo
Pizarrn: Contexto
Pizarrn: Problema
Pizarrn: Problema
Fuerzas:
Pizarrn: Solucin
Cada programa se
especializa en resolver
parte del problema.
Los programas no se
comunican directamente
sino a travs de los
datos.
Se experimenta con
soluciones parciales, se
las combina y se las
desecha.
Coleccin de programas
independientes que
trabajan
colaborativamente sobre
datos compartidos.
Pizarrn: Estructura
Pizarrn:
almacenamiento central de
informacin,
vocabulario: conjunto de
todos los datos que
aparecen en el pizarrn.
Bases de Conocimiento:
subsistemas independientes
especializados,
Control:
monitorea el estado
del sistema y decide
la prxima accin,
las decisiones se
basan en el progreso
o costo del
conocimiento,
detecta estados
finales aceptables e
insolubles.
Presentacin-Abstraccin-Control:
Modelo-View-Controlador
El patrn de arquitectura de modelo-viewcontrolador (MVC) divide una aplicacin interactiva
en tres partes. El modelo contiene los datos y la
funcionalidad esencial. Las views despliegan la
informacin al usuario. Los controladores manejan el
input. Las views y los controladores juntos
componen la interfaz con el usuario. El mecanismo
de cambio-propagacin asegura la consistencia de la
interfaz con el modelo.
Modelo-Vista-Control (MVC)
Sistema de
elecciones polticas.
50
40
La informacin se
30
20
muestra con
distintos formatos.
votacin deben
reflejarse en forma
inmediata.
10
0
Negro Rojo Azul Verde Otro
43%
39%
6%
10%
2%
Negro
Rojo
Azul
Verde
Otro
43
39
6
10
2
Modelo-Vista-Control (MVC)
Contexto: Aplicaciones interactivas con interfaces
humano-computador cambiantes y flexibles.
Problema:
Modelo-Vista-Control (MVC)
Fuerzas:
Modelo-Vista-Control (MVC)
Solucin:
MVC divide la aplicacin
en procesamiento, input
y output.
un controlador. El
controlador recibe
eventos como input
(movimientos del mouse,
activacin de botones) y
los traduce a solicitudes
de servicios del modelo o
la view.
El modelo representa la
funcionalidad y los datos
esenciales, y es
independiente de la
representacin en las
interfaces.
Modelo-Vista-Control (MVC)
Estructura:
Modelo
encapsula la informacin
esencial y exporta
procedimientos que
realizan procesamiento
especfico de la aplicacin;
el mecanismo de cambio-
propagacin mantiene
informados a las views y a
los controladores
dependientes.
View
despliega los datos
para el usuario;
tienen procedimientos
de actualizacin para
recibir nuevos datos.
Controlador
existe un controlador
para cada view;
Controlador_Tr
Controlador_Ba
Base de votos
Barras
Controlador_Tb
Tabla
MVC: Dinmica
evento
Modelo
servicio
View
notificacin
actualizar
obtener datos
actualizar
obtener datos
desplegar
Modelo-Vista-Control (MVC)
Implementacin:
Separar la funcionalidad
esencial de la interaccin
humano-computador.
Implementar el
mecanismo de cambiopropagacin.
Disear e implementar
las views.
Disear e implementar
los controladores.
Disear e implementar la
relacin entre views y
controladores.
Implementar:
La inicializacin del MVC
completo,
La creacin de dinmica de
views,
La controladores que
capturan diferentes
eventos,
La infraestructura jerrquica
para views y controladores,
La ms desacoplamiento
de las dependencias del
sistema.
Modelo-Vista-Control (MVC)
Consecuencias:
Beneficios:
mltiples views para el
mismo modelo,
views sincronizadas,
views y controladores
intercambiables.
Desventajas:
mayor complejidad,
excesivos cambios
potenciales,
ineficiencia en el acceso
a los datos desde la view,
Modelo-Vista-Control
Observer
Composite
Strategy
Decorator
Factory method
Presentacin-Abstraccin-Control
(PAC)
El patrn de arquitectura PAC define una estructura
jerrquica de agentes cooperativos. Cada agente es
responsable de un aspecto especfico de la
funcionalidad de la aplicacin y est compuesto por
tres componentes: presentacin-abstraccincontrol. Esta subdivisin separa los aspectos de HCI
de los agentes, del ncleo funcional de cada uno y
de los mecanismos de comunicacin con otros
agentes.
Presentacin-Abstraccin-Control (PAC)
Ejemplo: Consideremos un Sist. de Informacin Electoral.
-
1tr.
Este
20
Oeste 30
Norte 47
2tr.
25
38
47
3tr. 4tr.
90 20
32 32
45 45
90
80
70
60
50
40
30
20
10
0
Este
Oeste
Norte
1er
trim.
2do
trim.
2tr
Usuario
Hoja de Clculo
1tr
3er
trim.
4tr
3tr
4to
trim.
Presentacin-Abstraccin-Control (PAC)
Ejemplo (cont.):
-
Presentacin-Abstraccin-Control
Fuerzas:
Presentacin-Abstraccin-Control
Solucin:
Presentacin-Abstraccin-Control
Solucin:
Acceso a Datos
Controlador
de Vistas
Hoja de
Clculo
Grfico
Torta
Grfico
Lneas
Intermedio
Grfico
Barras
Presentacin-Abstraccin-Control
Solucin:
Presentacin-Abstraccin-Control
Estructura: cada agente representado en la
jerarqua tiene la siguiente estructura.
Controlador de Vistas
Abstraction
Control
InteractionData
BarData
SetChartData
GetChartData
SendMsg
ReceiveMsg
GetData
Presentation
PresentationData
Update
Open
Close
Zoom
Print
Presentacin-Abstraccin-Control
Dinmica: para cada escenario que sea
representativo, es necesario definir la dinmica
de las clases que forman parte de la estructura.
Definir al menos un par de escenarios.
Consecuencias:
MicroKernel
Ejemplos de sistemas MicroKernel son los sistemas operativos:
NextSTEP, UNIX System V, MS Windows, OS/2 Warp.
MicroKernel
Solucin:
- Encapsular los servicios fundamentales de la
plataforma de aplicacin, en un componente
microkernel. El microkernel incluye la
funcionalidad que permite a otros componentes,
ejecutar en forma separada (como proceso) y
comunicarse entre ellos. Este es conocido como
internal server.
MicroKernel
Estructura:
MicroKernel
External Server
receiveRequest
dispatchRequest
executeService
calls
executeMechanism
initComunication
findReceiver
activate
createHandle
sendMsg
callInternalServer
Internal Server
executeService
receiveRequest
sends
request
Adapter
callService
createRequest
Client
doTask
Calls service
MicroKernel
Dinmica: Idem a patrones anteriores.
Consecuencias:
Recomendaciones Generales
Desempeo.
Seguridad.
Recomendaciones Generales
Disponibilidad.
Recomendaciones Generales
Mantenibilidad.
Conclusiones