Hacia lenguajes de metamodelado orientados a aspectos
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.