Sei sulla pagina 1di 61

Arquitectura de Software

Juan Bernardo Quintero


Contexto de la Arquitectura de Referencia

Una Arquitectura de Referencia proporciona una plantilla de


solucin probada para la arquitectura de software en un
dominio particular, su utilizacin posibilita a las empresas que
desarrollan proyectos de software potenciar el reuso de alto
nivel desde etapas tempranas del proceso.

La construccin de modelos que representen total o


parcialmente la arquitectura de referencia, facilitara su
comprensin y potenciara su difusin en los equipos de trabajo
de las empresas, aumentando la mantenibilidad de los
productos de software que se adhieran a dicha arquitectura.
Contexto de la Arquitectura de Referencia

Principales conceptos implicados:


Arquitectura de software

Arquitectura de referencia

Arquitectura de dominio

Arquitectura generativa

Lnea base de la arquitectura

Arquitectura destino
Contexto de la Arquitectura de Referencia
Arquitectura de software
Clements: se refiere a grandes rasgos, a una vista del sistema que
incluye los componentes principales del mismo, la conducta de esos
componentes segn se le percibe desde el resto del sistema y las formas
en que los componentes interactan y se coordinan para alcanzar la
misin del sistema.
IEEE 1471-2000: es la organizacin fundamental de un sistema
encarnada en sus componentes, las relaciones entre ellos y el ambiente
y los principios que orientan su diseo y evolucin.
Kruchten: tiene que ver con el diseo y la implementacin de estructuras
de software de alto nivel. Es el resultado de ensamblar un cierto nmero
de elementos arquitectnicos de forma adecuada para satisfacer la
mayor funcionalidad y requerimientos de desempeo de un sistema, as
como requerimientos no funcionales, como la confiabilidad,
escalabilidad, portabilidad y disponibilidad.
Contexto de la Arquitectura de Referencia
Arquitectura de referencia
Proporciona una plantilla de solucin probada para la arquitectura en un
dominio particular, y define un vocabulario comn con el que se puede
discutir los detalles de implementacin para un producto de software. Se
ocupa de los problemas comnmente encontrados en los proyectos de
software como la escalabilidad, la fiabilidad y la seguridad.
La propuesta realizada en una tecnologa especfica como J2EE, es una
arquitectura de referencia por capas que ofrece una plantilla de solucin
para muchos sistemas empresariales desarrollados en Java.
Contexto de la Arquitectura de Referencia
Arquitectura de dominio
En la propuesta de MDSD (Model Driven Software Development) se
precisan las arquitecturas de referencia a partir del concepto de
arquitectura de dominio que se define como la agregacin de tres
conceptos:
Plataforma,
Lenguaje Especifico de Dominio
Transformaciones.

Arquitectura generativa
Es la especializacin de una arquitectura de domino dentro del contexto
de AC- MDSD (Desarrollo de Software Dirigido por Modelos Centrado en
la Arquitectura).
Contexto de la Arquitectura de Referencia
Lnea base de la arquitectura
El conjunto de los productos que retratan el estado actual de la empresa,
sus prcticas comerciales, y su infraestructura tcnica, comnmente se
refiere al ser as is de la arquitectura.

Arquitectura destino
El conjunto de los productos que retratan el futuro o estado final de la
empresa, en general captura el pensamiento estratgico de la organizacin
y sus planes, comnmente se refiere al deber ser to be de la
arquitectura.
Los modelos y la Arquitectura de Referencia

Los modelos cada vez toman ms relevancia en el proceso


de desarrollo de software, segn Bzivin la construccin de
software ha evolucionado de plantear que todo es un
objeto a finales del siglo pasado, a proponer que todo es
un modelo a comienzos de este siglo.

1980 2000 2020


Promises
Objects Delivery
Evaluation
Promises
Models Delivery
Evaluation

Extrado de: Bzivin, J.: MDA : From Hype to Hope, and Reality. 6th International Conference on the Unified
Modelling Language, UML 2003. San Francisco.
Los modelos y la Arquitectura de Referencia

Para definir los enfoques de modelado, se plantea un


espectro de modelado en el que se ilustran los estados por
los que pasa una empresa o persona en un proceso de
adopcin de un paradigma dirigido por modelos:

Espectro de modelado
Nombre Descripcin
1 Solo cdigo Se desconocen los modelos
2 Visualizacin de cdigo El cdigo es el modelo
3 Ingeniera de ida y vuelta El cdigo y el modelo coexisten
4 Centrado en los modelos El modelo es el cdigo
5 Solo modelos El cdigo es invisible

Extrado de: Brown, A., Conallen J., Tropeano, D. Model-Driven Software Development, Introduction: Models,
Modeling, and Model-Driven Architecture (MDA) Springer-Verlag Berlin Heidelberg 2005
Los modelos y la Arquitectura de Referencia
Fusin del espectro de modelos y
de la curva de adopcin tecnolgica

Adaptado de: Moore, G.: Crossing the Chasm. HarperBusiness, Edicion Revisada. ISBN: 0066620023. 256 p,
Julio 1999.
Los modelos y la Arquitectura de Referencia

El reto lo constituye cruzar el abismo (Cross the Chasm),


Si los modelos se presentan de tanta utilidad en la construccin
de software, modelar la arquitectura de referencia puede resultar
de muy beneficioso.
Los modelos y la Arquitectura de Referencia

Una arquitectura de referencia es un recurso que contiene un


conjunto coherente de mejores prcticas arquitectnicas para su
uso por todos los equipos de una organizacin.

Por tal motivo el modelo de una arquitectura de referencia podra


tener un nmero considerable de diagramas, por ejemplo
plantillas para la construccin de las diversas vistas de las
propuestas arquitectnicas
Adaptado de: Reed, P.: Reference Architecture - The best of best practices. [Documento Electrnico]. IBM.
Septiembre de 2002. http://www.ibm.com/developerworks/rational/library/2774.html
Los modelos y la Arquitectura de Referencia

Marcos de referencia arquitectnicos

Propuesta de Agrupacin de
Vistas propuestas
arquitectura componentes en
Scope, Empresa, Sistema lgico, Tecnologa,
Zachman Niveles
Representacin, Funcionamiento
TOGAF Arquitecturas Negocios, Datos, Aplicacin, Tecnologa
Diseo, Proceso, Implementacin ,
4+1 Vistas
Despliegue, Casos de uso
POSA Vistas Lgica, Proceso, Fsica, Desarrollo

Microsoft Vistas Lgica, Conceptual, Fsica

Adaptado de: Reynoso, C.: Introduccin a la Arquitectura de Software Versin 1.0. [Documento Electrnico]
Centro de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introduccin a la Arquitectura de Software.doc
Los modelos y la Arquitectura de Referencia
Estructura de una Arquitectura de Dominio
y su relacin con las Lneas de Productos

Adaptado de: Vlter, M. y Stahl, T. Model-Driven Software Development (Technology, Engineering, Management)
ISBN: 978-0-470-02570-3, 444 p, 2006.
Los modelos y la Arquitectura de Referencia

Para clarificar la diferencia entre los frentes fsicos y lgicos


definiremos los tres conceptos que componen una arquitectura
de dominio:
Un DSL (Lenguaje Especfico de Dominio): Se refiere a un concepto
de carcter lgico que se usa en el espacio del problema, se define
como un lenguaje diseado para modelar o resolver problemas en un
dominio particular bien definido, esto significa que en vez de ser un
lenguaje para propsito general, es un lenguaje que captura con
precisin la semntica de un dominio determinado.
Una plataforma: Se refiere a conceptos de carcter fsico que hacen
parte del espacio de la solucin, se define como la agregacin de
conceptos como: el Middlewares, Libreras, Frameworks, Componentes
y Aspectos.
Las transformaciones: Definen los mecanismos para llevar los modelos
desde el espacio del problema hasta el espacio de la solucin.
Perspectivas de la Arquitectura de Referencia
En el estudio de las tcnicas para el modelado de una arquitectura de
referencia, es importante conocer las perspectivas que existen para la
definicin de una arquitectura de software.
El nmero de definiciones de arquitectura de software alcanza un orden
de tres dgitos (http://www.sei.cmu.edu/architecture/definitions.html) y
aunque existe un acuerdo general de que ella se refiere a la estructura a
grandes rasgos del sistema, existen mltiples perspectivas que plantean
estrategias a la hora de definirlas.
Perspectivas de la Arquitectura de Referencia

A continuacin se analizan las ms representativas de esas


perspectivas:

Perspectiva acadmica
Perspectiva de los grandes vendedores
Perspectiva industrial
Perspectiva del desarrollo dirigido por modelos
Perspectivas de la Arquitectura de Referencia
Perspectiva acadmica
Consideraciones:
La academia fue el mbito que lider la definicin de lo que hoy conocemos como
arquitectura de software, sin embargo hoy por hoy existe una brecha en lo que la
academia, los grandes vendedores de software y la industria, en general califican
como relevante a la hora de definir una arquitectura de software.
Enfoque:
Se caracteriza por definir explcitamente la arquitectura y dividirla en componentes
y conectores de primera clase, dndole prioridad a la funcionalidad y a la
verificacin formal. La descripcin de la arquitectura se realiza con la utilizacin de
lenguajes especficos para este propsito (ADL: Architecture Description Language)
con el fin de generar automticamente la arquitectura en algunas ocasiones.
Definicin de Componente:
Entidades reutilizables de caja negra, con interfaces de un solo punto de acceso.

Basado en: Reynoso, C.: Introduccin a la Arquitectura de Software Versin 1.0. [Documento Electrnico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introduccin a la Arquitectura de Software.doc
Perspectivas de la Arquitectura de Referencia
Perspectiva de los grandes vendedores
Consideraciones:
Los grandes vendedores de software tambin definen las caractersticas relevantes
de una arquitectura de software, bajo esta perspectiva prevalece la definicin
conceptual de la arquitectura sobre las definiciones explcitas y las notaciones
formales.
Enfoque:
Se enfoca ms en el espacio de la solucin, pues define la implementacin en una
plataforma especfica (p.e. JEE, .NET, IBM), una serie de patrones y mejores
prcticas que implementan su catlogo de productos o tecnologas.
Definicin de Componente:
Grandes piezas de software complejas no necesariamente encapsuladas y las
interfaces a estos se proporcionan mediante entidades (clases en los
componentes).

Basado en: Reynoso, C.: Introduccin a la Arquitectura de Software Versin 1.0. [Documento Electrnico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introduccin a la Arquitectura de Software.doc
Perspectivas de la Arquitectura de Referencia
Perspectiva industrial
Consideraciones:
Existe una brecha entre las propuestas de la academia, los grandes vendedores y
la industria, derivada de que frecuentemente la industria desconoce la idea que
tiene la academia de la arquitectura, y algunas veces llama arquitectura a lo que
solo es diseo.
Enfoque:
Adaptar las arquitecturas propuestas por los grandes vendedores y enfocarse
mucho ms en el espacio de la solucin, proponiendo as una arquitectura menos
formal y est dada por la integracin de servidores de aplicaciones, frameworks y
patrones comerciales
Definicin de Componente:
Esta perspectiva se caracteriza por enfocarse en los componentes, implementar
soluciones ad-hoc de binding en tiempo de ejecucin, usar lenguajes de
programacin o diagramas libres para representarla, dar igual importancia a la
funcionalidad y a los atributos de calidad, y no definir conectores de primera clase.
Basado en: Reynoso, C.: Introduccin a la Arquitectura de Software Versin 1.0. [Documento Electrnico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introduccin a la Arquitectura de Software.doc
Perspectivas de la Arquitectura de Referencia
Perspectiva del desarrollo dirigido por modelos
Consideraciones:
Impulsada por las recientes aproximaciones de la ingeniera dirigida por modelos:
MDA (Model Driven Architecture)
MDSD (Model Driven Software Development)
Factoras de Software (Software Factories)
Para facilitar la generacin de aplicaciones a partir de modelos, le dan una
connotacin muy marcada a tres elementos dentro de la arquitectura de software:
los metamodelos, las plataformas y las transformaciones.
Enfoque:
Plantean la utilizacin de tcnicas como el marcado y el mapeo para construir
modelos con base en una arquitectura de referencia.
Definicin de Componente:
La arquitectura de software es importante en el contexto de MDSD para la
descripcin de los componentes ms relevantes de una plataforma, su interaccin y
sus caractersticas no funcionales..
Basado en: Reynoso, C.: Introduccin a la Arquitectura de Software Versin 1.0. [Documento Electrnico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introduccin a la Arquitectura de Software.doc
Tcnicas de diseo de una Arq. de Ref.

En cada perspectiva arquitectnica se prefiere una tcnica de


modelado arquitectnico diferente:

Perspectiva arquitectnica Tcnica de modelado

Acadmica ADL (Architecture Description Language)

De los grandes vendedores Diagramas libres

Industrial Diagramas de paquetes

De desarrollo dirigido por modelos Perfiles en UML


Tcnicas de diseo de una Arq. de Ref.
ADL
Un ADL es un lenguaje descriptivo de modelado que se focaliza en la
estructura de alto nivel de la aplicacin antes que en los detalles de
implementacin de mdulos concretos. Comnmente se acepta que un
ADL proporcionar un modelo explicito de componentes, conectores y
sus respectivas configuraciones:
Componentes: representan elementos computacionales primarios del sistema,
por ejemplo: clientes, servidores, y bases de datos, los cuales exponen varias
interfaces, que definen sus puntos de interaccin.
Conectores: representan interaccin entre componentes, por ejemplo:
tuberas (pipes), llamadas a procedimientos, broadcast de eventos, protocolos
cliente-servidor o conexiones de una aplicacin a una BD.
Configuraciones: se constituyen como grafos de componentes y conectores
en donde adems se especifican propiedades funcionales y no funcionales,
restricciones, estilos y evolucin de la arquitectura.

Basado en: Reynoso, C., Kicillof, N.: De lenguajes de descripcin arquitectnica de software. Universidad de
Buenos Aries [Documento electronico] http://www.willydev.net/descargas/prev/ADL.pdf
Tcnicas de diseo de una Arq. de Ref.
ADL (Ejemplos)

Diagrama de
Arquitectura
Empresarial
realizado con
Archimate

Diagrama de
tubera
realizado con
Darwin
Tcnicas de diseo de una Arq. de Ref.
Diagramacin libre
El modelado arquitectnico es el proceso de capturar y documentar las
decisiones del diseo arquitectnico y puede hacerse de diferentes
maneras.
Una de estas tcnicas es el uso de documentos de lenguaje natural y
diagramas abstractos de cajas y flechas.
Aunque en apariencia este mtodo puede parecer ms intuitivo y
efectivo, carece de formalismo, rigor y la precisin necesarias para
describir de manera comprensible los elementos bsicos de una
arquitectura.
Tcnicas de diseo de una Arq. de Ref.
Diagramacin libre (Ejemplo)

Diagrama libre de la
arquitectura de
referencia para
aplicaciones .Net

Tomado de: Microsoft: Application Architecture for .Net: Designing Applications and Services. Microsoft
Corporation. 2002. ISBN 0-7356-1837-2
Tcnicas de diseo de una Arq. de Ref.
Diagramas de Paquetes
Los diagramas de paquetes muestran una agrupacin de elementos en
un modelo orientado a objetos, los diagramas de paquetes se utilizan
para representar agrupaciones de de clases, interfaces, componentes,
procesos o procesadores.
Como mecanismo de representacin de arquitecturas pueden resultar
muy tiles pues permiten representar diferentes vistas de la
arquitectura, en especial siguiendo la propuesta de las 4+1 vistas.
Para la representacin de una arquitectura de referencia cada paquete
podra representar una capa de una arquitectura, y las clases en su
interior podran ser las clases del patrn que se pueden utilizar en dicha
capa.
Tcnicas de diseo de una Arq. de Ref.
Diagramas de Paquetes (Ejemplo)

Diagrama de
paquetes de una
arquitectura de
referencia
implementando
Hibernate y capas

Tomado de: Dahan, U.: The Software Simplist , fetching Strategy Desing [Documento Electrnico]
http://www.udidahan.com/2007/04/23/fetching-strategy-design/
Tcnicas de diseo de una Arq. de Ref.
Perfiles
Los perfiles son una extensin de UML, realizada con el fin de poder
representar dominios de tipo tcnico o profesional. Los perfiles de UML
estn compuestos bsicamente por tres tipos de artefactos:
estereotipos, valores etiquetados y restricciones. Siendo ms claros, el
paquete de perfiles de UML 2.0 define una serie de mecanismos para
extender las metaclases de un modelo cualquiera, para adaptarlas a
una plataforma especfica (p.e. JEE, .NET) o a un dominio de
aplicacin. En general un perfil se define en un paquete estereotipado
<<profile>> que extiende a un metamodelo o a otro perfil.
La sintaxis concreta de un DSL se puede expresar de forma grfica a
travs de un perfil de UML, por lo que marcar un modelo arquitectnico
con base en los estereotipos de un perfil, se convierte en la definicin
de una arquitectura de software que se basa en la arquitectura de
referencia definida en dicho perfil.
Tcnicas de diseo de una Arq. de Ref.
Perfiles (Ejemplo)

Fragmento de un
perfil para
implantaciones
en Java
que utilicen el
modelo EJB
Caractersticas de una Arq. de Ref.
Definen las condiciones y propiedades que debe tener una
arquitectura de referencia para que cumpla apropiadamente se
objetivo. Para su anlisis se clasifican en tres categoras:
Representacin Directa: para enfocarse en el dominio del problema
ms que en la tecnologa.
Automatizacin: de tareas mecnicas que no requieren intervencin
humana.
Estndares Abiertos: que posibiliten la interoperabilidad de las
herramientas y plataformas.
Caractersticas de una Arq. de Ref.
Criterios de comparacin: Representacin Directa
En esta categora se evalan las caractersticas de la tcnica de
modelado que reducen la distancia semntica entre una arquitectura
de referencia y su respectiva representacin grfica, de manera que
se permita un acoplamiento directo de las soluciones hacia los
problemas para las cuales fueron construidas.

Expresividad grfica
Mltiples vistas
Estructura y comportamiento
Modelado de restricciones
Inclusin de propiedades
Caractersticas de una Arq. de Ref.
Criterios de comparacin: Representacin Directa
Expresividad grfica:
Comprensibilidad que se le puede dar a los diagramas de la arquitectura de referencia,
posibilitando por ejemplo la diferenciacin de capas o la forma de aplicacin de un patrn.
Mltiples vistas:
Posibilidad de representar las plantillas de solucin probada para la arquitectura, desde
diferentes puntos de vista, por ejemplo vista conceptual, fsica o lgica.
Estructura y comportamiento:
Capacidad para modelar la estructura de la arquitectura de referencia y su comportamiento.
Modelado de restricciones:
Un ADL se puede definir como una composicin de cuatro Cs: componentes, conectores,
configuraciones y restricciones (constraints), esto motiva la inclusin de las restricciones como
una caracterstica importante para modelar una arquitectura de referencia.
Inclusin de propiedades:
Posibilidad de definir propiedades no funcionales, o admitir herramientas complementarias
para analizarlas y determinar, por ejemplo, el throughput y la latencia probables, o cuestiones
de seguridad, escalabilidad, configuraciones mnimas de hardware y tolerancia a fallas.
Caractersticas de una Arq. de Ref.
Criterios de comparacin: Automatizacin
En esta categora se mide la capacidad de las tcnicas de
modelado de arquitecturas de referencia para permitir la
automatizacin de tareas de desarrollo de software que son
mecnicas y no dependen de la intuicin humana, de tal forma que
se incremente la productividad y se reduzca el esfuerzo requerido.
Este es uno de los propsitos fundamentales de la naciente
disciplina de Ingeniera de Modelos.
Herramientas de modelado
Herramientas de transformacin
Configurabilidad
Integracin de patrones
Modificabilidad
Caractersticas de una Arq. de Ref.
Criterios de comparacin: Automatizacin
Herramientas de modelado:
Disponibilidad de herramientas que permitan construir modelos de arquitecturas de referencia
usando la tcnica en cuestin.
Herramientas de transformacin:
Disponibilidad de herramientas que permitan transformar modelos y generar cdigo a partir de
modelos basados en arquitecturas de referencia construido usando la tcnica en cuestin.
Configurabilidad:
Capacidad para modelar diferentes estrategias arquitectnicas dentro de la arquitectura de
referencia, dichas estrategias son llamadas en algunos casos familias, estilos y en otros
configuraciones, y permitiran generar hacia diversas arq. de ref. a partir de un mismo modelo.
Integracin de patrones:
Capacidad de integrar patrones de software como elemento participante de la arquitectura de
referencia usando la tcnica, de tal forma que estos puedan ser usados en una arquitectura
en particular.
Modificabilidad:
Posibilidad de cambiar la arquitectura de referencia y regenerar el cdigo para arquitecturas
especficas que se hayan construido con la tcnica.
Caractersticas de una Arq. de Ref.
Criterios de comparacin: Estndares abiertos
En esta categora se evala cada tcnica de modelado en la
medida en que est definida alrededor de un estndar.
Los estndares industriales no solo ayudan a eliminar la
heterogeneidad de las diversas alternativas, sino que tambin
fomentan el desarrollo de un ecosistema de proveedores de
herramientas interoperables para diversos propsitos, siendo
as ms atractivo para la adopcin en el sector industrial.
Metamodelo disponible
Estndar de intercambio
Framework de modelado
Herramientas open source
Respaldo Consorcio Industrial
Caractersticas de una Arq. de Ref.
Criterios de comparacin: Estndares abiertos
Metamodelo disponible:
Existencia y disponibilidad del metamodelo para posibilitar la transformacin de modelos, ya
que de sta forma se aprovechar su potencial como activos de conocimiento y se obtendrn
los beneficios que proporciona la ingeniera de modelos. Por ejemplo MOF.
Estndar de intercambio:
Mecanismo para serializar arquitecturas de referencias construidas con la tcnica, a la par
que permite la posibilidad de abrirla con otra herramienta que soporte el mismo estndar de
intercambio. Un ejemplo caracterstico de dicho estndar se puede evidenciar en XMI.
Framework de Modelado:
Implementacin del metamodelo en un framework de modelado como el propuesto en EMF,
con el propsito de usarlo en herramientas de transformacin de manera que se facilite el
mapeo hacia otros tipos de modelos en otros niveles de abstraccin.
Herramientas open source:
Existencia de herramientas open source que soporten la tcnica, de sta forma se podr
utilizar en el beneficio de la comunidad que provee el desarrollo de software open source.
Respaldo Consorcio Industrial:
Respaldo de algn consorcio de estndares abiertos reconocido por la industria, debido a que
stos representan un consenso entre las compaas con ms experiencia en este tema.
Caractersticas de una Arq. de Ref.
Anlisis Comparativo
En la siguiente tabla se presentan las calificaciones dadas a cada tem propuesto
en los criterios de comparacin, de igual forma se muestra un promedio para cada
uno de los tems y una calificacin promedio total para cada una de las tcnicas.
Criterio ADL Libre Paquetes Perfiles Prom.
Expresividad grfica 5 4 4 3 4,0
Mltiples vistas 5 4 5 4 4,5
Estructura y comportamiento 4 4 3 3 3,5
Modelado de restricciones 2 4 4 5 3,8
Inclusin de propiedades 3 4 1 4 3,0
Promedios Representacin Directa 3,8 4 3,4 3,8 3,8
Herramientas de modelado 5 4 5 4 4,5
Herramientas de transformacin 3 1 3 4 2,8
Configurabilidad 5 1 2 3 2,8
Integracin de patrones 2 2 5 5 3,5
Modificabilidad 3 2 3 4 3,0
Promedios Automatizacin 3,6 2 3,6 4 3,3
Metamodelo disponible 3 1 5 5 3,5
Estndar de intercambio 2 1 5 5 3,3
Framework de Modelado 2 1 5 5 3,3
Herramientas open source 5 4 5 5 4,8
Respaldo Consorcio Industrial 1 3 5 5 3,5
Promedios Estndares Abiertos 2,6 2 5 5 3,7
Promedios Totales 3,3 2,7 4,0 4,3 3,6
Caractersticas de una Arq. de Ref.
Anlisis Comparativo: ADL
En el frente de representacin directa:
Los ADLs presentan ventajas, pues muy son expresivos, permiten mltiples vistas
inclusive en algunos casos soportan la definicin de propiedades no funcionales.
En el frente de automatizacin:
Aunque existen herramientas de modelado para cada ADL muy pocas generan
cdigo o integran patrones.
En el frente de estndares abiertos :
Aunque la mayora de herramientas para los ADLs son open source, existen pocas
definiciones comunes de metamodelos o frameworks y su respaldo es
preponderantemente acadmico.
Caractersticas de una Arq. de Ref.
Anlisis Comparativo: Diagramacin libre
En el frente de representacin directa:
La diagramacin libre es muy poderosa aunque no fue concebida inicialmente para
modelos arquitectnicos.
En el frente de automatizacin:
Aunque existen herramientas de modelado muy pocas generan cdigo o integran
patrones.
En el frente de estndares abiertos :
Existen herramientas open source, no existen definiciones comunes de
metamodelos o frameworks, pero en algunos casos estas tcnicas y herramientas
tienen el apoyo de consorcios industriales.
Caractersticas de una Arq. de Ref.
Anlisis Comparativo: Diagramacin de paquetes
En el frente de representacin directa:
Los diagramas de paquetes pueden ser expresivos y modelar mltiples vistas, sin
embargo no se pueden definir propiedades no funcionales aunque se pueden
escribir restricciones con OCL dentro de notas de UML.
En el frente de automatizacin:
Existen diversas herramientas de modelado en UML pero muy pocas generan
cdigo a partir de diagramas de paquetes, los patrones se pueden integrar con las
clases de los patrones dentro de los paquetes.
En el frente de estndares abiertos :
Existen herramientas open source, existen un metamodelo como MOF y un
estndar de intercambio como XMI, tambin frameworks como EMF y muchos
consorcios industriales le apoyan.
Caractersticas de una Arq. de Ref.
Anlisis Comparativo: Perfiles
En el frente de representacin directa:
Los perfiles no son muy expresivos y pueden usarse para modelar diversas vistas,
se pueden escribir restricciones con OCL y las propiedades no funcionales se
pueden incluir con valores etiquetados.
En el frente de automatizacin:
Existen varias herramientas para modelar perfiles, y tienen como propsito
posibilitar el marcado y la generacin de cdigo, los patrones se pueden integrar
fcilmente y el cdigo se puede regenerar ante cambios.
En el frente de estndares abiertos :
Existen herramientas open source, existen un metamodelo como MOF y un
estndar de intercambio como XMI, tambin frameworks como EMF y muchos
consorcios industriales le apoyan.
Ejemplo 1: J2EE
Ejemplo 2: J2EE
Ejemplo 3: J2EE

Capa de presentacin

Value
Capa de lgica de negocios Objects

Capa de acceso a datos

Bases de datos
Ejemplo 4: MVC-DAO

Patrn
Lgica de Interfaces
MVC?
presentacin

Coordinacin Aplicacin

Lgica del
Negocio Jos Prez: Cliente
Clases Dominio

Materializacin /
Lgica de Esquema Persistencia Desmaterializacin
Persistencia de objetos

Patrn T-cliente

DAO?
Ejemplo 5: Capas usando Frameworks
Conclusiones

Una arquitectura de referencia constituye un activo de software


que puede resultar de mucha utilidad para una empresa que
realice desarrollos de software, sin embargo no debe constituirse
en una camisa de fuerza que lleve al grupo de desarrolladores a
cambiar de manera significativa sus hbitos en programacin,
pues el xito de un activo como este depende de su aceptacin y
comprensin, finalmente los beneficios que se deben esperar de
su utilizacin apropiada dentro de la empresas es la mejora de la
productividad pues se potencia el reuso temprano, y la calidad y
homogeneidad del software pues cada solucin viene de una
plantilla comn probada previamente.
Tambin es importante aclarar que no es necesario usarla en
todos los proyectos, pues no todos los desarrollos que realiza la
empresa obedecen a las mismas plataformas.
Conclusiones

En cuanto al anlisis comparativo se evidencia que las recientes


aproximaciones de la ingeniera dirigida por modelos favorecen el
uso de tcnicas como los perfiles y los diagramas de paquetes
para la definicin de una arquitectura de referencia, pues los
mecanismos en los que se apoyan como metamodelos, DSLs,
estndares de intercambio, etc., potencian la transformacin de
modelos y la generacin de cdigo.
El uso prctico del anlisis comparativo, se puede dar a partir de
un proceso de toma de decisiones, en el que una empresa defina
pesos para cada criterio de comparacin y pondere esos pesos
con las calificaciones propuestas en este trabajo para decidir cual
tcnica le conviene para modelar su arquitectura de referencia.
Referencias
1. Clements, P., Bass L., Kazman R.: Software Architecture in Practice. 2 ed. Addison-Wesley,
2003. ISBN: 032115495
2. IEEE. IEEE Recommended Practice for Architecture Description of Software-Intensive
Systems. ANSI/IEEE 1471-2000. ISBN 0-7381-2518-0
3. Kruchten, P.: Architectural Blueprints--The 4+1 View Model of Software Architecture. En: IEEE
Software, Institute of Electrical and Electronics Engineers. November 1995. P. 42-50.
4. Vlter, M. y Stahl, T. Model-Driven Software Development (Technology, Engineering,
Management) ISBN: 978-0-470-02570-3, 444 p, 2006.
5. Bzivin, J.: MDA : From Hype to Hope, and Reality. 6th International Conference on the
Unified Modelling Language, UML 2003. San Francisco.
6. Brown, A., Conallen J., Tropeano, D. Model-Driven Software Development, Introduction:
Models, Modeling, and Model-Driven Architecture (MDA) Springer-Verlag Berlin Heidelberg
2005
7. Rogers, E.: Diffusion of Innovations. Free Press, 4a Ed. (Paperback). ISBN: 0029266718. 518
p, Febrero 1995.
8. Moore, G.: Crossing the Chasm. HarperBusiness, Edicion Revisada. ISBN: 0066620023.
256 p, Julio 1999.
Referencias
9. Reed, P.: Reference Architecture - The best of best practices. IBM. Septiembre de
2002. http://www.ibm.com/developerworks/rational/library/2774.html
10. Reynoso, C.: Introduccin a la Arquitectura de Software Versin 1.0. Centro de
Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introduccin a la Arquitectura de
Software.doc
11. Aspect-Oriented Software Association. Aspect-Oriented Software Development
Community & Conference. [Documento Electrnico]. AOSA, 2006. http://aosd.net/
12. Quintero, J., Anaya, R.: Marco de Referencia para la Evaluacin de Herramientas
Basadas en MDA. Memorias del X Workshop IDEAS, 2007. p.225 238. ISBN
978-980-325-323-3
13. Object Management Group. MDA Guide Version 1.0.1. OMG, 2003.
http://www.omg.org/cgi-bin/apps/doc?omg/03-06-01.pdf
14. Greenfield, J., Short, K.: Software Factories: Assembling Applications with
Patterns, Models, Frameworks, and Tools. Wiley. 2004
15. Vestal, S.: A Cursory Overview and Comparison of Four Architecture Description
Languages. Honeywell Technology Center, Minneapolis, Febrero 1993
Referencias
16. Reynoso, C., Kicillof, N.: De lenguajes de descripcin arquitectnica de software.
Universidad de Buenos Aries http://www.willydev.net/descargas/prev/ADL.pdf
17. Georgas J., Dashofy, E., Taylor, R.: Desarrollo de software centrado en la arquitectura: Una
Mirada diferente de la ingeniera de software. The ACM Student Magazine
http://www.acm.org/crossroads/espanol/xrds12-4/arqcentric.html
18. Microsoft: Application Architecture for .Net: Designing Applications and Services. Microsoft
Corporation. 2002. ISBN 0-7356-1837-2
19. Dahan, U.: The Software Simplist , fetching Strategy Desing
http://www.udidahan.com/2007/04/23/fetching-strategy-design/
20. Medvidovic, N.: A Classification and Comparison Framework for Software Architecture
Description Languages. Technical Report, UCI-ICS-97-02, Universidad de California, Irvine,
Enero 1997.
21. Kogut, P., Clements, P.: Features of Architecture Description Languages. Draft of a
CMU/SEI Technical Report, Diciembre 1994
22. Booch, G., Brown, A., Iyengar, S., Selic, B. y Rumbaugh, J.: An MDA Manifesto. Rational
MDA Documentation, IBM Corporation, 2004
23. Wolf, A.: Succeedings of the Second International Software Architecture Workshop. (ISAW-
2). ACM SIGSOFT Software Engineering Notes, pp. 42-56, Enero 1997.
Referencias
24. Bezivin, J. "In Search of a Basic Principle for Model Driven Engineering". UPGRADE-Cepis
(http://www.upgrade-cepis.org/issues/2004/2/up5-2Bezivin.pdf), Abril 2004.
25. Bezivin, J. "On The Unfication Power of Models". ATLAS Group, Universidad de Nantes,
Francia (http://www.sciences.univ-nantes.fr/lina/atl/), 2003.
26. Perry, D., Wolf, A.: Foundations for the study of software architecture. ACM SIGSOFT
Software Engineering Notes, 17(4), pp. 4052, Octubre 1992
27. Object Management Group. MOF 2.0 / XMI Mapping Specification, V2.1.1. OMG, 2003.
http://www.omg.org/docs/formal/06-01-01.pdf
28. Object Management Group. XML Metadata Interchange (XMI), v2.1.1. OMG, 2003.
http://www.omg.org/docs/formal/07-12-01.pdf
29. Merks, Ed et al. "Eclipse Modeling Framework". The Eclipse Series
(http://www.eclipse.org/emf). Agosto 2004.

Potrebbero piacerti anche