version control for graph-based models z. protić m. f. van amstel m.g.j. van den brand
Post on 22-Dec-2015
221 views
TRANSCRIPT
PAGE 2
Outline
• Goals• Software versioning• Model versioning• Graphs as basis for models• Versioning graphs• Versioning of graph-based models• Tool architecture
PAGE 3
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 4
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 5
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 6
Model versioning
• Tries to solve the inability of existing software versioning systems to deal with models of software artifacts*
*Odysey-VCS: a Flexible Version Control System for UML Model Elements, H. Oliveiar et. al., SCM 2005
Document
Paragraph
Phrase
Word
Package
Class
Method
Statement
Model
Package
Class
Operation
Text file Java program UML XMI file
V
V
V
C
C
V: Unit of versioningC: Unit of comparison
PAGE 7
Model versioning
• Challenges:• Represent models (in enough detail)• Store models• Calculate differences (deltas) between models• Describe and resolve conflicts while synchronizing
models
PAGE 8
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 10
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).
Example graph
O1
O2
O3
O4
O1, O2, E1
O1, O4, E2
Textual representation
Bi-directionaltransformation
PAGE 11
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 12
Graphs as basis for models
A
B: Int
<class>
A
ID1
<attribute>
B
<type>
Int
ID2 ID3
• Example: simple UML class diagram
PAGE 14
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.