Académique Documents
Professionnel Documents
Culture Documents
ARQUITECTURA DE SOFTWARE
Contenido
INTRODUCCIN ................................................................................................................. 3
Qu es la arquitectura de software? .......................................................................... 3
MAPA MENTAL DIFERENCIA ENTRE INGENIERA DE SOFTWARE VS.
ARQUITECTURA DE SOFTWARE. ................................................................................. 4
ENSAYO DEL DOCUMENTO DE IEEE .......................................................................... 5
Introduccin ...................................................................................................................... 5
Descripcin ....................................................................................................................... 5
Descripcin arquitectnica en contexto. ...................................................................... 6
Actividades arquitectnicas en el ciclo de vida. ......................................................... 7
Arquitectura de sistemas individuales. ......................................................................... 7
Arquitectura iterativa para sistemas evolutivos. ............................................ 7
Arquitectura de sistemas existentes. .................................................................. 8
Evaluacin arquitectnica. ....................................................................................... 8
Conclusin ...................................................................................................................... 8
MAPA MENTAL DE LAS COMPETENCIAS DE UN ARQUITECTO DE
SOFTWARE. ........................................................................................................................ 9
CUADRO SINPTICO DE LA TAXONOMA DE LA ARQUITECTURA DE
SOFTWARE. ...................................................................................................................... 10
EJEMPLIFICACIN MEDIANTE CASOS REALES DE LOS ESTILOS DE
ARQUITECTURA DE SOFTWARE. DOCUMENTAR BIEN Y CON
REFERENCIAS. ................................................................................................................ 11
Client-Server Style .................................................................................................... 11
Tubos y filtros ............................................................................................................. 13
Estilo Orientado a Objetos (Componentes) ..................................................... 22
INTRODUCCIN
Qu es la arquitectura de software?
Antes de elaborar sobre el tema, es conveniente definir el concepto ya que hoy en
da el trmino de arquitectura se usa para referirse a varios aspectos relacionados
con las TI. De acuerdo al Software Engineering Institute (SEI), la Arquitectura de
Software se refiere a las estructuras de un sistema, compuestas de elementos
con propiedades visibles de forma externa y las relaciones que existen entre
ellos.
Se responsabiliza de
controlar y dirigir el
proceso de desarrollo del
software.
Arquitectura
de Software
Ingeniera de
Software
Es la responsable de reflejar
las estrategias
empresariales en los
proyectos desde el mbito
puramente tcnico.
Diferencias entre
Ingeniera del Software y
Arquitectura del Software.
Es la organizacin o
estructura del
programa
Aplica el conocimiento cientfico al
diseo y construccin de software y
toda la documentacin requerida
para desarrollar, operar y
mantenerlo.
Cliente
Usuario
Arquitecto
Desarrolladores
Evaluadores
Elementos
Los Servers proveen un conjunto de servicios a travs de una o ms
interfaces
Los Clientes consumen cero o ms servicios de los servers
El vnculo se establece entre el request role del conector y el puerto
del cliente, y el reply role y el puerto del server
Existe uno o ms servers en los sistemas dentro de este estilo
Especializacin
Como posibles topologas podemos agrupar de acuerdo a la forma
en que los clients y servers se comunican estableciendo una
jerarqua
Los sistemas n-tier establecen como n-1 niveles de comunicacin
entre servers existen en la jerarqua, siendo el estmulo inicial
generado por el cliente
Se puede establecer limitaciones en la cantidad de clientes que se
conectan a un server
Servidor:
Pasivo (esclavo).
Espera peticiones.
Cliente:
Activo (maestro).
Los clientes conocen las identidades de los servidores.
Enva peticiones.
Espera hasta que llega la respuesta.
Ejemplo
Tubos y filtros
Proporciona una estructura para sistemas que procesan un flujo de datos.
Cada paso de procesamiento es encapsulado en un componente filtro.
Los datos son pasados mediante tubos entre filtros adyacentes.
La
recombinacin
de
sistemas
relacionados.
Ejemplo
Suponga que se ha definido un nuevo lenguaje de programacin llamado Mocha
(Modular Object Computation with Hypothetical Algorithms). La tarea es construir
un compilador portable para este lenguaje. Para soportar existentes y futuras
plataformas de hardware se defini un lenguaje intermedio denominado AuLait
(Another Universal Language for Intermediate Translation) que corre en una
mquina virtual Cup (Concurrent Uniform Processor). El intrprete AuLait simula
Cup en software. Un backend traducir el cdigo AuLait en instrucciones de
mquina del procesador especfico para mejorar el rendimiento.
Problema
Imagine que construye un sistema que debe procesar o transformar un flujo de
datos de entrada.
La implementacin como un nico componente no es factible por las
siguientes razones:
El sistema tiene que ser construido por varios desarrolladores.
La tarea del sistema se descompone naturalmente en varias etapas
de procesamiento.
Los requerimientos pueden cambiar.
ampliaciones
deben
ser
posibles
intercambiando
para
Solucin
Estos pasos estn conectados por el flujo de datos a travs del sistema los
datos de salida de un paso son la entrada del paso siguiente. Cada paso de
procesamiento es implementado por un componente filter.
Estructura
Filter
Los componentes filter son las unidades de procesamiento del pipeline. Un filter:
Enriquece los datos de entrada computando y adicionando informacin.
Refina los datos concentrando o extrayendo informacin.
Transforma los datos de entrada entregando los datos en alguna otra
representacin.
Pipes
Los pipes denotan las conexiones entre los filtros, entre la fuente de datos y el
primer filtro, y entre el ltimo filtro y el sumidero.
Si dos componentes activos estn unidos, el pipe los sincroniza con un buffer
FIFO. Si la actividad es controlada por uno de los filtros adyacentes, el pipe puede
ser implementado por una llamada directa del componente activo al pasivo. Sin
embargo, las llamadas directas hacen ms difcil la recombinacin.
Fuentes de datos
Las fuentes de datos representan la entrada al sistema, y proporcionan una
secuencia de valores de la misma estructura o tipo.
La fuente de datos de un pipeline puede empujar los datos activamente a la
primera etapa de procesamiento o proporcionar los datos pasivamente cuando el
filtro los hala.
Sumideros de datos
Los sumideros de datos recolectan los resultados del final del pipeline.
Un sumidero activo hala los resultados de la etapa de procesamiento
precedente.
Dinmica
Escenario 4. Todos los filtros estn activos en un ciclo y cada uno en su propio hilo
de control.
Implementacin
La implementacin de la arquitectura Pipes and Filters es sencilla. Se puede usar
un servicio como colas de mensaje o pipes de UNIX para conexin a las tuberas,
u otras opciones como llamadas directas.
1. Divida la tarea del sistema en una secuencia de pasos. Cada paso debe
depender nicamente de los resultados del paso anterior.
2. Defina el formato de los datos a pasar en cada tubo. Si se define un formato
uniforme se logra la mayor flexibilidad haciendo fcil la recombinacin de
filtros.
3. Decida cmo implementar cada conexin pipe. Esta decisin determina
cuando implementar los filtros como componentes activos o pasivos. La
forma ms fcil es una llamada directa entre filtros adyacentes, pero hace
difcil el recombinar o reusar los filtros. La solucin ms flexible es usar un
mecanismo que sincronice filtros adyacentes.
4. Disee e implemente los filtros. Tenga en cuenta la tarea que debe realizar
as como los pipes adyacentes.
Variantes
Sistemas de pipelines tee and join. Filtros de una nica entrada y una nica
salida del patrn Pipes and Filters se puede modificar para permitir filtros con ms
de una entrada y ms de una salida. Lo que permite que el procesamiento sea
como un grafo dirigido que puede contener ciclos de retroalimentacin.
El comando tee de UNIX permite escribir a la salida estndar o a un archivo
simultneamente.
Usos conocidos
UNIX. Populariz el paradigma de Pipes and Filters.
Los shells de comandos y la disponibilidad de muchos programas filtro hacen
esta aproximacin al desarrollo de sistemas popular.
Ventajas
No requieren archivos intermedios. Calcular resultados usando programas
separados es posible sin pipes: almacenando los resultados intermedios en
archivos.
Flexibilidad intercambiando filters. Los filters tienen una interfaz que permite que
sean fcilmente intercambiados en el procesamiento de un pipeline.
Flexibilidad por recombinacin.
Reuso de componentes filter.
Prototipado rpido de pipelines. Una vez que se ha implementado la funcin
principal con un pipeline se puede optimizar incrementalmente.
Eficiencia por procesamiento en paralelo. Es posible ejecutar componentes filter
en paralelo en un sistema multiprocesador o en una red. Si cada filter en un
pipeline consume y produce datos incrementalmente pueden ejecutar sus
funciones en paralelo.
Desventajas
Compartir informacin de estado es costoso e inflexible. Si en las etapas de
procesamiento necesita compartir una gran cantidad de datos globales, la
aplicacin del patrn resulta ser ineficiente.
La eficiencia por el paralelismo es frecuentemente una ilusin.
Bibliografa
Pattern-Oriented Software Architecture: A System of Patterns, F. Buschmann,
R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. John Wiley & Sons, 1996.
Software Architecture Perspective on an Emerging
discipline M. Shaw, D. Garlan Ed. Prentice Hall.
Software Architecture in Practice (2nd Edition) L. Bass, P. Clements, R.
Kazman Ed. Addison Wesley
Arquitecturas de SW: http://lml.ls.fi.upm.es/~jjmoreno/sbc/arquitecturas_sw.ppt
Servicios
Avanzados
Multimedia
http://www.lcc.uma.es/~av/misConfs/p1arquitecturas.ppt
Basados
en
Componentes: