SlideShare a Scribd company logo
Adaptable Model Versioning using
Model Transformation By Demonstration
PhD Defense


Vienna, 21st of December 2011




                                Philip Langer
                                Business Informatics Group
                                Institute of Software Technology and Interactive Systems
                                Vienna University of Technology
                                Favoritenstraße 9-11/188-3, 1040 Vienna, Austria
                                phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896
                                office@big.tuwien.ac.at, www.big.tuwien.ac.at
Introduction
                        Context
               Adaptable Model Versioning




                                            2
Introduction
                     Adaptable Model Versioning
  Managing the evolution of software artifacts performed by a distributed team.

                    Vo             Vr1


                                                       Merge Process
  Developer 1        Check Out      Check In




   Repository                                                          Vm
                     Check Out                         Check In




  Developer 2       Vo                           Vr2
                     t0            t1                     t2            t3


                                                                                  3
Introduction
                      Adaptable Model Versioning
            Software models in the context of model-driven engineering.

                     Vo             Vr1


                                                       Merge Process
  Developer 1         Check Out      Check In




   Repository                                                             Vm
                      Check Out                        Check In




  Developer 2        Vo                          Vr2
                      t0            t1                    t2              t3


                                                                               4
Introduction
               Adaptable Model Versioning




                 Impedance
                  Mismatch




                                            5
Introduction
                             Adaptable Model Versioning
 Deficiencies of existing model versioning systems
     Modeling editor/language-specific vs. imprecise versioning
         Tightly bound to a specific modeling editor or modeling language
         Generic and unaware of the specifics of modeling languages

     Specification of composite operations (e.g., refactorings)
         Currently very challenging task
         Requires specific knowledge which untrained users don’t have

     Absence of information on applied composite operations
         Operation recording  inherently puts restrictions on the modeling editor
         Model differencing  no support for detecting composite operations

     Insufficient conflict detection
         Composite operations are not considered
         Important types of conflicts and warnings are neglected



        P. Brosch, G. Kappel, P. Langer, M. Seidl, K. Wieland, and M. Wimmer. “The Past, Present, and Future of Model   6
        Versioning”, in Emerging Technologies for the Evolution and Maintenance of Software Models. IGI Global, 2011.
Introduction
                          Adaptable Model Versioning

 Generic but adaptable model versioning
     Supporting all EMF*-based modeling languages
     Adaptation points to incorporate language specifics
     Advantages of generic and language-specific versioning systems

 AMOR project
     Funded by FFG FIT-IT Semantic Systems
     Gerti Kappel, Martina Seidl, Manuel Wimmer,
      Petra Brosch, Horst Kargl, Philip Langer,
      Werner Retschitzegger, Wieland Schwinger, and Konrad Wieland




    * Eclipse Modeling Framework (EMF)                                 7
Introduction
                           Adaptable Model Versioning

 AMOR merge process


                                   Vr1




                                                          Conflict Detection




                                                                                                   Conflict Detection
                                                                               Conflict-tolerant
                                                          Operation-based




                                                                                                     State-based


                                                                                                                        Resolution
                                                                                                                                     Vm
                                              Operation
                                              Detection
                           Vo




                                                                                   Merge
                                   Vr2




      P. Brosch, G. Kappel, M. Seidl, K. Wieland, M. Wimmer, H. Kargl, and P. Langer. “Adaptable Model Versioning in                      8
      Action”. In Modellierung’2010, volume 161 of LNI, pages 221–236. GI, 2010.
Introduction




                      Vo




    Vr2
                               Vr1
                                      Focus of this dissertation




              Operation
              Detection
          Operation-based
          Conflict Detection

           Conflict-tolerant
               Merge
            State-based
          Conflict Detection

             Resolution
                                                                    Adaptable Model Versioning




                      Vm




9
Motivating Examples
Violated Preconditions of Composite Operations


                                                 Add state “Active”,
                                                    Move states
           Introduce                               into “Active”,
           Composite                               fold transition
             State                                   “hangup”




                         dial




             Rename                                 Rename
            “hangup”                               “hangup”



                                                                       10
Motivating Examples
Violated Preconditions of Composite Operations




           Introduce
           Composite
             State



                                                 The preconditions
                                                 of the refactoring
                                                 “Introduce Composite
                                                 State” are violated!


                         dial




             Rename
            “hangup”



                                                               11
Contributions at a Glance
                              Adaptable Model Versioning using
                            Model Transformation By Demonstration
                            Adaptation Artifacts


  Match            Operation                               Signifier                                            Validation
  Rules          Specifications                          Specifications                                           Rules       C1   Adaptable Model Versioning Framework
                C2                                  C4


                                                                                                                              C2
                                                                                                                                   Composite Operation Specification
                                                                                                                                   “Model Transformation By Demonstration”
          Vr1
                                    Conflict Detection




                                                                              Conflict Detection
                                                          Conflict-tolerant
                                    Operation-based




                                                                                                                              C3   Operation Detection
                                                                                State-based


                                                                                                   Resolution
                        Operation




                                                                                                                         Vm
                        Detection




 Vo
                                                              Merge




                                                                                                                              C4   Conflict and Warning Detection

                       C3           C4                                        C4
          Vr2
 C1   Adaptable Model Versioning Framework


                     Existing technology has been reused.                                                                                                           12
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual


                P. Brosch, P. Langer, M. Seidl, K. Wieland, M. Wimmer, G. Kappel, W. Retschitzegger, and W. Schwinger. “An Example        13
                Is Worth a Thousand Words: Composite Operation Modeling By-Example”. In Proceedings of the International
                Conference on Model Driven Engineering Languages and Systems (MoDELS’09), LNCS. Springer, 2009.
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual



                                                                                                                                          14
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual



                                                                                                                                          15
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual



                                                                                                                                          16
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual



                                                                                                                                          17
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual



                                                                                                                                          18
C2   Model Transformation By Demonstration

      Composite operation specification
                                      1                        Initial          2                             Working
                                      Create initial model                       Copy initial model
         Modeling



                                                               model                                           model


                                                                                  Revised             3
                                                                                  model                   Perform updates


                                        5                                4   State-based
                                            Imply conditions
         Configuration & Generation




                                                                             comparison

                                              Conditions
                                                [implied]                        Diff
                                                                                model
                                        6
                                            Edit conditions

                                              Conditions             7 Generate Operation              Operation
                                                [revised]
                                                                             Specification            Specification         Legend
                                                                                                                              automatic
                                                                                                                              manual



                                                                                                                                          19
C2   Model Transformation By Demonstration

      Besides being executable…
                                              Adaptation Artifacts


                      Match            Operation                             Signifier                                            Validation
                      Rules          Specifications                        Specifications                                           Rules

                                    C2                                C4




                              Vr1



                                                      Conflict Detection




                                                                                                Conflict Detection
                                                                            Conflict-tolerant
                                                      Operation-based




                                                                                                  State-based


                                                                                                                     Resolution
                                          Operation


                                                                                                                                           Vm
                                          Detection

                     Vo



                                                                                Merge


                                         C3           C4                                        C4
                              Vr2
                          Adaptable Model Versioning Framework



                                                                                                                                                20
C3   Operation Detection

      Operation detection process
         1.   UUID-based matching
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection




                                              21
C3   Operation Detection

      Operation detection process
         1.   UUID-based matching
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection


               Vo                                     Vr1

                                    lift                           lift
                    Idle                                    Idle

                                           DialTone                       Active
                                                      hangup
                               hangup                                       DialTone

                                            dial                                    dial

                                  Dialing
                      hangup
                                                                          Dialing




                                                                                           22
C3   Operation Detection

      Operation detection process
         1.   UUID-based matching
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection


               Vo                                     Vr1

                                    lift                           lift
                    Idle                                    Idle

                                           DialTone                       Active
                                                      hangup
                               hangup                                       DialTone

                                            dial                                    dial

                                  Dialing
                      hangup
                                                                          Dialing




                                                                                           23
C3   Operation Detection

      Operation detection process
         1.   UUID-based matching
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection


               Vo                                     Vr1

                                    lift                           lift
                    Idle                                    Idle

                                           DialTone                       Active
                                                      hangup
                               hangup                                       DialTone

                                            dial                                    dial

                                  Dialing
                      hangup
                                                                          Dialing




                                                                                           24
C3   Operation Detection

      Operation detection process                                                             Diff
         1.   UUID-based matching                                                             Model
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection           No difference


               Vo                                       Vr1

                                    lift                              lift
                    Idle                                      Idle

                                           DialTone                          Active
                                                       hangup
                               hangup                                          DialTone

                                            dial                                       dial

                                  Dialing
                      hangup
                                                                             Dialing




                                                                                                      25
C3   Operation Detection

      Operation detection process                                                                Diff
         1.   UUID-based matching                                                               Model
                                                                                                !
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection           !   Transition target changed!


               Vo                                          Vr1

                                    lift                                lift
                    Idle                                         Idle

                                           DialTone                            Active
                                                           hangup
                               hangup                                            DialTone

                                            dial                                         dial

                                  Dialing
                      hangup
                                                                               Dialing




                                                                                                         26
C3   Operation Detection

      Operation detection process                                                                 Diff
         1.   UUID-based matching                                                               Model
                                                                                                !!
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection           !   Transition source changed!


               Vo                                          Vr1

                                    lift                                lift
                    Idle                                         Idle

                                           DialTone                            Active
                                                           hangup
                               hangup                                            DialTone

                                            dial                                         dial

                                  Dialing
                      hangup
                                                                               Dialing




                                                                                                          27
C3   Operation Detection

      Operation detection process                                                               Diff
         1.   UUID-based matching                                                              Model
                                                                                               !! +
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection           +    State Active has been added!


               Vo                                         Vr1

                                    lift                               lift
                    Idle                                        Idle

                                           DialTone                           Active
                                                          hangup
                               hangup                                           DialTone

                                            dial                                        dial

                                  Dialing
                      hangup
                                                                              Dialing




                                                                                                        28
C3   Operation Detection

      Operation detection process                                                           Diff
         1.   UUID-based matching                                                          Model
                                                                                           !! +
                                                                                              +
                                                                                              +
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection


               Vo                                     Vr1

                                    lift                           lift
                    Idle                                    Idle

                                           DialTone                       Active
                                                      hangup
                               hangup                                       DialTone

                                            dial                                    dial

                                  Dialing
                      hangup
                                                                          Dialing




                                                                                                    29
C3   Operation Detection

      Operation detection process                                                               Diff
         1.   UUID-based matching                                                              Model
                                                                                               !! + -
                                                                                                  +
                                                                                                  +
         2.   Rule-based matching
         3.   Atomic operation detection
         4.   Composite operation detection           -    Transition hangup has been deleted!


               Vo                                         Vr1

                                    lift                               lift
                    Idle                                        Idle

                                           DialTone                           Active
                                                          hangup
                               hangup                                           DialTone

                                            dial                                        dial

                                  Dialing
                      hangup
                                                                              Dialing




                                                                                                        30
C3   Operation Detection

      Composite operation detection process
            Diff
             Input           Operation
                              Operation
                              Operation
          Diff Model
          Model             Specification
                            Specification
                              Operation
                             Specification
                            Specifications
          !! + -
              ++

                                                         «foreach»                          «foreach»
                     Diff Model
                   Preprocessing                           Derive Precondition                   Derive Postcondition
                                                                 Binding                               Binding
                Input         Operation
                               Operation
                               Operation
              Signature      Specification
                             Specification
                               Signature                       Precondition                         Postcondition
                                                                 Binding                               Binding


                    Preselection                            Evaluate Binding                      Evaluate Binding

                 [no diff match] [diff matches]            [invalid]      [valid]                 [invalid]        [valid]
                                                                        Valid
                                                                    Operation
                                                                     Operation
                              Potential
                            Operation                               Precondition                              Operation
                             Operation                             Specification
                                                                   Specification                              Occurrence
                             Operation
                           Specification
                           Specification                              Binding
                            Occurrence
          1                                          2                                  3

                                                                                                        Refactoring            Diff
                                                                                                        Refactoring
                                                                                                          Operation
                                                                                                        Occurrence
                                                                                                        Occurrence
                                                                                                         Occurrence           Model
          P. Langer, K. Wieland, and P. Brosch. Specification, Execution, and Detection of                                   !! + 31
                                                                                                                                + -
                                                                                                                                +
          Refactorings for Software Models. In Proceedings of the WiP Session @ PPPJ’10, 2010.
C4   Conflict Detection


              Input                             Adaptation Artifacts


              Diff         Match           Operation                             Signifier                                            Validation
             Model1        Rules         Specifications                        Specifications                                           Rules

                                                                          C4
             !! + -
                +
                +
                                   Vr1




                                                          Conflict Detection




                                                                                                    Conflict Detection
              Diff




                                                                                Conflict-tolerant
                                                          Operation-based




                                                                                                      State-based


                                                                                                                         Resolution
                                              Operation
                                                                                                                                               Vm



                                              Detection
             Model2       Vo




                                                                                    Merge
             ! +
               +

                                                          C4                                        C4
                                   Vr2
                               Adaptable Model Versioning Framework




                                                                                                                                                    32
C4   Conflict Detection

      Operation-based conflict detection
         1. Atomic operation conflict detection
         2. Composite operation conflict detection
         3. Signifier warning detection




                                                     33
C4   Conflict Detection

      Operation-based conflict detection
         1. Atomic operation conflict detection
         2. Composite operation conflict detection
         3. Signifier warning detection




                                                     34
C4   Conflict Detection

      Atomic operation conflict detection
          Nine conflict patterns for EMF-based models
             Delete-use conflict
                                               du : DeleteUse

                           delete                                                        use

                  do : DeleteObject                 o : Object                   fo : FeatureOperation
                                      object                      value
                                                                          {self.oclIsTypeOf(InsertFeatureValue) or
                                                                          self.oclIsTypeOf(FeatureUpdate)}


             Update-update conflict
                 uu : UpdateUpdate                      update1
                                         affected
                                                                                    feature
                                          Object      fo1 : FeatureOperation                        f : Feature
                            o : Object                                                         {upperBound = 1 and
                                                                                               fo1.value <> fo2.value}
                                                      fo2 : FeatureOperation        feature
                                         affected
                                          Object

                                                        update2


             …


            G. Taentzer, C. Ermel, P. Langer, and M. Wimmer. “A Fundamental Approach to Model Versioning Based on
            Graph Modifications”. Submitted to Software and System Modeling. Springer, 2011.
                                                                                                                         35
C4   Conflict Detection

      Operation-based conflict detection
         1. Atomic operation conflict detection
         2. Composite operation conflict detection
         3. Signifier warning detection




                                                     36
C4   Conflict Detection

      Composite operation conflict detection
         For each composite operation application,
         check whether it is applicable at the opposite side


                                         Vo
                               Diff
                              Model1
                              !! + -
                                 +
                                 +




                                Vr1               Vr2




                                               !! +
                                                  +
                                                  +




                                                               37
C4   Conflict Detection

      Composite operation conflict detection
          Revisiting the motivating example                     Vr1
                                                                                    lift
                                                                        Idle

                                                                                           Active
              Vo                                     Introduce   hangup
                                                     Composite                               DialTone
                                   lift
                   Idle                                State                                         dial
                                          DialTone                                                    dial
                              hangup
                                                                                           Dialing

                                           dial

                                 Dialing
                     hangup
                                                                  Vr2
                                                                                             lift
                                                                        Idle

                                                                                                    DialTone

                                                                                   abort
                                                                                                             dial

                                                                                                     dial

                                                                                           Dialing
                                                                          hangup
                                                                                                                    38
C4   Conflict Detection

      Composite operation conflict detection
  Diff        Revisiting the motivating example                              Vr1
 Model1                                                                                          lift
                                                                                     Idle
 !! + -
    +
    +
                                                                                                        Active
                     Vo                                     Introduce         hangup
      Original
                                                            Composite                                     DialTone
       match              Idle
                                          lift
                                                              State                                               dial
     SingleState_0
                                                 DialTone                                                          dial
     Transition_0
                                     hangup
                                                                                                        Dialing
     SingleState_1
                                                  dial
     Transition_1
                                                                                                                                 Precondition of
                                        Dialing
     SingleState_2          hangup                                                                                                 composite
     Transition_2                                                              Vr2                                                operation is
                                                                                                          lift
                                                                                                                                    violated!
                                                                                     Idle
                                                              SingleState_0
                                                                                                                 DialTone
                                                               Transition_0
                                                                                                abort
                                                              SingleState_1                                               dial
     Transition_1.name = Transition_2.name
                                                                                                                  dial
                                                               Transition_1

                                                              SingleState_2                             Dialing
                                                                                       hangup

                                                               Transition_2
                                                                                                                                           39
C4   Conflict Detection

      Composite operation warning detection
         For each composite operation application,
         check whether its match size increased at the opposite side


                                        Vo
                               Diff
                              Model1
                              !! + -
                                 +
                                 +




                                Vr1             Vr2




                                              !! +
                                                 +
                                                 +




                                                                       40
C4   Conflict Detection

      Composite operation warning detection
                                               Add state “Active”,
                                                  Move states
                                                 into “Active”,
              Introduce                          fold transition
              Composite                            “hangup”
                State




                          dial




                Add state                        Add state
              “Connecting”                     “Connecting”

                                                                     41
C4   Conflict Detection
                                                     Your composite
      Composite operation warning detection         operation should
                                                     incorporate opposite
                                                     operations!


              Introduce                          Introduce
              Composite                          Composite
                State                              State




                          dial




                Add state                        Add state
              “Connecting”                     “Connecting”

                                                                     42
C4   Conflict Detection

      Composite operation warning detection
                                                                Vr1
                                                                                  lift
                                                                       Idle

                                                                                         Active
             Vo                                     Introduce   hangup
                                                    Composite                              DialTone
                                  lift
                  Idle                                State                                        dial
                                         DialTone                                                   dial
                             hangup
                                                                                         Dialing

                                          dial

                                Dialing
                    hangup
                                                                 Vr2
                                                                                           lift
                                                                       Idle

                                                                                                  DialTone

                                                                                  hangup
                                                                                                           dial

                                                                                                   dial

                                                                                         Dialing
                                                                         hangup
                                                                                             end_dialing          43
                                                                       hangup      Connecting
C4   Conflict Detection

      Composite operation warning detection
  Diff                                                                        Vr1
 Model1                                                                                         lift
                                                                                     Idle
 !! + -
    +
    +
                                                                                                       Active
                     Vo                                     Introduce         hangup
      Original
                                                            Composite                                    DialTone
       match              Idle
                                          lift
                                                              State                                              dial
     SingleState_0
                                                 DialTone                                                         dial
     Transition_0
                                     hangup
                                                                                                       Dialing
     SingleState_1
                                                  dial
     Transition_1
                                                                                                                                  Composite
                                        Dialing
     SingleState_2          hangup                                                                                                operation
     Transition_2                                                              Vr2                                              is applicable!
                                                                                                         lift
                                                                                     Idle
                                                              SingleState_0
                                                                                                                DialTone
                                                               Transition_0
                                                                                                hangup
                                                              SingleState_1                                              dial

                                                                                                                 dial
                                                               Transition_1

                                                              SingleState_2                            Dialing
                                                                                       hangup

                                                               Transition_2
                                                                                                           end_dialing                    44
                                                                                     hangup      Connecting
C4   Conflict Detection

      Composite operation warning detection
  Diff                                                                        Vr1
 Model1                                                                                         lift
                                                                                     Idle
 !! + -
    +
    +
                                                                                                       Active
                     Vo                                     Introduce         hangup
      Original
                                                            Composite                                    DialTone
       match              Idle
                                          lift
                                                              State                                              dial
     SingleState_0
                                                 DialTone                                                         dial
     Transition_0
                                     hangup
                                                                                                       Dialing
     SingleState_1
                                                  dial
     Transition_1                                                                                                                Your composite
     SingleState_2          hangup
                                        Dialing                                                                                 operation should
                                                                               Vr2                                              include the state
     Transition_2
                                                                                                                                  “Connecting”!
                                                                                                         lift
                                                                                     Idle
                                                              SingleState_0
                                                                                                                DialTone
                                                               Transition_0
                                                                                                hangup
                                                              SingleState_1                                              dial

                                                                                                                 dial
                                                               Transition_1

                                                              SingleState_2                            Dialing
                                                                                       hangup

                                                               Transition_2
                                                                                                           end_dialing                      45
                                                                                     hangup      Connecting
C4   Conflict Detection

      Operation-based conflict detection
         1. Atomic operation conflict detection
         2. Composite operation conflict detection
         3. Signifier warning detection




                                                     46
C4   Conflict Detection

      Signifier warning detection


      Change target                  Change target
          of r1                          of r1




      Change source                  Change source
          of r1                          of r1


                                                     47
C4   Conflict Detection

      Signifier warning detection      The superior meaning
                                        of r1 has been con-
                                        currently changed!


      Change target                  Redefinition
          of r1                         of r1




      Change source                  Redefinition
          of r1                         of r1


                                                        48
C4   Conflict Detection

      Signifier warning detection
          Signifier
              Combination of properties of a model element type
              Convey the “superior meaning” of a model element
                       e.g., the meaning of a reference is mainly conveyed by its name, source, and target




          Signifier specifications (using ECL*)
            rule ReferenceSignifier
                match l : Left!EReference
                with r : Right!EReference {
                compare :
                   l.name = r.name and
                   l.source.isMatched(r.source) and
                   l.target.isMatched(r.target)
            }




          * Epsilon   Comparison Language (ECL), www.eclipse.org/gmt/epsilon                              49
C4    Conflict Detection

       Signifier warning detection
             rule ReferenceSignifier
                 match l : Left!EReference
                 with r : Right!EReference {
                 compare :
                    l.name = r.name and
                    l.source.isMatched(r.source) and
                    l.target.isMatched(r.target)
             }


                                      Vr1


               Match Trigger


 Vo




                                      Vr2


               Match Trigger
                                                       50
C4    Conflict Detection

       Signifier warning detection
             rule ReferenceSignifier
                 match l : Left!EReference
                 with r : Right!EReference {
                 compare :
                    l.name = r.name and
                    l.source.isMatched(r.source) and
                    l.target.isMatched(r.target)
             }


                                       Vr1


               Match Trigger


 Vo                                                                                                  Concurrent
                                   Compare signifier of r1::Vo with r1::Vr1 signifier change     signifier change
                                                                                                 of reference “r1”!
                                   Compare signifier of r1::Vo with r1::Vr2  signifier change    You might want
                                                                                                 to duplicate “r1”?
                                       Vr2


               Match Trigger
                                                                                                            51
C4   Conflict Detection
                                          Adaptation Artifacts


                     Match           Operation                             Signifier                                            Validation
                     Rules         Specifications                        Specifications                                           Rules

                                                                    C4




                             Vr1




                                                    Conflict Detection




                                                                                              Conflict Detection
                                                                          Conflict-tolerant
                                                    Operation-based




                                                                                                State-based


                                                                                                                   Resolution
                                        Operation                                                                                        Vm
                    Vo                  Detection




                                                                              Merge           C4
                             Vr2
                         Adaptable Model Versioning Framework

              cf. PhD thesis by Konrad Wieland                                                        cf. PhD thesis by Petra Brosch




                                                                                                                                              52
Evaluation

 Adaptable Model Versioning Framework
C1




 Model Transformation By Demonstration
C2




 Operation Detection
C3




 Conflict Detection
C4




                                          53
Evaluation

 Model Transformation By Demonstration (MTBD)
C2

      Overall research question
            Is it easier to use our MTBD tool than EMF Tiger*?

      Study design
            57 students (who have no experience in model transformation)
            Specification of two composite operations with both tools
            Questionnaire

      Results
              88 % preferred using our MTBD tool
              74 % indicated that our MTBD tool is easy to use
              Students needed nearly twice as much time using EMF Tiger
              However, 53 % stated that configuring the conditions is hard




     *   EMF Tiger: EMF-based graph transformation tool, user.cs.tu-berlin.de/~emftrans   54
Evaluation

 Operation Detection
C3

      Overall research question
            How accurate is our tool for detecting applications of composite operations?

      Study design
            Applying our tool to the evolution of GMF*
            141 composite operation applications
            342 atomic operation applications


      Results
            98 % precision
                 “How many detected composite operations have actually been correct?”
            70 % recall
                 “How many applied composite operations have been correctly detected?”
            Recall decreases with a growing number of concurrent composite operations
                 Composite operation sequences



     *   Graphical Modeling Framework (GMF), www.eclipse.org/modeling/gmf                   55
Evaluation

 Conflict Detection
C4

      Overall research questions
         How accurate is our tool for detecting atomic conflicts?
         Can the same accuracy be achieved as operation tracking approaches?

      Study design
           Automatically executable benchmark
           23 carefully selected versioning scenarios
           12 of these scenarios include conflicting atomic operations
           Benchmark applied to our tool, EMF Compare*, and EMFStore**


      Results
         Our tool:    100 % precision and recall
         EMF Compare: 67 % precision and 17 % recall
         EMFStore:    100 % precision and recall


     * EMF Compare, http://www.eclipse.org/emf/compare
     ** EMFStore, www.eclipse.org/emfstore/                                     56
Limitations and Future Work

 Adaptable Model Versioning Framework
C1

      Are the provided adaptation points adequate and sufficient?
      Empirical case study required!
 Model Transformation By Demonstration
C2

      Configuring conditions still very challenging
      Further automation of the specification process
      Multiple demonstrations
 Operation Detection
C3

      Overlapping sequences of operations
 Conflict Detection
C4

      Deriving the conflicting opposite operation
       that caused a (composite operation’s pre-)condition to be invalid
      Semantic inconsistencies



                                                                           57
Thank you for your attention!

 Dissertation available
     www.big.tuwien.ac.at/teaching/theses/70
 Open source implementations
     EMF Modeling Operations
        www.modelversioning.org/emf-modeling-operations
     AMOR Conflict Detection
        code.google.com/a/eclipselabs.org/p/amor-conflict-detection




                                                                       58

More Related Content

PDF
Sop - Packaging
PPTX
Technology powerpoint
PPTX
Technology powerpoint
PPTX
Tech blog
PDF
Formacion investigativa-e-investigacion-formativa
PPTX
Njdgarcscmr
PDF
Process Mining - Chapter 1 - Introduction
Sop - Packaging
Technology powerpoint
Technology powerpoint
Tech blog
Formacion investigativa-e-investigacion-formativa
Njdgarcscmr
Process Mining - Chapter 1 - Introduction

Similar to Adaptable Model Versioning using Model Transformation By Demonstration (20)

PDF
Process mining chapter_01_introduction
PDF
Business Process Configuration in the Cloud: How to Support and Analyze Multi...
PDF
Postdoc Symposium - Abram Hindle
PDF
Iswim for testing
PDF
Colex: A Web-based Collaborative Conflict Lexicon
PDF
Deploying Functional Qualification at STMicroelectronics
PDF
Benjamin q4 2008_bristol
PDF
Version control thesis
PDF
S-CUBE LP: Service Versioning, Compatibility and Evolution
PDF
Discovering Concurrency: Learning (Business) Process Models from Examples
PDF
Semantic Enterprise Architecture
PDF
Web2MexADL - CSMR Presentation
PDF
ICSM08a.ppt
PDF
Aras Vision and Roadmap with Aras Innovator PLM Software
PDF
Data Migration In An Agile Open Source World
PDF
M3 Modernization Case Study
PDF
Cardamom Omg
PDF
Cardamom Omg
PPTX
Lets focus on business value
PPTX
Lets focus on business value
Process mining chapter_01_introduction
Business Process Configuration in the Cloud: How to Support and Analyze Multi...
Postdoc Symposium - Abram Hindle
Iswim for testing
Colex: A Web-based Collaborative Conflict Lexicon
Deploying Functional Qualification at STMicroelectronics
Benjamin q4 2008_bristol
Version control thesis
S-CUBE LP: Service Versioning, Compatibility and Evolution
Discovering Concurrency: Learning (Business) Process Models from Examples
Semantic Enterprise Architecture
Web2MexADL - CSMR Presentation
ICSM08a.ppt
Aras Vision and Roadmap with Aras Innovator PLM Software
Data Migration In An Agile Open Source World
M3 Modernization Case Study
Cardamom Omg
Cardamom Omg
Lets focus on business value
Lets focus on business value
Ad

More from Philip Langer (6)

PDF
Tailor made model comparison: How to customize EMF Compare for your modeling ...
PDF
What every Eclipse developer should know about EMF
PDF
Play Framework: The Basics
PPTX
A Brief Introduction to Working with Git
PDF
You need to extend your models? EMF Facet vs. EMF Profiles
PDF
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
Tailor made model comparison: How to customize EMF Compare for your modeling ...
What every Eclipse developer should know about EMF
Play Framework: The Basics
A Brief Introduction to Working with Git
You need to extend your models? EMF Facet vs. EMF Profiles
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
Ad

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Approach and Philosophy of On baking technology
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Reach Out and Touch Someone: Haptics and Empathic Computing
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
Review of recent advances in non-invasive hemoglobin estimation
Approach and Philosophy of On baking technology
NewMind AI Weekly Chronicles - August'25-Week II
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Unlocking AI with Model Context Protocol (MCP)
MIND Revenue Release Quarter 2 2025 Press Release
“AI and Expert System Decision Support & Business Intelligence Systems”
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf

Adaptable Model Versioning using Model Transformation By Demonstration

  • 1. Adaptable Model Versioning using Model Transformation By Demonstration PhD Defense Vienna, 21st of December 2011 Philip Langer Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna, Austria phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896 office@big.tuwien.ac.at, www.big.tuwien.ac.at
  • 2. Introduction Context Adaptable Model Versioning 2
  • 3. Introduction Adaptable Model Versioning Managing the evolution of software artifacts performed by a distributed team. Vo Vr1 Merge Process Developer 1 Check Out Check In Repository Vm Check Out Check In Developer 2 Vo Vr2 t0 t1 t2 t3 3
  • 4. Introduction Adaptable Model Versioning Software models in the context of model-driven engineering. Vo Vr1 Merge Process Developer 1 Check Out Check In Repository Vm Check Out Check In Developer 2 Vo Vr2 t0 t1 t2 t3 4
  • 5. Introduction Adaptable Model Versioning Impedance Mismatch 5
  • 6. Introduction Adaptable Model Versioning  Deficiencies of existing model versioning systems  Modeling editor/language-specific vs. imprecise versioning  Tightly bound to a specific modeling editor or modeling language  Generic and unaware of the specifics of modeling languages  Specification of composite operations (e.g., refactorings)  Currently very challenging task  Requires specific knowledge which untrained users don’t have  Absence of information on applied composite operations  Operation recording  inherently puts restrictions on the modeling editor  Model differencing  no support for detecting composite operations  Insufficient conflict detection  Composite operations are not considered  Important types of conflicts and warnings are neglected P. Brosch, G. Kappel, P. Langer, M. Seidl, K. Wieland, and M. Wimmer. “The Past, Present, and Future of Model 6 Versioning”, in Emerging Technologies for the Evolution and Maintenance of Software Models. IGI Global, 2011.
  • 7. Introduction Adaptable Model Versioning  Generic but adaptable model versioning  Supporting all EMF*-based modeling languages  Adaptation points to incorporate language specifics  Advantages of generic and language-specific versioning systems  AMOR project  Funded by FFG FIT-IT Semantic Systems  Gerti Kappel, Martina Seidl, Manuel Wimmer, Petra Brosch, Horst Kargl, Philip Langer, Werner Retschitzegger, Wieland Schwinger, and Konrad Wieland * Eclipse Modeling Framework (EMF) 7
  • 8. Introduction Adaptable Model Versioning  AMOR merge process Vr1 Conflict Detection Conflict Detection Conflict-tolerant Operation-based State-based Resolution Vm Operation Detection Vo Merge Vr2 P. Brosch, G. Kappel, M. Seidl, K. Wieland, M. Wimmer, H. Kargl, and P. Langer. “Adaptable Model Versioning in 8 Action”. In Modellierung’2010, volume 161 of LNI, pages 221–236. GI, 2010.
  • 9. Introduction Vo Vr2 Vr1  Focus of this dissertation Operation Detection Operation-based Conflict Detection Conflict-tolerant Merge State-based Conflict Detection Resolution Adaptable Model Versioning Vm 9
  • 10. Motivating Examples Violated Preconditions of Composite Operations Add state “Active”, Move states Introduce into “Active”, Composite fold transition State “hangup” dial Rename Rename “hangup” “hangup” 10
  • 11. Motivating Examples Violated Preconditions of Composite Operations Introduce Composite State The preconditions of the refactoring “Introduce Composite State” are violated! dial Rename “hangup” 11
  • 12. Contributions at a Glance Adaptable Model Versioning using Model Transformation By Demonstration Adaptation Artifacts Match Operation Signifier Validation Rules Specifications Specifications Rules C1 Adaptable Model Versioning Framework C2 C4 C2 Composite Operation Specification “Model Transformation By Demonstration” Vr1 Conflict Detection Conflict Detection Conflict-tolerant Operation-based C3 Operation Detection State-based Resolution Operation Vm Detection Vo Merge C4 Conflict and Warning Detection C3 C4 C4 Vr2 C1 Adaptable Model Versioning Framework Existing technology has been reused. 12
  • 13. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual P. Brosch, P. Langer, M. Seidl, K. Wieland, M. Wimmer, G. Kappel, W. Retschitzegger, and W. Schwinger. “An Example 13 Is Worth a Thousand Words: Composite Operation Modeling By-Example”. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MoDELS’09), LNCS. Springer, 2009.
  • 14. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual 14
  • 15. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual 15
  • 16. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual 16
  • 17. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual 17
  • 18. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual 18
  • 19. C2 Model Transformation By Demonstration  Composite operation specification 1 Initial 2 Working Create initial model Copy initial model Modeling model model Revised 3 model Perform updates 5 4 State-based Imply conditions Configuration & Generation comparison Conditions [implied] Diff model 6 Edit conditions Conditions 7 Generate Operation Operation [revised] Specification Specification Legend automatic manual 19
  • 20. C2 Model Transformation By Demonstration  Besides being executable… Adaptation Artifacts Match Operation Signifier Validation Rules Specifications Specifications Rules C2 C4 Vr1 Conflict Detection Conflict Detection Conflict-tolerant Operation-based State-based Resolution Operation Vm Detection Vo Merge C3 C4 C4 Vr2 Adaptable Model Versioning Framework 20
  • 21. C3 Operation Detection  Operation detection process 1. UUID-based matching 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection 21
  • 22. C3 Operation Detection  Operation detection process 1. UUID-based matching 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 22
  • 23. C3 Operation Detection  Operation detection process 1. UUID-based matching 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 23
  • 24. C3 Operation Detection  Operation detection process 1. UUID-based matching 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 24
  • 25. C3 Operation Detection  Operation detection process Diff 1. UUID-based matching Model 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection No difference Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 25
  • 26. C3 Operation Detection  Operation detection process Diff 1. UUID-based matching Model ! 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection ! Transition target changed! Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 26
  • 27. C3 Operation Detection  Operation detection process Diff 1. UUID-based matching Model !! 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection ! Transition source changed! Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 27
  • 28. C3 Operation Detection  Operation detection process Diff 1. UUID-based matching Model !! + 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection + State Active has been added! Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 28
  • 29. C3 Operation Detection  Operation detection process Diff 1. UUID-based matching Model !! + + + 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 29
  • 30. C3 Operation Detection  Operation detection process Diff 1. UUID-based matching Model !! + - + + 2. Rule-based matching 3. Atomic operation detection 4. Composite operation detection - Transition hangup has been deleted! Vo Vr1 lift lift Idle Idle DialTone Active hangup hangup DialTone dial dial Dialing hangup Dialing 30
  • 31. C3 Operation Detection  Composite operation detection process Diff Input Operation Operation Operation Diff Model Model Specification Specification Operation Specification Specifications !! + - ++ «foreach» «foreach» Diff Model Preprocessing Derive Precondition Derive Postcondition Binding Binding Input Operation Operation Operation Signature Specification Specification Signature Precondition Postcondition Binding Binding Preselection Evaluate Binding Evaluate Binding [no diff match] [diff matches] [invalid] [valid] [invalid] [valid] Valid Operation Operation Potential Operation Precondition Operation Operation Specification Specification Occurrence Operation Specification Specification Binding Occurrence 1 2 3 Refactoring Diff Refactoring Operation Occurrence Occurrence Occurrence Model P. Langer, K. Wieland, and P. Brosch. Specification, Execution, and Detection of !! + 31 + - + Refactorings for Software Models. In Proceedings of the WiP Session @ PPPJ’10, 2010.
  • 32. C4 Conflict Detection Input Adaptation Artifacts Diff Match Operation Signifier Validation Model1 Rules Specifications Specifications Rules C4 !! + - + + Vr1 Conflict Detection Conflict Detection Diff Conflict-tolerant Operation-based State-based Resolution Operation Vm Detection Model2 Vo Merge ! + + C4 C4 Vr2 Adaptable Model Versioning Framework 32
  • 33. C4 Conflict Detection  Operation-based conflict detection 1. Atomic operation conflict detection 2. Composite operation conflict detection 3. Signifier warning detection 33
  • 34. C4 Conflict Detection  Operation-based conflict detection 1. Atomic operation conflict detection 2. Composite operation conflict detection 3. Signifier warning detection 34
  • 35. C4 Conflict Detection  Atomic operation conflict detection  Nine conflict patterns for EMF-based models  Delete-use conflict du : DeleteUse delete use do : DeleteObject o : Object fo : FeatureOperation object value {self.oclIsTypeOf(InsertFeatureValue) or self.oclIsTypeOf(FeatureUpdate)}  Update-update conflict uu : UpdateUpdate update1 affected feature Object fo1 : FeatureOperation f : Feature o : Object {upperBound = 1 and fo1.value <> fo2.value} fo2 : FeatureOperation feature affected Object update2  … G. Taentzer, C. Ermel, P. Langer, and M. Wimmer. “A Fundamental Approach to Model Versioning Based on Graph Modifications”. Submitted to Software and System Modeling. Springer, 2011. 35
  • 36. C4 Conflict Detection  Operation-based conflict detection 1. Atomic operation conflict detection 2. Composite operation conflict detection 3. Signifier warning detection 36
  • 37. C4 Conflict Detection  Composite operation conflict detection For each composite operation application, check whether it is applicable at the opposite side Vo Diff Model1 !! + - + + Vr1 Vr2 !! + + + 37
  • 38. C4 Conflict Detection  Composite operation conflict detection  Revisiting the motivating example Vr1 lift Idle Active Vo Introduce hangup Composite DialTone lift Idle State dial DialTone dial hangup Dialing dial Dialing hangup Vr2 lift Idle DialTone abort dial dial Dialing hangup 38
  • 39. C4 Conflict Detection  Composite operation conflict detection Diff  Revisiting the motivating example Vr1 Model1 lift Idle !! + - + + Active Vo Introduce hangup Original Composite DialTone match Idle lift State dial SingleState_0 DialTone dial Transition_0 hangup Dialing SingleState_1 dial Transition_1 Precondition of Dialing SingleState_2 hangup composite Transition_2 Vr2 operation is lift violated! Idle SingleState_0 DialTone Transition_0 abort SingleState_1 dial Transition_1.name = Transition_2.name dial Transition_1 SingleState_2 Dialing hangup Transition_2 39
  • 40. C4 Conflict Detection  Composite operation warning detection For each composite operation application, check whether its match size increased at the opposite side Vo Diff Model1 !! + - + + Vr1 Vr2 !! + + + 40
  • 41. C4 Conflict Detection  Composite operation warning detection Add state “Active”, Move states into “Active”, Introduce fold transition Composite “hangup” State dial Add state Add state “Connecting” “Connecting” 41
  • 42. C4 Conflict Detection Your composite  Composite operation warning detection operation should incorporate opposite operations! Introduce Introduce Composite Composite State State dial Add state Add state “Connecting” “Connecting” 42
  • 43. C4 Conflict Detection  Composite operation warning detection Vr1 lift Idle Active Vo Introduce hangup Composite DialTone lift Idle State dial DialTone dial hangup Dialing dial Dialing hangup Vr2 lift Idle DialTone hangup dial dial Dialing hangup end_dialing 43 hangup Connecting
  • 44. C4 Conflict Detection  Composite operation warning detection Diff Vr1 Model1 lift Idle !! + - + + Active Vo Introduce hangup Original Composite DialTone match Idle lift State dial SingleState_0 DialTone dial Transition_0 hangup Dialing SingleState_1 dial Transition_1 Composite Dialing SingleState_2 hangup operation Transition_2 Vr2 is applicable! lift Idle SingleState_0 DialTone Transition_0 hangup SingleState_1 dial dial Transition_1 SingleState_2 Dialing hangup Transition_2 end_dialing 44 hangup Connecting
  • 45. C4 Conflict Detection  Composite operation warning detection Diff Vr1 Model1 lift Idle !! + - + + Active Vo Introduce hangup Original Composite DialTone match Idle lift State dial SingleState_0 DialTone dial Transition_0 hangup Dialing SingleState_1 dial Transition_1 Your composite SingleState_2 hangup Dialing operation should Vr2 include the state Transition_2 “Connecting”! lift Idle SingleState_0 DialTone Transition_0 hangup SingleState_1 dial dial Transition_1 SingleState_2 Dialing hangup Transition_2 end_dialing 45 hangup Connecting
  • 46. C4 Conflict Detection  Operation-based conflict detection 1. Atomic operation conflict detection 2. Composite operation conflict detection 3. Signifier warning detection 46
  • 47. C4 Conflict Detection  Signifier warning detection Change target Change target of r1 of r1 Change source Change source of r1 of r1 47
  • 48. C4 Conflict Detection  Signifier warning detection The superior meaning of r1 has been con- currently changed! Change target Redefinition of r1 of r1 Change source Redefinition of r1 of r1 48
  • 49. C4 Conflict Detection  Signifier warning detection  Signifier  Combination of properties of a model element type  Convey the “superior meaning” of a model element  e.g., the meaning of a reference is mainly conveyed by its name, source, and target  Signifier specifications (using ECL*) rule ReferenceSignifier match l : Left!EReference with r : Right!EReference { compare : l.name = r.name and l.source.isMatched(r.source) and l.target.isMatched(r.target) } * Epsilon Comparison Language (ECL), www.eclipse.org/gmt/epsilon 49
  • 50. C4 Conflict Detection  Signifier warning detection rule ReferenceSignifier match l : Left!EReference with r : Right!EReference { compare : l.name = r.name and l.source.isMatched(r.source) and l.target.isMatched(r.target) } Vr1 Match Trigger Vo Vr2 Match Trigger 50
  • 51. C4 Conflict Detection  Signifier warning detection rule ReferenceSignifier match l : Left!EReference with r : Right!EReference { compare : l.name = r.name and l.source.isMatched(r.source) and l.target.isMatched(r.target) } Vr1 Match Trigger Vo Concurrent Compare signifier of r1::Vo with r1::Vr1 signifier change signifier change of reference “r1”! Compare signifier of r1::Vo with r1::Vr2  signifier change You might want to duplicate “r1”? Vr2 Match Trigger 51
  • 52. C4 Conflict Detection Adaptation Artifacts Match Operation Signifier Validation Rules Specifications Specifications Rules C4 Vr1 Conflict Detection Conflict Detection Conflict-tolerant Operation-based State-based Resolution Operation Vm Vo Detection Merge C4 Vr2 Adaptable Model Versioning Framework cf. PhD thesis by Konrad Wieland cf. PhD thesis by Petra Brosch 52
  • 53. Evaluation  Adaptable Model Versioning Framework C1  Model Transformation By Demonstration C2  Operation Detection C3  Conflict Detection C4 53
  • 54. Evaluation  Model Transformation By Demonstration (MTBD) C2  Overall research question  Is it easier to use our MTBD tool than EMF Tiger*?  Study design  57 students (who have no experience in model transformation)  Specification of two composite operations with both tools  Questionnaire  Results  88 % preferred using our MTBD tool  74 % indicated that our MTBD tool is easy to use  Students needed nearly twice as much time using EMF Tiger  However, 53 % stated that configuring the conditions is hard * EMF Tiger: EMF-based graph transformation tool, user.cs.tu-berlin.de/~emftrans 54
  • 55. Evaluation  Operation Detection C3  Overall research question  How accurate is our tool for detecting applications of composite operations?  Study design  Applying our tool to the evolution of GMF*  141 composite operation applications  342 atomic operation applications  Results  98 % precision  “How many detected composite operations have actually been correct?”  70 % recall  “How many applied composite operations have been correctly detected?”  Recall decreases with a growing number of concurrent composite operations  Composite operation sequences * Graphical Modeling Framework (GMF), www.eclipse.org/modeling/gmf 55
  • 56. Evaluation  Conflict Detection C4  Overall research questions  How accurate is our tool for detecting atomic conflicts?  Can the same accuracy be achieved as operation tracking approaches?  Study design  Automatically executable benchmark  23 carefully selected versioning scenarios  12 of these scenarios include conflicting atomic operations  Benchmark applied to our tool, EMF Compare*, and EMFStore**  Results  Our tool: 100 % precision and recall  EMF Compare: 67 % precision and 17 % recall  EMFStore: 100 % precision and recall * EMF Compare, http://www.eclipse.org/emf/compare ** EMFStore, www.eclipse.org/emfstore/ 56
  • 57. Limitations and Future Work  Adaptable Model Versioning Framework C1  Are the provided adaptation points adequate and sufficient?  Empirical case study required!  Model Transformation By Demonstration C2  Configuring conditions still very challenging  Further automation of the specification process  Multiple demonstrations  Operation Detection C3  Overlapping sequences of operations  Conflict Detection C4  Deriving the conflicting opposite operation that caused a (composite operation’s pre-)condition to be invalid  Semantic inconsistencies 57
  • 58. Thank you for your attention!  Dissertation available  www.big.tuwien.ac.at/teaching/theses/70  Open source implementations  EMF Modeling Operations  www.modelversioning.org/emf-modeling-operations  AMOR Conflict Detection  code.google.com/a/eclipselabs.org/p/amor-conflict-detection 58