• Nem Talált Eredményt

Visual Modeling and Transformation System

6 Application of the Results

6.1 Software Applications and Tools Developed within the Scope of the Research

6.1.1 Visual Modeling and Transformation System

We have already established that domain-specific visual languages play an essential role in software engineering. By illustrating the problem set in a graphical way, these languages permit to raise the level of abstraction and help in defining the steps of the software lifecycle.

The increasing popularity of domain-specific languages requires applications that are capable of visualizing these languages and offer a user-friendly way to edit the models interactively.

At first glance it seems simple to create a modeling framework for this purpose; however, there are many additional requirements to support.

The diversity between the needs of different domains is huge. Not only the list of available modeling items can be different, the appearance of the modeling toolbar must be customizable, but it is also a common need to support custom user actions (e.g. mouse hover selects to control, or it means switching to edit mode). The framework must be flexible and it must allow customizing almost each and every framework service.

The framework must be capable of supporting various storage types (e.g. database, file-based/memory-based model repositories). There are several well-known model definition formats such as XMI, or GXL. For a generic purpose modeling framework, it is clearly not enough to support only one of these. Moreover, storages are important due to the performance as well.

This is not enough to create a framework that can only edit and visualize models, unless the models are used for documentation purposes only. There is a need to process the models:

create new models, generate source code from them, or evaluate/execute the model definitions. Without supporting dynamic modeling features, models would be static, uncomfortable definitions only. Therefore, model traversing features or other model processing methods must be part of the modeling framework, or at least modeling tools must offer an easy way to apply these services on models via an external component.

The performance of the modeling framework is also essential. It is usual to have models with a few dozens of model items; however, there are domains, where thousands or even millions of model items have to be handled. Visualizing this amount of items is rarely required, because these models are too complex to display them, but it is common that the model processor must compute algorithms even for such large models in a reasonable time.

Although, several modeling frameworks exist, we have found that none of these tools fulfill all the mentioned requirements. Usually, there are two main problems with these tools: (i) they focus on an aspect of modeling and model processing and not on the whole process, or (ii) they prefer either customizability or performance (usually the two oppositional feature), but they rarely allow the user to choose.

Our research team has analyzed existing modeling frameworks and summarized our experiences including the experience gained from implementing the previous version of our framework, Visual Modeling and Transformation System (VMTS) [VMTS]. We have found that it is possible to create a solution, which is highly customizable and still fast. Modular structure of the framework allows us to support various domains and to store the models in different storage types. Moreover, the user can decide at run-time how important customizability and performance are. The presented solution can visualize optional domain-specific language models and it can handle millions of model items, if required. This section introduces the structure of the VMTS solution. It is important to emphasize that the presented approach is not specific to our system, but it uses solutions adoptable in any other modeling framework.

Visual Modeling and Transformation System addresses the above requirements, namely diversity, various storage types, model processors and performance. Moreover, VMTS allows fine tuning performance and customizability. In order to achieve these aims, we applied a

component-based architecture, where the well-defined interfaces allow replacing any of the components. The framework provides built-in services to support generation of these components.

Recall that Visual Modeling and Transformation System is a graph-based metamodeling system. Because of the metamodeling support, we can create models not only for predefined modeling languages, but we can define new modeling languages as well.

The architecture of the VMTS framework is depicted in Figure 6-1. The bottom most level is the Data Repository that represents the different data persisting stores that can be connected to the system. Above repositories, the VMTS Exchange Framework (VXF) and VMTS Modeling Framework (VMF) can be found. VXF and VMF form together the VMTS Data Interface (VDI). These two layers (VXF and VMF) are used to store the data in the repositories and to store the model data in memory during editing. At the top level of the architecture, different components (VMTS Applications) can be found; these components use the VDI to manipulate the data.

Figure 6-1 Architecture of VMTS

One of the most important user requests was to support multiple views of models and to provide extensibility so that different models can be visualized in a customizable way.

Different views are required to be able to focus simultaneously on different aspects of models, while customization is needed to support domain-specific languages. The Document-View architecture is an appropriate choice to satisfy this requirement. For each model element, VMTS associates exactly one Document and an arbitrary number of Views. To facilitate the customization of the appearance, we have designed a flexible plugin system. Each plugin is attached to a metamodel with the help of the unique identifier of the metamodel. However,

metamodels can have more than one plugins attached, the user can select the plugin to use at run-time.

Our research team has been working on building the tool since 2003. We have already developed three different versions of VMTS framework. Each of the versions provided more facilitates, covered higher application area, and made the usability and user experience better.

During the design, we have taken into consideration the requests from our industrial partners, the knowledge of other modeling frameworks and the conclusions of workshops, where VMTS has been presented e.g. [Graph Transformation Contest, 2007] [Grabats Tool Contest, 2008].

We have successfully applied the modeling and model processing capabilities of the VMTS framework in several research and development software projects. Some of these projects are introduced in Appendix B, Appendix C and Appendix D. In the case study presented in Appendix D, we show the efficiency of model-driven development that is supported by modeling and model processing environments like VMTS. Next section also introduces the capabilities of model-based solutions and the role of the modeling and model processing frameworks in current application development processes.

6.1.2 Model-Driven Application Development to Support the Smart City Concept –