A model is an abstract representation of a software system and is an appropriate solution to cope with the complexity of software. Based on this fact, Model-Driven Development is an approach to software development that employs models as main artifacts for building software systems. With the increase in the number of designers in a team, different versions of a model can be generated during the development process, especially in the design phase. To manage these versions, it is required to identify differences and reconcile them in a single yet integrated model. Due to the fact that the changes in a model could be inconsistent, at the time of merging, the merger should be provided an equipment to detect and resolve conflicts resulting from these changes. This, not only requires the knowledge of the structure and syntax of the models, but also the semantic concepts of models must be considered, and semantic conflicts are to be fixed. However, so far there is not an appropriate solution to detect and resolve semantic conflicts in models.
In this thesis, three approaches to detect and resolve the semantic conflicts are presented. The first approach, receives some assumptions from the designer before the merging, and then uses the algorithm to determine the elements that are semantically equivalent. This provides the prerequisite step to detect and resolve semantically equivalent conflicts. The second approach uses the semantic rules of the modeling language to validate the merging and, detects and fixes the static semantic conflicts. In order to implement the solution, first we present a model merging process. This process is a three-way merging method that is implemented as a tool called Three-Way Merger, then approaches to detect and resolve conflicts are added to this tool. Evaluation results of executing two existing benchmarks by “Three-Way Merger” tool, indicates that the merged version is valid and the accuracy of conflict detection and resolution is improved. The third approach detects behavioral semantic conflicts by verifying the merged model. This verification is performed by considering other behavioral models of the system. The case study done by this approach reflects good performance in the detection of behavioral semantic conflicts. Another finding of this study is to provide the semantic conflict model that allows visualization of detected semantic conflicts.
Papers in English
- A Formalism for Specifying Model Merging Conflicts
- A comparison of quality flaws and technical debt in model transformation specifications
- Configurable Three-way Model Merging
- Comparative Case Studies in Agile Model-Driven Development
- The Impact of Integrating Agile Software Development and Model-Driven Development: A Comparative Case Study
- Technical Debt in Model Transformation Specifications
- A survey of model transformation design patterns in practice
- A UML profile for modeling the conflicts in model merging
- Solving the state elimination case study using Epsilon
- A survey of model transformation design pattern usage
- Optimization of model transformation output using genetic algorithm
- Towards automatic generation of formal specifications for UML consistency verification
Papers in Persian