Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniera de Software II
Lic. Lilian Demattei
Tipos de Arquitecturas.
Mdulos y Ocultamiento de
1975: Brooks Informacin.
Estructuras de software y Familias
Arquitectura como la de Programas.
especificacin completa de la IU. Bsqueda de Calidad del Software.
Arquitectura (Qu?) vs. Decisiones de Diseo Tempranas.
Implementacin (Cmo?)
Historia de la Arquitectura de DS
1960 (Simula) TADs y Clases, Smalltalk
1980s: POO Teora: Modelar el Dominio del problema e
implementarlo en un lenguaje POO.
Funcionamiento . . . . .
Conceptos de AS Clasificacin de Vistas segn
Jamers Rumbaugh, Ivar Jacobson, Grady Booch
rea Vista Diagramas Conceptos principales
Gestin del Vista de gestin del Diagrama de clases Paquete, subsistema, modelo
modelo modelo
Conceptos de AS
Procesos y Metodologas: Relacionadas a las
vistas dinmicas. Mtodos Pesados (CMM) vs.
Mtodos giles (XP,FDD,etc.).
Abstraccin: consiste en extraer las
propiedades esenciales, o identificar los
aspectos importantes, o examinar
selectivamente ciertos aspectos de un
problema, posponiendo o ignorando los detalles
menos sustanciales, distractivos o irrelevantes.
Escenarios (Guin o Libreto): casos de uso
(secuencias de responsabilidades) y casos de
cambio (modificaciones propuestas al sistema)..
Investigacin y Evolucin en AS
David Garlan y Dewayne Perry : en su
introduccin al volumen de abril de 1995 de IEEE
Transactions on Software Engineering dedicado a la AS
Lenguajes de descripcin de arquitecturas.
Fundamentos formales de la AS (bases matemticas,
caracterizaciones formales de propiedades extra-funcionales
tales como mantenibilidad, teoras de la interconexin, etctera).
Tcnicas de anlisis arquitectnicas.
Mtodos de desarrollo basados en arquitectura.
Recuperacin y reutilizacin de arquitectura.
Codificacin y gua arquitectnica.
Herramientas y ambientes de diseo arquitectnico.
Estudios de casos
Investigacin y Evolucin en AS
Paul Clements [Cle96b] (Reusabilidad): define cinco temas
fundamentales en torno de los cuales se agrupa la disciplina.
1. Diseo o seleccin de la arquitectura: Cmo crear o seleccionar una
arquitectura en base de requerimientos funcionales, de rendimiento o de
calidad.
2. Representacin de la arquitectura: Cmo comunicar una arquitectura.
Este problema se ha manifestado como el problema de la representacin de
arquitecturas utilizando recursos lingsticos, pero el problema tambin
incluye la seleccin del conjunto de informacin a ser comunicada.
3. Evaluacin y anlisis de la arquitectura: Cmo analizar una arquitectura
para predecir cualidades del sistema en que se manifiesta. Un problema
semejante es cmo comparar y escoger entre diversas arquitecturas en
competencia.
4. Desarrollo y evolucin basados en arquitectura: Cmo construir y
mantener un sistema dada una representacin de la cual se cree que es la
arquitectura que resolver el problema correspondiente.
5. Recuperacin de la arquitectura: Cmo hacer que un sistema legacy
evolucione cuando los cambios afectan su estructura; para los sistemas de
los que se carezca de documentacin confiable, esto involucra primero una
arqueologa arquitectnica que extraiga su arquitectura.
Arquitectura vs. Diseo
Taylor y Medvidovic [TM00]: sealan que la literatura
actual mantiene en un estado ambiguo la relacin entre
ambos campos, albergando diferentes interpretaciones
y posturas:
1. Una postura afirma que arquitectura y diseo son lo mismo.
2. Otra, en cambio, alega que la arquitectura se encuentra en un
nivel de abstraccin por encima del diseo, o es simplemente
otro paso (un artefacto) en el proceso de desarrollo de
software.
3. Una tercera establece que la arquitectura es algo nuevo y en
alguna medida diferente del diseo (pero de qu manera y en
qu medida se dejan sin especificar).
La arquitectura y el diseo sirven al mismo propsito.
Sin embargo, el foco de la AS en la estructura del
sistema y en las interconexiones la distingue del diseo
de software tradicional
Tipos de Arquitecturas
Estilos ms relevantes de
desarrollo de software
Estilos de Flujo de datos (EFD)
Esta familia de estilos enfatiza
la reutilizacin y la
modificabilidad. Es apropiada
para sistemas que
implementan
transformaciones de datos en
pasos sucesivos. Ejemplares
de la misma seran las
arquitecturas de tubera- Ej. Unix, Compiladores, XML
filtros y las de proceso Rfaga SAX, SGBD, Workflow.
secuencial en lote.
Caractersticas del Estilo EFD
El estilo se debe usar cuando:
Se puede especificar la secuencia de un nmero conocido de
pasos.
No se requiere esperar la respuesta asincrnica de cada paso.
Se busca que todos los componentes situados corriente abajo
sean capaces de inspeccionar y actuar sobre los datos que
vienen de corriente arriba (pero no viceversa).
Ventajas:
Es simple de entender e implementar. Es posible implementar
procesos complejos con editores grficos de lneas de tuberas
o con comandos de lnea.
Fuerza un procesamiento secuencial.
Es fcil de envolver (wrap) en una transaccin atmica.
Los filtros se pueden empaquetar, y hacer paralelos o
distribuidos.
Caractersticas del Estilo EFD
Desventajas:
El patrn puede resultar demasiado simplista, especialmente
para orquestacin de servicios que podran ramificar la
ejecucin de la lgica de negocios de formas complicadas.
No maneja con demasiada eficiencia construcciones
condicionales, bucles y otras lgicas de control de flujo.
Agregar un paso suplementario afecta la performance de cada
ejecucin de la tubera.
Una desventaja adicional referida en la literatura sobre estilos
concierne a que eventualmente pueden llegar a requerirse
buffers de tamao indefinido, por ejemplo en las tuberas de
clasificacin de datos.
El estilo no es apto para manejar situaciones interactivas,
sobre todo cuando se requieren actualizaciones incrementales
de la representacin en pantalla.
La independencia de los filtros implica que es muy posible la
duplicacin de funciones de preparacin que son efectuadas
por otros filtros (por ejemplo, el control de correccin de un
objeto de fecha).
Ejemplo del Estilo Tubera- Filtro
en una Aplicacin Web
La aplicacin tpica del estilo es un procesamiento
clsico de datos: el cliente hace un requerimiento; el
requerimiento se valida; un Web Service toma el objeto
de la base de datos; se lo convierte a HTML; se efecta
la representacin en pantalla.
Order Processing Pipeline proporciona la secuencia
de pasos necesaria para procesar las compras en un
sitio de Web. En la primera etapa, se obtiene la
informacin del producto de la base de datos de
catlogo; en la siguiente, se procesa la direccin del
comprador; otra etapa resuelve la modalidad de pago;
una etapa ulterior confecciona la factura y otra ms
realiza el envo del pedido. Cada etapa de la tarea
representa una categora de trabajo.
Estilos Centrados en Datos (ECD)
Esta familia de estilos enfatiza la
integrabilidad de los datos. Se estima
apropiada para sistemas que se
fundan en acceso y actualizacin de
datos en estructuras de
almacenamiento. Sub-estilos
caractersticos de la familia seran los
repositorios, las bases de datos, las
arquitecturas basadas en hipertextos
y las arquitecturas de pizarra.
ECD Pizarra o Repositorio
En esta arquitectura hay dos componentes principales:
una estructura de datos que representa el estado actual
y una coleccin de componentes independientes que
operan sobre l [SG96]. En base a esta distincin se
han definidos dos subcategoras principales del estilo:
Si los tipos de transacciones en el flujo de entrada definen los
procesos a ejecutar, el repositorio puede ser una base de datos
tradicional (implcitamente no cliente-servidor).
Si el estado actual de la estructura de datos dispara los
procesos a ejecutar, el repositorio es lo que se llama una pizarra
pura o un tablero de control.