The Atruvia AG is a German IT service provider. The group's core business is IT services for Volksbanken and Raiffeisenbanken, as well as for other companies and central institutions in the cooperative financial network.
Initial situation and challenge
The Rich Banking Framework (RBF) is an in-house development of the customer. It facilitates and accelerates the work of the development teams. To improve support, there was a strong need to model the program logic in a textual way and to be able to generate code from the models that were created.
At the time of the joint project start, RBF was already being used in several projects for product development. This presented us with two challenges:
- The domain-specific language (DSL) as well as the generated code had to integrate well with existing RBF-based projects and thus support both a bottom-up and a top-down approach.
- The use of the DSL within the RBF had to be offered as an option. Also a renouncement of the use or the modeling of individual parts were scenarios to be considered.
The itemis approach
The customer was already using DSLs and had good experience with them. The wish to create a modeling/generation module for the RBF was therefore implemented using the Xtext framework.
Xtext provides all of the important comfort features for text editors. This includes syntax highlighting, auto-completion, linking of models and much more. The highlight of Xtext in the project context is the particularly convenient integration of existing source code.
To solve the challenges described, the domain-specific language was developed in such a way that it can "understand" existing source code. In this context, it made no difference whether the source code was written manually or generated by the DSL.
In this way, the new DSL could be seamlessly embedded into the existing language landscape of Atruvia.
Benefit for the customer and concrete use
The new modeling module based on Xtext helps application developers work more efficiently. This includes the following aspects in particular:
- The ability to describe data structures in a concise and compact way has enormously reduced the amount of code that needs to be written. In some scenarios, several thousand lines of code were required to connect existing services. With the help of the DSL, the logic can now be mapped in just a single line. Due to the flexibility of the DSL, the generation still remains customizable down to the smallest detail.
- The DSL also helps to avoid redundancies. As an example, internationalization is captured in one single place. Required implementation artifacts are generated at a rate of 100%.
- Finally, the DSL encapsulates expertise, for example by generating best practices when calling subsystems or legacy frameworks.
Do you have similar challenges to solve or the need to optimize your development process by using dedicated tools?