You are on page 1of 156

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/221595380

Desarrollo de Software Dirigido por Modelos (DSDM, 7ª ed.).

Conference Paper · January 2010


Source: DBLP

CITATIONS READS

2 601

5 authors, including:

Orlando Avila-García Jordi Cabot


Atos Spain, S.A. Catalan Institution for Research and Advanced Studies
25 PUBLICATIONS   198 CITATIONS    277 PUBLICATIONS   3,342 CITATIONS   

SEE PROFILE SEE PROFILE

Javier Muñoz José Raúl Romero


Hospital General Universitario Gregorio Marañón University of Cordoba (Spain)
32 PUBLICATIONS   447 CITATIONS    77 PUBLICATIONS   975 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Data Mining with More Flexible Representations View project

ODA: Open Data for All via the exploitation of Open APIs View project

All content following this page was uploaded by Antonio Vallecillo on 02 June 2014.

The user has requested enhancement of the downloaded file.


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Adaptation of transformations to metamodel changes


Jokin Garcia , Oscar Díaz

Universidad del País Vasco


San Sebastián
{jokin.garcia, oscar.diaz}@ehu.es

Abstract but also model transformations can be badly


aected. Compared to metamodel instances,
MDE is becoming mainstream. This implies transformations are not so numerous but tend
facing scalability and complexity problems: to be much more complex. This vindicates
larger meta-models and more intricate trans- the need for some automatic assistance that
formations. Additionally, metamodel evolu- guides the designer in co-evolving the aected
tion introduces even more stringent demands. transformations. This paper introduces
Model transformation needs then to face an some preliminary ideas about the automatic
increase in both complexity and evolvabil- generation of transformation rules as aected
ity. Specically, assistance is required to by changes in the metamodel. A set of rule
guide how metamodel changes impact associ- skeletons is generated where annotations are
ated transformations. This paper focuses on used to indicate which and how transforma-
changes in the source metamodel, and the im- tion rules are impacted. Hence, these rule
pact on the associated transformations. Auto- skeletons are reckoned to help the designer
matic propagations from metamodel changes to percolate the metamodel changes down
to their transformation counterparts are sel- to the corresponding transformation rules.
dom possible. However, some annotations Implementation wise, and along the lines of
can be added to provide a rst assistance to the approach presented in [3], higher-order
the designer. An annotated transformation model transformations are used.
is a transformation that includes suggestions
about how changes have impacted the rule. In Section 2 some background on model
The annotations are provided just as a guid- transformations is introduced, based on works
ance, leaving to the designer the nal accep- which have categorized transformations from
tance. The annotator is realized as a set of dierent point of views. Then, in Section 3,
HOT transformations: the input is a dierence we realize that the recursive use of transfor-
model recording the metamodel evolution and mations can be benecial for some quality
the transformation while the output is a co- criteria, as adaptability or reusability. In Sec-
evolved model transformation. The approach tion 4 we explain a semiautomatic approach
is illustrated with a sample problem. to adapt transformations to metamodel
changes as a way to minimize metamodel
coupling in transformations and an example
1 Introduction transformation that is used later in Section 5
to illustrate some scenarios.
Metamodels stay at the very heart of model-
driven engineering (MDE). This key role
makes MDE processes be specially sensitive
to metamodel evolution. Metamodel changes
impact not only on its compliant models

ISSN 1988–3455 SISTEDES 2010 1


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

2 Background tion language. It is a hybrid approach lan-


guage, with both declarative and imperative
2.1 Metamodel evolution constructs. On the other hand, the example is

There is literature about metamodel evolu-


a structure transformation (or Model to Model
-M2M- transformation in MDA terms), which
tion and how does it aect to other artifacts,
maps an abstract syntax graph into another
mostly models. In [11], Wachsmuth exposes
abstract syntax graph.
reasons of metamodel evolution: During de-
sign, alternative metamodel versions are devel-
oped and well-known solutions are customised 2.3 Role of Higher Order Transformations
in quality improvement
for new applications. During implementation,
metamodels are adapted to a concrete meta- Higher Order Transformations ( HOT ) are a
model formalism supported by a tool. Dur- kind of transformations that have another
ing maintenance, errors in a metamodel are transformation model as input and/or output.
corrected. Furthermore, parts of the meta- In the classication made by Tisi et. al. [10]
model are redesigned due to a better under- they describe as Transformation modication
standing or to facilitate reuse. Depending on the pattern for HOTs that takes a transfor-
the change type, the eect on other artifacts mation as input and generate a modied ver-
will be dierent. Changes in a metamodel can sion of the same transformation. This is in-
be [10]: generalize metaproperty (its multiplic- teresting as reusability technique if a similar
ity or type are relaxed), extract superclass (a transformation is needed: if a transformation
superclass is extracted and a set of properties wants to be developed but starting from an-
is pulled on), pull metaproperty (a metaprop- other one because it is similar and we do not
erty is pulled in a superclass and the old one want to start from scratch, it can be modied
is removed from a subclass), push metaprop- with a transformation to adapt it. Moreover,
erty (it is deleted from a superclass and cloned it is generic because it is applicable to every
in all the subclasses), atten hierarchy (elimi- transformation. To achieve this manipulation,
nate a superclass and introduce all its proper- the input or output transformation in a HOT
ties into the subclasses), restrict metaproperty must have been done in a transformation lan-
(its multiplicity or type are enforced), rename guage which has a metamodel, and the HOT
metaelement, eliminate metaclass, eliminate itself can be done with any transformation lan-
metaproperty, add metaclass, add metaprop- guage. In ATL the transformations are repre-
erty, move metaproperty, extract metaclass sented by a transformation model conforming
(create a new class and move the elds from the transformation metamodel. This is proba-
the old class into the new one) and inline meta- bly the reason why most of the developers use
class (move all its features into another class ATL for HOTs. Bezivin et. al. in [2] highlight
and delete the former). the importance of a descriptive point of view of
transformation models, as well as the current
2.2 Transformations executable descriptions. We have considered
HOTs to improve adaptability in transforma-
We understand model transformation as a pro-
tions, but there are many other applications
gram that takes an input model and produces
concerning quality, such as refactoring or op-
an output model, both models conforming to
timization.
a metamodel. Some categorizations can be
To understand how a HOT works, we must
done depending on the relation between source
be familiarized with the metamodels of the in-
and target metamodels [9], the linguistic per-
put transformations. ATL metamodel´s most
spective [6] or the approach used to specify
important structures are shown in Figure 1
the transformation [5]. In the example shown
1 (taken from [10]), dispensing with OCL ele-
here we use ATL as a model transforma-
ments (ATL is heavily based on OCL). Unit
1 http://www.eclipse.org/m2m/atl/ is the root element, which can be a Module,

ISSN 1988–3455 SISTEDES 2010 2


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

a Library or a Query. A Module is composed of changes on transformations, as shown


of ModuleElements, which are either Helpers in the table. Non-breaking changes means
(helpers are modules similar to Java methods, that transformations are not aected by
that make it possible to dene factorized ATL those metamodel changes, breaking and
code that can be called from dierent points resolvable changes means that transfor-
of a transformation) or Rules. Rules are ab- mations can be automatically adapted to
stract entities which concrete classes can be metamodel changes and breaking and un-
MatchedRules or CalledRules. A Rule is com- resolvable changes means that human in-
posed of InPattern and OutPattern, which are tervention is required to adapt the trans-
the left and the right part of the rule respec- formation. There are simple and com-
tively. OutPattern is composed of OutPatter- plex changes: the later are composed by
nElements, one for each target class the source several simple changes. We have imple-
metamodel is mapped to. And OutPatter- mented a semi-automatic adaptation of
nElement contains Bindings, which associate transformations using a di-approach : we
3
a value with a model element property. This can use EMF Compare or similar tools
value is encoded by an OCL expression. to retrieve the dierences between old
and new versions of the metamodels and
a HOT to adapt the transformation to
3 Transformation co-evolution
the changes. As it can be seen in Fig-

3.1 Co-evolution process ure 2, there can be changes in the source


or target metamodel. We consider that
According to ISO [1], Adaptability character- changes in the source and in the target
izes the ability of the system to change to are not done simultaneously, because race
new specications or operating environments. conditions can happen in the adaptation.
Transformations can be aected by multiple For instance, if we do a mapping to a
type of changes: metaclass or metaproperty of the target
metamodel that will be later removed.
ˆ a change in the transformation logic:
Due to space restrictions, only changes
changes in the requirements (functional
in the source metamodel will be consid-
or not functional) can introduce or change
ered. EMF Compare is used to retrieve
some logic independent of the metamod-
the dierences in a .emfdi le, which is a
els:
model conforming Di.ecore metamodel

 Changes in the code: For instance,


for dierences. This is one input of the
HOT, and the other input is the initial
to improve the code we would like to
transformation injected as a model (using
introduce trace information [8].
AM3's injector to translate textual repre-
 Conditions in the mappings: Some sentation of the transformation to model
lters can be added, removed or representation). Then, we have to use a
changed to apply a mapping under HOT that adapts the transformation to
2
new conditions. the changes, and after that, the adapted

 Changes in the mapping logic: model is extracted to a .atl le (using

domain-specic mapping decisions. AM3's extractor to serialize the transfor-


mation model into a textual transforma-
ˆ a change in the metamodels ( metamodel tion). This co-evolution process must be
evolution ). Cicchetti et. al. [3] did a clas- seen only as a help for the transforma-
sication of metamodel changes to study tion designer, as there are intrinsic limi-
semi-automatic co-evolution of models. tations in transformation adaptations, as
We use the same idea to study the impact it is a domain-specic task. Due to these

2 http://gts.inf.um.es/trac/age/wiki/ISEvolutionHOT 3 http://www.eclipse.org/modeling/emft

ISSN 1988–3455 SISTEDES 2010 3


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Change type Classication Change Adaptation actions

Non-breaking Additive Generalize None


changes metaproperty
Additive Extract None
superclass
Additive Pull None
metaproperty
Subtractive Push None
metaproperty
Subtractive Flatten None
hierarchy
Breaking and Subtractive Restrict Source MM: None. Target MM: A new rule could
resolvable metaproperty be necessary.
changes
Updative Rename Synchronize with the new value.
metaelement
Subtractive Eliminate Source MM: delete rules whose source is the
metaclass deleted class, delete source conditions which contain
data from the deleted class and delete target
bindings which contain data from the deleted class.
Target MM:delete outPatternElements whose
target is the deleted class and delete target bindings
which contain data from the deleted class.
Subtractive Eliminate Source MM: delete source conditions which contain
metaproperty data from the deleted property and delete target
bindings which contain data from the deleted
property. Target MM: delete target bindings which
contain data from the deleted property.
Breaking and Additive Add metaclass Source MM: One or more new rules, new condition
unresolvable in the source, new binding in the target and/or new
changes binding fragment (it is code added to an existing
binding and it is explained in [7]). Target MM:
new outPatternElement, new bindings and/or new
binding fragments.
Additive Add New condition in the source, new binding in the
metaproperty target and/or new binding fragment.
Updative Move Eliminate metaproperty + add metaproperty cases
metaproperty
Updative Extract Add metaclass + Move metaproperty cases
metaclass
Updative Inline Move metaproperty + eliminate metaclass cases
metaclass

Table 1: Metamodel changes classication

ISSN 1988–3455 SISTEDES 2010 4


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 1: Simplied ATL metamodel

limitations, in the addition cases only a controller respectively. The following is the
skeleton can be generated in most cases, transformation between the metamodels we
leaving the implementation logic to the take as a base.
developer. And in the case of removal, we
can synchronize automatically the trans- module exam2mvc;
formation but not guarantee its seman- create OUT : AssistantMVC from IN :
tic correction. On the other hand, in the ExamXML;
case of update, where the changes are only rule Exams {
in the nomenclature and are not struc- from vExam : ExamXML!Exam
tural, it is automatic. Possible impacts to mvc : AssistantMVC!Exam (
on transformations caused by a change in examItems <- vExam.elements ) }
the requirements are shown in the table.

rule OpenQuestion {
3.2 Example from vExam : ExamXML!OpenElement
In this Section we present a source metamodel
to vOpenController :
called Exam and a target metamodel called
AssistantMVC!OpenController(),
MVC (in Figure 3), based on [4]. vOpenView :
The Exam metamodel describes exams AssistantMVC!OpenView(
and exam questions. An exam ( Exam ) is controller <- vOpenController,
composed of one or more exam questions: fontName <- 'Times',
open (OpenElement ) and multiple choice fontColor <- 'Red' ),
( MultipleChoiceElement ). On the other vOpen : AssistantMVC!Open (
hand, MVC metamodel represents a Model- question <- vExam.question,
View-Controller architecture where three observers <- vOpenView ) }
abstract metaclasses: ExamItem, View and
Controller correspond to model, view and rule MultipleChoice {

ISSN 1988–3455 SISTEDES 2010 5


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 2: Transformation co-evolution process

Figure 3: Exam and MVC metamodels

ISSN 1988–3455 SISTEDES 2010 6


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

from vMCE : vExerciseView :


ExamXML!MultipleChoiceElement AssistantMVC!ExerciseView (
to vMCC : AssistantMVC! controller <-
MultipleChoiceController(), vExerciseController,
vMCView :
fontName <-
AssistantMVC!MultipleChoiceView(
'toBeDefinedFontName',
controller <- vMCC,
fontName <- 'Times', fontColor <-
fontColor <- 'Red' ), 'toBeDefinedFontColor' ),
vMC : AssistantMVC!MultipleChoice vExercise :
( AssistantMVC!Exercise (
question <- vMCE.question, question <-
observers <- vMCView ) } vExerciseElement.question,
observers <- vExerciseView) }
3.3 Adaptation scenarios

Based on the table, some examples of ad-


ditive, updative and subtractive transforma- When adding a new metaclass, a rule can be
tion adaptations are described for changes partially generated: the left part of the rule is
produced in the source metamodel. It must generated, leaving the implementation of the
be commented that when we talk about right part to the designer. If the added meta-
metaproperties, both references and attributes class is a subclass, we can use as an heuristic
are considered, as they are treated in the same the pattern in the mapping of sibling elements
way in transformations (EMFCompare does to help generating the right part of the rule
not tell the dierence between them either). . In this case, as the new subclass have sib-
lings ( OpenElement and MultipleChoiceEle-
ˆ In the cases where we move metaproper-
ment ) which rules are dened we could use
ties from/to super/subclasses, no actions
the same pattern, as can be seen in the code
are needed because when we refer to a
above. When a constant is assigned, the HOT
metaproperty in a rule, the transforma-
Assistant creates a constant by concatenating
tion engine takes care about reaching it
'toBeDened' + 'nameOfTheReceptionProp-
in the class or superclasses. This are the
erty'. In this case, new elements in the tar-
cases of the table: generalize metaprop-
get are needed, so the designer should decide
erty, extract superclass, pull metaprop-
whether to modify or not the target meta-
erty, push metaproperty and atten hi-
model. Sometimes the rule will not be neces-
erarchy.
sary, since the target does not need that infor-
mation, it is retrieved with a helper for another
ˆ Add metaclass. We will show the specic
rule or that information is scattered through
case where the metaclass is a subclass:
many bindings as in [7]. It will always be the
If we add a subclass ExerciseElement to
decision of the designer to keep the generated
ExamElement the output will be:
rule or not.

--NEW RULE ˆ Add metaproperty: If we add mark


metaproperty to the ExamElement meta-
rule ExerciseElement { class, the output will be:

from vExerciseElement :
ExamXML!ExerciseElement rule OpenQuestion {
to vExerciseController : from vOpenElement :
AssistantMVC!ExerciseController(), ExamXML!OpenElement

ISSN 1988–3455 SISTEDES 2010 7


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

to vOpenController : ˆ Update metaclass/metaproperty: If the


AssistantMVC!OpenController, name of MultipleChoiceElement class is
vOpenView : changed to MCElement the output will

AssistantMVC!OpenView ( be:

controller <- rule MultipleChoice {


vOpenController, from vMCElement :
fontName <- 'Times', ExamXML!MCElement
fontColor <- 'Red' ), ...
vOpen : AssistantMVC!Open ( This is a straightforward case since more
question <- information is not needed. Update
vOpenElement.question, metaproperty case is analogous.

observers <- vOpenView,


ˆ Eliminate metaclass: If OpenElement is
toBeDecidedMarkTarget <- mark deleted from the source, the rule Open-
) } Question will be deleted and a comment
will be shown:
rule MultipleChoice {
-- Deleted OpenQuestion rule
from vMCE :
We must be careful with deletion, because
ExamXML!MultipleChoiceElement
the deletion of the rule does not guar-
to vMCC : antee correction, as the metaclass in the
AssistantMVC!MultipleChoiceController, target metamodel which was mapped to
vMCView : the deleted source metaclass continues ex-
AssistantMVC!MultipleChoiceView isting. Instances of it will not be gener-
( ated, so in the hypothetical case (does not

controller <- vMCC, happen in this example) it has a relation


with cardinality bigger than 0 and there
fontName <- 'Times',
is not another rule generating elements of
fontColor <- 'Red' ), its type, the model will not be valid (g-
vMC : AssistantMVC!MultipleChoice ure 4). To avoid this situation a message
( will advise the designer to modify the tar-
get metamodel or the transformation:
question <- vMCE.question,
observers <- vMCView, -- Target model can be invalid as
elements of type C are not
toBeDecidedMarkTarget <- mark
) } -- generated.
When adding a new metaproperty, we
do not know the target metaclass and
metaproperty it has to be mapped to.
As an heuristic to complete our lack of
information, we should check if there is
another metaproperty in the metaclass
we have added our metaproperty to, and
use the same metaclass it is mapped to.
However, as we do not know the tar-
get metaproperty, the HOT Assistant will
write 'toBeDecided' + 'MetapropertyTar-
get'. Figure 4: Delete metaclass

ISSN 1988–3455 SISTEDES 2010 8


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

4 Conclusions and future work proaches. IBM Syst. J., 45(3):621645,


2006.
The presented semi-automatic approach helps
the transformation designer to adapt the [6] Anneke Kleppe. Mcc: A model trans-

transformation to metamodel changes propos- formation environment. In ECMDA-FA,


ing him an annotated transformation. This pages 173187. Model Driven Architec-

proposed transformation can have dierent ture - Foundations and Applications, Sec-

degrees of automation, depending on the ond European Conference, ECMDA-FA

intrinsic diculty of the changes and the 2006, Bilbao, Spain, July 10-13, 2006,

semantic gap´s size between metamodels. As Proceedings, 2006.

future work, the aim would be to rene the


[7] I. Kurtev. Adaptability of model transfor-
annotated transformation using heuristics
mations, chapter 5. PhD thesis, Univer-
to reach the higher level of automation.
sity of Twente, Enschede, May 2005.

Acknowledgments We would like to [8] Ivan Kurtev, Klaas van den Berg, and
thank Maider Azanza and the reviewers for Frédéric Jouault. Rule-based modulariza-
their help and comments. This work has been tion in model transformation languages
partially supported by a Basque Government illustrated with atl. Sci. Comput. Pro-
grant. gram., 68(3):138154, 2007.
[9] Tom Mens and Pieter Van Gorp. A tax-
References
onomy of model transformation. Electr.
[1] Iso 9126: http://www.sqa.net/iso9126.html.
Notes Theor. Comput. Sci., 152:125142,
2006.
[2] Jean Bézivin, Fabian Büttner, Martin
[10] Massimo Tisi, Frédéric Jouault, Piero
Gogolla, Frédéric Jouault, Ivan Kurtev,
Fraternali, Stefano Ceri, and Jean
and Arne Lindow. Model transforma-
tions? transformation models! In MoD-
Bézivin. On the use of higher-order model

ELS, pages 440453. Model Driven Engi- transformations. In ECMDA-FA, pages


1833. Model Driven Architecture - Foun-
neering Languages and Systems, 9th In-
dations and Applications, 5th European
ternational Conference, MoDELS 2006,
Conference, ECMDA-FA 2009, Enschede,
Genova, Italy, October 1-6, 2006, Pro-
The Netherlands, June 23-26, 2009. Pro-
ceedings, 2006.
ceedings, 2009.
[3] Antonio Cicchetti, Davide Di Ruscio,
[11] Guido Wachsmuth. Metamodel adapta-
Romina Eramo, and Alfonso Pierantonio.
tion and model co-adaptation. In Erik
Automating co-evolution in model-driven
engineering. In EDOC, pages 222231.
Ernst, Proceedings of the 21st
editor,

12th International IEEE Enterprise Dis-


European Conference on Object-Oriented
tributed Object Computing Conference,
Programming (ECOOP'07), volume 4609
of Lecture Notes in Computer Science,
ECOC 2008, 15-19 September 2008, Mu-
pages 600624. Springer-Verlag, July
nich, Germany, 2008.
2007.
[4] Jesús Sánchez Cuadrado and Jesús Gar-
cía Molina. Modularization of model
transformations through a phasing mech-
anism. Software and System Modeling,
8(3):325345, 2009.

[5] K. Czarnecki and S. Helsen. Feature-


based survey of model transformation ap-

ISSN 1988–3455 SISTEDES 2010 9


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Automatización de la Selección de Transformaciones


Alternativas Basada en Atributos de Calidad

Javier Gonzalez-Huerta Emilio Insfran Silvia Abrahão


Grupo de Investigación ISSI Grupo de Investigación ISSI Grupo de Investigación ISSI
Depto. de Sistemas Informáticos y Depto. de Sistemas Informáticos y Depto. de Sistemas Informáticos y
Computación. Computación. Computación.
Universidad Politécnica de Valencia Universidad Politécnica de Valencia Universidad Politécnica de Valencia
46022 Valencia. 46022 Valencia. 46022 Valencia.
jagonzalez@dsic.upv.es einsfran@dsic.upv.es sabrahao@dsic.upv.es

Resumen en el proceso de desarrollo de software y de la


calidad del código generado a partir de los
Las transformaciones de modelos son una pieza modelos [16]. Una de las ideas clave en el DSDM
clave en el Desarrollo de Software Dirigido por es transformar modelos con un alto nivel de
Modelos. Una transformación de modelos es el abstracción en modelos más concretos que serán
proceso por el cual un modelo puede convertirse finalmente transformados en el código final. Por
en otro modelo del mismo sistema, usando un tanto, la calidad de los modelos involucrados en el
lenguaje para describir dicha transformación. proceso de desarrollo pasa a ser un factor decisivo
Dado un modelo origen se pueden obtener uno o para obtener software de calidad.
varios modelos destino atendiendo a las Una transformación es el proceso por el cual
transformaciones alternativas seleccionadas. Las un modelo puede convertirse en otro modelo del
transformaciones alternativas aparecen cuando mismo sistema, usando un lenguaje para describir
una entidad del modelo origen puede ser dicha transformación [10]. En un proceso de
transformado en más de una entidad distinta en el transformación de modelos, un modelo origen
modelo destino. Estos modelos, aun siendo puede ser transformado en uno o varios modelos
similares en cuanto a la realidad que representan, destino, que aun siendo similares en cuanto a la
pueden ser muy diferentes con respecto a sus realidad que representan, pueden ser muy
atributos de calidad. En este artículo se define diferentes con respecto a sus atributos de calidad.
cómo introducir atributos de calidad en los Para poder producir artefactos software con unos
procesos de transformación con el fin de dirigir la determinados atributos de calidad, es necesaria la
selección de transformaciones alternativas. identificación de transformaciones alternativas y
Finalmente se muestra una estrategia de el análisis de cómo la aplicación de esas
automatización para transformar diagramas de transformaciones afecta a la calidad de los
secuencia de un modelo de requerimientos en artefactos obtenidos [9]. A pesar de que en la
diagramas de clase UML. propia definición de MDA [10], OMG sugiere que
se podrán utilizar una amplia gama de requisitos
de calidad de servicio para dirigir
Palabras clave: Transformación de modelos, transformaciones, no se encuentran
Desarrollo de Software Dirigido por Modelos. aproximaciones que introduzcan, de manera
genérica y efectiva, los requisitos de calidad como
factor de decisión a la hora de seleccionar entre
1 Introducción transformaciones alternativas.
En un trabajo previo se mostró una
En los últimos años el Desarrollo de Software arquitectura genérica para dar soporte a las
Dirigido por Modelos (DSDM) [15] ha ganado transformaciones de modelos dirigidas por
gran aceptación como una aproximación para el atributos de calidad [6], presentando un conjunto
desarrollo de sistemas en el que los modelos pasan de artefactos para representar la información
a ser artefactos de primer orden. El uso de adicional necesaria (un modelo de calidad y un
modelos eleva el nivel de abstracción, modelo de transformaciones) y se definía un
posibilitando un incremento de la productividad proceso para dar soporte a estas transformaciones.

ISSN 1988–3455 SISTEDES 2010 10


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

En este trabajo, haciendo uso de dicha transformaciones de modelos de arquitecturas


arquitectura, definimos un esquema para, software, basándose en criterios de calidad. La
partiendo de una transformación de modelos aproximación considera únicamente las
existente, automatizar la selección de transformaciones horizontales [13]
transformaciones alternativas en base a los (transformaciones PIM a PIM) que son aquellas
atributos de calidad que ha de tener el modelo que se ejecutan al mismo nivel de abstracción. Si
destino. aparecen múltiples alternativas, el arquitecto
La organización de este trabajo es la siguiente: determina qué arquitectura es la mejor solución
la sección 2 describe los trabajos relacionados. La teniendo en cuenta la información recogida en una
sección 3 presenta una aproximación para la base de datos denominada StyleBase. Esta base de
automatización de la selección de datos contiene un conjunto de patrones de diseño
transformaciones alternativas. La sección 4 y estilos arquitectónicos. Para cada patrón se
presenta una implementación del esquema de almacenan los atributos que maximiza. Los
automatización propuesto a un dominio concreto. autores definen su propio lenguaje para dar
Finalmente, la sección 5 presenta las conclusiones soporte a las transformaciones Q-RDL (Quality-
y trabajos futuros. Driven Rule Definition) y llevan a cabo una
implementación de una herramienta Q-TRA
desarrollada en C++.
2 Trabajos Relacionados En definitiva, ambas propuestas definen una
infraestructura propietaria, definiendo su propio
En esta sección, analizamos algunas propuestas lenguaje de transformación (MISTRAL y Q-
que abordan la problemática de la selección de RDL). Nuestra propuesta se ha apoyado en
transformaciones alternativas en procesos de herramientas abiertas y extensibles, haciendo uso
transformación de modelos desde la perspectiva de facilidades del proyecto Eclipse como EMF
de algún atributo de calidad. (Eclipse Modeling Framework) [3] y de lenguajes
Kurtev [9] propone una técnica formal para la de transformación estándar como QVT-Relations
definición de espacios de transformación que [12]. Además ambas propuestas [9], [11], y otras
soporta el análisis de las transformaciones que abordan esta problemática, cubren
alternativas dado un modelo origen. Esta técnica parcialmente el ciclo de vida del DSDM
ofrece operaciones de selección y reducción de los soportando únicamente transformaciones
espacios de transformación basados en ciertas horizontales o verticales. Por el contrario, nuestra
propiedades de calidad que se desea que tenga el propuesta puede ser utilizada en cualquier
modelo destino resultante del proceso de dominio, definiendo adecuadamente los artefactos
transformación. Para generar el espacio de necesarios, y en los distintos procesos de
transformación, se define un proceso que toma transformación que aparecen en las distintas fases
como entrada el modelo origen y su metamodelo, del ciclo de vida DSDM. Además permite trabajar
el modelo destino y un Modelo de Calidad. Los con múltiples atributos de calidad de manera
atributos de calidad son empleados como criterio simultánea efectuando un análisis trade-off para
de selección entre las distintas alternativas y son ponderar la importancia relativa de cada uno de
incluidas explícitamente en los espacios de los atributos de calidad.
transformación. Concretamente esta propuesta
explora la adaptabilidad y reusabilidad de las 3 Transformación de modelos dirigida
transformaciones de modelos para obtener por atributos de calidad
esquemas XML a partir de modelos de clase. Para
lograr la automatización el autor desarrolla En esta sección se introducen un esquema de
también su propio lenguaje de transformación automatización para la selección de
llamado MISTRAL apoyándose en una transformaciones alternativas en base a atributos
aproximación para el procesamiento de XML de calidad empleando la arquitectura propuesta en
basado en un framework de modelado basado en [6]. La sección 3.1 presenta una visión general de
MOF. una arquitectura para transformaciones de
Merilinna [11] propone una herramienta para modelos dirigidas por atributos de calidad, y la
guiar, de manera automatizada, las sección 3.2 define la estructura de las reglas de

ISSN 1988–3455 SISTEDES 2010 11


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

transformación para adaptarlas al proceso de En la primera fase, el experto de dominio lleva


transformación de modelos dirigido por atributos a cabo la Identificación de Transformaciones
de calidad empleando haciendo uso de Alternativas que serán posteriormente adaptadas
multimodelos. Un multimodelo es una colección al proceso de transformación de modelos dirigido
de modelos que dan soporte a diferentes vistas de por atributos de calidad. El experto del dominio
un sistema, caracterizados por la existencia de lleva a cabo además un Análisis Trade-Off entre
relaciones entre los elementos de sus los atributos de calidad y las diferentes
correspondientes metamodelos [4]. transformaciones alternativas. El objetivo es
establecer cómo la aplicación de las distintas
3.1 Una arquitectura para transformaciones de transformaciones alternativas afectará a la calidad
modelos dirigidas por atributos de del modelo destino. Esto se puede llevar a cabo
calidad mediante el uso de evidencia empírica obtenida en
experimentos controlados o con el conocimiento
Para dar un soporte adecuado a la definición de del experto del dominio.
transformaciones de modelos que tengan en Con el fin de realizar el Análisis Trade-Off en
cuenta atributos de calidad, se ha propuesto una el que se medirá por un lado la importancia
arquitectura basada en transformaciones con relativa de cada uno de los atributos de calidad, y
multimodelos. por otro el grado con que las transformaciones
A diferencia de las transformaciones alternativas dan soporte a los atributos de calidad
convencionales, los modelos participantes en empleamos el Proceso de Análisis Jerárquico
transformaciones con multimodelos están (AHP) [14]. El AHP es una técnica de toma de
relacionados entre sí. En el caso del proceso de decisiones que ha sido frecuentemente utilizada
transformación de modelos dirigido por atributos para resolver conflictos de esta índole. Este
de calidad se emplean tres modelos adicionales, proceso se realiza i) estudiando cada patrón
dos de ellos de entrada y uno intermedio generado estructural, definido como un conjunto de
por el propio proceso. constructores del metamodelo origen, para el que
El primer modelo de entrada es el Modelo de se han identificado transformaciones alternativas,
Calidad. Permite al usuario de la transformación y ii) analizando cómo la aplicación de cada una de
seleccionar los atributos de calidad que ha de las alternativas afecta a los distintos atributos de
tener el modelo destino. El Modelo de Calidad calidad.
tiene una estructura jerárquica basada en el Los resultados del Análisis Trade-Off son
estándar ISO/IEC 25000 SQuaRE [8], con introducidos en el Modelo de Transformaciones,
características, sub-características y atributos de que contiene los atributos de calidad identificados
calidad. como relevantes por el experto del dominio, los
El segundo modelo de entrada es el Modelo de pesos de cada atributo de calidad (entendidos
Transformaciones que expresa las relaciones entre como la importancia relativa de cada uno de estos
los atributos de calidad y las transformaciones atributos de calidad) y la información de los
alternativas. Los atributos de calidad que en el patrones estructurales para los cuales se han
aparecen son un subconjunto de los que aparecen podido identificar transformaciones alternativas.
en el Modelo de Calidad y han sido identificados Para cada patrón estructural para el que han sido
como relevantes por el experto del dominio. identificadas transformaciones alternativas, se
El tercer modelo, generado por el propio asociará la información de cada una de las
proceso es el Modelo de Reglas Activas, que transformaciones alternativas: el conjunto de
representa, para un determinado conjunto de reglas de transformación asociadas, y el impacto
constructores en el modelo origen, que reglas de que tiene la aplicación de cada alternativa sobre
transformación han sido seleccionadas de entre las los atributos de calidad. Estos impactos son
alternativas para llevar a cabo la transformación. flexibles y podrán ser modificados con
La Figura 1 presenta la estructura general del posterioridad si se constata que la aplicación de
proceso de transformación dirigido por atributos alguna de las alternativas no tiene el impacto
de calidad mostrando los artefactos, actividades y esperado en los atributos de calidad de los
fases principales. modelos generados.

ISSN 1988–3455 SISTEDES 2010 12


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 1. Fases y artefactos involucrados en el proceso de transformación

A continuación, cada vez que el usuario


cambie los atributos de calidad que ha de tener el 3.2 Definición de la estructura de las reglas de
modelo destino, se lleva a cabo la Selección de transformación
Reglas, que tomando como entrada el Modelo de
Transformaciones y el Modelo de Calidad, en el Esta sección presenta la estructura de las reglas de
que el usuario de la transformación ha transformación para adaptarlas al proceso de
seleccionado los atributos que ha de tener el transformación de modelos dirigido por atributos
modelo resultante, ejecuta un proceso de de calidad y lograr con ello la automatización.
transformación que automáticamente genera el Para ello, nos apoyaremos en conceptos del
Modelo de Reglas Activas. lenguaje de transformación QVT-Relations [12],
En la segunda fase se utiliza el Modelo Origen aunque los conceptos definidos en esta sección y
y el Modelo Reglas Activas como entrada para el proceso de transformación propuesto puedan
generar el Modelo Destino (ver Figura 1) además ser aplicados a otros marcos tecnológicos y
de las reglas de transformación, con aquellas lenguajes de transformación de modelos.
reglas que no son alternativas y las que son El punto de partida de este proceso es una
alternativas que serán discriminadas por el transformación de modelos existente en la que
Modelo de Reglas Activas. existen patrones estructurales para los que se han
De esta forma cuando en el Modelo Origen se identificado transformaciones alternativas.
encuentra un patrón estructural para el que se han Una vez se han identificado el conjunto de
identificado transformaciones alternativas se reglas que representan transformaciones
llevará a cabo la transformación haciendo uso de alternativas, se lleva a cabo una refactorización de
las reglas asociadas a este patrón en el Modelo de las reglas de transformación, para conseguir reglas
Reglas Activas. Las reglas de transformación definidas sobre patrones estructurales con un
aplicadas en esta fase aseguran que los atributos tamaño homogéneo y lo más pequeño posible, con
de calidad seleccionados sobre el Modelo de el fin de maximizar la cohesión y minimizar el
Calidad durante la fase 1 estén presentes en el acoplamiento.
Modelo Destino. Las reglas de transformación se descomponen
en dos niveles de reglas. Las reglas top se activan

ISSN 1988–3455 SISTEDES 2010 13


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

cada vez que se encuentra el patrón estructural en como otras condiciones que limiten la ejecución
el modelo de origen y las reglas non-top son de la regla. La postcondición de las reglas top son
invocadas directa o transitivamente desde la las llamadas, por composición de
cláusula where de las reglas top. transformaciones [2], a las distintas reglas non-
Las reglas de transformación incluidas en las top, agregando un mecanismo de reutilización a
transformaciones alternativas han de ser las reglas top.
modificadas para adaptarlas a la estructura de la En cuanto a las reglas non-top, su estructura
arquitectura. Por cada patrón estructural para el será definida de la forma habitual para representar
que se han identificado transformaciones la relación entre patrones estructurales del modelo
alternativas generaremos una nueva regla top por origen y sus correspondencias en el modelo
composición de todas las alternativas, aplicando destino.
principios de composición análogos a los descritos
en [2] para el contexto de transformaciones QVT- 4 Automatizando la selección de
Operational. Esta regla tendrá discriminantes que transformaciones alternativas
le permitirán seleccionar apropiadamente la
alternativa, y realizar las invocaciones a reglas
Esta sección muestra la automatización del
non-top en función de las selecciones realizadas
proceso de transformación de modelos dirigido
en la fase de análisis de reglas. La información de
por atributos de calidad en un dominio concreto.
las distintas reglas a invocar se encuentra
Por restricción de espacio, presentamos
disponible en el Modelo de Reglas Activas.
únicamente un breve resumen de la
En QVT-Relations una transformación se
automatización de la transformación de un modelo
define como una relación entre dos o más
de requisitos, en concreto de diagramas de
modelos. Una relación en una transformación
secuencia a diagramas de clase UML. Esta
define las restricciones que deben ser satisfechas
implementación se ha llevado a cabo con la
por los elementos de los modelos participantes.
infraestructura Eclipse, empleando EMF para
Una relación se define por dos o más dominios y
definir los metamodelos y la persistencia en XMI
un par de predicados when y where que
que brinda para serializar los modelos. Como
especifican la relación que debe mantener entre
lenguaje de transformación empleamos QVT-
los elementos de los modelos participantes. La
Relations y como motor de transformación
cláusula when especifica las condiciones bajo las
empleamos MediniQVT.
cuales la relación debe ejecutarse. La cláusula
where especifica la condición que debe ser
satisfecha por todos los elementos del modelo que 4.1 Identificación de alternativas y atributos
participan en la relación. Estas cláusulas pueden relevantes
restringir alguna de las variables de la relación y
sus dominios [12]. El proceso comienza con la identificación de
La estructura de una regla top, que agrupa las transformaciones alternativas en el dominio
distintas alternativas, constará de tres dominios. El específico. En este caso utilizamos el Catalogo de
primer dominio es el Modelo Origen, donde son Reglas de Transformación propuesto por Insfran
descritas con precisión las entidades del patrón [7]. Este catálogo define las relaciones entre
estructural. El segundo dominio es el Modelo de patrones estructurales del diagrama de secuencia y
Reglas Activas, donde se define la asociación el diagrama de clases UML entre otros. En
entre el nombre de las alternativas para un patrón concreto analizando estas reglas de
estructural dado y las distintas reglas non-top que transformación mostramos como ejemplo un
crearán o modificarán los constructores del patrón estructural en el diagrama de secuencia que
modelo destino. Por último en una regla top da lugar a más de una transformación alternativa
tendremos también el dominio del Modelo para el diagrama de clases UML. Este patrón
Destino donde se define aquellos elementos estructural se muestra en la Figura 2: "un mensaje
comunes que serán creados o modificados por las con el estereotipo «Service/New» de la clase A a
diferentes alternativas. La precondición de la regla la B, y dos mensajes con el estereotipo «Connect»
top consta de restricciones sobre el dominio de la clase B a las clases C y D,".
origen y sobre el Modelo de Reglas Activas, así

ISSN 1988–3455 SISTEDES 2010 14


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

A continuación se muestran algunas de las  Alternativa 2: Aplicar la regla de


transformaciones que pueden aplicarse para este transformación TR39 que transforma un
patrón estructural: mensaje con el estereotipo
 Alternativa 1: aplicar dos veces la regla «Service/New» de la clase A a la clase
de transformación TR15 del catálogo de B, y dos mensajes con el estereotipo
reglas de transformación que transforma «Connect» de la clase B a las clases C y
un mensaje con el estereotipo D, respectivamente, en una nueva clase
«Connect» en una relación de asociación (B) y una relación de
asociación entre las clases [7]. asociación entre las clases C y D [7].

Figura 2. Patrón estructural del modelo origen

Las diferentes transformaciones alternativas se de transformación: operabilidad y mantenibilidad.


definen mediante la creación de nuevas reglas top En concreto, se utilizó una sub-característica de la
que agrupan las reglas alternativas para un operabilidad: Appropriateness Recognizability y
determinado patrón estructural. Estas reglas top la sub-característica de mantenibilidad:
contienen la referencias al Modelo de Reglas Changeability tal como se define en el nuevo
Activas. Con la información que proviene del estándar ISO/IEC 25000 SQuaRE [8]. Los
Modelo de Reglas Activas, el patrón se transforma atributos seleccionados serán, en ambos casos, la
por medio de llamadas a un conjunto de reglas efectividad y la eficiencia de cada una de estas
non-top u otro. subcaracteristicas. En la actividad de trade-off el
La regla non-top llamada desde la alternativa 1, experto del dominio asigna pesos a cada una de
crea una asociación entre dos clases. Esta regla las alternativas en relación a estos atributos,
será llamada dos veces, una con los argumentos B basándose en su propia experiencia o bien en
y C y otra con B y D. La regla non-top llamada evidencias empíricas obtenidas en experimentos
desde la alternativa 2, crea una asociación entre controlados en los que se demuestre la relación
dos clases y un enlace a clase asociación con una entre las transformaciones alternativas y los
tercera clase. Esta regla será llamada una vez con atributos de calidad.
los argumentos C, D y B. La tabla 1 muestra los distintos pesos
Se han identificado otros patrones: dos clases asignados en la fase de Trade-Off, la base de estos
conectadas por un mensaje con el estereotipo valores se basa en los resultados de dos
«Service/New» o «Connect» que serán experimentos controlados [1], [5]. Dichos valores
transformadas en asociaciones entre las clases, y se basan en, por un lado, que la presencia de
para las que no identificamos transformaciones clases asociación en un modelo de clases UML
alternativas. Para la transformación de estos dos empeora la Appropriateness Recognizability con
patrones definimos únicamente las reglas top y respecto a modelos de clases UML que contienen
reutilizaremos las llamadas a las reglas non-top ya asociaciones [1] y, por otro lado, en el hecho de
definidas para convertir ese patrón en una que el incremento del número de asociaciones en
asociación entre las clases. En la precondición de un modelo de clases UML empeora la
la regla, habrá una llamada a una consulta para mantenibilidad del modelo [5]. La alternativa 1
evitar colisiones entre reglas. tiene mayor número de asociaciones (2 por cada
Para el ejemplo que nos ocupa, se han aplicación) que la alternativa 2 (1 por cada
seleccionado dos características de calidad que aplicación).
deben tener los modelos generados por el proceso

ISSN 1988–3455 SISTEDES 2010 15


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

La justificación de la asignación de los pesos a especificación de un Sistema de Gestión Hotelera.


cada una de las alternativas se trata con mayor Este diagrama de secuencia muestra la interacción
detalle en [6]. entre los objetos para la especificación del caso de
uso de alquiler de habitaciones, que es iniciado
Tabla 1. Pesos de las diferentes alternativas
por el actor employee. Este caso de uso representa
Appropiatness Changeability el alquiler de una habitación por un cliente. Por
Recognizability razones de brevedad, se presenta sólo uno de los
Efic. Efec. Efic. Efec. diagramas de secuencia, mostrado en la Figura
Alternativa 1 3.a.
(TR15)
0.40 0.35 0.25 0.14
En la actividad de Selección de Reglas, se
Alternativa 2
0.36 0.30 0.40 0.37 ejecuta una transformación que, dependiendo de
(TR39)
las selecciones hechas por el usuario sobre el
Modelo de Calidad, tal como se muestra en la
4.2 Aplicación de las transformaciones Figura 3.b, genera un Modelo de Reglas Activas.
En este modelo, para el patrón estructural descrito
Esta sección muestra como un Diagrama de en la Figura 2, se habrá seleccionado la regla de
Secuencia puede generar diferentes diagramas de transformación alternativa que corresponde.
clase UML en función de la selección realizada En la actividad de Transformación Dirigida
sobre el Modelo de Calidad por el usuario de la por Atributos de Calidad se aplica este Modelo de
transformación. Para ello, utilizamos como Reglas Activas para la generación de los posibles
modelo de origen un diagrama de secuencia de la modelos destino mostrados en la Figura 4.a y 4.b.

Figura 3. Modelos de entrada a la fase de transformación

La selección por parte del usuario del atributo resultado el diagrama mostrado en la Figura 4.a en
de calidad Changeability tal como se muestra en el que el patrón estructural formado por los
el Modelo de Calidad mostrado en la Figura 3.b mensajes 10 al 12 y el patrón estructural formado
da como resultado el diagrama de clase UML por los mensajes 13 al 15 en el modelo origen se
mostrado en la Figura 4.b en el que el patrón transforman en relaciones de asociación entre las
estructural formado por los mensajes 10 al 12 y el distintas clases. Las dos representaciones que se
patrón estructural formado por los mensajes 13 al muestran para cada modelo en la Figura 4.a y b
15 del modelo origen se transforman en dos clases son, el modelo destino tal como es generado por la
asociación. La selección del atributo de calidad herramienta de transformación y su representación
Appropriateness Recognizability da como como diagramas de clase UML.

ISSN 1988–3455 SISTEDES 2010 16


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Room Room Customer

Rental Cost

CostType Rental
Customer

CostType
Cost

(a) (b)
Figura 4. Modelos destino alternativos

En esta sección se ha mostrado una UML. También se muestra cómo la selección de


implementación de la arquitectura a un contexto cada alternativa afecta a la calidad de los modelos
de transformaciones en los que se presentan destino generados, mostrando ejemplos generados
alternativas, donde se puede observar el impacto de forma automática por la herramienta de
de la selección de los atributos de calidad en el transformación. La adopción de este enfoque
modelo de destino. Todos los conceptos descritos puede extender los procesos de desarrollo de
en este ejemplo pueden ser aplicados a software dirigido por modelos actuales brindando
transformaciones más complejas, bien sea por el directrices para la definición de procesos en los
tamaño de los modelos de origen y/o destino, que aparecen transformaciones alternativas, para
como por el número de transformaciones que la selección entre estas se lleve a cabo en base
alternativas identificadas. a atributos de calidad.
Como trabajos futuros, se pretende aplicar este
5 Conclusiones y trabajos futuros enfoque a otros dominios y poner a prueba el
proceso de transformación con múltiples atributos
Este artículo ha presentado la automatización de calidad. Se pretende definir métricas que
de un proceso de selección de transformaciones evalúen aspectos estructurales de los modelos
alternativas basándonos en atributos de calidad en generales para medir la calidad de los modelos
transformaciones de modelos. Se ha descrito el destino generados, complementándolas con
enfoque multimodelo para la definición de valoraciones subjetivas de expertos que servirán
transformaciones donde aparecen alternativas, así para retroalimentar la actividad de trade-off. Se
como la estructura que han de tener las reglas de pretende además diseñar experimentos
transformación. Este enfoque permite la controlados que validen empíricamente la
automatización de las transformaciones, según la usabilidad y efectividad de la propuesta. También
información de los atributos de calidad deseados. planteamos abordar un análisis de la calidad
Si bien no se está analizando la calidad global global del modelo generado, analizando el
durante el proceso de transformación sino como la impacto que tiene la secuencia de aplicación de
aplicación de cada transformación impacta en la reglas y las posibles incompatibilidades que
calidad del modelo generado, el enfoque global puedan aparecer.
analizando la evolución de la calidad del modelo Agradecimientos
generado será abordado en trabajos futuros.
La viabilidad del método se ilustra con un Este trabajo ha sido cofinanciado por el Ministerio
ejemplo en el que se automatiza la selección de de Ciencia e Innovación, en el marco del proyecto
transformaciones alternativas en la transformación MULTIPLE (ref. TIN2009-13838), y por la G.V-
de diagramas de secuencia en diagramas de clase A (proyecto CALIMO con ref. GV/2009/103).

ISSN 1988–3455 SISTEDES 2010 17


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Referencias [7] Insfrán, E. A Requirements Engineering


Approach for Object-Oriented Conceptual
Modeling. Phd Thesis, Universidad
Politécnica de Valencia, Valencia, 2003.
[1] Abrahão, S., Genero, M., Insfrán, E., Carsí, J. [8] International Organization for Standardization
A., Ramos, I., & Piattini, M. Quality-Driven ISO/IE Software engineering 2005 Software
Model Transformations: From Requirements product Quality Requirements and Evaluation
to UML Class Diagrams. In J. R. (Eds.), (SQuaRE), 2005.
Model-Driven Software Development: [9] Kurtev, I. Adaptability of Model
Integrating Quality Assurance. IGI Global Transformations. PhD Thesis. University of
Publishing, USA, 2008. Twente, Twente, 2005.
[2] Belaunde, M. Transformation Composition in [10] MDA Guide Version 1.0.1.
QVT. First European Workshop on http://www.omg.org/cgi-bin/doc?omg/03-06-
Composition of Model Transformations 01.pdf, 2003.
(CMT). Bilbao, Spain, 2006. [11] Merilinna, J. A Tool for Quality-Driven
[3] Budinsky, F., Steinberg, D., Ellersick, R., Architecture Model Transformation. PhD
Merks, E., Brodsky, S.A., Grose, T.J. Eclipse thesis. VTT Technical Research Centre of
Modeling Framework. Addison Wesley, 2003. Finland, Finland, 2005.
[4] Boronat, A., Knapp, A., Meseguer, J. Wirsing, [12] Meta Object Facility (MOF) 2.0
M. What is a Multi-Modeling Languaje? In: Query/View/Transformation Specification -
LNCS, vol 5486/2009, pp 71—87 Springer, http://www.omg.org/spec/QVT/1.0/PDF,
Heidelberg, 2009. 2006.
[5] Genero, M., Manso, M. Esperanza, Visaggio, [13] Mens, T., Van Gorp, P. A Taxonomy of
C. A., Canfora, G., Piattini, M. Building model Transformations Electronic Notes in
measure-based prediction models for UML Theoretical Computer Science Volume 152,
class models maintainability. Empirical 27 March 2006, Pages 125-142 Proceedings
Software Engineering 12(5): 517-549, 2007. of the International Workshop on Graph and
[6] Gonzalez-Huerta, J., Blanes, D., Insfran, E., Model Transformation (GraMoT 2005), 2006.
Abrahão, S. Towards an Architecture for [14] Saaty, T.L. The Analytical Hierarchical
Ensuring Product Quality in Model-Driven Process. McGraw-Hill, 1980.
Software Development. Procedings of the [15] Schmidt, D.C. Model-driven engineering.
International Conference on Product Focused IEEE Computer 39, 2, 25-31, 2006.
Software Development and Process [16] Stahl, T., Völter, M. Model-Driven Software
Improvement (PROFES 2010) Limerick, In Development Technology, Engineering,
press, 2010. Management, John Wiley and Sons, Ltd.,
Chichester, ISBN: 0470025700, 2006.

ISSN 1988–3455 SISTEDES 2010 18


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

De flujos de navegación a Spring Web Flow. Un primer


acercamiento a las transformaciones verticales en MWACSL*

A. M. Reina Quintero J. Torres Valderrama M. Toro Bonilla


Departamento de Lenguajes y Departamento de Lenguajes y Departamento de Lenguajes y
Sistemas Informáticos Sistemas Informáticos Sistemas Informáticos
E.T.S. Ingeniería Informática E.T.S. Ingeniería Informática E.T.S. Ingeniería Informática
Universidad de Sevilla Universidad de Sevilla Universidad de Sevilla
reinaqu@lsi.us.es jtorres@lsi.us.es mtoro@lsi.us.es

Resumen un caso concreto de uno de estos tipos trans-


formaciones (la generación de flujos de Spring
MWACSL es una propuesta orientada a aspec- Web Flow a partir de modelos de flujos de na-
tos y dirigida por modelos para el desarrollo de vegación).
aplicaciones web, cuyo acrónimo se obtiene de
la combinación de las iniciales de las principa-
les áreas de investigación en las que se enmar- 1. Introducción
ca (Model-driven, Web, Aspect-oriented, Con-
cern Specific Languages). La arquitectura de Algunos de los primeros trabajos publicados
una aplicación MWACSL presenta dos niveles relacionados con la orientación a aspectos se
de separación de conceptos. Horizontalmente, centraban en describir una serie de lenguajes
los distintos aspectos técnicos que componen específicos de dominio (DSL’s) para especifi-
la aplicación se separan conceptualmente, y de car algunos de los aspectos que componen un
forma explícita, mediante lenguajes específicos sistema. Así, por ejemplo, COOL y RIDL [20],
de dominio, de forma que un aspecto técnico especificaban la sincronización y la coordina-
puede especificarse mediante uno o varios len- ción, respectivamente. Sin embargo, la comu-
guajes específicos de dominio. Verticalmente, nidad optó por lenguajes de propósito general,
la separación se realiza inspirándose en la ar- tales como AspectJ [24]. Los principales incon-
quitectura MDA. Así se consigue una separa- venientes que existían para tratar con DSL’s y
ción de los modelos que son independientes de que hicieron que la comunidad optara por len-
plataforma de los que son dependientes de la guajes de aspectos de propósito general eran:
misma. Este artículo se centra en una parte de (1) el importante esfuerzo necesario para im-
esta arquitectura, el paso de un modelo inde- plementar un nuevo lenguaje de aspectos para
pendiente de plataforma a uno dependiente de un dominio específico (DSAL); (2) la dificul-
la misma, y en un aspecto técnico concreto, la tad para extender un weaver realizado ad-hoc
navegación. El objetivo principal del artículo para un lenguaje de aspectos de dominio es-
es doble, por una parte, realizar una primera pecífico; y, (3) la imposibilidad de combinar
categorización de los distintos tipos de trans- weavers para diferentes DSAL’s. Por contra, el
formaciones que pueden tener lugar en una ar- trabajar con este tipo de lenguajes tiene im-
quitectura MWACSL, y, por otra, especificar portantes beneficios, ya que proporcionan una
representación declarativa de los constructores
*
Este trabajo se ha financiado parcialmente por más importantes relacionados con el aspecto
el Ministerio de Ciencia y Tecnología y fondos FE- que se está tratando, permitiendo así razonar
DER: TIN-2007-67843-C06-03 y TIN2007-64119. mejor sobre los conceptos y detectar errores a

ISSN 1988–3455 SISTEDES 2010 19


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

nivel de dominio. trar en MWACSL, para dedicarse luego a un


Se puede decir que estas propuestas iniciales tipo de transformación concreta, la que se ha
de DSAL’s se movían en el espacio tecnológico categorizado como directa.
de las gramáticas (o grammarware). Un espa- Para conseguir su objetivo el artículo se es-
cio tecnológico, según [18], es un contexto de tructura de la siguiente forma: En primer lu-
trabajo con un conjunto de conceptos, un cuer- gar, se da una visión general de MWACSL.
po de conocimiento, herramientas y habilida- Luego, el artículo se centra en una dimen-
des requeridas. Si se trabaja en el espacio tec- sión horizontal, la navegación, dedicándose la
nológico de los modelos (o modelware), algu- sección 3 a profundizar más en este aspec-
nos de los inconvenientes iniciales para traba- to. En esta sección se tratan especialmente
jar con DSAL’s se pueden superar gracias a los dos competencias navegacionales: la navega-
trabajos, avances y herramientas que se están ción estructural y de utilidad, y los flujos de
obteniendo dentro del campo del desarrollo de navegación controlados. Luego, se categorizan
software dirigido por modelos. Así, la idea sub- el tipo de transformaciones que nos podemos
yacente en nuestra propuesta, MWACSL, es la encontrar en MWACSL (sección 4), para más
de trasladar estos DSAL’s iniciales al espacio tarde, centrarse en la implementación de una
tecnológico de los modelos, de forma que me- de ellas en la sección 5. A continuación, se da
diante el uso de múltiples lenguajes específi- un repaso a los trabajos relacionados de las
cos de dominio, de manera similar a [14], las distintas áreas de conocimiento con las que es-
competencias se separan de una forma limpia, tá relacionado MWACSL. Finalmente se con-
tratándose cada una de ellas con un lenguaje cluye el artículo y se apuntan algunas líneas
explícito. de trabajo futuro.
El nombre de la propuesta (MWACSL)
surge de la combinación de las iniciales de 2. MWACSL
las principales áreas de investigación en las
que se enmarca (Model-driven, Web, Aspect- MWACSL es un enfoque para el desarrollo de
oriented, Concern Specific Languages). Uno de software en entornos web orientado a aspectos
los objetivos de MWACSL es ayudar a las apli- y dirigido por modelos. En MWACSL la sepa-
caciones a adaptarse de forma rápida a los ración de conceptos se realiza en dos dimen-
cambios, tanto de la tecnología, como de los siones distintas (Figura 1). Horizontalmente se
requisitos de usuario. Para conseguir este ob- separan los distintos aspectos técnicos, mien-
jetivo se mezclan las ideas de MDA y orienta- tras que verticalmente se separan aquellos as-
ción a aspectos. La web aparece como contexto pectos dependientes de la plataforma de imple-
de aplicación, ya que es un ámbito que está en mentación de los que no lo son. Los aspectos
constante evolución. técnicos se separan conceptualmente y se ha-
En MWACSL, por tanto, se separan los mo- cen explícitos mediante lenguajes específicos
delos en dos dimensiones distintas, horizontal- de dominio independientes, de forma que cada
mente se separan los distintos aspectos que aspecto a nivel independiente de plataforma se
componen el sistema, mientras que vertical- especifica usando uno o varios lenguajes espe-
mente hay una separación entre lo que es inde- cíficos de dominio. El mantenimiento de esta
pendiente de la plataforma de implementación separación en la plataforma de implementa-
y lo que no lo es. Dentro de esta arquitectura ción dependerá de la plataforma concreta. Lo
el artículo se centra en una de las dimensiones ideal sería seguir manteniendo la separación en
horizontales, el aspecto de navegación, y en la dicha plataforma, pero esto no es siempre po-
transformación de una competencia navegacio- sible, ya que muchas veces es el cliente el que
nal expresada con un modelo independiente de escoge la plataforma en la que se va a desa-
plataforma a una plataforma concreta (Spring rrollar la aplicación. Así, por ejemplo, en la
Web Flow). Previamente se caracterizan los ti- Figura 1 se ve reflejado el hecho de que navega-
pos de transformaciones que se pueden encon- ción e interfaz de usuario son dos aspectos que

ISSN 1988–3455 SISTEDES 2010 20


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 1: Arquitectura de modelos de una aplicación MWACSL

se encuentran separados a nivel independien- frir muchas variaciones a lo largo de la vida


te de plataforma, sin embargo, no se mantiene de la aplicación; y, finalmente, porque es una
esa separación a nivel específico de plataforma característica distintiva de MWACSL, ya que
porque la implementación de estos dos aspec- la mayoría de las propuestas de ingeniería web
tos se realiza con Java Server Faces(JSF)[21], conciben la navegación como una vista del mo-
un framework de programación Java que no delo conceptual, lo que, implícitamente, impo-
tiene una separación limpia de interfaz y na- ne un modelo de desarrollo en cascada, puesto
vegación. que hay que abordar antes el diseño del mode-
Una aplicación en MWACSL está compues- lo conceptual que el de la navegación.
ta de un modelo primario y una serie de mode- En MWACSL se han separado dos compe-
los de aspectos (cada uno expresado utilizando tencias navegacionales a nivel independiente
uno o varios lenguajes específicos de dominio). de la plataforma. Por una parte, la navegación
Si los aspectos son suficientemente complejos, estructural y de utilidad, y por otra, los flu-
se pueden usar distintos lenguajes específicos jos de navegación controlada. La navegación
de dominio para especificarlos. Un ejemplo de estructural y la de utilidad se tratan de for-
este tipo de aspectos es la navegación, ya que ma conjunta porque presentan un comporta-
se puede descomponer en diferentes tipos de miento muy similar. Mientras que la navega-
competencias o concerns[15]. Por ejemplo, en ción estructural puede verse como una catego-
[15] se sugieren tres grandes tipos de compe- ría de navegación cuya función principal es la
tencias navegacionales: las relacionadas con ta- de enlazar páginas que se encuentran dentro
reas, las relacionadas con temas y las que los la jerarquía del sitio, la navegación de utili-
autores denominan “puras”. dad conecta páginas que ayudan al usuario a
utilizar el sitio y que complementan a la nave-
3. La navegación en MWACSL gación principal, situándose cerca de ella. La
navegación principal es un tipo de navegación
De todos los aspectos técnicos mostrados en estructural. Según [16] los enlaces que repre-
la Figura 1 este artículo se centra en la nave- sentan navegación estructural se pueden clasi-
gación, porque, en primer lugar, la navegación ficar en dos grandes grupos: navegación princi-
es un concepto distintivo de las aplicaciones pal y navegación local. La navegación principal
web, llegando a convertirse en un factor im- es el menú o conjunto de enlaces que aparecen
portante a tener en cuenta en el éxito de las en casi todas las páginas del sitio web y que
mismas; en segundo lugar, porque puede su- enlazan a las principales secciones del mismo.

ISSN 1988–3455 SISTEDES 2010 21


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

La navegación local guía al usuario a ciertas y la modularidad. Teniendo estas cuestiones


secciones situadas a niveles más profundos del en cuenta, los diagramas de estado son una
sitio. Finalmente, un flujo de navegación con- de las notaciones más apropiadas para mode-
trolada es un flujo de navegación o diálogo en lar este tipo de competencia. Así, el lenguaje
el que se restringe la libertad del usuario a la específico de dominio que especifica la navega-
hora de navegar por el sitio web con idea de ción controlada se basa en diagramas de estado
guiarlo para que complete un proceso de ne- y se inspira en una de las propuestas de mo-
gocio. delado web que usa esta notación: StateWeb-
Chart [33]. Un ejemplo de modelo de flujo de
navegación utilizando este tipo de diagrama es
el mostrado en la Figura 4, que representa un
flujo de navegación controlada de un proceso
de compra en una aplicación de comercio elec-
trónico.
A nivel dependiente de plataforma no siem-
pre se puede mantener la separación de compe-
tencias, ya que depende la la plataforma con-
creta de implementación. Una plataforma que
Figura 2: Tipos de competencias navegacionales ayuda a tener separados los flujos de navega-
ción controlados es Spring Web Flow [5]. Un
lenguaje específico de dominio para trabajar
En la Figura 2 se muestra cómo el aspecto de
con Spring Web Flow se especificó en [28, 27].
navegación está compuesto por varias compe-
La navegación estructural y de utilidad, sin
tencias navegacionales. Una clasificación de los
embargo, son más difíciles de separar en plata-
tipos de competencias navegacionales se puede
formas concretas. Hasta lo que alcanza nuestro
encontrar en [15], donde se definen tres gran-
conocimiento, no hay ninguna plataforma en la
des grupos, las relacionadas con tareas, las re-
que se separe claramente este tipo de navega-
lacionadas con temas y las puras. Atendiendo
ción, de forma que, en una primera aproxima-
a esta clasificación, la navegación estructural y
ción, la plataforma escogida para implemen-
de utilidad estarían dentro del grupo de com-
tar la navegación estructural y de utilidad es
petencias navegacionales puras, mientras que
XHTML. En [26] se presenta una ampliación
los flujos de navegación controlada serían una
a metamodelo que especifica la sintaxis abs-
competencia navegacional de tarea.
tracta de XHTML y que se obtiene de forma
El lenguaje específico de dominio para se-
automática mediante el importador de XSD de
parar la navegación de utilidad y estructural
EMF [6].
se ha especificado en [25, 26]. Ambas compe-
tencias o concerns se tratan de forma conjun-
ta porque la navegación de utilidad tiene un 4. Categorización de las transfor-
comportamiento muy similar a la navegación maciones en MWACSL
principal, lo que implica que con el mismo DSL
se pueden especificar estos dos tipos de nave- En MWACSL hay dos grandes grupos de
gación. Este lenguaje específico de dominio se transformaciones, dependiendo del propósito
ha inspirado en los entregables conocidos co- de las mismas. Por una parte, hay transforma-
mo mapas del sitio o sitemap. Un ejemplo de ciones cuyo objetivo es la generación de arte-
modelo de navegación estructural y de utilidad factos que van a ser parte del proceso de desa-
definido utilizando este lenguaje se muestra en rrollo, y por otra, hay transformaciones cuyo
la Figura 3. objetivo es generar artefactos que tienen pro-
Para tratar con la navegación controlada se pósitos de validación. En la Figura 5 se mues-
han de tener en cuenta tres cuestiones [31]: el tran ejemplos de estos dos tipos de transforma-
control de la navegación, la gestión del estado ciones. La subfigura 5(a) muestra ejemplos de

ISSN 1988–3455 SISTEDES 2010 22


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 3: Modelo especificando la navegación estructural y de utilidad.

transformaciones cuyo objetivo es la genera- modelo a texto, la 2 y la 4 son similares. En


ción, mientras que en la subfigura 5(b) muestra concreto, la transformación 2 genera un archi-
ejemplos de transformaciones de validación. vo XHTML a partir de un modelo XHTML, y
Otra clasificación de las transformaciones la 4 un flujo de navegación web a partir de un
está relacionada con el nivel de abstracción en modelo de Spring Web Flow. Detalles más con-
el que se expresan los modelos origen y des- cretos de este último tipo de transformación se
tino, pudiendo ser verticales y las horizonta- pueden obtener en [27]. La transformación 6,
les. Las transformaciones verticales son aque- sin embargo, tiene propósitos de validación y
llas que obtienen artefactos de más bajo nivel su objetivo es obtener una especie de borrador
a partir de modelos de alto nivel, mientras que de qué aspecto tendrían la navegación estruc-
las horizontales transforman artefactos situa- tural y de utilidad.
dos al mismo nivel de abstracción. En la Fi- La transformación 5 es la única transforma-
gura 5, las transformaciones 1, 2, 3, 4 y 6 se ción horizontal, y tiene propósito de valida-
pueden considerar transformaciones verticales. ción. Representa el proceso de composición de
Entre las propias transformaciones vertica- modelos. Nótese que dirección de la transfor-
les también hay diferencias. Las transforma- mación es desde la navegación estructural ha-
ciones 1 y 3 son transformaciones modelo a cia los flujos de navegación, y que la dirección
modelo, mientras que la 2, la 4 y la 6 son mode- contraria no se puede dar en este caso, ya que
lo a texto. También hay diferencias en relación con el lenguaje específico de dominio definido
a los artefactos generados. Así, la transforma- para especificar la navegación estructural y de
ción 3 se puede considerar como una transfor- utilidad no se pueden expresar flujos de nave-
mación directa en el sentido de que el flujo de- gación.
finido a nivel de PIM, tiene una corresponden-
cia casi directa con el flujo Spring Web Flow, 5. De Flujos de navegación contro-
a nivel específico de plataforma. La transfor- lada a SWF mediante transfor-
mación 1, sin embargo, no es directa porque maciones QVT
genera un modelo XHTML incompleto, en el
sentido de que el modelo XHTML generado Tanto el metamodelo del flujo de navegación
solamente contiene información acerca de la como el de Spring Web Flow se han implemen-
navegación de utilidad y estructural. tado como modelos Ecore, es decir, usando el
En cuanto al grupo de transformaciones de estándar de facto EMF [6] A estos metamodelo

ISSN 1988–3455 SISTEDES 2010 23


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

(a) Generación.

Figura 4: Modelo que especifica un flujo de nave-


gación controlado.

(b) Validación

se le han adjuntado un conjunto de restriccio-


nes OCL, implementadas mediante el plugin Figura 5: Algunos tipos de transformaciones en
OCL [8] que se incluye dentro de proyecto de MWACSL
modelado de Eclipse (EMP) [7]. Las transfor-
maciones se han implementado usando QVT
Operational Mapping [22] y el motor de QVT En la parte izquierda (la subfigura 6(a)), se
escogido es el implementado dentro de proyec- muestra una correspondencia o mapping sim-
to EMP1 . ple, pero central, ya que se encarga de gene-
Por cada flujo de navegación definido a ni- rar un estado tipo ViewState por cada estado
vel de PIM se genera un flujo de navegación FrontEndView del flujo de navegación contro-
en Spring Web Flow, lo que se refleja en la lada. En la parte derecha (la subfigura 6(b)),
correspondencia o mapping toSpringWF. Esta se muestra otra correspondencia que necesita
correspondencia es la que desencadena la ge- un poco más de elaboración. Esta necesidad
neración de todo el modelo de salida. En la se produce por el hecho de los estados finales
Figura 6 se muestran otros dos ejemplos de en Spring Web Flow tienen asociada una vista,
mappings que se definen en la transformación. mientras que en el flujo definido a alto nivel las
1
vistas siempre van asociadas a estados de ti-
Los metamodelos y transformaciones menciona-
dos en este artículo pueden ser descargados de http: po FrontEndView. De esta forma, para generar
//www.lsi.us.es/~reinaqu/org.mwacsl/html/. los estados de tipo EndState de Spring Web

ISSN 1988–3455 SISTEDES 2010 24


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Flow hay que quedarse con los estados finales nuevos DSALs, aunque la mayoría de ellos se
del modelo de entrada, navegar por las transi- mueven en el espacio tecnológico de las gra-
ciones que llegan hacia ellos para obtener los máticas. Una de las propuestas que aboga por
estados de tipo FrontEndView que conducen al la definición de múltiples lenguajes específi-
estado final. cos de dominio para el desarrollo de aplica-
ciones web en el espacio de las gramáticas es
WebDSL [32]. WebDSL está compuesto por
varios sublenguajes: un lenguaje para el mo-
delo de datos, un lenguaje para la presenta-
(a) De FrontEndView a ViewState. ción, un lenguaje de consultas, y un lengua-
je de expresiones y acciones. Como extensión
a WebDSL, los autores también han definido
lenguajes específicos de dominio para tratar
con el control de acceso y con workflows. En
esta propuesta la generación de código se rea-
liza mediante reglas de reescritura de progra-
(b) De FrontEndView + estado final a EndState mas.
Con respecto a las propuestas de ingeniería
Figura 6: Ejemplos de mapppings web, y sobre todo, en relación al tratamien-
to que le dan a la navegación, hay que desta-
car que casi todas las propuestas modelan la
navegación de forma separada al modelo con-
6. Trabajos relacionados
ceptual y a la interfaz de usuario. En general,
Al ser MWACSL una propuesta que se apo- hay dos tipos de propuestas en relación a la
ya en varias disciplinas emergentes, los traba- navegación, aquellas que la modelan desde un
jos relacionados hay que buscarlos en áreas ta- punto de vista del comportamiento y las que lo
les como el modelado orientado a aspectos, los hacen desde una perspectiva estructural. Las
lenguajes específicos de dominio o la ingeniería primeras se basan en la semántica operacio-
web. nal, y normalmente, lo que hacen es explorar
En general, las propuestas de modelado el estado en el que quedará el sistema cuando
orientado a aspectos pueden agruparse en dos un evento particular lanza una transición. Las
grandes familias, por una parte, aquellas cuyo segundas se centran en estructurar la informa-
objetivo es el modelado de programas que se ción en contextos que representan trozos de
han implementado en una plataforma orienta- información que se conectan mediante enlaces
da a aspectos, tales como [13, 23, 9], y, por con significado. Las propuestas que se centran
otra, las centradas en estructurar los mode- en el comportamiento suelen usar diagramas
los de acuerdo a los diferentes aspectos que lo de estado para modelar la navegación. En este
componen, como [2, 10]. MWACSL está más grupo están [3, 33, 19, 12, 4].
alineado con la segunda familia, aunque no se Las propuestas centradas en la estructu-
descarta la primera en el caso en que la plata- ra, normalmente conciben la navegación como
forma sea orientada a aspectos, ya que así se una vista del modelo conceptual, lo que im-
pueden generar aspectos de AspectJ o hipers- plícitamente, impone un desarrollo en casca-
lices de HyperJ. da, en el sentido de que es necesario definir en
En relación a los lenguajes de aspectos espe- primer lugar el modelo conceptual para lue-
cíficos de dominio (o DSALs) se pueden encon- go poder definir el de navegación. Los auto-
trar muchas propuestas publicadas en las di- res de estas propuestas también las están ex-
ferentes ediciones del Domain-Specific Aspect tendiendo aplicando orientación a aspectos y
Languages Workshop. Muchos de los artículos un desarrollo de software dirigido por mode-
presentados en esta serie de talleres definen los. En este grupo están UWE [34], que usa la

ISSN 1988–3455 SISTEDES 2010 25


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

orientación a aspectos para especificar control Referencias


de acceso y la adaptatividad de la navegación;
aspectWebML [29], que introduce los aspectos [1] S. Casteleyn, W. Van Woensel, and G.-
para tratar con la personalización en aplica- J. Houben. A semantics-based aspect-
ciones web ubicuas; SEAL [1], cuyo objetivo oriented approach to adaptation in web
es la adaptación de contenido, para lo que se engineering. In Proceedings of the 18th
basan en la separación avanzada de conceptos; conference on Hypertext and hypermedia
OOWS [30], que proponen la metáfora de ta- (HT07), pages 189–198. ACM, 2007.
rea para describir competencias, y, finalmente,
[2] S. Clarke and E. Baniassad. Aspect-
OOHDM [11], que propone separar y capturar
Oriented Analysis and Design: The The-
de forma temprana las competencias que afec-
me Approach. Addison-Wesley Professio-
tan a la navegación.
nal, 2005.

[3] M. C. Ferreira de Oliveira, M. A. Santos


Turine, and P.C. Masiero. A statechart-
based model for hypermedia applications.
7. Conclusiones y trabajos futuros
ACM Transactions on Information Sys-
tems, January 2001.
En el artículo se ha presentado de forma ge-
[4] Peter Dolog and Wolfgang Nejdl. Using
neral MWACSL, y se han caracterizado los ti-
uml and xmi for generating adaptive na-
pos de transformaciones que pueden ser nece-
vigation sequences in web-based systems.
sarias dentro de la propuesta. Como primera
In Proc. of «UML» 2003 - Sixth Interna-
aproximación el artículo ha presentado un caso
tional Conference on the Unified Modeling
concreto de transformación directa relaciona-
Language: Modeling Languages and Ap-
do con la navegación, la generación de un flujo
plic, number 2863. Springer-Verlag Lec-
en Spring Web Flow a partir de un modelo de
ture Notes in Computer Science, October
alto nivel que representa la navegación contro-
2003.
lada.
El trabajar con múltiples lenguajes especí- [5] K. Donald and E. Vervaet. The spring
ficos de dominio supone un reto, ya que se in- web flow home page. Avalaible at:
troducen una serie se problemas, como las va- http://opensource.atlassian.com/
lidaciones cruzadas de los modelos. Como tra- confluence/spring/display/WEBFLOW/
bajo futuro nos proponemos comprobar si las Home.
transformaciones horizontales que se han ca- [6] Eclipse. Eclipse Modeling Framework.
tegorizado en la sección 4 se pueden aligerar http://eclipse.org/emf/.
usando un lenguaje como EVL (Epsilon Va-
lidation Language) [17], que se usa para rea- [7] Eclipse-EMP-Project. Eclipse Mode-
lizar chequeos de consistencia entre múltiples ling Project. Avalaible at:http://www.
modelos, a diferencia de OCL, que solamente eclipse.org/modeling/, 2007.
realiza comprobaciones en un modelo en cada
momento. [8] Eclipse-MDT-Project. Model
Development Tool. Avalaible
Finalmente, otra línea de trabajo es la am- at:http://www.eclipse.org/modeling/
pliación de MWACSL, tratando con más pla- mdt/?project=ocl#ocl, 2007.
taformas de implementación, otros aspectos y
competencias navegacionales. En paralelo, pla- [9] Joerg Evermann. A meta-level specifica-
neamos llevar a cabo una fase de experimenta- tion and profile for aspectj in uml. In
ción, en la que se puedan cuantificar las ven- AOM ’07: Proceedings of the 10th in-
tajas de MWACSL. ternational workshop on Aspect-oriented

ISSN 1988–3455 SISTEDES 2010 26


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

modeling, pages 21–27, New York, NY, [16] James Kalbach. Designing Web Naviga-
USA, 2007. ACM Press. tion. O’Reilly Media, Inc., 2007.
[10] R. France, I. Ray, G. Georg, and [17] D. S. Kolovos, R. F. Paige, and F. A.C.
S. Ghosh. Aspect-oriented approach to Polack. Detecting and repairing inconsis-
early design modeling. IEE Software, tencies across heterogeneous models. In
151:173–186, June 2004. Proceedings of 2008 International Confe-
[11] S. Gordillo, G. Rossi, A. Moreira, J. Araú- rence on Software Testing, Verification,
jo, C. Vairetti, and M. Urbieta. Mode- and Validation (ICST08, pages 356–364.
ling and composing navigational concerns IEEE, 2008.
in web applications. requirements and de-
sign issues. In Proc. of the Fourth Latin [18] I. Kurtev, J. Bézivin, and M. Aksit.
American Web Congress, 2006. LA-Web Technological spaces: An initial apprai-
’06., pages 25–31, Oct. 2006. sal. In International. Federated Conf.
(DOA, ODBASE, CoopIS), Industrial
[12] E. A. Gorshkova and B. A. Novikov. Use Track, 2002.
of statechart diagrams for modeling of
hypertext. Programming and Computer [19] K.R.P.H. Leung, L.C.K. Hui, S.M. Yiu,
Software, 30(1):47–51, 2004. and R.W.M. Tang. Modelling web na-
vigation by statechart. In Proceedings
[13] Yan Han, Günter Kniesel, and Armin B.
of the 24th Annual International Compu-
Cremers. A meta model and modeling
ter Software and Applications Conference
notation for AspectJ. In Omar Alda-
(COMPSAC 2000),, October 2000.
wud, Grady Booch, Jeff Gray, Jörg Kienz-
le, Dominik Stein, Mohamed Kandé, Fai- [20] Cristina Videira Lopes. D: A Language
sal Akkawi, and Tzilla Elrad, editors, The Framework for Distributed Programming.
5th Aspect-Oriented Modeling Workshop PhD thesis, College of Computer Science,
In Conjunction with UML 2004, October Northeastern University, 1997.
2004.
[14] Anders Hessellund, Krzysztof Czarnecki, [21] Oracle Sun Developer Network. Javaser-
and Andrzej Wasowski. Guided develop- ver faces technology. http://java.sun.
ment with multiple domain-specific lan- com/javaee/javaserverfaces/, 2010.
guages. In Gregor Engels, Bill Opdy-
ke, Douglas C. Schmidt, and Frank Weil, [22] OMG. Meta object facility (mof) 2.0
editors, Proceedings of the Model Driven query/view/transformation specification.
Engineering Languages and Systems, 10th Technical report, OMG, Nov 2005.
International Conference, MoDELS 2007,
volume 4735 of Springer-Verlag Lecture [23] Ilka Philippow, Matthias Riebisch, and
Notes in Computer Science, pages 46–60. Kai Böllert. The Hyper/UML approach
Springer, 2007. for feature based software design. In
Omar Aldawud, Mohamed Kandé, Grady
[15] J. Nanard, G. Rossi, M. Nanard, S. Gor- Booch, Bill Harrison, Dominik Stein, Jeff
dillo, and L. Pérez. Concern-sensitive Gray, Siobhán Clarke, Aida Zakaria San-
navigation: Improving navigation in web teon, Peri Tarr, and Faisal Akkawi, edi-
software through separation of concerns. tors, The 4th AOSD Modeling With UML
In Proc. Conf. on Advanced Information Workshop, October 2003.
Systems Engineering (CAISE 08), volu-
me 5074, pages 420–434, Berlin, Heidel- [24] AspectJ Project. Aspectj home page.
berg, 2008. Springer-Verlag Lecture Notes Avalaible at: http://www.eclipse.org/
in Computer Science. aspectj/, 2009.

ISSN 1988–3455 SISTEDES 2010 27


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

[25] A. M. Reina Quintero and J. Torres Val- [29] A. Schauerhuber, M. Wimmer, E. Kap-
derrama. Metamodelling and transfor- sammer, W. Schwinger, and W. Retschit-
ming sitemaps for reconciling information zegger. Bridging webml to model-driven
architecture and navigation design. In engineering: from document type defini-
J. R. Romero, O. Avila-García, and V. Pe- tions to meta object facility. IET Softwa-
lechano, editors, Publicado en las Actas re, 1(3):81–97, 2007.
de los Talleres de las Jornadas de In-
geniería del Software y Bases de Datos [30] P. Valderas, V. Pelechano, G. Rossi, and
(TJISBD), volume 3. Sistedes, 2009. S. Gordillo. From crosscutting concerns
to web systems models. In Proceedings
[26] A. M. Reina Quintero and J. Torres Val- of the Web Information Systems Enginee-
derrama. Sitemaps from a model dri- ring (WISE 2007), volume 4831, pages
ven perspective. a first step for bridging 573–582. Springer-Verlag Lecture Notes
the gap between information architectu- in Computer Science, 2007.
re and navigation design. In Joaquim
Filipe and José Cordeiro, editors, WE- [31] E. Vervaet. The Definitive Guide to
BIST 2010. Proceedings of the 6th Inter- Spring Web Flow. APress, 2008.
national Conference on Web Information
Systems and Technology, volume 2, pages [32] Eelco Visser. Generative and Transfor-
111–117. INSTICC. Institute for Systems mational Techniques in Software Engi-
and Technologies of Information, Control neering II, volume 5235/2008 of LNCS,
and Communication, April 2010. ISBN: chapter WebDSL: A Case Study in
978-989-674-025-2. Domain-Specific Language Engineering,
pages 291–373. Springer Berlin / Heidel-
[27] A. M. Reina, M. Toro, and J. Torres. Ge- berg, 2008.
nerating domain specific aspect code for
navigation from platform specific models [33] M.A. Alba Winckler. StateWebCharts:
in mwacsl. In C. de la Riva J. Tuya A. Mo- a Formal Notation for Navigation Mode-
reira, M. J. Suárez-Cabal, editor, Publica- lling of Web Applications. PhD thesis,
do en las Actas de las XIII Jornadas de Institute de Recherche en Informatique de
Ingeniería del Software y Bases de Datos Toulouse, 2004.
(JISBD 08), pages 385–390. Sistedes, Oc-
tober 2008. [34] Gefei Zhang, Hubert Baumeister, Nora
Koch, and Alexander Knapp. Aspect-
[28] A. M. Reina, J. Torres, and M. Toro. El oriented modeling of access control in web
metamodelado de un framework: Spring applications. In Mohamed Kandé, Do-
web flow. In A. Vallecillo, V. Pelechano, minik Stein, Omar Aldawud, Tzilla El-
and A. Estévez, editors, Publicado en las rad, Jeff Gray, and Jörg Kienzle, editors,
Actas de los Talleres de las Jornadas de 6th International Workshop on Aspect-
Ingeniería del Software y Bases de Datos Oriented Modeling, March 2005.
(TJISBD), volume 1. Sistedes, 2007.

ISSN 1988–3455 SISTEDES 2010 28


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Mejorando el nivel de automatización en el desarrollo dirigido


por modelos de editores gráficos

Álvaro Jiménez Juan M. Vara Verónica Bollati Esperanza Marcos


Grupo de Investigación Kybele
Universidad Rey Juan Carlos
Madrid (España)

{alvaro.jimenez, juanmanuel.vara, veronica.bollati, esperanza.marcos}@urjc.es

Resumen especificar el sistema obviando detalles


En general, cualquier proceso de desarrollo tecnológicos. Dichos modelos serán refinados
dirigido por modelos implica la necesidad de semi-automáticamente por medio de
definir modelos con un alto nivel de detalle, ya transformaciones de modelos, hasta que su nivel
que los modelos acaban siendo un mapa del de abstracción permita utilizarlos para generar el
código final. No obstante, este nivel de código final.
complejidad suele resultar en modelos complejos Como cualquier otro paradigma de desarrollo
y difíciles de manejar, por lo que resulta software, la IDM debe proporcionar herramientas
conveniente disponer de editores gráficos que de soporte al proceso de desarrollo. En particular,
omitan los detalles y proporcionen una visión igual que disponemos de IDEs que facilitan las
global del modelo. Para este fin suelen utilizarse tareas de codificación con cualquier lenguaje de
editores basados en arcos y nodos (o programación, necesitamos de entornos que
diagramadores) que proporcionan una visión faciliten las tareas de edición de modelos. En este
general del modelo. Siendo otro artefacto software sentido, el elevado nivel de detalle que deben
más, no sólo es posible si no recomendable, tener los modelos que manejamos (especialmente
aplicar los principios de la Ingeniería Dirigida por los que son directamente traducidos a código
Modelos al desarrollo de estos editores con el fuente) y la naturaleza de los documentos que
objetivo de automatizar al máximo posible al almacenan dichos modelos (dialectos XML
proceso de desarrollo. Por todo ello, este trabajo generalmente) hacen muy recomendables los
revisa las propuestas existentes hasta la fecha para editores en forma de árbol (tree-based), para
el desarrollo dirigido por modelos de facilitar la edición avanzada de modelos [7]. El
diagramadores en EMF, el marco de ejemplo más conocido son los editores tree-based
(meta)modelado más aceptado a día de hoy, y que proporciona EMF, la plataforma de
presenta un prototipo que mejora el nivel de (meta)modelado más adoptada a día de hoy en el
automatización ofrecido por las propuestas ámbito de la IDM [11].
existentes. No obstante, precisamente el nivel de detalle
de estos editores es el que les hace poco
1. Introducción recomendables cuando el objetivo es simplemente
tener una visión global de los componentes del
sistema y de las relaciones entre ellos. Para este
La Ingeniería Dirigida por Modelos (IDM) es el
fin resultan mucho más apropiados los editores
último paso en la tendencia a elevar el nivel de
gráficos del tipo nodos y arcos (o cajas y flechas),
abstracción al que se diseña y construye el
también llamados diagramadores. Con estos
software. Los dos principios fundamentales de la
editores los desarrolladores pueden, por un lado,
IDM son: potenciar el rol de los modelos a lo
definir de forma gráfica un esqueleto del modelo
largo de todo el ciclo de vida del software y
por el método clásico de arrastrar y soltar (drag
potenciar el nivel de automatización en el proceso
and drop), y por otro, proporcionar una vista
de desarrollo [9]. Así, en un proceso de desarrollo
general del modelo al resto de implicados en el
dirigido por modelos partiremos de modelos con
proceso de desarrollo. Nótese que el uso de los
un alto nivel de abstracción que servirán para
dos tipos de editores no resulta excluyente, sino

ISSN 1988–3455 SISTEDES 2010 29


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

más bien al contrario, es recomendable que los 2. Desarrollo dirigido por modelos de
entornos para DSDM soporten distintas formas de diagramadores basados en EMF
presentar un mismo modelo de cara a mejorar la
usabilidad de la herramienta, uno de los Esta sección revisa las soluciones existentes a día
principales inconvenientes para la adopción del de hoy para soportar el desarrollo dirigido por
DSDM en los últimos años [10]. modelos de editores gráficos (de tipo
Por otra parte, la idea de usar modelos para diagramador) para modelos EMF. En particular
guiar u orientar el proceso de desarrollo no nos centraremos en cómo deben utilizarse, es
implica un gran cambio respecto a las prácticas decir, el proceso de desarrollo a seguir cuando se
clásicas. En realidad la novedad estriba en el papel utilizan estas herramientas, y su nivel de
central que juegan dichos modelos y sobre todo en automatización.
aumentar el nivel de automatización. De hecho, la
única forma de aprovechar al máximo las ventajas
que ofrece la IDM, en términos de desarrollos más 2.1. Graphical Modeling Framework (GMF)
rápidos y baratos, pasa por automatizar al máximo
posible las diferentes etapas del proceso de Como ya hemos mencionado, GMF es la base
desarrollo [1]. Automatizar el proceso implica tecnológica sobre la que operan el resto de
automatizar cada una de las tareas que lo propuestas estudiadas en este trabajo.
componen y la única forma de hacerlo es a través Concretamente, GMF es un plug-in de Eclipse que
de la construcción de herramientas de soporte. proporciona un componente generativo y una
Como consecuencia, en los últimos años han plataforma de ejecución para el desarrollo de la
aparecido numerosas herramientas para soportar infraestructura de editores gráficos basados en
las tareas relacionadas con la puesta en práctica de EMF y GEF (Graphical Editing Framework).
un proceso de DSDM. Así, se encuentran Básicamente, el proceso de generación de editores
herramientas para definir y utilizar nuevos con GMF consiste en especificar un conjunto de
lenguajes de modelado; herramientas o lenguajes modelos a partir de los cuales GMF generará
para desarrollar transformaciones de modelos; automáticamente el código Java que implementa
herramientas para asegurar que los modelos son el diagramador y que podrá ser utilizado como un
consistentes y correctos, etc. nuevo plugin de Eclipse. La Figura 1 detalla el
Por otro lado, dado que estas herramientas son proceso de desarrollo completo y los modelos que
también componentes software, lo ideal sería que se manejan en cada paso. Nótese la distinción
para su construcción también se siguieran los entre aquellos pasos que deben realizarse
principios de la IDM. Un ejemplo de esta práctica manualmente y aquellos que GMF realiza
es la idea de ver las transformaciones de modelos automáticamente.
como modelos de transformación [2], de manera 1. Definir el metamodelo (también llamado
que puedan transformarse, validarse o generarse modelo de dominio) del DSL (.ecore)
automáticamente, como cualquier otro modelo 2. Generar el modelo .genmodel a partir del
[14]. modelo .ecore. Este modelo contiene
En este trabajo combinamos la necesidad de información específica de la plataforma donde
disponer de diagramadores con la idea de aplicar se va a ejecutar la aplicación final y permite
la IDM para su desarrollo. En particular nos configurar cómo se llevará a cabo la
centramos en la tecnología disponible para el generación de código.
desarrollo (dirigido por modelos) de editores 3. Generar el código que implementa el editor
gráficos en EMF. Concretamente revisamos las tree-based a partir del modelo genmodel. Es
propuestas existentes, que giran todas en torno a importante tener en cuenta que gran parte del
GMF (Graphical Modelling Framework), el código del diagramador es directamente el
framework para generación de diagramadores para código del editor tree-based. Es decir, muchas
modelos EMF que proporciona el Eclipse de las características gráficas del diagramador,
Modelling Project [5] y presentamos una nueva como los editores de propiedades para cada
herramienta que aumenta el nivel de elemento del modelo, son heredadas del editor
automatización del proceso. tree-based.
4. Definición del modelo que especifica los
elementos gráficos que utilizaremos para

ISSN 1988–3455 SISTEDES 2010 30


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

representar los elementos del metamodelo


cuando lo “instanciemos” (.gmfgraph).

GMF Project

EMF Project
Domain
2 EMF
3 EMF editor
Generator
Model (tree-like)
1 Model
.ecore .genmodel

Graphical
* Enel resultado
la mayoría de los casos,
no es correcto
Mapping
Model Model
4 6 7
.gmfmap
.gmfgraph

8
GMF
Tooling
Generator
9 GMF editor
Model (diagrammer)
5 Model
.gmfgen
.gmftool

Ejecución Manual Automático


LEYENDA

Figura 1. Proceso de Desarrollo de un editor gráfico usando GMF

5. Definición del modelo que permite especificar orden concreto. Otro problema inherente a GMF
los componentes de la paleta de herramientas es su respuesta ante la evolución del metamodelo
del editor (gmftool). del DSL. En estos casos, dependiendo de la
6. Generación del modelo de correspondencias naturaleza de los cambios, es muy probable que
(.gmfmap) entre los elementos gráficos, los sea necesario volver a generar y refinar el modelo
controles de la paleta y los elementos del de correspondencias, ya que los cambios
metamodelo de nuestro DSL. Para ello GMF realizados durante el refinamiento no fueron
proporciona un asistente que genera este almacenados durante el proceso. Igualmente,
modelo a partir de los anteriores. conviene mencionar que la documentación
7. Es habitual que las correspondencias disponible no es mucha y sobre todo, la
recogidas en el modelo generado no sean complejidad y opacidad del código generado, que
correctas, con lo que es necesario refinar dificulta la tarea de modificarlo cuando se quiere
dicho modelo manualmente. que el diagramador soporte funcionalidades
8. Generar el modelo generador de GMF alejadas de las tradicionales.
(.gmfgen) a partir del modelo de
correspondencias. 2.2. GenGMF
9. Generar el código Java que implementa el
diagramador. GenGMF [4] es una herramienta construida sobre
GMF proporciona un buen entorno para la EMF y GMF, cuya base teórica es la idea de que
generación automática de diagramadores, como en muchos casos las representaciones de los
prueba el hecho de que sea la base tecnológica del distintos elementos varían en pequeños detalles,
resto de propuestas que se estudian en este trabajo como por ejemplo el color, provocando que el
y de la contribución que presentamos. No desarrollador tenga que definir cada una de esas
obstante, el proceso de desarrollo que soporta no representaciones de forma independiente, dando
resulta trivial ni intuitivo, especialmente para lugar a modelos de gran tamaño y con
desarrolladores inexpertos. Esta complejidad se información duplicada.
debe fundamentalmente a la complejidad de los Para solventar este problema GenGMF
modelos asociados (gmfgraph, gmftool y propone utilizar un nuevo modelo denominado
gmfmap) y la cantidad de pasos que se deben gengmf. El objetivo de este modelo es definir
llevar a cabo de forma secuencial y siguiendo un

ISSN 1988–3455 SISTEDES 2010 31


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

plantillas que contendrían la información que modelo gráfico (gmfgraph) y el modelo de


comparten diferentes representaciones gráficas y correspondencias (gmfmap). Así, el nuevo modelo
descriptores que realizan un mapeo entre las introducido es una forma de guiar la generación
plantillas definidas, los elementos del metamodelo del modelo de correspondencias, que es
(ecore) y los elementos que compondrán la paleta probablemente el más importante de todo el
de herramientas (gmftool). proceso de desarrollo.
Tal como muestra la Figura 2, a partir de este
nuevo modelo se genera de forma automática el

GMF Project

EMF Project
Domain
2 EMF
3 EMF editor
Generator
Model (tree-like)
1 Model
.ecore .genmodel

GenGMF Mapping
Model
4 6 Model
.gmfmap
.gengmf
Graphical
Model
7
GMF
Tooling GMF editor
Generator
Model (diagrammer)
5 Model 8
.gmfgen
.gmftool .gmfgraph

Ejecución Manual Automático


LEYENDA

Figura 2. Proceso de Desarrollo de un editor gráfico usando GenGMF

Con todo ello, podemos concluir que GenGMF no un lenguaje imperativo que permite crear,
soluciona los problemas detectados al evaluar consultar y modificar modelos EMF.
GMF, ya que la inclusión del nuevo modelo tan Además de esta familia de lenguajes, Epsilon
sólo permite automatizar una pequeña parte de proporciona varias facilidades para llevar a cabo
todo el proceso. No obstante, GenGMF sí tareas comunes en el marco de la IDM. Una de
proporciona algunas ideas ventajosas (que de ellas es EuGENia, una herramienta para
hecho estábamos explotando antes de la aparición simplificar el desarrollo de editores GMF [3].
de este proyecto) como el empleo de plantillas o la A partir del metamodelo ecore, o su
definición de un modelo que contenga especificación textual con Emfatic [6], EuGENia
información suficiente para generar de forma genera automáticamente los modelos gmfgraph,
automática otros modelos implicados en el gmftool y gmfmap. Para generar estos modelos, es
proceso. necesario haber anotado previamente el
metamodelo utilizando un conjunto de
2.3. EuGENia anotaciones predefinidas. EuGENia utiliza dichas
anotaciones para saber cuál queremos que sea la
Epsilon es una plataforma para la construcción de representación gráfica de un elemento concreto o
DSLs para tareas relacionadas con la gestión de el control correspondiente en la paleta de
modelos [8] que incluye varios lenguajes para herramientas. No obstante, un conjunto
tareas como la transformación (ETL) o la predefinido de anotaciones no suele ser suficiente
validación de modelos (EVL). A su vez, la base de para que el editor generado tenga exactamente las
la plataforma es EOL (Epsilon Object Language), características y comportamiento deseados. Por
ello, EuGENia es capaz también de procesar tres

ISSN 1988–3455 SISTEDES 2010 32


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

ficheros EOL (Ecore2GMF.eol, FixGenModel.eol La Figura 3 resume el proceso de desarrollo


y FixGMFGen.eol) que permiten personalizar el para generar un diagramador con EuGENia.
editor.
GMF Project
Domain EMF Project
Domain
Model
Model
1 (EMFATIC)
.emf

.ecore
EMF
Annotated 2 Generator
3 EMF editor
(tree-like)
Model
.genmodel Synchronize
genmodel - ecore 6

Graphical
5 Model

.gmfgraph

Customization Tooling
4 Models Model

.gmftool

Mapping
Model

.gmfmap
7
8 GMF 9 GMF editor
Synchronize
gmfgen - ecore
Generator
(diagrammer)
Model

.gmfgen

Ejecución Manual Automático


LEYENDA

Figura 3. Proceso de Desarrollo de un editor gráfico usando EuGENia

Nótese que los pasos 1, 2 y 3 son los mismos que de GMF (GMFgen) y el código Java que
se detallaban al hablar de GMF. implementa el diagramador. Además, el uso de
4. Definir los ficheros de personalización Eugenia añade dos nuevas tareas al proceso: la
codificados en lenguaje EOL. sincronización de los modelos genmodel y
5. Generar, a partir del modelo ecore y los gmfgen con el metamodelo ecore. No obstante, las
ficheros de personalización, los modelos GMF mejoras aportadas por EuGENia sirven de base
(gmfgraph, gmftool y gmfmap). para la propuesta de este trabajo.
6. Sincronizar los modelos ecore y genmodel.
7. Generar, a partir del modelo de mapeo, el 3. Kybele GMF Generator
modelo generador de GMF (gmfgen).
8. Sincronización de los modelos ecore y En las secciones anteriores se ha planteado la
gmfgen.
importancia de automatizar el proceso de
9. Generar el código Java que implementa el desarrollo de diagramadores en el contexto de la
diagramador. IDM y se han mostrado algunas de las
Así, EuGENia no sólo reduce el número de herramientas que han surgido para soportar esta
modelos que debe definir el desarrollador, sino
tarea. Igualmente, en el marco de trabajos
que, además permite la reutilización de los anteriores a la aparición de GenGMF habíamos
ficheros de personalización (o al menos parte de identificado ya esta necesidad, empezando a
ellos) en diferentes desarrollos. Sin embargo, a trabajar para dar respuesta al problema [13].
pesar de estas mejoras el proceso de generación
En esta tercera sección presentamos
no es completamente automático, pues el KybeleGMFgen (Kybele GMF Generator),
desarrollador sigue siendo el encargado de generar nuestra contribución para soportar la generación
el editor tree-based de EMF, el modelo generador automática de diagramadores para modelos EMF.

ISSN 1988–3455 SISTEDES 2010 33


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Nuestra solución, que está basada en GMF y estos cinco lanzadores en un único lanzador, de
Eugenia, pretende explotar las ventajas forma que podamos aprovechar las ventajas que
proporcionadas por estas herramientas y proporciona la herramienta de Epsilon mientras
solucionar su principal desventaja, que no es otra reducimos los pasos a seguir para generar el
que el número de tareas que el desarrollador debe diagramador. El siguiente paso para aumentar el
realizar manualmente. grado de automatización del proceso pasa por
liberar al usuario de las tareas relativas al
Reducción del número de tareas a realizar por desarrollo del editor tree-based de EMF. Para ello,
el desarrollador. A través de menús contextuales,
bastará con que la herramienta realice de forma
EuGENia proporciona un conjunto de lanzadores
automática las tareas 2 y 3. Con todo, el proceso
para llevar a cabo las tareas 5, 6 y 8 de la Figura 3,
de generación de un diagramador GMF utilizando
mientras que GMF proporciona lanzadores para
KybeleGMFGen se reduce a los tres pasos
las tareas 7 y 9. La primera mejora que propone
mostrados en la Figura 4.
KybeleGMFgen es recoger la funcionalidad de

Domain 1 GMF Project


Model
(EMFATIC)
EMF
.emf EMF editor
Generator
(tree-like)
Model
.genmodel Synchronize
genmodel - ecore

Graphical
Model
Domain OR
Model
(ECORE) 1 3
.gmfgraph

Tooling
.ecore
Annotated Model

.gmftool

Mapping
Model

2 .gmfmap

Customization
Models
GMF
GMF editor
Generator
(diagrammer)
Model
Synchronize
gmfgen - ecore
.gmfgen

Ejecución Manual Automático


LEYENDA

Figura 4. Proceso de Desarrollo de un editor gráfico usando Kybele GMF Generator

1. Definir el metamodelo del DSL modelo sobre el cual se invoca el lanzador y en


2. Codificar los ficheros de personalización EOL caso de tratarse de un fichero con extensión .emf
3. Generar el código que implementa el editor (Emfatic) genera de forma automática el modelo
tree-based de EMF y el diagramador GMF (así ecore.
como los modelos intermedios) utilizando el
lanzador de KybeleGMFgen 3.1. Caso de Estudio
Además, el proceso de generación con
KybeleGMFGen también puede partir de la Como caso de estudio (descargable desde
especificación textual del metamodelo con http://kybelegmfgen.googlecode.com/svn/trunk/ex
Emfatic, pero al contrario que sucede en Eugenia, amples/Oracle10g_DSDM2010/), esta sección
no es necesario generar el metamodelo ecore antes muestra el uso de KybeleGMFGen para la
de lanzar la generación de los editores. La generación de un diagramador para una versión
herramienta detecta automáticamente el tipo de muy simplificada del DSL para el modelado de

ISSN 1988–3455 SISTEDES 2010 34


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Bases de Datos Objeto-Relacionales en Oracle mostrado en la parte izquierda de la Figura 5


10g presentado en [12]. En particular se obtiene (nótese que alternativamente podíamos haber
un diagramador para modelar tipos estructurados partido de la especificación textual del
y tablas tipadas, de acuerdo al metamodelo metamodelo con Emfatic).

(a) (b)

Figura 5. (a) Metamodelo simplificado para modelado de BDOR en Oracle 10g


(b) Vista parcial del metamodelo anotado

Una vez definido el metamodelo, añadimos un definir algunos elementos gráficos, configurar la
conjunto de anotaciones GMF para dirigir el paleta de herramientas y especificar las
proceso de generación tal como muestra la parte correspondencias entre los elementos de los
derecha de la Figura 5. Por ejemplo, indicamos modelos GMF.
que la representación de los objetos Model será el Para facilitar la tarea de codificar ficheros de
diagrama completo y que los objetos Structured personalización hemos elaborado una librería de
Type y TypedTable se representarán como nodos operaciones comunes que se recogen en el fichero
en el diagrama, que incluirán unas etiquetas, etc. Operations.eol y proporciona operaciones como la
En este punto podríamos generar directamente creación de etiquetas con un formato predefinido
el diagramador, pero obtendríamos un editor muy para representar estereotipos; inserción de
simple que solo permitiría “dibujar” cajas que compartimentos; inclusión de controles en la
representaran tipos estructurados y tablas tipadas. paleta de herramientas; definición de
Para obtener un editor más complejo codificamos correspondencias, etc. La Figura 6 muestra una
los ficheros de personalización (Ecore2GMF.eol, pequeña parte del fichero de personalización
FixGenModel.eol y FixGMFGen.eol). En este utilizado en el caso de estudio.
caso, utilizaremos el fichero Ecore2GMF.eol para

Figura 6. Fichero de Personalización Ecore2GMF.eol

ISSN 1988–3455 SISTEDES 2010 35


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

En particular, las líneas 22 a 36 muestran cómo se Una vez codificado el fichero de


personaliza la representación gráfica de los tipos personalización, invocamos la generación
estructurados. Para ello se crea la etiqueta automática que soporta KybeleGMFgen,
newLabel que contendrá el estereotipo <<udt>> invocando la opción „Generate GMF editor code‟
(createStereotypeLabel) y los rectángulos desde el menú contextual del metamodelo ecore
udt_rec1 and udt_rec2 donde se alojarán los (Figura 7 (a)). La herramienta informará sobre el
compartimentos asociados a los atributos y resultado del proceso y a partir de ese momento
métodos del tipo estructurado. podemos utilizar el nuevo diagramador, tal como
muestra la Figura 7 (b).

(a) (b)

Figura 7. (a) Invocación de la generación con KybeleGMFgen. (b) Ejemplo de uso del diagramador

personalización están codificadas en los ficheros


4. Conclusiones y Trabajos Futuros EOL, el trabajo de personalización del editor no se
perderá. De hecho, al regenerar el editor, se
En este trabajo hemos revisado las propuestas ejecutan de nuevo los ficheros EOL, aplicando
todas las opciones de personalización sobre la
existentes para soportar el desarrollo dirigido por
modelos de diagramadores para modelos EMF. En nueva versión del diagramador, funcional para la
dicha revisión nos hemos centrado en estudiar el nueva versión del metamodelo. No obstante,
proceso de desarrollo que soporta cada una, aunque la herramienta permite automatizar
aproximadamente un 80% del proceso de
constatando que eran susceptibles de mejora en
cuanto al nivel de automatización. Así, hemos desarrollo, no exime al desarrollador de conocer
presentado KybeleGMFGen, una propuesta EMF y GMF si desea obtener diagramadores con
basada en algunos de los trabajos analizados que funcionalidades muy concretas. Aunque podría
ayudarse de otras herramientas para tal fin. Por
implementa dicha mejora, incrementando
notablemente el nivel de automatización. ejemplo, si quisiera incluir soporte para validar los
Finalmente hemos mostrado su utilización modelos elaborados con el diagramador, podría
mediante un caso de uso sencillo. La herramienta utilizar EVL (Epsilon Validation Language) para
es totalmente operativa y se puede descargar definir restricciones sobre el metamodelo del
desde: DSL, que luego se comprobarían sobre los
modelos terminales.
Update-Site:
Por otro lado, tal y como hemos mencionado,
http://cerbero.escet.urjc.es:81/KybeleGMFgen-
se ha optado por construir una librería de
UpdateSite
operaciones típicas de personalización que puede
SVN (Código Fuente): invocarse luego desde cualquier fichero EOL. De
http://kybelegmfgen.googlecode.com/svn/trunk
esta forma se favorece la reutilización y se
Al automatizar completamente el proceso de
simplifica la tarea de personalización. De hecho,
generación del diagramador evitamos tener que
la primera dirección que se plantea para trabajo
reconciliar los cambios introducidos en nuevas
futuro es la definición de un conjunto de plantillas
versiones del metamodelo con los modelos GMF
básicas, que junto a una API para utilizar las
intermedios que dirigen el proceso de generación.
librerías de personalización, faciliten al
Usando KybeleGMFGen introducimos los
desarrollador la definición de personalizaciones
cambios en el metamodelo y lanzamos la
ad-hoc.
generación. Como todas las opciones de

ISSN 1988–3455 SISTEDES 2010 36


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

La otra dirección en la que ya hemos [4] GenGMF Blog: http://gengmf.randomice.net/


empezado a trabajar pasa por eliminar las [5] Gronback, R. C. (2009). Eclipse Modeling
anotaciones GMF del metamodelo, pues dichas Project: A Domain-Specific Language (DSL)
anotaciones están contaminando el metamodelo Toolkit: Addison-Wesley Professional.
con información que no es propia del dominio que [6] IBM. (2004). Emfatic Language for EMF
representa. Así, estamos empezando a utilizar Development.
modelos de weaving como modelos de anotación. http://www.alphaworks.ibm.com/tech/emfatic.
Adicionalmente, trabajando de esta forma [7] Irrazábal, E. Vara, J.M, Bollati, V. & Marcos,
podemos definir diferentes modelos de anotación E. Gestión de Tipos Primitivos en propuestas
para un mismo metamodelo, lo que permitirá de DSDM. Taller de Desarrollo de Software
generar distintos editores (es decir, distintas Dirigido por Modelos (DSDM 2009).
representaciones) para un mismo metamodelo sin [8] Kolovos, D., Paige, R., Rose, L., & Polack, F.
ningún esfuerzo adicional. (2008). The Epsilon Book.
http://www.eclipse.org/gmt/epsilon/doc/book/
Agradecimientos [9] Schmidt, D. C. (2006). Model Driven
Este trabajo se ha realizado en el marco de los siguientes Engineering. IEEE Computer, Vol. 39, No. 2,
proyectos: MODEL-CAOS (TIN2008-03582/TIN), pp. 41 - 47.
AGREEMENT-TECHNOLOGY (CSD2007-0022) [10] Selic, B. (2008). MDA Manifestations.
financiados por el Ministerio Español de Educación y UPGRADE, IX(2), 12-16.
Ciencia, el proyecto IDONEO (PAC08-0160-6141) [11] Steinberg, D., Budinsky, F., Paternostro, M.,
financiado por la Consejería de Ciencia y Tecnología de & Merks, E. EMF: EclipseModelling
la Junta de Comunidades de Castilla-La Mancha y el
subprograma de Personal Técnico de Apoyo (MICINN-
Framework, 2nd Edition. Addison-Wesley
PTA - 2009), perteneciente al Programa Nacional De Proffesional. 2008.
Contratación e Incorporación de RRHH cofinanciado [12] Vara, J. M., Vela, B., Bollati, V., Marcos, E.
por el Ministerio de Ciencia e Innovación. (2009). Supporting Model-Driven
Development of Object-Relational Database
Referencias Schemas: a Case Study. ICMT2009, Zurich,
Switzerland.
[13] Vara, J. M. (2009). M2DAT: A Technical
[1] Atkinson, C., & Kuhne, T. (2003). Model-
Solution for Model-Driven Development of
driven development: a metamodelling
Web Information Systems. Ph.D. Thesis.
foundation. IEEE Software, 20(5).
Universidad Rey Juan Carlos, Madrid.
[2] Bézivin, J., Büttner, F., Gogolla, M., Jouault,
[14] Van Gorp, P. (2008). Model-Driven
F., Kurtev, I., & Lindow, A. (2006). Model
Development of Model Transformations.
Transformations? Transformation Models!
Paper presented at the 4th International
9th International Conference on Model Driven
Conference on Graph Transformations ICGT
Engineering Languages and Systems,
2008, Leicester, United Kingdom
MoDELS 2006, Genève, Italy.
[3] EuGENia GMF Tutorial.
http://www.eclipse.org/gmt/epsilon/doc/article
s/eugenia-gmf-tutorial/

ISSN 1988–3455 SISTEDES 2010 37


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Ingeniería inversa de eventos GUI en aplicaciones RAD mediante MDD


Óscar Sánchez Ramón Jesús Sánchez Cuadrado Jesús García Molina
Facultad de Informática Facultad de Informática Facultad de Informática
Universidad de Murcia Universidad de Murcia Universidad de Murcia
osanchez@um.es jesusc@um.es jmolina@um.es

Resumen Cuando se realiza una migración entre


plataformas, es necesario considerar todos los
La migración del código de manejo de even- componentes de la arquitectura software de la
tos de la interfaz gráca de usuario (GUI) es aplicación existente. El componente relaciona-
uno de los retos que deben afrontarse cuan- do con interfaz gráca de usuario (GUI) es fun-
do se aborda la modernización de un sistema damental en la mayoría de arquitecturas, y su
heredado desarrollado con un entorno Rapid migración requiere considerar varios aspectos,
Application Development (RAD). Esta tarea como la disposición de los controles grácos
conlleva varias dicultades, pues frecuente- ( layout ) y el manejo de eventos. El primer as-
mente implica un cambio de lenguaje de pro- pecto se ha tratado en un trabajo previo [1], y
gramación o tecnología, y un cambio en la ar- este trabajo se centrará en el segundo aspecto
quitectura del sistema, dado que las aplica- en el contexto de la migración de aplicaciones
ciones desarrolladas en entornos RAD no con- RAD.
templan una separación de la arquitectura en
Las tecnologías de desarrollo de GUI uti-
capas. En este trabajo proponemos una aprox-
lizan modelos de eventos para permitir la in-
imación MDD para realizar ingeniería inversa
teracción del usuario con la aplicación (por
de los eventos GUI de aplicaciones RAD, con
ejemplo, en Java la librería Swing usa el Mod-
el objetivo de obtener información acerca del
elo de Delegación de Eventos). En el caso de
código original que sea de utilidad para un pos-
la tecnología RAD, el modelo de eventos es
terior proceso de rediseño e ingeniería directa.
simple y normalmente y los manejadores de
evento se asocian directamente a los compo-
nentes. Sin embargo, cada entorno dene un
1. Introducción
conjunto de eventos propios, y el lenguaje y

En la actualidad existe un gran número de las facilidades de que se dispone para denir

aplicaciones heredadas que fueron construidas las acciones asociadas son dependientes de la

con entornos RAD ( Rapid Application Devel- tecnología.

opment ), tales como Oracle Forms 6 o Bor- Una característica de los entornos RAD es
land Delphi 5, y que están siendo migradas a que el código de los eventos puede interac-
plataformas más modernas. Estas migraciones cionar directamente con una base de datos, sin
son realizadas manualmente en la mayoría de necesidad de invocar a funciones de la lógica
los casos. Recientemente ha emergido la Mod- de negocio que se encarguen de dicha tarea.
ernización Dirigida por Modelos, como forma Esto supone un problema cuando pretendemos
de conseguir automatizar las tareas propias de abordar la modernización de este código, dado
los procesos de evolución de software a través que hoy en día es una práctica habitual separar
de la aplicación de las técnicas básicas del De- las aplicaciones en capas con el n de facilitar
sarrollo Dirigido por Modelos ( Model Driven el mantenimiento, legibilidad y extensibilidad
Development, MDD). de la aplicación.

ISSN 1988–3455 SISTEDES 2010 38


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Refinamiento

DECLARE
DECL n Number;
DECL val
VARCHAR2(50);
BEGIN M2M
n := 1;
SELECT value
INTO val
FROM mappings
T2M M2M
Modelo Abstracto
Código Fuente Modelo de Código
de Eventos
(PL/SQL) (PL/SQL)

DECLARE
DECL n Number;
DECL val
VARCHAR2(50);
BEGIN
n := 1;
SELECT value

M2M
INTO val
FROM mappings

Patrones
Usuario Repositorio de
conformes
al DSL patrones
(patrones Forms)

Figura 1: Arquitectura para realizar ingeniería inversa de eventos de GUI

Es deseable, por tanto, analizar los eventos cionado, y las conclusiones y trabajo futuro.
de GUI y disponer de una representación de
los mismos que sea independiente de entornos, 2. Visión general de la arquitectura
lenguajes y tecnologías, que pueda ser fácil-
mente estructurada en capas, y que en deniti- La arquitectura de modelos propuesta para
va contenga toda la información que sea posi- realizar el proceso de ingeniería inversa del
ble deducir del código fuente con el objetivo código de manejo de eventos en aplicaciones
de automatizar los procesos de generación de RAD se muestra en la Figura 1. Aunque es-
nuevas aplicaciones en la mayor medida posi- ta arquitectura esta orientada a la extracción
ble. del comportamiento de los eventos de Oracle
Por tanto, el propósito de este trabajo es Forms y PL/SQL, el esquema puede ser gen-
mostrar una aproximación de Modernización eralizado para otras tecnologías RAD.
Dirigida por Modelos para aplicar ingeniería En primer lugar, partimos de código de la
inversa de los eventos de aplicaciones RAD aplicación RAD original, código PL/SQL de
destinada a facilitar la migración a otras Oracle Forms en nuestro caso. El código se in-
plataformas, lo que nos permitirá la automati- yecta en un modelo que lo representa mediante
zación total o parcial del proceso. Se propone una transformación texto a modelo( T2M ), y
una representación independiente del lengua- que conformará con un metamodelo de la sin-
je para el código de manejo de eventos, y un taxis abstracta de PL/SQL.
DSL para establecer la correspondencia entre El segundo paso consiste en obtener el mod-
patrones código y tal representación. También, elo abstracto de eventos, que se utiliza para:
se describen varias usos de esta representación i) representar el código fuente de forma inde-
al automatizar la ingeniería inversa. pendiente a lenguajes y tecnologías, mediante
La sección 2 se muestra una visión gener- acciones habituales en los entornos RAD (co-
al de la arquitectura de modelos para realizar mo por ejemplo leer de la interfaz o escribir
el proceso de ingeniería inversa. La sección 3 en base de datos), y ii) eliminar detalles que
muestra el metamodelo empleado para repre- son superuos para analizar el comportamien-
sentar la información extraída de los eventos, to de los eventos. La obtención de un mod-
en la sección 4 se describe el DSL de patrones, elo abstracto de eventos a partir del modelo
y en la sección 5 se describen varios ejemp- de código PL/SQL se consigue mediante una
los de aplicación. Las secciones 6 y 7 nalizan transformación modelo a modelo (M2M). Co-
presentando respectivamente el trabajo rela- mo explicaremos más adelante, a su vez esta

ISSN 1988–3455 SISTEDES 2010 39


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

ModelRoot
1 1 0..n
EventDefinition
1
+ targetElement
RADReadable
0..n in 1
0..n 0..n 0..n 0..n
RADVariable RADAction
0..1 out 0..n

UIVar DBVar TempVar PredefinedVar ReadFromDB WriteToUI ManipulateData ControlFlow

Figura 2: Metamodelo abstracto de eventos

transformación se obtiene automáticamente a ejemplo cuál es la funcionalidad concreta de


través de otra transformación modelo a mode- una operación de tratamiento de enteros), con
lo que toma como entrada un modelo que rep- lo cuál se simplica el posterior análisis de los
resenta un conjunto de patrones que estable- mismos. En la Figura 2 se muestra de forma
cen reglas para construir el modelo abstracto simplicada el metamodelo al que conforman
de eventos a partir del modelo de código. los modelos abstractos de eventos.
La siguiente etapa del proceso consiste en Principalmente distinguimos dos elementos
renar el modelo abstracto de eventos. El ob- en el metamodelo: variables (RADVariable )
jetivo es inferir información adicional acerca de y acciones (RADAction ). Las primeras son
los eventos, y representarla de forma explícita los datos que el evento maneja, mientras que
en el propio modelo abstracto de eventos. A las segundas son primitivas que utilizan esos
partir del modelo renado es posible realizar datos. En base a la proveniencia de los datos
diversas tareas de reingeniería, como gener- tendremos los siguientes tipos de variables:
ar informes y visualizaciones, restructurar el
código o generar esqueletos de código (autom- • Variables temporales (TempVar ), que
atización parcial de la migración). son variables locales a los eventos y que se
utilizan para almacenar datos que resul-
La infraestructura se está desarrollando en
tan de lecturas y manipulaciones de datos.
la plataforma Eclipse, utilizado Ecore co-
mo lenguaje de metamodelado, Gra2MoL [3]
• Variables predenidas ( Predened-
para inyectar código PL/SQL en modelos, y
Var ), son variables globales que tienen
RubyTL [4] para realizar las transformaciones
una semántica predenida en un entorno
modelo a modelo.
o tecnología.

3. Representación de los eventos a


• Variables de interfaz (UIVar ), que rep-
resentan los controles de la interfaz grá-
alto nivel
ca.

El modelo abstracto de eventos se utiliza • Variables de base de datos (DBVar ),


para representar los eventos GUI a alto niv- que representan un recurso que permite
el. Tiene dos características principales: per- interaccionar con una base de datos, como
mite representar las acciones de los eventos puede ser un origen de datos.
con independencia de lenguajes y tecnologías,
y omite detalles que no son relevantes para Igualmente, distinguimos diferentes tipos de
analizar el comportamiento del evento (por primitivas para representar acciones. En el

ISSN 1988–3455 SISTEDES 2010 40


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Primitiva Signicado
ReadFromUI Lee un valor de un control de la GUI
WriteToUI Modica un valor de un control de la GUI
WriteToVar Escribe un valor en una variable temporal
ReadFromDB Lee valores de base de datos
ModifyUI Modica atributos grácos de los controles de la GUI
ManipulateData Realiza una operación sobre datos, por ejemplo, la obtención de una subcadena en
base a una cadena
SelectionFlow Control de ujo selectivo
ShowMessage Muestra una ventana modal emergente
Invoke Invoca a una función o procedimiento

Cuadro 1: Primitivas semánticas

cuadro 1 se muestran algunas de las primitivas elo propio que represente el código de forma
identicadas. Las primitivas se aplican sobre independiente de la plataforma, o utilizando
una o más variables de entrada, y si se tra- un metamodelo estándar como KDM [7] para
ta de una operación de escritura, tendrán una este n.
variable de salida asociada (referencia out ). El elemento ModelRoot actua como raíz del
Además, como se observa en el metamodelo, metamodelo, y contiene los eventos ( EventDef-
la entrada de una primitiva (dependencia in inition ), así como las variables globales a los
entre RADAction y RADReadable ) puede ser éstos, de modo que las variables de interfaz,
otra primitiva, lo que permite componer las las de base de datos y las predenidas puedan
primitivas para expresar acciones más com- ser reutilizadas. La metaclase EventDenition
plejas de un modo más compacto, esto es, sin tiene un nombre, untipo de evento, está aso-
necesidad de utilizar variables temporales para ciada al elemento targetElement que dispara
almacenar el resultado de otras primitivas. Es- el evento (normalmente un control de la inter-
ta representación mantiene, en cierta medida, faz), y contienen las variables y acciones que
la estructura del código original lo que facil- denen el comportamiento a realizar cuando
itará análisis de grano grueso. Otras repre- se activa el evento.
sentaciones más atómicas (como SSA [9] [10])
son útiles para análisis de grano no, y serán
4. Abstracción de código mediante
consideradas en futuros trabajos.
un DSL de patrones
Estas primitivas conforman un subconjun-
to básico suciente para comprender la fun- Para obtener el modelo abstracto de eventos
cionalidad del evento a alto nivel. Sin embargo, a partir del modelo de código fuente, la aproxi-
si en fases posteriores del proceso de modern- mación directa sería crear una transformación
ización pretendemos generar código a partir de modelo a modelo. Sin embargo, este enfoque
los eventos, necesitamos anar más en la es- presenta dos problemas fundamentales: a) el
pecicación de algunas de las primitivas para codigo de la transformación sería muy verboso,
incluir información más detallada. Por ejemp- b) incorporar nuevos casos de análisis impli-
lo, sería necesario modelar las condiciones de caría modicar la transformación.
las primitivas de control, o la funcionalidad de Para superar estas desventajas, se ha dis-
las primitivas de manipulación de datos. Con eñado un DSL para establecer corresponden-
el objetivo de representar toda la información cias entre patrones de código PL/SQL y prim-
del sistema original, en un futuro se evaluará itivas del modelo abstracto de eventos. La
la posibilidad de relacionar el metamodelo ab- dinámica consiste en aplicar los patrones so-
stracto de eventos con el metamodelo de la tec- bre el código de los manejadores de eventos
nología fuente, ya sea mediante un metamod- del sistema heredado, de modo que para ca-

ISSN 1988–3455 SISTEDES 2010 41


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

«from SemanticActions»
«from PL/SQL» source FormsPattern target RADAction
Statement 1..n 1..n

«from PL/SQL» «from PL/SQL»


«from PL/SQL»
Expression Variable
Statement
«Datatype»
GenericVariable OpType
GenericExpression
GenericStatement +id: string AND
+varGroup: string +pattern: RegExpr OR

«from EventAbstractMM» RegExpr


RADVariable

SimpleRegExpr CompositeRegExpr
+not: boolean +operator: OpType
GenericVariable GenericVarGroup
+expr: string
+id: string +id: string
1..n

Figura 3: Metamodelo de la sintaxis abstracta del DSL de patrones.

da patrón concordado se genera un fragmento turo se pretende separar la compilación de los


de código de primitivas de alto nivel. Cuando patrones de la sintaxis concreta utilizada, con
existan varios patrones posibles, se informará el n de usar el mismo compilador con difer-
al desarrollador para que seleccione una de las entes lenguajes. El DSL de denición de pa-
alternativas, siendo por tanto un proceso semi- trones podría ser generado automáticamente
automático. a partir de la gramática, lo que evitaría tener

Con el objetivo de denir los patrones de que realizar un DSL manualmente para cada

forma concisa, se pretende que una sola sen- tecnología origen.

tencia del DSL empareje con un trozo de mod- La sintaxis abstracta del DSL corresponde
elo de sintaxis abstracta mediante el uso de co- al metamodelo que aparece en la Figura 3.
modines (por comodin entendemos un elemen- El metamodelo hace corresponder un conjun-
to que permite emparejar una parte cualquiera to de sentencias PL/SQL con un conjunto de
del modelo de código). Además, se ha decidido primitivas. Este metamodelo tiene referencias
extender la propia sintaxis de PL/SQL para cruzadas con el metamodelo de PL/SQL, de
facilitar la escritura de los patrones, pues es modo que las metaclases Statement, Expres-
menos verboso que utilizar la sintaxis abstrac- sion y Variable representan sentencias, ex-
ta. presiones y variables de PL/SQL respectiva-

Para facilitar la extensibilidad se ha denido mente.

un repositorio de patrones (escritos con el En ocasiones ocurre que para denir los pa-
DSL). Así, es posible incorporar de un modo trones necesitamos especicar que algunos el-
sencillo nuevos patrones que sean dependientes ementos de un trozo de código no son rele-
de las convenciones de las empresas de desar- Generic-
vantes. Por esta razón, las metaclases
rollo, sin necesidad de modicar las transfor- Statement, GenericExpression y GenericVari-
maciones. able han sido denidas para actuar como co-
Se observa que tanto el DSL y el repositorio modines al expresar los patrones. Generic-
de patrones son dependientes de la tecnología Variable puede tener un identicador (id ) para
origen del proceso de modernización. En el fu- referirse a la misma variable en otra parte del

ISSN 1988–3455 SISTEDES 2010 42


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Patrón PL/SQL (parte izquierda) Primitivas (parte derecha)


IF GenericExpression(varGroup=V) SelectionFlow(GenericVarGroup(id=V) ) {
THEN statements END statements }
SELECT -
WriteToUI(ReadFromDB(
INTO GenericVariable(id=X,
GenericVarGroup(id=V) ),
pattern=:*.* AND NOT :system.*)
GenericVariable(id=X) )
FROM - WHERE GenericExpression(varGroup=V)
GenericVariable(id=X, pattern=NOT :*) := WriteToVar(GenericVariable(id=Y),
GenericVariable(id=Y) GenericVariable(id=X) )
GenericVariable(pattern=':*.*' and not ':system.*') UIVar

Cuadro 2: Ejemplos de reglas del DSL de patrones, con la sintaxis de PL/SQL.

patrón y/o en la parte derecha de la regla en almacenar el nombre de la tabla y los atrib-
(nótese que con id no nos estamos reriendo utos, razón por la cuál en el patrón se especi-
al nombre de un variable concreta del código ca un guión para ignorarlos. Se especica que
PL/SQL). Mediante el atributo pattern tam- la variable (que identicaremos por X) en la
bién es posible especicar aquellas variables que se almacene el resultado de la consulta
cuyo nombre cumple con una determinada ex- debe concordar con un patrón, que concreta-
presión regular. La metaclase GenericExpres- mente es un patrón que dene las variables que
sion reemplaza a cualquier expresión, y utiliza se reeren a controles GUI. Por esta razón,
el atributo varGroup para especicar el iden- este patrón se traduce como una lectura de
ticador del grupo de variables que se usan en base de datos (ReadFromDB) que se escribe en
la expresión (de manera que pueda utilizarse una variable de interfaz (WriteToUI).
en la parte derecha de la regla). Respecto al
El tercer patrón traduce una asignación de
metamodelo abstracto de eventos se denen
una variable de cualquier tipo a una variable
dos tipos nuevos, GenericVarGroup y Gener- local. El cuarto patrón se utiliza para resolver
icVariable que representan a las variables y
variables de interfaz. Cuando se aplica un pa-
grupos de variables respectivamente, que se
trón, puede ocurrir que la parte derecha de la
han identicado en el modelo PL/SQL.
regla se reera a GenericVarGroup o Generic-
En el cuadro 2 se muestran algunos de los Variable. En estos casos es necesario aplicar
patrones establecidos para la tecnología Ora- otras reglas para resolver estas partes. Por
cle Forms. Para facilitar la comprensión de los ejemplo, es necesario traducir los tipos Gener-
mismos se utiliza una sintaxis más verbosa que icVariable del modelo abstracto de eventos en
corresponde directamente con el metamodelo tipos de variables concretas ( UIVar, Temp-
del DSL. Var,...). Por esta razón es necesario especicar
El primer patrón transforma una senten- patrones (como por ejemplo el cuarto patrón)
cia IF en una sentencia de control de u- para resolver estos casos.
jo de selección (SelectionFlow). El elemento Vamos a ilustrar el proceso de aplicación
GenericExpression se utiliza para representar de los patrones mediante un ejemplo. En
cualquier expresión, pues no nos interesa un el entorno Oracle Forms 6 se pueden aso-
tipo de expresión en concreto, aunque sí que ciar disparadores PL/SQL a la ejecución
nos interesan el conjunto de variables que se de un conjunto predeterminado de even-
utilicen en dicha expresión, a las cuales iden- tos. A continuación se muestra el códi-
ticaremos como V. go de un disparador asociado al evento
El segundo patrón representa una consulta WHEN_VALIDATE_ITEM del campo de
SELECT de base de datos que escribe en una texto USERNAME, que se ejecuta cuando se
variable. De momento no estamos interesados produce un cambio en el campo de texto.

ISSN 1988–3455 SISTEDES 2010 43


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

planteamos dos posibles usos de esta repre-


1 DECLARE
2 name VARCHAR2 (50) ; sentación que tienen como objetivo inferir in-
3 BEGIN formación implícita: la búsqueda de dependen-
4 name := : USER_DATA . USERNAME ;
5 IF name IS NOT NULL THEN cias entre variables y la categorización de frag-
6 SELECT email INTO : USER_DATA . EMAIL mentos de código.
7 FROM User WHERE username = name ;
8 END IF ; Las dependencias entre variables de inter-
9 END ; faz (que representan controles) pueden ser una
fuente de información útil en el proceso de
En la línea 4 se copia el contenido del cam- comprensión del comportamiento de los even-
po de texto USERNAME a la variable local name. tos. En las interfaces de usuario frecuente-
Se comprueba que esta cadena de caracteres mente ocurre que un cambio en el valor de
no sea nula (línea 5), y de ser así se obtiene un control de la interfaz afecta a otro control.
el valor email de la la de la tabla de datos Por ejemplo, imaginemos una casilla de veri-
User cuyo nombre de usuario (username) co- cación que cuando es marcada, habilita una
incida con el valor de la variable name. El val- lista desplegable que antes estaba deshabilita-
or obtenido de base de datos se almacena en da. En este ejemplo, los controles vendrían rep-
el campo de texto EMAIL. El efecto del código resentados por variables de interfaz, de modo
es el siguiente. Cuando un usuario introduce que existiría una dependencia entre la variable
el nombre de usuario en el campo de texto asignada a la casilla de vericación y la vari-
USERNAME, la aplicación busca la dirección able que representa la lista desplegable. Es-
de correo electrónico asociada a dicho usuario, ta información puede ser interesante para de-
y la muestra en el campo de texto EMAIL. terminar dependencias entre eventos, pues un
Si aplicamos el conjunto de patrones evento E1 que estuviese asociado a una vari-
denidos en el cuadro 2 al modelo PL/SQL able de interfaz V1 podría activar la ejecución
antes descrito, se obtiene el siguiente mod- de otro evento E2 asociado a la variable de
elo. Por simplicidad se han omitido algunos interfaz V2 si V2 depende de V1 .
detalles de las primitivas, como la infor-
Es posible asociar automáticamente cate-
mación relativa a la base de datos de la
gorías a fragmentos de código a partir de la
primitivaReadFromDB, o la condición del
información de grano no sobre variables y
SelectionFlow. Para cada conjunto de prim-
acciones obtenida en el modelo abstracto de
itivas, se indica la línea o líneas que las orig-
eventos. En la actualidad estamos diseñando
inaron mediante la aplicación de los patrones
un algoritmo que recorre el modelo buscando
y reglas.
secuencias de sentencias que tienen la misma

1 WriteToVar (: USER_DATA . USERNAME , name ) naturaleza(UI, base de datos, etc.) y las agru-
/* línea 4 */ pa. Esta información puede ser a su vez uti-
2 SelectionFlow ( name ){
/* línea 5 */ lizada para dividir la aplicación original en ca-
3 WriteToUI ( ReadFromDB ( name ) , : USER_DATA . EMAIL ) pas, ya que cada fragmento de código de cierta
/* líneas 6 y 7 */
4 } naturaleza puede ser asignado a la UI, al con-
trolador, o a la lógica de negocio.

5. Usos del modelo abstracto de 6. Traba jo relacionado


eventos
En el trabajo [2] se presenta una herramien-
El modelo abstracto de eventos pretende ta comercial que migra aplicaciones Oracle
ser una representación de información sobre Forms a la plataforma .NET. Los eventos de
los eventos adecuada, que está implícita en la plataforma origen para los cuales existe una
el código fuente y que puede ser de utili- correspondencia con semántica similar en la
dad en una fase posterior de ingeniería directa plataforma destino se migran directamente,
para crear un nuevo sistema. A continuación mientras que el resto deben ser asistidos por

ISSN 1988–3455 SISTEDES 2010 44


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

el usuario. En [5] se aborda la evolución de abstracto de eventos mantenga referencias al


sistemas heredados a sistemas SOA en tres ca- modelo KDM.
pas. En esta propuesta los fragmentos de códi- Como trabajo futuro, se espera probar el
go original se anotan manualmente según el proyecto con casos de estudio reales. Como
aspecto con que se relaciona (interfaz, lógica fruto de dicho trabajo, se incorporarán nuevas
de negocio o datos). La arquitectura presen- primitivas de alto nivel y se renará y ampliará
tada permitirá automatizar estas anotaciones, el conjunto de patrones identicados e inclu-
como se comenta en la sección anterior. idos en el repositorio estándar. Se modicará
En [6] se propone la reingeniería inversa de también la arquitectura para que sea indepen-
interfaces de usuario con el objetivo de realizar diente de la tecnología origen en la medida de
pruebas de interfaz. En este trabajo se utiliza lo posible. También sería posible realizar gen-
un modelo de ujo de eventos que representa eradores de DSLs de denición de patrones a
todos las caminos de ejecución de eventos posi- partir de gramáticas.
bles a partir de las ventanas de la aplicación.
La reingeniería se centra en deducir las rela-
Agradecimientos
ciones entre ventanas originadas por eventos.
Existen numerosos trabajos relativos al es- Este artículo ha sido parcialmente nancia-
tudio del ujo de datos [8], [9] que se utilizan do por la Consejería de Universidades, Em-
en la optimización de código por parte de com- presa e Investigación (proyecto 129/2009) y la
piladores. Estos trabajos proponen el análisis Fundación Séneca (proyecto 08797/P1/08).
estático de código, más especícamente Single
Static Assignment Form (SSA) así como otras
Referencias
técnicas, con el objetivo de eliminar código re-
dundante y optimizar la asignación de vari-
[1] O. Sánchez Ramón, J. Sánchez Cuadra-
ables. En [10] se utiliza SSA para obtener un
do, and J. García Molina. Model-Driven
grafo de ventanas, que es un grafo que repre-
Reverse Engineering of Legacy Graphi-
senta las relaciones entre las ventanas de una
cal User Interfaces. In Proceedings of
GUI. Estos trabajos guardan cierta relación
the 25th IEEE/ACM International Con-
con las etapa de simulación y con el análisis
ference on Automated Software Engineer-
de variables, sin embargo en nuestro caso, el
ing, ASE'10, 2010.
análisis que realizamos es más sencillo y está
orientado especícamente al código de eventos [2] L. F. Andrade, J. Gouveia, M. An-
de GUI. tunes, M. El-Ramly, and G. Koutsoukos.
Forms2net - Migrating Oracle Forms to
Microsoft .NET. In GTTSE, pages 261
7. Conclusiones y traba jo futuro
277, 2006.

En este trabajo hemos presentado una


[3] J. L. Cánovas Izquierdo and J. G. Moli-
aproximación para analizar el código de los
na. A Domain Specic Language for Ex-
eventos de la GUI de aplicaciones RAD. Co-
tracting Models in Software Moderniza-
In ECMDA-FA '09: Proceedings
mo resultado de este análisis se obtiene una
tion.
representación de alto nivel con información
of the 5th European Conference on Mod-
útil para la comprensión de dichos eventos.
el Driven Architecture - Foundations and
La información recopilada puede ser utilizada
Applications, pages 8297, Berlin, Heidel-
posteriormente para efectuar un proceso de in-
berg, 2009. Springer-Verlag.
geniería directa con el objetivo de generar un
nuevo sistema o de reingeniería para modicar [4] J. S. Cuadrado and J. G. Molina. Mod-
el sistema existente. Se evaluará la posibili- ularization of Model Transformations
dad de representar el sistema original comple- Through a Phasing Mechanism. Software
to mediante KDM [7], de modo que el modelo and System Modeling, 8(3):325345, 2009.

ISSN 1988–3455 SISTEDES 2010 45


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

[5] R. Heckel, R. Correia, C. M. P. Matos, [8] B. K. Rosen. Data Flow Analysis for Pro-
M. El-Ramly, G. Koutsoukos, and L. F. cedural Languages. J. ACM, 26(2):322
Andrade. Architectural Transformations: 344, 1979.
From Legacy to Three-Tier and Services.
In Software Evolution, pages 139170.
[9] B. K. Rosen, M. N. Wegman, and F. K.
Zadeck. Global Value Numbers and Re-
2008.
dundant Computations. In POPL '88:
Proceedings of the 15th ACM SIGPLAN-
[6] A. M. Memon. An Event-Flow Model of SIGACT symposium on Principles of pro-
GUI-Based Applications for Testing: Re- gramming languages, pages 1227, 1988.
search Articles. Software Testing Verica-
tion and Reliability, 17(3):137157, 2007. [10] S. Staiger. Reverse Engineering of Graph-
ical User Interfaces Using Static Analy-
ses. In WCRE '07: Proceedings of the
[7] OMG. Knowledge Discov- 14th Working Conference on Reverse En-
ery Meta-Model (KDM) v1.0. gineering, pages 189198, 2007.
http://www.omg.org/spec/KDM/1.0/,
2008.

ISSN 1988–3455 SISTEDES 2010 46


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

A Technological Framework to support Model Driven Method


Engineering1

Mario Cervera1, Manoli Albert1, Victoria Torres1, Vicente Pelechano1, Javier Cano2,
Begoña Bonet3
1 2 3
Centro de Investigación en Prodevelop S.L. Conselleria de Infraestructuras y
Métodos de Producción de Software, 46001 Valencia, Spain Transporte,
Universidad Politécnica de fjcano@prodevelop.es Generalitat Valenciana,
Valencia, 46010 Valencia, Spain
46022 Valencia, Spain bonet_beg@gva.es
{mcervera, malbert, vtorres,
pele}@pros.upv.es

Abstract 1. Introduction

Over the last two decades many approaches have A Software Production Method (SPM) is an
contributed to establish a solid theoretical basis in integrated set of activities, roles, products, guides
the area of Method Engineering, but very few and tools for providing efficient and effective
engineering tools have been developed to provide support in the software development process. In
software support to their research results. This the Software Engineering (SE) field, CASE
situation is mainly due to the complexity of environments provide software support to SPMs
developing Computer-Aided Method Engineering contributing to improve the software development
environments that enable the specification of process in terms of productivity, maintainability,
Software Production Methods (SPM) and the reusability and quality of the developed software.
construction of CASE tools to support them. In However, despite the benefits that the use of
order to reduce this complexity, we advocate for CASE tools provides, these are not used as widely
the use of the MDD paradigm, which promotes as expected. One of the reasons for this is that
the use of models as the primary artifact in the CASE tools are implemented to give support to a
development process. Following this paradigm, in single SPM, paying no attention to the flexibility
this paper we present a Model Driven Method required by real software projects. As a result,
Engineering approach to perform the automatic developers find difficult to work with such tools
construction of tools that support SPMs by means as they do not allow them to adapt the SPM to the
of model transformations. This work is requirements of a specific project [21].
contextualized within a more challenging proposal One way to overcome this problem is by
that provides a methodological framework and a reconsidering the way in which these tools are
software infrastructure for the construction of built. The construction of such tools is one of the
SPM, covering from their specification to the main concerns of the Method Engineering (ME)
construction of the tool support. discipline. ME is defined as the engineering
discipline to design, construct and adapt methods,
Keywords techniques and tools for the development of IS [2].
Within the ME field, Computer Aided Method
Method Engineering, Model Driven Development, Engineering (CAME) environments enable the
CAME environment, CASE tool generation. construction of SPMs and the software tools that
support them. However, providing such support is

1
This work has been cofinanced by the Conselleria de Infraestructuras y Transporte by means of the Fondo Europeo de
Desarrollo Regional (FEDER) and the Programa Operativo de la Comunitat Valenciana 2007-2013.

ISSN 1988–3455 SISTEDES 2010 47


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

not an easy task being a clear example the low becomes evident in [17] where a study of different
implementation degree and deficiencies found in CAME environments is presented. This study
existing CAME environments [17]. concludes that existent environments are
To improve this situation, in this work we incomplete prototypes that only cover part of the
advocate for the use of the MDD paradigm, which ME process. This is one of the reasons why these
proposes using models as the primary artifact of tools have not achieved the expected industrial
the development process [1], in the ME field. success and just MetaEdit+ [13] has been
Thus, this work provides a Model Driven Method commercialized. Examples of these CAME tools
Engineering approach to perform the construction are MERU, which supports Prakash’s and Gupta’s
of tools that support SPMs by means of model proposals [7], DECAMERONE, which supports
transformations. The work is being developed as Brinkkemper’s [3], MENTOR [22], MERET [11]
part of a more challenging proposal [4]. This or KOGGE [21].
proposal contributes to the ME area by providing These CAME environments, in general,
a methodological framework and a software present important deficiencies. Between these
infrastructure for the construction of SPMs. The deficiencies we highlight: (1) lack of support to
methodological framework covers from the the definition of SPMs and (2) lack of support to
specification of the SPM to the construction of the the automatic generation of CASE tools from the
tool support. The present work focuses on the last SPM definitions. This situation points out that
phase of this proposal where software tools are there is an actual need for tools that provide better
built from SPM specifications. support to ME. The problem is the high
The remainder of the paper is structured as complexity that entails the construction of these
follows. In section 2 we briefly present the state of tools as they must provide support both to the
the art focusing on the limitations of the existing SPM specification and the CASE tool generation.
CAME environments. Then, in section 3 we In order to overcome this problem some
provide a brief overview of the ME proposal in approaches apply the MDD paradigm using
which this work is contextualized. Section 4 metamodelling languages either to define design
presents the strategy designed to automatically notations [6] or SPM specifications [11].
obtain software tools to support specific SPMs. However, we find that these approaches do not
Finally, section 5 draws some conclusions and really take advantage of the possibilities that the
further work. MDD techniques offer. As stated in [1], “the
application of MDD techniques improves
2. State of the art developers’ short-term productivity by increasing
the value of primary software artifacts (e.g. the
The first research work in the ME field was models) in terms of how much functionality it
developed in the early nineties by Kumar and delivers”. Following this statement and contrary to
Welke who established the basis of this area [14]. what current ME approaches do, we want to
leverage models going one step further. Defining
Later, these foundations have been consolidated
with several proposals such as Brinkemmper’s [2] the SPM as a model and considering this model as
and Hofstede’s [12]. Since then, different a software artifact allows us to face the
proposals try to provide an answer to the existing implementation of the generation of software
problems in this area. This is the case of proposals support tools by means of model transformations.
such as Ralyté’s [15, 19], Henderson-Sellers’ [10], The use of model transformations as the means to
Prakash’s [18] or Harmsen’s [9] which tackle the carry out the tool generation is the main concern
method construction by assembling pieces or of this paper and is thoroughly detailed in section
fragments, proposing techniques for the efficient 4.
selection and assembly of these pieces. These
proposals have contributed to establish a solid 3. ME proposal overview
theoretical basis for the ME area. However, the
existing tool support for this basis does not live up In order to put into context the work presented in
to the expectations due to the complexity of this paper, this section briefly introduces the
putting this theory into practice. This problem proposal presented in [4]. This proposal covers

ISSN 1988–3455 SISTEDES 2010 48


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

different stages of the ME lifecycle, in particular Flow Connector: It represents the order in
from the specification of the SPM to its which two associated tasks (each one in a
implementation (where the tool that supports the different end) are executed.
SPM is built). Figure 1 presents a graphical Gateways: It represents points within the
overview of the proposal. Each of its phases is SPM where the flow is diverged or converged
detailed in the next subsections. depending on the gateway type.
Guide: It is a document that provides some
3.1. Method design assistance to perform a task or to manipulate a
specific product.
During this phase, the method engineer builds the
Method Model by identifying all the elements We distinguish two parts in the Method Model, the
involved in the SPM. The most significant product part, which represents the artifacts that
elements used in the Method Model construction developers should construct during the execution
are the following: of a SPM project, and the process part, which
Task: It represents an activity performed consists of the procedures that developers must
during the execution of a SPM instance (e.g. follow to construct such products. For the
business process analysis, web specification, construction of the Method Model we provide a
etc.). Method Base repository. The Method Base
Product: It represents an artifact that is either contains method fragments (descriptions of IS
consumed or generated in a task (e.g. business engineering methods, or any coherent part thereof
process model, structural model, etc.). [8]) that can be reused in the design of new
Role: It represents an agent that participates in Method Models. It is important to note that the
a SPM performing different tasks. This can Method Model does not contain details about the
refer to a human being agent (e.g. analyst, languages or technologies that are going to be
developer, etc.) or to an automated system. used during the execution of the SPM; this is done
in the next phase.

Figure 1. ME proposal overview

ISSN 1988–3455 SISTEDES 2010 49


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 2. Example of method fragment integration

RAS, reusable assets are represented by zip files


Figure 2 shows an example of integration of a that contain a manifest describing the asset and
method fragment into a Method Model, which in one or more artifacts that compose the asset.
our proposal is created by means of the EPF Figure 3 shows an example of an asset containing
Composer Editor, a Software Process Engineering a BPMN editor. This asset could be associated, for
Meta-Model (SPEM) [23] editor provided in the instance, to a SPM product called “Business
EPF Project [5]. The right side of this figure Process Model” to specify that this product will
shows an Eclipse view implementing a repository be managed in the generated tool using a BPMN
client. Its content represents method fragments editor.
that are stored in the Method Base as reusable At the end of this phase, the Method Model
assets following the RAS (Reusable Asset has evolved into a new stage where detailed
Specification) standard [20]. Through this view, information about the technological support of
the method engineer can search for and select SPM tasks is given. We call Configured Method
method fragments to integrate them into the Model to the model resulting from this phase.
Method Model.
3.3. Method implementation
3.2. Method configuration
During this phase a model transformation is
During this phase, the method engineer associates executed to automatically obtain the tool that
the elements included in the Method Model with supports the SPM. This transformation takes as
metamodels, editors, transformations, etc., which input the Configured Method Model previously
are stored in the Asset Base repository. These obtained during the Method Configuration phase.
assets configure the elements of the Method The details of this phase, which are the focus of
Model and determine how they will be managed this paper, are given in the following subsection.
in the tool built for supporting the SPM. The
assets contained in the Asset Base can be built 4. Automatic generation of tools for SPM
either in other SPMs or ad-hoc for the SPM under support
construction (the method engineer can use the
tools provided in our CAME environment for this
This section describes the part of the ME
purpose). Specifically, in our proposal the assets
approach that deals with the construction of the
contained in the Asset Base correspond either to
software tool to support the SPM. The
Eclipse plugin/feature2 projects that implement
construction process is based on the application of
editors, metamodels or transformations, or to task
the MDD paradigm; so, these software tools are
guidelines.
generated from SPM specifications by means of
The elements of the Asset Base are specified
model transformations. Figure 4 provides a
following the RAS standard [20]. According to
graphical overview of this process.

2
An Eclipse feature is a group of Eclipse plugins.

ISSN 1988–3455 SISTEDES 2010 50


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 3. Example of reusable asset: a BPMN editor

Figure 4. Overview of the tool generation process

The core of the generation process is a model The generation process of figure 4 has been
transformation that obtains a software tool implemented in the CAME environment
supporting the SPM specified in the Configured developed to support the proposal [4]. In this
Method Model. As shown in the figure, the context, the generated tools are built as Eclipse
transformation uses the product and process parts applications, in particular based on the MOSKitt
of the SPM model to give support to both parts as tool [16]. This means that these tools are built as
follows: MOSKitt reconfigurations that only contain the
The support provided for the product part set of plugins that implement the software support
involves providing all the resources that required by the SPM.
enable the manipulation of the SPM products. The use of the MOSKitt platform implies that:
This support is given by the software (1) the software resources that give support to the
components that make up the infrastructure of product part of the SPM correspond to Eclipse
the tool and correspond to the assets that were plugins and (2) the final tool is obtained from a
associated to the SPM elements in the Method Product Configuration File (.product file). This
Configuration. type of files gathers all the required information to
The support provided for the process part automatically3 generate an Eclipse-based tool such
corresponds to a new component that enables as MOSKitt. So, considering that the tool is
the execution of SPM instances by means of a obtained from a Product Configuration File, the
process engine. During the SPM execution,
this component invokes the different software 3
The Eclipse Product Export Wizard (functionality
resources that allow the software engineers to provided in org.eclipse.pde) automatically generates an
create and manipulate the SPM products. Eclipse-based application from a .product file.

ISSN 1988–3455 SISTEDES 2010 51


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

model transformation is in fact a model-to-text support part: (1) identifying the software
(M2T) transformation implemented using the resources necessary to support the tasks and
Xpand language [24]. This transformation takes as products of the SPM and (2) solving the
input the Configured Method Model and generates dependences between software resources.
a .product file through which the final tool will be
automatically generated. In order to generate this Identifying software resources
file, the M2T transformation must identify the
software resources (Eclipse plugins) in charge of The M2T transformation explores the SPM model
providing support to the SPM. Once these and identifies the software resources that are
resources have been identified, the transformation necessary to support the tasks and products of the
includes in the Product Configuration File the list SPM. The software resources are identified by
of features that need to be deployed in the final means of the assets that were associated to these
tool (MOSKitt construction is based on features). elements during the Method Configuration phase.
More insights on this M2T transformation and Note that when a task or a product does not have
the tools obtained for product and process support an associated asset, the generated tool will not
in the final tool are presented in the next provide support to that element.
subsections. It is also important to highlight that the
integration of these resources into the MOSKitt
4.1. Software support for the product part reconfiguration representing the final tool can be
automatically performed since these resources
This section focuses on the part of the M2T correspond to features and plugins created within
transformation that obtains the tool support for the the Eclipse/MOSKitt platform itself. Thus, the
product part of the SPM. This product support integration of tools developed outside of the
refers to the tools (editors, transformations, etc.) context of Eclipse/MOSKitt cannot be guaranteed.
that have to be integrated into the final tool to In figure 5 two Xpand rules of the M2T
enable the manipulation of the SPM products and transformation are shown. In these rules the list of
tasks. For instance, a SPM that includes a product features of the Product Configuration File is
such as a “Business Process Model” requires the generated. The first rule is invoked for each
inclusion within the tool supporting the SPM of a instance of the class ContentElement (i.e. tasks
proper editor to manage this kind of models. and products). This rule invokes the second rule,
Furthermore, to obtain a valid product support which produces the output. The second rule
it is also necessary to solve the dependencies of accesses the property “FeatureID” of the content
the software components required to support the elements. This property is created during the asset
SPM product part with other software association and contains the identifier of the
components. Therefore, we distinguish two steps feature (software resource giving support to the
in the M2T transformation that obtains the product content element) packaged in the asset.

Figure 5. Excerpt of the M2T transformation

ISSN 1988–3455 SISTEDES 2010 52


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Solving dependencies between software Eclipse views (see Figure 65). Each of these views
resources provides a specific functionality but their common
goal is to facilitate the user participation in a
Once the required software resources are specific project. The details of these views are the
identified, it is necessary to solve the potential following:
conflicts that can arise when integrating these Product Explorer: This view shows the set of
resources (plugins) into the same platform products that are handled (consumed,
(MOSKitt). To achieve this goal, we specify the modified and/or produced) by the ongoing and
dependencies between software resources within finished tasks of the process. This view can
the assets. This specification allows the be filtered by roles so that users belonging to a
transformation to retrieve the dependencies for specific role have only access to the products
each software resource identified in the previous they are in charge of. Then, from each
step and to include them in the Product product, the user can open the associated
Configuration File. editor to visualize or edit its content.
As an example consider the asset of figure 3 Process: This view shows the tasks that can
containing the MOSKitt BPMN editor. This asset be executed within the current state of the
defines a dependency with the MOSKitt MDT project. The execution of the tasks can be
component4. Therefore its feature must also be performed automatically (by launching the
included in the .product file so that the plugins transformation associated to the task as a
implementing this component are also included in software asset) or manually by the software
the final tool. engineer (by means of the software resource
associated to the output product of the task).
4.2. Software support for the process part Similarly to the Product Explorer, this view
can be filtered by role, showing just the tasks
In addition to the support provided for the product in which the role is involved in.
part of the SPM, according to our proposal, the Guides: This view shows the list of guides
generated tool also provides support for the associated to the task selected in the Process
process part. This support guides and assists users view. The objective of these guides is to assist
during the execution of SPM instances (projects). the user during the execution of such task,
The process support is provided by means of a providing some insights on how the associated
software component (the Project Manager products should be manipulated. These guides
Component) that is common to all SPMs. This correspond to resources that were associated
component implements a graphical user interface to tasks during the configuration step of the
(GUI) that enables the execution of SPM SPM.
instances. To make this possible, the Project Product Dependencies: This view shows the
Manager Component uses the Configured Method dependencies that exist between the products
Model at runtime (runtime in this context that are handled in the project. So, it allows
corresponds to the SPM instances execution in the users to identify which products cannot be
CASE tool). created or manipulated because of a dependent
Considering these aspects of the process product has not yet been finished. In addition,
support, the M2T transformation must always these dependencies are organized by roles.
include in the product configuration file a pre- This organization gives to the user the
defined feature that groups the set of plugins that knowledge of who is responsible of those
implement the Project Manager Component. products he/she is interested in.
The Project Manager Component endows the
generated tool with a GUI composed of a set of

4 5
The MOSKitt MDT component implements the Available also at
functionality that is common to all the MOSKitt http://users.dsic.upv.es/~vtorres/moskitt4me/
graphical editors (such as copy & paste, view creation,
etc.).

ISSN 1988–3455 SISTEDES 2010 53


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 6. Project Manager GUI

Regarding the implementation of the Project keeps the state of the running SPM instances.
Manager Component, it has been divided into four Given a SPM instance it provides a set of
components of a lower level of granularity. The methods that return the current tasks and also
M2T transformation that generates the product allow the method engineer to mark them as
configuration file always includes a feature that completed in order to enable the progress of
groups the Eclipse plugins that implement these the process. Note that, to make this progress
four components. Even though the possible, the component must access the SPM
implementation of these components is model and retrieve the distribution of the tasks
independent of the SPM, as stated previously, they along the SPM process.
need the information stored in the Configured Product Management. This component is in
Method Model to work properly in the generated charge of the management of the products and
tool. Figure 7 depicts graphically these four tasks. Regarding products, the component
components. identifies the editor that is required to
Project Manager. This is the core manipulate such product. Regarding tasks, we
component. It implements the GUI of the differentiate between automated and manual
Project Manager Component and gives tasks. For automated tasks, the component
support to the process part of the final tool. To obtains the transformations that have to be
do so, this component uses the other three. executed. For manual tasks it obtains the
Process Management. This component editor that allows creating and editing the
implements a light-weight process engine that products manipulated in this task. All this

ISSN 1988–3455 SISTEDES 2010 54


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 7. Structure of the Project Manager Component

information is contained in the SPM model, in support. Specifically, this process is divided into
particular in the assets associated to the tasks two phases, being the last one the central focus of
and products included in the model. this paper.
Therefore, this component also needs to Regarding future work, we are working on the
access the SPM model to get this information. improvement of the CAME environment that
Method Specification. This component loads supports our proposal. We are enhancing: (1) the
the different elements of the SPM model management of the dependencies between the
(roles, tasks, products, etc.) to facilitate later resources that have to be included in the final tool
access to them. All these elements are supporting the SPM under construction, and (2)
obtained from the SPM model. the workflow engine that enables the execution of
the SPM process and gives support to the process
5. Conclusions part of the proposal.

The development of CAME tools is a task that has References


proven itself as highly complex. When facing this
challenge, the use of techniques that simplify this [1] Atkinson, C., Kühne, T.: Model-Driven
process becomes crucial. Considering this, some Development: A Metamodeling Foundation.
ME approaches have used MDD techniques using IEEE Software, IEEE Computer Society, 20,
metamodelling languages either to define design 36-41 (2003)
notations [6] or SPM specifications [11]. The [2] Brinkkemper, S.: Method engineering:
problem is that these approaches fall short when engineering of information systems
providing a solution to ME as they do not really development methods and tool. Information
take advantage of the possibilities that these and Software Technology 38 (1996)
techniques offer. [3] Brinkkemper, S., Saeki, M., Harmsen, F.:
Considering this lack, we want to leverage Meta-Modelling Based Assembly
models going one step further. With this purpose Techniques for Situational Method
we have presented a MDD approach that not only Engineering. Information Systems, (1999).
uses models for the specification of SPMs but also [4] Cervera, M., Albert, M., Torres, V.,
uses them as software artifacts, tackling the Pelechano, V.: A Methodological Framework
generation of tools to support them by means of and Software Infrastructure for the
model transformations. In particular, this work is Construction of Software Production
contextualized within a broader proposal [4]. This Methods. International Conference on
proposal presents a methodological framework for Software Processes, (2010)
the construction of SPMs, which covers from the [5] Eclipse Process Framework Project (EPF),
SPM specification to the generation of the tool http://www.eclipse.org/epf/

ISSN 1988–3455 SISTEDES 2010 55


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

[6] Grundy, J. C., Venable, J. R.: Towards an [15] Mirbel, I., Ralyté, J.: Situational method
Integrated Environment for Method engineering: combining assembly-based and
Engineering in Proceedings of the IFIP roadmap-driven approaches. Requirements
8.1/8.2 Working Conference on Method Engineering V.11, Nº 1, (2006)
Engineering, Hall, 45-62 (1996) [16] MOdeling Software Kitt (MOSKitt),
[7] Gupta, D., Prakash, N.: Engineering Methods http://www.moskitt.org
from Method Requirements Specification. [17] Niknafs, A., Ramsin, R.: Computer-Aided
Requirements Engineering, Vol. 6 (2001) Method Engineering: An Analysis of
[8] Harmsen, A. F., Arnhem, T., Ernst, M., Existing Environments. CAiSE, 525-540
Consultants, Y. M., Gegevens, C., (2008).
Bibliotheek, K., Haag, D., Frank, H. A.: [18] Prakash, N.: Towards a Formal Definition of
SITUATIONAL METHOD ENGINEERING Methods. Requirements Engineering. 1: Vol.
PROEFSCHRIFT 1968. 2. - pp. 23-50 (1997)
[9] Harmsen, F., Brinkkemper, S.: Design and [19] Ralyté, J., Rolland, C.: An Assembly Process
Implementation of a Method Base Model for Method Engineering. CAiSe. - pp.
Management System for a Situational CASE 267-283 (2001)
Environment. APSEC (1995) [20] Reusable Asset Specification (RAS) OMG
[10] Henderson-Sellers, B.: Method Engineering Available Specification version 2.2. OMG
for OO Systems Development. Document Number: formal/2005-11-02
Communications of the ACM Vol. 46. Nº 10, [21] Roger, J. E., Suttenbach, R., Ebert, J.,
pp. 73-78, (2003) Süttenbach, R., Uhe, I., Uhe, I.: Meta-CASE
[11] Heym, M., Osterle, H.: A Semantic Data in Practice: a Case for KOGGE. Springer ,
Model for Methodology Engineering. 5th 203-216 (1997)
Workshop on Computer-Aided Software [22] Si-Said, S., Rolland, C., Grosz, G.:
Engineering, pp. 142-155. IEEE Press, Los MENTOR: A Computer Aided Requirements
Alamitos (1992). Engineering Environment CAiSE, 22-43
[12] Hofstede, A., Verhoef, T. F.: On the (1996)
Feasibility of Situational Method [23] Software Process Engineering Meta-model
Engineering. Information Systems. 6/7 Vol. (SPEM) OMG Available Specification
22. (1997) version 2.0. OMG Document Number:
[13] S. Kelly, K. Lyytinene, M.Rossi. MetaEdit+ formal/2008-04-01
A Fully Configurable Multi User and [24] Xpand,
MultiTool CASE and CAME Environment. http://www.eclipse.org/modeling/m2t/?projec
CAiSE 1996. t=xpand
[14] Kumar, K., Welke, R. J.: Methodology
Engineering: A Proposal for Situation-
Specific Methodology Construction.
Challenges and Strategies for Research in
Systems Development, John Wiley & Sons,
Inc., 257-269 (1992).

ISSN 1988–3455 SISTEDES 2010 56


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

SOFIA: Smart Objects for Intelligent Applications – ADK

Jesús Fernández Gómez- Raúl Otaolea


Pimpollo ESI Tecnalia,
Área Innovación Tecnológica Parque Tecnológico de Zamudio 204
(Soluciones Tecnológicas) 48170, Zamudio
Indra Sistemas, Anabel Segura nº7 Bizkaia, Spain
28108, Alcobendas raul.otaolea@esi.es
Madrid, Spain
jfgpimpollo@indra.es

Abstract

SOFIA (Artemis project: http://www.sofia-


project.eu/) focuses on answering the challenge of
creating smart environments and its goal is to
make information that resides in the physical
world available to current software services. This
paper presents an open innovation platform for
ambient intelligence applications including
architecture, software engineering as well as an
application development kit. Both, processing and
implementation technologies have matured to
such a level that using embedded technologies is
beginning to make sense. It is therefore possible to
begin to develop the concept of smart spaces,
which have been investigated so extensively in the
areas of Ubiquitous Computing, Ambient
Intelligence and the Internet of the Future. This Figure 1. SOFIA development life cycle
paper´s core is based on how SOFIA has modeled
its different domains and how software 2. Design
engineering together with the development
environment will solve the development cycle of The Wizard plug-in centralizes the programmer
an intelligent application, starting from its decisions about the Knowledge Processor (KP).
semantic model to its implementation in a The wizard guides the developer to choose in
concrete programming language. between ontology concepts to use and their profile
(producers and/or consumers), platform and
1. Introduction programming language, communication protocol
and project details like name, package names, etc.
The ADK is a set of tools that provides several A new SOFIA project is created in the last
functionalities to the whole development life wizard´s step where all necessary middleware (all
cycle. The Ontology Driven Development (ODD) layers in the proper language, an editor for that
[1] based on Ontology Driven Software language) is added and finally all the connectors
Engineering approach has three phases: design, selected, SSAP or communication protocol
implementation, testing and deployment. knowledge is not needed to start coding the logic
of a KP. The plug-in selects a proper editor for the
programming language chosen by the KP
developer, and assigns it to the SOFIA project
generated.
Connectors are already coded for a variety of
languages (partially programmed for Java) and

ISSN 1988–3455 SISTEDES 2010 57


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

will be stored in a centralized server where the enables the knowledge processing, sharing and
ADK connects to and downloads locally. reuse between applications.
Openness and scalability are major factors, The SIB OSGi Bundle exposes a set of
therefore connectors for different communication services using the public interfaces ISIB (shows
protocols and different languages are feasible. The all the methods to interact with the SIB using
Smart Application Wizard includes the SSAP Message type communication), which
OWL2Classes facility, which translates several controls the communication between
ontologies into programming languages classes in Gateways/KP and SIB, and IViewer (exposes
order to be used with the SOFIA middleware. methods to observe the content and to register
When this class is used, all its interactions are sent changes within the SIB).
to the SIB; therefore programmers do not need to The Semantic Model is based on Jena
have expertise knowledge about ontologies. (Semantic Web Framework), which provides an
API to allow the storage of ontologies, classes,
3. Implementation individuals, properties and all data related to
ontologies. It is assumed that languages can be
A KP is divided in four layers: 1. Logic. A used for the interaction with the model are OWL
developer is only responsible for programming (or RDF-XML) and N3. Decisions are based on
this layer and it represents the functionalities a the definition of the SSAP Message Protocol
final user or a company wants to create. 2. defined in Description of XML encoding of SSAP
Semantic model. This layer is automatically document (internal Wiki). This model maintains a
generated by the OWL2Classes tool of the ADK. full class hierarchy of already connected nodes
It is an API with the classes in a specific and the individuals (instances or triples) that has
programming language representing ontologies joined the SIB. All KPs must send in their first
selected in the wizard tool. Thus, they are the ontology model connection to the SIB, so that, all
concepts to exchange with the smart space. 3. individuals defined in that KP can be understood
SSAP. This layer gathers all APIs dedicated to by the SIB and other KPs in the Smart Space.
deal with the SIB. The upper layer knows how to When a KP is removed from the Smart Space all
invoke the appropriate methods of this API.[2] the information about this KP is also removed
Connection. The different connectors are plugged from the SIB Semantic Model, including all the
in this layer to connect with the SIB. It is also inserted individuals.
responsible for Semantic Information Broker The ADK Subscription Manager is
(SIB) discovery. responsible for maintaining the information about
Hence, the complexity related with ontologies the subscribed KPs and Session Manager manages
and communication protocols are totally the KPs connected to the SIB at a given moment.
encapsulated in a very easy API formed by plain Only connected KP-nodes are allowed to perform
classes (model layer). Developers only have to the SSAP operations in the SIB. The SIB into a
instantiate them and use their getters/setters in Sofia smart space needs to interoperate with the
order to interact with the smart space. KPs of several smart applications that are running
into the smart space, which enables the KP to
change information into the SIB and the SIB
4. Testing and Deployment communicates those change to several KPs
subscribed to them. KP can be executed in any
The SIB is the responsible for the interoperability physical device with communication capabilities
between heterogeneous smart applications and to interoperate with a SIB of the smart space. The
devices. Its core is differentiated in three parts; use of Gateways is a solution to avoid problems
1.Sessions. Refers to the KP connected to the SIB when having devices with different
at a given moment. 2. Subscriptions. Subscribed communication protocols.
nodes are notified when certain conditions in the A modular and extendible architecture is
semantic model are produced. 3. Semantic Model achieved by having the OSGI platform as a
provides the interoperability level needed to module container, where the SIB or the Gateways
connect different devices, platforms, sensors or are OSGI bundles and SIB bundle changes will
data using the SOFIA Smart Space context. It also

ISSN 1988–3455 SISTEDES 2010 58


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

not affect any Gateway bundle. This architecture to design easy applications visually linking the
will be enhanced with new Gateways supporting different parts semantically [2], [3]. This approach
new communication protocols and increasing the will gain high dynamicity and composability
amount of devices where smart applications can inside a smart space, as the dependencies are not
be deployed, freeing new Gateway developers of established statically but semantically and could
any responsibility regarding opened sessions be solved at runtime based on semantics. This
(KPs-SIB) as the fragment bundle will be feature will be ready with the second version of
extended by the Gateway. the ADK.
Moreover, two specific Gateway OSGI
Bundles are been looked at the moment to support References
TCP/IP and Bluetooth connections. The platform
is also open to develop new Gateways supporting [1] W3C, Ontology Driven Architectures and
more connection protocols. Potential Uses of the Semantic Web in
SIB includes a server to represent any server Systems and Software Eng.
visually, which main functions are start and stop online:http://www.w3.org/2001/sw/BestPracti
the SIB and a viewer to visualize the content of ces/SE/ODA/, 2006
the embedded SIB and has three tabs: Sessions, [2] Vanden Bossche, M., Ross, P., MacLarty, I.,
Subscriptions and Semantic model (to check Van Nuffelen, B., Pelov, N.: “Ontology driven
insertions and removals among connected KPs software engineering for real life
and the SIB, key tool to test KP). applications,” in Proc. 3rd Intl. Workshop on
Semantic Web Enabled Software Engineering,
5. Conclusion 2007
[3] de Oliveira, K. M., Villela, K., Rocha, A. R.,
The ADK has already achieved its main goal, to Travassos, G. H.: “Use of ontologies in
aid developers programming high quality smart software development environments,” in
applications; nevertheless SOFIA aims to push Calero, C., Ruiz, F., Piattini, M. (eds)
this concept to the limit allowing final users to Ontologies for Software Engineering and
build their own applications. To do so, we are now Software, 2006
defining a smart application model (within ODD)

ISSN 1988–3455 SISTEDES 2010 59


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

A MDA Approach for Deriving Functional Testing Software for


Validation of Active Applications in RDB*

Harith Al-Jumaily Dolores Cuadra Paloma Martínez


Computer Science Department Computer Science Department Computer Science Department
Carlos III University of Madrid Carlos III University of Madrid Carlos III University of Madrid
Av. Universidad 30 – 28911 Av. Universidad 30 – 28911 Av. Universidad 30 – 28911
LEGANES - MADRID LEGANES - MADRID LEGANES - MADRID
haljumai@inf.uc3m.es dcuadra@inf.uc3m.es pmf@inf.uc3m.es

Abstract our approach focuses on deriving test cases from


the specifications of OCL clauses in a class
The development of active applications in most diagram. These test cases are used to ensure that
database CASE tools has been insufficient active applications employed to enforce these
because most of these tools do not provide the specifications fulfill the user requirements.
software necessary to validate these applications. An active application is an extension of the
Validation means ensuring whether a given traditional database applications with a set of
application fulfils the user requirements. We active rules or triggers. Incorporating active rules
suggest validation of active applications by using significantly enhances the functionality of
the functional testing technique, which is a database systems and provides flexible
fundamental black-box testing technique for alternatives to implement many database features,
checking the software without being concerned such as enforcing integrity constraints. An active
about its implementation and structure. Our main rule is able to detect events and issue predefined
contribution to this work is in providing a MDA actions to maintain a database state. An event in
approach for deriving testing software from the relational databases is a DML (Data Manipulation
OCL specification of the integrity constraints. Our Language) statement such as insert, delete, and
approach is implemented as an add-in tool called update. Once a trigger is activated and its
OCL2TestSW. condition evaluated to true, the predefined actions
are automatically executed. The validation of
1. Introduction triggers means ensuring that a set of triggers does
exactly what the user requirements specify.
Therefore, our research group is interested in
The introduction of the MDA approach (Model-
making the development task of these applications
Driven Architecture) [1] in Software Engineering
easier through the automatic transformation of
has provided good support and consolidation for
Object Constraints Language (OCL) specification
automatic code generation. MDA focuses on using
into testing software for validation of active
models to cover the life cycle of software
applications.
development. MDA is suitably used to solve the
The rest of this work is organized as follows.
interoperability problem between heterogeneities
In section 2 previous related works are presented.
systems with different implementation platforms.
In section 3 our approach is presented. In section
However, a limitation of MDA is that it does
4, a complete example of applying the generated
not provide a way to validate the software. Thus,

* This work is part of the project "Software Process Management Platform: modelling, reuse and
measurement" (TIN2004/07083) and the project “Thuban: Natural Interaction Platform for Virtual
Attending in Real Environments” (TIN2008-02711).

ISSN 1988–3455 SISTEDES 2010 60


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

testing software for applications validation is for automatic generation of database instances is
performed. In section 5, some conclusions and proposed. The input of this method consists of
future lines of research are presented. SQL statement, database schema, and assertions
to define the user requirements. The output is a set
2. Related Works of constraints to validate the desired database
instances.
In general, in order to validate the user We think that applying black-box techniques
requirements a wide range of traditional software, could be more simple and practical, especially
testing techniques have been proposed, but when there are an enormous number of
relatively little effort has been spent on the testing interactions with a database. An example of the
database applications [2]. In [3] the issues which difficulty in applying white-box techniques is the
make testing database applications different from case of the validation of active database
other types of software have been identified, and a applications. Each trigger has an independent
tool has been developed for populating a database structure but in execution time it is very difficult
with meaningful data which satisfies constraints. to detect all possible paths to be validated. Thus,
The cited work considers only the constraints we believe that using the equivalence-class testing
which can be expressed in the database schema by technique could make the validation of database
using SQL’s Data Definition Language. Our work applications easier. The equivalence-class testing
agrees with the issues in testing database is a fundamental technique for functional testing
applications presented in the cited work. which checks the software without worrying about
Nevertheless, the difference between the two its implementation and structure [9]. In this type
works is that in our work the testing software is of testing, the examiner’s responsibility is to
derived from the constraints which are expressed provide input or initial data and to validate the
in a UML class diagram. These constraints can be output results. The main objective is to check
whether the tested software fulfils the user
a basic type such as (primary key, foreign key,
and unique key) and specification of OCL clauses. requirements or not.
Our approach joins the UML in aspects that have Our approach starts from the specification of
been widely accepted and supported by many constraints in the design phase, which are then
implemented according to the chosen database
CASE tools in the software validation field.
In [4], static analysis techniques (also called system (SQL Server, Oracle, MySQL). Not only
white-box techniques) have been used to extract are the basic constraints of the relational DBMS
useful information in a web database application. considered (primary keys, unique or foreign key),
but also those constraints which are more complex
Static analysis testing is a fundamental structural
technique that depends on software structure and and which can be implemented by triggers (see
implementation. That is, the white-box approach OCL2Trigger [12]).
has been used to construct an application graph
which systematically generates selected paths 3. MDA for Deriving Testing Software
based on that graph. Each path represents a
possible scenario for use of the application. A test The main objective of deriving testing software
case is organized as an XML file and is from the OCL specifications is to ensure that
automatically executed. In [5] [6] and [7], the triggers application used to enforce these
white-box testing technique is also applied to specifications fulfills the user requirements. In this
validate a database application. The main section, we will explain our approach for deriving
objective is to validate all possible paths in the functional testing software from the OCL
execution flow of a program. By means of these specifications according to the MDA framework.
paths all the program statements are executed and There are three phases for adaptation of MDA to
examined at least once. In [8] a white box method our approach (see figure 1).

ISSN 1988–3455 SISTEDES 2010 61


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Class Diagram
PIM/UML
OCL
Transforming OCL
to SQL Testing
Software Model
PSM/SQL Testing Validation
Testing
Components Cases Queries

Transforming SQL
Components to DBMS
Testing Software Model

Testing
Software MS-SQL DB2 ORACLE

Figura 1. Applying MDA to our approach

The first one, called PIM, represents the for testing applications, and validation queries to
logical view of the specification of integrity ensure the correctness of the tested application. In
constraints using OCL clauses in a class diagram. this work, we consider the generating of test cases
The second one, called PSM, describes the and validation queries while the examiner must
technology used to build the necessary prepare validated initial data to be inserted before
components of the testing software. In this phase, the testing is begun.
the SQL notation is used to refer to the recent
2003 standard [10]. The standard SQL is used to 3.1.1 Validation Queries
describe these components because we focus on To ensure the correctness of the integrity
testing relational database applications. The third constraints each OCL clause in the class diagram
phase is called Testing Software which describes is mapped to a validation query. Each query is
the software technology which can be applied applied after a test case is run. Although an OCL
directly in a target commercial DBMS such as expression specifies invariant, pre-condition, post-
Oracle, DB2, and MS Server. condition, and other types of constraints, in this
Two models are used to carry out the work the invariant constraints are considered. An
transformation rules between these phases invariant constraint is an OCL expression that can
automatically: Transforming OCL to SQL be associated with a class, a type or interface in a
components Model, and Transforming SQL UML class diagram to define an integrity
components to DBMS testing software Model. In constraint [1]. It must be true for all instances of
the following we present a brief description of element type at any time. The OCL invariant
these models. constraints are also used to specify relationship
constraints in a class diagram such as multiplicity,
generalization, etc., although these constraints are
3.1. Transforming OCL to SQL Testing already included in the diagram [11].
Software Model Let us consider that we have a scenario Si
consisting of a set of classes (each class is mapped
According to Figure 1, each OCL constraint is to a relational table), and each one of these classes
transformed into two testing software contains a set of OCL clauses to define the
components. Each one of these components is integrity constraints. Each one of these OCL
related to an issue in testing database application. clauses is mapped to a SQL query. In this section,
These issues are defined in [16] as specifying we will show the mapping rules which are used to
database states, applying test cases, and observing transform OCL clauses to SQL queries (℘i⇒σi),
database state after test execution. According to where ℘ is an OCL expression, σ is a negation
these issues, the testing software components are
SQL expression corresponding to℘, and i is one
defined in our work as initial data to be inserted
of the mapping rules. We use the Relational
before the testing is begun, test cases to be applied

ISSN 1988–3455 SISTEDES 2010 62


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Algebra notations [18] to introduce abbreviations ℘〈self.b.z->agg()Θself.x〉⇒


to simplify and make the theoretical results of our σ ( A. x ¬ Θ agg ( B . z ))
approach more readable. However, in practice the
transformation of an OCL expression to a SQL Rule(d) OCL_expression is defined to specify
standard expression is automatically performed. navigation between two classes A, B.
This transformation is a significant phase in our
approach because this expression restricts the ℘d〈A.a,B.a〉⇒σd(A.a,B.a)
attribute values and the relationships between ℘〈self.navigation−>size()ΘV〉⇒
them. Hence, we perform this transformation first, σ ( count ( B .a ) ¬ Θ V )
and then proceed with the following phases of our
validation approach. Rule(e) OCL_expression is defined to specify
Let us consider the following OCL clause: oclIsKindOf property to determine
℘i : Context 〈A〉 inv 〈constraint_name〉: whether A is either the direct type or
〈OCL_expression (self)〉 one of the subtypes.

A is a class name. Self is an instance of A. The ℘e〈A.a,B.a,C.a〉⇒σe.Total(A.a,B.a,C.a) OR


Context specifies the class in which an OCL σe.Disjoint(A.a,B.a,C.a)
expression is defined. The OCL_expression is a ℘〈self->forAll(A.a|
logical expression that describes a relationship oclIsKindOf(B.a)ΘoclIsKindOf(C.a))〉
between one or more atomic expressions. An ⇒ σe.Total = σ ( A . a ¬ IN ( π ( B ) ∧ π ( C )))
B .a C .a
atomic expression contains no more than one
OR σe.Disjoint = σ ( A . a IN ( π ( B ) ∧ π C . a ( C )))
operator. The OCL_expression is mapped using the B.a

logical and mathematical operators of SQL. For


example, the mapping of mathematical operators ( 3.1.2 Testing Cases
-, +, *, / ) is performed directly. The logical The functional testing design is based on the
operators (Θ) such as ∧ (and), ∨ (or), ¬ (not) are definition of the equivalence classes. An
mapped using counterpart expressions of SQL. equivalence class represents a set of valid or
We can apply one of the following rules when: invalid states for certain input conditions [13]. To
Rule(a) OCL_expression is defined on a target apply our approach, we first need to specify these
attribute in a class A. input conditions. In database applications, input
conditions can be divided into two classifications:
℘a〈A.x〉 ⇒ σa(A.x) critical events and the associated attribute values
℘〈self.x Θ V1〉 ⇒ σ to these events. A critical event is an operation
( A . x ¬ Θ V1 )
that could violate one database constraint; these
Rule(b) OCL_expression is defined on target events are: Insert, Delete, and Update. An event is
attributes in one or more class A, B. used with its corresponding attribute values.
Although insert a new tuple in a table means insert
℘b〈A.x,B.z〉⇒σb(A.x,B.z) all the defined attributes’ values of that table, in
℘〈self.xΘ1V1〉 implies 〈self.B.zΘ2V2〉 ⇒ this section we consider only the attribute which is
σ (( A . x Θ 1 V1 ) ∧ ( B . z ¬ Θ 2 V 2 ))
defined in the SQL expression of a constraint
because it is the only attribute that can affect the
Here, ‘implies’ can be mapped using the logical constraint.
operator ‘AND’ and the logical negation is applied According to the SQL expression rules
on the second operator Θ2. This is because ‘implies’ (section 3.1.1) critical events are specified. For
does not have a counterpart in SQL. example, any expression belonging to the type
Rule(c) OCL_expression is defined to specify an (σa) has as critical events: the insertion of new
aggregate function (agg = {MAX, MIN, tuples and updating of the expression attributes.
etc.) on target attributes in one or more Table 1 shows the critical events considered in
class. this work.
Three equivalence classes are defined for
℘c〈A.x,agg(B.z)〉⇒σc(A.x,agg(B.z))
these events, one for each event. These
equivalence classes specify only the valid states of

ISSN 1988–3455 SISTEDES 2010 63


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

the input conditions because no DBMS is able to cases by generating a test case for each tuple in
execute any invalid state. It means that if there is the context relation (the relation in which the
any syntax error in the specification of these testing is performed).
events, the DBMS itself will reject this operation In this work, we will focus on applying the
by raising a compilation error. As in the case of invalid testing cases because we believe that their
the critical events, the validation of attribute executions contribute a certain confidence in
values of the input conditions is also carried out detecting possible defects in the tested application.
by the DBMS itself. This means that the input “Test cases representing unexpected and invalid
conditions must always be valid. input conditions seem to have a higher error-
For example, if we insert a tuple into a table, detection yield than do test cases for valid input
the DBMS first verifies the correctness of the conditions” [15].
inserted tuple before placing it into the Let us consider that a relation A contains the
corresponding table, or when a tuple is deleted following schema: A={a1.PK, …, an}, {(p1, …), (p2,
from a table, the DBMS validates first that the …), ……(pm, …)}. It has n attributes and m tuples,
deleted tuple exists in the corresponding table and a1 is the primary key of A. {p1, p2,…., pm} are
before deleting it. Nevertheless, from the database the primary keys values. The testing cases which
semantic point of view, it is possible to identify are defined on A are shown as follows:
two types of input conditions, valid and invalid
classes. For example, the insertion of t1(x, y) into tk={event(A.ai),Invalid(ai.value), (∀pj∈A,
a table could be valid for the semantic, while the j=1…m)}
insertion of t2(x, z) into the same table could be where (tk) is an index number for each test
invalid for the semantic. In these two cases, the case. The event(A.ai) is a critical event which
DBMS accepts the insertion, but the difference is modifies an associated attribute in the relation A.
that the first case produces a correct semantic This event can violate the expression rules shown
while in the second a false semantic is produced. in the previous section. The Invalid(ai.value) is the
In accordance with what we have stated above, associated invalid attribute value for that event.
table 1 specifies one valid class for each critical As we previously stated, we apply the invalid
event and two equivalence classes for each testing cases only. The (∀pj∈A, j=1…m) means
attribute value: one valid class when the attribute that the testing cases are applied for each primary
value fulfils the corresponding constraint and one key value (i.e., for each tuple) in the relation A.
invalid class when the attribute value does not According to standard SQL for the Delete and the
fulfil the constraint. Update events we can define a condition (WHERE
Once the valid and the invalid equivalence clause) to limit the modified tuples. For example,
classes are defined, in the next step the necessary using the condition (WHERE a1=pj) limits the event
testing cases corresponding to each one of these only on the tuple which has pj as a primary key
classes is derived. A test case is defined as a value. For the Insert event no such condition is
combination of classes from different needed. Therefore, the testing cases for insertion
classifications. For each test case exactly one class will be applied only once for each relation, and
of each classification is considered [14]. In the user needs to use a new primary key value to
addition to that, to increase the confidence level in apply the insertions.
our approach we will increase the number of these

ISSN 1988–3455 SISTEDES 2010 64


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Table 1.The valid and invalid equivalence classes of the rules expression

Rule Valid equivalence classes Invalid equivalence classes


Critical
Attribute values Attribute values
events
(1) (2) (3)
Ins(A.x) A.xΘV A.x¬ΘV
(a) (4) (5) (6)
Upd(A.x) A.xΘV A.x¬ΘV
(7) (8) (9)
Ins(A.x) A.xΘB.z A.x¬ΘB.z
(10) (11) (12)
Ins(B.z) A.xΘB.z A.x¬ΘB.z
(b) (13) (14) (15)
Upd(A.x) A.xΘB.z A.x¬ΘB.z
(16) (17) (18)
Upd(B.z) A.xΘB.z A.x¬ΘB.z
(19) (20) (21)
Ins(B.z) A.xΘagg(B.z) A.x¬Θagg(B.z)
(22) (23) (24)
Upd(A.x) A.xΘagg(B.z) A.x¬Θagg(B.z)
(25) (26) (27)
(c) Upd(B.z) A.xΘagg(B.z) A.x¬Θagg(B.z)
(28) (29) (30)
Del(A.x) A.xΘagg(B.z) A.x¬Θagg(B.z)
(31) (32) (33)
Del(B.z) A.xΘagg(B.z) A.x¬Θagg(B.z)
(34)
Ins(A.a) (35)
(count(B.a) Θ V) (36)
(count(B.a) ¬Θ V)
(37)
Ins(B.a) (38)
(count(B.a) Θ V) (39)
(count(B.a) ¬Θ V)
(d) (40)
Del(A.a) (41)
(count(B.a) Θ V) (42)
(count(B.a) ¬Θ V)
(43)
Del(B.a) (44)
(count(B.a) Θ V) (45)
(count(B.a) ¬Θ V)
(46)
Upd(B.a) (47)
(count(B.a) Θ V) (48)
(count(B.a) ¬Θ V)
(49)
Ins(A.a) (50)
A.a IN (πB.a(B) ∧ πC.a(C)) (51)
A.a ¬IN (πB.a(B) ∧ πC.a(C))
(52)
Ins(B.a) (53)
A.a ¬IN (πC.a(C)) (54)
A.a IN (πC.a(C))
(e) (55)
Ins(C.a) (56)
A.a ¬IN (πB.a(B)) (57)
A.a IN (πC.a(C))
(58)
Del(B.a) (59)
A.a IN (πC.a(C)) (60)
A.a ¬IN (πC.a(C))
(61)
Del(C.a) (62)
A.a IN (πB.a(B)) (63)
A.a ¬IN (πB.a(B))

Once the valid and the invalid equivalence classes


are defined, in the next step the necessary tests IF EXISTS σa THEN [
cases, corresponding to each one of these classes, t1..m={(4)Upd(A.ai),(6)x1..m¬ΘV,(p1)|(p2)|..|(pm)}
are derived. A test case is defined as a tm+1={(1)Ins(A.ai),(3)xm+1¬ΘV,:new.a1} ]
combination of classes from different That is, if a mechanism is implemented to
classifications. For each test case, exactly one enforce σa(A.a1) on the relation A then (m+1)
class of each classification is considered [17]. In testing cases are needed to validate this
addition to that, to increase the confidence level in mechanism. The tm+1 defines an insertion
our approach we will increase the number of these operation (1)Ins(A.ai), with the invalid class
cases by generating a test case for each tuple in (3)
x0¬ΘV. The (:new) is used to indicate that these
the context relation (the relation in which the
cases treat the insertion of new tuples. t1..m defines
testing is performed).
an update operation for the attribute (4)Upd(A.ai),
In order not to lengthen the paper, in this
with the invalid values (6)x1..m¬ΘV and where x1,
section we show how the testing cases of (σa) are
x2, …xm are any invalid values corresponding to
generated, the testing cases of the other rules are
the attribute ai.
generated in the same way.
Let us consider the same previous relation A.

ISSN 1988–3455 SISTEDES 2010 65


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

3.2. Transforming SQL Components into transformed into a related statement in a target
DBMS Testing Software Model DBMS (1 to 1). Here, we are also using a template
for each statement and for each DBMS. The
Although most Relational DBMS use SQL execution of these templates is done according to
components, there are some differences between a similar algorithm which has been shown in the
the specific characteristics of these DBMS. These case of mapping standard SQL queries to a target
differences make that testing software of one DBMS Select statement.
system cannot be used directly with another The following statement is used for mapping the
system without modification, although sometimes Update event as a DML statement corresponding
these differences are too small to be significant. to the expression rule (c) using the MS SQL
Once the standard SQL components are derived in Server.
the previous section, these components are DML_Upd:=“UPDATE Context_table SET
mapped to target DBMS testing software. The a=V WHERE PK=Value;”
mapping is performed directly, that is, each SQL
component is mapped into one related component The other invalid test cases of the expression rules
in a target DBMS (1 to 1). As shown in the are generated in the same way as the previous one.
following processes:
3.2.1 Mapping standard SQL queries to target 4. Application Example
DBMS Select statement
A standard SQL query is mapped to one Select In this section, an application example is
statement of a target DBMS. To do this mapping, presented. The aim of applying testing software is
DBMS Select templates are used. A select to ensure that the application fulfils the user
template is a generic query template in which requirements. To do that, the initial data, test
some values are established as parameters so that cases, and validation queries involved in this
different particular constraint situations can be process are automatically generated. These
derived by giving different values to the components are saved into text files which are
parameters. There is one template function for ready to be directly submitted to our tool. Before
each DBMS and for each expression rule starting the testing, the class diagram or schema
considered in this work. The below example, a (SCH) is divided into subschema (Sub1, Sub2, ……,
generic template of the expression rule (d) is Subn) or scenarios. Subi is a subschema which
presented to illustrate the transformation of the contain relations (R1, R2, …., Rm) and constraint
standard SQL query into Oracle 11g. defined for these relations.
Let us consider the following employees’
SELECT * FROM Context_table database; DEPT and EMP are two relations of a
WHERE PK IN subschema (Subi).
(SELECT FK FROM Related_table
GROUP BY FK HAVING COUNT(*) DEPT (deptno PK, name, budget);
Operator Value); EMP (empno PK, name, age, sal, deptno FK);
This select statement is used to validate the Let us consider that the following integrity
database state whenever a test case contains one constraints are defined in the above schema.
of the following critical events ((34)Ins(A.a), ℘a: “the age of an employee must be equal to or
(37)
Ins(B.a), (40)Del(A.a), (43)Del(B.a), (46)Upd(B.a)). more than 24”.
All other templates are applied in the same way as Context 〈EMP〉 〈self.age>=24〉
the previous one.
℘c: “the total salary of employees must not
3.2.2 Mapping test cases into target DBMS exceed the department’s budget”.
DML statement Context 〈EMP〉
Once the test cases are calculated according to 〈allInstances.sal->SUM()>self.DEPT.budget〉
what has been stated in section (3.1.3), mapping
the test case into standard DML statement is ℘d: “every department has at least two
performed directly; that is, each SQL statement is employees”.

ISSN 1988–3455 SISTEDES 2010 66


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Context 〈DEPT〉 〈self.navigation -> size() >= 1〉 t1..m={(25)Upd(EMP.salary),


(27)
x1..m<SUM(EMP.salary) , 1 | 2}
Validation Queries: tm+1={(19)Ins(EMP.salary),
(21)
The following clauses show the negation and the x1..m<SUM(EMP.salary) , 3}
SQL transformation of the constraints σa, σc, σd t1..n={(28)Del(DEPT.budget),
(30)
Respectively. x1..n<SUM(EMP.salary), 10}
σ
( EMP . age < 24 )
t1..m={(31)Del(EMP.salary),
σa ⇒
(33)
x1..m<SUM(EMP.salary), 1 | 2}
⇒ Select * From EMP Where age<24 …(Q1)
Therefore, debugging test cases are shown as
σ ( DEPT . budget < SUM ( EMP . salary )) follows:
σc⇒ Update DEPT Set budget=2000 Where
⇒ Select * From DEPT D Where deptno In deptno=10 ...(S4)
(Select deptno From EMP E Group By Update EMP Set salary=12000 Where
deptno Having D.budget < SUM(E.salary)) empno=1 …(S5)
...(Q2) Update EMP Set salary=8000 Where
⇒ Select SUM(salary) From EMP E empno=2 ...(S6)
Group By E.deptno Having deptno In Insert Into EMP Values (3, Emp3, 20, 15000,
(Select deptno From DEPT D Where 10) …(S7)
D.budget < SUM(E.salary)) …(Q3) c) To calculate the invalid test cases of ℘d, the
σ ( COUNT ( EMP . deptno ) < 2 )
following test cases are applied.
σd ⇒ tn+1={(34)Ins(DEPT.deptno),
⇒ Select COUNT(deptno) From EMP (36)
(count(EMP.deptno)<2), 20}
Group By deptno Having t1..m={(43)Del(EMP.empno),
COUNT(deptno)<2 …(Q4) (45)
(count(EMP.deptno)<2), 10}
t1..m={(46)Upd(EMP.deptno),
Initial Data: (48)
(count(EMP.deptno)<2), 1 | 2}
To make it easier for the reader, we will show a
t1..n={(40)Del(DEPT.deptno),
small number of tuples that have been inserted in (42)
(count(EMP.deptno)<2), 1 | 2}
the tables of the chosen scenario. These tuples
tm+1={(37)Ins(EMP.empno),
satisfy the conditions of the above constraints, as (39)
(count(EMP.deptno)<2), 3 }
follows:
With respect to the first test case (tn+1 =
DEPT(10, Dept1, 10000);
{(34)Ins(DEPT.deptno),……), we must take into
EMP (1, Emp1, 49, 1500, 10),
account that inserting a new department without
(2, Emp2, 33, 1100, 10);
any related employee will violate the ℘d,
Test Cases: therefore this test case is ignored. In addition, our
a) To calculate the invalid test cases of ℘a, the tool also ignores the test case (t1..n =
following testing rules are applied. {(40)Del(DEPT.deptno),….) because of the foreign
t1..m = {(4)Upd(EMP.age), (6)x1..m<24, 1 | 2} key definition. The case (tm+1 =
tm+1 = {(1)Ins(EMP.age), (3)xm+1<24, :new.age} {(37)Ins(EMP.empno),…….) is ignored too because
if an employee is inserted, this leads to increasing
These test cases are transformed into the the participation with the related department
following DML statements: which will not lead to the violation of the
Update EMP Set age=12 Where empno=1 …(S1) constraint (℘d). In this example, there is only one
Update EMP Set age=15 Where empno=2 ...(S2) department, therefore the tool ignores the test case
Insert Into EMP Values (3, Emp3, 20, 2600, 10); (t1..m = {(46)Upd(EMP.deptno),…..) because there is
…(S3) not a new generated value to be changed in
b) To calculate the invalid test cases of ℘c, the EMP.deptno. Thus, in this case the following
following test cases are applied. DML statements are generated:
t1..n={(22)Upd(DEPT.budget), Delete From Emp Where empno = 1 … (S8)
(24)
x1..n<SUM(EMP.salary), 10} Delete From Emp Where empno = 2 … (S9)

ISSN 1988–3455 SISTEDES 2010 67


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

As a result, our tool defines 8 test cases should not return any selected rows, which means
(s1,s2,…,s8) for the employees’ database that the data in EMP is still consistent. Of course,
example. In the next step, we submit the previous the examiner can include valid test cases for
test cases and the initial data to be evaluated evaluating the application software; in this case
according to the generated validation queries. The the tool will accept the modification and the
tool applies the DML statements upon the initial expected results “No selected row” of the
data and validates the results according to the validation queries is also returned because these
algorithms shown in section (3.1.2). The final queries are only looking for the rows which do not
results of the validation are reported as shown in fulfil the corresponding constraints. The results
table (3). For example, if the invalid test case S1 shown in table (2) ensure the consistency of the
is applied on the EMP table then our tool rejects generated initial data before applying them to
S1 and no modification is performed. Therefore, validate the application.
we apply the validation query Q1 to check if there
is any inconsistency data in EMP. Here the Q1
Table 2. Our tool report about the expected results when applying the test cases.
Validation
Cases Table Event Tool Action Expected Results
queries
S1 EMP Update Reject Q1 No selected row
S2 EMP Update Reject Q1 No selected row
S3 EMP Insert Reject Q1 No selected row
S4 DEPT Update Reject Q2 No selected row
S5 EMP Update Reject Q3 No selected row
S6 EMP Update Reject Q3 No selected row
S7 EMP Insert Reject Q3 No selected row
S8 EMP Delete Reject Q4 No selected row
S9 EMP Delete Reject Q4 No selected row

our approach to fill in some of the gaps that the


5. Conclusions current CASE tools generate during the
development of Relational databases. The paper
Active rules/triggers systems from many studies represents a first effort to check the viability of
are presented and some challenges and issues are this approach through some of the most widely
addressed to control the execution of these used constraints in the conceptual model. The
systems. One of these challenges is to encourage generation task of initial data was not considered
commercial CASE tools to cover all analysis in our approach, so that, as a future work we
phases with extended conceptual models. would like to incorporate a mechanism to generate
Using triggers means additional effort in database these types of data. In addition, we will adopt our
development because the triggers execution model tool to generate a huge volume of data in a totally
adds more complexity. Our principal objective in automated manner.
this work is to motivate database designers to use
triggers for completing semantic specifications
gathered in a conceptual schema through a CASE
tool which shows triggers execution associated
to a relational schema in an intuitive way.
It is true that various studies have led to important
results such as the creation of the current
commercial CASE tools and some research
prototypes to support software verification and
validation. Nevertheless, in the context of
Relational Databases we consider that current
practice is not sufficient. Therefore, we present

ISSN 1988–3455 SISTEDES 2010 68


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

[11] Cabot J., Teniente E., 2009, Incremental


Referencias Integrity Checking of UML/OCL Conceptual
Schemas. Journal of Systems and Software, vol
[1] OMG, 2007. Object Management Group, Inc. 82, issue 9, pp. 1459-1478.
http://www.omg.org/mda/ [12] Al-Jumaily H.T., Cuadra D., and Martínez P.,
[2] Kapfhammer G.M. and Soffa M.L., 2003. A 2008, OCL2Trigger: Deriving Active
Family of Test Adequacy Criteria for Mechanisms for Relational Databases Using
Database-Driven Applications. In The Journal Model-Driven Architecture. Journal of
Software Engineering Notes. VOL 28; PART Systems and Software, 81, pp. 2299-2314.
5, pages 98-107. [13] Pressman R. S. 2005. Software engineering: a
[3] Chays D., Dan S., Frankl P. G., Vokolos F., practitioner's approach. McGraw-Hill Higher
and Weyuker E. J., 2000. A Framework for Education.
Testing Database Applications. ACM [14] Lehmann E. and Wegener J. 2000. Test Case
SIGSOFT international symposium on Design by Means of the CTE XL. Proc. of the
Software testing and analysis. Portland, 8th European Inter. Conf. on Software Testing,
Oregon. Analysis & Review (EuroSTAR 2000),
[4] Deng Y., Frankl P.G., and Wang J., 2004. Kopenhagen, Denmark.
Testing web database applications. In Work. on [15] Myers G.J. 2004. The Art of Software
Testing Analysis and Verification of Web Testing, 2Ed, Editor: John Wiley & Sons. 2004
Services (TAV-WEB), USA, pp. 1-10. [16] D. Chays, S. Dan, P.G. Frankl, F. Vokolos,
[5] Chan M.Y. and Cheung S.C., 1999. Testing and E.J. Weyuker, 2000. A Framework for
Database Applications with SQL Semantics. In Testing Database Applications. ACM
the 2nd International Symposium on SIGSOFT international symposium on
Cooperative Database Systems for Advanced Software testing and analysis. Portland,
Oregon.
Applications (CODAS'99), Wollongong,
Australia, pp. 363-374 [17] E. Lehmann and J. Wegener, 2000. Test Case
[6] Kapfhammer G.M. and Soffa M.L., 2003. A Design by Means of the CTE XL. Proc. of the
Family of Test Adequacy Criteria for 8th European Inter. Conf. on Software Testing,
Analysis & Review (EuroSTAR 2000),
Database-Driven Applications. In The Journal
Software Engineering Notes. VOL 28; PART Kopenhagen, Denmark.
5, pages 98-107 [18] Elmasri, R. Navathe, S., 2000. Fundamentals
[7] Chan H.W.R., Dietrich S.W., Urban S.D. of Database Systems, Addison-Wesley, Third
Edition.
1997. On Control Flow Testing of Active
Rules in a Declarative Object-Oriented
Framework. Proc. of 3rd Intl. Workshop on
Rules in DatabaseSystems, RIDS 97, Skovde,
Sweden
[8] Jian Zhang , Chen Xu , S. C. Cheung,
Automatic Generation of Database Instances
for White-box Testing, Proceedings of the 25th
International Computer Software and
Applications Conference on Invigorating
Software Development, p.161-165, October
08-12, 2001
[9] Pressman R. S. 2005. Software engineering: a
practitioner's approach. McGraw-Hill Higher
Education.
[10] ISO/IEC 9075 Standard, 2003. Information
Technology – Database Languages –
SQL:2003 International Organization for
Standardization.

ISSN 1988–3455 SISTEDES 2010 69


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Análisis de Comunicaciones como un enfoque de requisitos para


el desarrollo dirigido por modelos

Marcela Ruiz Sergio España Arturo González Óscar Pastor


Centro de Investigación en Centro de Investigación en Departamento de Sistemas Centro de Investigación en
Métodos de Producción de Métodos de Producción de Informáticos y Métodos de Producción de
Software (ProS) Software (ProS) Computación Software (ProS)
Universidad Politécnica de Universidad Politécnica de Universidad Politécnica de Universidad Politécnica de
Valencia Valencia Valencia Valencia
lruiz@pros.upv.es sergio.espana@pros.upv.es agdelrio@dsic.upv.es opastor@pros.upv.es

Resumen influyente [1, 2]. Implicar adecuadamente al


El desarrollo de sistemas de información requiere usuario en el proceso de desarrollo permite la
de métodos de requisitos para fijar las necesidades detección y corrección temprana de errores e
de la organización. El paradigma del desarrollo de incrementa la aceptación del producto final [3].
software dirigido por modelos (DSDM) puede Una solución efectiva para implicar
dotar a los modelos de requisitos de un valor adecuadamente al usuario es la adopción de
añadido: el potencial para derivar de ellos los prácticas de ingeniería de requisitos. Sin embargo,
modelos conceptuales que servirán para la la adopción de métodos de ingeniería de requisitos
generación automática de software. Este artículo por parte de la industria no responde a las
presenta la integración del Análisis de expectativas de la comunidad científica [4]. Entre
Comunicaciones, en OO-Method, un entorno de los factores que dificultan la adopción industrial,
DSDM orientado a objetos. Se presenta el proceso destacan la inherente complejidad de la ingeniería
de integración, distinguiendo dos etapas: el de requisitos, la falta de entrenamiento en los
soporte a la diagramación y el establecimiento de nuevos métodos propuestos y la actitud reticente
transformaciones de modelos. Se describe en de los agentes industriales [5].
detalle la primera etapa, que ya ha sido concluida El auge del paradigma DSDM, puede permitir
con éxito, en la que se diferencia un metamodelo resolver algunas dificultades de la ingeniería de
independiente de plataforma y un metamodelo requisitos. Puesto que las especificaciones de
dependiente de la plataforma elegida para la requisitos constituyen un modelo abstracto de la
implementación de las herramientas (Eclipse práctica industrial que debe soportar el software,
Modeling Framework). La herramienta ha sido resultan compatibles con el DSDM [6]. Este
validada por expertos en el método y por usuarios. paradigma permite aprovechar los modelos, no
solo para documentar y comunicar las necesidades
Palabras claves: DSDM, Análisis de de la organización respecto al SI, sino también
Comunicaciones, ingeniería de requisitos, para derivar modelos posteriores. Este valor
metamodelado. añadido mejora el retorno de inversión de los
modelos de requisitos y, por lo tanto, puede
facilitar su adopción industrial.
1. Introducción
A la Ingeniería de Requisitos se le plantea el reto
de proveer métodos aplicables en entornos de
El desarrollo de sistemas de información DSDM, así como estrategias de transformación de
empresariales (SI) es una actividad de gran modelos. Este reto se puede afrontar de, al
complejidad socio-tecnológica. Pese a una menos, dos maneras: (i) bien mediante la
evolución favorable del ratio de éxito en proyectos provisión de nuevos métodos que hayan sido
software, las últimas cifras arrojadas por los concebidos dentro del paradigma del DSDM (p.e.
informes CHAOS revelan todavía un 68% de [7]), (ii) o bien mediante la integración de
proyectos fracasados o amenazados [1]. Academia métodos existentes en entornos de DSDM (p.e.
e industria coinciden en señalar, entre los factores [8]).
de riesgo que amenazan los proyectos software, la El presente trabajo sigue el camino ii) mediante la
falta de participación del usuario como el más integración del Análisis de Comunicaciones, en el

ISSN 1988–3455 SISTEDES 2010 70


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

marco de OO-Method. El objetivo es proveer un comunicativo se describe mediante una plantilla


entorno completo de desarrollo de SI que permita de especificación (4). Los objetos de negocio se
partir del modelado de requisitos, derivar y especifican con más detalle (5). A continuación, la
completar el modelo conceptual y generar la interfaz se diseña para dar soporte a la
aplicación software final mediante compilación de comunicación asociada a los sucesos (6). Se
modelos. El artículo contribuye con la procede al modelado de la memoria del sistema
presentación del proceso de integración, así como (7).
con la descripción detallada de la primera etapa, En este artículo se presenta un metamodelo y una
que incluye la integración teórica, el herramienta cuyo objetivo es la especificación de
metamodelado de los métodos, la implementación los niveles 1, 2 y 3 de requisitos propuestos por el
de una herramienta de modelado y su validación. Análisis de Comunicaciones, centrándose en la
El artículo está estructurado de la siguiente perspectiva dinámica. La perspectiva estática
manera. La Sección 2 presenta el método de encuentra soporte en muchas técnicas ya
ingeniería de requisitos Análisis de consolidadas.
Comunicaciones. La Sección 3 describe la El Análisis de Comunicaciones ha sido validado
integración del Análisis de Comunicaciones en el de varias maneras complementarias, Se han
entorno de desarrollo dirigido por modelos OO- realizado varios experimentos, donde se ha
Method. La Sección 4 presenta la validación de la buscado analizar la calidad, completitud y
propuesta. Por último, la Sección 5 comenta las cantidad de errores cuando se realizan modelos
lecciones aprendidas, presenta las conclusiones y conceptuales teniendo como base éste método
anticipa trabajos futuros. [19]. El método se aplica actualmente en grandes
proyectos de entornos industriales. Estas
2. Aproximación comunicacional a la experiencias demuestran que el método puede ser
ingeniería de requisitos adoptado y puesto en práctica con éxito por
equipos de desarrollo.
Los SI son sistemas socio-técnicos, un conjunto
de agentes de diferente naturaleza que colaboran 3. Integración en un entorno de DSDM
con el fin de soportar las comunicaciones dentro
de una organización y con su entorno [11]. Por 3.1. Proceso de integración
esto, el Análisis de Comunicaciones es un método
de ingeniería de requisitos que propone afrontar el Con el objetivo de integrar el método de Análisis
análisis de SI desde una perspectiva de Comunicaciones en el entorno (DSDM) OO-
comunicacional [12]; es decir, la captura, análisis, Method, hemos distinguido dos etapas principales
especificación y verificación de requisitos se con dos fases cada una (figura 2).
centran en las necesidades de comunicación de la El punto de partida para este trabajo es una
organización. El Análisis de Comunicaciones definición del Análisis de Comunicaciones basada
propone una estructura de requisitos que permite en manuales metodológicos que incluyen
una aproximación por refinamientos sucesivos. La descripciones de las actividades del método y las
Figura 1 muestra los cinco niveles de requisitos notaciones para los diagramas, así como plantillas
propuestos por el Análisis de Comunicaciones y de especificación y ejemplos ilustrativos. Es
las actividades asociadas a cada nivel, solo posible aplicar el método para especificar los
incluye actividades relacionadas con la requisitos usando papel y lápiz, por lo que puede
especificación de requisitos; aquellas relacionadas afirmarse que su descripción de partida es
con la captura, análisis, verificación y gestión se independiente de computación. La etapa 1 se
omiten para simplificar. La justificación de la ocupa de adaptar el Análisis de Comunicaciones
aproximación y la estructura propuesta se presenta para permitir su integración en un entorno DSDM.
en [13]. En proyectos complejos, el sistema Consiste en el análisis y especificación teórica del
completo se refina en subsistemas (1). Cada método de requisitos (fase 1) y el diseño e
proceso se modela mediante un diagrama de implementación de una herramienta de
sucesos comunicativos (2). Se identifican los diagramación (fase 2).
principales objetos de negocio (3). Cada suceso

ISSN 1988–3455 SISTEDES 2010 71


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 1. Estructura básica y flujo de actividades del Análisis de Comunicaciones

La etapa 2 se ocupa de la definición de las diagramación, que se lleva a cabo siguiendo un


transformaciones de modelos con el fin de derivar proceso iterativo incremental. Se han realizado
modelos conceptuales a partir de modelos de tres iteraciones, en las cuales las sucesivas
requisitos; consiste en el análisis y especificación versiones de la herramienta se someten a distintos
teórica de las reglas de derivación (fase 3) y el tipos de validación. La fase 3 básicamente se
diseño e implementación de un módulo de ocupa de la definición de guías que permitan a un
transformación de modelos (fase4). La fase 1 analista derivar el modelo conceptual a partir del
consta de un análisis ontológico que permite modelo de requisitos. Puesto que el objetivo es
establecer correspondencias entre elementos de independiente de plataforma, consideramos que se
una ontología de referencia [14] y las primitivas trata de Guías de derivación PIM. Para ello es
de modelado del método. También se realiza el posible apoyarse en el alineamiento conceptual de
diseño del metamodelo correspondiente a los ambos métodos (las correspondencias entre sus
modelos del Análisis de Comunicaciones. A este primitivas de modelado razonadas a partir de las
nivel, el Análisis de Comunicaciones se describe correspondencias de cada método con respecto a
sin tomar en consideración la tecnología de la ontología de referencia). La fase 4, se concentra
implementación. en la definición de reglas de transformación y su
Consideramos que el resultado de esta fase implementación sobre EMF (se toma como base la
proporciona una descripción del método que es especificación del lenguaje QVT [16]).
independiente de plataforma y, por tanto, es Consideramos que son dependientes de plataforma
llamado Metamodelo PIM de Análisis de y las llamamos Reglas de transformación PSM.
Comunicaciones. La fase 2 implica el diseño e Las reglas se implementarán como un módulo
implementación de una herramienta que soporte el (plug-in) de transformación de modelos integrado
método y facilite la integración en un entorno de con la herramienta de diagramación. Actualmente
DSDM, para lo cual es necesario especificar el la etapa 1 ha sido completada con éxito y está
metamodelo del Análisis de Comunicaciones comenzando análisis y especificación teórica de
tomando en consideración la plataforma Eclipse las transformaciones de modelos (etapa 2, fase 3).
Modeling Framework (EMF) [15] sobre la que se
ha elegido desarrollar la herramienta. Se trata, por 3.2. Metamodelado
tanto, de un metamodelo específico para EMF, al
que llamamos Metamodelo PSM del Análisis de Durante el proceso de integración se puso de
Comunicaciones. El siguiente paso es la manifiesto que convenía razonar el metamodelado
implementación de la herramienta de del Análisis de Comunicaciones a dos niveles.

ISSN 1988–3455 SISTEDES 2010 72


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 2. Proceso de integración del Análisis de Comunicaciones en OO-Method

Por un lado, el nivel independiente de plataforma como en la claridad de las definiciones. La


permite describir los lenguajes de modelado que especificación al nivel de la plataforma EMF (ver
ofrece el método desde una perspectiva teórica, Metamodelo PSM de Análisis de Comunicaciones
sin preocuparse de las particularidades de la en la Figura 4) permite su implementación. Este
plataforma de implementación de la herramienta metamodelo se ha elaborado a partir de las
de soporte. El Metamodelo PIM del Análisis de especificaciones y restricciones que tiene Eclipse
Comunicaciones (ver Figura 3) está expresado para modelos de UML 2.0. El metamodelo PSM
mediante un diagrama de clases de UML y contiene todas las metaclases del metamodelo
construido usando una librería de formas para PIM, y adicionalmente contiene metaclases
Microsoft Visio [18]. necesarias para la implementación. Por ejemplo,
Más adelante este metamodelo es punto de partida las metaclases MODEL y ELEMENT son requeridas
para definir un Metamodelo PSM del Análisis de por EMF como contenedores de elementos, la
Comunicaciones adecuado para el desarrollo de la primera, como contenedora global de elementos
herramienta de diagramación y la definición de del modelo, y la segunda para establecer el
Guías de derivación PIM. contenedor de los elementos gráficos del modelo.
Para la elaboración de este metamodelo se ha Las metaclases STICKY_FIGURE_PRIMARY y
realizado un análisis de la superestructura de STICKY_FIGURE_RECEIVER son necesarias para
UML; especialmente donde se define el Diagrama proporcionar la primitiva gráfica que permite
de Actividad, debido a su similitud con el representar los actores primario y receptor del
Diagrama de Sucesos Comunicativos (por la gran sistema. Adicionalmente, el metamodelo
similitud de sus primitivas y formas de uso). Se ha especifica tipos de datos para los atributos, roles y
empleado principalmente el subconjunto que cardinalidades.
define el concepto de nodo interconectado y el uso
de las compuertas lógicas. El significado de cada 3.3. Soporte a la diagramación
metaclase se ha clarificado usando una plantilla de
especificación que se encuentra registrada en el Para la construcción del diagramador se ha
reporte técnico que puede ser accedido en [23]. usado el metamodelo PSM, el plug-in EMF, las
El metamodelo fue evaluado varias veces por un herramientas proporcionadas por el componente
experto en el método, en cada iteración, el experto Graphical Modeling Framework, y el soporte de
aportaba sus sugerencias y correcciones en la OCL. Se ha desarrollado la especificación gráfica,
interpretación de las características del método. una barra de herramientas, restricciones, y
Dichas evaluaciones se realizaron hasta que el definición del entorno de diagramación.
metamodelo fue válido tanto en expresividad

ISSN 1988–3455 SISTEDES 2010 73


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 3. Metamodelo PIM del Análisis de Comunicaciones

El uso de la infraestructura Eclipse acarrea usuarios (user testing). Respecto a la evaluación


grandes ventajas, como el apoyo de una heurística, un experto en el método probó la
comunidad de desarrollo de código abierto, y herramienta para garantizar la expresividad de los
permitirá su inclusión en la herramienta MOSKitt modelos y para elaborar un primer informe de su
[17], una plataforma promovida por la Conselleria usabilidad. Como reglas heurísticas se han
d'Infraestructures i Transport de la Comunidad empleado los 10 principios propuestos por Nielsen
Valenciana que provee un entorno versátil y [20] y para especificar los problemas encontrados
extensible gracias a su arquitectura de plug-ins. durante la evaluación heurística, se ha empleado
Adicionalmente, Moskitt tiene implementado un la plantilla CUP adaptada a las necesidades de la
soporte para los modelos conceptuales de UML y evaluación efectuada [21]. Se encontraron un
BPMN, lo cual garantiza que dichos modelos total de 4 problemas de expresividad y 25
pueden ser empleados en la fase de problemas de usabilidad, que fueron priorizados.
transformación de modelos. En la Figura 5 se Tras la corrección de aquellos más severos se
puede apreciar una captura realizada a un modelo obtuvo una versión mejorada de la herramienta de
de Análisis de Comunicaciones desarrollado en la modelado. A partir de esta versión mejorada se
herramienta de modelado. llevó a cabo una evaluación de usabilidad con 24
Adicionalmente, la herramienta puede ser usuarios cuyo perfil es cercano al usuario final de
descargada de [23]. la herramienta.
Para la evaluación, primero se realizó una
4. Validación de la herramienta demostración sobre el uso básico de la
herramienta, luego, los usuarios podían explorar
La herramienta de diagramación construida debe la. Un modelo de Análisis de Comunicaciones era
soportar plenamente el método para que el analista entregado a los usuarios en formato impreso, éstos
pueda desempeñar su labor con eficacia y debe debían tomar dicho modelo, e informatizarlo
proporcionar una interfaz usable para incrementar empleando la herramienta. Después, los usuarios
su eficiencia. Para cumplir con este objetivo, se completaron un cuestionario demográfico y unas
han realizado las siguientes validaciones de la cortas preguntas donde se podía analizar el grado
de conocimientos en herramientas de modelado,
herramienta (véase la fase 2 en la Figura 2): una
evaluación heurística de usabilidad y de modelado de procesos de negocio y Análisis de
Comunicaciones.
expresividad, y una evaluación de usabilidad con

ISSN 1988–3455 SISTEDES 2010 74


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 4. Metamodelo PSM del Análisis de Comunicaciones

Adicionalmente, los usuarios completaban el Monitoreo y expresión de reglas de negocio; dicha


cuestionario de usabilidad CSUQ [22] con unas herramienta es de distribución comercial.
preguntas de respuesta libre que indagaban sobre Moskitt es un marco de modelado desarrollado
las percepciones acerca de la herramienta. bajo Eclipse, que incluye plug-ins para soportar
Finalmente se llevó a cabo una sesión de mesa las notaciones de BPMN y UML [10], Dicha
redonda, donde cada usuario expresaba en voz alta herramienta es de distribución libre y goza de los
sus apreciaciones, características positivas y beneficios de pertenecer a una comunidad de
negativas, mejoras sobre la herramienta. Luego de desarrollo de código abierto, como se ha
esta evaluación de usabilidad, se han recolectado explicado anteriormente. Recientemente se ha
una cantidad considerable de mejoras a la desarrollado un plug-in para Microsoft Visio por
herramienta, donde se han identificado diferentes parte de la compañía Interfacing Technologies
tipos de problemas de usabilidad y expresividad Corporation [18] el cual permite dar un soporte a
presentes, tanto en problemas desde el diseño de la diagramación de modelos de BPMN, la
metamodelo PSM, como problemas que acarrea la distribución de la misma es a nivel comercial.
tecnología Eclipse. A pesar de dichos problemas, Todas estas herramientas se enfocan
en general, los usuarios manifestaron que la principalmente en proveer un entorno para
herramienta era fácil, ágil y permitía llevar a cabo elaborar modelos de BPM y/o Diagrama de
la totalidad de la tarea impuesta a realizar. Actividades de UML. Aunque cabe resaltar que
ninguna de estas herramientas ofrece un soporte
5. Trabajos relacionados para representar modelos enfocados a las técnicas
de Análisis de Comunicaciones y adicionalmente
en su mayoría, no son de código libre y su
Actualmente existen diferentes herramientas
destinadas a soportar el modelado de procesos de distribución es solo a nivel comercial.
negocio.
AuraPortal BPM [9] es un software que ofrece 6. Conclusiones y trabajos futuros
herramientas para la gestión empresarial. El
modulo de BPM permite dar soporte a la gestión La conveniencia de disponer de diversas
de proyectos, el cual ofrece un control de los estrategias para la ingeniería de requisitos que se
detalles a nivel de Modelos, Orquestación, puedan usar para llevar a cabo DSDM motiva esta
investigación.

ISSN 1988–3455 SISTEDES 2010 75


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 5. Modelo de Análisis de Comunicaciones desarrollado en la herramienta de modelado

El objetivo es integrar el Análisis de la puesta en práctica de un proyecto piloto para


Comunicaciones, un método de ingeniería de validar el nuevo entorno de DSDM.
requisitos orientado a comunicaciones, con OO-
Method, un entorno de DSDM orientado a Agradecimientos
objetos. De esta manera se podrá ofrecer una
aproximación al DSDM que abarque desde la
Esta investigación ha sido soportada por el
captura de requisitos hasta la generación Ministerio Ciencia e Innovación de España bajo el
automática de código.
proyecto SESAMO (TIN2007-62894) y el
El artículo contribuye con la definición de un programa FPU (AP2006-02323), por la
proceso de integración que tiene el potencial para Generalitat Valenciana bajo el proyecto ORCA
ser instanciado con otros métodos y entornos (PROMETEO/2009/015), y fondos FEDER.
DSDM. Asimismo, la diferenciación de dos Manifestamos nuestro agradecimiento a Mario
niveles de metamodelado se justifica con la Cervera y a Jean Vanderdonckt por su amable
posibilidad de separar el razonamiento del colaboración y disposición.
metamodelo del método sin considerar una
plataforma de implementación, del razonamiento
de un metamodelo para su implementación en una Referencias
plataforma específica. Se describen también las
validaciones que se han efectuado de la [1] The Standish Group, CHAOS Summary 2010.
herramienta, una evaluación de usabilidad 2010, The Standish Group International, Inc.
heurística y de expresividad, y una evaluación de [2] Bussen, W. and M.D. Myers, Executive
usabilidad con usuarios. information system failure: a New Zealand
Actualmente se trabaja en definir las guías de case study. Journal of Information
derivación de modelos conceptuales a partir de Technology, 1997. 12: p. 145-153.
modelos de requisitos. Como trabajos futuros se [3] Foster, S.T. and C.R. Franz, User involvement
contempla la finalización de la etapa 2. La during information systems development: a
integración de las herramientas desarrolladas en el comparison of analyst and user perceptions of
entorno MOSKitt y a revisar los manuales system acceptance. Journal of Engineering
metodológicos para documentar la aplicación de and Technology Management, 1999. 16: p.
los métodos usando MOSKitt. También se planea, 329-348.

ISSN 1988–3455 SISTEDES 2010 76


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

[4] Juristo, N., A. Moreno, and A. Silva, Is the Business Strategies to Enterprise
European industry moving toward solving Architectures (PoEM 2008), J. Stirna and A.
Requirements Engineering problems? IEEE Persson, Editors. 2008, Springer LNBIP 15:
Softw., 2002. 19(6): p. 70-77. Stockholm, Sweden. p. 62-76.
[5] Zowghi, D. and C. Coulin, Requirements [14] Pastor, O., S. España, and A. González, An
elicitation: a survey of techniques, approaches ontological-based approach to analyze
and tools in Engineering and managing software production methods, in Information
software requirements, A. Aurum and C. Systems and e-Business Technologies. United
Wohlin, Editors. 2005, Springer-Verlag New Information Systems Conferences (UNISCON
York, Inc. p. 19-46. 2008), R. Kaschek, et al., Editors. 2008,
[6] Nuseibeh, B. and S. Easterbrook, Springer Lecture Notes in Business
Requirements Engineering: a roadmap, in Information Processing (LNBIP): Klagenfurt,
Conference on The Future of Software Austria. p. 258-270.
Engineering, in ICSE'00. 2000, ACM: [15] Eclipse. Eclipse Modeling Framework
Limerick, Ireland. p. 35-46. (EMF). 2010 05-2010]; Available from:
[7] Kabanda, S. and M. Adigun, Extending model http://www.eclipse.org/modeling/emf/.
driven architecture benefits to requirements [16] OMG. Meta Object Facility (MOF) 2.0
engineering, in 2006 Annual Research Query/View/Transformation specification
Conference of the SAICSIT on IT Research in (version 1.0). 2008 [cited 2010 05/2010];
Developing Countries. 2006, South African Available from:
Institute for Computer Scientists and http://www.omg.org/spec/QVT/1.0/.
Information Technologists: Somerset West, [17] CIT. MOSKitt: MOdeling Software Kitt.
South Africa. p. 22-30. 2010 [cited 2010 05-2010]; Available from:
[8] Alférez, M., et al., A model-driven approach http://www.moskitt.org/.
for software product lines requirements [18] Visio Stencil and Template for UML 2.2;
engineering, in 20th International Conference Available from:
on Software Engineering & Knowledge http://softwarestencils.com/uml/index.html.
Engineering (SEKE'2008). 2008: San [19] España, S., et al., An empirical comparative
Francisco, USA. p. 779-784. evaluation of requirements engineering
[9] AuraPortal BPMS; Available from: methods. J. Braz. Comp. Soc., 2010. 16(1): p.
http://www.auraportal.com 3-19.
[10] MOSKitt Módulo para Modelado de [20] Nielsen, J., Heuristic evaluation, in Usability
Procesos; Available from: inspection methods, J. Nielsen and R.L. Mack,
http://www.moskitt.org/cas/moskitt-modulos- Editors. 1994, John Wiley and Sons: New
funcionales/. York, USA.
[11] Lockemann, P.C. and H.C. Mayr, [21] Vilbergsdóttir, S.G., E.T. Hvannberg, and
Information system design: techniques and E.L.-C. Law, Classification of usability
software support, in Information Processing problems (CUP) scheme: augmentation and
86, H.-J. Kugler, Editor. 1986, North-Holland: exploitation, in 4th Nordic Conference on
Amsterdam, The Netherlands. Human-Computer Interaction: changing
[12] España, S., A. González, and Ó. Pastor, roles. 2006, ACM: Oslo, Norway. p. 281-290.
Communication Analysis: a Requirements [22] Lewis, J.R., IBM computer usability
Engineering method for information systems, satisfaction questionnaires: psychometric
in 21st International Conference on Advanced evaluation and instructions for use. Int. J.
Information Systems (CAiSE'09). 2009, Hum.-Comput. Interact., 1995. 7(1): p. 57-78.
Springer LNCS 5565: Amsterdam, The [23] Communicational Analysis Tools; Available
Netherlands. p. 530-545. from:
[13] González, A., S. España, and Ó. Pastor, http://hci.upv.es/communicational_analysis_to
Towards a communicational perspective for ols/
enterprise Information Systems modelling, in
IFIP WG 8.1 Working Conference on The
Practice of Enterprise Modeling: from

ISSN 1988–3455 SISTEDES 2010 77


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Modernizing Legacy Systems through Runtime Models

Ricardo Pérez-Castillo1, Barbara Weber2, Ignacio García-Rodríguez de Guzmán1 and


Mario Piattini1
1
Alarcos Research Group, University of Castilla-La Mancha
Paseo de la Universidad, 4 13071, Ciudad Real, Spain
{ricardo.pdelcastillo, ignacio.grodriguez, mario.piattini}@uclm.es
2
University of Innsbruck
Technikerstraße 21a, 6020 Innsbruck, Austria
barbara.weber@uibk.ac.at

Resumen written long time ago and in the meantime is


technologically obsolete. Legacy Information
Software modernization advocates reengineering Systems (LISs) are information systems that
processes for legacy information systems taking significantly resist modification and evolution to
model-driven development principles into meet new and constantly changing business
account. Modernization projects consider different requirements [19]. The continuous evolution
legacy software artifacts as knowledge sources implies that the maintainability of LISs eventually
like, for example, source code, databases, user diminishes below acceptable limits requiring the
interfaces. In addition, the knowledge necessary to LISs to be modernized [15]. Modernization means
modernize a respective legacy system is extracted that the LIS is re-implemented using another,
by analyzing the legacy artifacts in a static way. better platform or an enhanced design, while the
Unfortunately, there is a large amount of business knowledge of the system is preserved
knowledge that is only known during system [11]. When a LIS evolves over time it embeds
execution. Thus, this paper suggests a technique much business knowledge. The preservation of
based on dynamic analysis of source code to this knowledge during system modernization is a
obtain runtime models representing the system very important challenge to be addressed for two
execution events. The technique is contextualized main reasons: (i) the embedded knowledge is not
within MARBLE, a modernization framework to present in any other artifact, and (ii) it must be
obtain business processes form legacy information considered to align the new improved system with
systems. Firstly, the technique obtains a runtime the current business processes of the organization
model that represents events related to the [9].
execution of the business activities of the business In the past, reengineering was the main tool
processes supported by the legacy system. for addressing the evolutionary maintenance of
Secondly, a model transformation is proposed to legacy systems preserving the business knowledge
obtain a higher-level model from the runtime [1]. However, reengineering is usually carried out
model, which is represented according to an in an ad hoc manner, thus it fails when it is
extended event metamodel of the Knowledge- applied to large and complex LISs [23]. Since
Discovery Metamodel standard. As a reengineering lacks formalization and
consequence, the runtime model can be integrated standardization it is very difficult to automate
and used in any modernization scenario in a reengineering for those large systems. Nowadays,
standardized manner. the typical reengineering concept has shifted to
so-called Architecture-Driven Modernization
1. Introduction (ADM) [16] as a solution to the formalization and
standardization problems. ADM advocates
carrying out reengineering processes following the
Most companies have existing information
MDA (Model-Driven Architecture) standard [12],
systems which can be considered as legacy
i.e., it treats all the legacy software artifacts as
systems, because the code in these systems was

ISSN 1988–3455 SISTEDES 2010 78


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

models and establishes model transformations execution. The events are written according to the
between the different MDA abstraction levels. In MXML (Mining XML) metamodel [8], an XML
addition, ADM defines the standard KDM format used in the process mining field to obtain
(Knowledge Discovery Metamodel), which has event logs. The proposed technique is further
also been recognized as standard ISO 19506 [10]. supported by specific information provided by
KDM provides a common repository structure that business experts and system analysts who know
makes it possible to exchange information about the system.
existing software artifacts involved in LISs. KDM The runtime models represent the events
can be compared with the Unified Modeling related to the underlying business processes that
Language (UML) standard; while UML is used to occur during system execution, thus these models
generate new code in a top-down manner, ADM- provide another valuable source of knowledge to
based processes involving KDM start from the understand what is actually going on in a LIS
legacy source code and build a higher level model from a dynamic perspective [24]. To facilitate the
in a bottom-up manner [13]. use of runtime models for modernizing LISs, this
There are several works in literature that paper provides a model transformation between
address the problem of preserving the embedded levels L1 and L2 of the MARBLE framework to
business knowledge in software modernization represent the runtime models according to the
processes. Zou et al developed a MDA-based KDM standard. Due to the fact that KDM is
framework for extracting business processes considered as the common modernization format
through static analysis of source code based on a for representing any legacy artifacts, these models
set of heuristic rules [26]. Pérez-Castillo et al. can be used for any modernization framework.
[20] propose MARBLE, an ADM framework that The remainder of this paper is organized as
uses the KDM standard to obtain business follows. Section 2 briefly introduces MARBLE,
processes from legacy source code. Source code, the modernization framework for which the
however, is not the only legacy artifact considered technique is proposed. Section 3 presents the
to recover business knowledge. Di reverse engineering technique to obtain runtime
Francescomarino et al, for example, consider models, and Section 4 shows the model
graphical user interfaces of Web applications to transformation defined to represent runtime
recover business processes [5]. Paradauskas et al. models in KDM. Finally, Section 5 provides
[19], in turn, present a framework to recover conclusions and discusses future work.
business knowledge through the inspection of the
data stored in databases. Ghose et al [7] propose a 2. MARBLE
set of text-based queries in source code and
documentation for extracting business knowledge. MARBLE (Modernization Approach for
In addition, Cai et al. [2] propose an approach that Recovering Business processes from LEgacy
combines the requirement reacquisition aided by systems) [20] is an ADM-based framework for
system users with static analysis. All these works
recovering business processes from legacy
are mainly based on a static view of LISs, and systems and business knowledge preservation.
runtime models are often ignored to preserve the MARBLE is organized into four abstraction levels
business knowledge. However, since there exists (cf. Section 2.1) representing four different kinds
much valuable information that is only known of artifacts needed to obtain the embedded
during system execution, there is a big potential business processes. In addition, MARBLE
for exploiting runtime knowledge as well. specifies three model transformations (cf. Section
This paper presents, within MARBLE, a 2.2) to complete the path obtaining each kind of
reverse engineering technique based on dynamic model at a specific level from the previous one
analysis (combined with static analysis) of source (see Figure 1).
code to obtain runtime models. Firstly, the static
analysis syntactically analyzes the source code
and injects pieces of source code in a non-invasive 2.1. Abstraction levels defined in MARBLE
way in specific parts of the system. Secondly, the
dynamic analysis of the modified source code MARBLE defines four abstraction levels related
makes it possible to write events during system to four different kinds of models: L0 to L3. These

ISSN 1988–3455 SISTEDES 2010 79


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

models are progressively refined from legacy model, but at a higher abstraction level. This
software artifacts in L0 until business process model represents the entire LIS from a
models are obtained in L3 (see Figure 1). platform-independent point of view at an
 L0. Legacy information system. This level intermediate abstraction level (PIM). This
represents the entire legacy system in the real model is represented according to the
world, i.e. a set of interrelated software metamodel of the KDM standard. KDM
artifacts like source code, user interfaces, provides a common repository structure that
databases, documentation. makes it possible to exchange information
 L1. Software artifacts models. This level about artifacts involved in the LIS.
contains a set of models representing one or  L3. Business process model. L3 is the top
more software artifacts of the LIS. L1 models level and corresponds to a business process
can be seen as platform-specific models model that represents the recovered business
(PSM) because they represent different views processes. This model can be seen as
or concerns of the system from a computer-independent models (CIM), since it
technological point of view at a lower depicts a business view of the system from a
abstraction level. As a consequence, L1 computation independent viewpoint at the
models must be represented according to highest abstraction level. MARBLE uses the
specific metamodels (e.g. a hypothetic L1 metamodel of the BPMN (Business Process
level could be formed by a code model Modeling and Notation) standard [18] for
represented according to the Java metamodel representing the business process model.
and a database model depicted according to BPMN offers a well-known graphical notation
the SQL metamodel). that is easily understood by both system
 L2. KDM model. This level integrates all analysts and business experts.
knowledge of the L1 models in a single

QVT transformations based on


pattern matching and business
expert refinement

L2  L3 PSM to PIM model


transformation
implemented through QVT
Reverse engineering techniques

L1  L2
MM
applied to different software L3
artifacts as static/dynamic (BPMN)
analysis, slicing, and so on

L0  L1
MM L2
KDM
(KDM)

MML1
(Java MM)
code{
}

L0. L1. L2. L3.


LIS LIS models KDM models BP models

Figure 1. Abstraction level organization and model transformation in MARBLE.

ISSN 1988–3455 SISTEDES 2010 80


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

2.2. Model transformations in MARBLE pieces of the source code (represented in the
KDM model) are transformed into well-
Besides different abstraction levels, MARBLE known structures of business processes. Then,
defines three model transformations between the the pattern matching following those patterns
four abstraction levels (see Figure 1). is implemented using QVT [22].
 L0-to-L1 transformation. The first
transformation takes the different software 3. A Technique to Obtain Runtime models
artifacts from the LIS (L0) and obtains a
specific model for each artifact (L1). This Despite source code models are valuable models
transformation takes software artifacts into at level L1 of MARBLE, there are specific,
account depending on the specific business relevant aspects of the source code (e.g. the
process recovery method based on MARBLE accurate execution order of the pieces of source
(since MARBLE defines a generic code, dead source code) which are lost if only
framework). So far, we consider a recovery static analysis is used. Thus, dynamic analysis can
method using MARBLE, which considers be used together with static analysis, additionally
legacy source code as the unique software considering knowledge related to system
artifact, since it is the artifact that embeds execution, to obtain more meaningful business
most business knowledge [14]. In this case, knowledge. For this reason, we propose a
the L0-to-L1 transformation consists of the technique based on dynamic analysis to extract
static analysis of the source code files carried runtime models at level L1 of MARBLE.
out by means of a syntactical parser, which The technique proposes the representation of
generates a source code model according to runtime models as event logs derived from the
the proper metamodel. system execution. Event logs are commonly used
 L1-to-L2 transformation. The second in the process mining field as the input for several
transformation establishes the model mining algorithms to discover the business
transformation between the code model (the process of an organization [3]. Thereby, event
PSM model in L1) and the KDM code model logs save the list of business activities carried out
(the PIM model in L2). The KDM metamodel in an organization according to their business
is divided into different metamodel packages processes. Usually, these event logs are obtained
organized into four abstraction layers. Each from Process-Aware Information Systems (PAIS)
package focuses on modeling a different [6], i.e., process management systems (e.g.
concern of the LIS. Currently, the KDM Enterprise Resource Planning (ERP) or Customer
model in L2 only considers the KDM Relationship Management (CRM) systems). The
packages code and action that conform to the nature of these systems (in particular their
program element layer. These packages are process-awareness) facilitates the registration of
enough to represent all concepts of the code events throughout process execution.
models of L1 at a higher abstraction level in The vast majority of LISs, however, are non
L2. This model transformation is formalized process-aware systems that also support the
by means of QVT (Query / Views / business processes of organizations. Obtaining an
Transformations) [17]. event log of a non process-aware system and
 L2-to-L3 transformation. The third representing it in a model at level L1 of MARBLE
transformation aims to obtain a business implies five key challenges:
process model in L3 from the KDM model in  Challenge C1. Missing Process-Awareness.
L2. This transformation consists of two steps: Process definitions are implicitly described in
(i) a model transformation that obtains a set of legacy code. A traditional LIS consists of a
preliminary business process models; and (ii) control flow graph implicitly representing the
an optional manual intervention by business business process it supports. Thus, it is not
experts for refining the obtained business obvious which events (related to a specific
processes to improve them. So far, the model business activity) should be recorded in the
transformation of the first step uses a set of event log. To address this challenge, the
business patterns [21], which define what technique considers the “a callable unit / a

ISSN 1988–3455 SISTEDES 2010 81


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

business activity” principle proposed by Zou gives an overview of the technique, the tasks
et al. [25]. carried out and their inputs/outputs.
 Challenge C2. Granularity. While some of
the callable units of LISs support the main 3.1. Static analysis to modify the source code
business functionalities, many callable units
are very small and do not directly support any The static analysis modifies the original source
business activity (e.g. setter/getter methods, code in a non invasive way to enable the
printer methods, etc.). registration of events during system execution
 Challenge C3. Discarding Technical Code. (see Figure 2). To address the previously
Legacy source code not only contains business introduced challenges, the static analysis is
activities, but also technical aspects which supported with information provided by business
have to be discarded when the runtime model experts and system analysts. In Task 1, business
is obtained. experts establish the start and end business
 Challenge C4. Process Scope. Due to the fact activities of the business processes to be
that traditional LISs do not explicitly define discovered (Challenge C4). In parallel, system
processes, it has to be established when a analysts examine in Task 2 the legacy source code
process starts and ends. Unfortunately, this and filter the domain set of the directories, files or
information is only known by business experts specific callable units that support business
and system analysts. activities. This information is used to reduce
 Challenge C5. Process Instance Scope. It is potential noise in the runtime model due to
not obvious how business activities and the technical source code (Challenge C3). Task 3
multiples instances of a process should be consists of the mapping by system analysts
correlated. To solve this challenge the system between start/end business activities and the
analyst’s knowledge is necessary. callable units supporting them (Challenge C4). In
Our technique for obtaining runtime models addition, system analysts establish through Task 4
representing an event log is based on a static the correlation data set for each callable unit
analysis of source code combined with a dynamic which is uniquely identifying a process instance
analysis. Firstly, the static analysis examines the (Challenge C5). Each correlation data is mapped
legacy source code and modifies it by injecting to one or more parameters of each callable unit by
code for writing specific events during its system analysts. Finally, Task 5 carries out the
execution (cf. Section 3.1). After the static syntactic analysis of the source code. A parser
analysis has been conducted, the modified source analyzes and injects on the fly the sentences for
code is dynamically analyzed at runtime by means writing the event long during system execution.
of the injected sentences (cf. Section 3.2). Figure 2

1. Provide Starting/
Starting/Ending Ending
Business Business
Business
Activities Activities
Expert

Problem Starting/
2. Set Files/ 3. Map Starting/
Domain Ending
Directories of Ending Activities
Callable Callable
Problem Domain with callable units
Units Units

Correlation
4. Define
System Sets of
Correlation Set of
Analyst Callable
Attributes
Units

L0 5. Inject Trace Modified


6. System L1
Execution Runtime
Legacy Senteces Source
(Dynamic Model
MARBLE Source Code (Static Analysis) Code
Analysis)
Tool

Figure 2. The overall process carried out by means of the proposed technique.

ISSN 1988–3455 SISTEDES 2010 82


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Task 5 is automated following the algorithm 3.2. Dynamic analysis to obtain runtime models
presented in Figure 3. During the static analysis,
the source code is broken down into callable units After having modified the source code through
(Challenge C1), although the algorithm only static analysis it is released to production. The
modifies the units of the domain set selected by new code makes it possible to obtain runtime
system analysts in Task 3 (Challenge C3). In models representing the event log of the LIS.
addition, fine-grained callable units (e.g., setter, These runtime models are represented in
getter, constructor, toString and equals callable MARBLE according to a metamodel based on the
units) are automatically discarded (Challenge C2). MXML format [8], which is used in the process
After that, two sentences are injected at the mining field.
beginning and the end of each filtered callable Figure 4 shows the MXML metamodel, which
unit. The first sentence writes a start event related provides the WorkflowLog metaclass to represent
to the business activity mapped to the callable an event log as a set of instances of the Process
unit. This sentence is injected between the metaclass. Each Process element contains several
signature and the body of the callable unit. The ProcessInstances, which have a sequence of
second sentence writes an end event for the AuditTrailEntry elements. Each AuditTrailEntry
respective business activity and is injected at the element represents an event and consists of four
end of the body. Both sentences have additional main elements: (i) the WorkflowModelElement
parameters like the correlation data defined for that represents the executed activity; (ii) the
the unit and the information whether or not the EventType that represents if the activity is being
unit represents a start or end activity. This executed (start) or was completed (complete); (iii)
additional information is used when the injected the Originator that provides the user who starts or
sentences invoke the writeEvent function at completes the activity; and finally (iv) the
runtime, which writes the respective event into the Timestamp that records the date and time of the
runtime model (cf. Section 3.2). event. Moreover, all these elements can have a
injectTraces (CallableUnits, DomainCallableUnits, Data element including additional information
StartingCallableUnits, EndingCallableUnits) endorsed into Attribute elements.
ModifiedCallableUnits  ɸ Dynamic analysis is automatically carried out
c‟  null during system execution. Thus, when the control
For (c  CallableUnits) flow of the LIS reaches an injected sentence, a
If (c  DomainCallableUnits and
new event is added to the event log. The events
isFineGrainedUnit(c))
If (c  StartingCallableUnits) are written by means of the writeEvent function.
position  „first‟ Before adding the new event representing a
Else If (c  EndingCallableUnits) business activity to the runtime model, it is
position  „last‟ necessary to find out the correct process and
Else process instance where the event must be added.
position  “intermediate” The adequate process and process instance are
sentence1  “writeEvent (c.name, „start‟,
located by means of Xpath expressions [4]. If the
position, c.correlationSet)”
sentence2  “writeEvent (c.name, „complete‟, process is null, then a new process is created. In
position, c.correlationSet)” addition, these expressions take the correlation
c‟.signature  c.signature data into account to establish the correct process
c‟.body  sentence1 + c.body + sentence2 instance. The attributes that contain the
ModifiedCallableUnits  correlation data were already established during
ModifiedCallableUnits  {c‟} static analysis, however, their values are only
Else
known during system execution.
ModifiedCallableUnits 
ModifiedCallableUnits  {c}
Return ModifiedCallableUnits

Figure 3. Algorithm to inject trace sentences by


means of static analysis.

ISSN 1988–3455 SISTEDES 2010 83


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figure 4. MXML Metamodel used to represent runtime models in MARBLE.

Figure 5. Event metamodel package in the KDM standard


Finally, when the writeEvent function has
determined the correct process instance, it adds 4. Runtime Models in KDM
the event to that particular instance. The event,
represented as an AuditTrailEntry element in the This paper also provides the model transformation
runtime model according to the MXML between levels L1 and L2 of MARBLE, in order
metamodel, is created using: (i) the name of the to represent the runtime models according to the
executed callable unit represents the KDM standard. As a consequence, this runtime
WorkflowModelElement; (ii) the event type that is model can be used in any software modernization
also a parameter of this function; (iii) the user of context.
the system that executed the callable unit (or the Specifically, the runtime models are
user of the session if the system is a web represented using the event metamodel package of
application), which represents the originator the runtime resource layer of the KDM
element; and finally (iv) the system date and time metamodel [10]. Figure 5 shows the event
when the callable unit was executed to represent metamodel package as well as other metaclasses
the timestamp element. of other KDM packages used in the runtime

ISSN 1988–3455 SISTEDES 2010 84


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

models. The EventModel metaclass represents the extension mechanism of the KDM metamodel: the
runtime model, which contains a set of extension families. The EventModel includes an
EventResource and EventAction elements. An ExtensionFamily element (see Figure 6), which
EventResource element can be specialized into a defines four Stereotype elements: <process>,
State element, a Transition element, an Event <processInstance>, <originator> and
element, or it can even be a container of other <timestamp>. Each stereotype has a
EventResources. The Event element is used to TagDefinition element that is used by stereotyped
model the AuditTrailEntries of the runtime model elements of the runtime model to put the specific
represented according to the MXML metamodel value by means of a respective TaggedValue
in L1. The feature name represents the element.
WorkflowModelElement, and the feature kind Therefore, the problematic elements are
represents (with a ‘start’ or ‘complete’ value) the represented in KDM as follows: (i) A process is
EventType. represented as an EventResource element
The transformation is formalized by means of annotated with the <process> stereotype and
QVT-Relations (the declarative language of the containing a TaggedValue with the name of the
QVT standard). A relation transforms a MXML process. (ii) A process instance is also represented
model in L1into an instance of the EventModel as an EventResource element, which is nested
metaclass. This relation calls to the relation within another EventResource that represents a
„auditTrailEntry2Event‟ that transforms each process. This EventResource is annotated with the
AuditTrailEntry in L1 into an Event in L2 (see <processInstance> stereotype and contains a
Figure 6). TaggedValue with the process instance
The event metamodel package of KDM makes identification. (iii) The originator is represented as
it impossible to represent the process and process a TaggedValue associated to an Event stereotyped
instance where the event belongs as well as the as <originator>. (iv) The timestamp is also
originator and timestamp of the event (see Figure represented with a TaggedValue in an Event
5). For this reason, the proposal uses the default annotated with the <timestamp> stereotype.
<<checkonly>> <<enforce>>
MXML KDM Event
p : Process auditTrailEntry2Event eventModel:eventModel
name=xProcessName MXML
<<checkonly>> runtimeExtension : ExtensionFamily
pi : ProcessInstance MXML
name=xProcessInstanceName stP : Stereotype sT : Stereotype
stPI : Stereotype sO : Stereotype
<<checkonly>>
tP : TagDefinition tT : TagDefinition
ate:AuditTrailEntry tPI : TagDefinition tP : TagDefinition
tag =’process’ tag =’timestamp’
timestamp tag =’processInstance’ tag =’originator process : EventResource
eventType
name=’Process’
t : Timestamp vP:TaggedValue
type : EventType originator
value=xProcessName processInstance :
name = xDate vPI:TaggedValue
type = xEventType
workflowModelElement EventResource
value=xProcessInstanceName
e : WorkflowModelElement o : Orignitaror tP : TagDefinition name=’ProcessInstance’

name = xEventName name = xOriginatorName tag=’process’


tPI : TagDefinition
event : Event
tag=’processInstance’
name=xEventName
kind=xEventType
vO : TaggedValue
value =xOriginatorName vT : TagDefinition implementation :
nextEvent :
value=xDate CodeElement
EventRelationship
tO : TagDefinition name=xEventName
tag =’originator’ tT : TagDefinition
from : Event to : Event
tag =’timestamp’
name =xEventName name=queryNextEvent
When
Where

Figure 6. The QVT relation ‘auditTrailEntry2Event’ to transform runtime models in L1 to KDM models in L2.

ISSN 1988–3455 SISTEDES 2010 85


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Despite the fact that the order of the events model transformations implemented by means of
can be derived from the timestamp information, QVT-Relation. Due to the fact that the runtime
the relation „auditTrailEntry2Event‟ (see Figure 6) model is represented following the KDM
establishes at level L2 the same sequence of standard, the proposed technique can be used in
events register in the model at level L1. This order other modernization frameworks based on ADM
is represented as an EventRelationship element as MARBLE.
within each Event representing a reference to the The future work will focus on the validation
next Event element. of the proposal by means of a case study involving
Finally, the relation „auditTrailEntry2Event‟ a real-life LIS in a healthcare context. Another
(see Figure 6) maps each Event to a CodeElement research direction in the future will be the use of
of the KDM code model. The resource runtime the runtime models combined with other models
layer of the event package is above the program of KDM as the code and data model in order to
element layer (that contains the code and action obtain more meaningful business process models
metamodel packages), thus the elements of a at level L3 of MARBLE.
runtime model can be mapped to the callable units
represented in the KDM code model. As a Acknowledgement
consequence, the feature location is also improved
throughout the modernization of a LIS. This work was supported by the FPU Spanish
Program; by the R+D projects funded by JCCM:
5. Conclusions and Future Work ALTAMIRA (PII2I09-0106-2463), INGENIO
(PAC08-0154-9262) and PRALIN (PAC08-0121-
Software modernization projects typically take 1374); and the PEGASO/MAGO project
several software artifacts as source of knowledge (TIN2009-13718-C02-01) funded by MICINN
into account like, for example, source code, and FEDER. In addition, this work was supported
databases, user interfaces. Thereby, modernization by the Quality Engineering group at the
projects often recover knowledge from a static University of Innsbruck.
point of view. However, a dynamic approach
allows modernization projects to extract more References
meaningful knowledge, which cannot be
recovered analyzing artifacts in a static way only. [1] Bianchi, A., D. Caivano, V. Marengo, and G.
For this reason, this paper proposes a technique, Visaggio, "Iterative Reengineering of Legacy
within a specific modernization framework (i.e., Systems". IEEE Trans. Softw. Eng., 2003.
MARBLE), to obtain runtime models by means of 29(3): p. 225-241.
dynamic analysis of source code. [2] Cai, Z., X. Yang, and W. Wang. "Business
Firstly, the proposed technique statically Process Recovery for System Maintenance -
analyzes the legacy source code, and modifies it An Empirical Approach". in 25 th
by injecting special sentences that make it International Conference on Software
possible to register execution events. Secondly, Maintenance (ICSM'09). 2009. Edmonton,
during system execution, the modified code is Canada: IEEE CS p. 399-402.
dynamically analyzed through the injected [3] Castellanos, M., K.A.d. Medeiros, J.
sentences and a runtime model is written at level
Mendling, B. Weber, and A.J.M.M. Weitjers,
L1of MARBLE. The obtained runtime models Business Process Intelligence, in Handbook of
represent an event log according to the MXML Research on Business Process Modeling, J. J.
metamodel, and depict a sequence of executed Cardoso and W.M.P. van der Aalst, Editors.
events related to business activities of the business
2009, Idea Group Inc. p. 456-480.
processes embedded in the source code. [4] Clark, J. and S. DeRose, XML Path Language
Moreover, the runtime model is transformed into a (XPath). 1999, World Wide Web Consortium
runtime model represented at level L2 of (W3C).
MARBLE according to the KDM metamodel. For
[5] Di Francescomarino, C., A. Marchetto, and P.
this purpose, an extension of the event package of Tonella. "Reverse Engineering of Business
the KDM metamodel is proposed as well as a Processes exposed as Web Applications". in

ISSN 1988–3455 SISTEDES 2010 86


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

13th European Conference on Software [17] OMG, QVT. Meta Object Facility (MOF) 2.0
Maintenance and Reengineering (CSMR'09). Query/View/Transformation Specification.
2009. Fraunhofer IESE, Kaiserslautern, 2008, OMG.
Germany: IEEE Computer Society p. 139- [18] OMG, Business Process Model and Notation
148. (BPMN) 2.0. 2009, Object Management
[6] Dumas, M., W. van der Aalst, and A. Ter Group. p. 496.
Hofstede, Process-aware information systems: [19] Paradauskas, B. and A. Laurikaitis, "Business
bridging people and software through process Knowledge Extraction from Legacy
technology. 2005: John Wiley & Sons, Inc. Information Systems". Journal of Information
[7] Ghose, A., G. Koliadis, and A. Chueng. Technology and Control, 2006. 35(3): p. 214-
"Process Discovery from Model and Text 221.
Artefacts". in IEEE Congress on Services [20] Pérez-Castillo, R., I. García-Rodríguez de
(Services'07). 2007 p. 167-174. Guzmán, O. Ávila-García, and M. Piattini.
[8] Günther, C.W. and W.M.P. van der Aalst, "A "MARBLE: A Modernization Approach for
Generic Import Framework for Process Event Recovering Business Processes from Legacy
Logs". Business Process Intelligence Systems". in International Workshop on
Workshop (BPI'06), 2007. LNCS 4103: p. 81- Reverse Engineering Models from Software
92. Artifacts (REM'09). 2009. Lille, France:
[9] Heuvel, W.-J.v.d., Aligning Modern Business Simula Research Laboratory Reports p. 17-20.
Processes and Legacy Systems: A [21] Pérez-Castillo, R., I. García-Rodríguez de
Component-Based Perspective (Cooperative Guzmán, O. Ávila-García, and M. Piattini.
Information Systems). 2006: The MIT Press. "Business Process Patterns for Software
[10] ISO/IEC, ISO/IEC DIS 19506. Knowledge Archeology". in 25th Annual ACM
Discovery Meta-model (KDM), v1.1 Symposium on Applied Computing (SAC'10).
(Architecture-Driven Modernization). 2010. Sierre, Switzerland: ACM p. 165-166.
http://www.iso.org/iso/catalogue_detail.htm?c [22] Pérez-Castillo, R., I. García-Rodríguez de
snumber=32625. 2009, ISO/IEC. p. 302. Guzmán, and M. Piattini. "Implementing
[11] Khusidman, V. and W. Ulrich, Architecture- Business Process Recovery Patterns through
Driven Modernization: Transforming the QVT Transformations". in International
Enterprise. DRAFT V.5. Conference on Model Transformation
http://www.omg.org/docs/admtf/07-12-01.pdf. (ICMT'10). 2010. Málaga, Spain: Springer-
2007, OMG. p. 7. Verlag p. In Press.
[12] Miller, J. and J. Mukerji, MDA Guide [23] Sneed, H.M., Estimating the Costs of a
Version 1.0.1. www.omg.org/docs/omg/03- Reengineering Project. Proceedings of the
06-01.pdf 2003: OMG. 12th Working Conference on Reverse
[13] Moyer, B. (2009) Software Archeology. Engineering. 2005: IEEE Computer Society.
Modernizing Old Systems. Embedded [24] van der Aalst, W., H. Reijers, and A.
Technology Journal, Weijters, "Business Process Mining: An
http://adm.omg.org/docs/Software_Archeolog Industrial Application.". Information Systems,
y_4-Mar-2009.pdf 2007. 32(5): p. 713-732.
[14] Müller, H.A., J.H. Jahnke, D.B. Smith, M.-A. [25] Zou, Y. and M. Hung. "An Approach for
Storey, S.R. Tilley, and K. Wong. "Reverse Extracting Workflows from E-Commerce
engineering: a roadmap". in Proceedings of Applications". in Proceedings of the
the Conference on The Future of Software Fourteenth International Conference on
Engineering. 2000. Limerick, Ireland: ACM. Program Comprehension. 2006: IEEE
[15] Newcomb, P. "Architecture-Driven Computer Society p. 127-136.
Modernization (ADM)". in Proceedings of the [26] Zou, Y., T.C. Lau, K. Kontogiannis, T. Tong,
12th Working Conference on Reverse and R. McKegney. "Model-Driven Business
Engineering. 2005: IEEE Computer Society. Process Recovery". in Proceedings of the 11th
[16] OMG. ADM Task Force by OMG. 2007 Working Conference on Reverse Engineering
9/06/2009 [cited 2008 15/06/2009]; Available (WCRE 2004). 2004: IEEE Computer Society
from: http://www.omg.org/. p. 224-233.

ISSN 1988–3455 SISTEDES 2010 87


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Decisiones arquitectónicas y tecnológicas como líneas de producto


en el desarrollo dirigido por modelos
José García-Alonso, Javier Berrocal Olmeda, Juan M. Murillo

Escuela Politécnica

Universidad de Extremadura

jgaralo@unex.es, jberolm@unex.es, juanmamu@unex.es

Resumen [18].
En este trabajo se atacarán dos problemas
Gran parte de los sistemas de desarrollo de que se producen en este ámbito. De un lado, los
software dirigido por modelos limitan a los problemas derivados de la complejidad de los
desarrolladores a la hora de elegir la arquitec- modelos necesarios para desarrollar las aplica-
tura software en la que se va a basar la aplica- ciones. Por otro lado, los problemas motivados
ción a desarrollar o las tecnologías que se van por la elección de una metodología de desa-
a utilizar para la implementación. Este artícu- rrollo dirigido por modelos como las citadas
lo adopta la forma de Position Paper en el anteriormente.
que se argumenta cómo facilitar el paso de la
Los modelos que deben crearse durante un
arquitectura preliminar a la detallada y exi-
desarrollo capturan toda la información nece-
bilizar la elección de la tecnología de construc-
saria para generar la aplicación. Esto hace di-
ción tratando la arquitectura como una línea
fícil la tarea de crear dichos modelos partiendo
de producto.
de un diseño de alto nivel de la aplicación que
contenga los requisitos de la misma. Además,

1. Introducción para simplicar estos modelos en la medida de


lo posible, en la mayoría de los casos se utili-
Los métodos y técnicas propuestos por la dis- za una arquitectura software implícita que no
ciplina de Desarrollo de Software Dirigido por puede ser modicada por los desarrolladores.
Modelos han demostrado su capacidad para Esto hace que todas las aplicaciones desarro-
crear sistemas de gran complejidad. Especial- lladas deban ceñirse a una arquitectura con-
mente prolija ha sido el área de ingeniería web creta. Por lo tanto, se imposibilita el uso de
[23], donde han proliferado gran número de estos sistemas cuando la aplicación a desarro-
métodos y herramientas tanto a nivel acadé- llar cuente con requisitos arquitectónicos que
mico como comercial. Algunos de los siste- no se adaptan a la arquitectura proporciona-
mas más representativos en este campo son da.
WebML [7], UWE [19], OOWS [24] o RUX Por otra parte, la elección de una meto-
[20]. dología de desarrollo dirigido por modelos
Utilizando estos sistemas es posible desarro- (WebML, UWE, etc.) compromete la elección
llar grandes aplicaciones web a partir de diver- de las tecnologías sobre las que se va a llevar
sos modelos del sistema. El código de la apli- a cabo el desarrollo. Usualmente, el código ge-
cación es generado a partir de dichos modelos. nerado por estos sistemas hace uso de diversas
Generalmente, las aplicaciones creadas con es- tecnologías como frameworks orientados a ob-
tas técnicas utilizan arquitecturas software[25] jetos [12] o librerías. Sin embargo, no se permi-
avanzadas como arquitecturas multicapa [10] o te a los desarrolladores decidir qué frameworks
arquitecturas Model-View-Controller (MVC) van a utilizarse o cómo estos van a ser utili-

ISSN 1988–3455 SISTEDES 2010 88


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

zados. Esto hace que no sea posible utilizar de la arquitectura elegida. Este es un proceso
uno de estos sistemas cuando la aplicación a complejo que requiere amplios conocimientos
desarrollar deba cumplir con requisitos tecno- de la arquitectura y de los patrones de diseño
lógicos distintos a los soportados. que se van a aplicar.
Este es un Position Paper en el que se ar- Para ejemplicar este proceso se puede pen-
gumenta cómo facilitar el paso de la arquitec- sar en una aplicación que deba soportar una
tura preliminar a la detallada y exibilizar la gestión básica de clientes. La aplicación debe
elección de la tecnología de construcción. Para permitir almacenar los datos de los clientes,
ello se propone un enfoque novedoso en el que actualizarlos cuando sea necesario y realizar
las arquitecturas software de las aplicaciones búsquedas sobre ellos. Para este ejemplo tan
a desarrollar se tratan como líneas de produc- sencillo el diseño inicial de la aplicación podría
to [6]. El método presentado en este trabajo estar compuesto de un diagrama de clases en
se encuentra en un estado inicial. El principal el que aparezca la clase Cliente, con los atri-
objetivo que se persigue con la presentación butos necesarios para almacenar toda la infor-
de este trabajo en un estado tan temprano es mación relativa a los clientes y algunos méto-
el de obtener las impresiones de la comunidad dos. Adicionalmente se podría disponer de un
acerca de la validez del mismo y las posibles diagrama de casos de uso en el que aparezcan
carencias que pueda contener. los casos de uso relativos a la gestión de los
El resto del artículo se distribuye de la si- clientes y posiblemente algunos diagramas de
guiente forma: en la segunda sección se deta- secuencia o actividad. En la gura 1 se observa
llan los antecedentes que han llevado al desa- el diagrama de clases con la clase Cliente.
rrollo de este trabajo; en la tercera sección se
Convertir el diseño preliminar obtenido ex-
describe como modelar la arquitectura y los
clusivamente a partir de los requisitos sin te-
frameworks a utilizar y como, aplicando di-
ner en cuenta los detalles de la arquitectura a
cha información, transformar el diseño de alto
utilizar, en un diseño especíco para una apli-
nivel de la aplicación en un diseño detallado
cación con una arquitectura en tres capas no
especíco de dichos frameworks y conforme a
es un proceso trivial. Además los diagramas
la arquitectura elegida; en la cuarta sección se
que componen este diseño empiezan a compli-
enumeran algunas posibilidades para transfor-
carse. En la gura 2 puede verse el diagrama
mar dicho diseño en código y por último se
de clases para la aplicación de gestión de clien-
detallan las conclusiones y los trabajos futu-
tes adaptada a una arquitectura en tres capas.
ros.
En él, la clase inicial Cliente se ha dividido en
tres clases que encapsulan el comportamiento

2. Antecedentes relativo a la persistencia de los datos de los


clientes, a la lógica de negocio y a la presenta-

La constantemente creciente complejidad de ción respectivamente.

las aplicaciones hace necesaria la utilización Este diseño se complica aun más si se es-
de técnicas, cada vez más avanzadas a su vez, tablece una arquitectura con mayor grado de
para abordar los desarrollos con ciertas garan- detalle. Aunque el diseño anterior corresponde
tías. Las arquitecturas software [25] y los pa- a una arquitectura en tres capas, esta arquitec-
trones de diseño [15] son técnicas creadas en el tura raramente se utiliza en una forma tan sen-
ámbito de la ingeniería del software para tratar cilla. Habitualmente esta arquitectura se enri-
este problema. Con su utilización se pretende quece con patrones de diseño como el patrón
describir y reutilizar aquellas estructuras que Data Access Object (DAO) [31] para la capa
dan lugar a aplicaciones estables y de calidad. de persistencia o con la utilización de MVC
Uno de los principales retos, a la hora de [18] para la presentación. Si incorporamos es-
desarrollar una aplicación para una arquitec- tos elementos al ejemplo utilizado se obtiene
tura concreta, consiste en adaptar el diseño un diagrama de clases similar al mostrado en
preliminar de la aplicación a las peculiaridades la gura 3. En este diagrama se observa como

ISSN 1988–3455 SISTEDES 2010 89


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 1: Diagrama de clases para la aplicación de

gestión de clientes

la clase que se ocupaba de la persistencia de


los datos de los clientes se ha descompuesto
en dos clases para seguir el patrón DAO y la
clase encargada de la presentación se ha des-
compuesto en varios elementos para seguir la
arquitectura MVC.

Este diseño empieza a parecerse a un dise-


Figura 2: Gestión de clientes en una arquitectura
ño real, especíco de una aplicación en tres
en tres capas
capas. Sin embargo, en un caso real el dise-
ño se complica aun más al incorporar soporte
a otros aspectos obviados hasta ahora como
pueden ser la seguridad, el sistema de log o ños de alto nivel de la aplicación a desarrollar

las pruebas unitarias y de integración. Puede en los modelos especícos del sistema utiliza-

verse claramente la complejidad de dar el paso do [3]. Como se ha podido ver en el ejemplo

del diseño inicial de una aplicación a un dise- esta es una tarea difícil y que requiere grandes

ño adaptado a una arquitectura concreta. En conocimientos tanto de la aplicación a desarro-

el ejemplo mostrado aquí, una clase de diseño llar como del sistema de desarrollo utilizado.

de alto nivel ha dado lugar a más de cinco cla- Esto conlleva una serie de consecuencias ne-
ses en el diseño especíco de la arquitectura. gativas, entre las que destacan la elevada curva
En una aplicación real con decenas o cientos de aprendizaje, que obliga a proporcionar una
de clases en el diseño inicial, el paso a un dise- formación muy especíca, la dependencia del
ño especíco supone una tarea ardua y difícil conocimiento de personas que pueden abando-
que requiere grandes conocimientos. nar el equipo de desarrollo o la dependencia de

Por otra parte, la mayoría de los sistemas de un conocimiento que nunca acaba de residir en

desarrollo dirigido por modelos, exceptuando las empresas de desarrollo sino en las personas

los trabajos de Meliá y Gómez en WebSA [21] con la formación especíca.

y más recientemente en aplicaciones RIA (Rich El segundo problema que se abordará en es-
Internet Application) [22], se centran en la uti- te trabajo se presenta una vez que se dispone
lización de una única arquitectura software de de un diseño especíco para una arquitectura,
forma implícita. Esta arquitectura no puede como el que se muestra en el ejemplo. Partien-
ser elegida ni modicada por los usuarios de do de este diseño es posible pasar a la imple-
este tipo de sistemas. Además, para utilizar mentación del sistema, ya sea manualmente o
estos sistemas es necesario convertir los dise- mediante transformaciones de modelo a códi-

ISSN 1988–3455 SISTEDES 2010 90


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

y requiere grandes esfuerzos por parte de los


desarrolladores. Numerosos trabajos tratan de
mitigar este problema [27] [11]. Además, un
framework de este tipo no suele utilizarse de
forma aislada, sino que se usa en conjunción
con otros frameworks [13]. La composición de
los diversos frameworks que intervienen en una
aplicación para que se comuniquen de forma
correcta entre sí y con el código de la apli-
cación es una tarea muy delicada. Adicional-
mente, el código de la aplicación que hace uso
de los conceptos proporcionados por los fra-
meworks suele estar disperso por todo el pro-
yecto, lo que diculta su mantenimiento y la
actualización a nuevas versiones [1].

Gran parte de los problemas que plantea la


utilización de frameworks de desarrollo puede
solucionarse mediante la aplicación de técnicas
de desarrollo dirigido por modelos, como pue-
de apreciarse en los trabajos de Antiekwicz et
al [1] [2].

Sin embargo, aunque un elevado número de


las herramientas que permiten el desarrollo di-
rigido por modelos generan un código que hace
uso de este tipo de frameworks, no se permite a
los usuarios elegir el o los frameworks que va a
Figura 3: Gestión de clientes con patrón DAO y
utilizar el código generado de una aplicación,
MVC
ni la forma en que dichos frameworks van a
ser utilizados. Esto puede ser un inconvenien-

go. Para facilitar la incorporación de arquitec- te puesto que existen numerosos frameworks

turas software y patrones de diseño a los desa- que cubren una misma funcionalidad o con-

rrollos han surgido un gran número de frame- cepto cada uno con distintas características.

works orientados a objetos [12]. La utilización El desarrollador debería poder decidir que fra-

de estos frameworks permite trasladar a la im- mework o frameworks se adaptan mejor a las

plementación de las aplicaciones estructuras y características de cada aplicación.

patrones altamente probados, estables y e- El hecho de no permitir al desarrollador ele-


cientes. Esto se debe a que dichos frameworks gir los frameworks a utilizar conlleva una serie
proporcionan un conjunto de conceptos, espe- de consecuencias negativas. Entre ellas desta-
cícos de un dominio, que pueden ser reutiliza- can la imposibilidad de utilizar estos sistemas
dos por la aplicación. Debido a estas ventajas, con aplicaciones legadas que utilicen otra tec-
estos frameworks son ampliamente utilizados nología, la falta de adaptación a los requisi-
tanto en los desarrollos tradicionales como por tos tecnológicos de los clientes, los problemas
las herramientas de desarrollo dirigido por mo- o incompatibilidades surgidos de utilizar una
delos. versión de un framework en lugar de otra o la

No obstante, el uso de estos frameworks imposibilidad de adaptarse a nuevas versiones

plantea una serie de inconvenientes. Uno de los o frameworks que puedan aparecer.

principales inconvenientes es la dicultad de Volviendo al ejemplo de la aplicación para


utilización de los mismos. La curva de apren- la gestión de clientes, el diseño especíco para
dizaje de los frameworks suele ser muy elevada una arquitectura en tres capas que utiliza el

ISSN 1988–3455 SISTEDES 2010 91


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 5: Gestión de clientes utilizando Swing co-

mo framework de presentación

work Hibernate-Spring-Swing. Con el cambio


de Struts por Swing [14] se mantiene la ar-
quitectura en tres capas y el uso del patrón
DAO y de MVC, pero se hace en una aplica-
ción de escritorio en lugar de una aplicación
Figura 4: Gestión de clientes con frameworks
web, puesto que Swing es un framework para
la creación de interfaces de usuario que permi-
te utilizar MVC [14]. De nuevo se han omitido
patrón DAO y MVC (que puede verse en la -
del diagrama por motivos de claridad las cla-
gura 3) puede adaptarse para especicar el uso
ses propias de los frameworks y los cheros de
de un conjunto de frameworks. En la gura 4
conguración necesarios.
puede verse el mismo diseño adaptado a la pila
de frameworks compuesta por Hibernate [16], En estos dos ejemplos puede verse la di-

Spring [28] y Struts [30]. Este conjunto de fra- cultad de obtener un diseño especíco para un

meworks es uno de los más utilizado para el conjunto de frameworks. Esta labor se compli-

desarrollo de aplicaciones web en Java. En la ca aun más si se tiene en cuenta que en proyec-

gura se observa como se han tenido que rea- tos reales suele intervenir un número más ele-

lizar importantes modicaciones para adaptar vado de frameworks para encargarse de otras

el diseño al uso de estos frameworks. Por mo- tareas como la seguridad, el log o las pruebas.

tivos de claridad en el diagrama y espacio se Estos diseños especícos para un conjunto


han omitido en la gura las clases proporcio- de frameworks pueden modelarse de forma que
nadas por los frameworks, pero que deben ser los modelos capturen los frameworks a utilizar
usadas por la aplicación para su correcto fun- y como estos van a ser utilizados. Los trabajos
cionamiento. Se han omitido también los nu- de Antkiewicz [1] [2] muestran como pueden
merosos archivos de conguración necesarios usarse modelos de características para llevar a
para el correcto funcionamiento de cada uno cabo a esta tarea.
de los frameworks y para su integración. El trabajo que se presenta aquí va enfocado
En la gura 5 puede verse como cambia a resolver los problemas indicados en la obten-
este diseño simplemente cambiando uno de ción de un diseño detallado de una aplicación,
los frameworks que se van a utilizar. Esta especíco para una arquitectura y unas tecno-
gura muestra el diseño la aplicación para logías concretas, a partir de un diseño prelimi-
la gestión de clientes utilizando los frame- nar de la misma.

ISSN 1988–3455 SISTEDES 2010 92


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

3. Hacia la exibilidad en el desa- plicar el paso de un diseño inicial a un di-


rrollo dirigido por modelos seño especico para una arquitectura, al estar
este proceso asistido por una transformación
Uno de los principales objetivos de este tra- automática. Además, se otorga a los desarro-
bajo consiste en mitigar el paso de un diseño lladores la capacidad de denir la arquitectura
de alto de nivel de una aplicación a un dise- de la aplicación de forma que esta se adapte a
ño especíco para una arquitectura software. las necesidades de cada proyecto y las decisio-
Para ello se propone tratar a la arquitectura nes arquitectónicas se mantienen a lo largo de
software de las aplicaciones como a una línea todo el proceso de desarrollo [26] en lugar de
de productos. perderse en la complejidad de los desarrollos

A diferencia de las líneas de producto tra- [8].

dicionales, donde se dispone de una serie de Adicionalmente, es posible obtener informa-


activos que son utilizados para el desarrollo de ción de los patrones arquitectónicos que más
un conjunto de sistemas de una misma familia, se ajustan a una aplicación a partir de un mo-
en este caso no se cuenta con ningún elemen- delo de requisitos de la misma [4]. Estos pa-
to reutilizable entre las distintas aplicaciones. trones arquitectónicos pueden utilizarse para
Esto se debe a que no existe, a priori, ninguna seleccionar las características arquitectónicas
funcionalidad común entre las aplicaciones a más apropiadas en el modelo de característi-
desarrollar que pueda utilizarse como un acti- cas que guía la transformación.
vo de la línea de productos. El punto en común Con este trabajo también se ampliarán las
entre las aplicaciones desarrolladas va a ser la posibilidades de los desarrolladores a la hora
utilización de una arquitectura similar. de escoger las tecnologías sobre las que se ba-
De esta forma es posible denir un núcleo sará el desarrollo del sistema. Para ello se debe
común para cada arquitectura que se quiera permitir que los desarrolladores decidan el fra-
soportar. Este núcleo común es compartido mework o el conjunto de frameworks que van
por todas las aplicaciones que utilicen dicha a ser utilizados en cada proyecto. Además, se
arquitectura. Las posibles variaciones sobre la debe permitir también que los desarrolladores
arquitectura, como por ejemplo utilizar el pa- decidan cómo se van a utilizar los frameworks
trón DAO para la persistencia en una arqui- seleccionados, puesto que muchos de ellos per-
tectura en tres capas, son tratadas como la miten realizar las mismas tareas de distintas
variabilidad de la línea de productos. formas. Por ejemplo el framework Hibernate
El primer paso para conseguir este objeti- [16] proporciona mapeos objeto-relacionales,
vo pasa por modelar las arquitecturas software pero estos mapeos pueden realizarse mediante
a utilizar y su variabilidad. Esta tarea puede un chero de conguración o mediante anota-
llevarse a cabo utilizando modelos de caracte- ciones en el código, utilizando la API propia
rísticas [9], una técnica para capturar los ele- de Hibernate o la API de JPA [5]. De esta for-
mentos comunes y la variabilidad en las fami- ma se permite a los desarrolladores adaptarse
lias de sistemas y las líneas de productos. Este a la aparición de nuevos frameworks o de nue-
tipo de modelos han demostrado su utilidad vas versiones o evoluciones de los ya existentes
para reejar las características de arquitectu- sin perder los benecios aportados por las téc-
ras software, en concreto la arquitectura de las nicas de desarrollo dirigido por modelos.
aplicaciones RIA en el reciente trabajo de Me- Para conseguir este objetivo es necesario ob-
liá y Gómez [22]. tener un diseño, de la aplicación que se va
Tomando como base el diseño inicial de la a desarrollar, especíco para los frameworks
aplicación puede aplicarse una transformación que se han elegido y la forma en que se quie-
que utilice la información de la arquitectura ren utilizar. Sin embargo, adaptar el diseño de
recogida en el modelo de características para una aplicación para hacer uso de unos deter-
generar un diseño especíco de una arquitec- minados frameworks requiere de un gran co-
tura concreta. De esta forma se consigue sim- nocimiento técnico de los frameworks que se

ISSN 1988–3455 SISTEDES 2010 93


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

utilicen. Además estos diseños pueden variar 5. Trabajos relacionados


mucho en función de los frameworks seleccio-
nados, como se ha mostrado en la sección an- Como se ha mencionado en secciones anterio-
terior. res, numerosos trabajos en el área del desa-

Por lo tanto, el paso de un diseño detalla- rrollo de software dirigido por modelos tratan

do, conforme a una arquitectura software, a un con el desarrollo de sistemas con arquitecturas

diseño especíco para un conjunto de frame- complejas y cuyo código utiliza frameworks de

works puede simplicarse si es visto como una desarrollo como los tratados en este proyec-

transformación de modelos. Esta transforma- to. Especialmente en el ámbito de la ingenie-

ción debe tener en cuenta que se pueden utili- ría web. con trabajos como WebML [7], UWE

zar distintos frameworks, para una misma la- [19], OOWS [24], RUX [20], etc.

bor, dentro de un mismo proyecto (por ejemplo Sin embargo estos trabajos no permiten a
en una aplicación web puede utilizarse Struts los desarrolladores tomar decisiones arquitec-
para la capa de presentación, pero utilizarse tónicas o sobre los frameworks a utilizar. No
un framework AJAX para proporcionar ma- obstante, en el mismo ámbito de la ingeniería
yor dinamismo a algunos apartados). También web existe una excepción. El trabajo de Me-
se debe soportar la utilización de frameworks liá y Gómez [21]. En este trabajo los autores
en determinados subconjuntos de la aplicación proponen una extensión a los métodos ante-
(por ejemplo un framework de seguridad para riores denominada Web Software Architecture
la parte privada de una aplicación). (WebSA). El propósito de esta extensión es

Utilizando esta transformación se consigue exibilizar estos métodos incorporando a los

un diseño especíco para los frameworks se- mismos la posibilidad de denir la arquitec-

leccionados por el desarrollador, a la vez que tura que se quiere utilizar. Para conseguir es-

se mitigan los problemas que plantea el uso de te objetivo añaden dos modelos: el modelo de

avanzados frameworks de desarrollo. subsistemas y el modelo de conguración. En


estos dos modelos se denen las características
arquitectónicas de la aplicación web a desarro-
llar. Estos dos modelos se unen a los modelos
4. Transformación a código funcionales de la aplicación (que pueden estar
realizados con algunas de las metodologías an-
Obtener el código de las aplicaciones modela- teriores: OO-H, WebML, etc) y mediante una
das no es uno de los objetivos principales de serie de transformaciones se genera la aplica-
este trabajo. Sin embargo, disponer de un dise- ción.
ño especíco para un conjunto de frameworks
En un trabajo más reciente de los mismos
simplica en gran medida la obtención del có-
autores [22], se realiza una propuesta similar
digo.
orientada al desarrollo de aplicaciones RIA. En
Los trabajos de Antiewkicz [1] [2] son un este trabajo se propone OOH4RIA como una
ejemplo de como es posible generar código es- ampliación de OOH especícamente diseñado
pecíco para frameworks de desarrollo a partir para el desarrollo de RIAs. Los autores propo-
de unos modelos lo sucientemente detallados. nen la utilización de un modelo de caracterís-
Otras herramientas como Spring Roo [29] o ticas, como los utilizados en este trabajo, para
JACA [17] (de los autores de este mismo tra- denir las características de las RIAs y de un
bajo) permiten generar código especíco para modelo de componentes RIA para representar
frameworks a partir de conceptos de más alto explícitamente la arquitectura de una RIA. De
nivel. nuevo estos modelos son utilizados junto a los

Cualquiera de estas alternativas podría modelos funcionales de OOH para generar las

adaptarse para generar el código de las apli- aplicaciones.

caciones modeladas según el método descrito Estos trabajos guardan una estrecha rela-
en este artículo. ción con el trabajo presentado aquí, especial-

ISSN 1988–3455 SISTEDES 2010 94


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

mente el más reciente de ellos. Con ambos tra- la arquitectura.


bajos se persigue un mismo objetivo, permitir Otro de los aspectos que requiere mayor pro-
a los desarrolladores que utilizan las técnicas fundidad consiste en la forma en que los fra-
de desarrollo dirigido por modelos, inuir en meworks deben aplicarse al diseño de la aplica-
la arquitectura de las aplicaciones que van a ción. Esto se debe a que, como ya se ha mencio-
desarrollar. No obstante, los trabajos de Meliá nado en secciones anteriores, distintas partes
y Gómez se centran en aplicaciones web y en de una aplicación pueden utilizar distintos fra-
RIA respectivamente, mientras que el traba- meworks para cubrir la misma funcionalidad.
jo presentado aquí pretende abarcar un mayor Por lo tanto debe denirse un sistema que per-
rango de aplicaciones, dando soporte para to- mita enlazar los frameworks a utilizar con dis-
das las aplicaciones que utilicen este tipo de ar- tintos fragmentos del diseño de la aplicación a
quitecturas. Adicionalmente, al contrario que desarrollar.
en este trabajo, los trabajos aquí mencionados En esta misma linea de trabajo, se está tra-
no permiten a los desarrolladores decidir acer- bajando en técnicas para gestionar las relacio-
ca de los frameworks que van a ser utilizados nes y restricciones existentes entre los diseños
para la implementación de las aplicaciones. de las aplicaciones y los modelos de caracte-
Por otra parte, los trabajos de Antiekwicz rísticas que representan la arquitectura que va
[1] [2], como ya se ha mencionado anterior- a seguir la aplicaciones. Para ello, se está es-
mente, permiten modelar diseños especícos tudiando la posibilidad de utilizar técnicas de
para frameworks y obtener el código a partir model weaving para denir como la arquitec-
de ellos. Sin embargo, a diferencia del trabajo tura debe inuir en el diseño de la aplicación.
aquí propuesto, estos diseños se quedan a un Por último, al tratarse la propuesta aquí
bajo nivel y obligan a los diseñadores a dispo- presentada de una metodología eminentemen-
ner de conocimientos técnicos muy detallados te práctica sería una aportación interesante
de los frameworks que se deseen utilizar. En el disponer de una implementación que permi-
trabajo aquí presentado se elevará el nivel de tiese validar la utilidad de la misma. Una par-
abstracción partiendo de un nivel mucho más te de los métodos aquí propuestos están so-
alto y llegando a un nivel de detalle suciente portados por la herramienta JACA [17], co-
mediante la aplicación de una serie de trans- mo ya se ha mencionado anteriormente. Esta
formaciones entre modelos. herramienta permite generar código para fra-
meworks de desarrollo especícos a partir de

6. Estado actual y trabajos futuros conceptos de más alto nivel. Por lo tanto, este
sistema sirve como prototipo de la propuesta
aquí presentada y ayuda a identicar parte de
Como ya se ha mencionado en secciones an-
los benecios de la misma. Sin embargo, si-
teriores, el método presentado en este trabajo
gue siendo necesario mucho trabajo para que
se encuentra en un estado inicial y aún queda
la herramienta de soporte a la totalidad de las
mucho trabajo por desarrollar.
propuestas aquí presentadas.
Uno de los principales puntos en los que se
debe profundizar en el desarrollo de este mé-
todos pasa por la denición exhaustiva de las 7. Conclusiones
características de las arquitecturas que se quie-
ran soportar. Para ello se debe crear un modelo En este articulo se ha presentado un método
de características de cada una de las arquitec- para ampliar las posibilidades de los desarro-
turas que permita capturar toda la variabili- lladores a la hora de utilizar un sistema de
dad de las mismas, de forma que este modelo desarrollo dirigido por modelos. La principal
pueda instanciarse para cada aplicación con- aportación de este método consiste en que se
creta con unas características arquitectónicas permite a los desarrolladores decidir las carac-
válidas. Este modelo será aplicado en la trans- terísticas arquitectónicas y los frameworks de
formación para obtener un diseño especíco de desarrollo que se van a utilizar para generar

ISSN 1988–3455 SISTEDES 2010 95


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

la aplicación. Debido a esto, es posible cubrir with Webml and Webratio. Human Com-
un mayor número de posibilidades a la hora de puter Interaction Series. Springer Lon-
modelar una aplicación y se facilita la adapta- don, 2008, 221-261.
ción a nuevas arquitecturas o tecnologías que
se deseen incorporar.
[8] Clements, P.C., Shaw, M. The Golden
Age of Software Architecture Revisited.
IEEE Software 26(4): 70-72 (2009)
Agradecimientos
[9] Czarnecki, K., Helsen, S., Eisenecker, U.
Este trabajo ha sido nanciado por W. taged conguration through specializa-
los proyectos TIN2008-02985, PDT08A034, tion and multilevel conguration of fea-
PRE09156 y la Fundación Valhondo Cala. ture models. Software Process: Improve-
ment and Practice 10(2): 143-169 (2005)

Referencias [10] Eckerson, W. W. Three Tier


Client/Server Architecture: Achieving
[1] Antkiewicz, M., Czarnecki, K., Stephan, Scalability, Performance, and Eciency
M. Engineering of Framework-Specic in Client Server Applications. Open
Modeling Languages. IEEE Trans. Soft- Information Systems 10, 1 (January
ware Eng. 35(6): 795-824 (2009) 1995): 3(20).

[2] Antkiewicz, M., Czarnecki, K. [11] Fairbanks, G., Garlan, D., Scherlis, W.
Framework-Specic Modeling Lan- Design fragments make using frameworks
guages with Round-Trip Engineering. easier. SIGPLAN Not. 41, 10 (Oct. 2006),
MoDELS 2006: 692-706 75-88.

[3] Bass, L., Clements, P., Kazman, R. Soft- [12] Fayad, M., Schmidt, D. C. Object-
ware Architecture in Practice chap. Ar- oriented application frameworks. Com-
chitecture Based Development. SEI Series mun. ACM 40, 10 (Oct. 1997), 32-38.
in software engineering, Addison-Wesley,
1998, 285-302 [13] Fayad, M., Schmidt, D. C., Johnson, R.E.
Object-oriented Application Frameworks:
[4] Berrocal, J., García-Alonso, J., Murillo, Problems and Perspectives. Wiley, NY,
J.M. Facilitating the selection of architec- 1997.
tural patterns by means of a marked re-
quirements model. ECSA 2010 [14] Fowler, A. A Swing Architecture Over-
view. http://java.sun.com/products

[5] Biswas, R., Ort, E.The Java Persis- /jfc/tsc/articles/architecture/

tence API - A Simpler Programming


[15] Gamma, E., Helm, R., Johnson, R.,
Model for Entity Persistence. 2006,
Design Patterns: Elements
Vlissides, J.
http://java.sun.com/developer/technical
of Reusable Object-Oriented Software
Articles/J2EE/jpa/
Addison-Wesley, Reading, MA (1995).

[6] Bosch, J. Design and Use of Softwa-


[16] Hibernate. http://www.hibernate.org/
re Architectures. Adopting and evolving
a product-line approach. Addison-Wesley [17] Garcia-Alonso, J., Berrocal, J., Murillo,
2000. J.M. Java para Aplicaciones Corporativas
de la Administración. Aceptado para su
[7] Brambilla, M., Comai, S., Fraternali,
publicación en JISBD 2010.
P., Matera, M. Web Engineering: Mo-
delling and Implementing Web Applica- [18] Krasner, G. E., Pope, S. T. A cookbook
tions chap. Designing Web Applications for using the model-view controller user

ISSN 1988–3455 SISTEDES 2010 96


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

interface paradigm in Smalltalk-80. J. Ob- [24] Pastor, O., Fons, J. and Pelechano,
ject Oriented Program. 1, 3 (Aug. 1988), V. OOWS: a method to develop Web
26-49. applications from Web-oriented concep-
tual models. International Workshop on
[19] Kraus, A., Knapp, A. and Koch, N. Web-Oriented Software Technology (IW-
Model-driven generation of web applica- WOST 2003), pp. 65-70
tions in UWE. 3rd International Works-
hop on Model-Driven Web Engineering [25] Shaw, M., Garlan, D. Software Architec-
(MDWE 2007). ture. Perspectives on an emerging disci-
pline. Prentice Hall, New Jersey, 1996.
[20] Linaje, M., Preciado, J. C., Sánchez-
Figueroa, F. Engineering Rich Internet [26] Shaw, M., Clements, P.C. The Golden
Application User Interfaces over Legacy Age of Software Architecture. IEEE Soft-
Web Models. IEEE Internet Computing ware 23(2): 31-39 (2006)

11(6): 53-59 (2007)


Inves-
[27] Shull, F., Lanubile, F., Basili, V. R.

[21] Meliá, S., Gómez, J. The WebSA Ap- tigating Reading Techniques for Object-
proach: Applying Model Driven Enginee- Oriented Framework Learning. IEEE
Trans. Software Eng. 26, 2000.
ring to Web Applications. J. Web Eng.
5(2): 121-149 (2006) [28] Spring Framework.
http://www.springsource.org/
[22] Meliá, S., Gómez, J., Pérez, S., Díaz, O.
[29] Spring Roo.http://www.springsource.org
Architectural and Technological Variabi-
/roo
lity in Rich Internet Applications. IEEE
Internet Computing 14(3): 24-32 (2010) [30] Struts. http://struts.apache.org/

[23] Murugesan, S., Deshpande, Y., Hansen, [31] Sun Microsystems. Core J2EE
S. and Ginige, A. Web Engineering: A Patterns - Data Access Object
New Discipline for Development of Web- http://java.sun.com/blueprints/corej2eep
based Systems. First ICSE Workshop on atterns/Patterns/DataAccessObject.html
Web Engineering (WebE99), USA, 1999.

ISSN 1988–3455 SISTEDES 2010 97


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

EMF4CPP: a C++ Ecore Implementation


Andrés Senac Diego Sevilla Gregorio Martínez
Dept. of Inf. & Comm. Eng. Dept. Comp. Eng. Dept. of Inf. & Comm. Eng.
Dept. Comp. Eng. University of Murcia University of Murcia
University of Murcia 30.071 Murcia, Spain 30.071 Murcia, Spain
30.071 Murcia, Spain

Abstract eral, and to Metamodeling in particular.


The EMF approach, with the Ecore meta-
Eclipse, and its Ecore metamodel, have be- model, aimed at providing a simpleryet rich
come a de facto standard for providing a com- enoughmodel elements description that al-
plete working environment for model-driven lowed, among other things, (1) describing
development. However, being Java-centric, model artifacts characteristics (such as classes
there is no established mapping from Ecore to and attributes) in a platform- and language-
the C++ language, partly because of the dif- independent way, and (2) to map those model
culty in overcoming the dierences between elements to implementation technologies and
these two programming languages in areas programming languages constructs.
such as type mapping, memory management,
Models conforming to the Ecore metamodel
and run-time capabilities. EMF4CPP lls this
have a direct mapping to the Java language
gap by providing a C++ implementation and
constructs. However, there is no estab-
type mapping for the Ecore metamodel. It
lished mapping to the C++ programming lan-
oers a C++ code generator with a consis-
guage, limiting the interoperability between
tent type mapping, a reader and a serializer for
the powerful set of tools available around the
XMI-encoded models and metamodels, being
EMF technology and Model-Driven Develop-
able to be used in model-to-model transforma-
ments (MDD) wanting to leverage libraries
tions, and establishing the basis for developing
and techniques available in C++ (such as
a set of tools for MDD in C++ that oer ef-
metaprogramming [6] and Embedded Domain-
cient construction, management, and usage
Specic Languages (DSL) [7].) to oer alter-
native tools and abstractions for text-to-model
of models and metamodels. The paper in-

(T2M), model-to-model (M2M), and model-to-


troduces the mapping, discusses performance
issues and shows motivating usage scenarios.
text (M2T) transformations.
Preliminary tests show C++ code to manip-
EMF4CPP tries to ll this gap by being
ulate models to be 1.5 times faster than the
able to generate C++ implementation arti-
corresponding Java code, and using 35% less
facts from Ecore-based metamodels. The gen-
memory, also favoring its usage in embedded
erated code artifacts support the whole Ecore
environments.
dened characteristics, including classes, at-
tributes, operations, references, etc., as well
1 Introduction as being able to read and write model and
metamodel data using the XMI model inter-
The Eclipse Project [3] and its EMF ( Eclipse change format [13], oering a reective map-
Modeling Framework ) [15] have contributed to ping to work with models and metamodels in
new and encouraging developments in the area a generic way, and including a consistent map-
of Model-Driven Development (MDD) in gen- ping of Ecore types to C++ types.

ISSN 1988–3455 SISTEDES 2010 98


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Thus, the main advantages of EMF4CPP interfaces dened using either CORBA
can be summarized as follows: IDL, Java, or C++, and tests performed
on them, including both static (e.g. out-
• There is no standard C++ type mapping
put values given input values, either ob-
for the Ecore metamodel. EMF4CPP can
tained from previous execution logs or
be seen as a rst step to standarize this
using mathematical functions), and dy-
mapping. This, not only has the direct
namic (e.g. workow-based) tests. A DSL
benet of being able to use the dier-
was developed for specifying these tests.
ent EMF tools (and Ecore metamodels)
The test specication allowed us to au-
to describe the data model of C++ appli-
tomatically generate both testing clients
cations, but also it represents a basis to
and mocking servers. Finally, we also
interoperate with future MDD tools that
modelled the run-time behavior of the
use C++ as the programming language.
testing process, i.e. which tests have been

• It oers a reective API for models and performed, calls made, including input

metamodels, being able to interoperate and output values, which tests failed or

with other tools in intermediate model succeeded, etc. In the case, for example,

transformations (though XMI), and serv- of CORBA IDL/C++ clients, we needed

ing as a basis for tools that exploit a way of representing the modelled run-

C++ idioms and patterns for dealing with time tests state into C++ classes (as it

model creation and transformation. Also, can be done with the Java version using

projects that have to support several im- the EMF tools.) These classes were ob-

plementation languages can share meta- tained using EMF4CPP.

models, and steps can be done into auto-


• Usability assessment and Validation
matic conversion of code between imple-
mentation languages.
on GUIs: Another project for which we
needed EMF4CPP was related to reason-

• By providing a standard C++ mapping, ing about Qt4-based GUIs [12], abstract-

we can easily embed scripting languages ing the properties and characteristics of

such as Python, Lua, or Ruby for writing Qt graphical widgets in order to do run-

tools that manage models and metamod- time usability assessment and validation

els. We have already implemented pre- of input and output values. The ab-

liminary support for Python (PyEcore). straction was actually performed by doing
a model-to-model transformation of the
• Finally, initial results (in Section 3) show original model of Qt widgets to the ab-
C++ around 1.5 times faster and with stract model of widget properties needed
35% less memory footprint in managing for either usability or validation in GUIs.
model data structures. This is a key For instance, in some usability processes,
factor in embedded systems, that usu- we were interested in the containment re-
ally have strong memory and processing lation of widgets, as well as relative po-
power constraints. Also, it represents a sitions, instead of the actual type of the
real-world advantage in dealing with big- widget (i.e. if a widget could be seen as a
ger models (for instance, those resulting container widget.) Alternatively, for in-
of using ADM/KDM [14].) put validation, text boxes and spin boxes
were treated just as widgets producing a
Along with these benets, the development
value that could be checked for validity.
of EMF4CPP was motivated mainly by two
The usability and validation algorithms
industrial projects carried out under the Cát-
were performed on the dierent abstract
edra SAES-UMU [16]:
models for widgets. As Qt is based on
• Generic Interface Testing: We de- C++, and as those algorithms are per-
veloped an abstract model for describing formed mostly at run-time, we needed a

ISSN 1988–3455 SISTEDES 2010 99


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

way of representing, manipulating, and The approach we followed when provid-


transforming models in C++ at run-time, ing a C++ mapping for Ecore is depicted
hence the usage of EMF4CPP. in Figure 1. In the current implementa-
tion, the source code generator was developed
Other similar eorts include EMF4Net [2], a
with EMF itself, particularly using Xpand and
port of EMF to the .NET Platform, RMOF [8],
Xtend [4]. From the Ecore metamodel itself,
an implementation of MOF and Ecore in
it produces C++ source code that gets packed
Ruby, and RGen [11], a Ruby-based modeling
as a shared library. These classes allow us to
and generator framework.
manage, describe, and process any metamodel
This paper is structured as follows: Sec-
described using Ecore.
tion 2 describes the main concepts behind the
Figure 2 shows the process followed by any
Ecore metamodel and introduces the C++
metamodel conforming to Ecore. The gener-
implementation, and examples of usage com-
ator creates C++ classes that allow manip-
pared to the Java counterpart. Section 3 shows
ulating entities of the types dened in the
some performance measurements showing the
metamodel, and also reading model instances
viability of the approach. Finally, Section 4
(i.e. data to ll the classes dened in the meta-
shows some conclusions, the current imple-
model) and process them within a C++ appli-
mentation status, and future work.
cation, linking the correct dynamic libraries.
Thus, EMF4CPP consists of two parts: a
2 The EMF4CPP Design and Im-
source code generator from Ecore metamod-
plementation els to C++ and two runtime support libraries.
One of the runtime support libraries imple-
The Ecore metamodel denes the characteris-
tics of several main abstractions, among the
ments the Ecore metamodel ( libecore ). The
other one allows to parse and serialize models
most important:
in XMI format ( libecorecpp ).

• Classes: Dene the class concept and


their characteristics, such as inheritance,
class attributes, operations, and refer-
2.1 Ecore to C++ Type Mappings
ences to other classes. One of the most challenging issues in bringing

• References: Specify the characteristics


the mapping of Ecore to C++ was to ll the
gap between the type system and the mem-
of dependencies between class' instances
ory management of Java and C++. Table 1
(for example, the physical containment
shows the mapping arranged for the Ecore
property.)
data types.
• DataTypes: State the intrinsic charac- The mapping comprises several parts:
teristics of general data types. Common (1) mapping types and classes, (2) memory
data types such as integer (EInt), double management, (3) the implementation of the re-
precision oating point (EFloat), etc., are ective API (which is used for serialization to
provided. and from XMI documents), and (4) the change

• Packages: Dene a name-space based


notication API.
Regarding the type mapping, we decided
containment architecture for data types,
to map to the closest C++ type (for ex-
classes, and other packages.
ample EBoolean to bool and EClasses to
As we stated above, Ecore also provides triv- C++ classes, EPackages to C++ names-
ial mappings of all those data types and con- paces, etc.), and ignore the dierences between
cepts to Java implementation artifacts. How- boxed (EBooleanObject) and non-boxed ones
ever, Ecore is general enough to allow map- (EBoolean), because this distinction does not
pings to other programming languages to be make sense in C++ since it does not have a
built. supertype Object.

ISSN 1988–3455 SISTEDES 2010 100


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

ECORE
C++
to C++
compiler
generator

Ecore.ecore libecore.so
(ECORE Metamodel) C++ source files (Runtime library)

Figure 1: EMF4CPP implementation workow.

ECORE
C++
to C++
compiler
generator

Foo.ecore libFoo.so
(ECORE Metamodel) C++ source files (Runtime library)

<conforms>
<linked>

C++ user
application <linked>

FooModel.xmi libecore.so
(a Foo model) libecorecpp.so
(Runtime libraries)

Figure 2: Generating C++ classes from an arbitrary metamodel.

The mapping of attributes and references of would be translated into both a class with the
classes is as follows: same name, and a type  MyClass_ptr , with
the semantics of a raw C++ pointer. Given
• For each attribute or reference P, acces-
getP() setP()
the strict meaning of containment (ownership)
sor ( ) and mutator ( ) meth- vs. non-containment references in the Ecore
ods are provided. Unlike the Java map- metamodel, a class always knows which of its
ping, accessor methods for attributes do own structural features to free when an in-
not modify the object instance, so they stance of that class gets reclaimed (as opposed
usually return a constant C++ reference to Java, where memory management is auto-
to the real attribute. matic.)

• If that attribute or reference is multiple ,


additional methods addP() setPAt()
, , and
The reective API allows accessing models

deletePAt() are added to respectively add


using a generic API that does not depend on
the actual types of the contained elements.
a new element to the list, set the n th el-
This supposes a challenge, as C++ does not
ement, and delete the n th element. have a common object root, and its run-time

• A template method as<type>() is pro- reective capabilities are minimal compared to

vided by the EObject class for explicit those oered by Java. So, we implemented

conversion between related types without enough API to be able to query and mod-

the need of temporary variables. ify models in a generic way, but those model
classes must have been previously generated
For the memory management, we decided to by the generator (conversely, Java allows cre-
use raw pointers to represent references. Thus, ating instances of metamodels without previ-
a class named MyClass in the metamodel ously having to generate model classes.) The

ISSN 1988–3455 SISTEDES 2010 101


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

EDataType C++ type EDataType C++ typea


EBigDecimal long doublea EBigInteger long long
EBoolean boolb EBooleanObject boolb
EByte unsigned char EByteArray std::vector<unsigned char>
EChar char ECharObject char
EDate time_t EDiagnosticChain (undened )
EDouble double EDoubleObject double
EEnumerator int EFeatureMap (undened )
EFeatureMapEntry (undened ) EFloat oat
EFloatObject oat EInt int
EIntObject int EJavaObject anyc
ELong long ELongObject long
EResource (undened ) EResourceSet (undened )
EShort short EShortObject short
EString std::stringd EInvocationTargetExcept. (undened )
a This may change to use, for example, types provided by the GMP library [5].
b We decided to use the same basic C++ type for boxed and non-boxed types for Java. (See Section 2.1.)
boost::any
c A type similar to the Boost library [1] .
d The current implementation also allows the usage of std::wstring
and wchar_t
as character type, for example,
in Windows platforms.

Table 1: Ecore to C++ Type Mappings.

full reective API is doable in C++, but left


as a future work as it is not strictly needed to
work with models and metamodels. Addition-
ally, we mapped the EJavaObject type to an
any type that can hold any C++ value.
Finally, the change management API is not
implemented in this rst version. It is left as
a future work. An _initialize() method is pro-
vided to ensure the referential integrity of the
model (see Figure 5.)

Figure 3: Example company metamodel (slightly


2.2 Model Usage and Comparison with modied from [10].)
Java
In this Section we show the EMF4CPP API
The API follows the conventions seen in Sec-
setName()
usage creating a simple metamodel and a
tion 2.1: the method for setting the
addEStructuralFea-
model that conforms to that metamodel. In
com- name property, and the
tures()
this case, we are going to create the
pany metamodel shown in Figure 3 using our method to add a new structural feature

C++ Ecore runtime library. It contains three to the property containing the list of them. Fi-

meta-classes ( Company, Department, and Em- nally, the three new meta-classes are added to

ployee ). This metamodel example is slightly the company package.


modied from [10]. Correspondingly, listing in Figure 5(a)
Figure 4 shows an excerpt of the creation of shows the creation of a simple model con-
the company metamodel using our Ecore run- forming to the metamodel. TheCompany
time library. In particular, the creation of the class (and its corresponding Company_ptr
Company meta-class is shown, with the addi- type) have been previously generated by the
tion of the name attribute of type EString. EMF4CPP generator. Note how all the dif-

ISSN 1988–3455 SISTEDES 2010 102


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

u s i n g namespace e c o r e ; // Get t h e C l a s s i f i e r by name


EClass_ptr companyClass =
EcoreFactory_ptr ecoreFactory = companyPackage −>g e t E C l a s s i f i e r ( "Company" )
EcoreFactory : : _instance () ; −>as< E C l a s s >() ;
EcorePackage_ptr ecorePackage =
EcorePackage : : _instance () ; // C r e a t e an i n s t a n c e
E O b j e c t _ p t r company = companyFactory −>
// C r e a t e a Company c l a s s c r e a t e ( companyClass ) ;
E C l a s s _ p t r c o m p a n y C l a s s = e c o r e F a c t o r y −>
createEClass () ; // Get t h e name s t r u c t u r a l f e a t u r e by name
companyClass −>setName ( "Company" ) ; E S t r u c t u r a l F e a t u r e _ p t r companyName =
companyClass −>g e t E S t r u c t u r a l F e a t u r e ( "name
// Add name a t t r i b u t e t o a Company c l a s s ") ;
E A t t r i b u t e _ p t r companyName = e c o r e F a c t o r y −>
createEAttribute () ; // S e t t h e name a t t r i b u t e
companyName−>setName ( "name" ) ; E S t r i n g name ( " U n i v e r s i t y Of M u r c i a " ) ;
companyName−>setEType ( e c o r e P a c k a g e −> any a(&name ) ;
getEString () ) ; company−>e S e t ( companyName , a ) ;
companyClass −>a d d E S t r u c t u r a l F e a t u r e s (
companyName ) ; // Get t h e name a t t r i b u t e
a = company−>eGet ( companyName ) ;
... c o n s t E S t r i n g ∗ obtained_name = any : :
a ny _c as t < c o n s t E S t r i n g ∗ >(a ) ;
// C r e a t e a p a c k a g e t h a t r e p r e s e n t s company s t d : : c o u t << ∗ obtained_name << s t d : : e n d l ;
EPackage_ptr companyPackage = e c o r e F a c t o r y
−>c r e a t e E P a c k a g e ( ) ; // Get t h e l i s t o f r e f e r e n c e s t o
companyPackage −>setName ( " company " ) ; Departments
companyPackage −>s e t N s P r e f i x ( " company " ) ; EStructuralFeature_ptr departments =
companyPackage −>s e t N s U R I ( " h t t p : / / / com . companyClass −>g e t E S t r u c t u r a l F e a t u r e ( "
e x a m p l e . company . e c o r e " ) ; departments ") ;
companyPackage −>a d d E C l a s s i f i e r s ( a = company−>eGet ( d e p a r t m e n t s ) ;
employeeClass ) ; mapping : : E E L i s t B a s e _ p t r d e p _ l i s t =
companyPackage −>a d d E C l a s s i f i e r s ( any : : any_cast< mapping : : E E L i s t B a s e _ p t r >(
departmentClass ) ; a) ;
companyPackage −>a d d E C l a s s i f i e r s ( // O b t a i n f i r s t d e p t .
companyClass ) ; EObject_ptr department = (∗ d e p _ l i s t ) [ 0 ] ;

Figure 4: Excerpt. Company metamodel creation. Figure 6: Reective API example.

3 Performance Comparison

3.1 Mapping-related Performance Consid-


ferent attributes and relations (references) are
correctly established. A last call to _initial- erations
ize() completes the model to ensure the refer-
ential integrity (e.g. opposite references). Here
Our rst approach at memory management
model deletion is performed automatically us-
ing a std::auto_ptr .
was using Boost boost::shared_ptr construct,
as it manages the memory safely and automat-
ically for pointers. However, this introduced
Figure 5(b) shows the equivalent Java code
performance tradeos, and was not usable in
for the example above. There is no need of the
the case of circular references. As mentioned,
nal initialization pass, as EMF implements
using raw pointers and following the contain-
change notication, left as a future work.
ment relationship for references was enough

Figure 6 shows the usage of the reective for a correct memory management.

API to create a Company class instance, es- Also, using any for the reective API boxed
tablishing its name attribute, then reading all the features of classes, including data types
it, and nally obtaining the list of references and even list of references (those declared, for
to Departments. Note the usage of the any example, as 0..*), which implied a memory
type and the special covariant list type EEL- copy of the whole list of references. So, we
istBase . had to tweak the reective API so that any s re-

ISSN 1988–3455 SISTEDES 2010 103


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

u s i n g n a m e s p a c e company ; i m p o r t company ;

CompanyPackage_ptr companyPackage = CompanyPackage companyPackage =


CompanyPackage : : _ i n s t a n c e ( ) ; CompanyPackage . eINSTANCE ;
CompanyFactory_ptr c o m p a n y F a c t o r y = CompanyFactory c o m p a n y F a c t o r y =
CompanyFactory : : _ i n s t a n c e ( ) ; CompanyFactory . eINSTANCE ;

// C r e a t e a company // C r e a t e a company
s t d : : auto_ptr <Company> umu( Company umu =
companyFactory −>createCompany ( ) ) ; c o m p a n y F a c t o r y . createCompany ( ) ;
umu−>setName ( " U n i v e r s i t y Of M u r c i a " ) ; umu . setName ( " U n i v e r s i t y Of M u r c i a " ) ;

// C r e a t e a d e p a r t m e n t // C r e a t e a d e p a r t m e n t
Department_ptr catSAES = Department catSAES =
companyFactory −>c r e a t e D e p a r t m e n t ( ) ; companyFactory . createDepartment ( ) ;
catSAES−>setNumber ( 8 5 1 5 ) ; catSAES . setNumber ( 8 5 1 5 ) ;

// C r e a t e e m p l o y e e s // C r e a t e e m p l o y e e s
Employee_ptr a s e n a c = Employee a s e n a c =
companyFactory −>c r e a t e E m p l o y e e ( ) ; companyFactory . createEmployee ( ) ;
a s e n a c −>setName ( " A n d r e s Senac " ) ; a s e n a c . setName ( " A n d r e s Senac " ) ;
catSAES−>a ddEm ploy ees ( a s e n a c ) ; catSAES . g e t E m p l o y e e s ( ) . add ( a s e n a c ) ;

Employee_ptr d s e v i l l a = Employee d s e v i l l a =
companyFactory −>c r e a t e E m p l o y e e ( ) ; companyFactory . createEmployee ( ) ;
d s e v i l l a −>setName ( " Diego S e v i l l a " ) ; d s e v i l l a . setName ( " Diego S e v i l l a " ) ;
catSAES−>a ddEm ploy ees ( d s e v i l l a ) ; catSAES . g e t E m p l o y e e s ( ) . add ( d s e v i l l a ) ;

// S e t t h e d e p a r t m e n t manager // S e t t h e d e p a r t m e n t manager
catSAES−>s e t M a n a g e r ( d s e v i l l a ) ; catSAES . s e t M a n a g e r ( d s e v i l l a ) ;

// Add t h e d e p a r t m e n t // Add t h e d e p a r t m e n t
umu−>a d d D e p a r t m e n t s ( catSAES ) ; umu . g e t D e p a r t m e n t s ( ) . add ( catSAES ) ;

// I n i t i a l i z e t h e model // I n i t i a l i z e t h e model
umu−> _ i n i t i a l i z e ( ) ; // ( n o t n e e d e d )

// ( model i s d e l e t e d a u t o m a t i c a l l y ) // ( model i s d e l e t e d a u t o m a t i c a l l y )

(a) C++ code. (b) Java code.

Figure 5: Company model population.

turned references to the class elements. Also, consisted in reading a model conforming to the
unlike Java, C++ standard containers are not simple tree metamodel in Figure 7(a) with a
covariant with the generic type (for example, non-terminal root node with one million chil-
std::list<B> is not a subclass of std::list<A> dren leafs, doing a trivial model transforma-
even if B is a subclass of A ), so in case of hav- tion to build a model conforming to the meta-
ing to obtain a set of references using the re- model in Figure 7(b), and serializing the re-
ective API, we had to build a new list with sulting model.
generic EObject references. To overcome this The transformation included simple model
penalty, we implemented a covariant list type manipulations to measure the overhead of
exclusively for the reective API. working with the model structure itself. In
particular, it consisted on building an or-

3.2 Performance Evaluation dered non-balanced binary tree, lexicograph-


ically comparing the data attribute of the

To show the validity of the approach in the source model leafs. We implemented the same

Ecore C++ implementation, we designed a transformation in both Java and C++.

performance evaluation test to compare it with For the comparison we measured the time
the Eclipse Ecore implementation. The test of loading the model (48MB of XML), model

ISSN 1988–3455 SISTEDES 2010 104


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

ing the source model and making the transfor-


mation. The memory usage in Java has been
measured after calling the garbage collector.
Savings of around 35% were obtained.

EMF EMF4CPP Reduction


L&T (32b) 141,604,848 89,124,579 37.06 %
L&T (64b) 234,417,976 159,354,063 32.02 %
(a) Source metamodel.

Table 3: Memory usage in bytes of load and


transformation and percentage of reduction.

4 Conclusions, Current Status and

(b) Destination metamodel. Future Work

EMF4CPP provides a consistent and ecient


Figure 7: Metamodels used for perfomance testing.
Ecore to C++ mapping that can be used to
follow a model-driven approach for C++ de-

transformation, and the time of writing the velopments. The current implementation al-

resulting metamodel (164MB), in a 3.0 GHz lows to generate C++ code from Ecore meta-

AMD Phenom II X4 940 with 8GB of RAM models and to manage and use models con-

under 64-bit Linux, and in an Intel Core2Quad forming to that metamodels.

Q8300 with 4GB of RAM under 32-bit Linux. Thorough the paper we mentioned a set of
The C++ code was compiled using GCC 4.4 features that were intended for future work,
with -O3 optimization. The Java code was such as to complete the Ecore to C++ map-
run under Sun JDK 1.6.0. We tested 32-bit ping, the fully reective API support, and
and 64-bit because of the dierence in point- the implementation of the change manage-
ers size, as model data structures are mainly ment API.
pointer-based. Also, we plan to develop infrastructure
Table 2 shows the times obtained for tools to manage models, and provide T2M,
both implementations. Model loading M2M, and M2T transformations, leveraging
times are around 1.13 times faster in 32- the C++ metaprogramming techniques to the
bit systems, with a clear bigger speedup MDD paradigm. For example, as an al-
of 1.64 in 64-bit systems. Processing times ternative to the text-to-model workows in
vary from 1.6 (in 32-bit) to 2.37 (in 64-bit) Eclipse, we want to explore using the metapro-
times faster in C++ than in Java. Model writ- gramming, the embedded DSL-based Spirit
ing times range between around 2 to 3.5 times parser [7] and monadic parsers similar to
faster in C++. Haskell Parsec [9] to automatically generate
models from C++-dened parsers. We also
EMF EMF4CPP Speedup
Load (32b) 3941 3503 1.13 want to explore bringing the mapping to C++-

Transf. (32b) 2920 1778 1.64 embeddable scripting programming languages


Serialization (32b) 3878 2011 1.93 such as Lua and Python. EMF4CPP is also
Load (64b) 3696 2145 1.72
Transf. (64b) 2096 886 2.37 being submitted to become an Eclipse Incuba-
1
Serialization (64b) 4466 1286 3.47 tor project.
Another interesting area of future work

Table 2: Times in milliseconds and speedup. is the specication of a higher level meta-

1 http://www.eclipse.org/forums/index.php?t=
Table 3 shows the memory usage after load- msg&goto=542311&.

ISSN 1988–3455 SISTEDES 2010 105


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

metamodel (of which Ecore would be an in- [6] Gurtovoy, A., Abrahams, D.: Boost
stance) that allows a more seamless language MPL Library (2004), http://www.boost.
mappings (for example, Ecore species the org/doc/libs/release/libs/mpl
EJavaObject type, too tied to Java, instead [7] de Guzman, J., Kaiser, H.: The Spirit
of a more generic one). It could also include Parser (2009), http://boost-spirit.com
element characteristics such persistence or re-
[8] Jim Steel, Franck Fleurey, Jesús Sánchez
http://rmof.
mote access properties, allowing to model dis-
Service Oriented Archi- Cuadrado: RMOF (2005),
rubyforge.org/
tributed systems and
tectures (SOA). (last visited May 2010)

EMF4CPP has been developed by the Cát-


[9] Leijen, D., Meijer, E.: Parsec: Direct
edra SAES Team as an Open Source contribu-
Style Monadic Parser Combinators for
tion. Source code and additional information
http://catedrasaes.inf.um.es/trac/
is avalible at
the Real World. Tech. Rep. UU-CS-2001-

wiki/EMF4CPP under the LGPL License.


35, Departement of Computer Science,
Universiteit Utrecht (2001), http://legacy.
cs.uu.nl/daan/parsec.html
Acknowledgements
[10] Litani, E., Merks, E., Steinberg, D.:
This paper has been partially supported by Discover the Eclipse Modeling Frame-
the Cátedra SAES of the University of Mur- work (EMF) and Its Dynamic Capa-
cia [16], a joint eort between SAES (Sociedad http://www.devx.
bilities (August 2005),
Anónima de Electrónica Submarina, http:// com/Java/Article/29093/0/page/1
www.electronica-submarina.com ) and the Uni-
http://
http://www.um.es
versity of Murcia ( ) to work
[11] Martin Thiede:
ruby-gen.org
RGen (2009),
(last visited Jun 2010)
on open-source software, and real-time and
critical information systems.
[12] Nokia Corp.: Qt: A Cross-Platform Ap-
plication and UI framework (2010), http:
References //qt.nokia.com/
[1] Dawes, B., Abrahams, D., Rivera, R., [13] Object Management Group: XML

et al.: Boost C++ Libraries (2010), http: Metadata Interchange (XMI), version

//boost.org/ (last visited May 2010) 2.1.1 (2007), document formal/2007-12-


01. http://www.omg.org/spec/XMI/2.1.1/
[2] Eclipse Foundation: EMF4Net Proposal
(2010),http://wiki.eclipse.org/EMF4Net_ [14] Object Management Group:

Proposal (last visited May 2010) Architecture-Driven Modernization


(ADM): Knowledge Discovery Meta-
[3] Eclipse Foundation: The Eclipse Project Model (KDM), version 1.2 (2010),
(2010), http://www.eclipse.org document formal/2010-06-03

[4] Eclipse Foundation: Xpand and Xtend


http://www.eclipse.org/modeling/
[15] Steinberg, D., Budinsky, F., Paternostro,
(2010),
m2t/?project=xpand#xpand
M., Merks, E.: EMF, Eclipse Modeling
(last visited Framework. Addison-Wesley, second edn.
May 2010) (2009)

[5] Free Software Foundation: The GNU [16] University of Murcia, SAES: Cátedra
Multiple Precision Arithmetic Library http://www.um.es/
http://gmplib.org/
SAES-UMU (2010),
(GMP) (2010), (last catedrasaes
visited May 2010)

ISSN 1988–3455 SISTEDES 2010 106


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Generación de modelos de servicios en SoaML desde modelos de


procesos de negocio en BPMN con QVT

Andrea Delgado Ignacio García-Rodríguez Francisco Ruiz,


de Guzmán Mario Piattini
Instituto de Computación Grupo Alarcos Grupo Alarcos
Facultad de Ingeniería Departamento de Tecnologías y Departamento de Tecnologías y
Universidad de la República Sistemas de Información Sistemas de Información
1300 Montevideo, Uruguay Universidad de Castilla – La Mancha Universidad de Castilla – La Mancha
adelgado@fing.edu.uy 13071 Ciudad Real 13071 Ciudad Real
ignacio.grodriguez@uclm.es {francisco.ruizg,mario.piattini}@uclm.es

Resumen Architecture, SOA) es un estilo de arquitectura


para la implementación con servicios [2][3]. Los
El modelado de procesos de negocio en las servicios constituyen actualmente una de las
organizaciones permite explicitar el conjunto de implementaciones más utilizadas, junto con
actividades que son necesarias para lograr los motores de procesos, para soportar las diversas
objetivos del negocio definidos. Tradicionalmente etapas de la Gestión de Procesos de Negocio
éstos han sido parte del área del negocio sin (Business Process Management, BPM) [4]. La
demasiada relación con su implementación introducción de una capa de servicios intermedia
tecnológica por el área de sistemas, que en general entre la capa de definición de los procesos de
se ha realizado con una visión vertical de la negocio y la capa de implementación en distintas
organización por sus secciones. La incorporación tecnologías, aporta a reducir el acoplamiento entre
de cambios a los sistemas y la interacción entre las mismas, vía los servicios definidos. Los
éstos ha requerido esfuerzos importantes, debido servicios realizan y por lo tanto se mapean a
en parte a la visión vertical del desarrollo y al alto actividades, sub-procesos y/o procesos de negocio
acoplamiento entre los procesos de negocio completos, relacionando el diseño de software con
(muchas veces implícitos en los sistemas) y su la definición de los procesos. A su vez, los
implementación. La realización de procesos de servicios definidos son implementados por
negocio con servicios introduce una capa de componentes y sistemas de software, mapeando el
intermedia, que permite mayor agilidad en los diseño de software con su implementación. De
cambios en los procesos o las tecnologías. La esta forma, se agiliza la introducción de cambios
generación automática de servicios en SoaML tanto en los procesos de negocio como en su
desde procesos de negocio en BPMN que se implementación, minimizando el impacto de los
presenta, aporta a la agilidad organizacional cambios en una capa sobre la otra [2][3].
proveyendo además trazabilidad entre los Sin embargo, las ventajas de la introducción
elementos involucrados. de servicios en las organizaciones no han sido
totalmente alcanzadas, en parte por la escasez o
1. Introducción poca utilización de metodologías para guiar el
desarrollo orientado a servicios. Si bien la
implementación y ejecución de servicios en los
El paradigma de Computación Orientada a
últimos años ha madurado considerablemente, el
Servicios (Service Oriented Computing, SOC)
modelado de servicios aún está en definición. Este
basa el diseño de aplicaciones masivas
modelado es fundamental entre otras cosas, para
distribuidas y evolutivas en servicios [1]
permitir la automatización de distintas etapas del
elementos de software reutilizables mediante los
desarrollo de software utilizando el paradigma de
cuales consumidores y proveedores de servicios
Desarrollo Dirigido por Modelos (Model Driven
interactúan en forma desacoplada para realizar
Development, MDD)[5], incluyendo la generación
procesos de negocio en secuencias de
de código desde estos modelos. El estándar Soa
invocaciones a servicios. La Arquitectura
Modeling Language (SoaML) [6] del Object
Orientada a Servicios (Service Oriented

ISSN 1988–3455 SISTEDES 2010 107


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Management Group (OMG) es un paso en este El resto del documento se organiza de la


sentido. SoaML define un metamodelo y un perfil siguiente forma: en la sección 2 se presentan los
UML para modelar servicios, extendiendo UML. principales elementos de SoaML y BPMN en base
En este artículo se presenta la definición de al modelo de proceso de negocio “Otorgar
transformaciones QVT [7] desde modelos de Préstamo”, en la sección 3 se describen las
procesos de negocio en Business Process transformaciones QVT definidas, en la sección 4
Modeling Notation (BPMN) [8] a modelos de se muestran las transformaciones sobre el
servicios en SoaML, para automatizar la ejemplo presentado, y finalmente en la sección 5
obtención de servicios directamente desde los se presentan conclusiones y trabajo futuro.
procesos de negocio. El estándar BPMN
constituye actualmente el estándar más importante 2. Principales elementos de los estándares
para modelado de procesos de negocio, y el BPMN y SoaML
estándar SoaML constituye la base para la
homogeneización del modelado de servicios, que
Para ilustrar los elementos de BPMN se introduce
hasta su definición se realizaba con distintas
en la Figura 1 el modelo de proceso de negocio
notaciones y por lo tanto distintos elementos y
“Otorgar Préstamo” que se utilizará como ejemplo
distinta semántica asociada a los mismos []. Estas
a lo largo de este artículo. BPMN especifica un
transformaciones se integran en la definición del
único tipo de diagrama, el Business Process
marco MINERVA (Model drIveN and sErvice
Diagram (BPD), un conjunto de elementos núcleo
oRiented framework for the continuous business
con el cual modelar la mayoría de los procesos de
processes improVement & relAted tools) [9] que
negocio y un conjunto completo. Los elementos
integra los paradigmas BPM, SOC y MDD para
definidos se agrupan en: Swimlanes, Objetos de
soportar la mejora continua de procesos de
Flujo, Objetos de Conexión y Artefactos. En el
negocio. La utilización de estándares es la base
grupo de Swimlanes se definen: Pool que
del marco, por lo que además de BPMN y SoaML
representa una entidad o rol participante (ej.
se utiliza QVT para las transformaciones.
Banco), y Lane que representa una sub-partición

Figura 1. Proceso de negocio “Otorgar Préstamo” en BPMN

ISSN 1988–3455 SISTEDES 2010 108


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

dentro de un Pool para organizar actividades (ej. definen objetos de texto, de datos y grupos. El
Servicios al Cliente). estándar se encuentra actualmente bajo
El grupo de objetos de Flujo contiene los modificación ya que la última versión 2.0 beta1
distintos tipos de Actividad que representa el introduce nuevos elementos y cambia otros
trabajo que la organización realiza, y puede ser existentes en los estándares previos.
atómica o un sub-proceso compuesto de otras Por otro lado, el estándar SoaML define
actividades (ej. de Actividad atómica Solicitar servicio (Service) como un recurso que permite el
Préstamo). También están entre los Objetos de acceso a una o más capacidades provistas,
Flujo, los puntos de decisión utilizados para mediante la interface definida, que es ejercitado
controlar la divergencia y convergencia del flujo consistentemente con restricciones y políticas
del proceso, que puede ser paralelo (AND, nodos especificadas en la descripción del servicio. La
con cruz horizontal en Autorización de Préstamo), arquitectura general de servicios se especifica en
exclusivo (XOR, nodos con cruz inclinada), la colaboración ServicesArchitecture, donde se
inclusivo (OR, nodo con el círculo en blanco) o muestran los roles participantes y los contratos de
complejo. Incluye también los eventos que son servicios definidos. En la Figura 2 se presenta una
algo que ocurre en el curso del proceso afectando parte del modelo en SoaML correspondiente a la
su flujo, con una causa (trigger) y un impacto ServicesArchitecture para el proceso de negocio
(result) y pueden ser de inicio, intermedios o fin, y “Otorgar Préstamo” presentado antes, con tres
pueden tener un tipo como tiempo o error (ej. contratos de servicio a modo de ejemplo. Un
eventos de inicio y fin simples). servicio se provee por una entidad (provider, ej.
El grupo de objetos de conexión define los :Banco) para su uso por otros (consumers, ej.
objetos de flujo de secuencia que muestran el :Cliente), donde los consumidores del servicio
orden en que las actividades del proceso se pueden no ser conocidos para el proveedor. Un
realizan, desde el inicio hasta el fin, y el flujo de servicio puede tener una o más interfaces y un
mensajes entre dos participantes (las flechas contrato asociado. Un contrato de servicio
enteras son de secuencia y las punteadas de (ServiceContract, en el ejemplo uno es :Registrar
mensajes). Los objetos de flujo de secuencia solo solicitud) es una colaboración que define los
pueden utilizarse dentro de un mismo pool, entre términos, condiciones, interfaces y coreografía en
distintos pools se deben utilizar los objetos de que los participantes acuerdan para usar el
flujo de mensajes. En el grupo de Artefactos se servicio. Las interfaces pueden ser de tipo simple

Figura 2. Parte de la Arquitectura de servicios para el Proceso de negocio “Otorgar Préstamo” en SoaML

ISSN 1988–3455 SISTEDES 2010 109


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

UML Interface, o de tipo interface de servicio desarrollo orientado a servicios en MINERVA


(ServiceInterface) que es una clase definida con incluimos la metodología Business Process
tres secciones principales: las interfaces provistas Service Oriented Methodology (BPSOM) [10] a la
y requeridas, la clase interface y el protocolo cual estamos agregando la generación automática
de comportamiento (choreograpy). Los de servicios desde procesos de negocio que se
participantes (Participant) son componentes de presenta, en las actividades de BPSOM definidas.
software, organizaciones o sistemas que proveen y La importancia de generar servicios
usan servicios, ofreciendo capacidades en un automáticamente directamente desde los procesos
ServicePoint y requiriendo otras en un de negocio es la de la generación automática:
RequestPoint, ambos especializando Port UML. permitir el reuso de conocimiento, reducir los
Un canal de servicios (ServiceChannel) permite la errores de diseño, registrar la trazabilidad de las
comunicación entre estos, y los tipos de mensajes relaciones entre elementos de los distintos
(MessageType) especifican el tipo de información modelos, y mejorar la productividad. Al diseñar o
a intercambiar en las operaciones. La arquitectura generar servicios otro aspecto importante a tener
interna de cada participante se presenta en una en cuenta es la existencia de servicios ya
ParticipantArchitecture que se realiza por cada implementados en la organización que puedan ser
participante, definiendo servicios internos que reutilizados. En BPSOM se considera con una
permiten proveer los servicios externos ofrecidos. actividad que explícitamente requiere la revisión
El estándar se encuentra actualmente en su de un catálogo de servicios existentes, que serán
versión beta2, en la cual se introdujeron cambios incluidos en el modelo SoaML obtenido. En este
como el nombre de ServicePoint y RequestPoint a sentido la re-ejecución de transformaciones deberá
Service y Request respectivamente, y la preservar estas definiciones.
sustitución del uso de la ParticipantArchitecture Un elemento clave para definir las
por el mismo tipo de colaboración transformaciones son las relaciones entre
ServicesArchitecture para modelar la arquitectura elementos de un modelo de procesos de negocio y
interna de cada participante. un modelo de servicios. Para conceptualizar estas
relaciones y los conceptos involucrados en cada
3. Transformaciones QVT de BPMN a modelo, definimos una ontología de modelado
SoaML [11]] que se incluye en MINERVA para su
utilización como referencia conceptual. Teniendo
en cuenta la conceptualización realizada, hemos
Si bien la realización de procesos de negocio con
identificado varias correspondencias entre los
servicios tiene asociadas las ventajas mencionadas
conceptos involucrados en el modelado de
previamente, la definición de los servicios
procesos de negocio y servicios, que luego
“correctos” para soportar estos procesos es
trasladamos a los metamodelos de BPMN y
todavía un desafío. Existen varias iniciativas para
SoaML. En la Tabla 1 se muestran las principales
proveer soporte metodológico para derivar
correspondencias definidas entre los metamodelos
servicios desde procesos de negocio y automatizar
involucrados, y las transformaciones QVT que los
esta derivación cuando sea posible, pero el
relacionan.
problema está aún en estudio. Para guiar el

Tabla 1. Principales relaciones y conceptos en las transformaciones QVT

Modelo Procesos de Negocio Transformación QVT Modelo Servicios


BusinessProcessDiagram ProcessToModel ServicesModel
Pool PoolToParticipant Participant
Lane LaneToParticipant Participant
Activity+IncomingMessages ActivityMessageToServicePoint ServicePoint
Activity+OutgoinMessages ActivityMessageToRequestPoint RequestPoint
MessagingEdge+Target PoolMessageToServicePoint ServicePoint
MessagingEdge+Source PoolMessageToRequestPoint RequestPoint

ISSN 1988–3455 SISTEDES 2010 110


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Las relaciones identificadas nos permiten transformadas. De los mensajes que entran a las
obtener los primeros elementos en el modelo actividades podemos identificar los servicios a
SoaML para definir la arquitectura de alto nivel. proveer (para su ejecución) en los ServicePoint
En la Tabla 2 se presenta un sub-conjunto de las asociados al participante que corresponde al pool
transformaciones QVT definidas. De cada Pool se que contiene a la actividad. De los mensajes que
obtiene un participante en la arquitectura que salen de las actividades podemos identificar los
serán quienes ofrezcan y requieran servicios, de servicios requeridos de otros participantes a los
cada Lane se obtiene un participante interno a que corresponde el Pool que contiene a la
éstos, que se utilizará en la definición de la actividad. En SoaML los ServicePoint y
arquitectura interna asociada al participante. Las RequestPoint son conjugados, esto es si un
actividades que se tendrán en cuenta para las participante brinda un servicio en un ServicePoint
transformaciones son las marcadas con el tipo habrá otro que lo requiera en un RequestPoint.
“Service” que indica que esa actividad será Debido a que en BPMN los mensajes pueden
soportada por un servicio. El marcado del modelo asociarse también a Pools sin necesidad de que
BPMN para generar servicios, lo realiza el estén específicamente asociados a una actividad
Arquitecto de software como parte del diseño de en el Pool, deben ser identificados para generar
servicios. Otras actividades podrán ser manuales o también los servicios asociados. Esto ocurre
de cualquier otro tipo de BPMN y no serán generalmente cuando de un Pool no se conoce su

Tabla 2. Sub-conjunto de las transformaciones QVT definidas de BPMN a SoaML.

Reglas de relaciones definidas en QVT


top relation ProcessToModel {
checkonly domain bpmn bp : bpmn::BpmnDiagram{name = pn};
enforce domain soaml sm : SoaML::Model{name = pn }; }
top relation PoolToParticipant {
checkonly domain bpmn p : bpmn::Pool{name = pn};
enforce domain soaml s : SoaML::Participant{name = pn};}
top relation LaneToParticipant {
checkonly domain bpmn p : bpmn::Lane{name = pn };
enforce domain soaml s : SoaML::Participant{ name = pn };}
top relation ActivityMessageToServicePoint {
checkonly domain bpmn c : bpmn::Activity{lanes = p : bpmn::Lane{},
activityType = bpmn::ActivityType::Task,
incomingMessages = im : bpmn::MessagingEdge{}, name = cn};
enforce domain soaml t : SoaML::ServicePoint {
participant = s : SoaML::Participant {},
isService = true, name = cn};
when { p.pool.bpmnDiagram.pools.lanes.activities -> exists (x:bpmn::MessageVertex |
(x.outgoingMessages.target = c.incomingMessages.target) and
(x.oclAsType(bpmn::Activity). activityType = c.activityType)) or
(p.pool.bpmnDiagram.pools -> exists (x:bpmn::MessageVertex |
(x.outgoingMessages.target = c.incomingMessages.target)));
PoolToParticipant (p.pool, s); }}
top relation PoolMessageToServicePoint {
checkonly domain bpmn c : bpmn::MessagingEdge{
target = d : bpmn::MessageVertex {name = cn}
enforce domain soaml t : SoaML::ServicePoint {
participant = s : SoaML::Participant {},
isService = true, name = cn };
when {PoolToParticipant (d, s);}}

ISSN 1988–3455 SISTEDES 2010 111


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

estructura interna (o no se quiere mostrar) y solo 4. Ejemplo de las transformaciones


se definen los mensajes intercambiados con otros
Pools. La granularidad de los servicios es un tema El ejemplo corresponde al proceso de negocio de
complejo y ampliamente tratado en la literatura un banco genérico “Otorgar Préstamo” en el cual
[2][3]. Si bien en general es recomendable que la hay tres participantes involucrados: el Cliente que
granularidad sea de tipo gruesa, servicios básicos solicita el préstamo, el Banco que recepciona la
generados podrán ser combinados en un servicio solicitud, la evalúa y autoriza o no el préstamo, y
de mayor granularidad, si se considera adecuado. el Centro de Información de Créditos al cual el
Como se puede observar en la Tabla 2, las Banco le solicita información sobre la situación
primeras tres reglas permiten obtener el Model crediticia del Cliente, cuando la solicitud se
SoaML de servicios desde el diagrama de encuentra en evaluación. En la Figura 1 en la
procesos con la regla “ProcessToModel”, y los sección 2 se puede ver el modelo del proceso de
participantes desde cada Pool y desde cada Lane negocio “Otorgar Préstamo” en BPMN.
dentro de los Pool, con las reglas Para realizar este ejemplo integramos varias
“PoolToParticipant” y “LaneToParticipant”. Los herramientas al entorno Eclipse, ya que hemos
primeros serán utilizados para definir la definido en la dimensión de las herramientas de
arquitectura de servicios para el proceso de MINERVA el soporte [12] basado en Eclipse. Por
negocio completo, los segundos serán utilizados lo que utilizamos para el modelado de procesos de
para describir la arquitectura interna de cada uno negocio el plug-in de Eclipse BPMN Modeler
de los anteriores. [13], y para el modelado SoaML el plug-in Magic
En la cuarta regla nombrada como Draw Cameo SOA+ [14] debido a que no hay aún
“ActivityMessageToServicePoint” se generan los demasiadas implementaciones del estándar y
ServicePoint que serán los servicios provistos por queríamos una integración en Eclipse para tener
los participantes con que esté asociada la actividad todas las herramientas en el mismo entorno.
que los determina. En esta regla se recorren las Estamos definiendo nuestra implementación de un
actividades en el modelo BPMN para determinar plug-in Eclipse para SoaML que integraremos.
las conexiones con mensajes existentes. Solo Desde el modelo SoaML es posible generar el
estamos transformando actividades conectadas código asociado con el motor MDA de ModelPro
con mensajes, esto es, actividades que se [15]. Para la definición y ejecución de las
encuentran en distintos Pools, o Pools que se transformaciones QVT usamos el plug-in de
encuentran conectados con actividades. La Eclipse MediniQVT [16].
expresión OCL en la cláusula when chequea que Como se observa en la Figura 1, además de
los mensajes entrantes a la actividad evaluada los tres Pool mencionados el Banco tiene dos
provenga de un Pool o de otra actividad. Esto es Lanes una para “Servicios al Cliente” y otra para
una restricción del metamodelo de la herramienta “Autorización de Préstamos”. Existen tres
que estamos utilizando ya que los eventos y los mensajes enviados del Cliente al Banco, tres
gateways también están definidos como mensajes enviados del Banco al Cliente, y dos
actividades, por lo que tuvimos que cambiar la mensajes entre el Banco y el Centro de
restricción original de que el tipo de actividad Autorización de Créditos. Los metamodelos del
fuera Servicio. BPMN Modeler y de SoaML se cargan en el
La última regla denominada entorno Eclipse como metamodelos Ecore [17]
“PoolMessageToServicePoint” genera los mediante las facilidades que provee Eclipse, y el
ServicePoint que no están asociados con modelo del proceso de negocio “Otorgar
actividades sino directamente con Pools, como Préstamo” en formato XMI, que cumple con el
permite BPMN cuando un Pool no se encuentra metamodelo de BPMN Modeler puede entonces
expandido. Estas transformaciones no son las ser transformada en un modelo SoaML en formato
únicas que se pueden definir para obtener los XMI que cumple con el metamodelo SoaML.
elementos que estamos transformando, por lo cual Luego de ejecutar las transformaciones QVT se
estamos investigando también otras formas de obtiene el archivo XMI que corresponde con el
obtenerlos, y de obtener el resto de los elementos modelo SoaML generado.
para generar modelos SoaML completos.

ISSN 1988–3455 SISTEDES 2010 112


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 3. Archivo XMI generado correspondiente al modelo SoaML

La Figura 3 presenta el archivo XMI generado, y “Recibir información de crédito del cliente” de la
muestra los participantes generados interacción con el Centro de Información. Para el
correspondientes al Cliente, Banco y Centro de Cliente se generan los ServicePoint: “Recibir
Información de Crédito, más los participantes resolución”, “Firmar contrato del préstamo” y
internos al Banco “Servicios al Cliente” y “Recibir dinero del préstamo” de la interacción
“Autorización de Préstamo”. Para el Centro de con el Banco. Todos los ServicePoint generados
Información de Crédito se obtiene el ServicePoint tienen el nombre de la actividad asociada, el
del mismo nombre, ya que al no estar expandido atributo isService en True, y tienen asociado el
no se conocen sus actividades. Para el Banco se identificador del participante (interno) que los
obtienen los ServicePoint: “Registrar solicitud”, provee. Luego el archivo XMI se debe cargar en
“Entregar contrato del préstamo”, “Registrar el modelador para visualizar los diagramas y
contrato del préstamo” de la interacción de desde estos generar el código. En la Figura 4 se
mensajes con el Cliente, y el ServicePoint muestra en forma gráfica la parte del diagrama

Figura 4. Parte del Diagrama ServicesArchitecture en SoaML

ISSN 1988–3455 SISTEDES 2010 113


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

ServicesArchitecture asociada con la generación reglas de mapeo entre los modelos que se
de estos elementos básicos. El diagrama generado automatizan parcial o totalmente. En [22] se
es parte del tipo de diagrama de agrega un modelo de valor desde el cual se
ServicesArchitecture para definir la arquitectura definen transformaciones a modelos de casos de
de alto nivel para el proceso de negocio. Estamos uso, automatizadas con ATL, que también se usa
trabajando en primera instancia con la vista en [23] definiendo dos tipos de reglas de
estructural de servicios, para luego incorporar la transformación: de generación básica para crear
generación de la parte dinámica asociada por elementos del modelo destino y de ligamiento
ejemplo, a los contratos. La generación de los para generar links entre éstos. A diferencia
participantes involucrados y de los ServicePoint y usamos metamodelos estándar existentes,
RequestPoint asociados para proveer y requerir derivando servicios directamente desde los
servicios entre ellos, corresponde a los elementos procesos de negocio, con QVT.
básicos con que se debe contar para presentar los En [24] se definen transformaciones
diagramas SoaML completos. Como puede conceptuales basadas en la sucesiva aplicación de
observarse en la Figura 4, se muestran los tres patrones desde la capa superior a la capa inferior,
participantes del proceso de negocio generados, utilizando grafos para hacer pattern matching. [25]
con ejemplos de puertos ServicePoint y define dos pasos para transformar procesos de
RequestPoint asociados a cada uno, mostrando el negocio en servicios: identificar tareas en los
tipo de las interfaces. Si bien aún no se generan procesos que son invocaciones a servicios, luego
los contratos de servicio, ni las interfaces integrando el modelado de procesos de negocio y
asociadas con sus operaciones, parámetros y tipos objetos en un modelo de servicios del negocio
de mensajes, la obtención de los elementos (Business Service Model, BSM) mediador entre
básicos de la ServicesArchitecture provee la base los requerimientos y su implementación. En
para el resto de las transformaciones. contraste utilizamos modelo de diseño de
servicios sin mediadores, y no proponemos
5. Trabajos relacionados nuevos patrones sino la utilización de patrones de
procesos existentes, los patrones de procesos de
Existen varias propuestas para transformar y negocio [26] principalmente para la validación de
los modelos. Estamos explorando también su uso
generar modelos de software desde procesos de
negocio utilizando lenguajes existentes como como guía en transformaciones más complejas.
QVT o ATL[18] o utilizando nuevos enfoques o
lenguajes definidos. BPMN es la notación más 6. Conclusiones y trabajo futuro
utilizada para modelar procesos de negocio, y
UML para el modelado de software y servicios. La propuesta presentada para obtener modelos
En [19] se proponen transformaciones de BPMN a de servicios en SoaML desde modelos de procesos
UML pero con foco en elementos de seguridad de negocio en BPMN mediante transformaciones
agregados al modelo BPMN, para obtener primero QVT, pretende automatizar lo más posible la
un DA de UML y de ahí derivar casos de uso y generación de servicios desde procesos de
clases de análisis. [20] también transforma BPMN negocio, en base a la utilización de notaciones y
en UML anotando el modelo BPMN con lenguajes estándares. Si bien las transformaciones
información a ser procesada por las corresponden a un conjunto reducido de reglas
transformaciones, obteniendo varios artefactos para un conjunto reducido de elementos
UML como DA, casos de uso y diagramas de seleccionados de BPMN y SoaML, creemos que
colaboración y deployment. Ambos trabajos proveen la base para la definición de
difieren del nuestro en que no usamos artefactos transformaciones para el resto de los elementos,
intermedios para pasar del modelo BPMN al que es en lo que estamos trabajando actualmente.
modelo SoaML sino que lo hacemos directamente. Estas transformaciones se integran en la
En [21] se modela el comportamiento de metodología BPSOM para desarrollo orientado a
sistemas Web con cuatro PIMs: servicios de servicios desde procesos de negocio definido en el
usuario, casos de uso extendidos, proceso de marco MINERVA que constituye el eje del
servicios y composición de servicios, definiendo trabajo de investigación. El marco está basado en

ISSN 1988–3455 SISTEDES 2010 114


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

la integración y utilización de diversos estándares [5] Mellor, S., Clark, A., Futagami, T., Model
existentes para procesos de negocio, servicios y Driven Development - Guest editors
desarrollo dirigido por modelos. En ese sentido introduction, IEEE Computer Society,
BPMN, SoaML y QVT, alineado con MDA, son September/October, (2003).
estándares de OMG integrados para la generación [6] Soa Modeling Language (SoaML),v.1.0 Beta1,
automática de servicios presentada en este OMG, (2009).
artículo. De la misma forma el soporte de [7] Query/Views/Transformations (QVT), v.1.0,
herramientas definido está basado en el entorno OMG, (2008).
Eclipse, integrando diversos plug-ins que soporten [8] Business Process Modeling Notation (BPMN),
las distintas etapas del desarrollo. Adicionalmente OMG, (2008).
estamos trabajando en la definición de un plug-in [9] Delgado A., Ruiz F., García-Rodríguez de
de Eclipse propio para implementar el estándar Guzmán I., Piattini M:, MINERVA: Model
SoaML que se integre en el entorno. drIveN and sErvice oRiented framework for
El conjunto completo de transformaciones the continuous business processes
QVT con el soporte metodológico y de improVement & relAted tools, In: 5th IW on
herramientas integrado en el marco MINERVA Engineering Service-Oriented Applications
servirá para guiar todo el proceso de desarrollo de (WESOA’09), in ICSOC, Stockholm, (2009).
aplicaciones orientadas a servicios desde procesos [10] Delgado A., Ruiz F., García-Rodríguez de
de negocio. Creemos que MINERVA puede Guzmán I.,Piattini M., Towards a Service-
resultar una guía útil y soporte de herramientas Oriented and Model-Driven framework with
basado en Eclipse, para ser utilizado en business processes as first-class citizens, In:
organizaciones que requieran una integración 2nd IC on Business Process and Services
rápida y fácil de metodologías, herramientas y Computing (BPSC’09),Leipzig, (2009).
conceptos para adoptar los paradigmas BPM, SOC [11] Delgado A., Ruiz F., García-Rodríguez de
y MDD. Guzmán I., Piattini M., Towards an ontology
for service oriented modeling supporting
Agradecimientos. Este trabajo ha sido business processes, 4th. IC on Research
parcialmente financiado por la Agencia Nacional Challenges in Information Science (RCIS’10),
de Investigación e Innovación (ANII), Uruguay, Nice, (2010).
proyecto ALTAMIRA (Junta de Comunidades de [12] Delgado, A., García - Rodríguez de Guzmán,
Castilla-La Mancha, España, Fondo Social I., Ruiz, F., Piattini, M.: Tool support for
Europeo, PII2I09-0106-2463), proyecto PEGASO Service Oriented development from Business
/MAGO (Ministerio de Ciencia e Innovación Processes, 2nd Int. Work. on Model-Driven
MICINN, España, y Fondo Europeo de Desarrollo Service Engineering (MOSE’10), in TOOLS,
Regional FEDER, TIN2009-13718-C02-01). Málaga, (2010)
[13] SOA Tools Platform (STP) BPMN Modeler,
Referencias http://www.eclipse.org/bpmn/
[14] Magic Draw Cameo SOA+,
[1] Papazoglou, M.; Traverso, P.; Dustdar, S.; http://www.nomagic.com/
Leymann, F.: Service-Oriented Computing: [15] ModelPro, http://modeldriven.org/
[16] Medini QVT, ikv++ technlogies ag,
State of the Art and Research Challenge, IEEE
Computer Society, (2007). http://projects.ikv.de/qvt/
[2] Erl, T.,Service-Oriented Architecture: [17] Eclipse Process Framework Composer (EPF
Concepts, Technology, and Design, Composer), http://www.eclipse.org/epf/
[18] Jouault, F., Kurtev, I., Transforming Models
PrenticeHall, (2005).
[3] Krafzig, D., et.al, Enterprise SOA, SOA: Best with ATL (ATLAS Transformation
Practices, Prentice Hall, (2005). Language), Satellite Events at MoDELS
[4] Smith,H.,Fingar,P.,Business Process Conference (2006)
Management: The third wave, Meghan- [19] Rodríguez,A.; Fernández-Medina, E.; Piattini,
Kieffer, (2003). M.: Towards CIM to PIM Transformation:
From Secure Business Processes Defined in

ISSN 1988–3455 SISTEDES 2010 115


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

BPMN to Use-Cases. 5th International [23] Touzi J., Benaben F., Pingaud H., Lorré J.P., A
Conference on Business Process Management model-driven approach for collaborative
(BPM’07), (2007). service-oriented architecture design, Int. J. of
[20] Liew,P., Kontogiannis,K. Tong,T., A Prod. Economics,Vol.121 Is. 1, (2009)
Framework for Business Model Driven [24] Gacitua-Decar V., Pahl C., Pattern-based
Development,12th Int. Workshop on Sw. business-driven analysis and design of service
Tech. and Eng. Practice (STEP’04), (2004). architectures, 3rd Int. Conf. on Software and
[21] de Castro, V., Marcos, E., López Sanz, M., A Data Technologies SE (ICSOFT’08), (2008)
model driven method for service composition [25] Rychly M., Weiss P., Modeling of SOA: from
modelling: a case study, Int. J. Web business process to service realization, 3rd Int.
Engineering and Tech., Vol. 2, No. 4, (2006) Conf. on Evaluation of Novel Approaches to
[22] de Castro V., Vara Mesa J. M., Herrmann E., SE, (ENASE 08), (2008)
Marcos E., A Model Driven Approach for the [26] van der Aalst, W.; ter Hofstede, A.;
Alignment of Business and Information Kiepuszewski, B.; Barros, A. 2003. Workflow
Systems Models, (2008) Patterns, In Distributed and Parallel
Databases, 14(3), pages 5-51.

ISSN 1988–3455 SISTEDES 2010 116


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Variability Issues in MARTE for SPL Model Analysis

Lorea Belategi, Goiuria Sagardui, Joseba Andoni Agirre, Leire Etxeberria


Mondragon Unibertsitatea
Loramendi 4,
20500 Arrasate-Mondragon
{lbelategui, gsagardui, jaagirre, letxeberria}@eps.mondragon.edu

Abstract (hardware/software), distribution (on potential


multiple and heterogeneous hardware resources),
Nowadays, embedded systems are more and more ability to react (supervision, user interfaces
common and their software is increasing its modes), criticality, real-time and consumption
complexity dealing with quality, cost and time-to- constraints are their characteristics [1].
market among others. Quality attributes are an Embedded systems usually are systems with
important issue to take into account in embedded critical temporal aspects to meet among others
software development where time issues may be because of their characteristics. Therefore,
critical. Development paradigms like Model software validation from early development stages
Driven Development (MDD) and Software is crucial in embedded systems. However, making
Product Lines (SPL) can be an adequate embedded software validation is not trivial.
alternative to traditional software development SPL and MDD development paradigms can be
and validation methods, facilitating software an adequate alternative to traditional embedded
validation based on models like model analysis. In software development and validation methods.
order to perform embedded SPL model analysis Embedded systems usually are similar products
with MARTE profile, some variability aspects that with some variability in hardware and/or software
take part in validation (like functional, quality and SPL are able to manage common and variant
attributes, platform and allocation) must be features among members of the line. In an
considered, modelled and managed. Thus, a study embedded product line different members of the
of variability issues in order to perform SPL line may vary from each other in terms of their
model analysis with MARTE has been done. behaviour, quality attributes, platform, network,
physical configuration, middleware, and scale
factors and in a multitude of other ways [19].
1. Introduction MDD abstracts from system complexity by
the use of models, where information related to
the critical quality attribute can be attached and
Cost, quality and time-to-market have been the
used for model analysis (a model validation
main concerns in software engineering since the
technique).
beginning. In embedded systems, not only
Combining both paradigms facilitates the
development time must be met and changing
software architecture analysis by performing
requirements managed as in other domains.
model analysis technique. The architecture is the
Software architectures are usually complex and
first design artifact that addresses the quality
fragile, technological platforms evolve and change
goals of the system such as security, reliability,
constantly and requirements such as reliability and
usability, modifiability and real-time performance
safety add even more complexity to the
[19].
development process. In this context, it becomes
MARTE (UML Profile for Modeling and
essential to use a development methodology that
Analysis of Real-Time and Embedded systems)
is flexible enough to capture this complexity.
[1] profile standardized by OMG, defines
One of the main issues in software
quantitative performance annotations (such as
development is to ensure that the final product
resource demands made by different software
satisfies all requirements (functional and quality
execution steps, performance requirements, etc.)
attributes) and this becomes more critical in
to be included in a model.
embedded systems where heterogeneity

ISSN 1988–3455 SISTEDES 2010 117


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

MARTE profile allows annotating temporal 2. Analysis in MARTE - AnalysisContext


aspects (information related to schedulability and
performance) in models in order to analyze or MARTE analysis is intended to support accurate
determine whether they will meet those temporal and trustworthy evaluations using formal
requirements. Performance analysis uses quantitative analyses based on mathematical
stochastic techniques such as queuing theory or models [1]. Quantitative analysis techniques
Petri nets to calculate response times, delays and determine the output values such as response
resources requirements. Thus, they are aimed at times, deadline failures, resource utilizations, etc.
determining the rate at which a system can based on data provided as input; e.g., execution
perform a function [6]. Schedulability analysis is a demands or deadlines. For this purpose, MARTE
set of mathematical analysis that allows a designer has a GQAM (Generic Quantitative Analysis
to determine the predictability of a system, i.e. Modelling) package that describes stereotypes
whether it is able to meet its timing requirements (that map model elements into the semantics of an
[15]. analysis domain) and tagged values used in
All variability issues (system behaviour, analysis models. The main concern to perform
platform, quality, etc.) that must be taken into model analysis with MARTE profile is the
account make variability management task AnalysisContext. It identifies the model elements
essential in order to ensure quality of the products of interest (diagrams that gather information about
among other requirements. Variability system behaviour and workload, and execution
management deals with specific product platform and allocation) for the analysis and
differences by handling: 1) variation points and specifies global parameters of the analysis (global
variants that are essential for modelling a SPL and properties that describe different cases being
2) deriving different products from the line. considered for analysis). Therefore, stereotypes
This paper presents a study about required related with AnalysisContext term are classified in
variability in MARTE model analysis of two concepts:
embedded SPL. The study takes into consideration • WorkloadBehaviour: It is a container of a set
functional, quality attributes, platform, allocation of end-to-end system operations used for
and analysis variability and also justifies analysis and defined by a set of workload
variability management necessity. The study has events triggered over time. These stereotypes
three phases: 1) identifying required variability are used in application models where
types in model analysis, 2) associate those constraints, scenarios and software design are
variability types with elements of the MARTE specified, including functional and non-
profile identifying mechanisms the profile has to functional requirements.
model variability and 3) analyzing which other • ResourcesPlatform: It is a container for the
existing mechanisms can be combined to fill the resources used by the system behaviour
gaps in MARTE. represented by the design model. These
The paper is organized as follows: Section 2 stereotypes are used in platform and allocation
presents how is performed analysis in MARTE, models where resources and their properties
required variability in MARTE and mechanisms are described and platform design is specified.
for modelling them is described in Section 3, To conclude, AnalysisContext allows analyzing
Section 4 analyzes other works related to the same what it could be a real-time situation of the system
topic and Section 5 presents the conclusions and by describing a specific scenario and the
future work. execution platform through analysis models with
non-functional annotations (see Fig. 1). Thus, next
table presents the stereotypes that are included in
each group and are extended in specific
schedulability (SAM) and performance (PAM)
profiles (see Table 1):

ISSN 1988–3455 SISTEDES 2010 118


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Table 1. Stereotypes for analysis annotation


MARTE Analysis Concept Annotation model Description
element
WorkloadBehaviour GaWorkloadEvent It describes particular request stimulus that can occur repeatedly
(application model) originated outside the system, inside the system or because of the
passage of time.
GaStep It describes an operation that demands a resource usage
(ExecutionHost) and uses an operation system process
(SchedulableResource).
GaScenario It is the description of system behaviour that executes in response to
event occurrences.
ResourcesPlatform ProcessingResource It is an active, protected resource that is allocated to the execution of
(platform and allocation model) schedulable resources.
DeviceResource It represents an external device that may require specific services in
the platform for its usage and/or management.
SchedulableResource It is an element that takes the processing capacity from another active
protected resource (usually a ProcessingResource) and competed for it
with others.

Fig. 1 AnalysisContext concept definition [7]

• Two products with the same functionality may


require different quality attributes, as well as
3. Required variability in MARTE the priority or degree of them. Impacts may
also arise among different quality attributes
and/or other variability issues [8].
Variability is the key aspect of SPL that must be
• Variability can be addressed at execution
considered when analyzing models and as it was
environment. Often, some of the hardware
previously mentioned, embedded SPL may have
diverse variability issues: devices and other performance-affecting
• Some functionality may vary from one factors can vary from one product to another
product of the line to another. Not all products [6]. Different platform designs can also take
of the product line have the same part in the execution platform model.
functionalities.

ISSN 1988–3455 SISTEDES 2010 119


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

All these variability issues make primordial to Table 2. Required variability in MARTE
consider variability in model analysis as they analysis elements
represent software behaviour and platform.
Different products of the line require performing Analysis Element Variability
different analysis varying from one product to End2EndFlow and Some functionalities may require
another one. As a result, analysis process and GaWorkloadEvent particular End2EndFlows and/or
GaWorkloadEvent. These terms
AnalysisContext term must be extended to address may be mandatory, optional or
SPL analysis. Therefore, this variability is related alternative.
to the next analysis concepts in a lower GaWorkloadBehaviour and A particular configuration requires
GaScenario specific scenarios that other
abstraction level in a SPL development: configuration may not require.
• Each product model requires analyzing That is to say, some system
specific behaviours (GaWorkloadBehaviour). behaviours can be analyzed in
Behaviour models must be developed or specific configurations.
GaStep Different operations may be
adapted for the specific model as not all executed by a model element in a
products of the line may have same features. scenario. GaStep may be
These models are composed by different mandatory, optional or alternative
depending on the model elements.
model elements due to SPL features diversity
PlatformResource Different execution platforms are
(e.g., different objects, lifelines or activities). necessary. Thus, different platform
A scenario may be composed by different designs and alternative resources
GaSteps, stimulated by different (DeviceResource or
ProcessingResource) that take part
GaWorkloadEvent and composed by different and can be replaced easily in the
scenarios (GaScenario). system are required.
• As software may run under different Alternative deployment designs
platforms, execution platform variability must due to alternative platform designs
are needed (software allocation).
be taken into account. Same scenario may run Parameters and tagged To represent alternative values
in different platforms (GaResourcesPlatform) values (hostDemand, SchedPrioRange,
and software to platform mapping (software etc.) in model elements.
allocation) may be different, e.g. in order to
analyzed which allocation is the one that best
suits required features.
3.1. Variability in AnalysisContext
• Non-functional properties may vary from one
specific model to another, as not all products
require same quality and not same model The aim of specifying AnalysisContexts is to
elements take part in the specific model. evaluate critical quality attributes in a specific
Information related to the quality attributes are scenario that an embedded system may execute. In
attached by specific stereotypes (PaStep, an embedded SPL different AnalysisContexts must
SaStep, GaExecutionHost, etc.) and tagged be defined due to the high variability that can be
values (hostDemand, ExecTime, etc.) that can found. This way, each specific product model can
be found in GQAM, PAM and SAM packages be validated in order to evaluate whether they
of the MARTE profile. satisfy required quality attributes.
• Not all products of the line require same AnalysisContext itself also requires variability
analysis, thus diverse AnalysisContext must be elements as a result of different behaviours of the
specified. specific product models of the line. This
variability issues are specified below:
MARTE profile is a UML profile • GaWorkloadBehaviour: It is defined by
specification for single real-time embedded End2EndFlows composed by GaScenarios
systems. But when concepts from SPL paradigm and GaWorkloadEvents. In schedulability
like variability are faced for example, other AnalysisContext (SaAnalysisContext),
mechanisms are necessary for a proper analysis End2EndFlows may be optional due to
and management. Therefore, analysis models have functional variability.
been studied to identify and specify required • GaWorkloadEvent: A GaScenario can be
system variability in analysis (see Table 2). activated by different GaWorkloadEvents and

ISSN 1988–3455 SISTEDES 2010 120


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

these GaWorkloadEvents can have a different beginning. They can also be used in value
arrival pattern as defined in MARTE: expressions in dependent tagged values.
periodic, aperiodic, sporadic, burst, irregular, • AnalysisContext: This concept is the
closed and open. variability mechanism specified by MARTE
• GaScenario: A scenario is composed by a set for model analysis. It identifies the model
of GaSteps. Due to functional variability of elements (diagrams) of interest and specifies
the line, a GaStep or a set of them may be global parameters of the analysis. A specific
optional or alternative. product model may have several
• GaResourcesPlatform: An execution platform AnalysisContexts.
may be built by different resources and • UML mechanisms: A combinedFragment
different designs, concluding in execution defines an expression of iteration fragments
platform variability. Besides, software to [16]. There are different CombinedFragments,
platform mapping may be different. Thus, which are distinguished by its iteration
variant resources (DeviceResources and operator, such us: OPT, ALT, LOOP, etc. For
ProcessingResources), optional example, ALT operator designates that the
SchedulableResources and alternative CombinedFragment represents a choice of
software allocation are required. behaviour and at most, one of the operands
• As information related to quality attributes is can be chosen. On the other hand, OPT
attached in models representing behaviour and operator designates that the
execution platform, and quality attributes may CombinedFragment represents a choice of
vary from one model of the line to another, behaviour in sequence diagrams where the
stereotypes and tagged values may vary. Each only operand happens or nothing happens.
quality attribute has its own stereotypes and Abstract stereotype, inheritance, interface
tagged values. Tagged values may take implementation, etc. are also UML
alternative values and they may be dependent mechanisms that can help when analyzing
of other tagged values. SPL models, e.g., abstract stereotype can be
• Var: Each AnalysisContext is specified by a applied in activity diagrams.
set of variables, a scenario and a platform. The • Variability profiles: Functional variability has
set of variables depend on the scenario and the been a deep research topic. There are several
platform and they may be input, output or UML profiles for specifying variability where
input/output variables. some of them focus on functional aspects and
extend use cases to specify variability; others,
With the aim to be able to model required extend static models to specify variability and
variability in AnalysisContext existing few works model variability in behavioural
mechanisms have been analyzed: models.
• MARTE uses predefined model libraries to Gomaa’s [10] product line profile called
apply to real-time and embedded systems. PLUS is one of the most complete profile. It
These model libraries are containers of takes into account feature modelling, use
predefined data types, time, measurement cases, static and dynamic interaction
units, etc. that are used for example, to specify modelling, etc. Moreover “it is a well
data size unit kind of messages. As a container developed method applied to real-time
concept, it can store different model elements. systems that it is concerned with the
• Variables: Variables are a common behaviour view needed for performance
mechanism that it may be applied to let an analysis” [23]. Ziadi’s UML profile for
element in a generic way instead of instantiate Product Lines [25] is also a representative
into a specific element or until a decision is profile. It extends class and sequence
taken. MARTE defines variables by “$” diagrams to include variability and provides
symbol. Any value of the same type can be support for product derivation via PL
assigned to that variable. Usually it is assigned constraints that guide the derivation process. It
to tagged values until instantiation time, is the only one that concerns UML2.0 models
instead of bounding a specific value from the and not UML1.x models. UML-F [17], UML

ISSN 1988–3455 SISTEDES 2010 121


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

profile for frameworks can be also useful product line. In [18] it is mentioned that feature
when product-lines have been developed modelling supports several areas of product line
following a framework based approach. CVL engineering, especially scoping and the
(Common Variability Language) is a configuration and derivation of products from the
variability specification language (still in reuse infrastructure, but also activities like project
development), that follows a separate planning and tracking, testing and customer
language approach, and allows expressing negotiations.
variability in a base model and relationships
between possible choices and the base model
[12]. 3.2. Example
Variability profiles apply stereotypes to
include variability in UML models. More than Elements and/or concepts that have been
one stereotype can be applied to UML aforementioned are intended to describe by the
elements. A UML class can be stereotyped as following example.
<<optional>> and <<DeviceResource>>. A feature model of an embedded software
Thus, more than one profile can be used in a product line and in particular of an elevator
model. This mechanism may help to identify system is represented in Fig. 2. The feature model
variable model elements in analysis. has been simplified for a better understanding
such as required and excluded relations among
These mechanisms may help modelling features.
variability in MARTE AnalysisContext. In Table 3 The functional features described possible
how the aforementioned variability mechanisms functionalities of the system to analyze and are
can be applied on MARTE analysis elements is related to those MARTE profile behaviour aspects
detailed. (WorkloadBehaviour) and more specifically to the
end-to-end operations of the system
Table 3. Mapping of analysis elements and (EndToEndFlow) and scenarios (GaScenario and
variability mechanisms that can be applied GaStep). In this case, self-healing optional feature
Analysis Element Variability
Mechanism
will be related with an optional EndToEndFlow
Workload GaWorkloadEvent Variability profile and a specific scenario.
Behaviour GaScenario CombinedFragments It also is related to the behaviour the variable
GaStep Variables design, e.g., if a system is centralized or
AnalysisContext
UML mechanisms
distributed. The elevator system will behave in
Platform GaPlatformResource Variability profile different ways in both cases, executing different
Resources Allocation model library GaSteps.
AnalysisContext Different types of processors with their
Variables
UML mechanisms properties, sensors, communication systems, etc.
Var ContextParameters Variability profile define the variable part of the platform used in
Variables PlatformResources.
AnalysisContext The analyses to perform may vary from one
product to another product of the line due to
To perform a proper analysis of variable require different quality attributes, or by the
embedded systems, it is not enough with the analysis type, method, etc. These concepts are
mechanisms that UML and MARTE provide. It is related to the AnalysisContext and stereotypes and
necessary to be able to model and manage that tagged values of the MARTE profile related to
variability. UML and MARTE afford variability quality attributes, e.g., to perform performance
modelling but not managing. Other mechanisms analysis, the models have to be annotated by the
are necessary for that purpose, e.g. feature models. stereotypes of the PAM package. The stereotypes
Feature modelling [13] was introduced as part of and tagged values used when annotating quality
the domain analysis and domain modelling phase attributes variability are also related to
to systematically describe the common and PlatformResources properties and also to
variable features shared among the products of a WorkloadBehaviour. For example,

ISSN 1988–3455 SISTEDES 2010 122


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

GaWorkloadEvent of an EndToEndFlow can be 4. Related Work


generated in different ways: by a timed event, by
an arrival pattern… By different properties, To be able to validate variability of quality
functionalities, … quality attribute variability may attributes at early development phases facilitates
be obtained as a result. obtaining products with the same functionality but
different quality levels through model analysis.
Quality variability must be an issue to take into
account during embedded software development
and that affect the decision-making.
Variability modelling is important for
managing variability in software product families
[21]. Different approaches have been proposed
related to variability modelling and management,
but those techniques rely on different technical
background and most variability modelling
techniques lack a description of a process [4].
Existing literature does recognize the
importance of managing variability in a proper
way. Bosch [3] emphasizes the importance of the
variability management. Over the last years,
several variability modelling techniques have been
developed that are aimed to support variability
management. Despite these mechanisms are
suitable for managing variability and feature
models are widely used in embedded systems
domains [24] [20] [2], no standard way is defined
yet and few works cover other phases of the SPL
development like software validation.
CVL allows expressing variability in a base
model (in a separate way). It also allows defining
the relationships between possible choices and the
base model [12].
Modelling languages that have been specified
for embedded systems like SysML [22] and
EAST-ADL2 [2] can also be complementary on
SPL analysis. SysML complements UML with
two new diagrams (requirements and parametric)
and modifies some existing (activity, block
definition and internal block). EAST-ADL2 is a
domain specific modelling language where
functionalities are decomposed through different
abstraction levels and development phases. It
takes feature modelling as a reference and uses
variation points concept.
UML provides other mechanisms such as:
abstract objects, interface implementation,
Fig. 2 Feature model
inheritance and CombinedFragments to be able to
represent variability in software.
In [14] a model based methodology oriented
to distributed embedded and real-time applications
development is proposed. It focuses on the

ISSN 1988–3455 SISTEDES 2010 123


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

requirements traceability management while analysis and identify critical analysis scenarios for
variability and verification phase is left for future each specific product model of the product line.
work. Traceability links from features to analysis models
Tawhid and Petriu model a software product will be required for that purpose too. Thus, the
line with functional variability and annotated with combination of the studied mechanisms for
MARTE profile to perform performance analysis embedded SPL analysis will be specified and will
[23]. Information related to performance is enable the creation of new mechanisms for
attached in a general way using variables. And in variability management. A case study will be also
order to validate quality aspects, concrete values performed to identify possible conflicts or
are assigned to those variables through ATL problems and validate the proposal.
(Atlas Transformation Language) transformations Another research way is to study whether
that are also used to obtain a concrete product existing tools could help in managing variability
model, but variability management is slightly like pure::variants [9], a tool for managing
defined. variability that focuses on development. As most
Espinoza et al. [5] propose to use a similar of the mechanisms focus on variability
diagram to SysML parametric diagrams in management of initial phases such as feature
MARTE analysis for complex non-functional modelling, they lack of a way to represent lower
evaluation scenarios taking into account variations level concepts. It becomes essential the study of
in the mapping from structure to architectural how existing methods and mechanisms can be
resources and parameterization i.e., propose to combined and/or extended for this purpose (next
composite existing design models to experiment step) trying to give traceability and a proper
with different implementation or design decisions variability management based on UML techniques
for the purpose of quantitative analysis. and standard profiles. We intend to extend the
Groher et. al. [11] present a tool-based work presented in [5] by Espinoza et al. to tackle
approach for managing crosscutting feature SPL model analysis. They propose analysis
variability in software product lines using aspect- composition view for analysis which can help on
oriented principles. SPL analysis but there is a lack of how this
The approaches mentioned before can be approach may be linked to variability
complementary to model analysis. None of them management or feature-oriented methods as it was
deals with all necessary issues for embedded a proposal for the analysis of a single-system.
software product line model analysis but the
contributions made by them can be combined to
reach variability goal in model analysis. Acknowledgements. This work was partially
supported by The Basque Government under
grants PI2009-1 (OPTIMA) and the Spanish
5. Conclusions and Future Trends Ministry of Science and Education under grants
TIN2007-61779 (OPTIMA) and TSI-020400-
In the present paper required variability issues in 2008-99 (EVOLVE). It has been developed by the
MARTE model analysis for SPL (as MARTE embedded system group supported by the
profile was defined for single systems analysis) Department of Education, Universities and
and diverse variability modelling mechanisms Research of the Basque Government.
have been analyzed. Modelling and management
mechanisms can be complementary and a suitable
combination of them could be beneficial to tackle References
SPL model analysis.
The future work to be carried out includes the
[1] UML Profile for Modeling and Analysis of
definition of a management mechanism for all
Real-Time Embedded Systems. formal/2009-
variability types identified for model analysis. 11-02 (2009)
Functional, quality attributes, platform, allocation [2] Albinet, A., Begoc, S., Boulanger, J. -. et al.:
and analysis variability must be considered and The MeMVaTEx Methodology: From
properly managed in order to perform model Requirements to Models in Automotive

ISSN 1988–3455 SISTEDES 2010 124


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Application Design, 4th European Congress [13] Kang, K., Cohen, S., Hess, J. et al.: Feature-
Embedded Real Time Software - ERTS'08, Oriented Domain Analysis (FODA)
Toulouse, France (2008) Feasibility Study, Technical Report, SEI
[3] Bosch, J.: Design and use of software (1990)
architectures: Adopting and evolving a [14] Le Dang, H., Dubois, H., Gérard, S.:
product-line approach. ACM Press/Addison- Towards a Traceability Model in a MARTE-
Wesley Publishing Co, New York, USA Based Methodology for Real-Time Embedded
(2000) Systems. Innovations in Systems and Software
[4] Deelstra, S., & Sinnema, M.: Managing the Engineering, Springer-Verlag London
Complexity of Variability in Software Product Limited, 4 (2008) 189-193
Families. (2008) [15] Martins, P.: Integrating Real-Time UML
[5] Espinoza, H., Servat, D., Gérard, S.: Models with Schedulability Analysis,
Leveraging Analysis-Aided Design Decision Technical Report, Tri-Pacific Software Inc...
Knowledge in UML-Based Development of (2003)
Embedded Systems, SHARK '08: Proc. of the [16] Superstructure Version 2.2. Object
3rd int. workshop on Sharing and reusing Management Group, formal/2009-02-02
architectural knowledge, ACM (2008) 55-62 (2009)
[6] Espinoza, H.: An Integrated Model-Driven [17] Pree, W., Fontoura, M., Rumpe, B.: Product
Framework for Specifying and Analyzing Line Annotations with UML-F, SPLC 2: Proc.
Non-Functional Properties of Real-Time of the 2nd Int. Conference on Software
Systems, Thesis. DRT/LIST/DTSI/SOL/07- Product Lines (2002) 188-197
265/HE (2007) [18] Schwanninger, C., Groher, I., Elsner, C. et
[7] Espinoza, H., Terrier, F., Gérard, S.: Model al.: Variability Modelling Throughout the
Driven Engineering and Real-Time Analysis Product Line Lifecycle. MODELS 2009, 5795
of Embedded Systems: The UML MARTE (2009) 685-689
Standard and its Challenges, ARTIST [19] SEI: A Framework for Software Product Line
Workshop at CAV 2007, Berlin, Germany Practice, Version 5.0. 2008
(2007) [20] Shi, J.: Model and Tool Integration in High
[8] Etxeberria, L., Sagardui, G., Belategi, L.: Level Design of Embedded Systems, Thesis.
Quality Aware Software Product Line (2007)
Engineering. Journal of the Brazilian [21] Sinnema, M., & Deelstra, S.: Classifying
Computer Society (JBCS), 14 (2008) Variability Modeling Techniques.
[9] GmbH, p.: Variant Management with Inf.Softw.Technol., 49 (2007) 717-739
Pure::Variants, Technical Paper, Available [22] OMG System Modeling Language (OMG
from http://web.pure-systems.com (2007) SysML) V1.0. formal/2007-09-01 (2007)
[10] Gomaa, H.: Designing software product lines [23] Tawhid, R., & Petriu, D.: Integrating
with UML: From use cases to pattern-based Performance Analysis in the Model Driven
software architectures. Addison Wesley Development of Software Product Lines,
Longman Publishing Co., Inc, Redwood City, MODELS 08, 5301 LNCS (2008) 490-504
CA, USA (2004) [24] Zha, X. F., Fenves, S. J., Sriram, R. D.: A
[11] Groher, I., Krueger, C. W., Schwanninger, Feature-Based Approach to Embedded System
C.: A Tool-Based Approach to Managing Hardware and Software Co-Design, ASME
Crosscutting Feature Implementations. DETC. (2005)
AOSD'08, (2008) [25] Ziadi, T., Hélouët, L., Jézéquel, J.: Towards a
[12] Haugen, Ø., Oldevik, B., Olsen, J.: Adding UML Profile for Software Product Lines, 5th
Standardized Variability to Domain Specific Int. Workshop on Product Familly
Languages, 12th International Software Engineering (PFE-5), LNCS 3014 (2003) 129-
Product Line Conference, SPLC'08. (2008) 139
139-148

ISSN 1988–3455 SISTEDES 2010 125


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Un motor de generación de código dirigido por modelos de base


de datos, como punto de partida para la implantación de una
plataforma MDA en la administración balear.

Víctor García Pau José A. Carsí


Facultatiu Superior Informàtic Titular de Universidad
Conselleria de Treball i Formació Dpto. de Sistemas Informáticos y Computación
Comunitat Autònoma de les Illes Balears Universidad Politécnica de Valencia
07009 Palma de Mallorca 46022 Valencia
vgarcia@sgttif.caib.es pcarsi@dsic.upv.es

Resumen
1. Introducción
Para poder beneficiarse de una orientación fabril
de la producción de software en una La implantación de Métrica3 y de cualquier otra
administración pública: aumento de la metodología de desarrollo de software en una
productividad, estandarización de la calidad del organización, pasa inevitablemente por la
producto y reducción drástica del plazo de los evaluación de su viabilidad y aplicabilidad. En el
entregables, incluido el prototipo ejecutable; caso de las administraciones públicas la
parece imponerse el uso de las tecnologías metodología de uso obligado es Métrica3.
dirigidas por modelos. Ahora bien, se debería Diseñada con espíritu unificador, tanto en su
considerar qué tipo de modelo es el más adecuado vertiente orientada a objetos como en la
para la especificación del motor MDD, si no se estructurada, define una nutrida secuencia de
dispone de la suficiente cultura UML ni de la actividades, técnicas y prácticas a realizar,
confianza en el dominio de las técnicas de MDA. cubriendo en su totalidad el ciclo de vida del
Una alternativa en este caso es utilizar un PSM sistema de información. Por contra penaliza su
origen poblado a partir del propio esquema aplicabilidad incrementando el coste de
relacional obtenido mediante ingeniería inversa. utilización. Son bien conocidos los beneficios y
Este modelo de diseño relacional ha sido aplicado las ventajas derivados de la implantación de una
de forma homogénea a todos los sistemas de metodología de desarrollo, pero para que pueda
información de la organización. A partir del PSM ser una realidad se requiere la provisión de
destino el motor genera un prototipo ejecutable instrumentos que permitan compensar los grandes
compuesto por un árbol de mantenimientos costes requeridos, con los limitados recursos
siguiendo el patrón previamente definido de disponibles. Requiere una herramienta que esté
maestro-multi-detalle, integrado con la gestión enfocada a la automatización, reutilización y
documental de la Conselleria de Treball i transferencia automática de los requisitos
Formació y la plataforma telemática del Govern capturados desde una fase a las siguientes. Una
Balear. A partir de los resultados obtenidos con el transformación de los modelos de elicitación de
motor, se estudia su integración con la plataforma requisitos a los entregables requeridos en plazo,
ofrecida por Moskitt.org, con el objeto de abrir incluido el sistema final ejecutable, sus pruebas
brecha hacia una arquitectura dirigida por y/o prototipos. Para ello se impone un enfoque
modelos y la implantación efectiva de Métrica3 en dirigido por modelos, que mediante la generación
esta administración pública. automática de los entregables conformaría una
implantación ágil de la metodología.
Palabras Clave Siguiendo los mismos criterios de economía
de medios, la solución que se adopte necesita ser
generación de código dirigida por modelos de viable para la coyuntura de la organización que
base de datos, ingeniería inversa, administración pretenda acogerse a este enfoque. Se parte de una
electrónica, Moskitt, Métrica3

ISSN 1988–3455 SISTEDES 2010 126


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

situación en la que no existe una cultura UML unívoca de la especificación entidad-relación del
suficiente, ni dominio de las técnicas de MDA[19] sistema conforme al estándar corporativo. De esta
con las que dirigir el proceso software que se forma se salva el desnivel tecnológico del equipo
pretende implantar. Por otra parte, no se cuenta y se cubre la totalidad de los sistemas de
con un equipo de técnicos estable y información de forma casi automática, únicamente
suficientemente capacitados en todas las definiendo la lista de patrones de nombres de
tecnologías a cubrir para poder desarrollar el tablas que conformarán la aplicación a generar, así
software requerido por los estrictos estándares de como cierta información de configuración de la
desarrollo definidos por la Direcció General de generación. La solución arquitectónica ha sido
Tecnologia i Comunicacions (DGTiC) y la propia iterada según evolucionaba y con ella el propio
Conselleria de Treball i Formació (CTiF) de la motor de generación. En paralelo se han evaluado
Comunitat Autònoma de les Illes Balears (CAIB). diferentes plataformas y herramientas para
Inicialmente se evaluaron las herramientas de facilitar la implantación de la metodología del
generación de código de JBoss como Hibernate proceso software. Entre otras cabe destacar las
Tools y el framework de Seam, tanto su herramientas de Visual Paradigme, Enterprise
configuración como personalización mediante la Architect y Moskitt. El hecho de que Moskitt sea
adaptación de sus plantillas y procesos de una plataforma MDE que soporta a Métrica3 y
ingeniería inversa. Pero debido a la antigüedad de además de código abierto sobre Eclipse (el IDE de
las versiones requeridas por la plataforma se desarrollo utilizado por la CTiF) determinó su
imposibilitaba o dificultaba en exceso su elección. Por lo que se procedió a estudiar los
utilización. Además, el hecho de no tener pleno posibles caminos de integración con dicha
conocimiento de los metamodelos empleados por herramienta.
estas herramientas penalizaba el coste de El presente artículo pretende describir el
desarrollo de una solución suficientemente proceso de definición, construcción e integración
adaptada a la plataforma. Por tanto y con el objeto de un motor de generación de código estructural,
de convencer con tangibles se comenzó con el Es.Caib.SwFactory, para una estricta arquitectura
desarrollo de un motor de generación de código JEE/ ExtJs en un contexto desfavorable, orientado
propio que permitiera dar resultados modestos a formar parte esencial en una plataforma MDA
pero estables y conformes a los requerimientos para la administración balear. En la siguiente
definidos por los estándares a cumplir. sección se presentan los detalles del motor de
Para ello se definió previamente una solución generación de código. En el tercer apartado se
arquitectónica conforme a la plataforma que estudian posibles vías de integración con Moskitt
permitiera cubrir mediante una solución genérica, y finalmente en la cuarta sección se expondrán las
las necesidades de gestión de las aplicaciones conclusiones y trabajos futuros.
corporativas. Básicamente se pretendía migrar a
la plataforma JEE oficial un conjunto de
aplicaciones desarrolladas en Ms Access, entre
otras razones debido a la cancelación de las
licencias de uso por parte de esta administración.
Para ello, se identificó la solución maestro-detalle
de Ms Access como una interfaz deseable a la que
se le debía añadir una integración con la gestión
documental de la CTiF y con la plataforma
telemática de la CAIB.
Por otra parte debido a la carencia de técnicas
y recursos, y a la implantación extensiva de un
estricto estándar de base de datos en todos los
sistemas de información de la organización, se
eligió utilizar el PSM relacional de la base de
datos obtenido mediante ingeniería inversa para
dirigir el proceso de generación de código. Ya que
el esquema relacional representa una proyección
Figura 1. Etapas del proceso de generación.

ISSN 1988–3455 SISTEDES 2010 127


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

2. Motor de generación de código una vez poblado el metamodelo se calcula el


dirigido por modelos de datos: mapeo objeto-relacional y la interfaz de usuario
Es.Caib.SwFactory. web. Finalmente, se lanzan los procesos de
generación basados en el motor de plantillas de
FreeMarker (ver ejemplo en la figura 2) para
El motor de generación de código es una sencilla
generar los artefactos requeridos en base a la
herramienta escrita en Java que implementa el
plataforma definida (ver la figura 5 para más
proceso de generación en base a un metamodelo
detalles).
que es instanciado por un motor de ingeniería
La primera herramienta utilizada para la
inversa a partir de los metadatos de la base de
generación de código fue Velocity pero
datos. El proceso de generación de código descrito
rápidamente se apreciaron más prestaciones a
en la figura 1, costa de cuatro etapas: obtención y
FreeMarker. Además, Hibernate tools acababa de
análisis de argumentos, extracción de los
decantarse por él. La principal ventaja que ofrece
metadatos del esquema relacional mediante
FreeMarker es la sencillez de uso y aprendizaje,
ingeniería inversa, cálculo de los elementos del
ya que basta con instanciar los objetos de las
modelo instanciado y generación de los ficheros
clases del metamodelo para poder disponer de su
del proyecto. En la primera etapa, la herramienta
información en la plantilla. Para ello han de ser
obtiene del usuario una sencilla especificación de
cargadas las instancias de las variables en el
la configuración y nombre de la aplicación así
contexto del motor de plantillas mediante un
como un fichero de propiedades donde se
mapa, en el que cada instancia requerida por la
especifican los detalles de conexión con la base de
plantilla ha de asociarse a una etiqueta en el mapa
datos y de algunos parámetros utilizados en la
de contexto. Y es esta misma etiqueta la que debe
generación, junto a la lista de patrones de nombres
declararse en el contexto de la plantilla junto con
de tablas empleadas en el proyecto de la
el clasificador de la instancia (su tipo básico o
aplicación a generar que define el subconjunto de
clase) para poder ser reconocido por el editor y el
las tablas a analizar. En la segunda etapa, se
asistente de código integrados en Eclipse, como se
procesa la lista de tablas seleccionada obteniendo
muestra en el ejemplo de la figura 2.
sus metadatos, primero añadiendo las tablas con
El metamodelo utilizado por el motor se
sus columnas para luego iterar sobre las claves
compone de tres paquetes principales: Relational
ajenas de cada una de ellas. En la tercera etapa,
Database, Object Relational Mapping y Web,

Figura 2. Ejemplo de plantilla de generación de scripts DDL de Oracle.

ISSN 1988–3455 SISTEDES 2010 128


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Si se observa con detalle el metamodelo de la


figura 4 se puede reconocer una estructura en la
que se define una correspondencia objeto-
relacional, entre tablas y entidades, entre
columnas y atributos y entre claves ajenas y
asociaciones. Curiosamente, se puede observar
una gran similitud entre el paquete Rdb y el
metamodelo definido por las DbTools de Eclipse,
por lo que se puede adivinar la facilidad de
Figura 3. Paquetes del metamodelo del motor integración con herramientas estándar de Eclipse.
Es.Caib.SwFactory. Cabe señalar que el metamodelo cuenta con
atributos y asociaciones derivadas que podrían
como se puede observar en la figura 3. Cada uno evitarse pero cuya definición simplifican el código
de estos paquetes tiene un cometido, el paquete necesario en las plantillas, decrementando el
principal contiene a la metaclase Model encargada número de componentes de FreeMarker
de recoger y coordinar las operaciones sobre los necesarios, como en el de Entity donde se
diferentes componentes del mismo, incluidos los reagrupan los atributos (atts) de las entidades en
datos de configuración. En el paquete Rdb dos subgrupos derivados, los atributos que forman
(abreviatura de Relational Database) se agrupan parte de la primary key que identifican a la
las metaclases que soportan la estructura del entidad (attsPk) y el resto de atributos que no
esquema relacional utilizado por la etapa de (attsNoPk). Lo mismo ocurre con las columnas de
Reverse Engineering, como son las tablas con sus las tablas (cols, colsPk y colsNoPk). En general es
columnas y las claves ajenas enriquecidas con más sencillo realizar cálculos o procesos
metainformación útil para la posterior generación complejos como funciones de las metaclase del
de los artefactos del proyecto. En el paquete Orm metamodelo, que intentar proporcionar esa misma
(abreviatura de Object Relational Mapping) se funcionalidad mediante recursos del lenguaje de
definen las metaclases requeridas para capturar la marcado de las plantillas. Esta cuestión está mejor
estructura y relaciones en las entidades con sus resulta por openArchitectureWare utilizando
atributos y sus asociaciones. Por último en la capa XPand [8], ya que permite definir extensiones a
web se guarda metainformación relacionada con las metaclases sin necesidad de adornar el
la correspondencia de los atributos de las metamodelo con información derivada. Está
entidades con los parámetros web. característica se intentará aprovechar en trabajos
futuros.

Figura 4. Metamodelo detallado del motor Es.Caib.SwFactory.

ISSN 1988–3455 SISTEDES 2010 129


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 5. Metamodelos y transformaciones del motor de generación de código Es.Caib.SwFactory


aplicados a la arquitectura definida por la CTiF - CAIB.

Igual que la arquitectura, el motor ha partes del modelo necesitan para generar con las
evolucionado y el siguiente paso deberá abordar plantillas adecuadas cada una de las colecciones
su adaptación a MDA. Para ello se debería de ficheros del proyecto, se podría definir en una
redefinir el metamodelo en un PIM y tres PSM sola plantilla y un fichero de extensiones de
(como muestra la figura 5) para poder descargar XPand. De esta forma parece obvia la mejora de
de complejidad a la lógica de las plantillas de la mantenibilidad del motor.
FreeMarker que actualmente cuestan mantener, y Para poder ilustrar la complejidad de la que se
migrarlas a XPand para implementar las está hablando haremos un breve recorrido por los
transformaciones M2T. Y en segundo lugar, componentes arquitectónicos requeridos por la
redefinir los cálculos implementados por métodos plataforma. En primer lugar, existen dos partes
Java en el metamodelo como transformaciones claramente diferenciadas en la figura 5 que
M2M en ATL e integrarlas en el gestor de componen los dos proyectos JEE de la aplicación.
sincronización utilizado por Moskitt. Gracias a las De una parte, JEE/EJB Business Project, que
características y potencia expresiva de XPand se define el modelo de negocio en POJOs de la
podrían definir en unas pocas plantillas lo que aplicación, donde por cada entidad del modelo se
ahora requieren 8 procesos escritos en Java y otras implementa una clase DAO en tecnología JDBC y
22 plantillas de FreeMarker, para generar los un EJB Stateless Session Façade para ofrecer los
artefactos de la misma arquitectura. Ésto es servicios de negocio al resto de componentes, bien
debido a que a partir una sola plantilla XPand se clientes externos bien los servlets y JSPs del
pueden generar diferentes tipos de ficheros, proyecto web. De otra parte, el JEE/ExtJs Web
mientras que con FreeMarker se necesita una Project, además de definir los controller con
plantilla por cada fichero generado. Lo que ahora servlets y el maquetado con JSPs, se implementan
hacen los procesos de generación eligiendo qué las pantallas de la interfaz de usuario mediante

ISSN 1988–3455 SISTEDES 2010 130


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

módulos ExtJs (una librería en Javascript requieren de al menos un JSON Reader para
orientada a objetos y patrones con soporte AJAX deserializar los datos, un Store para interpretar el
y multimedia bastante popular y llamativa). Son contenido de los mismos y una lista de ítems para
estos módulos ExtJs los que invocan a los servlets definir el aspecto, propiedades y validaciones de
mediante peticiones JSON, razón por la cual los campos.

Síntesis Ingeniería
Generación Inversa
n

Serialización
Import / Export

JEE

Figura 6. Jerarquía de clases IModelPersistor que facilitan la definición y extensión del motor.

ISSN 1988–3455 SISTEDES 2010 131


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

El motor ha sido refactorizado para poder dar XMI mediante técnicas de EMF dinámico con el
soporte a operaciones distintas de la generación de objeto de facilitar la integración MDA.
aplicaciones en base a partes de esquemas
relacionales. El diseño se ha basado en la interfaz
IModelPersistor y su jerarquía de clases (figura 3. Estudio de integración con Moskitt,
6) que ofrece las operaciones de carga “load” y hacia una plataforma MDA para
descarga “save” de una instancia del modelo
Métrica3.
(conforma al metamodelo del motor) en base a
unos argumentos de configuración.
Se parte de una situación en la que se cuenta con
un estándar anticuado de desarrollo de
Clase Abstracta
aplicaciones, más orientado a facilitar las tareas de
AbstractModelPersistor implementa los
administración de servidores de aplicaciones que a
métodos load y save, es útil para persistores
favorecer la productividad y calidad del proceso
simétricos de serialización y deserialización,
software, que imposibilitan o dificultan en
tales como en el caso de:
extremo, la aplicación de herramientas ágiles de
 JavaModelPersitor desarrollo. En consecuencia, no hay recursos para
 EcoreModelPersistor utilizar la metodología que se declara de obligado
AbstractModelRevEngLoader solo permite cumplimiento, Métrica 3, y por ende sirve de
la implementación del método load para las pretexto para realizar una captura de requisitos
operaciones de ingeniería inversa, tales exigua e insuficiente, con lo que ello supone. Por
como en el caso de: tanto, se pretende resolver esta situación mediante
 OracleRevEngModelLoader la implantación ágil de una metodología que
 AccessRevEngModelLoader estandarice el trabajo, guiada por una herramienta
 JavaReflectionRevEngModelLoader que le de soporte a los métodos y técnicas para la
AbstractModelGeneratorSaver solo permite elaboración de requisitos y la generación
la implementación del método save para las temprana de prototipos para validar y aceptar las
operaciones de generación de textos, como: diferentes iteraciones de las fases de requisitos,
 CaibOracleDDLScriptGenerationSaver análisis y diseño, alineado con las restricciones
 CaibModelVoPkLayerGenerationSaver arquitectónicas de la CAIB.
 CaibDaoJdbcLayerGenerationSaver El Modeling Software Kit (Moskitt)[6] es la
 CaibBusinessEjbLayerGenerationSaver primera herramienta open source orientada a dar
 CaibWebServletLayerGenerationSaver soporte desde un enfoque MDA a la metodología
 CaibWebExtJsLayerGenerationSaver Métrica3 sobre la plataforma de Eclipse, aunque
podría configurarse para cualquier otra
 CaibJEEApplicationGenerationSaver
metodología de desarrollo. Existen otras
Figura 7. Clases abstractas de asistencia para la herramientas o planteamientos pero ni son open
definición de procesos del motor. source ni están basadas en MDA. Para implantar
con éxito en una organización una metodología de
Para facilitar la implementación de las clases desarrollo de software, se requiere la adecuada
Persistor se han definido tres clases abstractas de instrumentación de las prácticas definidas
apoyo que cumplen las siguientes características mediante el uso de herramientas específicas con el
(ver tabla de la figura 7). Las operaciones objeto de disponer de:
definidas permitirán evolucionar al motor para • Un procedimiento de desarrollo adaptable a la
ofrecer nuevas prestaciones de generación y de organización y a cada uno de los roles.
ingeniería inversa sobre Ms Access o paquetes • La construcción de modelos según las técnicas
Java. También se ha implementado un mecanismo y prácticas definidas por la metodología.
de serialización mediante clases Java generadas • La automatización del proceso de elaboración
(JavaModelPersistor) que además de permitir de modelos y entregables.
trabajar sin conexión a base de datos servirá de • La integración con las herramientas
prototipo para el desarrollo de los serializadores corporativas de gestión de proyectos y control de
versiones.

ISSN 1988–3455 SISTEDES 2010 132


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

El objetivo primero y último de la aplicación Además se requiere el desarrollo de una


de la metodología a través de esta herramienta, es transformación UML2 a DB personalizada para el
conseguir un incremento de la calidad y una estándar CTiF-CAIB, dos transformaciones de
reducción drástica de los costes de la producción ingeniería inversa. DB to UML2 y Java to UML2.
y plazos de los entregables del proceso software, También sería deseable la integración de Medini
incluidos el sistema de información final, sus QVT en el gestor de sincronización de
prototipos y pruebas. transformaciones, utilizado por Moskitt. Algunas
Esta herramienta ofrece una plataforma MDE de estas mejoras están planificadas en la hoja de
open source con soporte a la elaboración del ruta de Moskitt, pero otras son únicamente de
análisis, diseño e implementación de sistemas interés para este proyecto.
software mediante la extensibilidad y
personalización de los diferentes editores
disponibles. Utiliza metamodelos estándar de 4. Conclusiones y trabajos futuros.
UML2, BPMN y DB Tools de Eclipse. También
dispone de un DSL propio para la definición de Respecto del motor de generación de código
interfaces de usuario, UIM. Cuenta con editores Es.Caib.SwFactory ha servido principalmente
gráficos integrados como un solo recurso, lo que para cambiar la percepción y desconfianzas que se
permite la navegación entre diagramas y por tanto albergaban hacia el enfoque DSDM de la
trazabilidad de requisitos. Un editor del propio producción de software. De hecho se han
proceso software instanciado para Métrica3. Así incrementado los recursos destinados y se ha
como editores textuales de metamodelos ECORE asegurado una línea de mantenimiento del motor,
con los que elaborar artefactos textuales como el pero todo ello después de ver, aunque modestos,
glosario, el documento de alcance o el estudio de ciertos resultados. Por tanto se puede concluir que
viabilidad. a pesar de que el motor se ha construido con
Para poder ofrecer una automatización escasísimos recursos, tecnologías y prestaciones
efectiva del proceso software se proporcionan las ya que tan sólo está guiado por un proceso de
siguientes transformaciones, M2M en ATL[2]: ingeniería inversa, ha conseguido demostrar la
BPMN a UC, BPMN a UML, UML a DB, UML capacidad y beneficios que aporta el desarrollo de
Análisis a Diseño. Y la M2T con Xpand[8], DB a software dirigido por modelos en el entorno de
DDL. La sincronización de las fases y sus una administración pública.
artefactos se implementa mediante el control de Del metamodelo cabe señalar que lejos de ser
las máquinas de estados de los artefactos, recursos la mejor y sin haber sido premeditado, la solución
y transformaciones relacionadas en cada una de
construida: las entidades, atributos y asociaciones
las actividades definidas en el proceso software representadas en el metamodelo se han ido
de Métrica3 calculando las dependencias y añadiendo paulatinamente al mismo, a medida que
propagando las inconsistencias dinámicamente. eran requeridas durante el proceso de diseño de la
Esta herramienta ofrece una infraestructura
herramienta. Primero por el proceso de ingeniería
para el desarrollo de herramientas de modelado y inversa y después por el motor de generación.
generación de código, pero no dispone de un Curiosamente el resultado final es muy semejante,
generador de código alineado con las restricciones abstrayéndose de los detalles, al metamodelo de
arquitectónicas de las aplicaciones de la CTiF-
las DB Tools en lo que respecta al metamodelo
CAIB. Sus generadores de código en PHP, relacional. Lo cual viene a demostrar que el
denominado gvHidra, y en JEE basado en Spring espacio de soluciones de un problema parece estar
Roo, denominado gvNix, no pueden ser caracterizado por un alto grado de similitud.
aprovechados por no cumplir con los requisitos
Actualmente el proceso de ingeniería inversa
definidos por la arquitectura. Por lo que se provee de base de datos ha sido implementado
migrar el motor de generación código únicamente para bases de datos Oracle mediante
Es.Caib.SwFactory a las tecnologías utilizadas por la extracción de las características estructurales
Moskitt: EMF[7], openArchitectureWare[8] y del esquema relacional acotado por el conjunto de
ATL[2], para así poder integrarlo en su gestor de tablas a procesar a partir de las vistas sobre su
sincronización de transformaciones. diccionario de datos. Se identificó la conveniencia
de crear una siguiente versión basada en las

ISSN 1988–3455 SISTEDES 2010 133


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

características getMetadata de JDBC con el objeto menor medida de editores UML con gestores de
de universalizar el motor a cualquier base de datos proyectos, como Enterprise Architect [95][98],
pero se dejo para más adelante por dos razones: en Rational Rose [100] o similares herramientas [97]
primer lugar, la extracción de los metadatos del que permiten dar soporte a una metodología, pero
diccionario se consiguió antes que de la api de no consiguen transformar los requisitos
JDBC; y en segundo lugar se pretende conectar el capturados en una fase en los de la siguiente,
metamodelo relacional con las Db Tools de manteniendo la trazabilidad desde el principio
Eclipse que son capaces de manipular cualquier hasta el producto final. A su vez, integrados con
base de datos vía JDBC. En una segunda fase se gestores documentales ad-hoc como Documentum
abordarán las bases de datos de Ms Access para [97] o Alfresco [98]. Pero que en cualquier caso y
obtener las modificaciones que se hayan podido tal como reconocen diversas fuentes [97][98], más
añadir y en una tercera fase los archivos de bien se ha utilizado una infraestructura para
paquetes Java para recuperar las jerarquías de generar la documentación exigida por Métrica3
clases de los sistemas en producción. que un verdadera utilización de la metodología.
En futuros trabajos dentro del proceso de De hecho, Roberto Canales, gerente de Autentia
migración a MDA se terminará la implementación [98], propone en su libro [24] la aplicación de
de EcoreModelPersistor y de las transformaciones metodologías ágiles y luego un mapeo del proceso
de síntesis, sincronización e ingeniería inversa del con la generación de los artefactos exigidos.
metamodelo del motor con los metamodelos de las De esta búsqueda se puede concluir que
Db Tools y UML2 que aún no se han Moskitt es la única plataforma abierta basada en
implementado o no han sido suficientemente MDA sobre Eclipse que soporte el proceso
probadas. Además queda pendiente migrar las software definido para la metodología Métrica3.
transformaciones implementadas por métodos Después de contactar con la dirección informática
Java a ATL y la generación basada en FreeMarker de la Conselleria de Transportes e Infraestructuras
a las plantillas de Xpand. También convendrá de la GVA ([91][92]) y parte del grupo de
construir un editor de parámetros de configuración investigación PROS [93][27] que ha asesorado a
con la ayuda de XText para convertir el motor en ProDevelop en la construcción de Moskitt, se han
un plug-in de Eclipse. podido esbozar los criterios para adaptar Moskitt a
A pesar de disponer Moskitt de buenos las particularidades de la CAIB. La dirección
argumentos a su favor, se ha intentado realizar una informática de la CIT-GVA ([91][92]) y la propia
búsqueda sistemática de trabajos similares en el empresa ProDevelop a través de sus listas de
mercado limitada a la información disponible en soporte y técnicos [94] han ofrecido
la web y a la iniciativa de respuesta de los asesoramiento a este proyecto. Con el objeto de
consultados. Existen otras herramientas o clarificar el conjunto de tecnologías a emplear, se
planteamientos pero ni son open source ni están ha contado con el asesoramiento de investigadores
basados en MDA. La búsqueda de trabajos de Pros [93] y de técnicos de ProDevelop [94].
similares se inició consultando al propio Consejo En el ámbito de la infraestructura para el
Superior de Administración Electrónica [96], seguimiento de proyectos y métricas software se
emisor de la metodología que aseguró no conocer ha contado con las observaciones y críticas a las
herramienta alguna que le diera soporte y herramientas integradas por Javier González
reconocieron no haber dedicado recursos a Álvarez, arquitecto JEE de Ahead Technology
Métrica 3 desde hace más de 3 años, si bien por [95]. Finalmente, se pretende aprovechar estos
parte del CSI la última herramienta ofrecida fue resultados para hacer converger los trabajos
para la versión 2. Después de insistir se indicó futuros con la hoja de ruta de Moskitt, con el
que se consultara el mercado y a las grandes objetivo final de implantar Métrica3 y su
consultoras de software como Accentur, Indra o plataforma MDA, en la producción de software de
Everis que a día de hoy no han dado su respuesta. la Conselleria de Treball i Formació del Govern
Buscando productos en el mercado se encontraron Autònom de les Illes Balears.
diferentes consultores y cursos donde se
proponían varios conjuntos de herramientas que
intentaban dar soporte a la metodología,
básicamente con una integración en mayor o

ISSN 1988–3455 SISTEDES 2010 134


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Referencias [21] Pau Giner Blasco, Automating the


development of Physical Mobile Workflows.
[1] Apache Velocity project, - velocity.apache.org A Model Driven Engineering approach
[2] ATLAS Group (INRIA & LINA) Univ. (hdl.handle.net/10251/8272), 2010.
Nantes, ATL (ATLAS Transformation [22] Red Hat, Inc., Hibernate Tools -
Language) www.eclipse.org/m2m/atl www.hibernate.org/subprojects/tools.html
[3] Begoña Bonet Pérez de León , Tecnimap 2010 [23] Red Hat, Inc., Seam Framework – JBoss
- MOSKitt: herramienta libre que da soporte a Seam - seamframework.org
la aplicación de metodologías de desarrollo, [24] Roberto Canales Mora. Autentia.,
2010. Informática Profesional: Las reglas no escritas
[4] Christian Bauer, Gavin King., Java Persistence para triunfar en la empresa. Starbook, 2009.
with Hibernate. Manning, 2006. [25] Sencha Inc., ExtJs -
[5] Consejo Superior Administración Electrónica, www.sencha.com/products/js
Métrica3. Metodología de Planificación, [26] Spring, Spring ROO -
Desarrollo y mantenimiento de sistemas de www.springsource.org/roo
información. - www.csi.map.es/csi/metrica3 [27] Vicente Pelechano, MOSKitt. Una
[6] Conselleria d'Infraestructures i Transport - plataforma libre para el desarrollo de métodos
GVA, Modeling Software Kit (MOSKitt) y herramientas DSDM, 2009.
(www.moskitt.org) [28] Visigoth Software Society, FreeMarker -
[7] Eclipse Modeling Framework Project (EMF) freemarker.sourceforge.net
www.eclipse.org/modeling/emf
[8] Eclipse Open Architecture Ware Fuentes consultadas
www.openarchitectureware.org
[9] Elena Litani, Discover the Eclipse Modeling Se desea presentar agradecimientos por la
Framework (EMF) and Its Dynamic atención, críticas, observaciones y asesoramiento
Capabilities., Ed Merks, 2010. ofrecidos.
[10] Frank Truyen, The fast guide of Model
Driven Architecture. 2006. [91] Martín García Hernández - Jefe del Servicio
[11] Ikv++ technologies ag, medini QVT - de Organización e Informática - Conselleria
projects.ikv.de/qvt d'Infraestructures i Transport - GVA.
[12] Javier Cano, Multiple diagrams in single [92] Begoña Bonet Pérez de León - Servicio de
resource support for MOSKitt, 2009. Organización e Informática - Conselleria
[13] Javier Muñoz, Begoña Bonet., d'Infraestructures i Transport - GVA.
SemanaInformatica-2010-Herramienta de [93] Vicente Pelechano – Titular de Universidad
Modelado UML y Soporte a la Ingeniería del – Sistemas Informáticos y Computación -
Software, 2010. Universidad Politécnica de Valencia.
[14] Javier Muñoz, Integrating Transformations [94] Miguel Llácer San Fernando, Master e
into the MOSKitt Transformation Manager, Ingeniero Software – ProDevelop.
2009. [95] Javier González Álvarez, Arquitecto JEE
[15] José Abellán, MOSKit Day - ProDevelop - Ahead Tecnology.
Metodologías y Herramientas, 2009. [96] Mª Dolores Hernández, Métrica 3 - Consejo
[16] Mario G. Piattini Velthuis, Javier Garzás Superior Administración Electrónica.
Parra., Fábricas de Software: Experiencias, [97] Victoriano Gómez Garrido, Ilustra
tecnologías y organización. Ra-Ma, 2010. Consultoria.
[17] Markus Völter, MD* Best Practices, 2008. [98] Roberto Canales Mora – Autentia
[18] Miguel Llácer San Fernando, Tech. Report - [99] Pau Giner - Investigador, Ph.D. - Sistemas
Traceability and Synchronization, 2009. Informáticos y Computación - Universidad
[19] Object Management Goup, Inc., Model Politécnica de Valencia.
Driven Architecture - www.omg.org/mda. [100] Patricio Letelier Torres, Ph.D. - Sistemas
[20] OpenXava Project - Informáticos y Computación - Universidad
www.openxava.org/web/guest/home. Politécnica de Valencia.

ISSN 1988–3455 SISTEDES 2010 135


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Definición y ejecución de métricas en el contexto de ADM

Javier Luis Cánovas Izquierdo, Belén Cruz Zapata, Jesús García Molina
Universidad de Murcia
{jlcanovas, b.cruzzapata, jmolina}@um.es

Resumen modernización, como análisis estático


o refactoring. Del total de siete especificaciones
La Modernización de Software Dirigida por previstas, en la actualidad sólo se han publicado
Modelos ha surgido como una nueva disciplina tres de ellas: Abstract Syntax Tree Metamodel
centrada en la utilización de técnicas de (ASTM), que permite representar el código fuente
Desarrollo de Software Dirigido por Modelos en como árboles de sintaxis abstracta; Knowledge
los procesos de evolución de software. La Discovery Metamodel (KDM), destinado a
iniciativa Architecture Driven Modernization representar el código en diferentes vistas
(ADM) de OMG define un conjunto de arquitecturales y que es la base para la
metamodelos estándar para representar como interoperabilidad; y Software Metrics Metamodel
modelos la información involucrada en las tareas (SMM), que permite representar tanto métricas
de una modernización o reingeniería de software. como mediciones. El resto de metamodelos están
Para la representación de métricas, ADM relacionados con el análisis de programas, las
incluye el metamodelo Software Metrics pruebas, el refactoring, la visualización y las
Metamodel (SMM). Sin embargo, la definición de transformaciones.
SMM solamente proporciona la sintaxis abstracta, En el desarrollo de software, como sucede en
pero no una notación. En este artículo se dota a otras disciplinas de ingeniería, las mediciones de
SMM de una sintaxis concreta textual y se define ciertas propiedades o características de un sistema
un motor de ejecución que permite ejecutar o proceso de software son esenciales para conocer
métricas y calcular mediciones sobre modelos tanto la calidad del producto o del trabajo
Ecore. realizado, como para controlar el proceso y
establecer planes de mejora. En un proceso de
1. Introducción modernización de software las métricas ayudan en
actividades como el análisis del código existente,
la evaluación del resultado de la evolución o el
Las técnicas del Desarrollo de Software Dirigido
control del proceso aplicado [2].
por Modelos (DSDM) no sólo son útiles para la
SMM fue publicado en mayo de 2009 y sólo
creación de nuevos sistemas software, sino que
incluye el metamodelo de la sintaxis abstracta. En
también pueden ser aplicadas en procesos de
este trabajo se dota a este metamodelo de una
modernización o reingeniería de software. Para
sintaxis concreta textual para definir
ello, es necesaria una etapa inicial que convierta
completamente un lenguaje específico de dominio
los artefactos software del sistema existente en
(DSL), denominado Medea, destinado a la
modelos que los representen. Sin duda, la
definición y ejecución de métricas. Las métricas
iniciativa más ambiciosa sobre modernización
son expresadas textualmente y se pueden aplicar
dirigida por modelos es Architecture Driven
sobre cualquier artefacto software representado
Modernization (ADM) [1] lanzada por OMG en
mediante un modelo conforme a un metamodelo
2003.
MOF o Ecore, como por ejemplo KDM. Se ha
El propósito de ADM es favorecer la
construido un motor que ejecuta especificaciones
interoperabilidad entre herramientas de
Medea y obtiene modelos con las mediciones que
modernización de software mediante la definición
resultan de aplicar las métricas. La aportación de
de un conjunto de especificaciones estándares de
este trabajo abre la posibilidad de experimentar
metamodelos que representan la información
con el metamodelo SMM mediante la definición
gestionada, normalmente, en las tareas de
de métricas ejecutables para KDM u otros

ISSN 1988–3455 SISTEDES 2010 136


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

metamodelos. Por lo que sabemos se trataría del muestra una parte de esta jerarquía y en ella se
primer motor de ejecución de SMM disponible. observa que las medidas se clasifican en dos
La organización de este documento es la categorías: las que asignan un valor numérico de
siguiente. La Sección 2 describe el metamodelo acuerdo a una unidad de medida
SMM y comenta sus principales elementos. La (DimensionalMeasure) y las que retornan un
Sección 3 presenta la sintaxis textual propuesta, símbolo que indica que la característica
mientras que la Sección 4 describe el motor de considerada tiene un valor en cierto rango
ejecución implementado. La Sección 5 muestra (Ranking).
unos ejemplos de definición de medidas con Existen varios tipos de DimensionalMeasure,
Medea, los cuales han sido utilizados en un caso como las medidas simples o de aplicación directa
de estudio real. La Sección 6 presenta el trabajo (DirectMeasure), por ejemplo la medida que
relacionado y la Sección 6 finaliza el artículo con comprueba si un elemento satisface una propiedad
las conclusiones y trabajo futuro. retornando 0 o 1 (Counting); y las medidas
compuestas que representan operaciones que
involucran a varias medidas. Hay dos tipos de
2. El metamodelo SMM medidas compuestas: las que realizan el cálculo
entre dos elementos (BinaryMeasure) y las que
son aplicadas a un conjunto de elementos
Como hemos indicado, SMM es un metamodelo
que proporciona un formato estándar para (CollectiveMeasure). RatioMeasure es una
representar tanto las métricas de software como las subclase de BinaryMeasure que representa una
mediciones con dichas métricas. Aunque se ha relación entre dos medidas bases (por ejemplo, el
definido en el contexto de ADM, SMM permite número medio de líneas por módulo) y
AdditiveMeasure y MaximalMeasure son tipos de
representar métricas de cualquier tipo referidas a
CollectiveMeasure que representan una suma de
todo tipo de artefacto software representado
mediciones y la obtención de la medición máxima,
mediante elementos de un modelo conforme a un
respectivamente. Ambos tipos de medida
metamodelo (MOF según la especificación).
compuesta especifican las medidas en las que se
basan. Así, BinaryMeasure especifica sus
operandos con las referencias baseMeasure1 y
baseMeasure2, mientras que CollectiveMeasure
utiliza la referencia baseMeasure.
Para aquellas medidas que puedan ser descritas
por su nombre, ya que son bien conocidas, como la
complejidad ciclomática de McCabe, SMM ofrece
la metaclase NamedMeasure.
Figura 1. Elementos principales de SMM
Como se observa en la Figura 2a, todas las
La Figura 1 muestra los principales elementos medidas en SMM tienen asociado el ámbito de
de SMM. Los dos conceptos principales del aplicación (scope) y la característica que se está
metamodelo son medida (measure) y medición midiendo (characteristic). El ámbito permite
(measurement). Mientras que una medida define especificar el dominio de la medida, esto es, sobre
un proceso de evaluación (esto es, una métrica), qué tipos de elementos va a aplicarse. La
una medición es el resultado de la aplicación de característica es una cadena de texto que describe
una medida. Cada medición tiene asociada (a la propiedad que se mide, por ejemplo, líneas de
través de la referencia measurand) el conjunto de código o longitud de un fichero.
elementos que han sido medidos (en nuestro caso De forma paralela a la jerarquía de medidas,
elementos de modelos Ecore). Además, las SMM incluye una jerarquía de mediciones. Esta
mediciones también tienen asociada información jerarquía permite reproducir la estructura de una
(observation) acerca del momento y la herramienta medida pero con el objetivo de representar el
que ha sido utilizada para calcularla. resultado de la medición. Por ejemplo, para las
SMM incluye una jerarquía de medidas que medidas de tipo CollectiveMeasure existe la
representan distintas formas de evaluar medición CollectiveMeasurement. La Figura 2b
características de un elemento. La Figura 2a muestra una parte de la jerarquía de mediciones.

ISSN 1988–3455 SISTEDES 2010 137


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 2. Jerarquías principales de SMM. (a) Jerarquía de medidas. (b) Jerarquía de mediciones

SMM también incluye conceptos básicos para AbstractCodeElement y especifica en el atributo


organizar las medidas y mediciones en librerías y operation la operación OCL a realizar para
categorías. comprobar que un elemento es del tipo indicado en
La Figura 3 (basada en uno de los ejemplos el Scope. Conviene destacar que SMM utiliza
usados en la especificación de SMM) muestra un OCL para expresar las operaciones asociadas a
modelo SMM que representa el resultado de contar cualquier medida directa.
el número de módulos existentes en un modelo La Figura 3b muestra los elementos de tipo
KDM. Esta figura muestra cómo los modelos medición asociados a las medidas anteriores,
SMM incluyen elementos relacionados con las indicando los valores numéricos calculados para
medidas, las mediciones y los elementos cada una de ellas. En este ejemplo, la medición se
evaluados. ha realizado para un modelo KDM que sólo
La Figura 3a muestra los elementos necesarios contiene un módulo. Obsérvese que las mediciones
para la definición de la medida, estos son, una calculadas hacen referencia a los elementos del
medida compuesta de tipo AdditiveMeasure que modelo que son objeto del cálculo de la medida,
suma las mediciones de una medida directa de tipo en el ejemplo las mediciones referencian a los
Counting que devuelve 0 o 1 según el elemento elementos CodeModel y Module del modelo KDM
sea o no de tipo code::Module. La medida (Figura 3c).
compuesta define como ámbito los elementos del
paquete Code de KDM de tipo CodeModel y 3. Definición de la sintaxis concreta
especifica el atributo accumulator a sum para
indicar que la operación a realizar con los
Dado que la especificación de SMM solamente
resultados de las medidas que la componen es la
proporciona el metamodelo de la sintaxis
adición. Por otro lado, la medida Counting es una
abstracta, decidimos dotarla de una notación o
medida simple que define como ámbito los
sintaxis concreta para facilitar la tarea de crear
elementos del paquete Code de KDM de tipo

ISSN 1988–3455 SISTEDES 2010 138


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 3. Ejemplo de modelo de sintaxis abstracta en SMM extraída del documento de especificación. Las medidas
definidas cuentan el número de módulos en los modelos de código de un modelo KDM

modelos que expresen medidas SMM. De este parten de la gramática para generar el metamodelo
modo, los usuarios dispondrían de un DSL y el parser que extrae modelos de la
completo, en vez de tener que definir las medidas especificación textual, como por ejemplo xText
como instancias de los elementos de la sintaxis [4]; y ii) las que generan el parser a partir del
abstracta con algún editor. La ejecución de las metamodelo, por ejemplo TCS [5] y EMFText [6].
especificaciones de medidas expresadas con dicho Nosotros hemos usado el lenguaje Gra2MoL,
lenguaje permitiría realizar las mediciones sobre creado especialmente para extraer modelos a partir
artefactos software representados como modelos de código fuente de un lenguaje de programación
Ecore y obtener los correspondientes modelos [7, 8], ya que realmente posibilita la extracción a
SMM. A continuación presentaremos la sintaxis partir de cualquier especificación textual conforme
del DSL Medea y comentaremos el proceso de a cualquier gramática libre de contexto. Por tanto
definición de dicha sintaxis, y en la siguiente se puede ver como un tercer enfoque para crear
sección describiremos su motor de ejecución. DSLs: dado un metamodelo destino y una
Consideramos que una sintaxis concreta gramática origen se establece la correspondencia
textual sería más apropiada que una gráfica, por la entre ellos mediante una transformación cuya
naturaleza de las métricas, el tipo de usuario, y ejecución produce el modelo a partir de una
sobre todo porque según nuestra experiencia es especificación conforme a la gramática, como
conveniente comenzar antes por un DSL textual expresa el esquema de la Figura 4 para el caso de
que por uno gráfico, como también se indica en Medea y SMM.
[3].
Es importante destacar que la definición de la
sintaxis concreta textual solamente afecta a la
parte de SMM encargada de la definición de
medidas, que es la parte que debe ser definida
manualmente. La parte de SMM dedicada a la
definición de mediciones se obtiene como Figura 4. Proceso de extracción de un modelo SMM que
representa medidas
resultado de la ejecución de las medidas, por lo
que no es necesaria su especificación por parte del Gra2MoL incorpora un lenguaje de consultas
usuario. especialmente creado para resolver las referencias
Existen diversas herramientas para crear DSLs entre elementos del código fuente, lo que lo hace
textuales basados en un metamodelo, las cuales se especialmente apropiado para utilizarlo en este
pueden clasificar en dos categorías: i) las que

ISSN 1988–3455 SISTEDES 2010 139


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

caso como veremos más adelante. Esta ejemplo de la Figura 3a. El símbolo inicial es
característica es una ventaja frente a smm_model y la primera producción expresa que
aproximaciones como TCS o EMFText, donde es un modelo de medidas SMM está formado por un
necesario proporcionar un mecanismo para dicha conjunto de elementos, así como que una
resolución de referencias. especificación Medea comenzará por la palabra
Una definición de transformación en clave smm_model seguida del identificador que
Gra2MoL consiste en un conjunto de reglas que denota el nombre del modelo y de la definición de
especifican las relaciones entre los elementos de la los elementos encerrada entre llaves. Según la
gramática y los elementos del metamodelo. Cada segunda producción cada elemento puede ser de
una de estas reglas expresa cómo crear un los diferentes tipos considerados en SMM
elemento del metamodelo a partir de un elemento (librería, ámbito, característica, etc.). La tercera
de la gramática como se describe en [7]. Como establece que una librería contiene cero o más
muestra la Figura 4, el motor de ejecución de medidas y se expresa con la palabra clave libraries
Gra2MoL recibiría como entrada cuatro seguida del nombre de la librería y las definiciones
elementos: (1) la gramática GMedea definida para de las medidas entre llaves. La cuarta establece
SMM, (2) el metamodelo MMSMM de la sintaxis que hay dos tipos de medidas: ranking y
abstracta de SMM, (3) la definición de la dimensional. La quinta y la sexta definen la
transformación Gra2MoL TGra2MoL y (4) la estructura de una medida dimensional que puede
especificación Medea conforme a la gramática. ser de dos tipos: directa y compuesta.
Como resultado de la transformación, se obtiene
un modelo conforme al metamodelo destino, en smm_model:
'smm_model' ID ‘{’ elements* ‘}’
este caso SMM. ;
La creación de un DSL con Gra2MoL requiere
como primer paso la definición de una gramática elements :
libraries | scopes | charac |...
en formato ANTLR. Esta gramática libre de ;
contexto permite expresar tanto la sintaxis
abstracta como la concreta. Como es bien libraries :
'library' ID ‘{’ measures+ ‘}’
conocido, metamodelos y gramáticas son dos ;
formalismos para representar la sintaxis abstracta
de un lenguaje y existen algoritmos para convertir measures :
ranking | dimensional
gramáticas en metamodelos y viceversa [9]. En ;
general, dado un metamodelo, cada clase
corresponde a un símbolo no-terminal y para cada dimensional :
'dimensionalMeasure' name=ID ‘{’
uno de ellos hay una producción o regla gramatical 'scope' sc=ID
cuya parte izquierda es dicho símbolo no-terminal ('trait'tr=ID)?
y la derecha está formada por una concatenación 'unit' un=ID
'type' type
deducida de sus atributos y asociaciones, uno por ‘}’
cada atributo y clase destino de cada asociación ;
contenedora y referencia, aunque es posible aplicar
type :
diferentes estrategias para simplificar la gramática 'direct' ‘{’ 'operation' OP }
o mejorar la legibilidad. Por ejemplo, una jerarquía | 'collective' ‘{’
de herencia puede ser representada como una 'accumulator' accumulator
'baseMeasure' bm=ID
producción con una alternativa por cada subclase, ‘}’
en la que cada alternativa está formada por el | ...
símbolo no terminal que representa a la subclase, ;

por otro lado, también pueden incluirse caracteres El ejemplo de la Figura 3a podría ser
delimitadores, como por ejemplo las llaves, para expresado en Medea del siguiente modo:
definir bloques en el texto y facilitar la legibilidad.
A continuación mostramos un fragmento de la smm_model myModel {
characteristic ModuleCount
gramática definida, el cual nos permitirá describir scope codeModel{
la estructura de una especificación Medea para el class code::CodeModel
}

ISSN 1988–3455 SISTEDES 2010 140


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

scope AbstractCodeElement{ la especificación Medea, denotada como


class code::AbstractCodeElement
} MetricsMedea en la figura (2) el metamodelo al que
library myLibrary{ conforman los modelos sobre los que aplicar las
dimensionalMeasure ModuleCount{ medidas, MMKDM en la figura y (3) el modelo
scope codeModel
trait ModuleCount sobre el que aplicar las medidas, MKDM en la
unit code::Module figura, que conformará con el metamodelo
type collective{ MMKDM. El primer paso es generar un modelo
accumulator sum
baseMeasure ModuleCountRecognizer SMM a partir de la especificación Medea, para lo
} cual el intérprete interactúa con el motor de
} ejecución de Gra2MoL (pasos 1, 2 y 3 en la figura)
dimensionalMeasure ModuleCountRecognizer{
scope AbstractCodeElement Conforme son interpretadas, en un segundo
trait ModuleCount paso las medidas del modelo generado son
unit code::Module ejecutadas sobre el modelo a evaluar MKDM. Este
type direct{
operation "oclIsTypeOf(code::Module)" proceso de ejecución utiliza un motor de ejecución
} de expresiones OCL (OCLManager) y un gestor
} de modelos (ModelManager). El primero permite
}
} ejecutar las expresiones OCL con las que se
La especificación del modelo de medidas expresan las operaciones a ejecutar, las cuales son
SMM se ha llamado myModel y contiene un interpretadas por el framework EMF Validation de
conjunto de declaraciones de medidas, ámbitos y la plataforma Eclipse; y el segundo se encarga de
características. Primero se define la característica a recorrer el modelo de entrada. Conforme se van
medir ModuleCount y los ámbitos codeModel y ejecutando las medidas, se va construyendo un
AbstractCodeElement utilizados por las medidas. modelo SMM que contiene los elementos de
Luego se define la librería myLibrary que engloba medición resultantes (MSMM en la figura).
las definiciones de la medida compleja La mayor parte de las operaciones
ModuleCount y de la medida simple relacionadas con la navegación y consulta del
ModuleCountRecognizer. La primera de ellas es modelo sobre el cual calcular las métricas son
una medida que suma el resultado de la segunda. realizadas por el componente ModelManager
En el ejemplo se han subrayado aquellos (formado por una única clase Java). Sin embargo,
identificadores que actúan como referencias a dado que se utiliza el API generada por EMF para
elementos definidos en otro ámbito de la el metamodelo KDM, se ha creado el componente
especificación. Por ejemplo, cuando se define la adicional KDMModelManager, el cual especializa
medida ModuleCount se referencia a la medida el comportamiento del manejador de modelos para
ModuleCountRecognizer. Dichas referencias se hacer uso de los elementos de dicho API. El
pueden comprobar en el modelo de ejemplo de la componente KDMModelManager se genera
Figura 3. Tal y como se ha comentado automáticamente junto con el API de EMF y del
anteriormente, la resolución de estas referencias mismo modo se podrían crear especializaciones
para la obtención del modelo se ha visto facilitada para otros metamodelos.
por el uso del lenguaje de consultas integrado en Como resultado de la ejecución del proceso, se
Gra2MoL [7]. obtiene un modelo conforme al metamodelo SMM
que contiene las mediciones resultado de haber
4. Motor de ejecución aplicado las medidas, junto con las referencias al
modelo evaluado.
El motor de ejecución creado es capaz de
interpretar una especificación de medidas 5. Ejemplo
expresada en Medea, ejecutarla y finalmente crear
un modelo que contenga las mediciones asociadas Con el propósito de presentar un proceso para la
a las medidas. creación de herramientas de modernización
La Figura 5 muestra el esquema del proceso de basadas en ADM, en [10] se utiliza un caso de
interpretación y ejecución de los modelos de estudio de medición de métricas relacionadas con
medidas SMM. Las entradas del intérprete son: (1) la complejidad de migrar aplicaciones Oracle

ISSN 1988–3455 SISTEDES 2010 141


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 5. Proceso definido para el motor de ejecución de métricas SMM.


Forms a la plataforma Java. En dicho proceso, imperativo (por ejemplo, mediante el uso de
primero se obtienen modelos KDM del código sentencias de asignación). El acoplamiento
PL/SQL de una aplicación Oracle Forms (Figura reflexivo es el más complicado de migrar debido a
6a), utilizando ASTM para crear un modelo que es necesario estudiar el contexto de ejecución
intermedio que representa el código como un árbol del código.
de sintaxis abstracta. A continuación, por medio de Las métricas definidas están basadas en la
una trasformación modelo-a-modelo, se calculan localización y conteo de los diferentes tipos de
una serie de métricas que permiten medir el nivel sentencias que hacen uso de la interfaz gráfica en
de acoplamiento del código PL/SQL con la un modelo KDM. Los modelos KDM representan
interfaz de usuario. El objetivo de calcular dichas a los triggers PL/SQL como elementos
métricas es disponer de información que ayude a CallableUnit, los cuales están formados por un
cuantificar el esfuerzo para llevar a cabo la conjunto de ActionElements que describen las
migración del código PL/SQL. De esta forma, sentencias que contienen. Los elementos
cuanto mayor es el nivel de acoplamiento, mayor ActionElement contienen elementos
es el esfuerzo para efectuar la migración. En aquel AbstractActionRelationship que describen de
contexto, las mediciones se representaban por forma atómica el comportamiento de la sentencia.
medio de un metamodelo ad-hoc, dado que la Por ejemplo, los elementos Reads y Writes
especificación SMM todavía no había sido describen la lectura y escritura de variables,
publicada. respectivamente. El atributo kind de los elementos
La transformación modelo-a-modelo tomaba ActionElement permite identificar el tipo de
como entrada el modelo KDM generado y obtenía sentencia, esto es, declarativo o imperativo. Por
el modelo de mediciones a partir de las otra parte, la identificación de sentencias
operaciones de medición expresadas en las reglas reflexivas se realiza por medio de la localización
de la transformación, esto es, no se manejaba un de elementos de tipo Call, los cuales representan
modelo de medidas, solamente de mediciones. una llamada a un método, en este caso, debe
Ahora hemos modificado el proceso anterior comprobarse si el método llamado es reflexivo.
para utilizar el motor SMM y el metamodelo Por tanto, se ha definido una especificación
SMM como formato de representación de las Medea con tres medidas compuestas basadas en
medidas y mediciones. La Figura 6b muestra la tres directas, cuyo objetivo es localizar y contar el
incorporación del motor de métricas en el proceso número de sentencias asociadas a cada nivel de
sustituyendo a la transformación modelo-modelo acoplamiento. La medida compuesta impCount
mencionada. basada en la medida directa impCountRecognizer
Según la forma de acceder a la interfaz gráfica, se encarga contar el número de sentencias
se definieron tres niveles de acoplamiento: imperativas que interactúan con la interfaz gráfica
reflexivo (por ejemplo, mediante el uso de las en un trigger. Su definición textual sería la
funciones NAME_IN o COPY), declarativo (por siguiente:
ejemplo, utilizando sentencias select) e

ISSN 1988–3455 SISTEDES 2010 142


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Figura 6. (a) Proceso de extracción de modelos KDM a partir de código PL/SQL. (b) Uso del motor SMM para el
cálculo de métricas
characteristic imperativeCount La estrategia seguida para definir esta medida
scope CallableUnit{
class code::CallableUnit es parecida a la mostrada en el ejemplo de la
} Sección 3 para calcular el número de módulos en
scope AbstractActionRelationship { un modelo. El objetivo genérico es contar el
class action::AbstractActionRelationship
} número de elementos de un modelo que cumplen
dimensionalMeasure impCount{ una determinada condición. La forma de describir
scope CallableUnit este comportamiento en SMM es utilizando una
trait imperativeCount
unit action::AbstractActionRelationship medida compleja que sume el resultado de una
type collective { medida simple, la cual comprueba si el elemento
accumulator sum cumple la condición. De esta forma, en la
baseMeasure impCountRecognizer
} definición anterior, la medida impCount es una
} medida de tipo CollectiveMeasure que se encarga
dimensionalMeasure impCountRecognizer{ de sumar el resultado de la medida directa
scope AbstractActionRelationship
trait imperativeCount impCountRecognizer. Esta última medida aplica la
unit action::AbstractActionRelationship expresión OCL especificada para comprobar que
type direct { una sentencia es de tipo imperativa y comienza
operation
"if(self.oclIsTypeOf(action::Reads)) con el carácter ‘:’, que es el formato para
then representar variables de la interfaz gráfica.
let rVar : action::Reads =
self.oclAsType(action::Reads) in
Además, se define la característica
rVar.from-> imperativeCount que representa a las medidas, así
exists(e| e.kind <> 'select' or como los ámbitos principales, los cuales también
e.kind <> 'insert' or
e.kind <> 'update') and
serán utilizados en las siguientes medidas. El
rVar.to. primer ámbito, llamado CallableUnit, establece el
oclIsKindOf(code::StorableUnit) and elemento CallableUnit, que representa a los
rVar.to.name.substring(1, 1) = ':
else
triggers en el modelo KDM, como ámbito de la
if(self.oclIsTypeOf(action::Writes)) medida impCount. El segundo ámbito, llamado
then AbstractActionRelationship, establece el elemento
let wVar : action::Writes =
self.oclAsType(action::Writes) in
AbstractActionRelationship, que representa a las
wVar.from-> sentencias del trigger, como ámbito de la medida
exists(e| e.kind <> 'select' or impCountRecognizer.
e.kind <> 'insert' or
e.kind <> 'update') and
La segunda métrica compuesta, llamada
wVar.to. declCount, está basada en la medida directa
oclIsKindOf(code::StorableUnit) and declCountRecognizer y se encarga de contar el
wVar.to.name.substring(1, 1) = ':'
else false
número de sentencias declarativas que interactúan
endif con la interfaz gráfica en un trigger. Su definición
endif" es similar a la anterior exceptuando la expresión
}
} OCL utilizada, la cual comprueba que el atributo
kind sea igual a alguno de los valores que
identifican a una sentencia declarativa (select,

ISSN 1988–3455 SISTEDES 2010 143


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

insert, update, en el ejemplo). Por cuestiones


de espacio, no incluimos la definición de esta
medida, la cual puede ser descargada desde la web
de la herramienta.
Finalmente, la métrica compuesta refCount
basada en la medida directa refCountRecognizer se
encarga de contar el uso de sentencias reflexivas
que interactúan con la interfaz gráfica.

characteristic reflectiveCount
scope AbstractActionRelationship{
class action::Calls
} Figura 7. Nivel de acoplamiento de tres formularios
dimensionalMeasure refCount{ Oracle Forms en un sistema de gestión de alumnos. Cada
scope CallableUnit
trait reflectiveCount
barra indica la proporción de triggers que contiene un
unit action::ActionElement tipo concreto de acoplamiento. Un trigger puede
type collective{ contener más de un tipo de acoplamiento.
accumulator sum
baseMeasure refCountRecognizer
}
} 6. Trabajo relacionado
dimensionalMeasure refCountRecognizer{
scope AbstractActionRelationship
trait reflectiveCount En la actualidad, dada la reciente aparición de la
unit action::Calls especificación SMM, no existe un gran número de
type direct{ trabajos relacionados con este metamodelo.
operation
"self.to. Precisamente, en [11, 12] se presentan
oclIsKindOf(code::MethodUnit) and aproximaciones generativas dirigidas por modelos
(self.to.name == ‘name_in’ or para la construcción de software de cálculo de
self.to.name == ‘copy’)"
} métricas, sin embargo, no utilizan los
} metamodelos de ADM.
La definición de medida directa anterior En [13] se presenta una aproximación con el
difiere de las dos anteriores en que el ámbito es mismo propósito que Medea. En ella los modelos
AbstractActionRelationship en vez de de medidas SMM se generan a partir de reglas que
AbstractCodeElement. En este caso la medida capturan patrones de métricas expresados como
simple se encarga de comprobar si un elemento es operaciones OCL. Los diferentes tipos de medidas
de tipo Calls y llama a un método reflexivo. de un modelo SMM se derivan de las tuplas que
Las métricas fueron aplicadas al código resultan al ejecutar el código OCL de la regla y un
PL/SQL de una aplicación Oracle Forms utilizada motor de ejecución SMM produce el modelo de
como parte del Sistema de Gestión Académica de medición. La principal diferencia con nuestra
alumnos de la Universidad de Murcia. Del modelo propuesta es que no se proporciona un DSL para
de mediciones obtenido, se aplicó una expresar medidas sino que el usuario debe usar las
transformación modelo a código para obtener un reglas existentes o crear nuevas reglas. Aunque se
fichero de valores separados por comas para poder comenta la implementación de un prototipo de
representarlos gráficamente. La Figura 7 muestra motor SMM, la herramienta aún no está disponible
el nivel de acoplamiento detectado en los triggers y no hemos podido evaluarla.
de tres de los formularios de la aplicación. La MoDisco [14] forma parte del proyecto GMT
información visualizada ayuda a comprender la de Eclipse y es un framework creado para obtener
dificultad del proceso de migración para cada modelos en el contexto de modernización dirigida
formulario. Considerando el acoplamiento de la por modelos. Ofrece una implementación para el
interfaz de usuario, en este caso el formulario metamodelo KDM y actualmente acaba de
EUProjects sería más difícil de migrar que los publicar una implementación del metamodelo
otros dos, sin embargo, también debería tenerse en SMM. Sin embargo, no dispone todavía de
cuenta otros aspectos como el tamaño y herramientas para la definición o ejecución de
complejidad del código. modelos SMM.

ISSN 1988–3455 SISTEDES 2010 144


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Existen diversas propuestas para definir Referencias


métricas basadas en OCL pero no son genéricas y
se definen para modelos UML [15, 16]. [1] ADM. http://adm.omg.org
[2] Tom Mens, Serge Demeyer, “Future Trends in
7. Conclusiones Software Evolution Metrics”. In: Proc. Int’l
Workshop on Principles of Software Evolution
En este artículo se ha presentado Medea, que (IWPSE 2001), pp. 83-86 ACM Press.
según nuestro conocimiento es el primer lenguaje [3] Markus Völter: MD* Best Practices. Journal of
de definición de medidas SMM ejecutables. Un Object Technology, (6): 79-102 (2009)
motor de ejecución permite ejecutar las medidas y [4] Xtext. http://www.eclipse.org/Xtext/
obtener modelos de medición SMM. Se ha [5] F. Jouault, J. Bèzivin, and I. Kurtev, “TCS: a
utilizado Gra2MoL para dotar de una sintaxis dsl for the specification of textual concrete
concreta textual al metamodelo de sintaxis syntaxes in model engineering", in GPCE, pp.
abstracta de SMM. 249-254 (2006).
Hemos mostrado la aplicación de Medea a un [6] Emftext. http://www.emftext.org
caso de estudio real que anteriormente se había [7] J. Cánovas Izquierdo, J. G. Molina. “A domain
abordado mediante un metamodelo de métricas ad- specific language for extracting models in
hoc. Con el uso de SMM nos ahorramos la software modernization” en ECMDA 2009,
definición de los metamodelos de métricas y LNCS 5562, pp. 82-97, 2009
mediciones y ganamos en interoperabilidad ya que [8] J. Cánovas Izquierdo, O. Sánchez, J. Sánchez
todos los metamodelos empleados son estándar: Cuadrado, J. G. Molina. “DSLs para la
KDM y SMM. extracción de modelos en modernización”, V
Con el motor de ejecución de SMM Taller DSDM 2008, Gijón (España).
implementado será posible que la comunidad [9] Jack Greenfield, Software Factories (capítulo
experta en métricas pueda probar y validar el 8), John Wiley & Sons, 2004.
metamodelo SMM y valorar su utilidad real. El [10] J. Cánovas Izquierdo, J. García Molina. “An
motor de ejecución puede descargarse desde la Architecture-Driven Modernization Tool for
dirección http://modelum.es/medea. Calculating Metrics”, IEEE Software,
Como trabajo futuro, creemos interesante Software Evolution SI, Julio/Agosto 2009.
estudiar cómo mejorar la sintaxis concreta para [11] M. Montperrus, J. M. Jézéquel, B. Baudry, J.
elevar su potencial y dotarlo de constructores más Champeau, B. Hoeltzener. “Model-driven
complejos que puedan permitirnos definir métricas generative development of measurement
más eficientemente, como por ejemplo, sentencias software”. Software and Systems Modeling
para definir directamente medidas de conteo de (SoSyM), 2010. To be published.
elementos sin tener que utilizar una medida [12] SMF Tool. http://alarcos.esi.uclm.es/smf
compuesta que sume el resultado de otra simple. [13] M. Engelhardt, et al. “Generation of Formal
Otra tarea a abordar es la integración de la Model Metrics for MOF based Domain
herramienta en la plataforma AGE [16], Specific Languages”, OCL Workshop,
ofreciendo un editor específico para el lenguaje MODELS, 2009.
definido. Finalmente, como objetivo a largo plazo, [14] MoDisco Eclipse Tool website.
sería la identificación de métricas software y su http://www.eclipse.org/gmt/modisco
organización en librerías, permitiendo disponer de [15] M. Clavel, M. Egea, V. Torres da Silva.
un repositorio de métricas expresado en Medea. “Model Metrication in MOVA: A Metamodel-
based Approach using OCL”. (2007)
Agradecimientos [16] A.L. Baroni, et al.., “Using OCL to Formalize
Object Oriented Design Metrics Definitions”.
In: Proc. of QAOOSE Málaga, Spain (2002)
Este artículo ha sido parcialmente financiado por [17] J. S. Cuadrado, J. G. Molina. “Building
las ayudas Seneca 08797/PI/08 y 129/2009 de la Domain-Specific Languages for Model-Driven
Consejería de Universidades e Investigación Development”, IEEE Software 24(5): 48-55
(Murcia). Javier Luis Cánovas Izquierdo dispone (2007)
de una beca FPI de la Fundación Séneca

ISSN 1988–3455 SISTEDES 2010 145


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

Modelos de weaving para trazabilidad de requisitos Web en A-


OOH

José Alfonso Aguilar Irene Garrigós Jose-Norberto Mazón


Grupo de investigación Lucentia Grupo de investigación Lucentia Grupo de investigación Lucentia
Dpto. de Lenguajes y Sistemas Dpto. de Lenguajes y Sistemas Dpto. de Lenguajes y Sistemas
Informáticos Informáticos Informáticos
Universidad de Alicante Universidad de Alicante Universidad de Alicante
ja.aguilar@dlsi.ua.es igarrigos@dlsi.ua.es jnmazon@dlsi.ua.es

Resumen conjunto de guías de diseño informales para la


derivación manual de modelos conceptuales a
En este artículo, se presenta una propuesta con partir de los requisitos Web [1].
base en MDWE (Model Driven Web Engineering) Ante esta situación, es necesario conocer el
para soportar trazabilidad (elemento-a-elemento) posible impacto derivado del cambio de un
aplicando modelos weaving. El método de diseño requisito, es decir, si un requisito cambia, por
Web A-OOH (Adaptive Object Oriented ejemplo, debido al desarrollo gradual de las
Hypermedia) es aplicado para representar el necesidades del usuario, es necesario saber las
modelo de requisitos, equivalente al modelo partes de los modelos conceptuales de la
independiente de computación (CIM) y los aplicación Web que serán afectadas. De proceder
modelos conceptuales de dominio y navegación, similar, si un modelo conceptual es modificado,
ambos representantes del modelo independiente obligado por el cambio constante en las
de la plataforma (PIM) en contexto con Model- tecnologías de implementación de las aplicaciones
Driven Architecture (MDA). Web, es indispensable conocer qué requisitos
serán afectados. En este sentido, en MDWE es
1. Introducción imprescindible habilitar la trazabilidad entre los
requisitos y los modelos conceptuales derivados
del proceso de desarrollo de la aplicación Web.
El diseño de una aplicación Web debe considerar
La trazabilidad de requisitos se define como la
los problemas derivados de aspectos de
capacidad de describir y seguir la vida de un
navegación, presentación y datos. En este
requisito, en ambas direcciones [13]: (i)
contexto, MDWE [9] se ha convertido en una
determinar qué partes del modelo están
alternativa valiosa para solventar dichas carencias
relacionadas con cada uno de los requisitos, y (ii)
de manera sistemática, estructurada, integrada y
determinar qué requisitos dieron origen a qué
completa mediante la utilización de modelos
partes del modelo. Cabe destacar que la
como artefactos principales en el proceso de
trazabilidad se considera como una medida de la
desarrollo de aplicaciones Web.
calidad del sistema y la madurez del proceso de
Por otro lado, debido a la heterogeneidad de los
desarrollo, además es una prescripción de muchas
usuarios de una aplicación Web, cualquier método
normas o estándares, tales como CMMI
de ingeniería Web debe considerar una fase de
(Capability Maturity Model Integration),
análisis de requisitos donde se especifiquen las
específicamente en el nivel 2, en el Área de
necesidades de los diferentes actores implicados
Proceso de Gestión de Requisitos [19].
en la aplicación Web y que sirva para poder
La carencia de soporte para trazabilidad, es un
determinar cada una de las características que
problema común en la mayoría de las
dicha aplicación debe cumplir para satisfacerlas
aproximaciones metodológicas en MDWE que
[7]. Aunque en la actualidad existen varias
debe de ser solucionado [1]. En un proceso
propuestas para la especificación de requisitos
MDWE, esto permitirá a obtener costos y
Web [8, 17], la mayoría de ellas sólo proponen un

ISSN 1988–3455 SISTEDES 2010 146


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

planificaciones más exactas en lugar de depender de esta forma el modelo será contaminado con
del programador para determinar que áreas serán información poco relevante para su contexto y por
afectadas por los cambios [2]. lo tanto el uso y mantenimiento será difícil. Por
En este trabajo, se presenta una propuesta para otro lado, la segunda estrategia consiste en
verificar la consistencia entre el modelo de almacenar la información en un modelo aparte, de
requisitos y los modelos conceptuales en el esta forma se pueden corregir las desventajas
proceso de desarrollo de una aplicación Web. Para mencionadas, esto debido a que, almacenando la
lograr esto son aplicadas un conjunto de técnicas información en un modelo conforme a un
entre las que destacan los modelos weaving [5]. metamodelo con una semántica claramente
Un modelo weaving es un tipo especial de modelo definida se permite un análisis automático por
utilizado para establecer y manejar las relaciones herramientas de Ingeniería de Software de una
(links) entre los elementos de los modelos, es forma más fácil. Es importante destacar que los
decir, está formado por una (o varias) relación(es) modelos de weaving corresponden con la segunda
entre los elementos del modelo de entrada y los estrategia mencionada en este apartado.
elementos equivalentes en el modelo de salida. Continuando con esta idea, existen propuestas
La propuesta presentada en este articulo se ha que proveen una base técnica para el soporte de
realizado en el marco del método de ingeniería trazabilidad en un contexto dirigido por modelos.
Web A-OOH [10] y está alineada con MDA En [14], el autor manifiesta como modificar
(Model Driven Architecture) pero es aplicable a transformaciones especificadas en el lenguaje
otras aproximaciones de ingeniería Web. ATL para dotar de soporte para trazabilidad en el
Finalmente, proveer de soporte para trazabilidad entorno de las transformaciones entre modelos. El
en MDWE permitirá dotar al equipo de desarrollo trabajo que toma como base nuestra propuesta es
de información de gran utilidad para realizar: (i) [3], donde se presenta una extensión del
un análisis de impacto (analizar como cambiar un metamodelo base para weaving [5] con la que es
modelo podría afectar a otro modelo relacionado a posible soportar trazabilidad en transformaciones
él), (ii) sincronización entre modelos (reflejar la entre modelos aplicando modelos de weaving. En
modificación de un modelo en otro relacionado a [6], por su parte, el autor presenta una propuesta
él), (iii) depuración basada en modelos (mapear la para trazabilidad aplicando diversos lenguajes de
ejecución paso a paso de una implementación de modelado para establecer y mantener links de
nuevo a su modelo de alto nivel) así como trazabilidad semánticamente ricos entre los
determinar el objetivo de una transformación [4]. elementos de los modelos participantes en las
Este artículo está organizado de la siguiente transformaciones, incluso coincide con nuestra
manera: la sección 2 resume la aplicación de propuesta con el uso del framework i* para
modelos weaving en ingeniería Web y delimita el especificación de requisitos.
área de interés de este trabajo. En la sección 3 se Actualmente existen algunos trabajos
describe nuestra propuesta para la trazabilidad de relacionados al campo de la MDWE que
requisitos Web aplicando un running example. implementan modelos weaving para solucionar
Finalmente, la sección 4 presenta las conclusiones distintos problemas, pero ninguno de ellos se
y trabajo futuro. enfoca en resolver los problemas asociados a la
trazabilidad entre modelos conceptuales en un
2. Trabajos relacionados proceso MDA a partir de la fase de especificación
de requisitos. Sin embargo, los modelos de
weaving han sido aplicados en distintos escenarios
En el aspecto de trazabilidad, actualmente
relacionados a la ingeniería Web, por ejemplo, en
existen dos estrategias para gestionar y almacenar
las aplicaciones Web orientadas a servicios
la información necesaria para la trazabilidad entre
(SOWA), en donde se muestra como un modelo
modelos: (i) la información se puede integrar en
weaving puede ser utilizado como contenedor para
los modelos a los que se refiere y (ii) la
información extra (decisiones de diseño) en el
información de trazabilidad se puede almacenar
momento de la ejecución de la transformación de
por separado en otro modelo [6]. La primera de
un modelo [20]. Otro escenario de aplicación de
estas dos opciones tiene como desventaja que la
los modelos de weaving es en la integración de
información es almacenada en el mismo modelo,

ISSN 1988–3455 SISTEDES 2010 147


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

características de usabilidad en aplicaciones Web 3. Uso de modelos de weaving para


desde la fase de elicitación de requisitos [18]. trazabilidad en ingeniería Web
Nuestro trabajo contiene una serie de
características que lo diferencian del trabajo Nuestra propuesta se resume en la figura 2
previo presentado en esta sección, esto debido a expresada en UML (Unified Modeling Language)
que es aplicado un método de desarrollo Web (A- donde se utilizan tres metamodelos diferentes para
OOH) en contexto con el desarrollo Web dirigido la obtención de los modelos conceptuales a partir
por modelos, lo anterior para paliar la carencia de del modelo de requisitos, estos son (i) un perfil
trazabilidad en MDWE desde los niveles CIM - UML para la especificación de requisitos en Web
PIM y PIM - CIM de MDA, para un mejor en un CIM mediante el uso de i*, (ii)
entendimiento, esta propuesta está orientada a la metamodelos utilizados en la definición de los
evaluación del impacto del cambio de un requisito modelos de dominio y de navegación en varios
en los modelos conceptuales de la aplicación Web PIMs y (iii) la extensión del metamodelo weaving
y viceversa. propuesto en [3], para su uso en la trazabilidad
entre nuestros CIM y PIM.

Figura 1. Modelo de trazabilidad al derivar modelos conceptuales a partir del modelo de requisitos en A-OOH.

Como se puede observar en la figura 1, a partir especificar un modelo de requisitos (CIM) y (ii)
de un modelo de entrada (modelo de requisitos) obtener los modelos de dominio y navegación
conforme al metamodelo i* para requisitos Web (PIMs) a la par del modelo de trazabilidad
se obtienen dos modelos mediante (modelo weaving).
transformaciones en lenguaje QVT (Query View
Transform). El primero se denomina modelo de 3.1. Especificación de requisitos en un CIM
salida (puede ser un modelo de dominio o de
navegación) y el segundo corresponde al modelo El desarrollo de aplicaciones Web involucra
weaving para trazabilidad entre los modelos de diferentes tipos de stakeholders con diferentes
entrada y de salida. necesidades y metas. Interesante resulta el hecho
Para ilustrar nuestro trabajo consideramos un de que estos stakeholders dependen uno del otro
running example en el cual el escenario es el para poder lograr sus metas y realizar sus tareas.
siguiente: una compañía que se dedica a la venta En nuestra propuesta, los requisitos Web se
de libros quiere administrar la venta de libros por definen un modelo de requisitos a nivel CIM
medio de una tienda en línea y de está forma, utilizando i* [12]. El modelo de requisitos sirve
atraer la mayor cantidad de clientes como sea para especificar las necesidades del cliente-
posible. Los pasos a seguir consistirán en: (i) usuario de la aplicación, en él es modelada la

ISSN 1988–3455 SISTEDES 2010 148


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

funcionalidad completa de la aplicación Web a navegación (Navigational), interfaz (Layout),


desarrollar. Para modelar esta funcionalidad es personalización (Personalization). Para poder
utilizado i*, una técnica orientada a metas para utilizar esta taxonomía y el framework i* dentro
analizar y modelar explícitamente las relaciones del marco de MDA se ha implementado un perfil
entre múltiples stakeholders (actores en la UML. Los requisitos no funcionales se modelan
notación i*). El marco de modelado i* [22] es uno directamente utilizando elementos de i*.
de los más usados para analizar los objetivos de La figura 2 muestra el modelo de requisitos
los actores y cómo el sistema a diseñar debería (extracto) en i* (CIM) para la tienda de libros en
satisfacerlos, ha sido probado útilmente para línea, cabe destacar que cada elemento que
representar las intensiones de los stakeholders conforma la figura 2 corresponde a un requisito de
(motivaciones y metas), las dependencias entre los acorde a la taxonomía mencionada en el párrafo
stakeholders para alcanzar sus metas así como los anterior. En la figura 2 se pueden apreciar
efectos positivos o negativos de las metas en cada requisitos de contenido (Content) representados
stakeholder. De esta forma, es posible seleccionar con la notación resources de i* y requisitos de
alternativas de diseño para la aplicación a navegación (Navigational), con el símbolo task de
desarrollar y con ello maximizar el cumplimiento i*, ambos con sus respectivas asociaciones
de las metas. El framework i* consiste (decompositions links).
básicamente en dos modelos: SD (Strategic
Dependency), el cual sirve para describir las
relaciones de dependencia entre varios actores en
un contexto organizacional y el modelo SR
(Strategic Relational), utilizado para describir los
intereses del actor y como podrían abordarse. El
framework i* lo constituyen una serie de
elementos en donde encontramos los elementos
intencionales, formados por metas (goals), tareas
(tasks), recursos (resources) y softgoals.
Finalmente, las relaciones intencionales, las cuales
son links del tipo means-end encargados de
representar formas alternativas para satisfacer
metas, los task decomposition links quienes .
representan los elementos necesarios para que una Figura 2. Modelo de requisitos especificado en i*.
tarea sea realizada y los contribution links que
sirven para modelar como es que un elemento
intencional contribuye a la satisfacción de una 3.2. Definición de modelos conceptuales en un
softgoal. La tabla 1 muestra la notación utilizada PIM
para modelar en i*. Para una explicación más
amplia consultar [21-22]. En este trabajo, nos centramos en el método de
modelado A-OOH [10-11] para derivar los
Símbolo Nombre Símbolo Nombre modelos conceptuales de dominio y navegación a
SD resources partir de los requisitos. A continuación, se
SR Softgoals describen de manera breve estos modelos [10]:
actor meands-end • Modelo de dominio. El modelo de dominio se
goals decomposition link expresa como un diagrama de clases UML.
tasks contribution link Este modelo refleja la parte estática del
sistema Web, encapsulando su estructura y
Tabla 1. Notación i*.
funcionalidad requerida.
Como explicamos en [12], nuestra propuesta • Modelo de navegación. El modelo de
utiliza la taxonomía de requisitos Web presentada navegación se compone de nodos de
en [7], la cual esta compuesta por requisitos de navegación y relaciones entre ellos indicando
contenido (Content), servicio (Service), los caminos de navegación que el usuario

ISSN 1988–3455 SISTEDES 2010 149


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

puede seguir en la Web (enlaces de refrencias (WElementRef). Además, se ha


navegación). Hay tres tipos de nodos: (i) utilizado una extensión [3] para proveer a dicho
clases navegacionales, (ii) destinos y (iii) metamodelo con elementos útiles para representar
colecciones (C-collection) que actúan como la trazabilidad, estos son: (i) TraceModel,
menú agrupando enlaces de navegación representa al modelo de trazabilidad, (ii)
(transversal links y service links). TraceModelRef, representa referencias a otros
modelos, (iii) ElementRef, identificador utilizado
3.3. Definición de modelos de weaving para para señalar cada elemento que integra a los
trazabilidad de requisitos Web modelos ligados, (iv) TraceLink, es un link de
rastreo utilizado para representar las
En la definición del modelo de weaving para correspondencias entre las referencias de los
trazabilidad se ha utilizado el metamodelo base elementos de los modelos enlazados, almacena el
para weaving [5] formado por los elementos: nombre de la regla de transformación que ha sido
WElement, WModel, WLink, WElementRef, ejecutada, finalmente (v) TraceLinkEnd, permite
WLinkEnd y WModelRef. Básicamente, este crear una relación uno a muchos (1…*) entre las
metamodelo permite crear un modelo de weaving referencias de los elementos del modelo de
(WModel) conformado por un conjunto de links entrada (sourceElements) y los del modelo de
(WLink) los cuales almacenan el nombre de la salida (targetElement).
regla de transformación utilizada en las El metamodelo y la extensión se presentan en
transformaciones entre los elementos. Mediante el la figura 3, en la parte superior se encuentra el
elemento WLinkEnd, se permite asociar de 1 a metamodelo base para modelos weaving, en la
varios elementos de un modelo con 1 o varios parte inferior se ilustra la extensión del
elementos de otro modelo haciendo uso de metamodelo para trazabilidad.

Figura 3. Metamodelo para weaving.

ISSN 1988–3455 SISTEDES 2010 150


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

relaciones jerárquicas. El modelo de dominio


3.4. Obtención de los modelos de dominio y resultante se muestra en la figura 4.
trazabilidad Además de las transformaciones anteriores, se
ha creado una transformación con reglas
Se pretende obtener el modelo de dominio a adicionales para crear los elementos del modelo
partir del modelo de requisitos (figura 2) de la de trazabilidad:
tienda de libros en línea mediante la aplicación • CreateModelTrace. Al ejecutarse por
de un conjunto de reglas de transformación en primera vez crea un modelo de trazabilidad.
QVT. Con estas reglas, obtendremos también un Por cada vez que una regla QVT es
modelo weaving para segurar trazabilidad ejecutada, empareja uno o varios elementos
bidireccional entre ambos modelos. Las del modelo de requisitos y crea una serie de
principales reglas QVT utilizadas son: referencias a los elementos de los modelos
• Content2DomainClass. Dado un conjunto de de requisitos y de dominio, es decir un
elementos que representan un requisito del nuevo TraceLink en el modelo de weaving
tipo Content en el modelo de requisitos se para trazabilidad (figura 6). Esta regla se
crea una clase tipo Class en el modelo de repite hasta haber recorrido cada uno de los
dominio (modelo de dominio). elementos del modelo de entrada.
• Service2Operation. Detecta un conjunto de
elementos en el modelo de requisitos que
corresponden con un requisito del arquetipo
Service asociado a un requisito del tipo
Content. Una vez detectado este patrón de
elementos, se crea en el modelo de dominio
una clase Operation dentro de la clase
correspondiente.
• Navigation2Relationship. Crea asociaciones
entre clases en el modelo de dominio. Sí
existen dos o más requisitos del arquetipo
Content como origen y éstos requisitos se
usan para cumplir el mismo requisito de Figura 4. Modelo de dominio (extracto).
navegación (Navigational), entonces se crea
El modelo de weaving para trazabilidad se
asociación entre las clases del modelo de
obtiene en paralelo a la obtención del modelo de
dominio.
dominio. La figura 6 muestra el modelo de
Al aplicar las reglas, se considera que para
weaving para trazabilidad obtenido tras la
cada requisito de contenido etiquetado como
generación del modelo de dominio en notación
Content en el modelo de requisitos (CIM), la
UML. La primera parte de la figura 6
regla de transformación Content2DomainClass
(izquierda), representa las referencias al modelo
crea una nueva clase en el modelo de dominio
de entrada, es decir, al modelo de requisitos, el
(PIM). En este caso han sido detectados tres
centro de la figura está formado por los
requisitos de contenido en el CIM: Categoría,
TraceLinks, los cuales contienen el nombre de la
Autor y Libro, por lo tanto se crean tres clases en
regla que se ejecutó para obtener el elemento
el PIM. El siguiente paso es la ejecución de la
correspondiente en el modelo de salida
regla Service2Operation. Para nuestro ejemplo,
(dominio), el cual se encuentra al lado derecho
la regla no aplica debido a que el CIM no cuenta
de la figura 6.
con requisitos del tipo Service. Finalmente, se
En este contexto, la referencia sourceElements
ejecuta la regla Navigational2Relationship para
se refiere a los elementos del modelo de entrada,
crear las asociaciones entre las clases del
por ejemplo, el elemento “Libro” etiquetado
modelo de dominio. Finalmente, una vez
como Content (parte izquierda de la figura 6).
obtenido el modelo de dominio, el diseñador es
La referencia targetElements se refiere a los
él encargado de refinarlo, es decir, especificar la
elementos del modelo de salida generados, en
cardinalidad y definir (en caso de existir) las

ISSN 1988–3455 SISTEDES 2010 151


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

este caso la Clase Libro del modelo de dominio


(lado derecho de la figura 6). El atributo
ruleName contiene el nombre de la regla
(Content2DomainClass). Por su parte, la clase
TraceLinkEnd representa los elementos de
entrada y salida, es decir, los puntos finales de
las correspondencias entre los elementos de
ambos modelos. La referencia elemento (del
core Weaving Metamodel) se refiere a la clase
ElementRef, es una representación a los
verdaderos elementos vinculados, es decir,
guarda un identificador que permite la
identificación únicamente de los elementos del
modelo de entrada o salida. Por motivos de Figura 5. Modelo de navegación (extracto).
espacio son omitidos los TraceLinks que
originaron las asociaciones entre las clases del
modelo de dominio.

Figura 6. Modelo de weaving para trazabilidad requisitos-dominio (extracto).

• Personalization2NavClass. Detecta los


3.5. Obtención de los modelos de navegación y requisitos de personalización (estereotipo
trazabilidad Personalization) que tienen un requisito de
contenido (Content) asociado en el CIM. Se
A partir del CIM se obtiene también el modelo de derivan en el modelo de navegación los
navegación (PIM) de la aplicación Web de la mismos elementos que en la regla anterior.
tienda de libros en línea. Las reglas QVT para la • Navigation2TransversalLink. Permite crear
obtención del modelo de navegación son: asociaciones entre clases navegacionales en el
• Navigation2NavClass. Cuando se detecta en el modelo de navegación. Existen dos requisitos
CIM un requisito estereotipado como origen del arquetipo Content en el CIM, sí los
Navigational unido a un requisito del tipo dos requisitos se usan para cumplir con el
Content, entonces se crea una clase mismo requisito de navegación (Navigational)
estereotipada como NavigationalClass en el (comprobado en la cláusula when con la
modelo de navegación (PIM). Además cada operación SameNavigationOrigin), entonces
una de estas nuevas clases es el destino de una se crea una asociación estereotipada como
nueva asociación TransversalLink desde una TransversalLink entre las clases del modelo de
C-Collection previamente creada por la navegación (PIM) que las representan.
función createMenu que se encuentra en la • Service2Service&SLink. Detecta un conjunto
cláusula when. de elementos en el CIM que corresponden con
un requisito etiquetado como Service asociada

ISSN 1988–3455 SISTEDES 2010 152


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

a un requisito Content, detectado este patrón ejecutadas secuencialmente para especificar un


de elementos se crea en el PIM una clase modelo de trazabilidad entre el modelo de
Operation en la clase correspondiente. requisitos y el de navegación. Por lo tanto, se
Además, se crea una asociación estereotipada necesita también del concurso de la
como ServiceLink para cada operación transformación CreateModelTrace para crear los
añadida. elementos del modelo de trazabilidad.
El modelo de navegación, representado en la El modelo de trazabilidad (extracto, figura 7) se
figura 5 con notación UML, es generado de igual encuentra dividido en tres partes. La parte
forma que el modelo de dominio aplicando las izquierda representa las referencias a los
transformaciones QVT anteriormente descritas. La elementos del modelo de requisitos
primera regla que se ejecuta es (TraceModelRef1), en este ejemplo, formado por
Navigation2NavClass que crea las clases los elementos Categoría (tipo Content) y Libros
navegacionales, en este caso en concreto son por categoría (tipo Navigational). El lado
creadas tres clases navegacionales (Autor, Libro y derecho-superior de la figura representa un
Categoría) como puede verse la figura 5. TraceLink formado por el nombre de la regla
Previamente fue creada una C-Collection con su QVT ejecutada (Navigation2NavClass). Por
respectiva asociación estereotipada como último, el lado inferior-derecho de la figura
TransversalLink (entre las clases del modelo de (TraceModelRef2) representa la correspondencia
navegación) como resultado de la ejecución de la de las referencias de los elementos del modelo de
funcion createMenu, definida en la cláusula when navegación (ElementRef: Clase Categoría) con
de la regla Navigation2NavClass. los elementos correspondientes en el modelo de
En este ejemplo en particular, las reglas de requisitos (ElementRef: Categoría y Libros por
transformación restantes categoría). En la figura 7 puede verse la
(Personalization2NavClass, trazabilidad requisitos-navegación. En este
Navigation2TransversalLink, particular caso, la regla QVT busca el patrón
Service2ServiceLink) no aplican, es decir no existe requisito de contenido (Content) unido con un
en este ejemplo los requisitos que las satisfacen. requisito de navegación (Navigational) para crear
De igual forma que en la obtención del una clase de navegación en el modelo de
modelo de trazabilidad correspondiente al modelo navegación.
de dominio, las transformaciones anteriores son

Figura 7. Modelo de trazabilidad requisitos-navegación (extracto).

ISSN 1988–3455 SISTEDES 2010 153


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

sustentado en paliar las carencias explicadas en


4. Conclusiones y trabajo futuro secciones anteriores sobre trazabilidad entre los
modelos de requisitos, dominio y navegación.
En este artículo se presenta una propuesta para Finalmente, la propuesta actual solamente
soportar la trazabilidad de requisitos (CIM-PIM y permite visualizar las partes que son afectadas a
PIM-CIM) para los modelos conceptuales raíz de las modificaciones en los modelos (análisis
derivados del modelo de requisitos en A-OOH de impacto). En vista de lo anterior, nuestro
utilizando modelos weaving. trabajo futuro consistirá en aplicar sincronización
Nuestra propuesta ha sido implementada entre los modelos. Para un mejor entendimiento, si
utilizando un conjunto de tecnologías entre las un modelo es modificado, reflejar automática o
cuales destacan: la plataforma Eclipse, utilizado semi-automáticamente los cambios en los modelos
como ambiente de desarrollo y EMF (Eclipse afectados. En razón de lo expuesto, la idea
Modelling Framework) empleado para la planteada en este párrafo es una carencia
implementación de los metamodelos. Las importante a resolver en un proceso MDWE.
transformaciones han sido modeladas utilizando
QVT para mejorar la comprensión del proceso de Agradecimientos
transformación, sin embargo, una vez que las
transformaciones han sido modeladas necesitan Este trabajo es apoyado por el proyecto
ser implementadas. Para lograr esto, se ha QUASIMODO (PAC08-0157-0668) del
utilizado ATL (Atlas Transformation Language) Ministerio Regional de Educación y Ciencia de
[15] como lenguaje para implementar las Castilla-La Mancha. José Alfonso Aguilar
transformaciones descritas anteriormente y de esta Calderón es subvencionado por el Programa de
manera llevar cabo el proceso de normalización de Formación de Recursos Humanos en Áreas
forma automática. Utilizar ATL para implementar Estratégicas de la Universidad Autónoma de
transformaciones QVT es factible debido a que Sinaloa, México y por el Consejo Nacional de
ATL y QVT están alineados [16]. Finalmente, la Ciencia y Tecnología (CONACYT), México.
herramienta AMW (Atlas Model Weaver) [5] se
utilizo para visualizar el modelo de weaving para Referencias
trazabilidad, con esto es posible visualizar el
impacto del cambio en un modelo conceptual [1] Aguilar, J. A., Garrigos, I., Mazon, J.-N. and
derivado de la modificación de un requisito o Trujillo, J. Web Engineering Approaches
viceversa. For Requirement Analysis - A Systematic
En concreto, nuestra propuesta ofrece una Literature Review. in 6th Web Information
solución a la (i) carencia de aproximaciones Systems and Technologies (WEBIST).
metodológicas que cubran la construcción de 2010. Valencia, Spain.
modelos de diseño mediante la especificación de [2] Aizenbud-Reshef, N., Nolan, B., Rubin, J.
requisitos considerando las metas y necesidades and Shaham-Gafni, Y., Model traceability.
de los actores del sistema (por medio del perfil IBM Systems Journal, 2006. 45(3): p. 515-
UML para aplicar i* en Web), (ii) trazabilidad de 526.
requisitos entre modelos conceptuales (mediante [3] Barbero, M., Del Fabro, M. and Bézivin, J.
la aplicación de modelos weaving) y (iii) carencia
Traceability and provenance issues in global
en herramientas de soporte (con nuestra propuesta model management. in 3rd Proceedings of
constituida en la plataforma Eclipse). the European Conference on MDA
Actualmente, se está trabajando en Traceability Workshop. 2007. Haifa, Israel
complementar la propuesta presentada con la
[4] Czarnecki, K. and Helsen, S. Classification
adición de la derivación de los modelos of model transformation approaches. in
conceptuales de personalización y de usuario en OOPSLA'03 Workshop on the Generative
A-OOH. Techniques in the Context Of Model-Driven
Como trabajo futuro se pretende aportar
Architecture. 2003. Anaheim, California,
trazabilidad horizontal (PIM-PIM), es decir, entre USA.
los modelos de dominio y navegación, lo anterior

ISSN 1988–3455 SISTEDES 2010 154


Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, 2010

[5] Del Fabro, M., Bézivin, J. and Valduriez, P. tool. Science of Computer Programming,
Weaving Models with the Eclipse AMW 2008. 72(1-2): p. 31-39.
plugin. in Eclipse Modeling Symposium, [16] Jouault, F. and Kurtev, I. On the
Eclipse Summit Europe. 2006. Esslingen, architectural alignment of ATL and QVT. In
Germany. Proceedings of the Proceedings of the 2006
[6] Drivalos, N., Paige, R., Fernandes, K. and ACM symposium on Applied computing
Kolovos, D. Towards rigorously defined (Dijon, France, 2006). ACM.
model-to-model traceability. in Proc. 4th [17] Molina, F., Pardillo, J. and Toval, A.,
Workshop on Traceability, ECMDA’08. Modelling web-based systems requirements
2008. Berlin, Germany. using WRM. Web Information Systems
[7] Escalona, M. and Koch, N., Requirements Engineering–WISE 2008 Workshops, 2008.
engineering for Web Applications: a p. 122-131.
comparative study. Journal of Web [18] Molina, F. and Toval, A., Integrating
Engineering, 2004. 2: p. 193-212. usability requirements that can be evaluated
[8] Escalona, M. J. and Koch, N. Metamodeling in design time into Model Driven
the Requirements of Web Systems. In Engineering of Web Information Systems.
Proceedings of the Web Information Advances in Engineering Software, 2009.
Systems and Technologies (Setubal, 40(12): p. 1306-1317.
Portugal, 2006). Lecture Notes in Business [19] Nicolás, J. and Toval, A., On the generation
Information Processing. of requirements specifications from software
[9] France, R. and Rumpe, B. Model-driven engineering models: A systematic literature
Development of Complex Software: A review. Information and Software
Research Roadmap. In Proceedings of the Technologies, 2009. 51(9): p. 1291-1307.
29th Int. Conference on Software [20] Vara, J., De Castro, M., Del Fabro, M. and
Engineering (ICSE) (Minneapolis, USA, Marcos, E. Using Weaving Models to
2007). IEEE. automate Model-Driven Web Engineering
[10] Garrigós, I.; A-OOH: Extending Web proposals. in Workshop of XIII Jornadas de
Application Design with Dynamic Ingeniería del Software y Bases de Datos
Personalization. 2008.PhD. Dept. Software (JISBD). 2008. Gijon, Spain.
and Computing Systems. University of [21] Yu, E.; Modelling strategic relationships for
Alicante. Alicante, Spain. process reengineering. 1995.PhD.
[11] Garrigós, I. and Gómez, J. Modeling user University of Toronto. Toronto, Canada.
behaviour aware websites with PRML. in [22] Yu, E. Towards modelling and reasoning
Web Information Systems Modeling support for early-phaserequirements
(WISM). 2006. Luxemburg, Germany. engineering. in Requirements Engineering
[12] Garrigós, I., Mazón, J.-N. and Trujillo, J. A (RE). 1997. Washington D.C., USA.
Requirement Analysis Approach for Using
i* in Web Engineering. In Proceedings of
the 9th International Conference on Web
Engineering (San Sebastian, Spain, 2009).
[13] Gotel, O. C. and Finkelstein, C. W. An
analysis of the requirements traceability
problem. in Proceedings of the First
International Conference on Requirements
Engineering. 1994.
[14] Jouault, F. Loosely coupled traceability for
atl. in European Conference on Model
Driven Architecture (ECMDA) workshop
on traceability. 2005. Nuremberg, Germany.
[15] Jouault, F., Allilaire, F., Bézivin, J. and
Kurtev, I., ATL: A model transformation

ISSN 1988–3455 SISTEDES 2010 155

View publication stats

You might also like