© (Copyright), International Software Architecture Qualification Board e. V. (iSAQB® e. V.) 2023
Die Nutzung des Lehrplans ist nur unter den nachfolgenden Voraussetzungen erlaubt:
-
Sie möchten das Zertifikat zum CPSA Certified Professional for Software Architecture Foundation Level® oder CPSA Certified Professional for Software Architecture Advanced Level® erwerben. Für den Erwerb des Zertifikats ist es gestattet, die Text-Dokumente und/oder Lehrpläne zu nutzen, indem eine Arbeitskopie für den eigenen Rechner erstellt wird. Soll eine darüber hinausgehende Nutzung der Dokumente und/oder Lehrpläne erfolgen, zum Beispiel zur Weiterverbreitung an Dritte, Werbung etc., bitte unter info@isaqb.org nachfragen. Es müsste dann ein eigener Lizenzvertrag geschlossen werden.
-
Sind Sie Trainer oder Trainingsprovider, ist die Nutzung der Dokumente und/oder Lehrpläne nach Erwerb einer Nutzungslizenz möglich. Hierzu bitte unter info@isaqb.org nachfragen. Lizenzverträge, die alles umfassend regeln, sind vorhanden.
-
Falls Sie weder unter die Kategorie 1. noch unter die Kategorie 2. fallen, aber dennoch die Dokumente und/oder Lehrpläne nutzen möchten, nehmen Sie bitte ebenfalls Kontakt unter info@isaqb.org zum iSAQB e. V. auf. Sie werden dort über die Möglichkeit des Erwerbs entsprechender Lizenzen im Rahmen der vorhandenen Lizenzverträge informiert und können die gewünschten Nutzungsgenehmigungen erhalten.
Die Abkürzung "e. V." ist Teil des offiziellen Namens des iSAQB und steht für "eingetragener Verein", der seinen Status als juristische Person nach deutschem Recht beschreibt. Der Einfachheit halber wird iSAQB e. V. im Folgenden ohne die Verwendung dieser Abkürzung als iSAQB bezeichnet.
Verzeichnis der Lernziele
Einführung: Allgemeines zum iSAQB Advanced Level
Was vermittelt ein Advanced Level Modul?
Das Modul kann unabhängig von einer CPSA-F-Zertifizierung besucht werden.
-
Der iSAQB Advanced Level bietet eine modulare Ausbildung in drei Kompetenzbereichen mit flexibel gestaltbaren Ausbildungswegen. Er berücksichtigt individuelle Neigungen und Schwerpunkte.
-
Die Zertifizierung erfolgt als Hausarbeit. Die Bewertung und mündliche Prüfung wird durch vom iSAQB benannte Expert:innen vorgenommen.
Was können Absolventen des Advanced Level (CPSA-A)?
CPSA-A-Absolventen können:
-
eigenständig und methodisch fundiert mittlere bis große IT-Systeme entwerfen
-
in IT-Systemen mittlerer bis hoher Kritikalität technische und inhaltliche Verantwortung übernehmen
-
Maßnahmen zur Erreichung von Qualitätsanforderungen konzeptionieren, entwerfen und dokumentieren sowie Entwicklungsteams bei der Umsetzung dieser Maßnahmen begleiten
-
architekturrelevante Kommunikation in mittleren bis großen Entwicklungsteams steuern und durchführen
Voraussetzungen zur CPSA-A-Zertifizierung
-
erfolgreiche Ausbildung und Zertifizierung zum Certified Professional for Software Architecture, Foundation Level® (CPSA-F)
-
mindestens drei Jahre Vollzeit-Berufserfahrung in der IT-Branche; dabei Mitarbeit an Entwurf und Entwicklung von mindestens zwei unterschiedlichen IT-Systemen
-
Ausnahmen sind auf Antrag zulässig (etwa: Mitarbeit in Open-Source-Projekten)
-
-
Aus- und Weiterbildung im Rahmen von iSAQB-Advanced-Level-Schulungen im Umfang von mindestens 70 Credit Points aus mindestens drei unterschiedlichen Kompetenzbereichen
-
erfolgreiche Bearbeitung der CPSA-A-Zertifizierungsprüfung

Grundlegendes
Was vermittelt das Modul „DSL“?
Viele Domänen enthalten komplexe Regelwerke, Abläufe oder Beschreibungen von Domänenentitäten. Nicht immer ist die primäre Implementierungssprache eines Projekts auch die richtige Sprache, um diese Aspekte auszudrücken, zum Beispiel wenn
-
diese Aspekte von den Benutzer:innen konfiguriert werden können,
-
die Implementierungssprache zu ausdrucksstark ist, um Eigenschaften Sicherheit, Laufzeit oder Termination statisch zu garantieren,
-
die Implementierungssprache zu ausdrucksschwach ist, um diese Aspekte lesbar und nachvollziehbar zu beschreiben.
In solchen Projekten explizit eine eigene Sprache für diese Aspekte zu definieren kann helfen, die dadurch entstehende Komplexität zu bändigen. Es entsteht eine domänenspezifische Sprache oder DSL (für domain-specific language). Gut gemachte DSLs:
-
tragen in hohem Maße zum separation of concerns bei, indem Beschreibung von Implementierung entkoppelt wird,
-
befähigen Benutzer:innen, selbständig mit der Software Aufgaben zu lösen, für die sonst Entwickler:innen die Software erweitern müssten,
-
ermöglichen Low-Code-Ansätze, bei denen Aufgaben mit weniger Code gelöst werden können, als es in der Implementierungssprache des Projekts möglich wäre, und
-
verbessern eine ganzen Reihe architektonischer Qualitätsaspekte, darunter Adaptierbarkeit, Modifizierbarkeit, Analysierbarkeit und Sicherheit.
Für Design und Implementierung einer DSL gibt es einen großen Korpus an Techniken und Erfahrung aus dem Programmiersprachen-Design und dem Compilerbau. Dieses Modul macht Architekt:innen mit den wichtigsten Elementen dieses Korpus bekannt. Dieser versetzt sie in die Lage:
-
in der Architektur sinnvolle Stellen für DSLs zu finden,
-
nützliche und benutzerfreundliche DSLs systematisch zu entwickeln und
-
DSLs als integralen Aspekt des Architektur-Designs anzuwenden.
Struktur des Lehrplans und empfohlene zeitliche Aufteilung
| Inhalt | Empfohlene Mindestdauer (min) |
|---|---|
1. Thema mit Einleitung |
180 |
2. Thema über xz |
150 |
3. Thema mit viel Theorie |
120 |
4. Thema mit xy und Beispiel |
180 |
5. Thema mit abc und d |
210 |
6. Thema mit Abschlussbeispiel |
120 |
Summe |
960 (16h) |
Dauer, Didaktik und weitere Details
Die unten genannten Zeiten sind Empfehlungen. Die Dauer einer Schulung zum Modul DSL sollte mindestens 3 Tage betragen, kann aber länger sein. Anbieter können sich durch Dauer, Didaktik, Art und Aufbau der Übungen sowie der detaillierten Kursgliederung voneinander unterscheiden. Insbesondere die Art der Beispiele und Übungen lässt der Lehrplan komplett offen.
Lizenzierte Schulungen zu DSL tragen zur Zulassung zur abschließenden Advanced-Level-Zertifizierungsprüfung folgende Credit Points) bei:
Methodische Kompetenz: |
20 Punkte |
Technische Kompetenz: |
10 Punkte |
Kommunikative Kompetenz: |
0 Punkte |
Gliederung des Lehrplans
Die einzelnen Abschnitte des Lehrplans sind gemäß folgender Gliederung beschrieben:
-
Begriffe/Konzepte: Wesentliche Kernbegriffe dieses Themas.
-
Unterrichts-/Übungszeit: Legt die Unterrichts- und Übungszeit fest, die für dieses Thema bzw. dessen Übung in einer akkreditierten Schulung mindestens aufgewendet werden muss.
-
Lernziele: Beschreibt die zu vermittelnden Inhalte inklusive ihrer Kernbegriffe und -konzepte.
Dieser Abschnitt skizziert damit auch die zu erwerbenden Kenntnisse in entsprechenden Schulungen.
Ergänzende Informationen, Begriffe, Übersetzungen
Soweit für das Verständnis des Lehrplans erforderlich, haben wir Fachbegriffe ins iSAQB-Glossar aufgenommen, definiert und bei Bedarf durch die Übersetzungen der Originalliteratur ergänzt.
1. Einführung und Motivation
Dauer: 60 Min. |
Übungszeit: 0 Min. |
1.1. Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
1.2. Lernziele
1.3. Referenzen
2. Syntax
Dauer: 120 Min. |
Übungszeit: 60 Min. |
2.1. Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
2.2. Lernziele
3. Semantik
Dauer: 180 Min. |
Übungszeit: 120 Min. |
3.1. Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
3.2. Lernziele
3.3. Referenzen
4. Sprachdesign
Dauer: 180 Min. |
Übungszeit: 120 Min. |
4.1. Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
4.2. Lernziele
5. Werkzeuge
Dauer: 120 Min. |
Übungszeit: 60 Min. |
5.1. Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
5.2. Lernziele
6. Beispiele
Dauer: 60 Min. |
Übungszeit: 0 Min. |
Dieser Abschnitt ist nicht prüfungsrelevant.
6.1. Begriffe und Konzepte
Innerhalb jeder lizenzierten Schulung muss mindestens ein Beispiel für DSL vorgestellt werden.
Art und Ausprägung der vorgestellten Beispiele können von der Schulung bzw. den Interessen der Teilnehmer abhängen und werden seitens iSAQB nicht vorgegeben.
Referenzen
Dieser Abschnitt enthält Quellenangaben, die ganz oder teilweise im Curriculum referenziert werden.
A
-
[Aho et al. 2006] Aho, Alfred, Lam, Monica, Sethi, Ravi, Ullman, Jeffrey: Compilers: Principles, Techniques, and Tools. Addison Wesley, 2006.
-
[Alama 2020] Alama, Jesse: Language-Oriented Programming in Racket - A Cultural Anthropology. Gumroad, 2020. https://jessealama.gumroad.com/l/lop-in-racket-cultural-anthro
B
C
-
[Culpepper et al. 2019] Culpepper, Ryan, Felleisen, Matthias, Flatt, Matthew, Krishnamurthi, Shriram: From Macros to DSLs: The Evolution of Racket. Summit on Advances in Programming Languages, 2019. https://cs.brown.edu/~sk/Publications/Papers/Published/cffk-macros-to-dsls/
E
-
[Elliott and Hudak 1997] Elliott, Conal, Hudak, Paul: Functional reactive animation. In ACM SIGPLAN International Conference on Functional Programming (ICFP '97). pages 263-273. ACM, Amsterdam.
-
[Evans 2003] Evans, Eric J.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2003.
-
[Erdweg at el. 2015] Sebastian, Erdweg et al.: Evaluating and comparing language workbenches: Existing results and benchmarks for the future. In Computer Languages, Systems & Structures, 44:24–47, 2015.
F
G
H
K
L
M
N
P
-
[Parr 2010] Parr, Terrence: Language Implementation Patterns. O’Reilly, 2010.
-
[Pierce 2002] Pierce, Benjamin C.: Types and Programming Languages. MIT Press, 2002.
-
[Peyton Jones and Eber 2003] Peyton Jones, Simon, Eber, Jean-Marc: How to write a financial contract. Chapter in “The Fun of Programming”, ed. Gibbons and de Moor, Palgrave Macmillan 2003.
-
[Pretnar 2015] Matija Pretnar: An Introduction to Algebraic Effects and Handlers. Electronic Notes in Theoretical Computer Science 319 (2015) 19-35.
S
V
-
[Völter 2013] Völter, Markus: DSL Engineering: Designing, Implementing and Using Domain-Specific Languages. 2013
-
[Völter et al. 2014] Völter, Markus, Siegmund, Janet, Berge, Thorsten, Kolb, Bernd: Towards user-friendly projectional editors. In International Conference on Software Language Engineering 2014. 41-61. Springer.
W
-
[Wąsowski and Berger 2023] Wąsowski, Andrzej, Berger Thorsten: Domain-Specific Languages - Effective Modeling, Automation, and Reuse. Springer 2023.
-
[Wilhelm et al. 2021] Wilhelm, Reinhard, Seidl, Helmut, Hack, Sebastian: Compiler Design - Syntactic and Semantic Analysis. Springer-Verlag Berlin Heidelberg, 2013.