Está en la página 1de 72

Tema 9

Arquitecturas Software
Ingeniera del Software I
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Idea principal
La Arquitectura Software (AS) es la estructura a
grandes rasgos del sistema.
Estructura consistente en componentes y
relaciones entre ellos.
Cuestiones estructurales que se vinculan con el
diseo. La AS es una forma de diseo de software a
un nivel abstracto.

Un sistema se define en trminos de una coleccin
de componentes e interacciones entre estos
componentes

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Un hecho significativo
1995 - Primera publicacin de la Norma 12207



Procesos principales Procesos de Soporte
Procesos generales
Adquisicin
Suministro
Explotacin
Mantenimiento
Desarrollo
Gestin de la Config.
Asegu. de la calidad
Verificacin
Validacin
Revisin conjunta
Auditora
Documentacin
Resolucin problemas
Gestin
Mejora
Infraestructura
Formacin
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectura vs Diseo
La arquitectura envuelve un conjunto de decisiones
estratgicas de diseo, lineamientos, reglas y patrones
que restringen el diseo y la implementacin de un
software.

Arquitectura
Diseo
Implementacin
Cdigo
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Conceptos fundamentales
Estilos arquitectnicos.
Tcnicas de modelado de arquitecturas.
Vistas.
Frameworks de implementacin.
Arquitectura Sw y proceso de desarrollo.
Caractersticas de los Arquitectos Software.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos
Qu son?
Aspecto fundamental.
Definen una forma de organizacin arquitectnica.
Estilos arquitectnicos bsicos: Las formas bsicas
posibles de estructuracin del software.
Estilos arquitectnicos complejos: composicin de
estilos arquitectnicos bsicos.
Un estilo define: elementos/componentes,
conectores, configuraciones y restricciones.
Un estilo se puede describir en lenguaje natural, en
diagramas o mediante Lenguajes de Descripcin
Arquitectnica (LDA).

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tuberas y filtros (Pipes and filters)





Un filtro lee flujos de datos de sus entradas y genera flujos de
datos a sus salidas.
El filtro transforma los datos incrementalmente (se comienza a
generar salida antes de acabar de leer toda la entrada).

La tubera transmite el flujo de datos.
(Componente)
(Conector)
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tuberas y filtros (Pipes and filters)
Invariantes (Restricciones):
Los filtros son independientes (no comparten estado con
otros filtros).
Los filtros no saben a qu otros filtros estn conectados.
Especializaciones del estilo:
pipelines: la topologa es una secuencia lineal de filtros
pipes con capacidad limitada.
pipes con tipos: los datos pasados entre dos filtros tienen un
tipo bien definido (un stream de char).
Ejemplos: los programas escritos en shell de Unix:
componentes: procesos
conectores (pipes): ficheros FIFO.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tuberas y filtros (Pipes and filters)
Ventajas:
Descomposicin del problema en pasos independientes.
Soporta la reutilizacin de los filtros.
Sistemas fciles de mantener y mejorar.
Permiten anlisis (rendimiento, interbloqueos).
Soportan la ejecucin concurrente de filtros.
Escalables. Insercin de nuevos filtros.
Desventajas:
No adecuados para procesamiento interactivo.
Problemas de rendimiento ya que los datos se transmiten en
forma completa entre filtros.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilo Orientado a Objetos (Componentes)






Los componentes son objetos
Datos y operaciones asociadas (encapsulacin)
Los conectores son mensajes para invocar mtodos. Llamada a
procedimientos (Remote Procedure Call, RPC)

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilo Orientado a Objetos (Componentes)
Invariantes (Restricciones)
Los objetos son los responsables del mantenimiento de la
integridad de su representacin interna
La representacin interna es oculta (datos privados)
Ventajas
Gracias a la ocultacin es posible reemplazar la implementacin
del objeto sin que afecte a los clientes del objeto.
Descomposicin del sistema en un conjunto de agentes que
interaccionan
Desventajas
Los objetos deben conocer la identidad de otros objetos para
interaccionar con ellos.
La insercin de nuevos objetos conlleva cambios si estos estn muy
acoplados.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Invocacin implcita (eventos)






Se anuncian eventos en lugar de invocar mtodos
Los componentes registran su inters en ciertos eventos y
para cada uno de ellos asocian un mtodo.
Cuando otro componente anuncie el evento (modo
broadcast), el sistema invoca de manera implcita todos los
mtodos asociados a dicho evento.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Invocacin implcita (eventos)
Invariantes (Restricciones)
Los componentes que anuncian eventos no conocen qu
componentes se vern afectados por esos eventos
Ninguna suposicin en cuanto al procesamiento realizado
como respuesta a un evento.
Evitan aplicaciones que preguntan constantemente si hay
cambios en los datos
Uso frecuente en:
Gestores de bases de datos (mantener consistencia)
Interfaces de usuario
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Invocacin implcita (eventos)
Ventajas
Alta reutilizacin de componentes (aadir componentes).
Sistemas que evolucionan fcilmente (reemplazar
componentes).
Alta versatilidad al poder registrase a eventos
dinmicamente.
Acoplamiento inexistente entre componentes



www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Invocacin implcita (eventos)
Desventajas
Los componentes renuncian al control sobre el sistema
No hay conocimiento sobre qu componentes respondern
al evento
No hay conocimiento sobre el orden en que se activarn los
mtodos asociados con un evento
Si los datos asociados con un evento no pueden pasarse con
el propio evento, hace falta una estructura global:
problemas de rendimiento y gestin del repositorio
compartido
Dificultad para razonar acerca de la correccin puesto que
ya no existen precondiciones y postcondiciones

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilo por capas







Arquitectura Software que organiza al software en capas,
donde cada capa se construye una sobre la otra. Una capa
puede ser definida como un conjunto de (sub)sistemas con el
mismo grado de generalidad (Jacobson 97)
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilo por capas
Organizacin jerrquica del sistema
Cliente-servidor multi-nivel
Cada capa soporta un API (servicios) para que lo utilice la
capa superior.
Cada capa acta como productor de las capas superiores.
Cada capa acta como consumidor de las capas inferiores.

Los componentes son cada una de las capas

Los conectores son protocolos de interaccin entre capas

Las restricciones topolgicas: interaccin slo entre capas
adyacentes
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilo por capas
Ventajas
Facilita la descomposicin del problema en varios niveles de
abstraccin.
Soporta la evolucin (mejora). El cambio de una capa slo
afecta a las adyacentes.
Soporta la reutilizacin.
Se pueden cambiar las implementaciones respetando las
interfaces con las capas adyacentes.
Inconvenientes
Ejecucin, debido a problemas de coordinacin entre capas.
Determinar el nivel de abstraccin correcto. La separacin
entre capas.
No todos los sistemas pueden estructurarse en capas.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Cliente-servidor
Objetivo: proveer arquitectura escalable
Cada ordenador o proceso en la red es o bien cliente o bien
servidor.
Servidor:
Pasivo (esclavo).
Espera peticiones.
Cuando recibe una peticin, la procesa y enva respuesta.
Puede conservar o no el estado de la comunicacin.
Los servidores no conocen ni el nmero ni las identidades de los clientes.
Cliente:
Activo (maestro).
Los clientes conocen las identidades de los servidores.
Enva peticiones.
Espera hasta que llega la respuesta.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Repositorio





Basada en una estructura central de datos.
Est compuesto de:
Una estructura central de datos.
Conjunto de componentes independientes que operan en
funcin del almacn de datos.
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Repositorio
Las interacciones entre el repositorio y los dems
componentes es variable:
La entrada de los datos es seleccionada por los
componentes (repositorio).




El estado de los datos del repositorio selecciona el
proceso a ejecutar (pizarra)
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Repositorio
Ventajas:
Es escalable. Posibilita la integracin de nuevos mdulos.
Adecuado para la resolucin de problemas no
deterministas.
Se puede resumir el estado de conocimiento en cada
momento del proceso
Desventajas:
Estructura de datos comn a todos los agente.
Problemas de carga a la hora de chequear y vigilar el
estado de la pizarra.
Cualquier cambio en la estructura de datos afecta a los
mdulos/agentes.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Mquina virtual (Intrprete)









Formado por cuatro componentes: un motor de
simulacin o interpretacin, una memoria que contiene el
cdigo a interpretar, una representacin del estado de la
interpretacin, una representacin del estado del
programa que se esta simulando.
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Mquina virtual (Intrprete)
Ventajas
Solucin software a problemas hardware.
Desventajas
No siempre es aplicable
Reducido a lenguajes de programacin
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Estilos arquitectnicos ms comunes
Tuberas y filtros (Pipes and filters)
Estilo orientado a objetos (componentes)
Invocacin implcita (eventos)
Estilo por capas
Cliente-servidor
Repositorio
Mquina virtual (Intrprete)
Arquitecturas heterogneas


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitecturas heterogneas
La mayora de los sistemas utilizan una combinacin
de estilos
En una arquitectura por capas, un componente en
una capa puede desarrollarse con un estilo
pipe&filter (p. ejem.)
Un componente puede estar asociado con conectores
elaborados con diferentes estilos
Un componente puede acceder a un repositorio a
travs de invocacin explcita y comunicarse con
otros componentes a travs de un pipe.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
2.2.10 Un caso de estudio: KWIC
El sistema KWIC (key Word in Context) acepta un conjunto
ordenado de lneas; cada lnea es un conjunto ordenado de palabras
y cada palabra es un conjunto ordenado de caracteres. Cualquier
lnea puede ser desplazada circularmente eliminando repetidamente
la primera palabra y aadindola al final de la lnea. La salida del
sistema es un listado de todos los desplazamiento circulares de todas
las lneas en orden alfabtico.
Hello World
I Am Yoda
Hello World
World Hello
I Am Yoda
Am Yoda I
Yoda I Am
Am Yoda I
Hello World
I Am Yoda
World Hello
Yoda I Am
Caso de Estudio
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Conceptos fundamentales
Estilos arquitectnicos.
Tcnicas de modelado de arquitecturas.
Vistas.
Frameworks de implementacin.
Arquitectura Sw y proceso de desarrollo.
Caractersticas de los Arquitectos Software.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Existen diferentes notaciones y tcnicas para el
modelado de los diferentes aspectos de la
arquitectura.
Estas tcnicas varan segn:
Qu permiten modelar?
Cunto de precisas son para capturar las
semntica?
Estn soportadas por alguna herramienta?


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Clasificacin de estas tcnicas:

Tcnicas genricas.

Lenguajes de descripcin de arquitecturas (ADL).



www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Tcnicas genricas
Lenguaje natural.
Diagramas informales.
Ambiguos, poco precisos.
No formales, sin rigor.
Difcilmente procesados por mquinas.
Disponen de poca semntica.
tiles para capturar ideas a muy alto nivel de abstraccin.
Fase muy tempranas
UML
La notacin ms popular para definir arquitecturas sw.
Provisto de una gran cantidad de conceptos de modelado.
Ms preciso pero semnticamente puede ser ambiguo.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Surgen en los comienzos de la dcada de los 90.
Los ADL (Architecture Description Language) permiten
modelar una arquitectura sw antes de llevar a cabo la
programacin de las aplicaciones que la componen.
Permite analizar, simular el comportamiento y
determinar los puntos crticos de la aplicacin web.
En el mundo acadmico son muy conocidos y
utilizados.
An son pocos los arquitectos sw que los conozcan y
que los utilicen como instrumento de sus diseos
arquitectnicos.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Para qu sirven?
Sirven para expresar la estructura de las aplicaciones.
Proporcionan los modelos, notaciones y herramientas
que permiten describir los componentes y sus enlaces
especficos.
En ocasiones sirven para el prototipado rpido y
verificacin formal de propiedades.
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Caractersticas:
Son mucho ms precisos semnticamente pero
disponen de menos flexibilidad (al contrario que
UML).
Elementos que los componen:
Components.
Connectors.
Interfaces.
Configurations.

UML puede ser considerado un ADL


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Propiedades que debera cumplir un ADL:
Composicin: describir un sistema como una composicin de
componentes y conectores.
Permite dividir un sistema complejo en partes ms
pequeas.
Ensamblar un sistema a partir de partes
Comprender los componentes aisladamente de los dems.

Abstraccin: describir qu componentes interaccionan con qu
otros componentes y a travs de qu conectores. Explicitar el
papel de cada componente.

Reutilizacin: de componentes, conectores y configuraciones.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Configuracin: describir la estructura del sistema
independientemente de los elementos que lo forman. Soportar la
reconfiguracin dinmica.
Razonar acerca de la composicin como conjunto (sin mirar
las partes)
Mecanismo para conectar/desconectar componentes de la
arquitectura en tiempo de ejecucin.
Anlisis: soportar el razonamiento automtico sobre propiedades
de la arquitectura.
Heterogeneidad: combinar mltiples y heterogneas descripciones
arquitectnicas.
combinar estilos arquitectnicos distintos
combinar componentes escritos en diferentes lenguajes


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Darwin:
Especificamos la estructura del sistema compuesta de
componentes que se comunican a travs de una interfaz
explcita.
Tiene asociada una representacin grfica.
Rapide:
Para especificar sistemas compuestos de componentes que
se comunican mediante eventos.
Un evento activa un, o un conjunto de procedimientos
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tcnicas de modelado de arquitecturas
Lenguajes de descripcin de arquitecturas
Wright:

System Capitalize
Component Split
port In [input protocol]
port Left, Right [output protocol]
comp spec [Split specification]
Component Upper
port In [input protocol]
port Out [output protocol]
comp spec [Upper specification]
....
Connector Pipe
[Pipe specification]
Instances
split: Split; upper: Upper; lower: Lower; merge: Merge;
p1, p2, p3, p4: Pipe

Attachments
split.Left as p1.Writer;
upper.In as p1.Reader;
split.Right as p2.Writer;
lower.In as p2.Reader;
....
upper
lower
merge split
Capitalize
p1
p2
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Conceptos fundamentales
Estilos arquitectnicos.
Tcnicas de modelado de arquitecturas.
Vistas.
Frameworks de implementacin.
Arquitectura Sw y proceso de desarrollo.
Caractersticas de los Arquitectos Software.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Vistas
Qu es una vista?
Es una herramienta conceptual que permite manejar la
complejidad de una arquitectura software.
Cada vista es un filtro de informacin.
Concepto asociado con los niveles de abstraccin.
Una vista permite la representacin de uno ms
aspectos de la arquitectura sw. (Normalmente 1 vista =
1 aspecto)
El aspecto estructural se representa mediante un grafo
de nodos.
El aspecto de comportamiento se representa mediante
un diagrama de estados.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Tipos:
Vista lgica: captura las entidades lgicas (software) de un
sistema y cmo se interconectan.
Vista fsica: captura las entidades fsicas (hardware) de un
sistema y sus interrelaciones.
Vista de despliegue: captura cmo las entidades lgicas se
reparten en entidades fsicas.
Vista de comportamiento: captura el comportamiento
esperado del sistema o partes de ste.
Vista de casos de uso: captura los requisitos funcionales que
sern ofrecidos por el sistema de informacin.
Vistas
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Vistas recogidas en los marcos
arquitectnicos y metodologas de desarrollo

Zachman TOGAF 4 + 1 BRJ99 POSA Microsoft
Vista Scope
Vista de
Negocios
Vista Lgica Vista Diseo Vista Lgica Vista Lgica
V. Empresa V. Datos V. Proceso V. Proceso V. Proceso V. Conceptual
V. Sistema lgico V. Aplicacin V. Fsica V. Implementacin V. Fsica V. Fsica
V. Tecnolgica V. Tecnolgica V. Desarrollo V. Despliegue V. Desarrollo
V. Representacin V. Casos Uso V. Casos Uso
V. Funcionamiento
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Vistas recogidas en los marcos
arquitectnicos y metodologas de desarrollo
Marco arquitectnico: Modelo 4 + 1
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Vistas recogidas en los marcos
arquitectnicos y metodologas de desarrollo
El propio UML est ordenado por vistas:
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Conceptos fundamentales
Estilos arquitectnicos.
Tcnicas de modelado de arquitecturas.
Vistas
Frameworks de implementacin.
Arquitectura Sw y proceso de desarrollo.
Caractersticas de los Arquitectos Software.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de implementacin
La implementacin de un sistema es obligatorio para
obtener el producto final.
Esta implementacin se deriva de la arquitectura diseada:
La arquitectura dice cmo estructurar cada mdulo.
Cmo deben estar interconectados.
Define el comportamiento de cada mdulo.
Se debe hacer un mapeo entre los elementos definidos en
la arquitectura y los elementos del nivel de
implementacin (se conoce ya la tecnologa de
implementacin: lenguaje de programacin, entorno de
desarrollo, libreras y componentes, middlewares)
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de desarrollo
Qu es un framework de desarrollo?
Definen una arquitectura adaptada a la
particularidades de un determinado dominio de
aplicacin, definiendo una serie de componentes y
sus interfaces y estableciendo las reglas y
mecanismos de interaccin entre ellos.
Es software que hace de puente entre la
arquitectura del sistema y la tecnologa de
implementacin. Ejemplos: CORBA ORB, COM+,
.NET


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de implementacin
Framework de desarrollo
Se utiliza como gua para la implementacin.
Funciona como un esqueleto de una aplicacin que
debe ser adaptado por el programador segn sus
necesidades concretas.
Un framework se basa en 1..n estilos
arquitectnicos.
El estilo arquitectnico guiar el desarrollo llevado a cabo
por un framework.
Por ejemplo, CORBA ORB se basa en el estilo orientado a
objetos. Java.IO se basa en el estilo de tuberas y filtros.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de implementacin
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de desarrollo
Puntos a tener en cuenta y problemas en la
composicin de frameworks
Usualmente se necesitan utilizar varios frameworks
y cada uno resuelve un problema concreto
(composicin).
Gestin del control de la aplicacin, ya que los
frameworks suelen tomar el control de la aplicacin.
Adaptacin de los servicios ofrecidos por cada uno
de los frameworks de la composicin: los servicios
ofrecidos por dos frameworks pueden no ser
compatibles.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de implementacin
Falta de funcionalidad y servicios. Aparece cuando la
unin de frameworks no cubre las necesidades de la
aplicacin.

Solapamiento de representaciones. Dos de los
frameworks utilizados representan de forma distinta
una entidad del mundo real.

Solapamiento de funcionalidad. Surge cuando dos
frameworks ofrecen la misma funcionalidad. Se debe
asignar solo la de uno.
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Frameworks de desarrollo
Ventajas de la utilizacin de frameworks:
Son composicionales.
Son el grado ms alto de reutilizacin dentro del
desarrollo de software.
El diseo arquitectnico se reutiliza.
Reduccin de costes/Mejora de la calidad.
Estn intrnsecamente unidos a los componentes ya
que adems de proporcionar funcionalidad de los
componentes permiten la composicin entre ellos
de forma consistente.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Conceptos fundamentales
Estilos arquitectnicos.
Tcnicas de modelado de arquitecturas.
Vistas.
Frameworks de implementacin.
Arquitectura Sw y proceso de desarrollo.
Caractersticas de los Arquitectos Software.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectura Sw y proceso de desarrollo
Proceso Unificado
Arquitecto SW
+ El Proceso Unificado contempla
actividades para definir la
arquitectura software y
contempla el trabajador
arquitecto.




www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectura Sw y proceso de desarrollo
Proceso Unificado
Fase de Inicio
+ Con respecto a la arquitectura, en
la fase de inicio de los proyectos se
establece:

Requerimientos no-
funcionales
Lista de riesgos crticos y
restricciones
Arquitectura candidata



www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectura Sw y proceso de desarrollo
Proceso Unificado
Fase de Elaboracin
+ Con respecto a la arquitectura, en la
fase de elaboracin se establece:
Lnea base de la Arquitectura.

+ Entregables:
Documento de Definicin de
Arquitectura.
Prototipo evolutivo de
arquitectura.
Guas y Estndares de Diseo.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectura Sw y proceso de desarrollo
SunTone AM
+ Metodologa de desarrollo de software anloga al Unified
Process (UP) con un fuerte nfasis en Calidad de Servicio y
Patrones de diseo.

+ El cubo: framework conceptual, el cual provee una vista
tridimensional:
Tiers lgicos
Layers tecnolgicos
Calidades sistmicas



www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectura Sw y proceso de desarrollo
SunTone AM



Business
Session Facade
Composite Entity
Database Integration
DAO
Factory
Oracle DAO
Factory
OracleDAO
DAO
Value
Object
Business
Integration
Business
Delegate
Service
Locator
Presentation
Front Controller
Action Factory
Action
View
JSF Components
La arquitectura es primariamente necesaria para crear un
framework para el desarrollo basado en patrones y para
la entrega de calidades sistmicas predecibles.
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Conceptos fundamentales
Estilos arquitectnicos.
Tcnicas de modelado de arquitecturas.
Vistas.
Frameworks de implementacin.
Arquitectura Sw y proceso de desarrollo.
Caractersticas de los Arquitectos Software.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectos Software
Deben trabajar siguiendo algn mtodo bien
especificado.
Deben reutilizar soluciones que han sido exitosas en el
pasado.
Est sometido a una fuerte responsabilidad. La
arquitectura puede hacer fallar el proyecto.
Debe ser:
Diseador software.
Experto del dominio.
Especialista en la tecnologa software.
Experto en un estndar.
Buen planificador.

www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectos Software
Como diseador software:
Debe poder reconocer, reutilizar o inventar diseos
eficientes y efectivos y aplicarlos correctamente.
Saber utilizar los patrones y estilos de diseo.
Un arquitecto sw debera poder justificar todas sus
decisiones de diseo.
Capacidades para comunicar sus decisiones al grupo de
desarrollo.




www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectos Software
Como experto en el dominio:
Debe conocer el dominio del sistema de informacin que
est construyendo.
No es lo mismo una aplicacin para Google, que para la
empresa Boeing o la NASA.
Debe saber qu arquitecturas debera utilizar en cada
dominio (Ej, robot).
Como especialista en la tecnologa software :
Debe asegurar que sus ideas podrn ser implementadas
sobre una tecnologa existente en el mercado.
Un maravilloso diseo es intil si no puede ser
implementado.


www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectos Software
Como experto en un estndar:
El conocer y seguir un estndar de desarrollo puede
facilitarle las tareas como arquitecto: simplificando el
desarrollo de la arquitectura, mejorando su modelado o
haciendo ms efectivo el anlisis de sta.
Como buen planificador:
Debe saber que el diseo de la arquitectura est
restringido al presupuesto del que dispone, a la
tecnologa existente, al tiempo del proyecto
www.kybele.es www.kybele.etsii.urjc.es Ingeniera del Software I 2011/2012
Arquitectos Software
4 tareas principales:
1. Desarrollar la estrategia del proyecto.
2. Disear la arquitectura del sistema.
3. Comunicarse con los stakeholders.
4. Liderar el proyecto.

Tema 9
Arquitecturas Software
Ingeniera del Software I
feliu.trias@urjc.es