Generic Model Difference CalculationBachelorarbeit in der Abteilung Softwaretechnik
Collaborative modelling is a key component of software development. There are currently no versioning systems available, that support the modelling process in a way that doesn't restrict developers to a certain modelling tool. Versioning is based on differences that are stored and used to create different versions of the versioned objects. These differences are being calculated by difference calculation algorithms that calculate the difference between two versioned objects. A general algorithm for difference calculation is being presented in this thesis.
Research on current model difference calculation algorithms provides an appropriate algorithm that is chosen based on runtime complexity, detection correctness and the general capability to handle any model type or language. To validate the correctness of the chosen algorithm, a tool that calculates differences between two UML activity diagrams is exemplary conceptualised and implemented. As a result, the chosen algorithm and the concept of the examplary implementation of a difference calculation tool could be used for general model difference calculation in a model versioning system.
Prof. Dr. Andreas Winter ()
Dr.-Ing. Dilshodbek Kuryazov ()
Since large scaled software models typically exist in many revisions, extraction and representation of differences between versions is a crucial issue of model versioning systems. While handling model differences is playing an essential role in evolution of models, there is a need for appropriate techniques to maintain model changes and analyse model histories. This PhD thesis intents to reveal appropriate approaches to versioning software models which is substantial challenge of current MVCS.
Graphs and algorithms using graphs as data structure allow the flexible creation, analysis, and storage of information. Main advantage is the high performance of searching within typed graphs which allows the usage of graphs conform to a graph schema in software engineering for lots of purposes. This research area targets approaches, techniques, and tools to create, improve, analyze, and store graphs, graph schemas, and graph algorithms.