SlideShare a Scribd company logo
1 of 53
Download to read offline
Faculté	
  des	
  Sciences	
  




                       Tom	
  Mens	
  
In	
  collabora3on	
  with	
  J.	
  Pinna	
  Puissant,	
  
	
  R.	
  Van	
  Der	
  Straeten,	
  X.	
  Blanc	
  

                       http://www.evolumons.be
              http://informatique.umons.ac.be/genlog
CSMR	
  2010:	
  15th	
  European	
  Conference	
  on	
  
        So7ware	
  Maintenance	
  and	
  Reengineering	
  

March	
  1–4,	
  2011,	
  Oldenburg,	
  Germany	
  
www.se.uni-­‐oldenburg.de/csmr2011	
  
                                                          Commercial break
October	
  1:	
  Workshop	
  submission	
  deadline	
  
October	
  15:	
  Paper	
  abstracts	
  
October	
  22:	
  Paper	
  submission	
  deadline	
  
Main	
  challenge: 	
  
                   So7ware	
  co-­‐evolu?on  	
  
                                                                              Specifica3on	
  models	
  
1.  Need	
  to	
        slow	
  

    synchronise	
  and	
                                  Architectural	
  
                                                          descrip3ons	
  
                                                                                     Use	
  case	
  
                                                                                     diagrams	
  
                                                                                                          Requirements	
  
                                                                                                             specs	
  
    co-­‐evolve	
  
    between	
               speed	
  of	
  evolu3on	
                            Design	
  models	
  
                                                                                                  State	
  
    artefacts	
  at	
                                       Class	
  
                                                          diagrams	
  
                                                                           Sequence
                                                                           diagrams	
           machine	
  
                                                                                                                Ac3vity	
  
                                                                                                               diagrams	
  
    different	
  levels	
                                                                        diagrams	
  

    of	
  abstrac3on	
  
                                                                         Implementa3on	
  artefacts	
  
                                                                                             Produc3on	
  
                                                                         Test	
  code	
                        Data(base)	
  
                                                                                                code	
  
                           fast	
  
Main	
  challenge: 	
  
                So7ware	
  co-­‐evolu?on  	
  
2.  Need	
  to	
                               Design	
  models	
  

    synchronise	
  and	
       Class	
  diagrams	
  
                                                                      Sequence	
  
                                                                      diagrams	
  
    co-­‐evolve	
  
    between	
  
                               State	
  machine	
                      Ac3vity	
  
    artefacts	
  at	
             diagrams	
                          diagrams	
  

    same	
  level	
  of	
  
    abstrac3on	
  
Main	
  challenge: 	
  
               So7ware	
  co-­‐evolu?on  	
  
                                                               metametamodeling	
  level	
  –	
  M3	
  
3.  Need	
  to	
             slow	
  

                                                               MOF	
  
    synchronise	
  and	
  
    co-­‐evolve	
                                                  metamodeling	
  level	
  –	
  M2	
  



                              speed	
  of	
  evolu3on	
  
    between	
                                               UML	
  1.4	
            UML	
  2.0	
           UML	
  2.1	
  
    artefacts	
  at	
  
    different	
  layers	
                                                  modeling	
  level	
  -­‐	
  M1	
  
    of	
  modelling	
                                       Class	
  diagrams	
  
                                                                                            Sequence	
  
                                                                                            diagrams	
  

                                                                          Ac3vity	
                  State	
  machine	
  
                                                                         diagrams	
                     diagrams	
  
                             fast	
  
• 	
  The	
  co-­‐evolu3on	
  problem	
  arises	
  everywhere	
  
       • 	
  In	
  all	
  phases	
  of	
  the	
  so_ware	
  life-­‐cycle	
  
       • 	
  In	
  and	
  between	
  all	
  levels	
  of	
  abstrac3on	
  
       • 	
  In	
  and	
  between	
  all	
  layers	
  of	
  modelling	
  
   • 	
  We	
  need	
  generic	
  techniques	
  for	
  managing	
  co-­‐
   evolu3on	
  
    Inconsistency	
  management	
  
    Impact	
  analysis,	
  change	
  propaga3on,	
  traceability	
  
    Versioning,	
  differencing,	
  merging	
  
    Refactoring,	
  restructuring	
  
Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Research	
  context
                                              	
  

    ARC	
  Research	
  project	
  (2008-­‐2012)	
  on	
  
        Model-­‐Driven	
  So_ware	
  Evolu3on	
  


    Focus	
  on	
  different	
  techniques	
  to	
  evolve	
  so_ware	
  models	
  
        Model	
  refactoring	
  
        Model	
  inconsistency	
  management	
  


    Study	
  and	
  develop	
  tools	
  and	
  techniques	
  to	
  support	
  these	
  
     ac3vi3es	
  



Université de Mons      Tom	
  Mens,	
  21	
  september	
  2010	
  
• 	
  Introduc3on	
  to	
  model	
  inconsistency	
  
   management	
  	
  
   • 	
  Generic	
  techniques	
  for	
  managing	
  model	
  
   inconsistencies	
  
    Using	
  descrip3on	
  logics	
  
    Using	
  graph	
  transforma3on	
  
    Using	
  logic	
  programming	
  
    Using	
  automated	
  planning	
  



Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
             Mo?va?ng	
  example	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
             Mo?va?ng	
  example	
  

                                                                   ATM




                                                                   PrintingATM



Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
                 Introduc?on	
  
   Many	
  poten3al	
  sources	
  of	
  inconsistencies	
  
    Poorly	
  understood	
  models	
  
    Unclear,	
  ambiguous,	
  underspecified,	
  incomplete	
  models	
  
        due	
  to	
  poorly	
  specified	
  requirements	
  
        due	
  to	
  use	
  of	
  natural	
  language	
  
        ill-­‐specified	
  seman3cs	
  of	
  modeling	
  language	
  
    Complexity	
  of	
  models	
  with	
  many	
  interdependencies	
  
    Distributed,	
  collabora3ve,	
  parallel	
  development	
  
    Con3nuous	
  evolu3on	
  of	
  models	
  
    …	
  


Université de Mons        Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
                 Introduc?on	
  
   Many	
  different	
  types	
  of	
  inconsistencies	
  
    lexical,	
  structural	
  or	
  behavioural	
  inconsistencies	
  
    visual	
  problems	
  
    non-­‐conformance	
  to	
  standards	
  and	
  design	
  conven3ons	
  
    design	
  smells,	
  bad	
  prac3ces,	
  an3paeerns	
  
    incomplete	
  models	
  
    redundant	
  models	
  
    …	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Generic	
  techniques	
  for	
  managing	
  model	
  
   inconsistencies	
  
    Using	
  descrip?on	
  logics	
  
    Using	
  graph	
  transforma3on	
  
    Using	
  logic	
  programming	
  
    Using	
  automated	
  planning	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
       Using	
  Descrip?on	
  Logics	
  
   Ragnhild	
  Van	
  Der	
  Straeten	
  et	
  al.	
  (VUB	
  and	
  
   Umons,	
  Belgium)	
  
    PhD	
  “Inconsistency	
  management	
  in	
  model-­‐driven	
  engineering:	
  
     an	
  approach	
  using	
  descrip3on	
  logics”,	
  2005	
  
    UML	
  2003:	
  Using	
  descrip,on	
  logics	
  to	
  maintain	
  consistency	
  
     between	
  UML	
  models	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
             Tool	
  support	
  
Model	
  inconsistency	
  management	
  
   Using	
  Descrip?on	
  Logics	
  
Decidable	
  2-­‐variable	
  fragment	
  of	
  first-­‐order	
  
predicate	
  logic	
  
   –  Tool	
  support:	
  
      RACER	
  
Model	
  inconsistency	
  management	
  
       Using	
  Descrip?on	
  Logics	
  
Class diagrams!                               Sequence diagrams!
(instance atm class)!                          (define-concept m1!
(instance printingatm class)!                    (and (all op checkIfCashAvailable)!
(instance asciiprintingatm class)!                    (exactly 1 op)))!
(instance gen1 generalization)!                (define-concept m2!
(instance gen2 generalization)!                  (and (all op ejectCard)!
(instance controls association)!                      (exactly 1 op))))!
(instance atmend property)!                    (define-concept m3!
(instance asciiend property)!             Statemachine diagrams!
                                                 (and (all op dispensecash)!
(related atm gen1 generalization)!                    (exactly 1 op)))!
(related printingatm gen1 generalization)!(define-concept t1!
                                               (implies m1 (some r m2))!
(related printingatm gen2 generalization)! (and (all opm2 (some r m3))!
                                               (implies verifyAccount)!
(related asciiprintingatm gen2
                (implies m31(some r m4))!
                                                 (exactly   op)))!
  generalization)!                        (define-concept t2!
(related atm printingatm direct-superclass)!(and (all op checkIfCashAvailable)!
(related printingatm asciiprintingatm
           (exactly 1 op)))!
  direct-superclass)!                     (define-concept t3!
(related gen1 atm general)!                 (and (all op dispensecash)!
(related gen2 printingatm general)!              (exactly 1 op)))!
(related atm asciiend ownedAttribute)!    (define-concept t4!
                                            (and (all op ejectCard)!
                                                 (exactly 1 op)))!
                                          (equivalent (and (some valid_PIN) t1)

                                                      (some r t2)))!
                                          (equivalent t2 (some r t3))!
                                          (equivalent t3 (some r t4))!
Generic	
  techniques	
  for	
  managing	
  model	
  
   inconsistencies	
  
    Using	
  descrip3on	
  logics	
  
    Using	
  graph	
  transforma?on	
  
    Using	
  logic	
  programming	
  
    Using	
  automated	
  planning	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
      using	
  graph	
  transforma?on	
  
   Mens	
  et	
  al.	
  (UMONS,	
  Belgium)	
  
     WADT	
  2006:	
  Incremental	
  resolu,on	
  of	
  model	
  inconsistencies	
  
     MoDELS	
  2006:	
  Detec,ng	
  and	
  resolving	
  model	
  inconsistencies	
  using	
  transforma,on	
  
      dependency	
  analysis	
  


                        inconsistency                                      inconsistency
                        detection rules                                   resolution rules
                                         ?                                 ?

            UML
            model              detect                     select               choose               apply
                          inconsistencies            inconsistencies       inconsistency       inconsistency
                           in UML model               to be resolved     resolution strategy     resolutions



          annotate model with inconsistencies found


               modify model by selected resolution rules (may give rise to new inconsistencies)
Université de Mons         Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
      using	
  graph	
  transforma?on	
  
   Use	
  graph	
  transforma3ons	
  to	
  
    Specify	
  model	
  inconsistencies	
  
        Automate	
  the	
  detec,on	
  of	
  inconsistencies	
  
    Specify	
  inconsistency	
  resolu3on	
  rules	
  
        Interac3vely	
  support	
  the	
  resolu,on	
  of	
  inconsistencies	
  
    Formally	
  analyse	
  transforma3ons	
  rules	
  
        Detect	
  sequen,al	
  dependencies	
  and	
  parallel	
  conflicts	
  between	
  resolu3on	
  
         rules	
  
        Remove	
  redundancy	
  between	
  resolu3on	
  rules	
  
        Provide	
  “op3mal”	
  resolu3on	
  strategies	
  



Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  	
  	
  	
  	
  	
  
SIRP	
  tool	
  
    –  “Simple	
  Itera3ve	
  
       Resolu3on	
  Process”	
  
    –  An	
  interac3ve	
  tool	
  for	
  
       selec3ng	
  and	
  resolving	
  
       model	
  inconsistencies	
  
    –  Implemented	
  on	
  top	
  of	
  
       AGG	
  graph	
  
       transforma3on	
  tool	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    Before	
  detec3ng	
  any	
  inconsistency	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  detec3ng	
  all	
  inconsistencies	
  




Université de Mons    Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  resolving	
  “duplicate	
  class	
  name”	
  
        Two	
  occurrences	
  of	
  same	
  inconsistency	
  removed	
  
        Class	
  renamed	
  from	
  “A”	
  to	
  “C”	
  




Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  resolving	
  “classless	
  instance”	
  
        One	
  occurrence	
  of	
  “classless	
  instance”	
  removed	
  
        One	
  occurrence	
  of	
  “instanceless	
  class”	
  removed	
  




Université de Mons        Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  resolving	
  “abstract	
  object”	
  
        One	
  occurrence	
  of	
  “abstract	
  object”	
  removed	
  
        One	
  occurrence	
  of	
  “nameless	
  instance”	
  removed	
  
        Induced	
  inconsistency:	
  “instanceless	
  class”	
  !	
  




Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  disabling	
  the	
  “instanceless	
  class”	
  rule	
  
        Two	
  occurrences	
  of	
  “instanceless	
  class”	
  ignored	
  




Université de Mons        Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  resolving	
  “abstract	
  opera,on”	
  
        One	
  occurrence	
  of	
  “abstract	
  opera3on”	
  removed	
  




Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  resolving	
  “undefined	
  parameter	
  type”	
  
        One	
  occurrence	
  of	
  “undefined	
  parameter	
  type”	
  removed	
  




Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   SIRP	
  tool	
  in	
  ac3on	
  
    A_er	
  resolving	
  “nameless	
  instance”	
  
        One	
  occurrence	
  of	
  “nameless	
  instance”	
  removed	
  
        No	
  more	
  remaining	
  inconsistencies	
  !	
  




Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  
   We	
  used	
  AGG	
  in	
  the	
  following	
  way	
  
    specify	
  the	
  UML	
  metamodel	
  as	
  a	
  type	
  graph	
  
    specify	
  the	
  models	
  as	
  graphs	
  
    detect	
  and	
  resolve	
  model	
  inconsistencies	
  by	
  means	
  of	
  graph	
  
     transforma3on	
  rules	
  
    analyse	
  mutual	
  exclusion	
  rela3onships	
  and	
  sequen,al	
  
     dependencies	
  between	
  inconsistency	
  resolu3ons	
  by	
  means	
  of	
  
     cri3cal	
  pair	
  analysis	
  




Université de Mons     Tom	
  Mens,	
  21	
  september	
  2010	
  
Tool	
  support	
  -­‐	
  AGG	
  
Specify	
  the	
  metamodel	
  

	
  AGG	
  type	
  graph	
  
Specify	
  model	
  inconsistencies	
  	
  
   Dangling	
  opera3on	
  reference	
  
        –  Graph	
  transforma3on	
  rule	
  for	
  detec3on	
  

negative application        left-hand side                  right-hand side
condition (NAC)             (LHS)                           (RHS)
Specify	
  inconsistency	
  resolu?ons	
  
Dangling	
  opera3on	
  reference	
  
   –  Graph	
  transforma3on	
  rule	
  for	
  resolu3on	
  
Analyse	
  mutually	
  conflic?ng	
  
                  resolu?ons	
  
	
  Some	
  resolu3on	
  rules	
  cannot	
  be	
  jointly	
  applied	
  
(parallel	
  conflict!)	
  
    –  Conflict	
  graph	
  can	
  be	
  generated	
  by	
  means	
  of	
  cri3cal	
  pair	
  
       analysis	
  
Analyse	
  sequen?al	
  dependencies	
  
	
  Induced	
  inconsistencies	
  
   –  Some	
  resolu3on	
  rules	
  may	
  
      give	
  rise	
  to	
  new	
  model	
  
      inconsistencies	
  
   –  Can	
  be	
  detected	
  by	
  
      analysing	
  the	
  
      dependency	
  graph	
  
Analyse	
  sequen?al	
  dependencies	
  
Use	
  the	
  dependency	
  graph	
  to	
  detect	
  poten3al	
  cycles	
  in	
  the	
  
resolu3on	
  process	
  




Cycles	
  should	
  be	
  avoided,	
  since	
  this	
  implies	
  that	
  the	
  resolu3on	
  
process	
  may	
  con3nue	
  forever…	
  
Generic	
  techniques	
  for	
  managing	
  model	
  
   inconsistencies	
  
    Using	
  descrip3on	
  logics	
  
    Using	
  graph	
  transforma3on	
  
    Using	
  logic	
  programming	
  
    Using	
  automated	
  planning	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
       Using	
  Logic	
  Programming	
  
   Xavier	
  Blanc	
  et	
  al.	
  (LIP6,	
  Paris)	
  
   ICSE	
  2008	
  :	
  Detec,ng	
  model	
  inconsistency	
  through	
  opera,on-­‐
     based	
  model	
  construc,on.	
  
   CAiSE	
  2009	
  :	
  Incremental	
  detec,on	
  of	
  model	
  inconsistencies	
  
     based	
  on	
  model	
  opera,ons.	
  
   CAiSE	
  2010	
  :	
  Towards	
  Automated	
  Inconsistency	
  Handling	
  in	
  
     Design	
  Models.	
  
   LWI	
  2010	
  :	
  Inconsistency	
  Detec,on	
  in	
  Distributed	
  Model	
  Driven	
  
     SoHware	
  Engineering	
  Environments.	
  



Université de Mons     Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
     Using	
  Logic	
  Programming	
  
• Tool	
  architecture	
  




   • Sequence	
  builder:	
  
   Event	
  listener	
  
   integrated	
  in	
  Eclipse	
  
   EMF	
  framework	
  
   • Check	
  engine:	
  
   Implemented	
  in	
  Prolog	
  
General	
  idea	
  
   Express	
  models	
  and	
  model	
  transforma,ons	
  in	
  a	
  
   uniform	
  and	
  metamodel-­‐independent	
  way	
  
    As	
  a	
  sequence	
  of	
  elementary	
  opera3ons	
  
   Express	
  constraints	
  over	
  a	
  model	
  and	
  its	
  
   evolu3on	
  as	
  a	
  logic	
  query	
  over	
  this	
  sequence	
  
    Both	
  “structural”	
  and	
  “temporal”	
  constraints	
  can	
  be	
  expressed	
  
     in	
  this	
  way	
  
   Provide	
  efficient	
  and	
  incremental	
  tool	
  support	
  
    for	
  checking	
  inconsistencies	
  
    For	
  resolving	
  inconsistencies	
  	
  	
  

Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Praxis	
  
       an	
  opera?on-­‐based	
  representa?on	
  of	
  models	
  
                and	
  their	
  construc?on/evolu?on	
  
create(me,mc)                                               setProperty(me,p,Values)

                                                     assignment of a set of Values to property p of model
creation of a model element instance me of the meta- element me
class mc                                             Preconditions:
Preconditions:                                             –  me exists in the model
     –  me does not exist in the model                           –  me is an instance of meta-class mc
Postconditions:                                                  –  p is defined in (an ancestor of) mc
     –  me exists in the model; does not own values; does        –  p and Values have same signature
        not refer to another model element
delete(me)                                                  setReference(me,r,References)
deletion of the model element instance me
                                                            assignment of References to reference r of model
Preconditions:                                              element me
     –  me exists in the model
                                                            Preconditions:
     –  me is not referenced by another model element
                                                                 –    me exists in the model
Postconditions:                                                  –    me is an instance of meta-class mc
     –  me does not exist in the model                           –    r is defined in (an ancestor of) mc
                                                                 –    r and References have same signature
                                                                 –    All References exist in the model
Example	
  
model
                                                           metamodel




represented as

01.   create(c1,Class)!
02.   setProperty(c1,name, {‘PetStore’})!
03.   create(uc1,UseCase) !
04.   setProperty(uc1,name, {‘Buy eBasket’})) !                           representation as a
05.   create(uc2,UseCase) !
06.   setProperty(uc2,name,{‘Create eBasket’}) !                        sequence of elementary
07.   create(uc3,UseCase) !                                             construction operations
08.   setProperty(uc3,name,{‘Cancel eBasket’}) !
09.   setReference(c1,ownedUseCase,{uc1,uc2,uc3}) !
10.   create(a1,Actor) !                                               constrained by information
11.   setProperty(a1,name, {‘Customer’}) !
12.   setReference(a1, usecase, {uc1,uc2,uc3})!
                                                                           in the metamodel


Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
   Using	
  Logic	
  Programming	
  
Example	
  of	
  a	
  structural	
  inconsistency	
  
     –  an	
  actor	
  should	
  not	
  own	
  a	
  use	
  case	
  
            if a = lastCreate (me, Actor) then
              !∃ o ∈ σuc, o = lastSetReference(me,ownedUseCase, R)
                      and R ≠ ∅.

Example	
  of	
  a	
  temporal	
  inconsistency	
  
     –  Never	
  unassign	
  a	
  use	
  case	
  name	
  
            ∀ a ∈ σuc, a ≠ setProperty(me,name,{””})

     –  Assign	
  a	
  name	
  just	
  a_er	
  the	
  crea3on	
  of	
  a	
  use	
  case	
  
            ∀ a ∈ σuc, if a = create(me,UseCase) then
               ∃ c ∈ σ, c = setProperty(me,name, NameVal)
                        and b ∈ σ, a <σ b <σ c
Generic	
  techniques	
  for	
  managing	
  model	
  
   inconsistencies	
  
    Using	
  descrip3on	
  logics	
  
    Using	
  graph	
  transforma3on	
  
    Using	
  logic	
  programming	
  
    Using	
  automated	
  planning	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
      Using	
  Automated	
  Planning	
  
   Pinna	
  Puissant	
  et	
  al.	
  (UMons,	
  Belgium)	
  
   LWI	
  2010:	
  Resolving	
  model	
  inconsistencies	
  with	
  automated	
  
    planning.	
  




Université de Mons    Tom	
  Mens,	
  21	
  september	
  2010	
  
Automated	
  planning	
  
   General	
  idea	
  
   •  given	
  an	
  ini3al	
  state	
  and	
  a	
  specific	
  predefined	
  goal,	
  we	
  can	
  
      create	
  a	
  plan	
  (a	
  sequence	
  of	
  primi3ve	
  ac3ons)	
  leading	
  to	
  the	
  
      goal	
  
   In	
  our	
  case:	
  
   •  Ini3al	
  state	
  =	
  inconsistent	
  model	
  
   •  Goal	
  =	
  consistent	
  model	
  
   •  Plan	
  =	
  set	
  of	
  ac3ons	
  needed	
  to	
  make	
  the	
  model	
  consistent	
  




Université de Mons       Tom	
  Mens,	
  21	
  september	
  2010	
  
Automated	
  Planning	
  
                          Example   	
  
   Model	
  with	
  4	
  inconsistencies	
  
   •  Cyclic	
  composi3on:	
  2	
  occurrences	
  
   •  Cyclic	
  inhertance:	
  2	
  occurrences	
  




   Generated	
  resolu3on	
  plan	
  
        1.  delete	
  generalisa3on	
  Vehicle	
  	
  AmphibiousVehicle	
  
        2.  modify	
  mul3plicity	
  of	
  AmphibiousVehicle	
  associa3on	
  end	
  
            from	
  1..*	
  to	
  0..*	
  

Université de Mons    Tom	
  Mens,	
  21	
  september	
  2010	
  
Automated	
  planning	
  
   Different	
  planning	
  approaches	
  and	
  tools	
  exist	
  
   •  Languages:	
  PDDL,	
  STRIPS,	
  ADL,	
  …	
  
   •  Tools:	
  FF,	
  …	
  
   •  Techniques	
  
      •  Transla3on	
  to	
  a	
  sa3sfiability	
  problem	
  (model	
  checking)	
  
      •  Genera3ng	
  and	
  traversing	
  a	
  search	
  space	
  
         •  Progression	
  planning	
  (forward	
  search)	
  
         •  Regression	
  planning	
  (backward	
  search)	
  

   Scalability	
  for	
  model	
  inconsistency	
  resolu3on	
  
   •  Tests	
  are	
  disappoin3ng:	
  search	
  space	
  explosion	
  
   •  Dedicated,	
  customised,	
  planners	
  should	
  perform	
  beeer	
  	
  


Université de Mons        Tom	
  Mens,	
  21	
  september	
  2010	
  
Generic	
  techniques	
  for	
  managing	
  model	
  
   inconsistencies	
  
    Using	
  descrip3on	
  logics	
  
    Using	
  graph	
  transforma3on	
  
    Using	
  logic	
  programming	
  
    Using	
  automated	
  planning	
  
    Other	
  possibili?es?	
  




Université de Mons   Tom	
  Mens,	
  21	
  september	
  2010	
  
Model	
  inconsistency	
  management	
  
              Other	
  possibili?es?	
  
    Use	
  of	
  model	
  checkers	
  (e.g.,	
  SPIN,	
  Promela,NuSMV)	
  and	
  model	
  
     finders	
  (e.g.,	
  Alloy	
  Analyzer,	
  Kodkod)	
  to	
  resolve	
  model	
  
     inconsistencies	
  	
  
        Van	
  Der	
  Straeten	
  et	
  al.	
  (VUB	
  &	
  UMons,	
  Belgium)	
  
        Work	
  in	
  progress	
  (submiUed	
  for	
  publica,on)	
  
    Search-­‐Based	
  So_ware	
  Engineering	
  (SBSE)	
  seems	
  to	
  be	
  
     par3cularly	
  useful	
  for	
  model	
  inconsistency	
  management.	
  A	
  
     wide	
  variety	
  of	
  different	
  techniques	
  could	
  be	
  used:	
  
        metaheuris3cs	
  
        local	
  search	
  algorithms	
  
        automated	
  learning	
  
        gene3c	
  algorithms	
  
        …	
  
Université de Mons          Tom	
  Mens,	
  21	
  september	
  2010	
  
Conclusion	
  

More Related Content

Similar to Approaches to software model inconsistency management

Static model development
Static model developmentStatic model development
Static model developmentKunal Rathod
 
developments and applications of the self-organizing map and related algorithms
developments and applications of the self-organizing map and related algorithmsdevelopments and applications of the self-organizing map and related algorithms
developments and applications of the self-organizing map and related algorithmsAmir Shokri
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)Steve Lange
 
Designpatterns
DesignpatternsDesignpatterns
Designpatternsreynolds
 
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...IJCI JOURNAL
 
Resume Akshay Kakkar
Resume Akshay KakkarResume Akshay Kakkar
Resume Akshay KakkarAkshay Kakkar
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandfordNASAPMC
 
Article : Wall grammar for building generation
Article : Wall grammar for building generationArticle : Wall grammar for building generation
Article : Wall grammar for building generationMathieu Larive
 
Incremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIncremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIstvan Rath
 
Lab # 06
Lab # 06Lab # 06
Lab # 06Mr SMAK
 
My M.S. Thesis Proposal
My M.S. Thesis ProposalMy M.S. Thesis Proposal
My M.S. Thesis ProposalYaser Sulaiman
 
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...KIIT
 
Session #5: Architecture Without Big Design Up Front
Session #5: Architecture Without Big Design Up FrontSession #5: Architecture Without Big Design Up Front
Session #5: Architecture Without Big Design Up FrontSteve Lange
 
Cloud Module 3 .pptx
Cloud Module 3 .pptxCloud Module 3 .pptx
Cloud Module 3 .pptxssuser41d319
 
CV_sarah_frisken_05.15.2016
CV_sarah_frisken_05.15.2016CV_sarah_frisken_05.15.2016
CV_sarah_frisken_05.15.2016Sarah Frisken
 
Uploaded file 130039511030956250
Uploaded file 130039511030956250Uploaded file 130039511030956250
Uploaded file 130039511030956250MAKAUT
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...Jordi Cabot
 
Scm InteroperabilitäT PraxislöSung In Der Simulation Dargestellt
Scm InteroperabilitäT   PraxislöSung In Der Simulation DargestelltScm InteroperabilitäT   PraxislöSung In Der Simulation Dargestellt
Scm InteroperabilitäT PraxislöSung In Der Simulation Dargestelltphofbauer
 

Similar to Approaches to software model inconsistency management (20)

Static model development
Static model developmentStatic model development
Static model development
 
developments and applications of the self-organizing map and related algorithms
developments and applications of the self-organizing map and related algorithmsdevelopments and applications of the self-organizing map and related algorithms
developments and applications of the self-organizing map and related algorithms
 
Cc module 3.pptx
Cc module 3.pptxCc module 3.pptx
Cc module 3.pptx
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
 
Designpatterns
DesignpatternsDesignpatterns
Designpatterns
 
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...
 
Resume Akshay Kakkar
Resume Akshay KakkarResume Akshay Kakkar
Resume Akshay Kakkar
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandford
 
Article : Wall grammar for building generation
Article : Wall grammar for building generationArticle : Wall grammar for building generation
Article : Wall grammar for building generation
 
Incremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIncremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation framework
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Lab # 06
Lab # 06Lab # 06
Lab # 06
 
My M.S. Thesis Proposal
My M.S. Thesis ProposalMy M.S. Thesis Proposal
My M.S. Thesis Proposal
 
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
 
Session #5: Architecture Without Big Design Up Front
Session #5: Architecture Without Big Design Up FrontSession #5: Architecture Without Big Design Up Front
Session #5: Architecture Without Big Design Up Front
 
Cloud Module 3 .pptx
Cloud Module 3 .pptxCloud Module 3 .pptx
Cloud Module 3 .pptx
 
CV_sarah_frisken_05.15.2016
CV_sarah_frisken_05.15.2016CV_sarah_frisken_05.15.2016
CV_sarah_frisken_05.15.2016
 
Uploaded file 130039511030956250
Uploaded file 130039511030956250Uploaded file 130039511030956250
Uploaded file 130039511030956250
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
 
Scm InteroperabilitäT PraxislöSung In Der Simulation Dargestellt
Scm InteroperabilitäT   PraxislöSung In Der Simulation DargestelltScm InteroperabilitäT   PraxislöSung In Der Simulation Dargestellt
Scm InteroperabilitäT PraxislöSung In Der Simulation Dargestellt
 

More from Tom Mens

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD studentTom Mens
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentTom Mens
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubTom Mens
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHubTom Mens
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureTom Mens
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Tom Mens
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubTom Mens
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networksTom Mens
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsTom Mens
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero SpaceTom Mens
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesTom Mens
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Tom Mens
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Tom Mens
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsTom Mens
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...Tom Mens
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Tom Mens
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Tom Mens
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsTom Mens
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarTom Mens
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersTom Mens
 

More from Tom Mens (20)

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD student
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software development
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHub
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHub
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the Future
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHub
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networks
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero Space
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messages
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystems
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research Achievements
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminar
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package Managers
 

Recently uploaded

“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersChitralekhaTherkar
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 

Recently uploaded (20)

“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 

Approaches to software model inconsistency management

  • 1. Faculté  des  Sciences   Tom  Mens   In  collabora3on  with  J.  Pinna  Puissant,    R.  Van  Der  Straeten,  X.  Blanc   http://www.evolumons.be http://informatique.umons.ac.be/genlog
  • 2. CSMR  2010:  15th  European  Conference  on   So7ware  Maintenance  and  Reengineering   March  1–4,  2011,  Oldenburg,  Germany   www.se.uni-­‐oldenburg.de/csmr2011   Commercial break October  1:  Workshop  submission  deadline   October  15:  Paper  abstracts   October  22:  Paper  submission  deadline  
  • 3. Main  challenge:   So7ware  co-­‐evolu?on   Specifica3on  models   1.  Need  to   slow   synchronise  and   Architectural   descrip3ons   Use  case   diagrams   Requirements   specs   co-­‐evolve   between   speed  of  evolu3on   Design  models   State   artefacts  at   Class   diagrams   Sequence diagrams   machine   Ac3vity   diagrams   different  levels   diagrams   of  abstrac3on   Implementa3on  artefacts   Produc3on   Test  code   Data(base)   code   fast  
  • 4. Main  challenge:   So7ware  co-­‐evolu?on   2.  Need  to   Design  models   synchronise  and   Class  diagrams   Sequence   diagrams   co-­‐evolve   between   State  machine   Ac3vity   artefacts  at   diagrams   diagrams   same  level  of   abstrac3on  
  • 5. Main  challenge:   So7ware  co-­‐evolu?on   metametamodeling  level  –  M3   3.  Need  to   slow   MOF   synchronise  and   co-­‐evolve   metamodeling  level  –  M2   speed  of  evolu3on   between   UML  1.4   UML  2.0   UML  2.1   artefacts  at   different  layers   modeling  level  -­‐  M1   of  modelling   Class  diagrams   Sequence   diagrams   Ac3vity   State  machine   diagrams   diagrams   fast  
  • 6. •   The  co-­‐evolu3on  problem  arises  everywhere   •   In  all  phases  of  the  so_ware  life-­‐cycle   •   In  and  between  all  levels  of  abstrac3on   •   In  and  between  all  layers  of  modelling   •   We  need  generic  techniques  for  managing  co-­‐ evolu3on    Inconsistency  management    Impact  analysis,  change  propaga3on,  traceability    Versioning,  differencing,  merging    Refactoring,  restructuring   Université de Mons Tom  Mens,  21  september  2010  
  • 7. Research  context    ARC  Research  project  (2008-­‐2012)  on     Model-­‐Driven  So_ware  Evolu3on    Focus  on  different  techniques  to  evolve  so_ware  models     Model  refactoring     Model  inconsistency  management    Study  and  develop  tools  and  techniques  to  support  these   ac3vi3es   Université de Mons Tom  Mens,  21  september  2010  
  • 8. •   Introduc3on  to  model  inconsistency   management     •   Generic  techniques  for  managing  model   inconsistencies    Using  descrip3on  logics    Using  graph  transforma3on    Using  logic  programming    Using  automated  planning   Université de Mons Tom  Mens,  21  september  2010  
  • 9. Model  inconsistency  management   Mo?va?ng  example   Université de Mons Tom  Mens,  21  september  2010  
  • 10. Model  inconsistency  management   Mo?va?ng  example   ATM PrintingATM Université de Mons Tom  Mens,  21  september  2010  
  • 11. Model  inconsistency  management   Introduc?on   Many  poten3al  sources  of  inconsistencies    Poorly  understood  models    Unclear,  ambiguous,  underspecified,  incomplete  models     due  to  poorly  specified  requirements     due  to  use  of  natural  language     ill-­‐specified  seman3cs  of  modeling  language    Complexity  of  models  with  many  interdependencies    Distributed,  collabora3ve,  parallel  development    Con3nuous  evolu3on  of  models    …   Université de Mons Tom  Mens,  21  september  2010  
  • 12. Model  inconsistency  management   Introduc?on   Many  different  types  of  inconsistencies    lexical,  structural  or  behavioural  inconsistencies    visual  problems    non-­‐conformance  to  standards  and  design  conven3ons    design  smells,  bad  prac3ces,  an3paeerns    incomplete  models    redundant  models    …   Université de Mons Tom  Mens,  21  september  2010  
  • 13. Generic  techniques  for  managing  model   inconsistencies    Using  descrip?on  logics    Using  graph  transforma3on    Using  logic  programming    Using  automated  planning   Université de Mons Tom  Mens,  21  september  2010  
  • 14. Model  inconsistency  management   Using  Descrip?on  Logics   Ragnhild  Van  Der  Straeten  et  al.  (VUB  and   Umons,  Belgium)    PhD  “Inconsistency  management  in  model-­‐driven  engineering:   an  approach  using  descrip3on  logics”,  2005    UML  2003:  Using  descrip,on  logics  to  maintain  consistency   between  UML  models   Université de Mons Tom  Mens,  21  september  2010  
  • 15. Model  inconsistency  management   Tool  support  
  • 16. Model  inconsistency  management   Using  Descrip?on  Logics   Decidable  2-­‐variable  fragment  of  first-­‐order   predicate  logic   –  Tool  support:   RACER  
  • 17. Model  inconsistency  management   Using  Descrip?on  Logics   Class diagrams! Sequence diagrams! (instance atm class)! (define-concept m1! (instance printingatm class)! (and (all op checkIfCashAvailable)! (instance asciiprintingatm class)! (exactly 1 op)))! (instance gen1 generalization)! (define-concept m2! (instance gen2 generalization)! (and (all op ejectCard)! (instance controls association)! (exactly 1 op))))! (instance atmend property)! (define-concept m3! (instance asciiend property)! Statemachine diagrams! (and (all op dispensecash)! (related atm gen1 generalization)! (exactly 1 op)))! (related printingatm gen1 generalization)!(define-concept t1! (implies m1 (some r m2))! (related printingatm gen2 generalization)! (and (all opm2 (some r m3))! (implies verifyAccount)! (related asciiprintingatm gen2
 (implies m31(some r m4))! (exactly op)))! generalization)! (define-concept t2! (related atm printingatm direct-superclass)!(and (all op checkIfCashAvailable)! (related printingatm asciiprintingatm
 (exactly 1 op)))! direct-superclass)! (define-concept t3! (related gen1 atm general)! (and (all op dispensecash)! (related gen2 printingatm general)! (exactly 1 op)))! (related atm asciiend ownedAttribute)! (define-concept t4! (and (all op ejectCard)! (exactly 1 op)))! (equivalent (and (some valid_PIN) t1)
 (some r t2)))! (equivalent t2 (some r t3))! (equivalent t3 (some r t4))!
  • 18. Generic  techniques  for  managing  model   inconsistencies    Using  descrip3on  logics    Using  graph  transforma?on    Using  logic  programming    Using  automated  planning   Université de Mons Tom  Mens,  21  september  2010  
  • 19. Model  inconsistency  management   using  graph  transforma?on   Mens  et  al.  (UMONS,  Belgium)     WADT  2006:  Incremental  resolu,on  of  model  inconsistencies     MoDELS  2006:  Detec,ng  and  resolving  model  inconsistencies  using  transforma,on   dependency  analysis   inconsistency inconsistency detection rules resolution rules ? ? UML model detect select choose apply inconsistencies inconsistencies inconsistency inconsistency in UML model to be resolved resolution strategy resolutions annotate model with inconsistencies found modify model by selected resolution rules (may give rise to new inconsistencies) Université de Mons Tom  Mens,  21  september  2010  
  • 20. Model  inconsistency  management   using  graph  transforma?on   Use  graph  transforma3ons  to    Specify  model  inconsistencies     Automate  the  detec,on  of  inconsistencies    Specify  inconsistency  resolu3on  rules     Interac3vely  support  the  resolu,on  of  inconsistencies    Formally  analyse  transforma3ons  rules     Detect  sequen,al  dependencies  and  parallel  conflicts  between  resolu3on   rules     Remove  redundancy  between  resolu3on  rules     Provide  “op3mal”  resolu3on  strategies   Université de Mons Tom  Mens,  21  september  2010  
  • 21. Tool  support             SIRP  tool   –  “Simple  Itera3ve   Resolu3on  Process”   –  An  interac3ve  tool  for   selec3ng  and  resolving   model  inconsistencies   –  Implemented  on  top  of   AGG  graph   transforma3on  tool  
  • 22. Tool  support   SIRP  tool  in  ac3on    Before  detec3ng  any  inconsistency   Université de Mons Tom  Mens,  21  september  2010  
  • 23. Tool  support   SIRP  tool  in  ac3on    A_er  detec3ng  all  inconsistencies   Université de Mons Tom  Mens,  21  september  2010  
  • 24. Tool  support   SIRP  tool  in  ac3on    A_er  resolving  “duplicate  class  name”     Two  occurrences  of  same  inconsistency  removed     Class  renamed  from  “A”  to  “C”   Université de Mons Tom  Mens,  21  september  2010  
  • 25. Tool  support   SIRP  tool  in  ac3on    A_er  resolving  “classless  instance”     One  occurrence  of  “classless  instance”  removed     One  occurrence  of  “instanceless  class”  removed   Université de Mons Tom  Mens,  21  september  2010  
  • 26. Tool  support   SIRP  tool  in  ac3on    A_er  resolving  “abstract  object”     One  occurrence  of  “abstract  object”  removed     One  occurrence  of  “nameless  instance”  removed     Induced  inconsistency:  “instanceless  class”  !   Université de Mons Tom  Mens,  21  september  2010  
  • 27. Tool  support   SIRP  tool  in  ac3on    A_er  disabling  the  “instanceless  class”  rule     Two  occurrences  of  “instanceless  class”  ignored   Université de Mons Tom  Mens,  21  september  2010  
  • 28. Tool  support   SIRP  tool  in  ac3on    A_er  resolving  “abstract  opera,on”     One  occurrence  of  “abstract  opera3on”  removed   Université de Mons Tom  Mens,  21  september  2010  
  • 29. Tool  support   SIRP  tool  in  ac3on    A_er  resolving  “undefined  parameter  type”     One  occurrence  of  “undefined  parameter  type”  removed   Université de Mons Tom  Mens,  21  september  2010  
  • 30. Tool  support   SIRP  tool  in  ac3on    A_er  resolving  “nameless  instance”     One  occurrence  of  “nameless  instance”  removed     No  more  remaining  inconsistencies  !   Université de Mons Tom  Mens,  21  september  2010  
  • 31. Tool  support   We  used  AGG  in  the  following  way    specify  the  UML  metamodel  as  a  type  graph    specify  the  models  as  graphs    detect  and  resolve  model  inconsistencies  by  means  of  graph   transforma3on  rules    analyse  mutual  exclusion  rela3onships  and  sequen,al   dependencies  between  inconsistency  resolu3ons  by  means  of   cri3cal  pair  analysis   Université de Mons Tom  Mens,  21  september  2010  
  • 33. Specify  the  metamodel    AGG  type  graph  
  • 34. Specify  model  inconsistencies     Dangling  opera3on  reference   –  Graph  transforma3on  rule  for  detec3on   negative application left-hand side right-hand side condition (NAC) (LHS) (RHS)
  • 35. Specify  inconsistency  resolu?ons   Dangling  opera3on  reference   –  Graph  transforma3on  rule  for  resolu3on  
  • 36. Analyse  mutually  conflic?ng   resolu?ons    Some  resolu3on  rules  cannot  be  jointly  applied   (parallel  conflict!)   –  Conflict  graph  can  be  generated  by  means  of  cri3cal  pair   analysis  
  • 37. Analyse  sequen?al  dependencies    Induced  inconsistencies   –  Some  resolu3on  rules  may   give  rise  to  new  model   inconsistencies   –  Can  be  detected  by   analysing  the   dependency  graph  
  • 38. Analyse  sequen?al  dependencies   Use  the  dependency  graph  to  detect  poten3al  cycles  in  the   resolu3on  process   Cycles  should  be  avoided,  since  this  implies  that  the  resolu3on   process  may  con3nue  forever…  
  • 39. Generic  techniques  for  managing  model   inconsistencies    Using  descrip3on  logics    Using  graph  transforma3on    Using  logic  programming    Using  automated  planning   Université de Mons Tom  Mens,  21  september  2010  
  • 40. Model  inconsistency  management   Using  Logic  Programming   Xavier  Blanc  et  al.  (LIP6,  Paris)   ICSE  2008  :  Detec,ng  model  inconsistency  through  opera,on-­‐ based  model  construc,on.   CAiSE  2009  :  Incremental  detec,on  of  model  inconsistencies   based  on  model  opera,ons.   CAiSE  2010  :  Towards  Automated  Inconsistency  Handling  in   Design  Models.   LWI  2010  :  Inconsistency  Detec,on  in  Distributed  Model  Driven   SoHware  Engineering  Environments.   Université de Mons Tom  Mens,  21  september  2010  
  • 41. Model  inconsistency  management   Using  Logic  Programming   • Tool  architecture   • Sequence  builder:   Event  listener   integrated  in  Eclipse   EMF  framework   • Check  engine:   Implemented  in  Prolog  
  • 42. General  idea   Express  models  and  model  transforma,ons  in  a   uniform  and  metamodel-­‐independent  way    As  a  sequence  of  elementary  opera3ons   Express  constraints  over  a  model  and  its   evolu3on  as  a  logic  query  over  this  sequence    Both  “structural”  and  “temporal”  constraints  can  be  expressed   in  this  way   Provide  efficient  and  incremental  tool  support    for  checking  inconsistencies    For  resolving  inconsistencies       Université de Mons Tom  Mens,  21  september  2010  
  • 43. Praxis   an  opera?on-­‐based  representa?on  of  models   and  their  construc?on/evolu?on   create(me,mc) setProperty(me,p,Values) assignment of a set of Values to property p of model creation of a model element instance me of the meta- element me class mc Preconditions: Preconditions: –  me exists in the model –  me does not exist in the model –  me is an instance of meta-class mc Postconditions: –  p is defined in (an ancestor of) mc –  me exists in the model; does not own values; does –  p and Values have same signature not refer to another model element delete(me) setReference(me,r,References) deletion of the model element instance me assignment of References to reference r of model Preconditions: element me –  me exists in the model Preconditions: –  me is not referenced by another model element –  me exists in the model Postconditions: –  me is an instance of meta-class mc –  me does not exist in the model –  r is defined in (an ancestor of) mc –  r and References have same signature –  All References exist in the model
  • 44. Example   model metamodel represented as 01. create(c1,Class)! 02. setProperty(c1,name, {‘PetStore’})! 03. create(uc1,UseCase) ! 04. setProperty(uc1,name, {‘Buy eBasket’})) ! representation as a 05. create(uc2,UseCase) ! 06. setProperty(uc2,name,{‘Create eBasket’}) ! sequence of elementary 07. create(uc3,UseCase) ! construction operations 08. setProperty(uc3,name,{‘Cancel eBasket’}) ! 09. setReference(c1,ownedUseCase,{uc1,uc2,uc3}) ! 10. create(a1,Actor) ! constrained by information 11. setProperty(a1,name, {‘Customer’}) ! 12. setReference(a1, usecase, {uc1,uc2,uc3})! in the metamodel Université de Mons Tom  Mens,  21  september  2010  
  • 45. Model  inconsistency  management   Using  Logic  Programming   Example  of  a  structural  inconsistency   –  an  actor  should  not  own  a  use  case   if a = lastCreate (me, Actor) then !∃ o ∈ σuc, o = lastSetReference(me,ownedUseCase, R) and R ≠ ∅. Example  of  a  temporal  inconsistency   –  Never  unassign  a  use  case  name   ∀ a ∈ σuc, a ≠ setProperty(me,name,{””}) –  Assign  a  name  just  a_er  the  crea3on  of  a  use  case   ∀ a ∈ σuc, if a = create(me,UseCase) then ∃ c ∈ σ, c = setProperty(me,name, NameVal) and b ∈ σ, a <σ b <σ c
  • 46. Generic  techniques  for  managing  model   inconsistencies    Using  descrip3on  logics    Using  graph  transforma3on    Using  logic  programming    Using  automated  planning   Université de Mons Tom  Mens,  21  september  2010  
  • 47. Model  inconsistency  management   Using  Automated  Planning   Pinna  Puissant  et  al.  (UMons,  Belgium)   LWI  2010:  Resolving  model  inconsistencies  with  automated   planning.   Université de Mons Tom  Mens,  21  september  2010  
  • 48. Automated  planning   General  idea   •  given  an  ini3al  state  and  a  specific  predefined  goal,  we  can   create  a  plan  (a  sequence  of  primi3ve  ac3ons)  leading  to  the   goal   In  our  case:   •  Ini3al  state  =  inconsistent  model   •  Goal  =  consistent  model   •  Plan  =  set  of  ac3ons  needed  to  make  the  model  consistent   Université de Mons Tom  Mens,  21  september  2010  
  • 49. Automated  Planning   Example   Model  with  4  inconsistencies   •  Cyclic  composi3on:  2  occurrences   •  Cyclic  inhertance:  2  occurrences   Generated  resolu3on  plan   1.  delete  generalisa3on  Vehicle    AmphibiousVehicle   2.  modify  mul3plicity  of  AmphibiousVehicle  associa3on  end   from  1..*  to  0..*   Université de Mons Tom  Mens,  21  september  2010  
  • 50. Automated  planning   Different  planning  approaches  and  tools  exist   •  Languages:  PDDL,  STRIPS,  ADL,  …   •  Tools:  FF,  …   •  Techniques   •  Transla3on  to  a  sa3sfiability  problem  (model  checking)   •  Genera3ng  and  traversing  a  search  space   •  Progression  planning  (forward  search)   •  Regression  planning  (backward  search)   Scalability  for  model  inconsistency  resolu3on   •  Tests  are  disappoin3ng:  search  space  explosion   •  Dedicated,  customised,  planners  should  perform  beeer     Université de Mons Tom  Mens,  21  september  2010  
  • 51. Generic  techniques  for  managing  model   inconsistencies    Using  descrip3on  logics    Using  graph  transforma3on    Using  logic  programming    Using  automated  planning    Other  possibili?es?   Université de Mons Tom  Mens,  21  september  2010  
  • 52. Model  inconsistency  management   Other  possibili?es?    Use  of  model  checkers  (e.g.,  SPIN,  Promela,NuSMV)  and  model   finders  (e.g.,  Alloy  Analyzer,  Kodkod)  to  resolve  model   inconsistencies       Van  Der  Straeten  et  al.  (VUB  &  UMons,  Belgium)     Work  in  progress  (submiUed  for  publica,on)    Search-­‐Based  So_ware  Engineering  (SBSE)  seems  to  be   par3cularly  useful  for  model  inconsistency  management.  A   wide  variety  of  different  techniques  could  be  used:     metaheuris3cs     local  search  algorithms     automated  learning     gene3c  algorithms     …   Université de Mons Tom  Mens,  21  september  2010