TU Berlin & QMETHODS auf der ICSOFT

Masterarbeit zur automatisierten Software-Code-Analyse

ICSOFT 2018 in Porto, Portugal

Die Masterarbeit zum Thema „Automated Selection of Software Refactorings that improve Performance and Stability" von Nicoalai Moesus wurde für die ICSOFT 2018 angenommen. Die Arbeit ist in Zusammenarbeit mit QMETHODS und der Technische Universität Berlin entstanden und wird Ende Juli auf der Konferenz in Porto vorgestellt.

        

 

„Automated Selection of Software Refactorings that improve Performance and Stability"

Die Performance und die Stabilität eines Programms sind Eigenschaften, die bei der Softwareentwicklung eine wesentliche Rolle spielen. Eine schwache Performance bzw. die fehlende Stabilität einer Anwendung wirkt sich unmittelbar auf die Funktionalität der Software aus. Daher gilt es, diese Schwachstellen bei der Entwicklung zu vermeiden bzw. sie mittels Durchführung von Softwaretests zu finden.
Im Rahmen der Masterarbeit wurde untersucht, wie man den Quellcode eines Programms effektiv analysieren kann, um genau die Abschnitte zu finden, die für die Performance und die Stabilität relevant sind. Ausgangspunkt ist die Kombination der klassischen Anti-Pattern-Erkennung mit einer auf Messdaten basierten Performance-Analyse.

Anti-Pattern Erkennung

ICSOFT 2018: Paper von QMETHODS angenommen Mit der statischen Anti-Pattern Erkennung wird der Software-Code analysiert, ohne dass das Programm läuft. Die statische Analyse benötigt keine Daten und ist daher immer gültig. Abhängig vom Fokus der Analyse variieren die Anti-Patterns zwischen Verletzungen des Programmierstils und Formulierungen, die auf einen Programmierfehler hinweisen. Folglich zeigt dieses analytische Vorgehen sämtliche Unstimmigkeiten des Quellcodes an, unabhängig davon, ob sie sich auf die Funktionalität des Programms auswirken. In der Masterarbeit wurde für die statische Code-Analyse das Werkzeug PMD eingesetzt.

Auf Messdaten basierte Performance-Analyse

ICSOFT 2018: Paper von QMETHODS angenommen Die dynamische Software-Analyse untersucht ein Programm im Betrieb. Für diese Form der Analyse wird lediglich ein Set von Eingabewerten verwendet. Folglich ist das Ergebnis dieser Software-Analyse mit jeder Ausführung einmalig. Jeder Eingabewert kann direkt mit dem Verhalten des Programms verknüpft werden und gibt somit Aufschluss über die Funktionalität. Eine dynamische Software-Analyse liefert einen wertvollen Einblick, der im Hinblick auf die Verbesserung der Funktionalität (Performance und Stabilität) maßgeblich sein kann. In der Masterarbeit wurde das dynamische Analysewerkzeug Dyntrace AppMon eingesetzt.

Ergebnis der Masterarbeit

Hauptgedanke der Arbeit war die Erstellung einer Bewertungsskala von Softwareeigenschaften, die sowohl von der statischen Quellcode-Analyse als auch von der dynamischen Software-Analyse angezeigt werden. Darauf basierend wurde eine Liste mit konkreten Refactorings erstellt, die je nach Einfluss auf die Software-Performance sortiert wurden. Um die Ergebnisse besser bewerten zu können, wurden Microbenchmarks implementiert, gemessen und bewertet. In einer Fallstudie mit zwei Experimenten wurde die Effektivität dieses Ansatzes untersucht und eine messbare Verbesserung der Performance erreicht. Die Umsetzung der Refactorings war im Vergleich zu einer statischen Quellcode-Analyse mit weniger Aufwand verbunden. Dies lässt sich zum einen auf die automatisierte Selektion zurückführen, mit der effektive Refactorings schnell und unkompliziert ermittelt werden konnten. Zum anderen vereinfachten die konkreten Verbesserungsvorschläge grundlegend den gesamten Prozess des Refactorings.
 
Wollen Sie die komplette Arbeit lesen? Dann freuen wir uns über Ihre Kontaktaufnahme!
 



Ihr Kommentar zum Blog-Beitrag

Nennen Sie uns bitte Ihren Namen und E-Mail-Adresse zur Verifikation. Die E-Mail Adresse wird nicht veröffentlicht!

Ich habe die Hinweise zum Datenschutz gelesen und akzeptiere diese.

Keywords

dynamische SW-Analyse

 

Dynatrace

 

ICSOFT

 

Masterarbeit

 

PMD

 

Refactoring

 

SW Anti-Pattern

 

SW Code Analyse

 

SW Performance

 

Thesis

 

TU Berlin