As systems become larger, more complex and are developed by increasingly multidisciplinary teams with shortening time-to-market, it becomes more and more important to focus on how you develop your system.
Effective tools are an essential ingredient to tackling this challenge.
Repetitive parts of the code, as well those that can be derived from models, can be generated by generators that respect your architecture and coding guidelines.
Models contain more domain semantics than code and thus make meaningful analyses much simpler. More errors are detected earlier.
Friendly notations such as formulas, tables and diagrams allow non-programmers to contribute directly, avoiding the need for documents.
Keep the core knowledge of your domain separate from its implementation in source code, so it can be reused more easily.
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. Models are the backbone of these tools. They ensure that the captured information is well structured and conforms to a formally defined schema. These models are expressed with a language tailored to the domain to maximize expressiveness and analyzability.
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 speed up the language development process. The team is at the forefront of language engineering and its use in industry. Languages can use graphical, tabular, symbolic, or textual notations, depending on what the target audience expects.
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.
For Voluntis, we have developed a set of domain specific languages (DSLs) for developing heathcare algorithms for digital therapeutics apps; check out this paper "Using language workbenches and domain specific languages for safety-critical software development".
You now know what we do and how we can support you in developing your systems.
Now you are invited to contact us to discuss concrete solutions.