Modeling

The following research themes are the focus of the work of teachers, researchers and students in this area:

Modelling, metamodelling

A metamodel is a paradigm, a set of rules that the modelling environment must enforce when building models. Metamodelling describes the process of creating a metamodel, modelling describes the process of creating models that replicate the metamodel.

Rapid generation of domain-specific visual languages

Domain-specific languages contain the concepts and their relationships in the domain. Domain-specific visual languages provide a visual representation of the concepts and allow them to be modelled. The generation of domain-specific languages is often time-consuming and can be accelerated by generators: the generator generates the domain-specific language from the metamodel of the domain-specific language and the visual information assigned to each element of the metamodel. The output of the generator is a plug-in in the modelling environment that allows the creation of domain-specific models.

Graph rewriting based model transformation

Models are stored as labelled graphs and as a result, models are processed and modified on a graph rewrite basis. The advantage of this approach is that the mathematical background developed in the field of graph rewriting can be applied in a model transformation environment.

Model-based software development

In model-based software development, the system is defined in terms of models and the system source code is generated by model transformations.

Model-based synchronisation and software maintenance

In model-based development, a central goal is to allow modifications to the system not only on the model side, but also on the source code side. Rather, it is more appropriate to allow this on both sides, so that development and modification can always be done where it is easier, faster and more expedient. This requires that the models describing the system and the source code are kept in constant synchronisation.

Design patterns in model transformation

Similar to the well-known design patterns from the object-oriented environment, it is useful to develop design patterns for problems and tasks that occur repeatedly in model transformations, and then to apply the developed patterns in the appropriate transformations, using them repeatedly.

Validated model transformations

Preconditions and postconditions assigned to transformation rules in the form of constraints are low-level constructs, whereas validation, preservation and guarantee properties are high-level constructs. A model transformation is validated if it satisfies a high-level set of constraints.

Aspect-oriented modelling

Similar to aspect-oriented programming, where logically coherent functions are physically developed in one place and then woven into the appropriate place, aspect-oriented modeling aims to build logically coherent models in one place and then weave aspect models into multiple places using a model weaver.

Model simulation

Simulation allows you to monitor the impact of model events and changes in other models.

Visual Modeling and Transformation System(VMTS)

The Visual Modeling and Transformation System (VMTS) is a domain-specific modeling and model transformation environment developed using Microsoft .NET technology. VMTS supports the following features: management of domain-specific models with metamodels, managing the visualization of models, managing the dynamic behavior of models, and graph transformation based model transformation in a visual context.

Metamodel-based software development

The challenges facing the software industry today – improving the quality of software, efficiency and safety requirements related to software production – can be met if we move towards software development based on model transformation from formal models. This realisation is reflected in the creation of major standards – model-driven architectures (MDA), meta object facilities (MOF), object constraint language (OCL) – and the widespread use of component-based technologies – J2EE, .NET – and the program generation tools that support them.

Experience has shown that the formal descriptive power of the widely used UML (unified modelling language) is often insufficient and it is therefore advisable to start program development one modelling level up. In other words, UML should be replaced by a modelling language (and transformation) that fits the conceptual framework of the application domain, i.e. we move to the metamodelling level.

The staff of BME IK have considerable practical experience in this field and can present significant research results, which have also been published abroad. Among other things

they have developed a MOF-based component development framework (MOFCOM), which can support static metaprogramming based on an arbitrary metamodel. The implemented system has been used to refactor Java, C# and Erlang programs. It was complemented with an aspect-based code generator that transforms transient Java programs into persistent ones.

An aspect-oriented, model-based code generator framework was built, which was used by itself, but also in cooperation with OpenAmeos, to solve various practical code generation tasks. Among other things, it was used to produce almost all the components of the SOA pilot project for public administration.

Other services

Modeling

IT Security

Software quality

Business applications

Distributed systems

Data processing

Web portals

Cloud computing

Mobile softwares