Abmeldung Informationsanlass

Bist du sicher, dass du dich für den Infoanlass abmelden möchtest?

Besten Dank für dein Interesse

Klicke auf die Schaltfläche unten, um dein gewünschtes PDF-Dokument herunterzuladen.

DOWNLOAD STARTEN
Dipl. Informatiker/in HF Fachrichtung Applikation

Domain-Driven Modelling in the Web

Portierung einer domänenspezifischen Sprache in eine Webapplikation

Jeder Softwareentwickler kennt es; man will eine spezifische Sache ausführen, aber hat dafür wieder tausende Abhängigkeiten.
Ich habe meine Diplomarbeit genutzt, um den Context Mapper von contextmapper.org als Webapplikation verfügbar zu machen.

12. November 2022
Yanick Arn

Domain Driven Design 

Bei der Strukturierung von Software und deren Komponenten gibt es diverse Herangehensweisen, Architekturen und Methoden. Eine sehr beliebte Methode ist das «Domain-Driven Design» oder kurz DDD, welches das Wissen und die Sprache der Fachdomäne ins Zentrum stellt. Domain-Driven Design stellt den Fokus auf die Verwendung von einer ubiquitären Sprache, damit in allen Bereichen, von Business, Requirements Engineer, bis zum Entwickler die gleiche Sprache gesprochen wird.


Um Domain-Driven Design optimal zu implementieren, gibt es Tools, um Architektur und Domänenmodelle visuell darzustellen. Eines dieser Tools ist das «Context Mapping» welches es erlaubt den Zusammenhang zwischen abgegrenzten Kontexten (Bounded Context) zu identifizieren.


Für die Generierung solcher «Context Maps» gibt es Frameworks wie den «Context Mapper» (contextmapper.org), welcher als Eclipse oder Visual Studio Code Plugin kommt und mithilfe einer domänenspezifischen Sprache (DSL) das Generieren solcher Context Maps ermöglicht.


Das Problem

Da das «Context Mapper» Framework momentan nur in Form von Plugins kommt, ist das Erstellen von solchen «Context Map» Diagrammen nur den Entwicklern mit einer Entwicklungsumgebung vorbehalten. Es braucht eine Lösung, welche unabhängig von Entwicklungsumgebungen funktioniert. 


Ein Lösungsansatz

Eine Lösung, um dieses Problem zu beheben, ist es die Generierung von «Context Maps» auf dem Web mithilfe einer Webapplikation möglich zu machen.


Die Applikation

Die Applikation bietet beim Stand vom MVP folgende Funktionen: 

  • Schreiben von Context Maps in dem Ace Editor
  • Editor Syntax Highlighting
  • Darstellen von generierten Diagrammen
  • Vergrössern von Diagrammen auf der Weboberfläche
  • Exportieren in vom Generator vorgegebenen Formaten
  • «Real-time»-Aktualisierung während dem Schreiben


Funktionsweise

Es wurde nach vollen Vorgaben der Anforderungen ein MVP entwickelt, welcher den durch Variantenentscheid bestimmten «Ace»-Editor (Ajax.org Cloud 9 Editor) als Herzstück der Oberfläche benutzt. Der geschriebene Code im Editor kann durch einen "Generate"-Knopf auf der Oberfläche in das Backend geschickt werden, worauf dieses diesen Code in eine temporäre Datei speichert. Diese Datei wird mit der bereitgestellten API vom «Context Mapper» von in einen Generator gespiesen, welcher Diagramme in Form von z.B. Bildern («*.png», «*.svg») mithilfe von «Graphviz» generiert.


Standardmässig wird nach Abschluss der Generierung eine Export-Anfrage geschickt, welche die «.*png» Datei auf die Oberfläche holt und diese darstellt. Das Bild kann durch einen Klick darauf vergrössert werden. Die zusätzlich generierten Formate können durch ein Dropdown Menu und einem «Export»-Knopf auf der Oberfläche heruntergeladen werden. Temporäre Dateien werden laufend gelöscht, um Platz zu sparen.


Verfügbarkeit

Die Webapplikation kann als «Tomcat»-Server (Backend) und «Angular»-Applikation (Frontend) gestartet werden oder innerhalb von Docker Containern.


Die Applikation ist quelloffen und kann daher von jedem genutzt werden:

https://github.com/Akagitsunee/context-mapper-web-app


Nutzen

Die Webapplikation erlaubt es jeder Einzelperson sowie jedem Unternehmen Teile vom Prozess von DDD-Projekten für alle verfügbar zu machen. Dabei ist es unwichtig, ob es sich um den «Project Owner» oder einem Entwickler handelt. 

Sie kann auf Wunsch auf Kubernetes oder ähnlichen Diensten deployt werden und somit über einen Link verfügbar gemacht werden, da sie bereits auf Docker basiert.   

1/4
Vergrösserung vom Bild
2/4 Vergrösserung vom Bild
Auswahl an generierten Formaten
3/4 Auswahl an generierten Formaten
4/4 Beispielanwendung
Vergrösserung vom Bild
Auswahl an generierten Formaten
Beispielanwendung

Wie geht es weiter?

Die Applikation läuft auf dem Stand vom MVP vollumfänglich mit dem Generator und «DSL» von «contextmapper.org».


Die Entwicklung der Applikation gilt allerdings nicht als abgeschlossen, da geplant ist, dass weitere Generatoren wie z.B. «PlantUML», «MDSL» und ein «Generic» Generator unterstützt werden.


Der Editor soll in Zukunft zusätzlich so ausgebaut werden, dass dieser den vollen Nutzen aus der von «Eclipse Xtext» generierten «DSL» ziehen kann. Dazu gehören alle Features, welche hier aufgelistet sind. 


Als Alternative für den Editor können die beiden Editore Orion oder CoderMirror implementiert werden. Zusätzlich empfiehlt sich die Überlegung von «Angular» auf «VueJS» zu wechseln, da dieses die von «Xtext» generierten Script besser unterstützt.

Der Editor und die Bildanzeige sollen eventuell durch einen «Split»-Regler separiert werden, damit der Benutzer die Komponente grösser machen kann, welche er benutzen will. Die Schriftgrösse des Editors soll einstellbar sein.


Known Bugs

Der Editor hat einen bekannten Bug, dass er auf manchen Bildschirmauflösungen den Code auf die ersten paar Zeilen schiebt und nur diese scrollbar macht. Der Bug kann leider nicht nachgestellt werden, aber soll in zukünftigen Versionen gelöst werden. Er kann temporär gelöst werden, indem zum Beispiel die Entwicklerkonsole geöffnet und geschlossen oder die Seite neu geladen wird.


Die «real-time» Aktualisierung von Diagrammen funktioniert zwar, jedoch kommt der Generator manchmal den vielen Anfragen nicht nach. Es kann dazu führen, dass bei der finalen Generierung zu wenige Files generiert werden und nur eine beschränkte Anzahl verfügbar ist. Das Problem kann momentan über ein einfaches Drücken auf den «Generate» Button gelöst werden und wird in der Zukunft mit mehr Editor-Features gelöst. Der Bug sollte jedoch nur sehr selten vorkommen. 

Yanick Arn Software Engineer & Tech Enthusiast
Social

Leicht gekürzte Version

Download Diplomarbeit

Weiterbildung neben Beruf und Freizeit

Gratis E-Book mit 10 Tipps zur Work-Life-Learn-Balance

Download E-Book

Aktuelles Studienprogramm

Alles Wissenswerte zur Weiterbildung in einem PDF zusammengefasst.

Download PDF

Weiterbildung neben Beruf und Freizeit – schaffe ich das?

10 Tipps zur Work-Life-Learn-Balance
Eine Weiterbildung beansprucht Zeit. Deshalb auf Freunde, Familie und Hobbies zu verzichten, wäre falsch.

In diesem E-Book erfährst du:

  • wie du deine Zeit effizienter nutzt
  • wie du dich trotz Weiterbildung genügend Freizeit bewahrst
  • wie sich Beruf, Weiterbildung und Freizeit gegenseitig ergänzen statt konkurrenzieren können
Basel
Bern
Luzern
Olten
Zürich
Technik
Wirtschaft
Bildungsgänge HF Technik
Dipl. Maschinenbautechniker/in HF
Dipl. Elektrotechniker/in HF
Dipl. Systemtechniker/in HF
Dipl. Gebäudeautomatiker/in HF
Dipl. Informatiker/in HF Fachrichtung Applikation
Dipl. Informatiker/in HF Fachrichtung Systemtechnik
Dipl. Techniker/in HF Bauplanung Architektur
Dipl. Techniker/in HF Bauplanung Ingenieurbau
Dipl. Prozesstechniker/in HF
Dipl. Flugzeugtechniker/in HF
Dipl. Energie- und Umwelttechniker/in HF
Nachdiplomstudien NDS HF Technik
NDS HF Energie und Umwelt
NDS HF Informatik Applikationsentwicklung
NDS HF Informatik Cyber Security & Privacy
NDS HF Informatik Systemtechnik
NDS HF Informatik Game Design
NDS HF Informatik Data Science
NDS HF Informatik IT-Projektleitung
Seminare
Seminar Projektmanagement
Seminar KI-Tools im Berufsalltag
Seminar Cyber Security
Seminar Game Design
Seminar Data Science
Bildungsgänge HF Wirtschaft
Dipl. Wirtschaftsinformatiker/in HF
Dipl. Betriebswirtschafter/in HF
Dipl. Betriebswirtschafter/in HF für Technische Kaufleute
Dipl. Marketingmanager/in HF
Vorbereitungskurse eidg. Berufsprüfungen
Technische Kaufleute mit eidg. Fachausweis
Technische Kaufleute mit eidg. Fachausweis
Führungsfachleute mit eidg. Fachausweis
HR-Assistent/in mit Zertifikat
HR-Assistent/in mit Zertifikat Intensiv
HR-Fachmann/HR-Fachfrau mit eidg. Fachausweis
Fachmann/Fachfrau Finanz- und Rechnungswesen mit eidg. Fachausweis
Nachdiplomstudien NDS HF Betriebswirtschaft
Dipl. Betriebswirtschafter/in NDS HF Management
Dipl. Betriebswirtschafter/in NDS HF Strategische Unternehmensführung
Kaufmännische Bildungsgänge
Dipl. Kauffrau, Kaufmann VSH
Dipl. Wirtschaftsfachleute VSK

Tipps aus dem Inhalt

  • TIPP 1: Gestalte deine Arbeit so flexibel wie möglich!
  • TIPP 2: Beziehe Arbeitgeber sowie Kollegen und Kolleginnen in deine Weiterbildungspläne mit ein!
  • TIPP 3: Arbeite effizienter und effektiver mit Zielorientierung!
  • TIPP 4: Entwickle deinen idealen Lernrhythmus!
  • TIPP 5: Lerne mit System und festen Strukturen!
  • TIPP 6: Schaffe genug Ausgleich und Entspannung!
  • TIPP 7: Binde deine/n Partner/in, deine Familie und externe Hilfen in deine Planung ein!
  • TIPP 8: Belohne dich für deine Erfolge!
  • TIPP 9: Mach eine Zeitinventur!
  • TIPP 10: Erstelle eine Zeitplanung aller drei Bereiche!

Studienprogramm  herunterladen

Alles Wissenswerte zu deiner Weiterbildung in einem PDF zusammengefasst

  • Detaillierter Lehrplan zu allen Studiengängen
  • Alle wichtigen Hintergrundinfos zu Ausbildungszielen, Teilnehmerkreisen, Aufnahmebedingungen und weiterführenden Studiengängen
Basel
Bern
Luzern
Olten
Zürich
Technik
Wirtschaft
Bildungsgänge HF Technik
Dipl. Maschinenbautechniker/in HF
Dipl. Elektrotechniker/in HF
Dipl. Systemtechniker/in HF
Dipl. Gebäudeautomatiker/in HF
Dipl. Informatiker/in HF Fachrichtung Applikation
Dipl. Informatiker/in HF Fachrichtung Systemtechnik
Dipl. Techniker/in HF Bauplanung Architektur
Dipl. Techniker/in HF Bauplanung Ingenieurbau
Dipl. Prozesstechniker/in HF
Dipl. Flugzeugtechniker/in HF
Dipl. Energie- und Umwelttechniker/in HF
Nachdiplomstudien NDS HF Technik
NDS HF Energie und Umwelt
NDS HF Informatik Applikationsentwicklung
NDS HF Informatik Cyber Security & Privacy
NDS HF Informatik Systemtechnik
NDS HF Informatik Game Design
NDS HF Informatik Data Science
NDS HF Informatik IT-Projektleitung
Seminare
Seminar Projektmanagement
Seminar KI-Tools im Berufsalltag
Seminar Cyber Security
Seminar Game Design
Seminar Data Science
Bildungsgänge HF Wirtschaft
Dipl. Wirtschaftsinformatiker/in HF
Dipl. Betriebswirtschafter/in HF
Dipl. Betriebswirtschafter/in HF für Technische Kaufleute
Dipl. Marketingmanager/in HF
Vorbereitungskurse eidg. Berufsprüfungen
Technische Kaufleute mit eidg. Fachausweis
Technische Kaufleute mit eidg. Fachausweis
Führungsfachleute mit eidg. Fachausweis
HR-Assistent/in mit Zertifikat
HR-Assistent/in mit Zertifikat Intensiv
HR-Fachmann/HR-Fachfrau mit eidg. Fachausweis
Fachmann/Fachfrau Finanz- und Rechnungswesen mit eidg. Fachausweis
Nachdiplomstudien NDS HF Betriebswirtschaft
Dipl. Betriebswirtschafter/in NDS HF Management
Dipl. Betriebswirtschafter/in NDS HF Strategische Unternehmensführung
Kaufmännische Bildungsgänge
Dipl. Kauffrau, Kaufmann VSH
Dipl. Wirtschaftsfachleute VSK