Implicaciones de transformaciones oblicuas en el desarrollo de un framework generador de aplicaciones orientadas a aspectos
Full text
Impliaiones de transformaiones obliuas en el desarrollo de un framework generador de apliaiones orientadas a asp etos Antonia M a Reina Quintero Jesús Torres Valderrama Dpto. de Lengua jes y Sistemas informátios Dpto. de Lengua jes y Sistemas informátios Universidad de Sevilla Universidad de Sevilla Avda. Reina Meredes, s/n Avda. Reina Meredes, s/n 41012 Sevilla 41012 Sevilla reinaqulsi.us.es jtorreslsi.us.es Resumen La orientaión a asp etos mejora la evoluión del software lo alizando los ambios, mientras que el desarrollo de software onduido p or mo delos (MDD) basado en el estándar ono- ido omo Mo del Driven Arhiteture (MDA) mejora la adaptaión a los ambios tenológi- os, y p or tanto, la evoluión del software. En este artíulo se propone un enfo que híbrido, de tal forma que p o damos saar partido de las venta jas prop orionadas p or ambas propuestas. En MDA se onvierten en elemento lave las transformaiones. El artíulo se entra, por tanto, en el análisis del tip o de transforma- iones neesarias para llevar a abo este enfo que híbrido, y en ómo la tip ología de las mismas afeta al transformador de mo delos de un framework que genere apliaiones en base a este enfo que híbrido. 1. Intro duión Debido a los onstantes ambios que tienen que enfrentar los ingenieros software en los últimos años han surgido propuestas tanto para onseguir una mejor evoluión de los sistemas software, omo para p o der adoptar los ambios de tenología on mínimo oste. En la primera línea, se enuentra lo que se onoe omo el nuevo paradigma de desarrollo software orientado a asp etos (DSOA)[4℄. En la segunda se puede inluir el desarrollo onduido p or mo delos (MDD), sobre todo on la propuesta MDA[5℄ de la Ob jet Management Group (OMG). Puesto que ambas líneas de traba jo no son inompatibles, sino más bien, todo lo ontrario, es fatible p ensar que aunando amb os paradigmas p o demos onseguir apliaiones que se pueden adaptar más fáilmente a los ambios de requisitos y a los ambios de te- nología. Así, nuestra propuesta se puede onsiderar omo un enfo que híbrido, en el sentido de que prop onemos traba jar on oneptos separados a ualquier nivel mo delado, entendiendo p or niveles de mo delo los niveles propuestos por MDA: mo delos independientes de la plataforma, mo delos dep endientes de plataforma y ó digo). En [6℄ se detallaba la arquitetura de un framework generador de apliaiones, basado en MDA, que daba la p osibilidad de mo delar oneptos p or separado. Estos asp etos se esp eiaban mediante lengua jes de modelado esp eíos de dominio, onvirtiendo así las transformaiones en elementos lave, ya que pueden llegar inluso a realizar funiones de weaver . Desde esta persp etiva, omp oner un asp eto y un mo delo que esp eique la fun- ionalidad básia, se onvertiría en la apli- aión de una serie de transformaiones, a dos mo delos, o a dos metamo delos. En este artíulo se estudian los distintos tip os de transformaiones existentes, para ver on uál de ellas traba jará nuestro framework .
Además, se analizan las impliaiones de las mismas sobre el diseño de un omp onente del framework , el transformador de mo delos. Para ello, el traba jo se estrutura omo sigue: En la seión 2 se presenta una ategorizaión del tip o de transformaiones que nos p o demos enontrar en la bibliografía, para p osteriormente determinar on uáles de ellas deb e traba jar nuestro framework generador de apliaiones. El tip o de transformaiones será determinante para denir los requisitos del framework, sobre to do del transformador de mo delos. A ontinuaión, en la seión Estrutura de apliaiones generadas por el framework , se hae una revisión de la estrutura de las apli- aiones on las que va a traba jar el framework, on ob jeto de determinar los requisitos que imp onen al mismo. En la seión seión 4 se denen las araterístias del transformador de mo delos en base al tip o de transformaiones que vamos a ontemplar en el framework . Luego, en la seión 5, se exp onen las op- iones de implementaión de las reglas de trasformaión y motiva p or qué se elige SQL emb ebido para implementarlas. Finalmente, se onluye el traba jo y se apuntan futuras líneas de investigaión. 2. Categorizando transformaiones Según la OMG [5℄, la transformaión de modelos es el pro eso de onvertir un modelo en otro. Según Frane y Bieman [2℄, las transformaiones se pueden lasiar en transformaiones vertiales y transformaiones horizontales. Las transformaiones vertiales son aquellas que se aplian a un mo delo para obtener otro expresado on un nivel de abstraión diferente, mientras que las transformaiones horizontales se aplian a un mo delo para obtener otro del mismo nivel de abstraión. Un ejemplo de transformaiones vertiales en el ámbito de MDA son las transformaiones neesarias para transformar un Mo delo Indep endiente de Plataforma (PIM) en un Mo delo Esp eío de Plataforma (PSM), mientras que una transformaión horizontal, puede ser la omp osiión de un asp eto en un mo delo sin ambiar el nivel de abstraión. Czarneki [1℄, sin embargo, distingue entre tres tip os de transformaiones: vertiales, horizontales y obliuas. De forma que las transformaiones vertiales involuran transformar un modelo de alto nivel en un modelo de más ba jo nivel, llamándolas también renamientos haia adelante. Las transformaiones horizontales mo dian la estrutura mo dular de una apliaión al mismo nivel. Mientras que las transformaiones obliuas tienen omp onentes tanto vertiales omo horizontales. En la 1 se muestra un esquema de los tip os de transformaiones que onsidera Czarneki. Transformación Horizontal Transformación Vertical Transformación Oblicua Figura 1: Transformaiones tomadas de [1℄ En [3℄, además se identian los distintos tip os de transformaiones vertiales y horizontales que p o demos apliar a los mo delos. Así, nos p o demos enontrar on los siguientes tip os de renamientos: • Esp eializaión. Este tipo de transformaión toma omo entrada un ob jeto o onjunto de ob jetos menos espeializados y da omo resultado un onjunto de ob jetos más esp eializados. • Elab oraión. Toma omo entrada una onguraión de ob jetos menos detallada y da omo resultado onguraiones de ob jetos más detalladas. • Realizaión.
PIM Interfaz Usuario PIM Navegación PIM Seguridad PIM Distribución PIM Persistencia PIM Conceptual PSM Interfaz Usuario JSF PSM Navegación JSF PSM Seguridad EJB PSM Distribución EJB PSM Persistencia EJB PSM Relacional Código Fuente EJB Código Fuente JSF Código Fuente SQL Código Fuente EJB Código Fuente EJB Transformación PIM -> Componente JSF Transformación PIM -> Componente JSF Transformación PIM -> Componente EJB Transformación PIM -> Componente EJB Transformación PIM -> Componente EJB Transformación PIM -> Relacional Transformación Generación Código Transformación Generación Código Transformación Generación Código Transformación Generación Código Transformación Generación Código Transformación Generación Código Figura 2: Estrutura de una apliaión generada p or el framework Las onguraiones de ob jetos de la entrada se transforman en ob jetos que representan su implementaión. • Derivaión. Nuevas esp eiaiones de ob jetos se derivan de las onguraiones de ob jetos que se toman omo entrada. • Desomp osiión. Ob jetos individuales se transforman en onguraiones de ob jetos en la salida. Mientras que on resp eto a las transforma- iones horizontales nos p o demos enontrar los siguientes tip os: • Refatorizaión. Son transformaiones realizadas para mejorar la estrutura de la esp eiaión dada p or los desarrolladores. • Optimizaión. Su ob jetivo es mejorar algunas araterístias de una espeiaión, tales omo su rendimiento o el uso de los reursos. • Deslo alizaión. Es un tip o de transformaión que se utiliza para implementar asp etos, es deir, para enapsular elementos que ortan la estrutura o el omp ortamiento de otros elementos, lo que en la terminología de orientaión a asp etos se ono e omo rossutting onerns. 3. Estrutura de apliaiones generadas p or el framework En este apartado, analizaremos de qué tip o de apliaiones se tiene que o upar el framework , para posteriormente, omprobar qué implia- iones tendrán estas deisiones en el diseño del transformador de mo delos. Como ya se ha omentado en la intro du- ión, algunas transformaiones servirán omo meanismo de omp osiión. Sup ongamos que tenemos separados los distintos oneptos de nuestro sistema a nivel de mo delo indep endiente de la plataforma, p ero la plataforma esp eía en la que queremos implementar nuestro sistema no proporiona meanismos de separaión. En este aso, o bien a la hora de generar los modelos esp eíos de plataforma, o bien a la hora de generar el ó digo, tendríamos que omp oner esos mo delos separados. Para lariar un p o o más este onepto, véase el ejemplo de la Figura 2. En él se mues-
Editor Modelos Validador Modelos Editor de Transformaciones Transformador de modelos Generador Código Parser Generador Editor Código (IDE) Repositorio de Modelos Repositorio de Transformaciones Código Fuente Figura 3: Comp onentes del framework generador de apliaiones tra la estrutura que tendrá una apliaión generada p or el framework. Cuenta on tres niveles de mo delos (PIM, PSM y ó digo), que se pueden distinguir en horizontal, y varios asp etos separados (oneptual, persistenia, distribuión, seguridad, navegaión e interfaz de usuario. Las transformaiones de PIM a PSM son transformaiones vertiales, ya que pasan de un nivel de abstraión mayor a un nivel de abstraión menor, mientras que las transformaiones PSM a omponente Java Server Faes (JSF) pueden ser obliuas. Es deir, las transformaiones de PSM a omp onente JSF pueden tener omp onentes vertiales y horizontales, ya que no solamente disminuyen el nivel de abstraión, sino que mezlan dos on- eptos, el interfaz de usuario y la navegaión. Por tanto, en el aso de la Figura 2, los asp etos de navegaión y presentaión se espei- an p or separado a nivel de PIM, p ero omo JSF, que es la plataforma elegida para implementarlos, no presenta una separaión lara de amb os, en el mo delo resultante de la transformaión tendremos amb os asp etos entremez- lados. Es deir, las transformaiones han realizado un traba jo de weaving . 4. Caraterístias del transformador de mo delos Como ya se ha menionado en la introdu- ión, en [6℄ se prop onía la arquitetura de un framework generador de apliaiones. En la Figura 3, se puede observar que los prinipales omp onentes denidos en la misma, son: un editor de mo delos, un validador de mo delos, un editor de transformaiones, un transformador de mo delos, un generador de ó digo y un editor de ó digo. De to dos ellos, el omp onente que se ve más inueniado p or el he- ho de tener que tratar on transformaiones
obliuas es el transformador de mo delos, p or lo tanto, en adelante nos entraremos en analizar las impliaiones de implementar este tip o de transformaiones sobre el mismo. En [1℄, se distingue entre generadores omp osiionales, y generadores transforma- ionales. Los generadores omp osiionales no realizan transformaiones que puedan redenir la estrutura mo dular de una apliaión. Los generadores transformaionales, sin embargo, no solamente realizan renamientos, sino que también son apaes de traba jar on transformaiones que tengan un omp onente horizontal (bien sean transformaiones horizontales, bien sean transformaiones obliuas). Este tip o de transformadores es más p otente que el omp osiional. Así que nuestro transformador de mo delos ha de ser transformaional, y este heho, es determinante en su arquitetura. La eleión de ómo se van a implementar las reglas de transformaión va a ser otro punto determinante para diseñar la arquitetura del transformador de mo delos. Atendiendo a la lasiaión realizada en [7℄, se pueden adoptar tres enfo ques distintos: • Manipulaión direta de mo delos. Las herramientas que siguen este enfo que ofreen al usuario aeso a una representaión interna del mo delo y una serie de Interfaes de Programador de Apliiones (APIs) para manipular la representaión. La manipulaión direta tiene la ventaja de que el lengua je que se suele utilizar para traba jar on las APIs suele ser un lengua je de uso omún tal omo Visual Basi o Java, on lo ual, los desarrolladores no neesitan un entrenamiento extra para esribir transformaiones. Sin embargo, estas APIs suelen restringir la lase de transformaiones que se pueden realizar. Además, omo los lengua jes utilizados son de propósito general, no tienen abstraiones adeuadas para expresar transformaiones, p or lo tanto, el esribir una transformaión se onvierte en una tarea que onsume tiemp o, y además, suelen ser algoritmos difí- iles de mantener. • Representaión intermedia. La herramienta exp orta el mo delo a un formato estándar, normalmente XML, y una herramienta externa toma el mo delo y lo transforma. La representaión intermedia tiene la venta ja de que existen en el merado muhas herramientas que exp ortan o imp ortan mo delos desritos en XMI, y que, p or tanto, se pueden utilizar heramientas XML ya existentes, omo XSLT para realizar transformaiones. Sin embargo, la deni- ión de transformaiones, aunque sean simples, de mo delos en XSLT requiere un esfuerzo onsiderable. Otro inonveniente imp ortante de este tip o de arquitetura es que las transformaiones se realizan por lotes, on lo ual es difíil que el usuario tenga un diálogo interativo on la herramienta. • Sop orte de lengua je de transformaión. La herramienta ofree un lengua je que prop oriona un onjunto de onstrutores o meanismos para expresar, omp oner y apliar transformaiones de manera explíita. Según los autores de [7℄, este enfo que es el que ofree un mayor p otenial de los tres. En la siguiente seión veremos ómo implementaremos las reglas de transformaión, y p or tanto, nos ayudará a esoger una de estas tres propuestas de arquiteturas. 5. Implementaión de las reglas de transformaión A la hora de implementar las reglas de transformaión que tiene que pro esar nuestro generador de mo delos, tenemos uatro op iones distintas: • Utilizando un lengua je de programaión y haiendo la odiaión a mano.
• Utilizando un lengua je de queries emb ebido, tal omo XPath [8℄ o XQuery [9℄. • Utilizando un sistema basado en reglas, tal omo CLIPS, o Prolog. • Denir un lengua je, bien pro edural, bien delarativo, bien una mezla de amb os. Con la primera op ión se pueden obtener implementaiones más eientes, p ero el tener que esribir la o diaión a mano es un gran inonveniente. El elegir esta op ión impliaría el elegir una arquitetura de manipulaión direta de mo delo. La segunda y terera op ión elimina algún traba jo de esritura, p ero ambas presentan el inonveniente de que para utilizarlos, hay que adaptar el formato del árb ol de sintaxis abstrata al formato on el que traba ja o bien el sistema de reglas, o bien el lengua je de queries emb ebido. La segunda op ión para expresar las transformaiones impliaría una arquitetura de representaión intermedia, mientras que la última determina una arquitetura de soporte de lengua je de transformaiones. Como uno de los ob jetivos propuestos a la hora de realizar el framework es aprovehar las herramientas existentes, entre to das estas op iones, la más viable es el uso de XPath o XQuery o XSLT, para p o der traba jar on todas las herramientas ya disp onibles en XML. Como ya se ha omentado en la seión 4, este enfo que requiere una exp erienia onsiderable para denir las transformaiones, así que, se tendrá que prop orionar una forma de aligerar este esfuerzo, bien deniendo un lengua je p or enima de XSLT, bien deniendo un lengua je esp eío de dominio para traba jar on estas transformaiones. 6. Conlusiones y traba jos futuros En este artíulo se ha puesto de maniesto la imp ortania del tratamiento de reglas de transformaión obliuas en el aso de que el propio transformador tenga que atuar omo weaver . Además, se ha visto ómo la deisión de tratar on transformaiones obliuas en el generador de mo delo, obliga a tener un generador de tipo transformaional, desartando los generadores omp osiionales. De la misma forma, a la hora de implementar las transformaiones, se ha determinado que la mejor op ión, según los requisitos impuestos al framework, es utilizar SQL emb ebido en algún lengua je del tip o XQuery o XPath, lo que implia una arquitetura de tip o representaión intermedia. Como traba jos futuros, estamos traba jando en la deniión de transformaiones a nivel de metamo delos, para onseguir el tejido de los mismos. Referenias [1℄ Czanerki, K., Eiseneker, U.W. Generative Programming. Methods, Tools and Appliations . Addison Wesley, 2000. [2℄ Frane, R., Bieman, J.M. Multi-View Software Evolution: A UML-based Framework for Evolving Objet-Oriented Software . In the Pro eedings of the International Conferene on Software Mainteinane (ICSM 2001). Novemb er, 2001. [3℄ Greeneld, J., Short, K., Co ok, S. , Kent, S. Software Fatories. Assembling Appliations with Patterns, Models, Frameworks, and Tools. Wiley Publishing, In, 2004. [4℄ Kizales, G., Lamping, J., Mendhekar, A. and Maeda, C., Lop es, C.,Loingtier, J.M., Irwin, J. Aspet-Oriented Programming . 11th Europ een Conf. Ob jet-Oriented Programming, 1997. Eds. M. Ak³it and S. Matsuoka. LNCS 1241, pp. 220-242, Springer Verlag. [5℄ Ob jet Management Group. MDA Guide. Version 1.0.1 , OMG, 2003. [6℄ Reina, A. M., Torres, J. Separaión de on- eptos y MDA: Arquitetura de un framework , I Taller sobre Desarrollo de Software Dirigido p or Mo delos, MDA y Apliaiones (DSDM'04). Celebrado junto on las Jornadas de Ingeniería del Software y Bases de Datos (2004). Málaga, España. Novemb er, 2004. ISBN: 84-688-8870-2.
[7℄ Sendall, S., Kozazynski, W. Model Transformation - The Heart and Soul of ModelDriven Sofware Development IEEE Software. Vol 20, n o 5, pp. 42-45. Sept/Ot 2003. [8℄ W3C. XML Path Language (XPath) 2.0 W3C Working Draft 04 April 2005 (http://www.w3.org/TR/xpath20/) [9℄ W3C. XQuery 1.0: An XML Query Language W3C Working Draft 04 April 2005.(http://www.w3.org/TR/xquery/)