Learning Center
Plans & pricing Sign in
Sign Out
Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Graph-based model versioning system


									Version control for
graph-based models

Z. Protić
M. F. van Amstel
M.G.J. van den Brand
Graph versioning

• Why …

• What is …

• How is … done

                   PAGE 2
Software versioning

• “The process of assigning unique identifiers to
  different states of software”

• Allows for temporal and logical relation of states of
  computer software (version 1.0 precedes version 2.0
  and is less advanced)

• Used in most large software projects

                                                     PAGE 3
    Software versioning

               Text file                          Java program                             UML XMI file

             Document               V                 Package                                    Model    V

             Paragraph              C                    Class             V                   Package

                Phrase                                 Method                                    Class

                 Word                                Statement             C                  Operation

          V: Unit of versioning
          C: Unit of comparison
*Odysey-VCS: a Flexible Version Control System for UML Model Elements, H. Oliveiar et. al., SCM 2005          PAGE 4
Graph versioning

• Graphs consist of:
 • Labeled nodes
 • Labeled edges

                   Example graph

                                   PAGE 5
Graph versioning

• Graphs can be uniquely transformed to structured text.
• Text can be versioned by existing Software Versioning System
  (SVN, CVS, BitKeeper, Perforce, Mercurial, Bazaar, …).
• Differences are expressed in terms of added/removed nodes
  and edges.

                          Bi-directional         O3
                         transformation          O4
                                                 O1, O2, E1
                                                 O1, O4, E2

       Example graph                       Textual representation

                                                                    PAGE 6
Graph versioning system architecture

                                       PAGE 7
Graphs as basis for models

• Most models describing software artifacts can be
  transformed into graphs.
• However the transformation is different for every
  model type (for every meta-model).

                                                      PAGE 8
Graphs as basis for models
Simple example

                 <class>   <attribute>   <type>

                  ID1         ID2         ID3
      B: Int

                   A           B          Int

                                                  PAGE 9
Graphs as basis for models
Complex example

                             PAGE 10
Graph-based model versioning system

                                      PAGE 11
Graph-based model versioning tool

                                    PAGE 12
Model versioning

• Generic approach
 • Models are represented as graphs.
 • Differences are calculated on graphs, and hence are
   state based.
 • Unit of versioning is the graph representation of the
 • Unit of comparison is defined by the user.

                                                           PAGE 13

To top