Sei sulla pagina 1di 15

Ingeniera de Software Arquitectura y Diseo [2]

Hernn Astudillo Departamento de Informtica Universidad Tcnica Federico Santa Mara <hernan at inf.utfsm.cl>

P Introduccin de vida y P Proceso deciclo P Manejo de proyectos P Anlisis Requerimientos Arquitectura y Diseo

Contenidos hasta ahora

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

[*** Motivacin ***]


bottom-up

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

Estilos y patrones

Estilos de arquitectura
Propuestos por Shaw+Garlan Identificados va estudio de comunidades Estilo = definicin de una familia de sistemas en trminos de un patrn de organizacin estructural Un estilo define:
vocabulario de tipos de componentes y conectores restricciones de combinacin uno o ms modelos semnticos para determinar propiedades del todo a partir de las partes

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

Estilos
Procesamiento descompuesto en sub-unidades
Pipes and filters Tipos de datos abstractos (estado encapsulado) Basado en eventos (invocacin implcita) Sistemas en capas Repositorios Intrpretes Control de procesos (bucles)

Estilos heterogneos
Mezclas de estilos Ejemplos
Unix: capas, pipes, event-driven
Sesin 05 [2004/iv/20] Ingeniera de Software - H.Astudillo 6

Estilo: pipes & filters


Vocabulario: filtros y pipes Estructuras permisibles: salidas a entradas Invariantes: filtros son independientes
(no comparten estado con otros filtros)

Especializaciones: Ejemplos

pipelines (topologa lineal) sistema secuencial en lotes (batch) programacin shell Unix

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

Estilo: repositorio
Estado compartido por varios componentes Vocabulario:
repositorio (almacenamiento central) componentes (almacenar, recuperar, actualizar)

Especializaciones

blackboard: almacn crentral lanza procesamiento bases de datos: transacciones (externas) lanzan procesamiento

Ejemplos Nota: nada se dice sobre la implementacin de la comunicacin ni del repositorio


Sesin 05 [2004/iv/20] Ingeniera de Software - H.Astudillo 8

Crtica Estilos
Catlogos de estilos son listas de soluciones A veces la categorizacin sorprende
No es ortogonal Ejemplo: blackboard y bases de datos como especializaciones de repositorio
blackboard: mecanismo de comunicacin va elemento central base de datos: mecanismo de integridad transaccional (propiedades ACID)

Un blackboard puede implantarse va una base de datos


Niveles de abstraccin diferentes

Otra posible implantacin


LDAP-based XML replication (f Dynamic Web Publ)

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

Patrones de diseo
Patrones de diseo
Heursticas sistematizadas Originados en comunidad de POO [Gamma+]

Patrn = ...

una solucin (descripcin) a un problema en un contexto (evaluacin de fuerzas y comentarios) Elaboracin, aprobacin y publicacin Comunidad fuerte y combativa J

Proceso: patrones

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

10

Patrones de Buschman+
Categoras de patrones
Estructurales (from mud to structure)
Capas (layers) Pipes & Filtros Pizarra (blackboard)

Sistemas distribuidos
Broker

Sistemas interactivos
MVC: Model-View-Controller Presentacin-Abstraccin-Control

Sistemas adaptables
Reflexin Micro-kernel
Sesin 05 [2004/iv/20] Ingeniera de Software - H.Astudillo 11

Patrn de arquitectura: MVC


MVC: Model-View-Controller
Modelo: elemento de inters para observar/manipular Vista: representacin (grfica u otra) Controlador: manejo y control de vistas de un modelo

Ejemplos famosos
Smalltalk Struts (framework Web)

Especializaciones

Observer-Oberved Publisher-Subscriber

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

12

Niveles de abstraccin
Ejemplo
Problema: comunicar al profesor con sus alumnos
topologa 1:M, mensajes infrecuentes, conexiones espordicas

Solucin: usar publisher-subscriber Refinamiento: usar lista de correos para implantar


producto existente (minimizamos desarrollo y sus riesgos) se ajusta exactamente a las propiedades arriba

Nota: este mecanismo tambin permite otras polticas de comunicacin, por lo que dependemos de uso disciplinado

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

13

Patrones: Resumen
Avance notable
...desde estilos descriptivos ...a patrones clsicos de sistemas ...a patrones de integracin

Patrones
Frutos de la experiencia Heursticas sistematizadas

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

14

Recursos y referencias
Software Engineering: Theory and Practice (2nd Ed.)
Shari Pfleeger Prentice Hall (2001) Cap. 5

Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall (1996)


Mary Shaw, David Garlan

Sesin 05 [2004/iv/20]

Ingeniera de Software - H.Astudillo

15

Potrebbero piacerti anche