Forschungsthemen
[MA] Entwicklung einer Methodik zur Modellierung und Abbildung von Sprachkonzepten auf Graphstrukturen
jQAssistant ist ein Open-Source-Werkzeug zur Analyse, Validierung und Dokumentation von Softwarestrukturen. Das Werkzeug ermöglicht es, Strukturinformationen des Anwendungscodes als Graph-Repräsentation in eine Datenbank einzulesen, diese um Architektur- bzw. Designkonzepte anzureichern und darauf basierend manuelle bzw. automatisierte Analysen auszuführen. Der technologische Schwerpunkt der Analysemöglichkeiten liegt derzeit auf der Programmiersprache Java und dessen Ökosystem.
In den letzten Jahren hat sich jedoch bei web-basierten Applikationen ein Architekturstil durchgesetzt, in welchem die Implementierung von Frontend-Logik nahezu vollständig auf die Seite des Clients, d.h. Web-Browser, verlagert wird. Die hier vorherrschenden Technologien sind JavaScript bzw. TypeScript sowie entsprechende Frameworks (z.B. Angular, React oder Vue.js). Für jQAssistant wird damit ein zunehmender Teil des relevanten Anwendungscodes unsichtbar und Analysen decken nur noch einen Teil des Gesamtsystems ab. Eine vergleichbare Herausforderung ergibt sich durch die wachsende Verbreitung des Architekturstils "Microservices", der eine Implementierung einzelner Services in unterschiedlichen Sprachen stärker als bisher ermöglicht bzw. befördert.
Aus diesem Grunde soll eine Methodik entwickelt werden, die es erlaubt, weitere Programmiersprachen für Architektur- und Design-Analysen mit jQAssistant erschliessen. Dies soll im Rahmen der Arbeit am Beispiel von TypeScript geschehen und dabei insbesondere folgende Aspekte betrachten:
- Identifikation und Modellierung benötigter Sprachkonzepte zur Ermöglichung von Architekturanalysen
- Ableitung von Kriterien zur Auswahl von Grammatiken bzw. entsprechender Frameworks zum Einlesen vorliegenden Quellcodes
- (semi-)automatisierte Abbildung bzw. Transformation eingelesener Quellcode-Strukturen auf modellierte Sprachkonzepte
- Betrachtung möglicher Einschränkungen der Analysierbarkeit die sich durch die Eigenschaften der Sprache bzw. des gewählten Ansatzes ergeben.
Betreuer: Sebastian Götz