Analysis of Software Models’ Processing Operations

. Abstract Software models, represented as UML diagrams, are central development artifacts in Model-Driven Development approach. Convenient of their usage is explained by the fact that visual representation of requirements, architecture, test cases, and others provide easy and precise communication between stakeholders. To process software models analytically it is necessary to design fundamental approaches and tools for transforming their text, namely XMI representation, into analytical form. Then in order to design techniques and software tools allowing flexible processing of software models it is necessary to analyze the surface of software models’ processing operations in details. This article proposes such an analysis.


Introduction
There are plenty of tools and fundamental analytical approaches designed to process software models. Popular tools for software models' processing are Medini-QVT, ATL, AMOR, EMF Compare, and many other Eclipse plug-ins for solving some tasks in AGILE development [1].
In order to develop such software tools, it is necessary to provide an analytical background for software models processing. This background is based on possibilities of analytical approaches, involved to software engineering fundamentals. Such approaches are logics of the first and second orders, predicate calculus, methods for analysis of some software development artifacts surface and many others.
Many software companies need to adopt software development lifecycle for peculiarities of their work. That why many tools have already defined functionality and this functionality can't be spread. Companies use collaboration of software tools and perform some operations manually. In order to take this barrier it is necessary to investigate the analytical foundations of software models processing and define challenges for analytical approaches and tools for software models' processing.

Result
In order to define "building bricks" for performing different software models' processing operations the workflow, namely sequence of actions, for performing different operations of software models' processing was investigated [1][2][3][4]. The results of this investigation are represented in the Figure 1.

Refinement:
Refinement is an operation of performing small changes into software models. Usually it is based on software models' comparison with some template. To perform it is necessary to provide operation of preliminary comparison with the aim to define preliminary matching templates. That why for performing refinement operation it is necessary to form several types of elements on different software models, namely list of elements that match full to both diagrams and list of preliminary matching elements. The main complexity of refinement is to provide algorithms for preliminary software models' comparison, because the criterion of precision defines the view of future software model structure (Figure 1a).

Merging:
Merging procedure allows combining two (or several) software models together. In order to accomplish this task it is necessary to solve merging conflict after merging software models together. Types of merging conflict: extra links from some objects, link without objects, two objects of different type instead of one (Figure 1b).
Transformation: Aim of software model transformation operation is to save the semantic of model but using other notation. Notation is defined by types of UML diagrams. In order to perform this operation it is necessary to select elements or group of elements that can be transformed to other semantics and propose corresponding transformation rules to prepare new software model in quite different notation (Figure 1c).

Conclusion
Surface analysis of software models' processing operation allows to focus attention on operations that are necessary to be performed in order to do some task. Representation of artifacts, necessary to be obtained for performing some operation, is a background to develop software tools, for example service for successful performing of all operation. Also, dividing software models' operations to tasks and pointing to expected artifacts allow reusing analytical tools and approaches software models processing.