Download presentation
Presentation is loading. Please wait.
Published byRalf Byrd Modified over 9 years ago
1
Version Control for Graphs as a Basis of Version Control for Models Z. Protić M. F. van Amstel M.G.J. van den Brand T. Verhoeff
2
PAGE 2 Problem statement Define a generic method for version control of models It should work for graph-based models It should be possible to use it with existing tools It should be easy to use
3
PAGE 3 Solution Represent all models as graphs Use state-based versioning Differences are calculated based on structure of the models Use the experience of the existing versioning systems (CVS, SVN) to define the functions of the model versioning system
4
PAGE 4 Graphs used to represent models Graphs consist of: Labeled nodes −Each node is uniquely identified Labeled edges Example graph
5
PAGE 5 Graphs used to represent models Graphs can be transformed to structured text. Example graph O1 O2 O3 O4 O1, O2, E1 O1, O4, E2 Textual representation Bi-directional transformation
6
PAGE 6 Graph-based model versioning system: Architecture
7
PAGE 7 Example graph representation of a model A B: Int A ID 1 B Int ID 2 ID 3 Kolovos, D.S., Di Ruscio, D., Pierantonio, A., Paige, R.F.: “Different models for model matching: An analysis of approaches to support model differencing” ICSE Workshop on Comparison and Versioning of Software Models (2009) 1-6
8
PAGE 8 Graph-based model versioning system: Architecture
9
PAGE 9 Graph-based model versioning system: Differences detection M. F. van Amstel, M. G. J. van den Brand, Z. Protic, T. Verhoef: “Graph-based calculation and representation of metamodel-independent model differences” Submitted to FASE 2010
10
PAGE 10 Questions ?
11
PAGE 11 Graph Differences
12
PAGE 12 Templating language ::= "TEMPLATE" "(" ")" "->" "[" "]" "uses" ":" ::= ::= | | "," ::= | ";" ::= | | | | ::= | | ::= "empty(" ")" ::= | ::= | "," | "," | ::= "[" "]" "=" "match(" "(" ")" ")" ::= "[" "]" "=" "union(" "[" "]", "[" "]" ")" ::= "[" "]" "=" "intersect(" "[" "]", "[" "]" ")" ::= "[" "]" "=" "subtract(" "[" "]", "[" "]" ")" ::= "{" "}" ::= | ::= "$" ::= | ::= ::= | ::= | | ::= "A"|"a"|...|"Z"|"z" ::= "_"|"="|":" ::= "0"|"1"|...|"9"
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.