Tools In the context of methods and tools, our main activity is the development of tools for software developers, system engineers and business analysts to capture and analyze information and automatically create a range of derived artifacts. We have customers in a wide variety of domains including automotive and aerospace, healthcare, and business and finance.
Models and Languages While these tools implement modern user interface standards, the backbone are models. This ensures that the captured information as well structured and conforms to a formally defined schema.
The models are expressed with a language tailored to the domain to maximize expressiveness and analyzability. Languages can use graphical, tabular, symbolic, or textual notations, depending on what the target audience expects.
Language Engineering Language engineering refers to the activity of analyzing a domain, understanding its core abstractions and then implementing them into a language. We use language workbenches to develop the languages. The team is at the forefront of language engineering and its use in industry.
We mostly use the Jetbrains MPS and Xtext ecosystems. In both of these we have world-leading experts on our team. We also contribute to the development of the platforms themselves, for example, via the MPS Extensions.
- Consulting - we help you understand your domain and processes
- Coaching - we help your team build skills in language engineering and the respective tools
- Tool Development - we develop complete solutions for your company
Selected Customers and Projects
- For Voluntis, we have developed a set of DSLs for developing heathcare algorithms for digital therapeutics apps; check out this paper.
- For DATEV we are working with them to develop a DSL for tax calculations. We are also working on a DSL for payroll applications; read this paper preprint for details.
- We help Workday with the development of their internal programming language and associated tooling. This video provides and overview, as do these slides.
- We support SIGI in the development of a DSL for administrative web applications.
- For Zürich we have formalized a Word-based development process into a DSL with downstream code generation to C.
Commercial Products and Open Source Projects
- Security Analyst (Homepage) is a commercial product for analysing security threads in technical systems
- mbeddr (Homepage, Github) is an extensible version of C implemented in MPS, plus a set of 30+ extensions of C for embedded software development.
- IETS3 (Github) is a set of languages for systems engineering developed as part of a research project
- KernelF (Github as part of IETS3, Paper) is a functional language we use as the basis for many of the DSLs we develop
- Modelix (http://modelix.org)) we’re developing a cloud-based language workbench
Active Research Projects
In all of our active projects, we use MPS in order to investigate innovative approaches. SAFE4I and SecForCARS are both funded by the German BMBF.
SAFE4I: Accelerate the development of functionally safe software through tool-supported automation.
- SecForCARs: Security for connected, autonomous vehicles.
See also the list of all research projects at itemis.
Selected Publications and Talks
Build your own language - why and how (Video). Markus Völter, GOTO Amsterdam 2018.
Using C Language Extensions for Developing Embedded Software - A Case Study (Paper). Voelter, van Deursen, Kolb, Eberle. OOPSLA 2015.
Using Language Workbenches and Domain-Specific Languages for Safety-critical Software Development (Paper). Voelter, Kolb, Birken, Tomassetti, Alff, Wiart, Wortmann, Nordmann. SOSYM Journal 2018.
Automated Testing of DSL Implementations - Experiences from Building mbeddr (Paper). Ratiu, Völter, Pavletic. 2017
Fusing Modeling and Programming into Language-Oriented Programming (Paper). Voelter. 2018.