Zum Inhalt
Fakultät für Informatik
Masterarbeit

Systematische Bewertung der Laufzeit einer statischen Programmanalyse

Kontext

Programmanalysen sind eine gängige Technik zur Aufdeckung von Fehlern in Software. Da Softwaresysteme immer umfangreicher werden, müssen Programmanalysen den steigenden Anforderungen an die Skalierbarkeit gerecht werden. Eine Analyse, die Fehler im Code von gestern aufdeckt, ist im heutigen Softwareentwicklungsprozess kaum noch hilfreich. Während Analysewerkzeuge aus der Forschung dieses Problem oft umgehen können, wenn sie auf Analysetiefe abzielen oder neuartige Analysetechniken prototypisieren, ist das Problem bei kommerziellen Werkzeugen viel dringlicher.

Zielsetzung

Ziel dieser Arbeit ist es, einen Ansatz zur systematischen Evaluierung statischer Analyseplattformen zu entwickeln. Als Proof of Concept wird diese systematische Evaluierung auf der kommerziellen Programmanalyse- und Software-Intelligence-Plattform Teamscale durchgeführt. Teamscale ist mit einer Vielzahl von Programmanalysen für zwei Dutzend Programmiersprachen ausgestattet, die sich mit der Wartbarkeit von Software befassen. Mehr als 100 Unternehmen und Institutionen weltweit haben Teamscale in ihren Entwicklungsprozess eingebunden. 

Ein Teil des Ansatzes besteht darin, die statische Analyseplattform gegen umfangreiche Software-Repositories laufen zu lassen. Um diesen Schritt zu erleichtern, werden Sie Teamscale mit der Benchmarking-Plattform DelphiHub integrieren. DelphiHub ist ein umfangreicher Index von Softwarekomponenten, der anhand ihrer Metriken durchsucht werden kann. Mithilfe der DelphiHub-Integration ist es anschließend Ihre Aufgabe, Teamscale auf einem von DelphiHub unterstützten Software-Repository laufen zu lassen. Die Ergebnisse dieser Analyse werden potenzielle Leistungsengpässe, übermäßige Speichernutzung und andere Probleme aufzeigen, die groß angelegte Analysen behindern oder verhindern.

Forschungsfragen

  1. Was sind die Hauptkomponenten einer ausgewogenen Leistungsbewertung statischer Analysen?
  2. Welche Beobachtungen können bei der Skalierung eines statischen Analysewerkzeugs auf ein Ökosystem gemacht werden?

Literature 

  • Lars Heinemann, Benjamin Hummel, and Daniela Steidl. 2014. Teamscale: software quality control in real-time. In Companion Proceedings of the 36th International Conference on Software Engineering (ICSE Companion 2014). Association for Computing Machinery, New York, NY, USA, 592–595.
    DOI: https://doi.org/10.1145/2591062.2591068
     
  • Vojtěch Horký, Peter Libič, Antonin Steinhauser, and Petr Tůma. 2015. DOs and DON'Ts of Conducting Performance Measurements in Java. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering (ICPE '15). Association for Computing Machinery, New York, NY, USA, 337–340.
    DOI: https://doi.org/10.1145/2668930.2688820

Zusammenarbeit

Diese Arbeit wird in enger Zusammenarbeit mit der CQSE GmbH durchgeführt, die Teamscale entwickelt und betreut. Die Arbeit von CQSE dreht sich hauptsächlich um die Unterstützung ihrer Kunden bei der Softwarewartung, sowohl durch Beratung als auch durch Teamscale direkt. Vor Beginn der Arbeit erhalten Sie einen Monat Zeit, um sich mit der Codebasis von Teamscale vertraut zu machen. Während dieser Zeit werden Sie von einem Mitglied des CQSE betreut. Die Betreuung der Arbeit teilen sich Prof. Hermann und ein Mitarbeiter von CQSE.