Arquitectura de Software -...
Transcript of Arquitectura de Software -...
Una Arquitectura de Referencia proporciona una plantilla de
solución probada para la arquitectura de software en un
dominio particular, su utilización posibilita a las empresas que
desarrollan proyectos de software potenciar el reuso de alto
nivel desde etapas tempranas del proceso.
La construcción de modelos que representen total o
parcialmente la arquitectura de referencia, facilitaría su
comprensión y potenciaría su difusión 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
Línea base de la arquitectura
Arquitectura destino
Contexto de la Arquitectura de Referencia
Clements: se refiere a grandes rasgos, a una vista del sistema que
incluye los componentes principales del mismo, la conducta de esos
componentes según se le percibe desde el resto del sistema y las formas
en que los componentes interactúan y se coordinan para alcanzar la
misión del sistema.
IEEE 1471-2000: es la organización fundamental de un sistema
encarnada en sus componentes, las relaciones entre ellos y el ambiente
y los principios que orientan su diseño y evolución.
Kruchten: tiene que ver con el diseño y la implementación de estructuras
de software de alto nivel. Es el resultado de ensamblar un cierto número
de elementos arquitectónicos de forma adecuada para satisfacer la
mayor funcionalidad y requerimientos de desempeño de un sistema, así
como requerimientos no funcionales, como la confiabilidad,
escalabilidad, portabilidad y disponibilidad.
Contexto de la Arquitectura de Referencia
Arquitectura de software
Proporciona una plantilla de solución probada para la arquitectura en un
dominio particular, y define un vocabulario común con el que se puede
discutir los detalles de implementación para un producto de software. Se
ocupa de los problemas comúnmente encontrados en los proyectos de
software como la escalabilidad, la fiabilidad y la seguridad.
La propuesta realizada en una tecnología específica como J2EE, es una
arquitectura de referencia por capas que ofrece una plantilla de solución
para muchos sistemas empresariales desarrollados en Java.
Contexto de la Arquitectura de Referencia
Arquitectura de referencia
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 agregación de tres
conceptos:
Plataforma,
Lenguaje Especifico de Dominio
Transformaciones.
Es la especialización 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
Arquitectura de dominio
Arquitectura generativa
El conjunto de los productos que retratan el estado actual de la empresa,
sus prácticas comerciales, y su infraestructura técnica, comúnmente se
refiere al ser “as is” de la arquitectura.
El conjunto de los productos que retratan el futuro o estado final de la
empresa, en general captura el pensamiento estratégico de la organización
y sus planes, comúnmente se refiere al deber ser “to be” de la
arquitectura.
Contexto de la Arquitectura de Referencia
Línea base de la arquitectura
Arquitectura destino
Los modelos cada vez toman más relevancia en el proceso
de desarrollo de software, según Bézivin la construcción 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.
Los modelos y la Arquitectura de Referencia
Objects
Models
1980 2000 2020
Promises
Delivery
Evaluation
Promises
Delivery
Evaluation
Extraído de: Bézivin, 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
Nombre Descripción
1 Solo código Se desconocen los modelos
2 Visualización de código El código es el modelo
3 Ingeniería de ida y vuelta El código y el modelo coexisten
4 Centrado en los modelos El modelo es el código
5 Solo modelos El código es invisible
Espectro de modelado
Extraído de: Brown, A., Conallen J., Tropeano, D. Model-Driven Software Development, Introduction: Models,
Modeling, and Model-Driven Architecture (MDA) © Springer-Verlag Berlin Heidelberg 2005
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
adopción de un paradigma dirigido por modelos:
Los modelos y la Arquitectura de Referencia
Fusión del espectro de modelos y
de la curva de adopción tecnológica
Adaptado de: Moore, G.: Crossing the Chasm. HarperBusiness, Edicion Revisada. ISBN: 0066620023. 256 p,
Julio 1999.
El reto lo constituye “cruzar el abismo” (Cross the Chasm),
Si los modelos se presentan de tanta utilidad en la construcción
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 prácticas arquitectónicas para su
uso por todos los equipos de una organización”.
Por tal motivo el modelo de una arquitectura de referencia podría
tener un número considerable de diagramas, por ejemplo
plantillas para la construcción de las diversas vistas de las
propuestas arquitectónicas
Los modelos y la Arquitectura de Referencia
Adaptado de: Reed, P.: Reference Architecture - The best of best practices. [Documento Electrónico]. IBM.
Septiembre de 2002. http://www.ibm.com/developerworks/rational/library/2774.html
Los modelos y la Arquitectura de Referencia
Propuesta de
arquitectura
Agrupación de
componentes enVistas propuestas
Zachman NivelesScope, Empresa, Sistema lógico, Tecnología,
Representación, Funcionamiento
TOGAF Arquitecturas Negocios, Datos, Aplicación, Tecnología
4+1 VistasDiseño, Proceso, Implementación ,
Despliegue, Casos de uso
POSA Vistas Lógica, Proceso, Física, Desarrollo
Microsoft Vistas Lógica, Conceptual, Física
Marcos de referencia arquitectónicos
Adaptado de: Reynoso, C.: Introducción a la Arquitectura de Software Versión 1.0. [Documento Electrónico]
Centro de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introducción a la Arquitectura de Software.doc
Los modelos y la Arquitectura de Referencia
Estructura de una Arquitectura de Dominio
y su relación con las Líneas de Productos
Adaptado de: Völter, M. y Stahl, T. Model-Driven Software Development (Technology, Engineering, Management)
ISBN: 978-0-470-02570-3, 444 p, 2006.
Para clarificar la diferencia entre los frentes físicos y lógicos
definiremos los tres conceptos que componen una arquitectura
de dominio:
Un DSL (Lenguaje Específico de Dominio): Se refiere a un concepto
de carácter lógico que se usa en el espacio del problema, se define
como un lenguaje diseñado para modelar o resolver problemas en un
dominio particular bien definido, esto significa que en vez de ser un
lenguaje para propósito general, es un lenguaje que captura con
precisión la semántica de un dominio determinado.
Una plataforma: Se refiere a conceptos de carácter físico que hacen
parte del espacio de la solución, se define como la agregación de
conceptos como: el Middlewares, Librerías, Frameworks, Componentes
y Aspectos.
Las transformaciones: Definen los mecanismos para llevar los modelos
desde el espacio del problema hasta el espacio de la solución.
Los modelos y la Arquitectura de Referencia
En el estudio de las técnicas para el modelado de una arquitectura de
referencia, es importante conocer las perspectivas que existen para la
definición de una arquitectura de software.
El número de definiciones de arquitectura de software alcanza un orden
de tres dígitos (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 múltiples perspectivas que plantean
estrategias a la hora de definirlas.
Perspectivas de la Arquitectura de Referencia
A continuación se analizan las más representativas de esas
perspectivas:
Perspectiva académica
Perspectiva de los grandes vendedores
Perspectiva industrial
Perspectiva del desarrollo dirigido por modelos
Perspectivas de la Arquitectura de Referencia
Perspectivas de la Arquitectura de Referencia
Basado en: Reynoso, C.: Introducción a la Arquitectura de Software Versión 1.0. [Documento Electrónico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introducción a la Arquitectura de Software.doc
Consideraciones:
La academia fue el ámbito que lideró la definición 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 calificancomo relevante a la hora de definir una arquitectura de software.
Enfoque:
Se caracteriza por definir explícitamente la arquitectura y dividirla en componentes
y conectores de primera clase, dándole prioridad a la funcionalidad y a la
verificación formal. La descripción de la arquitectura se realiza con la utilización de
lenguajes específicos para este propósito (ADL: Architecture Description Language)
con el fin de generar automáticamente la arquitectura en algunas ocasiones.
Definición de Componente:
Entidades reutilizables de caja negra, con interfaces de un solo punto de acceso.
Perspectiva académica
Perspectivas de la Arquitectura de Referencia
Basado en: Reynoso, C.: Introducción a la Arquitectura de Software Versión 1.0. [Documento Electrónico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introducción a la Arquitectura de Software.doc
Consideraciones:
Los grandes vendedores de software también definen las características relevantes
de una arquitectura de software, bajo esta perspectiva prevalece la definición
conceptual de la arquitectura sobre las definiciones explícitas y las notacionesformales.
Enfoque:
Se enfoca más en el espacio de la solución, pues define la implementación en una
plataforma específica (p.e. JEE, .NET, IBM), una serie de patrones y mejores
prácticas que implementan su catálogo de productos o tecnologías.
Definición de Componente:
Grandes piezas de software complejas no necesariamente encapsuladas y las
interfaces a estos se proporcionan mediante entidades (clases en los
componentes).
Perspectiva de los grandes vendedores
Perspectivas de la Arquitectura de Referencia
Basado en: Reynoso, C.: Introducción a la Arquitectura de Software Versión 1.0. [Documento Electrónico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introducción a la Arquitectura de Software.doc
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 diseño.
Enfoque:
Adaptar las arquitecturas propuestas por los grandes vendedores y enfocarse
mucho más en el espacio de la solución, proponiendo así una arquitectura menos
formal y está dada por la integración de servidores de aplicaciones, frameworks y
patrones comerciales
Definición de Componente:
Esta perspectiva se caracteriza por enfocarse en los componentes, implementar
soluciones ad-hoc de binding en tiempo de ejecución, usar lenguajes de
programación o diagramas libres para representarla, dar igual importancia a la
funcionalidad y a los atributos de calidad, y no definir conectores de primera clase.
Perspectiva industrial
Perspectivas de la Arquitectura de Referencia
Basado en: Reynoso, C.: Introducción a la Arquitectura de Software Versión 1.0. [Documento Electrónico] Centro
de Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introducción a la Arquitectura de Software.doc
Consideraciones:
Impulsada por las recientes aproximaciones de la ingeniería dirigida por modelos:• MDA (Model Driven Architecture)
• MDSD (Model Driven Software Development)
• Factorías de Software (Software Factories)
Para facilitar la generación de aplicaciones a partir de modelos, le dan una
connotación muy marcada a tres elementos dentro de la arquitectura de software:
los metamodelos, las plataformas y las transformaciones.
Enfoque:
Plantean la utilización de técnicas como el marcado y el mapeo para construir
modelos con base en una arquitectura de referencia.
Definición de Componente:
La arquitectura de software es importante en el contexto de MDSD para la
descripción de los componentes más relevantes de una plataforma, su interacción y
sus características no funcionales..
Perspectiva del desarrollo dirigido por modelos
En cada perspectiva arquitectónica se prefiere una técnica de
modelado arquitectónico diferente:
Técnicas de diseño de una Arq. de Ref.
Perspectiva arquitectónica Técnica de modelado
Académica ADL (Architecture Description Language)
De los grandes vendedores Diagramas libres
Industrial Diagramas de paquetes
De desarrollo dirigido por modelos Perfiles en UML
Un ADL es un lenguaje descriptivo de modelado que se focaliza en la
estructura de alto nivel de la aplicación antes que en los detalles de
implementación de módulos concretos. Comúnmente 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 interacción.
Conectores: representan interacción entre componentes, por ejemplo:
tuberías (pipes), llamadas a procedimientos, broadcast de eventos, protocolos
cliente-servidor o conexiones de una aplicación a una BD.
Configuraciones: se constituyen como grafos de componentes y conectores
en donde además se especifican propiedades funcionales y no funcionales,
restricciones, estilos y evolución de la arquitectura.
ADL
Basado en: Reynoso, C., Kicillof, N.: De lenguajes de descripción arquitectónica de software. Universidad de
Buenos Aries [Documento electronico] http://www.willydev.net/descargas/prev/ADL.pdf
Técnicas de diseño de una Arq. de Ref.
ADL (Ejemplos)
Diagrama de
tubería
realizado con
Darwin
Diagrama de
Arquitectura
Empresarial
realizado con
Archimate
Técnicas de diseño de una Arq. de Ref.
El modelado arquitectónico es el proceso de capturar y documentar las
decisiones del diseño arquitectónico y puede hacerse de diferentes
maneras.
Una de estas técnicas es el uso de documentos de lenguaje natural y
diagramas abstractos de “cajas y flechas”.
Aunque en apariencia este método puede parecer más intuitivo y
efectivo, carece de formalismo, rigor y la precisión necesarias para
describir de manera comprensible los elementos básicos de una
arquitectura.
Diagramación libre
Técnicas de diseño de una Arq. de Ref.
Diagramación 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
Técnicas de diseño de una Arq. de Ref.
Los diagramas de paquetes muestran una agrupación 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 representación 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 representación de una arquitectura de referencia cada paquete
podría representar una capa de una arquitectura, y las clases en su
interior podrían ser las clases del patrón que se pueden utilizar en dicha
capa.
Diagramas de Paquetes
Técnicas de diseño 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 Electrónico]
http://www.udidahan.com/2007/04/23/fetching-strategy-design/
Técnicas de diseño de una Arq. de Ref.
Los perfiles son una extensión de UML, realizada con el fin de poder
representar dominios de tipo técnico o profesional. Los perfiles de UML
están compuestos básicamente por tres tipos de artefactos:
estereotipos, valores etiquetados y restricciones. Siendo más 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 específica (p.e. JEE, .NET) o a un dominio de
aplicación. 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 gráfica a
través de un perfil de UML, por lo que marcar un modelo arquitectónico
con base en los estereotipos de un perfil, se convierte en la definición
de una arquitectura de software que se basa en la arquitectura de
referencia definida en dicho perfil.
Perfiles
Técnicas de diseño de una Arq. de Ref.
Perfiles (Ejemplo)
Fragmento de un
perfil para
implantaciones
en Java
que utilicen el
modelo EJB
Técnicas de diseño 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 análisis se clasifican en tres categorías:
Representación Directa: para enfocarse en el dominio del problema
más que en la tecnología.
Automatización: de tareas mecánicas que no requieren intervención
humana.
Estándares Abiertos: que posibiliten la interoperabilidad de las
herramientas y plataformas.
Características de una Arq. de Ref.
En esta categoría se evalúan las características de la técnica de
modelado que reducen la distancia semántica entre una arquitectura
de referencia y su respectiva representación gráfica, de manera que
se permita un acoplamiento directo de las soluciones hacia los
problemas para las cuales fueron construidas.
Expresividad gráfica
Múltiples vistas
Estructura y comportamiento
Modelado de restricciones
Inclusión de propiedades
Criterios de comparación: Representación Directa
Características de una Arq. de Ref.
Criterios de comparación: Representación Directa
Características de una Arq. de Ref.
Expresividad gráfica:
Comprensibilidad que se le puede dar a los diagramas de la arquitectura de referencia,posibilitando por ejemplo la diferenciación de capas o la forma de aplicación de un patrón.
Múltiples vistas:
Posibilidad de representar las plantillas de solución probada para la arquitectura, desde
diferentes puntos de vista, por ejemplo vista conceptual, física o lógica.
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 composición de cuatro “Cs”: componentes, conectores,
configuraciones y restricciones (constraints), esto motiva la inclusión de las restricciones como
una característica importante para modelar una arquitectura de referencia.
Inclusión 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 mínimas de hardware y tolerancia a fallas.
En esta categoría se mide la capacidad de las técnicas de
modelado de arquitecturas de referencia para permitir la
automatización de tareas de desarrollo de software que son
mecánicas y no dependen de la intuición humana, de tal forma que
se incremente la productividad y se reduzca el esfuerzo requerido.
Este es uno de los propósitos fundamentales de la naciente
disciplina de Ingeniería de Modelos.
Herramientas de modelado
Herramientas de transformación
Configurabilidad
Integración de patrones
Modificabilidad
Criterios de comparación: Automatización
Características de una Arq. de Ref.
Criterios de comparación: Automatización
Características de una Arq. de Ref.
Herramientas de modelado:
Disponibilidad de herramientas que permitan construir modelos de arquitecturas de referencia
usando la técnica en cuestión.
Herramientas de transformación:
Disponibilidad de herramientas que permitan transformar modelos y generar código a partir de
modelos basados en arquitecturas de referencia construido usando la técnica en cuestión.
Configurabilidad:
Capacidad para modelar diferentes estrategias arquitectónicas dentro de la arquitectura de
referencia, dichas estrategias son llamadas en algunos casos familias, estilos y en otros
configuraciones, y permitirían generar hacia diversas arq. de ref. a partir de un mismo modelo.
Integración de patrones:
Capacidad de integrar patrones de software como elemento participante de la arquitectura de
referencia usando la técnica, de tal forma que estos puedan ser usados en una arquitectura
en particular.
Modificabilidad:
Posibilidad de cambiar la arquitectura de referencia y regenerar el código para arquitecturas
específicas que se hayan construido con la técnica.
En esta categoría se evalúa cada técnica de modelado en la
medida en que esté definida alrededor de un estándar.
Los estándares industriales no solo ayudan a eliminar la
heterogeneidad de las diversas alternativas, sino que también
fomentan el desarrollo de un ecosistema de proveedores de
herramientas interoperables para diversos propósitos, siendo
así más atractivo para la adopción en el sector industrial.
Metamodelo disponible
Estándar de intercambio
Framework de modelado
Herramientas open source
Respaldo Consorcio Industrial
Criterios de comparación: Estándares abiertos
Características de una Arq. de Ref.
Criterios de comparación: Estándares abiertos
Características de una Arq. de Ref.
Metamodelo disponible:
Existencia y disponibilidad del metamodelo para posibilitar la transformación de modelos, ya
que de ésta forma se aprovechará su potencial como activos de conocimiento y se obtendrán
los beneficios que proporciona la ingeniería de modelos. Por ejemplo MOF.
Estándar de intercambio:
Mecanismo para serializar arquitecturas de referencias construidas con la técnica, a la par
que permite la posibilidad de abrirla con otra herramienta que soporte el mismo estándar de
intercambio. Un ejemplo característico de dicho estándar se puede evidenciar en XMI.
Framework de Modelado:
Implementación del metamodelo en un framework de modelado como el propuesto en EMF,
con el propósito de usarlo en herramientas de transformación de manera que se facilite el
mapeo hacia otros tipos de modelos en otros niveles de abstracción.
Herramientas open source:
Existencia de herramientas open source que soporten la técnica, 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 algún consorcio de estándares abiertos reconocido por la industria, debido a que
éstos representan un consenso entre las compañías con más experiencia en este tema.
Características de una Arq. de Ref.
En la siguiente tabla se presentan las calificaciones dadas a cada ítem propuesto
en los criterios de comparación, de igual forma se muestra un promedio para cada
uno de los ítems y una calificación promedio total para cada una de las técnicas.
Análisis Comparativo
Criterio ADL Libre Paquetes Perfiles Prom.
Expresividad gráfica 5 4 4 3 4,0
Múltiples 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
Inclusión de propiedades 3 4 1 4 3,0
Promedios Representación Directa 3,8 4 3,4 3,8 3,8
Herramientas de modelado 5 4 5 4 4,5
Herramientas de transformación 3 1 3 4 2,8
Configurabilidad 5 1 2 3 2,8
Integración de patrones 2 2 5 5 3,5
Modificabilidad 3 2 3 4 3,0
Promedios Automatización 3,6 2 3,6 4 3,3
Metamodelo disponible 3 1 5 5 3,5
Estándar 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 Estándares Abiertos 2,6 2 5 5 3,7
Promedios Totales 3,3 2,7 4,0 4,3 3,6
Análisis Comparativo: ADL
Características de una Arq. de Ref.
En el frente de representación directa:
Los ADLs presentan ventajas, pues muy son expresivos, permiten múltiples vistas
inclusive en algunos casos soportan la definición de propiedades no funcionales.
En el frente de automatización:
Aunque existen herramientas de modelado para cada ADL muy pocas generan
código o integran patrones.
En el frente de estándares abiertos :
Aunque la mayoría de herramientas para los ADLs son open source, existen pocas
definiciones comunes de metamodelos o frameworks y su respaldo es
preponderantemente académico.
Análisis Comparativo: Diagramación libre
Características de una Arq. de Ref.
En el frente de representación directa:
La diagramación libre es muy poderosa aunque no fue concebida inicialmente para
modelos arquitectónicos.
En el frente de automatización:
Aunque existen herramientas de modelado muy pocas generan código o integran
patrones.
En el frente de estándares abiertos :
Existen herramientas open source, no existen definiciones comunes de
metamodelos o frameworks, pero en algunos casos estas técnicas y herramientas
tienen el apoyo de consorcios industriales.
Análisis Comparativo: Diagramación de paquetes
Características de una Arq. de Ref.
En el frente de representación directa:
Los diagramas de paquetes pueden ser expresivos y modelar múltiples 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 automatización:
Existen diversas herramientas de modelado en UML pero muy pocas generan
código 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 estándares abiertos :
Existen herramientas open source, existen un metamodelo como MOF y un
estándar de intercambio como XMI, también frameworks como EMF y muchos
consorcios industriales le apoyan.
Análisis Comparativo: Perfiles
Características de una Arq. de Ref.
En el frente de representación 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 automatización:
Existen varias herramientas para modelar perfiles, y tienen como propósito
posibilitar el marcado y la generación de código, los patrones se pueden integrar
fácilmente y el código se puede regenerar ante cambios.
En el frente de estándares abiertos :
Existen herramientas open source, existen un metamodelo como MOF y un
estándar de intercambio como XMI, también frameworks como EMF y muchos
consorcios industriales le apoyan.
Capa de presentación
Capa de lógica de negocios
Capa de acceso a datos
Value
Objects
Bases de datos
Ejemplo 3: J2EE
Coordinación Aplicación
Clases Dominio
Esquema Persistencia
José Pérez: Cliente
Materialización /
Desmaterialización
de objetos
T-cliente
InterfacesLógica de
presentación
Lógica del
Negocio
Lógica de
Persistencia
Patrón
MVC?
Patrón
DAO?
Ejemplo 4: MVC-DAO
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 hábitos en programación,
pues el éxito de un activo como este depende de su aceptación y
comprensión, finalmente los beneficios que se deben esperar de
su utilización 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 solución viene de una
plantilla común probada previamente.
También 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 análisis comparativo se evidencia que las recientes
aproximaciones de la ingeniería dirigida por modelos favorecen el
uso de técnicas como los perfiles y los diagramas de paquetes
para la definición de una arquitectura de referencia, pues los
mecanismos en los que se apoyan como metamodelos, DSLs,
estándares de intercambio, etc., potencian la transformación de
modelos y la generación de código.
El uso práctico del análisis comparativo, se puede dar a partir de
un proceso de toma de decisiones, en el que una empresa defina
pesos para cada criterio de comparación y pondere esos pesos
con las calificaciones propuestas en este trabajo para decidir cual
técnica le conviene para modelar su arquitectura de referencia.
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. Völter, M. y Stahl, T. Model-Driven Software Development (Technology, Engineering,
Management) ISBN: 978-0-470-02570-3, 444 p, 2006.
5. Bézivin, 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.: Introducción a la Arquitectura de Software Versión 1.0. Centro de
Arquitectura .NET Microsoft, Universidad de Buenos Aires, Marzo 2004.
http://www.hacienda.go.cr/centro/datos/Articulo/Introducción a la Arquitectura de
Software.doc
11. Aspect-Oriented Software Association. Aspect-Oriented Software Development
Community & Conference. [Documento Electrónico]. AOSA, 2006. http://aosd.net/
12. Quintero, J., Anaya, R.: Marco de Referencia para la Evaluación 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 descripción arquitectónica 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 ingeniería 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. 40–52, 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.
Referencias