TESTEO DE MODELOS
ORIENTADO A LÍNEAS DE PRODUCTO
MODEL TESTING
BASED ON PRODUCT LINES
TRABAJO FIN DE GRADO
CURSO 2023-2024
AUTOR
RAFAEL ALONSO GARCÍA
DIRECTOR
MARÍA ELENA GÓMEZ MARTÍNEZ
JOSÉ IGNACIO REQUENO JARABO
GRADO EN INGENIERÍA SOFTWARE
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
ii
iii
TESTEO DE MODELOS
ORIENTADO A LÍNEAS DE PRODUCTO
MODEL TESTING
BASED ON PRODUCT LINES
TRABAJO DE FIN DE GRADO EN INGENIERÍA DE SOFTWARE
AUTOR
RAFAEL ALONSO GARCÍA
DIRECTOR
MARÍA ELENA GÓMEZ MARTÍNEZ
JOSÉ IGNACIO REQUENO JARABO
CONVOCATORIA: JUNIO 2024
GRADO EN INGENIERÍA DE SOFTWARE
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
27 DE MAYO DE 2024
i
AGRADECIMIENTOS
A mis u o es Elena e Ignacio po la ayuda y guía cons an e pa a la
elabo ación del TFG y amplia mis conocimien os en la inalización del g ado. Tan o
el es eo de modelos como las líneas de p oduc o son concep os que no los i con
an e io idad, po lo que siemp e es de ag adece ap ende cosas nue as y que
añadan u ilidad pa a u u os p oyec os.
i
RESUMEN
Tes eo de modelos o ien ados a líneas de p oduc o
A pa i de un me amodelo, se p e ende o maliza y analiza un modelo
ecibido, con el in de alida lo con espec o a dicho me amodelo y asegu a nos de
su co ec o uncionamien o
Palab as cla e
Ingenie ía O ien ada a Modelos, P uebas, EMF, me amodelo, Líneas de P oduc o, edes de
Pe i
ii
ABSTRACT
Ti le
Gi en a me amodel om a di e en p ojec , he goal is o o malize and
analyze ano he model ecei ed. Tha way we can alida e he p e ious me amodel
and make su e ha i wo ks as in ended.
Keywo ds
Model, es ing, em , me amodeling, p oduc lines.
iii
Tabla de con enido
1 In oducción .................................................................................................................................... 1
1.1 Mo i ación .............................................................................................................................. 1
1.2 Obje i os ................................................................................................................................. 2
1.3 Plan de T abajo ....................................................................................................................... 2
1.4 Es uc u a de la memo ia ....................................................................................................... 4
2 In oduc ion .................................................................................................................................... 5
2.1 Mo i a ion ............................................................................................................................... 5
2.2 Goals ....................................................................................................................................... 6
2.3 Wo k Plan ................................................................................................................................ 6
2.4 Repo s uc u e ...................................................................................................................... 7
3 Concep os p e ios ........................................................................................................................... 9
3.1 MDE ......................................................................................................................................... 9
3.2 DSL: Domain Speci ic Language ............................................................................................ 10
3.3 Va iabilidad ........................................................................................................................... 11
3.4 Fea u e Models ..................................................................................................................... 12
3.5 Redes de Pe i ....................................................................................................................... 13
3.6 PNPL ...................................................................................................................................... 14
4 He amien as u ilizadas ................................................................................................................ 15
4.1 GUI ........................................................................................................................................ 16
4.1.1 G aphWalke ................................................................................................................. 16
4.1.2 G aphS eam ................................................................................................................. 17
4.2 Lec u a de da os.................................................................................................................... 17
4.2.1 Acceleo .......................................................................................................................... 17
4.3 IDE ......................................................................................................................................... 18
4.3.1 In ellij ............................................................................................................................ 18
4.3.2 Visual S udio Code ........................................................................................................ 19
4.3.3 Log4j .............................................................................................................................. 19
5 Implemen ación ............................................................................................................................ 20
5.1 Inicialización del p oyec o ..................................................................................................... 21
5.2 Con olle .............................................................................................................................. 22
5.3 Pa se .................................................................................................................................... 22
5.4 U ils ....................................................................................................................................... 23
5.5 Tes e .................................................................................................................................... 23
ix
5.6 Clases de elemen os ............................................................................................................. 24
5.6.1 PNPL .............................................................................................................................. 24
5.6.2 Node .............................................................................................................................. 24
5.6.3 Rela ion ......................................................................................................................... 24
5.6.4 Place .............................................................................................................................. 25
5.6.5 T ansi ion ...................................................................................................................... 25
5.6.6 A c ................................................................................................................................. 25
5.6.7 Viewe ........................................................................................................................... 25
6 Conclusiones y T abajo a u u o ................................................................................................... 27
7 Conclusions and Fu u e Wo k ....................................................................................................... 29
8 Re e encias .................................................................................................................................... 31
Apéndice A: Ins alación ......................................................................................................................... 33
6
A me amodel is he model o a model; i con ains he s uc u e and logic ha
he model is based on. To make su e ha a model is buil co ec ly, i is necessa y ha
said model wo ks acco dingly o all me amodel ea u es; ha ’s why, o alida e
models, a me amodel will always be manda o y [1].
2.2 Goals
Con es e abajo, se p e ende encon a una o ma de ex ae la in o mación
de los modelos y me amodelos, analiza la y alida que dicha in o mación sea la
adecuada y no en e en con lic o con el me amodelo; en caso con a io, se
indica án dichos e o es.
The main goal o his p ojec is o ind a way o ex ac he in o ma ion ou o
models and me amodels, o analyze i and o make su e ha he da a is alid;
o he wise, all e o s will be displayed:
Tha is why we can di ide he main goal in se e al objec i es:
• To ind ools ha con e models in o di e en ile o ma s.
• T ansla e he ecei ed me amodel o a alid o ma o he p e ious
p ojec .
• To gua an ee he quali y and consis ency o all p oduc lines om he
model.
• Display a g aph based on he unc ional model.
2.3 Wo k Plan
This sec ion desc ibes he wo k plan o be ollowed in o de o achie e he
objec i es desc ibed in he p e ious sec ion, as well as seconda y goals o addi ional
wo k equi ed. These asks ha e been ca ied ou using he agile me hodology,
h ough sp in s and wi h lexibili y o change ce ain equi emen s
. The i s pa o he wo k consis ed o ga he ing in o ma ion and inqui ing mo e abou
he p oduc lines, how model es ing wo ks and e en es ing ools such as EMF (En i y
Modelling F amewo k) o ob ain a mo e p ac ical u ili y on he use o models,
me amodels and how p oduc lines a e applied o hese si ua ions. La e , he sea ch
7
o ools o ely on o he ecep ion o he da a began as well as he ou pu o he
esul s and, op ionally, he way in which he models could be es ed.
Once he p epa a ions o he p ojec we e comple ed, he objec i e was o
ind di e en ways o ansla e he da a ecei ed om he me amodel and model o
p ocess hem in o code. Apa om being able o use he p e iously men ioned da a
wi hou any p io p ocessing, he e is also he possibili y o using JSON iles h ough he
Acceleo ool. To unde s and his ool, a small u o ial was made be o e i s
implemen a ion, which las ed no mo e han a week.
The nex s ep ocused on eading he da a and gene a ing an app op ia e
s uc u e ha makes alida ion easie . A i s , i s pa sing was adap ed only o JSON
iles, bu la e he op ion was gi en bo h o send he me amodel's own eco e ile and
he model's xmi, as well as he abili y o alida e se e al models a once om he
same me amodel.
A e ha ing inished eading he da a, he nex s ep was o alida e models
hemsel es, sepa a ely and ensu ing hei p ope implemen a ion be o e mo ing on
o o he s eps. Fi s , alida ions we e ca ied ou ha did no equi e he me amodel,
and la e , i was used in o de o ha e a s ic e es ing. These alida ions a e mainly
ocused on he objec s, which mus belong o alid classes and i s a ibu es a e buil
acco dingly o he me amodel.
2.4 Repo s uc u e
The epo is o med by an ini ial in oduc ion, men ioning he eason his p ojec
was done, i s ad an ages and goals ha a e necessa y o conside i done as well as
he planning o comple e i . The nex chap e ocuses on explaining he necessa y
ideas o ha e a be e unde s anding o he subjec , how i wo ks, and all ools used
in his p ojec , o med by IDEs, lib a ies, and addi ional p ojec s.
A e ha , i is explained how he code wo ks, he s uc u e o each class, he
way o pa se all inpu iles and how all necessa y alida ions a e sol ed.
8
Las ly, a conclusion is w i en in o de o ge a summa y o he whole p ojec
and unde s and i s bene i s. The e is also a sec ion whe e i is explained he u u e wo k
and how i can be imp o ed.
9
3 Concep os p e ios
Pa a explica el p oceso de c eación de es e TFG, p ime o hay que explica los
concep os p e ios necesa ios en los que se basan las líneas de p oduc o.
3.1 MDE
Los modelos son la ep esen ación abs ac a de un p oyec o, el cual se usa
pa a analiza se y en ende el compo amien o de es e. Suelen es a de inidos usando
diag amas de clase o diag amas en idad- elación, pe o exis en o as de iniciones
median e algeb as o g amá icas. Todos los modelos son una ins ancia de un
me amodelo, sin emba go, pa a que es a sea álida, se deben cumpli cie os,
equisi os, como que enga una es uc u a álida y que an o los obje os como las
elaciones del modelo sean ins ancias de clases y asociaciones del me amodelo
espec i amen e, que el modelo cumpla las mismas es icciones de ca dinalidad,
cla es únicas [1].
Las es icciones de los me amodelos son los lími es que se le ma can a los
modelos que p ocedan de dicho me amodelo. Es os lími es pueden se desde lími es
de ca dinalidad pa a espe a los alo es mínimos o máximos de una elación, el uso
de cla es únicas pa a elaciona elemen os en e sí, has a es icciones OCL, las
cuales u ilizan lenguaje na u al pa a limi a los modelos. Es e lenguaje na u al es
pa ecido al que puede se usado en ope aciones lambda, po ejemplo:
A.allIns ances->(a | a.b->size = 0)Es a es icción indica que, pa a odos los elemen os
de A, el a ibu o b debe ene amaño 0 [3]
Pa a la c eación de es os me amodelos y modelos, se u iliza la he amien a
EMF (En i y Modeling F amewo k). Los p oyec os que su gen a pa i de EMF con ienen
a chi os eco e, el cual con iene un obje o ep esen ando el modelo jun o a sus
paque es co espondien es. Es os paque es son los siguien es [1]:
• EClass: Una clase con la capacidad de ene elaciones y a ibu os.
• EA ibu e: Un a ibu o con nomb e y ipo, pe enecien e a una clase
• ERe e ence: Una e e encia en e clases
• EDa aType: El ipo de un a ibu o.
10
3.2 DSL: Domain Speci ic Language
Los lenguajes especí icos de dominio son lenguajes o ien as a aplicaciones o
p oblemas pa icula es, a di e encia de los lenguajes co ien es pa a abo da un
mayo núme o de necesidades. Pueden es a c eadas a pa i de un lenguaje a más
bajo ni el, lo que p o oca un meno iempo de desa ollo una ez c eada la DSL y
acilidad de uso en caso de conoce dicho lenguaje. Sin emba go, exis e la opción
de que sean c eadas desde ce o, cuya en aja se ía una mayo lexibilidad en
cuan o a la sin axis, no depende ían del lenguaje base mencionado, a cambio de
un mayo iempo de c eación de la DSL po la ca encia inicial de compila , pa seado
y de más [4].
Independien emen e de habe es ado c eadas a pa i de o o lenguaje de
más bajo ni el o no, exis en dos ipos de sin axis, las cuales es án elacionadas en e
sí:
• Abs ac a: En ocado en las elaciones y a ibu os, su gen a pa i de un
me amodelo.
• Conc e as: En ocado en la isualización de la sin axis abs ac a,
pudiendo se a a és de ex o o de o ma g á ica
Ilus ación 1 Rep esen ación de la sin axis abs ac a y conc e a a pa i del mismo ejemplo [4]
Pa a es e TFG, se usa la ep esen ación conc e a g á ica a pa i del p oyec o
G aphWalke , el cual es á p incipalmen e o mado po nodos y líneas. Dicha
he amien a es explicada con mayo de enimien o en el capí ulo pos e io
11
3.3 Va iabilidad
La a iabilidad es la capacidad que iene un sis ema pa a maneja dis in os
elemen os y conjun o de p oduc os que, pese a pode ene una es uc u a en
común, es os di ie en en dis in os aspec os. Dichas di e encias epe cu en sob e la
lógica que man iene cada elemen o, po lo que el desa ollo de un p oyec o debe
es a p epa ado pa a man ene y habe pensado p e iamen e en cómo se a ec an
dichas di e encias en e sí. Las líneas de p oduc o se en o iginadas po la
a iabilidad que pueda exis i en un sis ema; su obje i o es minimiza el cos e de
desa ollo y e olución de cada p oduc o que o me pa e del p oyec o [5].
La in o mación de odos los posibles p oduc os se e ep esen ada en los
Fea u e Models a pa i de nodos y elaciones. Su obje i o es gua da las elaciones
de ascendencia y descendencia en e nodos además de las posibles exclusiones y
equisi os que pueda ene cada uno [6].
El p oceso de c ea un p oduc o so wa e especí ico se le econoce como
ejempli ica o ins ancia . Es e p oceso suele ene como pun o de pa ida o a línea
de p oduc o en la que, a pa i de ella, se suele segui dos pasos. El p ime o es la
selección, la cual iene como obje i o deshace se de odas las uncionalidades que
no sean necesa ias pa a la nue a línea de p oduc o, po lo que puede da se el caso
de que se engan que man ene odas. En la segunda pa e se ejecu a el caso
con a io, es deci , se añaden las a ian es que no exis ían p e iamen e y que, po
an o, se án necesa ias de aho a en adelan e. De es e modo, su gen un con lic o a
la ho a de c ea nue as líneas de p oduc o: Es as líneas deben se lo su icien emen e
lexibles como pa a di e si ica odas sus ins ancias, y que, además, cada línea debe
se lo su icien emen e uncional como pa a c ea nue os p oduc os a pa i de ellas
con el es ue zo mínimo. Sin emba go, la c eación de dichas líneas equie e de cie o
es ue zo, po lo que, en caso de gene a demasiadas líneas, puede llega a un pun o
donde sea más sencillo u iliza una de las líneas ya c eadas en ez de segui
di e si icando [5].
12
3.4 Fea u e Models
Los Modelos de ca ac e ís icas (del inglés Fea u e Models, FM) son el conjun o
de ca ac e ís icas de un sis ema so wa e, si en pa a o dena y es uc u a dichas
ca ac e ís icas de o ma que con engan cie a lógica en e ellas. Cada
ca ac e ís ica puede con ene subca ac e ís icas, las cuales es án elacionadas
en e sí median e una lógica pa ecida a la de pue as:
• AND: Todas las subca ac e ís icas deben se elegidas
• OR: Alguna ca ac e ís ica debe se elegida
• ALTERNATIVE (XOR): Sólo una ca ac e ís ica puede se elegida
• OPTIONAL: Se puede elegi esa ca ac e ís ica en conc e o
• MANDATORY: Se iene que elegi esa ca ac e ís ica en conc e o
Ilus ación 2 Figu a sob e los dis in os ipos de elaciones [7]
Una ez seleccionadas odas las elaciones del modelo, exis en dos o mas de
ep esen a lo: Con á bol o g amá ica
Ilus ación 3 FM con es uc u a de á bol y g amá ica [7]
En es e ejemplo, “e” equie e de “ ” y “s”, y a su ez, “ ” equie e de sólo una
en e G, H e I mien as que s equie e de A y C, de mane a opcional B.
El obje i o de los FM es ob ene las elaciones exis en es en e los dis in os
nodos pa a ob ene los equisi os que debe ene cada uno pa a se usado con o me
al me amodelo. [7] [8]
13
Po o o lado, exis en las ó mulas p oposicionales, siendo es as un conjun o de
a iables booleanas y p edicados de lógica p oposicional. Apa e de las
ope aciones es ánda ∧, ∨, ¬, ⇒, and ⇔, ambién exis e choose1(𝑒1.. . 𝑒𝑘) pa a obliga
a elegi a lo sumo una de las exp esiones en e e1 y ek. De o ma más gene al,
𝑐ℎ𝑜𝑜𝑠𝑒𝑁, 𝑀(𝑒1. . . 𝑒𝑘) signi ica que al menos N y como mucho M exp esiones en e 1 y
K se cumplen.
En las ó mulas p oposicionales ambién es posible asigna a iables al nomb e
de un pa ón. Asumamos del ejemplo del á bol an e io , la ama “ ” jun o a las
ca ac e ís icas que pa en de ella, ob eniendo “ : A B”, lo cuál puede se esumido
en la a iable P1. “ : 𝐺 𝐻 𝐼 ∶ : 𝑃1”.
Si que emos u iliza la lógica p oposicional an e io , se dispone de a ias o mas
de hace lo: Supongamos que que emos que de “ ”, sólo una sea cie a:
𝑅 ⇔ 𝑐ℎ𝑜𝑜𝑠𝑒1(𝑃1, . . . , 𝑃𝑛) , siendo P cada una de las ca ac e ís icas que su gen
de " ”, en es e caso G, H e I. Si, po el con a io, que emos que se pueda 1 o más, la
ó mula se á 𝑟 ⇔ (𝑃1 ∨. . .∨ 𝑃𝑛) [7]
3.5 Redes de Pe i
Las edes de Pe i son un modelo o mal que desc ibe es ados y acciones, lo
cual iene ep esen ado a a és de o ma g á ica median e nodos, luga es y
ansiciones. Son econocidos po su simplicidad, gene alidad y localidad de es ados
y acciones. De es a o ma, pueden se de inidas po la upla 𝑃 𝑁 = (𝑃, 𝑇, 𝐴), donde P
y T son conjun os disjun os de luga es y ansiciones, y 𝐴 ⊆ (𝑃 × 𝑇) ∪ (𝑇 × 𝑃) son el
conjun o de a cos que conec an luga es a ansiciones y ice e sa. Los luga es son
los dis in os es ados po los que puede pasa un p oduc o, mien as que las
ansiciones son las acciones que pe mi en cambia de un luga a o o. [9]
Una ez ob enida una ed de Pe i, pa a cada uno de los dis in os p oduc os,
el obje i o es supe pone odas las edes en una, o mando la ed de Pe i 150%. Con
es a ed de Pe i 150%, el FM y un mapeo de cada elemen o con espec o a su
ó mula p oposicional en el FM, se o ma la ed de Pe i o ien ada a líneas de
p oduc o (PNPL).
14
Ilus ación 4 ed de Pe i 150% [9]
En la ilus ación 4 se u ilizan egiones con líneas discon inua pa a asigna la
misma PC a odos los elemen os de la egión. Po ejemplo, Pa A con iene la
ansición genA, al place cn A y a los a cos que se di igen o ienen del place cn A.
Su algún elemen o no pe enece a un PC, asumimos que su PC es e dade o a la
ho a de analiza su lógica.
3.6 PNPL
La PNPL es la unión de la ed de Pe i 150% jun o al FM, la cual es o mada po el
conjun o de odas las edes de Pe i disponibles. Además de ello, odos los elemen os
de dicha ed de Pe i 150% (Place, T ansi ion o A cos) pe enecen a un PC. [8]
Pa a selecciona un p oduc o especí ico de la PNPL, como en el is o en Ilus ación 4,
es necesa io un subconjun o de ca ac e ís icas en su FM. Es a selección es
denominada con igu ación de ca ac e ís icas (del inglés ea u e con igu a ion, FC).
Una FC álida equie e que odas sus subca ac e ís icas cumplen con las es icciones
del FM [8].
Asumamos que, basándonos en el ejemplo an e io , se p e ende ob ene una ed de
Pe i a pa i de una FC, la cual con iene los PC de Pa B y P od1. Pa a la selección
de elemen os, sólo se end án en cuen a los que cumplan con el con enido de la FC;
en es e caso, el esul ado se á el siguien e.
15
Ilus ación 5 De i ación de una ed de Pe i [8]
Se puede obse a cómo los elemen os pack y assmbly no es án incluidos pese a
pe enece al PC P od1, es o se debe a que dichos elemen os equie en an o de
P od1 como de P od2, po lo que nunca se inclui án mien as no se sa is aga la
condición de cada PC.
4 He amien as u ilizadas
Con el in de alida modelos basados en líneas de p oduc o, se ha op ado
po c ea un p oyec o que eciba un me amodelo y odos los modelos que se deseen
alida , eniendo en cuen a que dichos modelos debe án se ins ancias del
me amodelo an e io . Se busca an o pode lee di ec amen e los a chi os o iginales
eco e y xmi, como busca o mas de pa sea los p e iamen e pa a ob ene una
lec u a más cla a; pa a es e segundo caso, se busca án he amien as que acili en
la con e sión de modelo a dis in os o ma os. Una ez comple ada la lec u a y
alidado que los modelos sean co ec os y cumplan las es icciones del
me amodelo, se busca á una o ma de isualiza el modelo con el in de acili a la
ep esen ación g á ica del mismo. Es po ello, que se han u ilizado dis in as lib e ías e
IDEs pa a encon a las mejo es opciones pa a el p oblema en cues ión.
22
Ilus ación 9 Diag ama del p oyec o pa a la alidación de modelos
5.2 Con olle
Una ez ecibidos los a chi os, se llama al con olle , enca gado de inicializa
dichos a chi os de o ma p e ia a la llamada del pa seado . Después, po cada
modelo ecibido, se llama al Tes e pa a que alide odos los equisi os necesa ios
que de ec en po enciales e o es, los cuales se mues an an o po consola como en
el log p e iamen e mencionado.
5.3 Pa se
El pa seo del obje o comple o de cada modelo se compone po odos los
elemen os de la ed de Pe i, el FM o mado po nodos y elaciones, y las PCs. Pa a
eu iliza el código lo máximo posible independien emen e del ipo de a chi o que
se eciba, se ha mo ido oda la lógica de selecciona elemen os, ob ene lis as y de
más a una clase auxilia , de es a o ma, en caso de añadi nue os o ma os en el
u u o, su adición sea mucho más simple y man enible.
El pa seo de cada apa ado pa icula suele segui un mismo p oceso,
gene almen e o mado po el bucle de una lis a con el pa seo indi idual de cada
elemen o jun o a sus a ibu os. En caso necesa io, los a ibu os pueden necesi a
23
algún a amien o adicional pa a su co ec a ob ención, como es el caso del pa seo
de los equisi os y exclusiones de cada nodo; en es e caso, consis e en asegu a se de
que el nomb e de los nodos o mado po a ias palab as no sea enido en cuen a
como dos nodos dis in os.
Pa a el me amodelo, se sigue una es uc u a de pa seo pa ecida, sin
emba go, las p incipales di e encias son el ipo de da os que se ecogen, es deci ,
ob ene odos los ipos de elemen os jun o a qué ipo de a ibu os deben ene , el
p opio o ma o del a chi o, ya que exis e la posibilidad de que las especi icaciones
de los elemen os se puedan encon a epa idas en dis in as zonas del me amodelo.
5.4 U ils
Es la clase que con iene an o posibles mé odos auxilia es, como la que
maneja los obje os del logge y la que in e ac úa con los dis in os ipos de a chi os
que puedan con ene in o mación ace ca de un modelo o me amodelo. De es a
o ma, enemos oda esa lógica con enida en una misma clase, e i ando
epe iciones de código y dando una o ma más sencilla de man ene lo.
5.5 Tes e
Una ez pa seados an o el me amodelo como odos los modelos que se
desean alida , uno po uno, se llaman a la clase Tes e , el cuál de ol e á una lis a
de e o es a a és del mé odo check(). Den o de es e mé odo, se alida án de
o ma indi idual cada apa ado del modelo, es deci , los nodos, ansiciones, places,
a cos y elemen os, aunque pa a es os úl imos sólo se e i ica á que ienen una clase
conc e a asignada. An es de u iliza el me amodelo pa a las alidaciones, se
comp ueba que odas las elaciones que exis en en e cada una de las clases
mencionadas son co ec as, es deci , que no exis en alo es inexis en es en la
en idad e e enciada o sean acíos en caso de no pe mi i se. Es o se aplica pa a
odos los a ibu os en los que se gua de in o mación de o as en idades, como la lis a
de equisi os de los nodos o los PCs.
Con espec o los a cos, además de ealiza las alidaciones p e ias, ambién se
comp ueba los ipos asignados a los a ibu os de o igen y des ino. Dependiendo del
ipo de a co, el o igen puede se Place y el des ino T ansi ion o ice e sa, po lo que
24
se comp oba á que los ipos asignados po el me amodelo se cumplan pa a odos
los a cos del modelo. También se comp ueba que odos los elemen os de la ed de
Pe i engan una clase asignada, en es e caso, Place o T ansi ion, po lo que se
comp oba á que la clase in e na de los elemen os sea uno de los indicados po el
me amodelo. Pa a las elaciones, como se io an e io men e, con ienen un ipo pa a
elaciona un nodo con o o, es os ipos es án decla ados po el me amodelo, po lo
que se comp oba á an o que no sea acío como que exis a en el mismo. Cada e o
encon ado se añadi á a la lis a de e o es, la cual se esc ibi á en el log o se a a á
de dis in a o ma en el u u o.
5.6 Clases de elemen os
A con inuación, se explican las clases que han necesi ado se c eadas pa a o ma
la es uc u a de da os necesa ia de los modelos
5.6.1 PNPL
Es la clase que ecoge odos los da os de cada modelo, el cual se compone
de una lis a de nodos y o a pa a las elaciones pa a o ma el FM, y o as pa a los
a cos, places y PCs pa a la ed de Pe i. Es as lis as cuen an con ge e s, sin emba go,
pa a asigna las, se debe usa la clase in e na PNPLBuilde pa a de ol e el obje o
PNPL después de asigna cada da o de o ma indi idual
5.6.2 Node
Son los ipos pe enecien e a los Fea u e Model. Se ca ac e izan con un
nomb e, dos condicionales pa a de e mina si son abs ac os u obliga o ios, y po dos
lis as de nodos adicionales, siendo la p ime a sob e los nodos necesa ios pa a que el
ac ual pueda se usado mien as que la segunda de e mina los nodos con los que
impide coexis i .
5.6.3 Rela ion
Es la clase que elaciona los nodos de la clase an e io . Tienen un alo pa a
gua da el ipo de lógica p edica i a, el nomb e del nodo an eceso y una lis a de
nodos a los que se di ige, la cual puede es a acía.
25
5.6.4 Place
Es uno de los posibles ipos de elemen os que pueden pe enece a la ed de
Pe i. Puede pe enece a un P esence Condi ion y es a elacionado a o os ipos de
elemen os de la ed a pa i de una a iedad de a cos.
5.6.5 T ansi ion
Es el o o ipo de elemen os pe enecien es a la ed de Pe i. Tiene una
uncionalidad pa ecida al elemen o an e io ya que ambién pueden pe enece a
un P esence Condi ion y es án elacionados con o os elemen os.
5.6.6 A c
Son el ipo de obje o que elaciona odos los elemen os de la ed de Pe i en e
sí. Los dos ipos disponibles son A cTP y A cPT, eniendo el p ime o como o igen una
ansición, un Place como des ino y el caso con a io en el segundo ipo. Pese a solo
usa se es os dos ipos en el me amodelo, el código pe mi e la adap ación a
po enciales nue os a cos en caso de se necesa io en el u u o. La clase con iene el
nomb e del a co, el ipo an e io men e mencionado, el posible P esence Condi ion
al que es á inculado, el elemen o de o igen, el cuál debe se del ipo
co espondien e al me amodelo, y el des ino.
5.6.7 Viewe
Es la capa de isualización del p oyec o, donde se de e mina el es ilo que an
a ene los componen es del g a o a la ez que la inse ción de los da os jun o a sus
asociaciones en es os. Pa a los es ilos, G aphS eam [11] u iliza un sis ema pa ecido a
los css, solo que implemen ado median e una única a iable s ing, sin emba go, es
es a la que debe simula el o ma o del a chi o css. Dicha a iable se puede asigna
an o pa a el g ado en e o, pa a únicamen e sus nodos o enlaces, o incluso pa a
unos elemen os especí icos, siguiendo el sis ema de clases en los a chi os HTML.
26
Ilus ación 10 Visualización de la ed de Pe i una ez alidada
El g a o de la ilus ación supe io mues a un modelo pos e io a su alidación.
Los nodos isibles son el conjun o de sus places y ansiciones, las cuáles o man su
ed de Pe i. Es os elemen os es án unidos median e los mismos a cos pe enecien es
al modelo, siguiendo su mismo ipo y el o igen y des ino que les co esponde. Sin
emba go, en caso de que un modelo no haya pasado la alidación co ec amen e,
es e g a o no se c ea á, sino que se gua da án odos los e o es en el log de la
aplicación, indicando odos los e o es de o ma o denada.
27
6 Conclusiones y T abajo a u u o
Debido a la impo ancia de las alidaciones de un p oyec o pa a pode
asegu a una mayo calidad y es abilidad, se ha op ado po abaja en el es eo de
modelos, o ien ado a líneas de p oduc o.
Dichas líneas de p oduc o pueden gene a una g an can idad de a iables,
di icul ando su alidación en caso de op a po un es eo manual, además, se iene
como obje i o el es eo del p opio modelo pa a pode de ec a en una ase
emp ana del desa ollo cualquie p oblema de aíz que pueda habe su gido en el
diseño, e i ando así po enciales g andes cos es de iempo en caso de encon a
e o es elacionados con el modelo en ases a anzadas del desa ollo.
Una ez hayan inalizado odas las alidaciones de cada modelo que haya
sido deseado es ea , se mos a á una en ana con una ep esen ación median e
g a os de odos los elemen os pe enecien es a la ed de Pe i p opo cionada.
En cuan o a la ans o mación de modelos a dis in os o ma os, se op ó inalmen e
po Acceleo [12]. Es e pe mi e la ob ención de la g an mayo ía de da os disponibles,
sin emba go, no es posible ob ene o os como la clase de los elemen os que no
pe enezcan a uno dis in o de Place, T ansi ion y A c, po lo que de o ma ideal se
usa á el modelo sin ninguna ans o mación p e ia.
El p oceso de alidación ambién ha sido exi oso; se comp ueba que no haya
inconsis encias en e los da os y se asegu e co ec o diseño del modelo. Es o acili a
las p ime as ases del desa ollo ya que asegu a que la base en la que se pa e es la
adecuada.
Po úl imo, pese a habe a iado la he amien a a u iliza pa a la isualización, se
acabó encon ando una mucho más accesible y con un mayo núme o de
posibilidades a la ho a de mos a los da os [11]. Es o pe mi i á una mayo luidez a la
ho a de c ea nue as ca ac e ís icas al p oyec o.
Po o o lado, es e p oyec o iene el po encial de ae más uncionalidades que,
debido. Ac ualmen e, exis e la posibilidad de in oduci a chi os de i ados de XML
28
an o pa a me amodelo como modelo, con la adición del ipo JSON pa a modelos;
po ello, una posible adición se ía la implemen ación de las lec u as de a chi os JSON
pa a me amodelos. Además, como ya exis e una in e az g á ica pa a la mues a de
los esul ados, se pod ía c ea una in e az comple a an o pa a la selección de
a chi os y e i a pasa los po pa áme o, una isualización es uc u ada de los e o es
y la inco po ación de la g á ica ya c eada con lo p e iamen e mencionado.
29
7 Conclusions and Fu u e Wo k
Due o he impo ance o es ing o assu e a be e quali y and s abili y in he
p ojec , he aim has been placed on model es ing, mo e speci ically in p oduc lines.
These p oduc lines can gene a e a la ge amoun o a iables, making i s
alida ion ha de in case a manual es ing me hod is chose, besides, he goal o
es ing models ins ead o he implemen a ion is o de ec any oo p oblem ha was
gene a ed in he design in an ea lie s age o de elopmen , a oiding his way a
bigge ime cos in case he e a e p oblems ela ed o he mode; he longe i akes
o ix i , he mo e complex he p ojec will be and hus he ha de i will be o ix i .
Once all desi ed models a e es ed, a ame wi h a g aph ep esen a ion o
each one o hem will be shown. This g aph con ains all elemen s ha belong o he
Pe i ne , dis inguishing each ype and sec ion h ough colou s.
Po úl imo, pese a habe a iado la he amien a a u iliza en es e sen ido, se acabó
encon ando una mucho más accesible y con un mayo núme o de posibilidades a
la ho a de mos a los da os [11]. Es o pe mi i á una mayo luidez a la ho a de c ea
nue as ca ac e ís icas al p oyec o.
When i comes o he model ans o ma ion in o di e en o ma s, he chosen ool was
Acceleo [12]. This ool allows us o ob ain mos o he desi ed da a, ne e heless, i is
no possible o ob ain some o hem, such us he class o elemen s which don’ belong
o Place, T ansi ion and A c; his means ha i is p e e able o es he model wi hou
any p e ious con e sion.
The alida ion p ocess was also success ul; i is es ed ha no inconsis encies a e ound
in he da a as well as making su e ha he e is a co ec model design. This makes he
ini ial de elopmen phase easie o wo k wi h as we can con iden ly ha i s basis is
co ec .
Finally, despi e changing he isual ools used, he chosen one is mo e accessible and
wi h a bigge numbe o possibili ies o show all he da a [11]. This will allow o a be e
wo king low in case he e a e new ea u es ela ed o he GUI.
30
On he o he hand, he p ojec has he po en ial o b ing new ea u es ha ,
due o hem su ging du ing he de elopmen o he p ojec , hey we en’ possible o
implemen on ime. Righ now, he e is he possibili y o use xml iles o bo h he
me amodel and model, wi h he op ion o he model o be inpu as a JSON ile as
well; ha is why, a possible addi ion could be he implemen a ion o JSON iles eading
o he me amodel. Besides, since he e is al eady an exis ing UI o show he model
esul s, he nex s ep could be o in oduce one wi h mo e ea u es, such gi ing he
op ion o upload hose iles h ough i ins ead o jus as a pa ame e , and a mo e
s uc u ed display o all e o s de ec ed du ing he analysis.
31
8 Re e encias
[1]
E. G. E. G. Juan de La a, Me a-modelling, Mad id.
[2]
A. S i as a a , S. Bha dwaj y S. , «2017 In e na ional Con e ence on Compu ing,
Communica ion and Au oma ion (ICCCA),» de SCRUM model o agile me hodology, pp. 864-
869.
[3]
M. Rich e s y M. Gogolla, «Valida ing UML Models and OCL Cons ain s,» p. 13, 2000.
[4]
E. G. E. G. Juan de La a, Domain-Speci ic Languages (DSLs), Mad id.
[5]
J. B. M. S. Jilles an Gu p, «On he No ion o Va iabili y in So wa e P oduc Lines,» Depa men
o Ma hema ics and Compu ing Science. Uni e si y o G oningen,, PO Box 800, 9700 AV The
Ne he lands, 2001.
[6]
P. C. Clemen s y P. Bachmann, «Va iabili y in So wa e,» Ca negie Mellon. So wa e Enginee ing
Ins i u e, Pi sbu gh, PA, 2005.
[7]
D. Ba o y, «Fea u e Models, G amma s, and P oposi ional Fo mulas,» de So wa e P oduc Line
Con e ence 2005, Aus in, Texas 78712, 2005.
[8]
E. Gómez Ma ínez, J. de La a y E. Gue a, «Ex ensible S uc u al Analysis o Pe i,» Sp inge
Be lin Heidelbe g, Mad id, 2021.
[9]
E. Gómez Ma ínez, E. Gue a, J. de La a y A. Ga mendia, «Li ed s uc u al in a ian analysis o
Pe i ne p oduc lines,» Else ie , p. 21, 2022.
[10]
K. Ka l, «G aphWalke ,» [En línea]. A ailable: h ps://g aphwalke .gi hub.io/.
[11]
S. Bale , A. Du o , Y. Pigné y G. Sa in, «G aphS eam,» [En línea]. A ailable:
h ps://g aphs eam-p ojec .o g/.
[12]
«Acceleo,» 2022. [En línea]. A ailable:
h ps://p ojec s.eclipse.o g/p ojec s/modeling.m2 .acceleo.
[13]
«In ellij,» [En línea]. A ailable: h ps://www.je b ains.com/es-es/idea/.
[14]
«Visual S udio Code,» [En línea]. A ailable: h ps://code. isuals udio.com/.
[15]
M. Fowle , Domain-Speci ic Languages, Pea son Educa ion, 2010.
[16]
B. R. Hans G önnige , «Modeling Language Va iabili y,» de Founda ions o Compu e So wa e.
Modeling, De elopmen , and Ve i ica ion o Adap i e Sys ems, Redmond, WA, 2010.
[17]
Apache, «log4j,» [En línea]. A ailable: h ps://m n eposi o y.com/a i ac /log4j/log4j.