About the New CPSA®- Advanced Level Module Domain-Specific Languages (DSL)
An Interview With Curator Michael Sperber
On November 21, the iSAQB published the curriculum of the new Advanced Level module Domain-Specific Languages (DSL).
DSL covers crucial techniques in programming language design and compiler construction. It enables participants to understand the role of DSLs in overall architecture, design user-friendly DSLs systematically, and recognize them as integral to architecture design.
The editorial team of the iSAQB blog took the new publication as an opportunity for an in-depth interview with curator Dr. Michael Sperber.
Who was involved in creating the curriculum?
The syllabus was developed by Dr. Michael Sperber (Active Group) and Dr. Lars Hupel (innoQ, Giesecke + Devrient) with the support of Patrick Müller from the iSAQB Council.
What inspired you to develop the curriculum for domain-specific languages at the Advanced Level of the iSAQB?
We have already implemented domain-specific languages in many software projects where they play an essential role in the architecture. So far, however, the existing iSAQB curricula did not even mention DSLs.
At the same time, the topic is too extensive to be included as a sub-item in one of the existing curricula. Consequently, we have developed a new one.
What specific goals and priorities did you consider when creating this curriculum?
We believe that DSLs should be part of the core toolbox of architects. However, the knowledge and skills required for this are hardly widespread among architects. As a result, many projects that would benefit from DSLs do without them. Also, many projects do contain DSLs but don’t call them that (e.g., for configuration). These are often so poorly done that they negatively impact the architecture. We want to remedy both deficits.
Who is the training designed for, and what prior knowledge or qualifications would you recommend to participate?
We believe all architects aiming for iSAQB Advanced certification can participate in the training. In other words, a Foundation certification is a reasonable prerequisite, along with the architecture experience that is also required for the Advanced Level.
A DSL makes a particularly good partner for the FUNAR (Functional Software Architecture) module because the design of combinator models taught there is an essential component of many DSLs.
Moreover: Anyone who has ever attended a compiler construction lecture during their studies will feel particularly at home in a DSL training. If not, the necessary foundations are also laid in the training.
What advantages do domain-specific languages offer in the context of software architecture, and why do you think they are relevant?
DSLs are a great tool to solve several problems in architecture design:
- We can separate the domain from the technical architecture.
- We can empower users to solve problems themselves, for which they would otherwise need software developers.
We can also save a lot of work as a DSL can help us solve problems with less effort than the project’s “host language” and improve several quality aspects of a software project, including adaptability, modifiability, analyzability, and security.
DSLs are always complementary to other architectural techniques, not in competition with them.
What challenges can arise when introducing and using domain-specific languages, and how does your curriculum help to overcome them?
When designing DSLs, it is advisable to take a systematic approach so that the resulting DSLs are easy to use and positively impact the architecture. A systematic approach requires skills from a whole range of areas of computer science — architecture of course, but also compiler construction, programming language design, and usability.
Organizations should spread this knowledge within their teams, and plan for the long-term, rather then placing it in the hands hands of just a few experts.
Could you highlight some key concepts or content from the curriculum that might particularly appeal to participants?
The main idea of the training is to develop DSLs from powerful domain models systematically. In this respect, DSL training is also a master class in data modeling. Compositionality plays a vital role in there – i.e., how small domain units can become larger and larger without the domain model being extended each time.
Of course, other topics also play essential roles, such as the systematic design of syntax, the careful design of semantics, and the use of the – now quite diverse – tools in this area.
How does this training differ from other courses in the field of software architecture and domain-specific languages?
The topic is still relatively new in the training landscape – when designing the curriculum, we have tried to proceed systematically and produce a comprehensive curriculum, while allowing a great deal of freedom in designing individual training courses. Nevertheless, every training course will ultimately be about code and concrete programming work, not simply identifying bounded contexts and arranging building blocks and dependencies, as with many other architecture topics.
You would like to learn more about the new CPSA-Advanced Level module DSL? Please visit the DSL module web page.
You would rather find and book a suitable DSL training course right away? Then check out our training calendar.
Share this article:
About the Author