Model Driven Engineering (MDE) Tools: A Survey

: Model Driven Engineering (MDE) is a new discipline in software engineering that advocates the massive use of models throughout the software development process. The emergence of this discipline has been accompanied by the prosperity of the tools that support it. On the long run, switching to MDE can be beneficial in case the process works, and the process itself depends on the tools. Since the transition is expensive, it is important to invest wisely, and choose the right tool. However, only recently tool creators have started considering metamodeling as an important issue in their list of concerns and university prototypes are sometimes difficult to download and test, so these tools remain little known overall and need to be listed. The aim of this article is to determine the strengths and weaknesses of the support that each of these MDE tools offer to the developer’s tasks, in order to learn to identify the right tool that meets the specific needs of the software engineer, without recommending any particular tool or vendors: It will present a significant number of the most popular MDE tools, in order to keep this paper simple, list some criteria for comparing these tools and evaluate them against those criteria.


Introduction
The pressure to reduce the time-to-market and the ever growing design difficulties require new research efforts to adopt languages with high abstraction level or/and new approaches to cope with that. Model Driven Engineering (MDE) is the current betting to raise the design abstraction level and to provide mechanisms to improve the portability, interoperability, maintainability, and reusability of models [1]. In addition, MDE helps to abstract platform complexity and to represent different concerns of the system [2]. Model Driven Engineering (MDE) is a new discipline in software development that has emerged following the emergence of the Model Driven Architecture (MDA) initiative [7]. If the MDA's goal is limited to modeling a system in the form of a PIM and then transforming it into a PSM [14], the MDE goes beyond that goal and generalizes the use and transformation of models throughout the software development cycle [13]. From the developer's point of view [12], a key issue for acceptance of any approach is good tool support so that software programs can be created in an easy and efficient manner. However, only recently have tool creators started considering metamodeling as an important issue in their list of concerns [4]. It is still rare to find a development tool that has explicit support for metamodel creation and/or configuration, which can be surprising if that meta-modeling, is considered one of the founding principles of MDE [10]. This means that, until recently, a developer who wanted to use a certain metamodel would probably have to either create a new modeling tool, which is not reasonable at all or settle on a CASE tool (with a hard-coded meta-model) that allows to perform the desired task with the least possible hassle [2]. However, adding metamodeling support to a tool does bring some practical issues that should be mentioned, such as separating the object-oriented programming languages class-instance relation from the meta-model-model relation [11], deciding whether the number of logical levels should be limited or potentially unbounded, and deciding whether the tool should support model transformation and/or code generation [3]. The final purpose of this article is to determine the strengths and weaknesses of the support that each of these MDE tools offer to the developer's tasks without recommending any particular tool or vendors. This article is divided as follows. Section two describes some MDE tools. Section three presents some criteria for comparing these tools and gives the results of their evaluation against these criteria. The last section summarizes this paper.

Tools Supporting Model Driven Engineering
Tools that proclaimed MDE are distributed among powerful commercial tools and university prototypes sometimes difficult to download and test. The following list shows some of the most popular among these tools [5]: Table 1. Most popular MDE Tools [5,8,9,15].

Criteria for Comparing
There have been various studies characterizing and/or comparing development tools oriented models. Most of these are focused toward MDA tools that are without discussion, the most popular. To compare the tools, it is necessary to choose the characteristics that are going to assess each of them. There are several criteria that can be adopted for comparing MDE tools [6] [7]. These criteria differ depending on the type of the interest in these tools. The following features are selected from the related works in recent years: 1) Update time (UP): The tool is updated regularly (a), sometimes (b) or never (c). Information not available (d). graphical concrete syntax (a), has textual concrete syntax (b), has both graphical and textual concrete syntax (c), its abstract syntax/meta-modeling language is EMOF (d), its abstract syntax/metamodeling language is CMOF (e), supports both EMOF and CMOF meta-modeling languages (f), its abstract syntax/meta-modeling language is Ecore/EMF (g), its abstract syntax/meta-modeling language is KM3 (h), other meta-modeling languages (i) or the tool support semantic of modeling language (j). Information not available (k). 10) Level of Abstraction (LA): The tool supports dynamic models (a), supports static models (b) or the tool supports both static and dynamic models (c).
Information not available (d).

The Evaluation Results
This evaluation is limited to popular tools in order to keep the evaluation and this article simple. These tools were chosen also because this set is a good representative of the current status of MDE-supporting tools currently available, they also presented enough differences amongst themselves to justify their inclusion in this evaluation [5]. Although these tools do not reflect everything that is currently available in MDE tools, they address the MDE based approaches defined earlier by providing the features that can often be found in typical tools of their corresponding approach.

Conclusion
The introduction of Model-Driven Development means a change in the process and change of development software. Process changes take time and are expensive, while replacing the tools means lower developer productivity under the learning period and sunk costs. On the long run, switching to MDE can be beneficial in case the process works, and the process itself depends on the tools. Since the transition is expensive, it is important to invest wisely, and choose the right tool. One of the main issues in the industry is if a tool scale, or not. There are other quality aspects too. ISO/IEC9126 defines multiple aspects of quality for software as functionality, reliability, usability, maintainability, portability and efficiency. Functionality can be altered or added. Usability and maintainability can be improved. Portability can be addressed with changing the environment for the tool to execute. Scalability is on the other hand different. A solution can be highly functional, reliable, usable, maintainable and portable, if it doesn't scale, it won't be suitable for industrial use. In case the solution scales, the other issues can be solved one way or another. It can be concluded that for industrial needs, the most (and only) important aspect is scalability for MDE, but even generally. The part where scalability comes into picture with MDE is the part where the model transformation takes place. The model transformation should scale, and therefore, a model transformation tool should also scale to be suitable for industrial use. In case the transformation tool would not scale, the tool and therefore the process using it would fail, resulting in a loss of capital. The aim of this article was the evaluation of the most popular MDE tools in order to learn to identify the right tool that meets the specific needs of the software engineer without recommending any particular tool or vendors.