We create languages

For our clients we develop domain specific languages (DSLs) that domain experts can easily apply in order to cope with the growing complexity of technical systems.

Domain specific languages

Developing technical systems requires the coordination of multiple tasks in a changing environment across departments and organizations. Overall, this leads to a rapidly increasing complexity of the development process.

Using models in the early phases of the development process is a valid approach to manage complexity. This includes the structured documentation of requirements and the (semi-)formal modelling of functions as well as design and implementation aspects.
Finding the right semantics and abstractions for useful models is a hard task. Language workbenches solve this problem by providing the technology to efficiently create languages and models that are tailored to the specific needs of the domain experts.

Depending on the concrete tasks at hand, different technologies and frameworks can be applied. Language workbenches allow the development of tailor made models and languages for all industries and domains including automotive, IoT, medical, insurance and others.


Industries and Applications

A DSL based solution expands the capabilities of current tool chains on the methodology level. It gives users the possibility to express their requirements and design decisions using multiple representations like text, tables, graphs and mathematical formulas within a single, integrated environment. At the same time they are able to work with the syntax and the notations that they are used to from there domain. Advanced analysis methods, including model checking, keep the requirements and the design consistent and traceable.


The complexity in automotive systems engineering is increasing. The number of communication channels of the vehicles is growing and so is the number of functions provided by the system.

The majority of the new functions is implemented in software. Despite the increase in complexity, markets expect shorter development cycles and rapid time to market.

A DSL-based tooling solution supports the entire vehicle development process: Requirements, design, implementation, test and documentation.


Embedded Development and IoT

The embedded landscape is changing fast. ECUs are becoming more powerful and allow the implementation of additional functions on the devices.

With the rise of the „Internet of Things“ (IoT) connectivity increases. Embedded devices are not only connected to sensors and other ECUs via protected bus systems but have to communicate with remote clients and servers via open internet protocols. This further extends the functionality provided by the systems and increases the overall complexity of the development process. While resource restrictions remain, additional challenges like interface management and security analysis become relevant.

A DSL based approach supports users in the requirement and design phase and allows the modeling and analysis of connected system components. This leads to a better overall system understanding on a structural level as well as for the system behavior and non-functional properties.


Medical and Healthcare

Digital transformation has a big impact on many companies in the medical and healthcare segment.

Medical equipment like MRI scanners become more complex and heavily rely on software based features. Another example is the configuration of hearing aids where thousands of software based parameters allow the user specific configuration of device parameters.
New mobile applications emerge, supporting doctors and patients in the process of treating diseases during and after a medical condition has been diagnosed.

DSL-based tooling solutions support companies in the entire development process: Design, implementation, test and documentation.

Text-based DSLs - Language Engineering with Xtext

Xtext has been the de facto standard among language workbenches for softworkers *(???)* for many years. The freely available open source framework was brought to life by itemis and has been continuously developed since then, so that it is now successfully used in a wide variety of industries, areas and projects of all kinds. With Xtext, languages and development environments for engineers and software developers are realized efficiently. DSLs for technical experts are also successfully implemented with Xtext.

As a text-based tool, Xtext and all Xtext languages integrate seamlessly into existing workflows and tools. Under the hood, the Eclipse Modeling Framework (EMF) and the Eclipse Platform provide mature and robust, freely available technologies. This in turn offers numerous further integration possibilities.

As the driving force behind Xtext, itemis has many years of experience in the field of DSL development and our experts are always available with advice and above all with active support. We help to find suitable abstractions, to implement efficient and pragmatic solutions and to avoid pitfalls. Together we reach our goal faster!

Projectional Editors - Language Engineering with MPS

MPS (Meta Programming System) is a Language Workbench from Jetbrains, that allows the development of DSLs based on a projectional editor.
itemis is the official service partner of Jetbrains and has many years of experience in creating MPS based solutions for customers across various industries.

The core concept of domain specific languages is to be able express concepts and know-how in the language used by the respective domain experts. Projectional editors allow the use of textual and non-textual notations including mathematical notations, diagrams and forms.

Domain specific languages can be adapted to the preferred syntax and basic concepts of any domain. DSLs are defined and implemented in close collaboration with the experts of the domain and the users of the DSL.

Over the last years itemis successfully implemented a wide range of DSLs in various domains based on MPS.
Besides the base functionality provided by MPS, itemis is able to provide a number of existing modeling solutions from the systems engineering domain.
This includes e.g. the modelling of component based architectures, the management of variants or the simulation of performance properties.