Skip to content

Latest commit

 

History

History
314 lines (300 loc) · 13.1 KB

supplements.md

File metadata and controls

314 lines (300 loc) · 13.1 KB

Supplements

Section 6.3.1 Experimental setting

Conflict graph for the Pac-Man case

Logo

Conflict graph for the MM-Refactoring case

Logo

List of all the rules related to the MM-Refactoring case

  • Rename Attribute. Attribute name changes
  • Rename Method. Method name changes
  • Rename Reference. Reference name changes
  • Merge Reference. References of a class merge as a reference with a type to another class.
  • Move Attribute. Attribute moves from one class to another class.
  • Move Method. Method of a class moves to another class
  • Flatten Hierarchy Attribute. The supertype has been removed and the attributes of the supertype have been duplicated in each subclass.
  • pull-up Method. A method in subclass after refactoring pulls up to superclass.
  • Flatten Hierarchy Reference. The supertype has been removed and the reference of the supertype has been duplicated in each subclass.
  • Pull-up Attribute. Attribute in subclass after refactoring pulls up to superclass.
  • Push-down Method. A method in superclass after refactoring pushes down to subclass.
  • Push-down Attribute. Attribute in superclass after refactoring pushes down to subclass.
  • Push-down Reference. Reference in superclass after refactoring pushes down to subclass.
  • Extract Superclass Attribute. A new superclass has been created with the attribute A property that was initially in a subclass.
  • Move Reference. Reference moves from one class to another class.
  • Merge Meta-class Attribute. After merging two classes that were inherited from a shared superclass, the attributes connected to subclasses were saved into the new merged class.
  • Pull-up Reference. Reference in subclass after refactoring pulls up to superclass.
  • Merge Meta-class Reference. After merging two classes that were inherited from a shared superclass, the references connected to subclasses were saved into the new merged class.
  • Remove Middle-man. Delete the middle access methods and force the client to call the end methods directly.

The list of all the orders for both the Pac-Man and the MM-Refactoring cases

The list of order for the Pac-Man case

  • Ordered
    • 1. "ghost moves down", "pacman eats food", "pacman moves right"
    • 2. "ghost moves up", "pacman moves left"
    • 3. "ghost moves left", "pacman moves down"
    • 4. "ghost moves right", "pacman moves up"
    • 5. "ghost moves", "pacman dies"
    • 6. "pacman moves"
  • Reverse order
    • 6. "pacman moves"
    • 5. "ghost moves", "pacman dies"
    • 4. "ghost moves right", "pacman moves up"
    • 3. "ghost moves left", "pacman moves down"
    • 2. "ghost moves up", "pacman moves left"
    • 1. "ghost moves down", "pacman eats food", "pacman moves right"
  • Random 1
    • 5. "ghost moves", "pacman dies"
    • 4. "ghost moves right", "pacman moves up"
    • 6. "pacman moves"
    • 2. "ghost moves up", "pacman moves left"
    • 1. "ghost moves down", "pacman eats food", "pacman moves right"
    • 3. "ghost moves left", "pacman moves down"
  • Random 2
    • 4. "ghost moves right", "pacman moves up"
    • 6. "pacman moves"
    • 1. "ghost moves down", "pacman eats food", "pacman moves right"
    • 5. "ghost moves", "pacman dies"
    • 3. "ghost moves left", "pacman moves down"
    • 2. "ghost moves up", "pacman moves left"
  • Random 3
    • 2. "ghost moves up", "pacman moves left"
    • 3. "ghost moves left", "pacman moves down"
    • 5. "ghost moves", "pacman dies"
    • 1. "ghost moves down", "pacman eats food", "pacman moves right"
    • 6. "pacman moves"
    • 4. "ghost moves right", "pacman moves up"
  • Random 4
    • 3. "ghost moves left", "pacman moves down"
    • 1. "ghost moves down", "pacman eats food", "pacman moves right"
    • 2. "ghost moves up", "pacman moves left"
    • 6. "pacman moves"
    • 4. "ghost moves right", "pacman moves up"
    • 5. "ghost moves", "pacman dies"

The list of order for the MM-Refactoring case

  • Ordered
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 8. "Merge Meta-class Reference"
    • 9. "Remove Middle-man"
  • Reverse order
    • 9. "Remove Middle-man"
    • 8. "Merge Meta-class Reference"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
  • Random 1
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 9. "Remove Middle-man"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 8. "Merge Meta-class Reference"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
  • Random 2
    • 5. "Push-down Attribute", "Push-down Reference"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 9. "Remove Middle-man"
    • 8. "Merge Meta-class Reference"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 6. "Extract Superclass Attribute", "Move Reference"
  • Random 3
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 8. "Merge Meta-class Reference"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 9. "Remove Middle-man"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
  • Random 4
    • 8. "Merge Meta-class Reference"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 9. "Remove Middle-man"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
  • Random 5
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 9. "Remove Middle-man"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 8. "Merge Meta-class Reference"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 5. "Push-down Attribute", "Push-down Reference"
  • Random 6
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 8. "Merge Meta-class Reference"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 9. "Remove Middle-man"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
  • Random 7
    • 2. "Merge Reference", "Move Attribute", "Move Method"
    • 7. "Merge Meta-class Attribute", "Pull-up Reference"
    • 6. "Extract Superclass Attribute", "Move Reference"
    • 3. "Flatten Hierarchy Attribute", "Extract Superclass Reference", "Pull-up Method"
    • 4. "Flatten Hierarchy Reference", "Pull-up Attribute", "Push-down Method"
    • 9. "Remove Middle-man"
    • 5. "Push-down Attribute", "Push-down Reference"
    • 1. "Rename Attribute", "Rename Method", "Rename Reference"
    • 8. "Merge Meta-class Reference"

Sizes of all metamodels involved in the case study

Name #Class #Association #Attribute
UML 1.4.2 39 37 31
UML 2.0 43 75 18
gmfgraph V-1.29 69 45 63
gmfgraph V-1.30 73 51 65
gmfmappings V-1.45 34 62 19
gmfmappings V-1.46 36 65 19
gmfmappings V-1.48 36 66 19
gmfmappings V-1.49 38 66 19
gmfmappings V-1.51 40 66 21
gmfmappings V-1.52 39 66 21
gmfmappings V-1.55 39 66 22
gmfmappings V-1.56 39 67 22