Version control for graphbased models Z Proti M

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 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 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 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 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 6

Model versioning • Challenges: • • Represent models (in enough detail) Store models Calculate differences (deltas) between models Describe and resolve conflicts while synchronizing models 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 8

Versioning graphs • Graphs consist of: • Labeled nodes • Labeled edges Example graph 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 O 1 O 2 O 3 O 4 O 1, O 2, E 1 O 1, O 4, E 2 Textual representation 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). 11

Graphs as basis for models • Example: simple UML class diagram <class> <attribute> <type> ID 1 ID 2 ID 3 A B Int A B: Int 12

Graphs as basis for models: Graphs for more complex model types 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. 14

Graph-based model versioning 15

Graph-based model versioning tool architecture 16

Use-case: Application of a model version tool for versioning of UML class diagrams 17

Use-case: Application of a model version tool for versioning of UML class diagrams 18

Use-case: Application of a model version tool for versioning of UML class diagrams 19

Use-case: Application of a model version tool for versioning of UML class diagrams 20
- Slides: 20