<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Resolving Model Inconsistencies with Automated Planning</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jorge Pinna Puissant, Tom Mens</string-name>
          <email>tom.mens}@umons.ac.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ragnhild Van Der Straeten</string-name>
          <email>rvdstrae@vub.ac.be</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Université de Mons</institution>
          ,
          <addr-line>20 Place du Parc, 7000 Mons, Belgique, {jorge.pinnapuissant</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Vrije Universiteit Brussel</institution>
          ,
          <addr-line>1050 Brussel, Belgium</addr-line>
          ,
          <institution>Université Libre de Bruxelles</institution>
          ,
          <addr-line>1050 Bruxelles</addr-line>
          ,
          <country country="BE">Belgique</country>
        </aff>
      </contrib-group>
      <fpage>8</fpage>
      <lpage>14</lpage>
      <abstract>
        <p>Various approaches have been explored to detect and resolve software model inconsistencies in a generic and scalable way. In this position paper, we outline our research that aims to use the technique of automated planning for the purpose of resolving model inconsistencies. We discuss the scalability results of the approach obtained through several stress-tests and we propose several alternatives to the automated planning approach.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;inconsistency resolution</kwd>
        <kwd>UML models</kwd>
        <kwd>automated planning</kwd>
        <kwd>scalability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In this article we give an overview of di erent automated
planning techniques (Section 3). Based on a simple case
study (Section 4.1) we present an approach using a
forwardchaining heuristic planner to resolve inconsistencies
(Section 4.2). One of our requirements is that the time required
for resolving inconsistencies has to be su ciently small so
as not to disturb the designer in his/her work. Therefore,
we investigate the scalability of the approach to larger
software models (Section 4.3). Based on these results we discuss
ways to improve the scalability of the proposed technique
(Section 4.4). We also discuss alternatives to automated
planning that may be more appropriate (Section 5).</p>
    </sec>
    <sec id="sec-2">
      <title>2. PROBLEM STATEMENT</title>
      <p>
        State-of-the-art approaches on inconsistency resolution
exhibit several problems. In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], resolution rules are speci ed
manually, which is an error-prone process. Automatic
generation of inconsistency resolution actions would resolve this
problem. This is what is done by Nentwich et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], by
generating resolution actions automatically from the
inconsistency detection rules. The execution of these rules, however,
only resolves one inconsistency at a time. As recognised by
the authors, this may cause problems when inconsistencies
and their resolution are interdependent [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. An additional
problem is the interaction of the resolutions with the
syntactical constraints imposed by the modelling language. Xiong
et al. [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] de ne a language in which it is possible to
specify the inconsistency rule and the possibilities to resolve the
inconsistencies. This requires inconsistency rules to be
annotated with resolution information. Almeida da Silva et
al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] propose an approach to generate resolution plans for
inconsistent models. The approach is based on the
extension of inconsistency detection rules with information about
the causes of the inconsistency, and on the use of
generator functions, which are manually written and are used to
generate resolution actions. Instead of explicitly de ning or
generating resolution rules, a set of models satisfying a set
of consistency rules can be generated and presented to the
user. Egyed et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] de ne such an approach for
resolving inconsistencies in UML models. Given an inconsistency
and using choice generation functions, possible resolution
choices, i.e., possible consistent models, are generated. The
choice generation functions are dependent on the modelling
language, i.e., they take into account the syntactical
constraints of the modelling language and they only consider
the impact of one consistency rule at a time. Furthermore
these choice generation functions need to be implemented
manually.
      </p>
      <p>Our aim is to tackle the problem of inconsistency resolution
by generating possible resolution plans without the need of
manually writing resolution rules or writing any procedures
that generate choices. The approach needs to generate valid
models with respect to the modelling language and needs to
enable the resolution of multiple inconsistencies at once and
to perform the resolution in a reasonable time. In addition,
the approach needs to be generic, i.e. it needs to be easy to
apply it to di erent modelling languages. In this article we
investigate the use of Automated Planning for this purpose.</p>
    </sec>
    <sec id="sec-3">
      <title>3. PLANNING TECHNIQUES</title>
      <p>Automated planning is a technique coming from arti cial
intelligence research. It aims to create plans, which are
sequences of primitive actions that lead from an initial state
to a state meeting a speci c prede ned goal. To accomplish
this, the planner decomposes the world into logical
conditions and represents a state as a conjunction of literals. As
input the planner needs a planning environment, composed
of an initial state, a desired goal and a set of primitive
actions that can be performed. The initial state represents
the current state of the world. The goal is a partially
speci ed state that describes the world that we would like to
obtain. The actions express how each element of a state can
be changed. The actions are composed of a precondition and
an e ect. The e ect of an action is executed if and only if
the precondition is satis ed.</p>
      <p>
        Classical planning is an automated planning subset that aim
to nd a sequence of actions that reaches a desired state
in a nite, static, deterministic and fully observable world.
In general a planning approach consists of a representation
language used to describe the problem and an algorithm
representing the mechanism to solve the problem.
Fikes et al [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] developed, in 1971, a formal planning
representation language called STRIPS (STanford Research
Institute Problem Solver ). In 1989, Pednault [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] developed
a more advanced and expressive language called ADL
(Action Description Language, not to be confused with
Architecture Description Language). ADL has an improved
expressiveness compared to STRIPS. In particular, ADL
applies the open world principle: unspeci ed literals are
considered as unknown instead of being assumed false. ADL
also allows to use negative literals and disjunction, whereas
STRIPS only allows positive literals and conjunctions. In
recent years a standard PDDL (Planning Domain De
nition Language) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] has been developed for the International
Planning Competition (IPC) of the International Conference
on Arti cial Intelligence Planning and Scheduling (ICAPS).
PDDL is a generic language allowing to represent the syntax
of STRIPS, ADL and other languages. Even if PDDL
covers all the functionalities of these languages, the majority of
planners only implement the STRIPS subset [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The most
recent version of PDDL is version 3.0 [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This language
is used in the competition to compare the benchmarks of
di erent planning approaches [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>
        Two main approaches exist to solve classical planning
problems [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]: (1) translating the planning problem into a
problem that can be solved by a di erent approach (e.g. a
boolean satis ability problem, a constraint satisfaction
problem, or a model checking problem); (2) generating a search
space (which can be either a state space, a plan space, or a
planning graph) and looking for a solution plan in this space.
We will focus on this second approach only. Depending on
the direction in which the state space is traversed to look
for a solution, we can distinguish between:
Progression planning is a forward search that starts in the
initial state and tries to nd a sequence of actions that
reaches a goal state. The problem of this algorithm is that it
does not exclude irrelevant actions. An action is considered
relevant if it can achieve the goal or one of the conjuncts of
the goal.
      </p>
      <p>
        Regression planning is a backward state-space search that
starts in the goal state and searches a sequence of actions
that reach the initial state. This algorithm avoids the
problems of the previous one by working only with relevant
actions. The problem of this algorithm is that it is not always
obvious to nd a possible predecessor of an action.
Another distinction can be made between total-order and
partial-order planning. With the former approach, the set
of actions that composes the strategy found by the
algorithm is strictly linear and ordered from the initial state to
the goal. This category of algorithms cannot execute
different actions simultaneously and cannot take advantage of
the subdivision of a goal. Instead, partial-order planning
(POP) explores the plan-space without committing to a
totally ordered sequence of actions. POP works back from the
goal to the initial state and it can place two actions into a
strategy without specifying which comes rst. As a result,
these actions can be executed in parallel and their order is
unimportant because they achieve di erent sub-divisions of
the goal [
        <xref ref-type="bibr" rid="ref22 ref23">22, 23</xref>
        ]. Neither total-order nor partial-order is
efcient without a good heuristic function that estimates the
distance from a state to the goal.
      </p>
      <p>
        Many planners exist that implement some variant of a
planner algorithm. In this article we use the heuristic state-space
progression planner called FF (for \Fast-Forward Planning
System" [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ]). It is considered by [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] as the \The most
successful state-space searcher", and was awarded for
Outstanding Performance at the AIPS 2000 planning
competition and Top Performer at the AIPS 2002 planning
competition. FF has been chosen not only because of its
performance, but also because it uses PDDL language with full
ADL subset support, including positive and negative
literals, conjunction and disjunction, negation, typing, and logic
quanti cation in the desired goal. This is crucial to our
approach, as will be explained in the next section.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. AUTOMATED PLANNING IN ACTION</title>
    </sec>
    <sec id="sec-5">
      <title>4.1 Case Study</title>
      <p>
        Design models can be of di erent types (e.g. UML, Petri
nets, feature models, business process models). In this
article we restrict ourselves to UML class diagrams [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. They
can su er from many kinds of inconsistencies, such as
structural and behavioural inconsistencies. Figure 1 illustrates a
simple class diagram containing two structural inconsistency
occurrences of type \inherited cyclic composition" and two
occurrences of type \cyclic inheritance" [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>An inherited cyclic composition inconsistency arises when
a composition relationship and an inheritance chain form a
cycle that would produce an in nite containment of objects
upon instantiation. Both occurrences, ICC1 and ICC2, of
this inconsistency in Figure 1 arise with the same
composition relationship, between Vehicle and Amphibious
Vehicle, but with di erent inheritance chains. The rst
occurrence ICC1 appears in the inheritance chain Vehicle Boat</p>
      <p>Amphibious Vehicle. The second inconsistency ICC2
occurs in the inheritance chain Vehicle Car Amphibious
Vehicle. A cyclic inheritance inconsistency arises when an
inheritance chain forms a cycle. Figure 1 has two
occur</p>
      <p>
        Vehicle
rences CI1 and CI2 of this type of inconsistency. The rst
occurrence CI1 forms an inheritance cycle that involves the
classes Vehicle, Boat and Amphibious Vehicle. The
second occurrence CI2 forms an inheritance cycle that involves
the classes Vehicle, Car and Amphibious Vehicle.
All four aforementioned inconsistency occurrences share two
of the three classes that compose their respective
inheritance chains: Vehicle and Amphibious Vehicle. Because
of this overlap, it is possible to resolve more than one
inconsistency occurrence with the same resolution action. For
example, removing the composition relationship between
Vehicle and Amphibious Vehicle solves the two inconsistency
occurrences ICC1 and ICC2. Removing the inheritance
relationship between Boat and Amphibious Vehicle solves the
two inconsistency occurrences ICC1 and CI1. This clearly
illustrates that, in order to resolve model inconsistencies in
an optimal way, it is important to consider all
inconsistencies simultaneously. In [
        <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
        ], the impact of
dependencies between model inconsistencies and their resolution
actions were studied using the notion of critical pair analysis
of graph transformation rules.
      </p>
    </sec>
    <sec id="sec-6">
      <title>4.2 Planning for Inconsistency Resolution</title>
      <p>
        Using the example of Figure 1, we illustrate how to
create a sequence of inconsistency resolution actions with
automated planning. We require as input an initial state (the
inconsistent model), a set of possible actions (that change
the model) and a desired goal (the consistent model).
Planning requires logic conditions as input, so the whole model
environment (e.g. model, meta-model, detection rules) is
translated into a conjunction of logic literals. The syntax of
PDDL is Lisp-like. Each logic literal is a tuple represented
between parentheses. The tuple starts with the name of
the literal, followed by pairs of variable names and their
type (separated by a \{"). There are no primitive types in
PDDL. More information about the PDDL syntax can be
found in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>The initial state is expressed as a conjunction of literals,
and represents the current world. In our case the initial state
will be the inconsistent model. We can choose between three
di erent representations of this initial state: (1) using the
complete model; (2) using a partial model that contains only
those elements that are involved in one or more inconsistency
occurrences; (3) using a partial model that contains only
those elements that are involved in a single inconsistency
occurrence. We exclude option (3) as it only allows us to
solve one inconsistency at a time, and it does not take into
account any dependency between inconsistency occurrences
or their resolution actions.</p>
      <p>The metamodel for our class diagram is given below using
PDDL syntax. Each metamodel element is represented by
a unique id through which it can be referred.
(Class ?id - class_id ?name - String)
(Generalisation ?id - g_id ?label - String</p>
      <p>
        ?child_class - class_id ?parent_class - class_id)
(Association_End ?id - ae_id ?class - class_id ?role - String
?upper_mult - Cardinal ?lower_mult - Cardinal
?composite - Boolean)
(Association ?id - a_id ?name - String ?ass_end_1 - ae_id
?ass_end_2 - ae_id)
A partial model conforming to this metamodel is given
below. It contains only the elements that are involved in the
inconsistency occurrences. This is illustrated by the shaded
part of Figure 1.
(Class c1 Vehicle)
(Class c5 Boat)
(Class c6 Car)
(Class c9 Amphibious_Vehicle)
(Generalisation g4 label4 c5 c1)
(Generalisation g5 label5 c6 c1)
(Generalisation g8 label8 c9 c5)
(Generalisation g9 label9 c9 c6)
(Generalisation g10 label10 c1 c9)
(Association_End ae1 c9 role1 star one non)
(Association_End ae2 c1 role2 one one yes)
(Association a1 ass1 ae1 ae2)
The set of actions that can be performed to change a model
are represented in terms of a precondition that must hold
before the execution and the action to execute. In our
approach, inspired by [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], the set of actions corresponds to the
elementary operations (basically, create, modify and delete)
of the di erent types of model elements that can be derived
from the metamodel. These elementary operations,
combined with the logic literals of the metamodel, allow us to
compute the list of all possible actions. As an example, the
speci cation of modify_Association_Name is given below.
(:action modify_Association_Name
:parameters (?id - id ?name - String ?ass_end_1 - ae_id
?ass_end_2 - ae_id ?new_name - String)
:precondition (Association ?id ?name ?ass_end_1 ?ass_end_2)
:effect (when (not (= ?name ?new_name))
(and (not (Association ?id ?name ?ass_end_1 ?ass_end_2))
(Association ?id ?new_name ?ass_end_1 ?ass_end_2)))
)
The desired goal is a partially speci ed state, represented
as a conjunction of literals using logic quanti cation. It
speci es the objective that we want to reach, namely a consistent
model. To represent this consistent model we can use two
alternatives: (1) the negation of the inconsistency detection
rules; (2) or the negation of the inconsistency occurrences.
An inconsistency detection rule is a conjunction of literals
representing a pattern that, if matched in the model, detects
inconsistency occurrences.
      </p>
      <p>The inherited cyclic composition inconsistency detection rule
using the PDDL syntax is given bellow. Observe that it only
speci es an inheritance chain involving three classes. PDDL
syntax does not allow to express transitive closure to make
the rule more generic.
(exists (?a - class_id ?b - class_id
(and
(exists (?g - g_id ?Label - g_label)</p>
      <p>(Generalisation ?g ?Label ?c ?a))
(exists (?g - g_id ?Label - g_label)
(Generalisation ?g ?Label ?b ?c))
?c - class_id)
(exists (?ae - ae_id ?role - ae_role</p>
      <p>?upper - upper_cardinal ?lower - lower_cardinal)
(Association_End ?ae ?a ?role ?upper ?lower yes))
(exists (?ae - ae_id ?role - ae_role
?upper - upper_cardinal ?composite - boolean)
(Association_End ?ae ?b ?role ?upper one_l ?composite))
))
The advantage of using alternative (1) above is that it can
be used to detect and resolve inconsistency occurrences at
the same time. Alternative (2) will only be able to resolve
inconsistency occurrences that have already been identi ed
previously. On the other hand, as we will see later,
alternative (1) su ers from severe scalability problems. In both
alternatives we use logic negation to express the fact that
we do not want inconsistencies in the model. Because
negation of the conjunction of literals is used we need a planning
approach that allows the use of disjunction and negative
literals in the goal. This is one of the main reasons why we
have selected FF as a planning tool for our experiments.
The plan is a sequence of actions that reaches the desired
goal. It is generated automatically by the domain
independent planning algorithm. A complete resolution plan that
solves the four inconsistency occurrences of the motivating
example is shown in Figure 2. Remark that our approach
prohibits the generation of a resolution plan that leads to
ill-formed models (i.e., models that do not conform to their
metamodel).
delete_Generalisation :</p>
      <p>(Generalisation g10 label10 c1 c9)
modify_Association_End_Lower_Multiplicity :
from: (Association_End ae1 c9 role1 star one non)
to: (Association_End ae1 c9 role1 star zero non)</p>
    </sec>
    <sec id="sec-7">
      <title>4.3 Scalability Study</title>
      <p>There are di erent ways in which to specify the input for the
automated planning algorithm. To specify the initial state,
we can either use the complete model or we can restrict the
search space by using a partial model that contains only
those elements that are involved in the inconsistency
occurrences. To specify the desired goal, we can choose between
using the negation of the inconsistency detection rules or
using the negation of the inconsistency occurrences
themselves.</p>
      <p>In order to assess which of the above four choices produces
the best results, we compared the timing results of each
considered possibility. In order to remove noise, each
experiment was executed 10 times and the average time and
standard deviation was computed. All experiments were
carried out on a 64-bit Apple MacBook with 2.4 GHz Intel
Core 2 Duo processor and 4GB RAM, 2.9GB of which were
available for the experiment.</p>
      <p>The experiments using the complete model as initial state
and the negation of the inconsistency detection rules as
desired goal and using the partial model as initial state and
the negation of the inconsistency detection rules as desired
goal, ran out of memory. Using the complete model as
initial state and the negation of the inconsistency occurrences
as desired goal, the resolution plan of Figure 2 was
generated in 14.84 seconds on average with a very low standard
deviation of 0.09 seconds. Using a partial model as initial
state, and the negation of the inconsistency occurrences as
desired goal, the resolution plan of Figure 2 was generated
in 0.268 seconds on average, with a standard deviation of
0.004 seconds.</p>
      <p>To verify whether the proposed approach scales up to larger
models, we have stress-tested both of the successful
experiments (using the negation of the inconsistency occurrences
as desired goal). Again each experiment was executed 10
times and the average time and standard deviation was
computed.</p>
      <p>First, we arti cially augmented the size of the motivating
example of Figure 1 by adding an increasing number of
isolated classes to the model (from 1 class to 20 classes). Since
these classes are unrelated to the inconsistency occurrences
that the algorithm needs to resolve, the algorithm is still
able to nd the same resolution plan and the partial model
is left untouched. However, the time it takes to generate a
plan increases as the model size increases.</p>
      <p>Figure 3a illustrates the timing results if we use the
complete model as initial state. It takes only 15 seconds for
our initial example, but it takes more than 5 hours for the
model with 20 more added classes. A regression analysis
reveals an exponential relation with coe cient of
determination R2 = 0:982, indicating a very good t of the regression
model. Two other candidate regression models we veri ed
had a lower goodness of t: 0.977 for a quadratic polynomial
model and 0.884 for a power curve. These results show that
using a complete model as initial state does not scale up to
larger models.</p>
      <p>Secondly we studied the timing results when the size of the
partial model increases. The motivating example of Figure 1
contains an inheritance chain of classes for the two types of
considered inconsistencies. We arti cially augmented the
size of the model by increasing the length of the inheritance
chains involved in the inconsistency occurrences. We did
this gradually, by adding between one and eight
intermediate superclasses, and computing the timing results for each
partial model.</p>
      <p>Figure 3b shows the timing results of carrying out this
experiment. The gure shows a strong increase in time to compute
the resolution plan as the size of the partial model increases.
The standard deviation was always below 2%, and less than
0.4% on average. A regression analysis reveals an
exponential growth (with coe cient of determination R2 = 0:995) in
the time needed to nd a resolution plan. Two other
regression models we veri ed had a lower goodness of t: 0:927 for
a quadratic polynomial model and 0:949 for a power curve.
We also veri ed whether the number of inconsistency
occurrences to be resolved a ected the timing results. To achieve
this, we reduced the desired goal by generating plans that
resolve only 2 or 3 inconsistency occurrences, respectively.
In all of these cases we found an exponential growth in time.
We obtained a goodness of t R2 = 0:991 for resolving 2
inconsistency occurrences, and R2 = 0:992 for resolving 3</p>
      <p>Avg</p>
      <p>Std
R! = 0.9939
0.269
0.278
0.300
0.315
0.350
0.3288
0.442
0.518
0.611
0.711
0.852
1.001
1.180
1.398
1.628
1.945
2.273
2.643
3.057
3.528
0.267
0.279
0.295
0.313
0.348
03.390
0.444
0.532
0.605
0.711
0.851
0.997
1.180
1.398
1.639
1.950
2.272
2.631
3.057
3.540</p>
      <p>Avg
) 4
s
(
e250
m
i
T
125
3
2
0
0
4
3
2
1
0
inconsistency occurrences.</p>
      <p>Finally, we veri ed whether the size of the metamodel a ects
the timing results. To achieve this, we added a new element
to the metamodel:
(Attribute ?id - attribute_id ?class - class_id
?Name - String ?Type - Type)
This requires to add three new actions, to create, modify and
delete attributes, respectively. It did not a ect the timing
results as long as attributes are not used in the initial state
and the desired goal.
power model with R
regression analysis revealed a quadratic polynomial with a
goodness of t R</p>
      <p>= 0:994. Two other regression models we
veri ed were an exponential model with R
= 0:982 and a
2
4.4</p>
    </sec>
    <sec id="sec-8">
      <title>Discussion</title>
      <p>The exponential timing results obtained through the
experiments described in the previous section, indicate that the
approach is not usable in practice. Using the approach to
resolve inconsistencies one by one would be feasible because
the partial model and desired goal will remain relatively
small. This is not a good solution, because it does not take
full advantage of automated planning. In addition,
inconsistency occurrences and their resolution actions are often
interdependent. Another important limitation we
encountered is the expressiveness of the PDDL syntax. It does not
o er important features such as transitive closure, primitive
types, numbers. In addition, literals cannot be modi ed
(they have to be deleted and added again). A third
limitation of our approach is that, currently, we generate only a
single resolution plan. The resolution of several
inconsistencies can give rise to several di erent resolution plans, i.e.,
di erent sequences of resolution actions leading to possibly
di erent consistent models.</p>
      <p>Several improvements to the approach can be envisaged. A
rst improvement is to adapt the planning algorithm so that
it generates several resolution plans among which the model
designer could choose.</p>
      <p>
        The scalability problem could be
adressed by implementing a domain-speci c planner that
can be optimized by making it more speci c and more
performant for the speci c problem we want to tackle. In
addition, since we are not constrained by the PDDL syntax, this
would solve the problems of expressiveness we encountered.
The timing results could be improved by using regression
planning as opposed to progression planning [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], as used
by FF. Progression planning depends mainly on the size of
the initial state and it does not exclude irrelevant actions.
Regression planning works only with relevant actions.
Because of this, the search space will be signi cantly smaller.
Further experiments are needed to verify whether regression
planning will be more appropriate for our needs.
      </p>
    </sec>
    <sec id="sec-9">
      <title>5. BEYOND PLANNING</title>
      <p>Since the automated planning approach does not meet our
expectations, we would also like to study other techniques
coming from the domain of arti cial intelligence for the
purpose of resolving modeling inconsistencies in an automated
way.</p>
      <p>
        Logic-based approaches have been used for di erent but
related purposes in inconsistency resolution. Marcelloni and
Akist [
        <xref ref-type="bibr" rid="ref15 ref16">15, 16</xref>
        ] used fuzzy logic to cope with
methodological inconsistencies in design models. It remains to be seen
whether this approach can be generalised to resolve any kind
of model inconsistency. Castro et. al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] used logic abduction
to detect and resolve inconsistencies in source code. Some
preliminary results we carried out to apply this approach to
resolve inconsistencies in design models appeared promising,
but further work is necessary to assess whether the approach
scales up and works in practice. Almeida da Silva et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
implemented a Prolog program to generate resolution plans
for inconsistent models. The approach is promising but still
requires a lot of manual encoded input to specify the
generator functions and the causes of the inconsistencies.
Harman [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] advocates the use of search-based approaches
in software engineering. This includes a wide variety of
di erent techniques and approaches such as metaheuristics
(e.g. variable neighborhood search [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]), local search
algorithms, automated learning, genetic algorithms [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. We
believe that these techniques could be applied to the problem
of model inconsistency management, because it satis es at
least three important properties that motivate the need for
search-based software engineering: the presence of a large
search space, the need for algorithms with a low
computational complexity, and the absence of known optimal
solutions.
      </p>
      <p>In order to assess the adequacy of all these di erent
approaches to inconsistency management, there is also an
urgent need to de ne benchmarks allowing to compare them.
Such a benchmark should contain at least a set of shared
case studies on which to evaluate each approach; as well as
a set of clearly identi ed criteria enabling the comparison of
approaches and their quality.</p>
    </sec>
    <sec id="sec-10">
      <title>6. CONCLUSION</title>
      <p>In this article, we explored the use of automated planning, a
logic-based approach originating from arti cial intelligence,
for the purpose of resolving model inconsistencies. We are
not aware of any other work having used this technique for
this particular purpose. The results of our experiments
reveal that the approach is feasible but su ers from various
scalability problems. We have discussed ways in which the
scalability can be improved. We have also discussed
alternative search-based techniques that may deal with
inconsistency resolution in a scalable way.</p>
      <p>Acknowledgements. This work has been partially supported by (i)
the F.R.S. { FNRS through FRFC project 2.4515.09 \Research
Center on Software Adaptability"; (ii) research project
AUWB-08/12UMH \Model-Driven Software Evolution", an Action de Recherche
Concertee nanced by the Ministere de la Communaute francaise
- Direction generale de l'Enseignement non obligatoire et de la
Recherche scienti que, Belgium; (iii) Avec le soutien de Wallonie
- Bruxelles International et du Fonds de la Recherche Scienti que, du
Ministere Francais des A aires etrangeres et europeennes, du
Ministere de l'Enseignement superieur et de la Recherche dans le cadre
des Partenariats Hubert Curien.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Almeida da Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mougenot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Blanc</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bendraou</surname>
          </string-name>
          .
          <article-title>Towards automated inconsistency handling in design models</article-title>
          .
          <source>In CAiSE 2010, Lecture Notes in Computer Science</source>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>X.</given-names>
            <surname>Blanc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mougenot</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Mounier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          .
          <article-title>Detecting model inconsistency through operation-based model construction</article-title>
          .
          <source>In Proc. Int'l Conf. Software Engineering (ICSE)</source>
          , volume
          <volume>1</volume>
          , pages
          <fpage>511</fpage>
          {
          <fpage>520</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Brownlee</surname>
          </string-name>
          .
          <article-title>Variable neighbourhood search</article-title>
          .
          <source>Technical Report CA-TR-20100206-1</source>
          ,
          <string-name>
            <given-names>The</given-names>
            <surname>Clever</surname>
          </string-name>
          Algorithms Project http://www.CleverAlgorithms.com,
          <year>February 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Caporossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Hansen</surname>
          </string-name>
          .
          <article-title>Variable Neighborhood Search for Extremal Graphs 1. The AutoGraphiX System</article-title>
          . Discrete Math.,
          <volume>212</volume>
          :
          <fpage>29</fpage>
          {
          <fpage>44</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Castro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Brichau</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Mens</surname>
          </string-name>
          .
          <article-title>Diagnosis and semi-automatic correction of detected design inconsistencies in source code</article-title>
          .
          <source>In IWST '09: Proceedings of the International Workshop on Smalltalk Technologies</source>
          , pages
          <volume>8</volume>
          {
          <fpage>17</fpage>
          , New York, NY, USA,
          <year>2009</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , E. Letier,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          .
          <article-title>Generating and evaluating choices for xing inconsistencies in UML design models</article-title>
          .
          <source>In Proc. Int'l Conf</source>
          .
          <source>Automated Software Engineering</source>
          , pages
          <volume>99</volume>
          {
          <fpage>108</fpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>R.</given-names>
            <surname>Fikes</surname>
          </string-name>
          and
          <string-name>
            <given-names>N. J.</given-names>
            <surname>Nilsson</surname>
          </string-name>
          . STRIPS:
          <article-title>A new approach to the application of theorem proving to problem solving</article-title>
          .
          <source>In 2nd International Joint Conference on Arti cial Intelligence</source>
          ., pages
          <volume>608</volume>
          {
          <fpage>620</fpage>
          ,
          <year>1971</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gerevini</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Long</surname>
          </string-name>
          .
          <source>BNF description of PDDL 3</source>
          .0. http://zeus.ing.unibs.it/ipc-5/,
          <year>October 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gerevini</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Long</surname>
          </string-name>
          .
          <article-title>Plan constraints and preferences in PDDL3 : The language of the fth international planning competition</article-title>
          .
          <source>Technical report</source>
          , Department of Electronics for Automation, University of Brescia, Italy,
          <year>August 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ghallab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Howe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Knoblock</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>McDermott</surname>
          </string-name>
          .
          <article-title>PDDL | the planning domain de nition language</article-title>
          .
          <source>Technical Report DCS TR-1165</source>
          ,
          <article-title>Yale Center for Computational Vision</article-title>
          and Control, New Haven, Connecticut,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          .
          <article-title>Search based software engineering</article-title>
          .
          <source>In Computational Science - ICCS</source>
          <year>2006</year>
          , volume
          <volume>3994</volume>
          /2006 of Lecture Notes in Computer Science, pages
          <volume>740</volume>
          {
          <fpage>747</fpage>
          . Springer Berlin / Heidelberg,
          <year>2006</year>
          . Workshop on Computational Science in Software Engineering (CSSE'06).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>Ho mann. FF: The Fast-Forward Planning System</article-title>
          .
          <source>The AI Magazine</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ho</surname>
          </string-name>
          mann and
          <string-name>
            <given-names>B.</given-names>
            <surname>Nebel</surname>
          </string-name>
          .
          <article-title>The FF Planning System: Fast plan generation through heuristic search</article-title>
          .
          <source>Journal of Arti cial Intelligence Research</source>
          ,
          <volume>14</volume>
          :
          <fpage>253</fpage>
          {
          <fpage>302</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S. Jimenez</given-names>
            <surname>Celorrio</surname>
          </string-name>
          .
          <article-title>Planning and Learning under Uncertainty</article-title>
          .
          <source>PhD thesis</source>
          , Universidad Carlos III de Madrid,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Marcelloni</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Aksit</surname>
          </string-name>
          .
          <article-title>Leaving inconsistency using fuzzy logic</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>43</volume>
          (
          <issue>12</issue>
          ):
          <volume>725</volume>
          {
          <fpage>741</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F.</given-names>
            <surname>Marcelloni</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Aksit</surname>
          </string-name>
          .
          <article-title>Fuzzy logic-based object-oriented methods to reduce quantization error and contextual bias problems in software development</article-title>
          .
          <source>Fuzzy Sets and Systems</source>
          ,
          <volume>145</volume>
          (
          <issue>1</issue>
          ):
          <volume>57</volume>
          {
          <fpage>80</fpage>
          ,
          <year>2004</year>
          . Computational Intelligence in Software Engineering.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. Van Der</given-names>
            <surname>Straeten</surname>
          </string-name>
          .
          <article-title>Incremental resolution of model inconsistencies</article-title>
          . In J. L. Fiadeiro and P.-Y. Schobbens, editors,
          <source>Algebraic Description Techniques</source>
          , volume
          <volume>4409</volume>
          of Lecture Notes in Computer Science, pages
          <volume>111</volume>
          {
          <fpage>127</fpage>
          . Springer-Verlag,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Van Der</given-names>
            <surname>Straeten</surname>
          </string-name>
          , and
          <string-name>
            <surname>M. D'Hondt</surname>
          </string-name>
          .
          <article-title>Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis</article-title>
          .
          <source>In Proc. Int'l Conf. Model Driven Engineering Languages and Systems (MoDELS)</source>
          , volume
          <volume>4199</volume>
          of Lecture Notes in Computer Science, pages
          <volume>200</volume>
          {
          <fpage>214</fpage>
          . Springer-Verlag,
          <year>October 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>C.</given-names>
            <surname>Nentwich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Emmerich</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          .
          <article-title>Consistency management with repair actions</article-title>
          .
          <source>In Proc. 25th Int'l Conf. Software Engineering</source>
          , pages
          <volume>455</volume>
          {
          <fpage>464</fpage>
          . IEEE Computer Society, May
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20] Object Management Group. Uni ed modeling language:
          <source>Super structure version 2</source>
          .1, january
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>E. P. D.</given-names>
            <surname>Pednault</surname>
          </string-name>
          .
          <article-title>ADL: Exploring the middle ground between STRIPS and the situation calculus</article-title>
          .
          <source>In 1st International Conference on Principles of Knowledge Representation and Reasoning (KR'89)</source>
          , pages
          <fpage>324</fpage>
          {
          <fpage>332</fpage>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Penberthy</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Weld</surname>
          </string-name>
          .
          <article-title>Ucpop: A sound, complete, partial order planner for adl</article-title>
          .
          <source>In 3rd International Conference on Principles of Knowledge Representation and Reasoning (KR'92)</source>
          , pages
          <fpage>103</fpage>
          {
          <fpage>114</fpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Russell</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Norvig</surname>
          </string-name>
          .
          <article-title>Arti cial Intelligence: A Modern Approach</article-title>
          . Prentice Hall,
          <source>2nd edition</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Guest editor's introduction: Model-driven engineering</article-title>
          . IEEE Computer, pages
          <volume>25</volume>
          {
          <fpage>31</fpage>
          ,
          <year>February 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>G.</given-names>
            <surname>Spanoudakis</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisman</surname>
          </string-name>
          .
          <article-title>Inconsistency management in software engineering: Survey and open research issues</article-title>
          .
          <source>In Handbook of Software Engineering and Knowledge Engineering</source>
          , pages
          <volume>329</volume>
          {
          <fpage>380</fpage>
          . World scienti c,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>T.</given-names>
            <surname>Stahl</surname>
          </string-name>
          and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Volter</article-title>
          .
          <source>Model Driven Software Development: Technology</source>
          , Engineering, Management. Wiley,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>R. Van Der</given-names>
            <surname>Straeten</surname>
          </string-name>
          .
          <article-title>Inconsistency management in model-driven engineering: an approach using description logics</article-title>
          .
          <source>PhD thesis</source>
          , Vrije Universiteit Brussel,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Takeichi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Mei</surname>
          </string-name>
          .
          <article-title>Supporting automatic model inconsistency xing</article-title>
          . In H. van Vliet and V. Issarny, editors,
          <source>Proc. ESEC/FSE</source>
          <year>2009</year>
          , pages
          <fpage>315</fpage>
          {
          <fpage>324</fpage>
          . ACM,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>