Graph-based model versioning system

Version control for
graph-based models
Z. Protić
M. F. van Amstel
M.G.J. van den Brand
Outline
•
•
•
•
•
•
•
Goals
Software versioning
Model versioning
Graphs as basis for models
Versioning graphs
Versioning of graph-based models
Tool architecture
PAGE 2
Goals
• Create a system that is able to put multiple types of
models under version control
• The models in place are amongst others: labeled
transition systems, UML diagrams, Petri nets,…
• This system should be able to work with tooling
available at the market
PAGE 3
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)
• Software versioning and revision control form the basis for
software configuration management (SCM).
• Quite suitable for text-based files (CVS, SVN).
• Used in most large software projects
PAGE 4
Software versioning:
Revision of SCM features
• SCM basic features:
•
•
•
•
Adding documents to a repository
Retrieving documents from a repository
Committing documents into a repository
Resolving conflicts that occur during the process of
committing
PAGE 5
Model versioning
• Tries to solve the inability of existing software versioning
systems to deal with models of software artifacts*
Text file
Java program
UML XMI file
Model
Document
V
Package
Paragraph
C
Class
Phrase
Method
Word
Statement
V
V
Package
Class
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 6
Model versioning
• Challenges:
•
•
•
•
Represent models (in enough detail)
Store models
Calculate differences (deltas) between models
Describe and resolve conflicts while synchronizing
models
PAGE 7
Model versioning:
Representation of differences
•
•
•
•
•
•
State based:
Models are represented as sets of entities and
relations.
Differences are expressed in terms of states of entities
and relations in initial and final model (present or
absent).
Operation based:
Models are represented as operations required to
produce a model.
Difference are expressed in terms of operations
required to come from initial to final model
PAGE 8
Versioning graphs
• Graphs consist of:
• Labeled nodes
• Labeled edges
Example graph
PAGE 9
Versioning graphs
• Graphs can be transformed to structured text.
• Text can be versioned by SVN (or …).
• Differences expressed in terms of added/removed
nodes and edges (state based).
Bi-directional
transformation
Example graph
O1
O2
O3
O4
O1, O2, E1
O1, O4, E2
Textual representation
PAGE 10
Graphs as basis for models
• Claim: Most models describing software artifacts can
be transformed into graphs.
• However the transformation is different for every
model type (for every meta-model).
PAGE 11
Graphs as basis for models
• Example: simple UML class diagram
<class>
<attribute>
<type>
ID1
ID2
ID3
A
B
Int
A
B: Int
PAGE 12
Graphs as basis for models:
Graphs for more complex model types
PAGE 13
Graphs as basis for models
• 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
model.
• Unit of comparison is defined by the user.
PAGE 14
Graph-based model versioning
PAGE 15
Graph-based model versioning tool
architecture
PAGE 16
Use-case: Application of a model version tool
for versioning of UML class diagrams
PAGE 17
Use-case: Application of a model version tool
for versioning of UML class diagrams
PAGE 18
Use-case: Application of a model version tool
for versioning of UML class diagrams
PAGE 19
Use-case: Application of a model version tool
for versioning of UML class diagrams
PAGE 20