scieee Open visual document viewer

Hacia lenguajes de metamodelado orientados a aspectos

Reina Quintero, Antonia María; Torres Valderrama, Jesús; Toro Bonilla, Miguel

Abstract

En este artículo se propone la extensión de los lenguajes de metamodelado con constructores de la orientación a aspectos. Tras justificar brevemente el interés que en la actualidad está teniendo el metamodelado, y sentar las bases necesarias para entender la propuesta, se presenta, a través de ejemplos, la necesidad de extender un lenguaje de metamodelado como Kermeta con conceptos introducidos en el ámbito de la orientación a aspectos

Full text

Desa ollo de So wa e O ien ado a Aspec os, DSOA 2006 Asociado a XV Jo nadas de Ingenie a del So wa e y Base de Da os J. A a´ujo, J. He n´andez, E. Na a o y M. Pin o (Eds) Si ges (Ba celona), Oc ub e - 2006 HACIA LENGUAJES DE METAMODELADO ORIENTADOS AASPECTOS A. M. Reina 1, J. To es1,M.To o 1 1: Dp o. Lenguajes y Sis emas In o m´a icos E.T.S. Ingenie ´ıa In o m´a ica Uni e sidad de Se illa A da. Reina Me cedes, s/n. 41012 Se illa e-mail: [email protected], web: h p://www.lsi.us.es/˜ einaqu Palab as cla e: me amodelado, desa ollo de so wa e o ien ado a aspec os, desa ollo de so wa e di igido po modelos Resumen. En es e a ´ıculo se p opone la ex ensi´on de los lenguajes de me amodelado con cons uc o es de la o ien aci´on a aspec os. T as jus i ica b e emen e el in e ´es que en la ac ualidad es ´a eniendo el me amodelado, y sen a las bases necesa ias pa a en ende la p opues a, se p esen a, a a ´es de ejemplos, la necesidad de ex ende un lenguaje de me amodelado como Ke me a con concep os in oducidos en el ´ambi o de la o ien aci´on a aspec os. 1. INTRODUCCI ´ ON Hoy en d´ıa hay un in e ´es c ecien e po el Desa ollo de So wa e Di igido po Modelos (DSDM), p opiciado, sob e odo, po el hecho de que en los ´ul imos a˜nos han mejo ado mucho las he amien as pa a da sopo e a odo el p oceso de desa ollo so wa e. As´ı, des acan dos ap oximaciones a es e ipo de desa ollo: las Fac o ´ıas So wa e (FS)[8], p omo idas po Mic oso , y Model D i en A chi ec u e (MDA) [10] p omocionada po la Objec Managemen G oup (OMG). En ambas p opues as los me amodelos juegan un papel undamen al. Mien as que en las ac o ´ıas so wa e los me amodelos en an en juego en la ac i idad de desa ollo de di e en es lenguajes de modelado y de las he amien as espec´ı icas pa a el dominio de los mismos, en MDA los me amodelos son el apoyo de los di e en es ni eles de modelado (Modelos Independien es de Compu aci´on, Modelos Independien es de Pla a o ma y Mo- delos Espec´ı icos de Pla a o ma). Adem´as, aunque MDA impulsa el uso de UML, ambi´en p opo ciona MOF [11] como es ´anda pa a desc ibi nue os lenguajes de modelado. En es e a ´ıculo se p opone la inco po aci´on de algunos elemen os de inidos en los lenguajes de o ien aci´on a aspec os a los lenguajes de me amodelado, con obje o de sepa a compe encias y mejo a la eu ilizaci´on de los mismos. A. M. Reina, J. To es, M. To o Cuando se de inen me amodelos, se puede abaja en di e en es espacios ecnol´ogicos: con lenguajes g ´a icos; con XML median e el es ´anda XMI [12]; con una implemen aci´on en Ja a; o con un lenguaje dise˜nado espec´ı icamen e pa a de ini me amodelos como Ke - me a [14]. En los dos p ime os casos, no hay muchos p oblemas a la ho a de eu iliza me amodelos. Sin emba go, en los dos ´ul imos se puede pe de la p opiedad conocida en el ´ambi o de la o ien aci´on a aspec os como obli iousness. Es deci , no se puede consegui man ene al me amodelo o iginal inconscien e de se eu ilizado po o o me amodelo. Po o a pa e, si es os lenguajes se ex ienden pa a de ini ca ac e ´ıs icas de com- po amien o, al y como ocu e en Ke me a, se iene que no p opo cionan una buena sepa aci´on de concep os, ya que se basan en los cons uc o es de inidos en la o ien aci´on aobje os. El a ´ıculo se es uc u a como sigue: en la secci´on 2 se explican algunos concep os nece- sa ios pa a en ende el es o del a ´ıculo, mien as que en las secciones 3 y 4 se mues a, median e un ejemplo p ´ac ico c´omo se pod ´ıan bene icia los lenguajes de me amodelado, en es e caso Ke me a, de la iloso ´ıa de la o ien aci´on a aspec os. Finalmen e, el a ´ıculo se concluye. 2. METAMODELADO Y LENGUAJES DE METAMODELADO Se puede conside a que un me amodelo es una de inici´on p ecisa de los cons uc o es y eglas necesa ios pa a de ini la sem´an ica de los modelos. Adem´as, el me amodelado puede e se como una ac i idad que es ´a omando auge en los ´ul imos a˜nos y que si e pa a o ganiza los modelos en di e en es ni eles, de al modo que un modelo se desc ibe po o o modelo que es ´a si uado en un ni el supe io (su me amodelo). A la ho a de de ini me amodelos han su gido di e en es p opues as, as´ıMOFesun lenguaje g ´a ico, pa a el cual la OMG ha es anda izado una se ie de co espondencias que especi ican c´omo se ges ionan los me ada os en una ecnolog´ıa de e minada: XMI [12] es el es ´anda pa a de ini me amodelos MOF en XML, mien as que JMI [15] de ine la sin axis abs ac a pa a abaja con me ada os en Ja a. Al mismo ni el que MOF, pe o como una p opues a m´as lige a, es ´a Eco e, el lenguaje de me amodelado asociado al Eclipse Modelling F amewo k (EMF) [3]. EMF ambi´en puede abaja a pa i de modelos de inidos en UML, XML o in e aces Ja a. Adem´as, han su gido lenguajes de me amodelado dise˜nados espec´ı icamen e pa a de ini me amodelos y que no malmen e es ´an asociados a he amien as, ales como KM3 [2] que es ´a asociado a la pla a o ma AMMA, o Ke me a [14]. Los ejemplos in oducidos en es e a ´ıculo, se basan en Ke me a. Ke me a es un lengua- je de inido con el p op´osi o de se i a odas las posibles manipulaciones de modelos, es deci , ha sido pensado pa a que si a an o pa a la de inici´on de me amodelos y modelos como pa a la de inici´on de acciones, consul as, is as y ans o maciones. En la igu a 1 se mues a la si uaci´on del lenguaje Ke me a como el conjun o de cons uc o es comunes a los lenguajes de me amodelado, de acciones, de ans o maciones y de es icciones. As´ı, Ke me a es una ex ensi´on de EMOF (Essen ial Me a-Objec Facili ies) 2.0 pa a A. M. Reina, J. To es, M. To o Leng. Me a-da os Leng. Acción Leng. T ans Leng. Res iciones Núcleo común Figu a 1: Si uaci´on de Ke me a da sopo e a la de inici´on del compo amien o. P opo ciona un lenguaje de acci´on pa a especi ica el cue po de las ope aciones en los me amodelos. 3. APLICANDO ORIENTACI ´ ONAASPECTOSENLAESTRUCTURA EST ´ ATICA Es e apa ado mues a c´omo se puede u iliza la o ien aci´on a aspec os pa a mejo a la eu ilizaci´on de me amodelos. En es e caso, lo que se desea modi ica es la es uc u a es ´a ica del me amodelo. Pa a in oduci la p oblem´a ica se a a u iliza un ejemplo, que puede se consul ado con m´as de alle en [13]. Supongamos que necesi amos de ini un me amodelo pa a Ja a2, y que amos a de ini ese me amodelo con Ke me a. El me amodelo de Ja a2 se ha ob enido de [4], y su implemen aci´on se ecoge ´a en un paque e, denominado <<Ja a2>>. En la igu a 2 se mues a un ex ac o de es e me amodelo de inido en Ke me a. En conc e o, la de inici´on Ke me a de la me aclase Class ep esen ada en la pa e cen al de la igu a. En el c´odigo se puede e que Class he eda de Classi ie (l´ınea 01), y que iene de inido dos a ibu os (s a icIni yins anceIni ,enlasl´ıneas 02 y 03, espec i amen e). En es a ase, las l´ıneas 05 y 06 no son necesa ias, ya que como e emos un poco m´as adelan e, se debe ´an in oduci al ex ende es e me amodelo. Supongamos que una ez que enemos de inido nues o me amodelo pa a Ja a2, su ge la necesidad de de ini un me amodelo pa a Aspec J [1]. Como ya enemos nues o me a- modelo Ja a2, que emos ap o echa el abajo ealizado, y de ini el me amodelo de As- pec J en base al de Ja a2. En es e caso, el me amodelo de Aspec J escogido es el que se de ine en [9]. Eso implica que end emos un paque e Ja a2 y o o paque e Aspec J,yquehab ´ame a- clases del paque e Aspec J elacionadas con me aclases del paque e Ja a2. En la igu a 2, se mues a un ejemplo de es as elaciones. En el g ´a ico, apa ecen dos me aclases es e eo i- padas: Class yPoin cu . El es e eo ipo indica el paque e al que pe enecen. En es e caso, la elaci´on que exis e en e ellas es una elaci´on de composici´on. Aunque no apa ece en el g ´a ico, si nos ijamos en el ozo de c´odigo Ke me a co e- spondien e a Poin cu (l´ınea 01), se puede comp oba que ambi´en man iene una elaci´on A. M. Reina, J. To es, M. To o con Fea u e (que pe enece al paque e Ja a2). En es e caso, es una elaci´on de he encia. A la ho a de ex ende el paque e Ja a2 median e el diag ama MOF, no encon a ´ıamos ninguna di icul ad, ya que lo ´unico que hab ´ıa que hace se ´ıa c ea un paque e nue o llamado Aspec J e inclui las me aclases de Ja a2 es e eo ipadas, pa a indica que son clases de o o paque e. 01 class Class inhe i s Classi ie { 02 a ibu e s a icIni :Block [0..1] 03 a ibu e ins anceIni :Block[0..*] 04 e e ence h ownBy:Beha io alFea u e[0..*]# h ownExcep ions 05 //Añadido al ex ende con el paque e de Aspec J 06 a ibu e poin cu :Poin cu [0..*]#decla e 07 } 01 class Poin cu inhe i s Fea u e{ 02 a ibu e pa amPC:Pa ame e [0..*]#poin cu Pa 03 e e ence decla e :Class#poin cu 04 a ibu e pce: Poin cu Exp ession[0..1]#pc 05 e e ence exp ession: Poin cu Exp ession[0..*]#pcOpe and 06 } <<Aspec J>> Poin cu <<Ja a2>> Class +decla e * Figu a 2: Ex endiendo me amodelos en Ke me a Cuando amos a de ini el me amodelo de Aspec J en Ke me a, nos encon amos con alguna di icul ad. En p ime luga , end emos que c ea nos un paque e Aspec J donde de inamos las nue as me aclases. Si la elaci´on de es as me aclases con las me aclases del paque e Ja a2 es una elaci´on de he encia (como es el caso de Poin cu -Fea u e en la igu a 2), no hay ning´un p oblema, se incluye el paque e y la cla´usula inhe i s (l´ınea 01 en la de inici´on de Poin cu ). En cambio, si la elaci´on es una asociaci´on o una composici´on (como en el caso de Poin cu -Class) hay que modi ica la de inici´on del me amodelo o iginal, con lo cual deja de se eu ilizable. Pa a implemen a una asociaci´on en Ke me a se coloca una cl´ausula e e ence en cada una de las clases in oluc adas en la asociaci´on. Si la asociaci´on iene sem´an ica de composici´on ( al como ocu e en el caso Poin cu -Class), en luga de dos cl´ausulas e e ence hay que esc ibi una cl´ausula e e ence y o a a ibu e.Enelcasodela igu a 2, en la clase Poin cu se puede obse a la cl´ausula e e ence que de ine un ex emo de la composici´on (l´ınea 03, esal ada en neg i a). Pe o adem´as, pa a de ini el o o ex emo de la composici´on (el que es ´a ma cado con el ombo), hay que esc ibi una cl´ausula a ibu e en la me aclase Class (l´ınea 06, en neg i a). Como se puede obse a , se ha enido que modi ica el me amodelo o iginal de Ja a2, pa a pode inclui la asociaci´on con el elemen o Poin cu del paque e Aspec J. Pa a a aca es e p oblema, p oponemos una ampliaci´on del lenguaje inspi ada en As- pec J de o ma que se de ina un nue o cons uc o aspec pa a in oduci decla aciones A. M. Reina, J. To es, M. To o in e - ipo. 4. APLICANDO ORIENTACI ´ ON A ASPECTOS EN LA DEFINICI ´ ON DEL COMPORTAMIENTO Adem´as de la de inici´on de me amodelos, Ke me a pe mi e de ini compo amien o. En es e apa ado, po an o, se mos a ´a a a ´es de un ejemplo, como se puede mejo a la sepa aci´on de concep os en la pa e de compo amien o. El ejemplo escogido es ´a elacionado con un p oblema que se es ´a abo dando an o desde la comunidad de la o ien aci´on a aspec os como desde la comunidad del desa ollo de so wa e di igido po modelos: la azabilidad. Una de las mane as de abo da lo es de ini un me amodelo de la aza, independien e de las ans o maciones y del me amodelo u ilizado. Un ejemplo de es e en oque es la p opues a p esen ada en [6], en la que se de ine un me amodelo pa a la azabilidad y un amewo k pa a la misma. 01 ope a ion ans o m (sou ce: ClassHie a chy ) : Da aBase is do 02 esul := Da aBase.new //Inicializa el modelo des ino 03 ace.ini S ep ( ”minuml2mindb ”) // T aza el código gene ado 04 sou ce.hie a chy.each {cls | //I e a po las clases del modelo o igen 05 a able: Table ini Table.new // C ea una abla 06 able.name := S ing.clone (cls.name) //Copia el nomb e de la clase a la abla 07 esul . able.add ( able) // Añadi la abla al modelo des ino 08 // T aza el código gene ado 09 ace.add link (”minuml2mindb” , ”class2 able” , cls , able ) 10 cls.ownedA ibu e.each { p op | // I e a po los a ibu os de la clase 11 a col : Column ini Column.new // C ea una columna nue a 12 col.name:= S ing.clone ( p op.name ) 13 able.column.add ( col ) // Añadi la columna a la co espondien e abla 14 // T aza el código gene ado 15 ace.addlink ( ”minuml2mindb”, ”p ope y2column” , p op, col) 16 } // Fin de la i e ación po los a ibu os 17 } //Fin de la i e ación po las clases 18 end Figu a 3: T azando una ans o maci´on en Ke me a En la igu a 3 se puede e el c´odigo Ke me a que de ine una ope aci´on ans o m donde se de inen las ans o maciones necesa ias pa a gene a un esquema de base de da os educido a pa i de un diag ama educido de clases UML. Como se puede obse a , pa a aza las ans o maciones, se han de inse a ozos de c´odigo pa a llama a ope aciones de inidas en el amewo k de azabilidad (l´ıneas 03, 09 y 15, esal adas en g is m´as cla o). Po lo an o, el c´odigo pa a in oca al amewo k de azabilidad se mezcla con el c´odigo necesa io pa a ealiza la ans o maci´on. Si ol emos a ija nos en Aspec J, en es e caso p oponemos la amplicaci´on del lenguaje A. M. Reina, J. To es, M. To o con cons uc o es pa a especi ica los pun os en los que se a a inyec a el c´odigo necesa io pa a aza las ans o maciones, as´ı como pa a ecoge es e c´odigo que se inyec a. 5. CONCLUSIONES Las ideas p opues as en es e a ´ıculo a´un se encuen an en una ase p elimina , pe o aho a que se es ´a ex endiendo con ue za el desa ollo de so wa e di igido po modelos, y que el me amodelado se ha con e ido en pa e cen al del mismo, es necesa io encon a mecanismos pa a pode eu iliza la implemen aci´on de es os me amodelos. Aunque a ni el g ´a ico y abajando con XMI no pa ezca necesa io, al inal, las he amien as acaban o bien haciendo una implemen aci´on en alg´un lenguaje de p op´osi o gene al, o bien de iniendo su p opio lenguaje pa a desc ibi los me amodelos. En es e a ´ıculo, se aboga po la aplicaci´on de los concep os desa ollados en la o i- en aci´on a aspec os pa a pode mejo a la eu ilizaci´on de los me amodelos. REFERENCIAS [1] The Aspec J Team. Aspec J P og amming Guide ( .1.2). A alaible a : h p://www. eclipse.o g/aspec j. 2003. [2] A las G oup. KM3: Ke nel Me aMe aModel Manual [3] F. Budinsky, D. S einbe g, E. Me ks, R. Elle sick, T. J. G ose. Eclipse Modelling F amewo k: A De elope ’s Guide. Addison-Wesley, 2003. [4] S. Dedic and M. Ma ula Me amodel o he Ja a Language A alaible a : h p:// ja a.ne beans.o g/models/ja a/ja a-model.h ml. [5]T.El ad,R.E.Filman,A.Bade .Aspec O ien ed P og amming. Communica ions o he ACM. Vol. 44, n. 10., Oc . 2001. [6]J.R.Falle y.M.Hucha d,C.Nebu .Towa ds a aceabili y amewo k o model ans o ma ions in Ke me a. P oceedings o he 2nd ECMDA T aceabili y Wo kshop. Held wi h he ECMDA Con e ence. July, 2006. Bilbao, Spain. [7] R. E.Filman, D. P. F iedman. Aspec -O ien ed P og amming is Quan i ica ion and Obli iousness. P oceedings o he Wo kshop on Ad anced Sepa a ion o Conce ns, OOPSLA 2000. Oc , 2000. [8] J. G een ield, K. Sho , S. Cook, S. Ken . So wa e Fac o ies. Assembling Applica ions wi h Pa e ns, Models, F amewo ks and Tools.Wiley Publishing, Inc., 2004. [9] Y.Han,G.Kniesel,A.C eme s.Towa ds Visual Aspec J by a Me aModel and Mode- ling No a ion. P oceedings o he 6 h In e na ional Wo kshop on Aspec -O ien ed Modeling held in conjunc ion wi h he 4 h In e na ional Con e ence on Aspec - O ien ed So wa e De elopmen (AOSD’05). Chicago, Illinois, USA. Ma , 2005. A. M. Reina, J. To es, M. To o [10] OMG, MDA Guide Ve sion 1.0, Eds. J. Mille and J. Muke ji. May, 2003. [11] OMG, Me a Objec Facili y Speci ica ion Ve sion 2.0,Janua y, 2006. [12] OMG. MOF 2.0 / XMI Mapping Speci ica ion, 2.1. Jan, 2006. A alaible a : h p: //www.omg.o g/ echnology/documen s/ o mal/xmi.h m. [13] A. M. Reina, J. To es. Using aspec -o ien a ion echniques o imp o e he euse o me amodels. P oceedings o he Second Wo kshop on Aspec -Based and Model-Based Sepa a ion o Conce ns in So wa e Sys ems (ABMB 2006). Held wi h he ECMDA Con e ence. July, 2006. Bilbao, Spain. [14] T iskel Team. Ke me a web si e: h p://www.ke me a.o g. [15] Sun Co po a ion: The Ja aTM Me ada a In e ace (JMI) Speci ica ion. Jun, 2002. A alaible a : h p://jcp.o g/abou Ja a/communi yp ocess/ inal/js 040/ index.h ml.