Über das neue CPSA®- Advanced-Level-Modul Domänenspezifische Sprachen (DSL)
Ein Interview mit Kurator Michael Sperber
Am 21. November hat das iSAQB den Lehrplan für das neue Advanced-Level-Modul Domänenspezifische Sprachen (DSL) veröffentlicht.
DSL deckt entscheidende Techniken im Programmiersprachenentwurf und Compilerbau ab. Es befähigt die Teilnehmenden, die Rolle von DSLs in der Gesamtarchitektur zu verstehen, benutzerfreundliche DSLs systematisch zu entwerfen und als integralen Bestandteil des Architekturdesigns zu erkennen.
Die Redaktion des iSAQB-Blogs hat die Neuerscheinung zum Anlass genommen, ein ausführliches Interview mit dem Kurator Dr. Michael Sperber zu führen.
Wer war alles an der Erstellung des Lehrplans beteiligt?
Den Lehrplan haben Dr. Michael Sperber (Active Group) und Dr. Lars Hupel (innoQ, Giesecke + Devrient) entwickelt, mit Unterstützung von Patrick Müller aus dem iSAQB-Council.
Was hat dich oder euch dazu inspiriert, den Lehrplan für Domänenspezifische Sprachen im Advanced Level des iSAQB zu entwickeln?
Wir haben schon in vielen Softwareprojekten domänenspezifische Sprachen realisiert, wo sie eine wichtige Rolle in der Architektur spielen. Bisher kamen DSLs aber in den iSAQB-Curricula gar nicht vor.
Gleichzeitig ist das Thema zu umfangreich, um es als Unterpunkt in einem der existierenden Curricula unterzubringen. Deshalb haben wir ein neues entwickelt.
Welche spezifischen Ziele und Schwerpunkte hattet ihr bei der Erstellung dieses Lehrplans im Sinn?
Wir glauben, dass DSLs zum Kernwerkzeugkasten von Architekt:innen dazugehören sollten. Die dafür nötigen Kenntnisse und Fähigkeiten sind aber unter Architekt:innen kaum verbreitet, was dazu führt, dass viele Projekte, die von DSLs profitieren würden, trotzdem darauf verzichten. Außerdem enthalten viele Projekte DSLs, die sich gar nicht so nennen (zum Beispiel für die Konfiguration), die aber so schlecht gemacht sind, dass sie die Architektur negativ beeinflussen. Beiden Defiziten wollen wir abhelfen.
Für wen ist das Training konzipiert und welche Vorkenntnisse oder Qualifikationen würdest du empfehlen, um daran teilzunehmen?
Wir glauben, dass alle Architekt:innen, die eine iSAQB-Advanced-Zertifizierung anstreben, an dem Training teilnehmen können – sprich, eine Foundation-Zertifizierung ist schon sinnvoll, zusammen mit der Architekturerfahrung, die auch Voraussetzung für das Advanced Level ist.
Insbesondere das DSL-Training kann besonders effektiv sein in Zusammenhang mit dem Modul FUNAR (Funktionale Softwarearchitektur), weil das dort gelehrte Design von Kombinatormodellen ein wichtiger Bestandteil vieler DSLs ist.
Außerdem: Wer mal im Studium eine Compilerbau-Vorlesung gehört hat, wird sich besonders wohlfühlen im DSL-Training. Falls nicht, werden die nötigen Grundlagen von dort aber auch im Training gelegt.
Welche Vorteile bieten Domänenspezifische Sprachen im Kontext der Softwarearchitektur und warum sind sie deiner Meinung nach relevant?
DSLs sind ein großartiges Werkzeug, um eine Reihe von Problemen im Architekturdesign zu lösen:
- Wir können die Formulierung von Domäneninhalten trennen von der technischen Architektur.
- Wir können die Benutzer:innen befähigen, Probleme selbst zu lösen, für die sie sonst Softwareentwickler:innen bräuchten.
Außerdem können wir viel Arbeit sparen, weil die DSL uns erlaubt, mit weniger Aufwand Probleme zu lösen als die „Heimatsprache“ des Projekts und eine Reihe von Qualitätsaspekten eines Softwareprojekts verbessern, darunter Adaptierbarkeit, Modifizierbarkeit, Analysierbarkeit und Sicherheit.
DSLs sind stets eine Ergänzung zu anderen Architekturtechniken, stehen also nicht in Konkurrenz dazu.
Welche Herausforderungen können bei der Einführung und Nutzung von Domänenspezifischen Sprachen auftreten und wie hilft euer Lehrplan, diese zu bewältigen?
Beim DSL-Design empfiehlt es sich, systematisch vorzugehen, damit die entstehenden DSLs einfach zu benutzen sind und sich wirklich langfristig positiv auf die Architektur auswirken. Zu systematischem Vorgehen gehören Fähigkeiten aus einer ganzen Reihe von Bereichen der Informatik: neben der Architektur eben auch Kenntnisse im Compilerbau und im Programmiersprachen-Design sowie in Usability. Um diese Kenntnisse im Projekt einzubringen, sollten sie breit und langfristig angelegt werden und nicht nur bei einigen wenigen Expert:innen angesiedelt werden.
Könntest du einige Schlüsselkonzepte oder Lehrinhalte aus dem Lehrplan hervorheben, welche die Teilnehmenden besonders ansprechen könnten?
Die wichtigste Idee im Training ist, DSLs aus mächtigen Domänenmodellen heraus systematisch zu entwickeln. Insofern ist ein DSL-Training auch ein Meisterkurs in Datenmodellierung. Dort spielt vor allem die sogenannte Kompositionalität eine wichtige Rolle – wie also aus kleinen Einheiten der Domäne immer größere werden, ohne dass das Domänenmodell jedes Mal erweitert werden muss.
Natürlich spielen noch weitere Themen wichtige Rollen, wie das systematische Design von Syntax, der sorgfältige Entwurf von Semantik und der Einsatz von den – inzwischen recht vielfältigen – Werkzeugen in diesem Bereich.
Wie unterscheidet sich dieses Training von anderen Angeboten im Bereich Softwarearchitektur und Domänenspezifische Sprachen?
Das Thema ist in der Trainingslandschaft noch ziemlich neu – wir haben uns beim Entwurf des Curriculums bemüht, umfassend und systematisch vorzugehen und trotzdem viele Freiheiten bei der Gestaltung individueller Trainings zu ermöglichen. Trotzdem wird es bei jedem Training letztlich um Code gehen und damit konkrete Programmierarbeit – und nicht einfach nur um das Schneiden und Anordnen von Bausteinen und Abhängigkeiten, so wie bei vielen anderen Architekturthemen.
Sie möchten mehr über das neue CPSA-Advanced-Level-Modul DSL erfahren? Bitte besuchen Sie die DSL-Modul-Webseite.
Sie möchten lieber gleich eine passende DSL-Schulung finden und buchen? Dann sehen Sie sich in unserem Schulungskalender um.
Teilen Sie diesen Artikel:
Zum Thema passende Artikel
Über die Autor:innen