Version control for graph-based models Z. Protić M. F. van Amstel M.G.J. van den Brand.

20
Version control for graph-based models Z. Protić M. F. van Amstel M.G.J. van den Brand
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    0

Transcript of Version control for graph-based models Z. Protić M. F. van Amstel M.G.J. van den Brand.

Version control for graph-based models

Z. Protić

M. F. van Amstel

M.G.J. van den Brand

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 9

Versioning graphs

• Graphs consist of:• Labeled nodes

• Labeled edges

Example graph

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 13

Graphs as basis for models:Graphs for more complex model types

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.

PAGE 15

Graph-based model versioning

PAGE 16

Graph-based model versioning tool architecture

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

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