Domänenspezifischische Sprachen
In der Kommunikation zwischen Fach- und Softwareabteilungen kommt es häufig zu Missverständnissen und Mehraufwänden. DSLs helfen Ihnen dabei, klarer zu kommunizieren und Fehlerquellen auszumerzen.
Mit einer DSL effizienter und stabiler Software entwickeln
Wir helfen Unternehmen durch den Einsatz domänenspezifischer Sprachen (engl. Domain-Specific Language, kurz: DSL) ihre Software an architektonisch kritischen Stellen effizienter und strukturierter zu gestalten.
Eine für Ihre Bedürfnisse zugeschnittene DSL schafft eine einheitliche, ausdrucksstarke und maschinell auswertbare Sprache, die über die verschiedenen Abteilungen hinweg verstanden wird. Sie ermöglicht Ihnen die nahtlose Integration der Arbeitsprozesse zwischen Fach- und Entwicklungsabteilung.
AUF DIE DOMÄNE KONZENTRIEREN
Was ist eine DSL und was zeichnet sie aus ?
Eine DSL ist eine Programmiersprache, die speziell für eine bestimmte Fachlichkeit, sprich eine Domäne, entworfen wird. Im Gegensatz zu einer generellen Programmiersprache wie z.B. Java, Python oder C++ besitzt sie ein wesentlich höheres Abstraktionsniveau, da sich Ihre Notation und Struktur direkt an der Domäne ausrichtet.
In der Regel werden DSLs gemeinsam mit den Fachexperten entworfen, welche zwar eine große Domänenexpertise besitzen, aber nicht notwendigerweise sehr programmiererfahren sind. Da die DSL jedoch ausschließlich das Domänenwissen abbildet, ist sie somit auch für die Fachexperten ohne besondere Affinität zur Programmierung bedienbar.
Um eine DSL praktisch verwenden zu können werden noch entsprechende Werkzeuge für diese Sprache benötigt, wie z.B. eine Entwicklungsumgebung, Code Generatoren, Compiler oder Validatoren.
KLARHEIT SCHAFFEN UND SAUBEREN CODE ENTWICKELN
Wie hilft Ihnen eine DSL ganz konkret?
Der entstehende „Code“ einer DSL spiegelt die Ausdrucksweise der Domäne 1:1 wider. Die Domänenexperten können sich somit auf die präzise Modellierung ihrer Fachlichkeit konzentrieren, ohne sich über die anfallende technische Komplexität Gedanken machen zu müssen. Diese mit der DSL erzeugten Modelle wiederum dienen als Input für die Entwicklungsabteilung, um daraus Quellcode oder andere technische Artefakte wie z.B. Tests, Diagramme, Datenkonvertierungen, Logging Ausgaben, usw. zu generieren.
Der Einsatz einer DSL ermöglicht somit den konsistenten Übergang von der fachlichen Beschreibung eines Problems bis hin zur dessen technischer Umsetzung.
Des Weiteren ergeben sich aber auch eine Menge technischer Vorteile. Ihre Software lässt sich leichter auf neue Zielplattformen und Technologien portieren. Der übliche Boilerplate Code wird drastisch reduziert. Inkonsistenzen und Fehler werden bereits auf Modell-Ebene gefunden.
ITERATIV MEHRWERT ERZEUGEN
Unsere Entwicklungsphilosophie
Wir entwickeln die DSL gemeinsam mit Ihnen, weil Sie die Experten in Ihrer Domäne sind. Wir wiederum haben langjährige Erfahrung im Bereich Language Engineering und sind mit der technischen Umsetzung von DSLs mit den dafür gängigen Werkzeugen und Frameworks vertraut.
Nach den Prinzipien der agilen Entwicklung adaptieren und verfeinern wir Ihre DSL und die dazugehörigen Werkzeuge sukzessive bis sie Ihren Anforderungen gerecht wird.
Schließlich ist die Entwicklung einer DSL kein Selbstzweck, sondern soll Sie bestmöglich bei Ihrer täglichen Arbeit unterstützen.