Adaption von etablierten Qualitätssicherungsmethoden in der Programmierung von Low-Code und No-Code-Anwendungen : Fokus Quellcode-Analyse, Performance-Analyse und Testing mit dem modellbasierten Low-Code und No-Code-Framework Posity
Creators: name: Christen, Matthias
name: Mürner, Marion
Publisher: name: ZHAW Zürcher Hochschule für Angewandte Wissenschaften
Year: 2022
Subjects: 005: Computerprogrammierung, Programme und Daten

description: Low-Code und No-Code (LCNC) ist ein neuer, schnellwachsender Ansatz zur Entwicklung von Software-Anwendungen. Der Ansatz von LCNC schliesst die Lücke zwischen IT und Business und ermöglicht nicht-technischen Fachexperten, sich aktiv am Entwicklungsprozess zu beteiligen und komplette Anwendungen zu erstellen. Die Entwicklungsumgebungen verbergen komplexe Abläufe vor den Programmierenden, indem sie vorgefertigte Softwarebausteine im Baukastenformat anbieten. Mit LCNC werden neue Konzepte und Eigenschaften eingeführt. Allerdings ist in der Wissenschaft noch nicht viel zu Herausforderungen und Methoden der Qualitätssicherung in der Programmierung von LCNC-Anwendungen untersucht worden. Diese Forschungslücke motiviert diese Arbeit dazu, ausgewählte Qualitätssicherungsmethoden aus der traditionellen Softwareentwicklung (Performance-Analyse, Quellcode-Analyse und Testing) auf deren Eignung zur Qualitätssicherung für LCNC zu prüfen. 
Initial wird in dieser Arbeit die Wissensbasis der Forschung durch eine Literaturrecherche analysiert und die Probleme und Anforderungen der Anwendungsdomäne anhand der Durchführung einer Fokus-Gruppe mit Vertretern aus der Praxis und der Forschung identifiziert. Basierend auf dem Stand der Forschung und den identifizierten Anforderungen wird für die Performance-Analyse und die Quellcode-Analyse je ein Software-Artefakt entwickelt und für das Testing werden zwei konzeptionelle Artefakte für unterschiedliche Testverfahren, im Kontext der kommerziellen LCNC-Entwicklungsplattform Posity, als Stellvertreter der LCNC-Plattformen, erstellt. Das Resultat beurteilt die erstellten Artefakte anhand der, in der Analyse, ermittelten Erfolgskriterien, bewertet die Eignung der untersuchten Methoden in der Anwendung für LCNC-Programmierung und formuliert Handlungsempfehlungen für Praxis und Forschung. 
Die Validierung aller drei untersuchten Qualitätssicherungsmethoden (Performance-Analyse, Quellcode-Analyse und Testing) haben ergeben, dass eine Verwendung für LCNC-Programmierung einerseits möglich ist und andererseits aus den Analyse- und Test-Resultaten qualitätssichernde Massnahmen abgeleitet werden könnten.
Die Allgemeingültigkeit der Ergebnisse sind insofern limitiert, als dass sie im Kontext von nur einer Plattform, stellvertretend für alle LCNC-Plattformen, validiert worden sind. Die Erkenntnisse lassen jedoch folgende generalisierbare Schlussfolgerung zu. Um eine Analyse, auf eine in LCNC-Code erstellten Anwendung, ausführen zu können, ist es unumgänglich, dass die Plattformhersteller entsprechende Werkzeuge anbieten und dass sich das Ergebnis einer Analyse auf der gleichen Abstraktionsstufe befindet, wie der «Code» selbst. Nur so kann der Entwickler Analysen und Tests erstellen, die Resultate einordnen und entsprechende Massnahmen ergreifen, ohne dass tiefergehende Programmierkenntnisse notwendig sind. Die Vielfalt der Plattformen und das Fehlen von Standards, hat zur Folge, dass jeder Hersteller eine eigene Lösung für die Integration dieser Techniken bauen muss. 
Quantitative Performance-Messgrössen, wie die Ausführungszeit, konnten in verschiedenen Bereichen einer LCNC-Anwendung erfasst werden. Das Identifizieren von Performance-Problemen bedingt eine geeignete Visualisierung. Die in der Softwareentwicklung bekannte Darstellungsform Call-Tree wurde dafür als äusserst geeignet beurteilt. Ein Anknüpfungspunkt für weitere Forschung wäre die Untersuchung von Methoden oder Verfahren, die für Performance-Probleme Lösungsvorschläge bieten, oder diese sogar automatisiert beheben könnten. 
Für die Quell-Codeanalyse im Speziellen, ist die Eignung der Methode wesentlich von den zur Verfügung stehenden Regeln und Metriken abhängig. In dieser Arbeit wurden ausgewählte Regeln, aus der traditionellen Programmierung, untersucht und implementiert. Einen ausgereiften und allgemeingültigen Satz an Regeln gibt es bis anhin nicht und ist Gegenstand weiterer Forschungsarbeit. 
Durch Testen können völlig unerwartete Fehler aufgedeckt werden, die nur durch das Ausführen der Programme erkennbar werden. Deshalb ist das Testing eine wichtige Methode zur Qualitätssicherung. Die Arbeit analysiert spezifikationsorientierte und diversifizierende Testverfahren, als zwei verbreitete Testtechniken. Beide Testverfahren wurden als gleichermassen geeignet für den Einsatz in der LCNC-Programmierung validiert. Die Ergebnisse dieser Forschung können als Grundlage für die Implementierung der Qualitätssicherungsmethoden für andere Plattform-Hersteller und als Leitfaden für die Unter-suchung und Entwicklung weiterer Methoden für die Forschung verwendet werden.