23.10.2024, 11:15 Uhr
Durchführung per Videokonferenz
Titel: Software Code Metric Libraries and their Differences
Kurzfassung:
Softwarecode-Metriken sind quantifizierbare Maße, die zur Bewertung verschiedener
Aspekte von Softwarecode verwendet werden, darunter Größe, Qualität, Komplexität,
Wartbarkeit und die Schätzung der Entwicklungskosten.
Das Hauptziel dieser Arbeit ist es, ein tieferes Verständnis von Softwarecode-
Metriken zu erlangen, indem zwei zentrale Forschungsfragen behandelt werden:
Erstens, wird untersucht, wie unterschiedliche Open-Source-Metrik-Bibliotheken
bei der Analyse des selben Eingabecodes variierende Ergebnisse liefern. Zweitens,
sollen Metriken wie die zyklomatische Komplexität (CC) untersucht werden,
welche als Anzahl der unabhängigen Pfade durch ein Programm definiert ist und
theoretisch zwischen Programmiersprachen mit ähnlicher Basissyntax vergleichbar
sein sollte. In diesem Zusammenhang wird erforscht, wie die Implementierung
desselben Algorithmus in verschiedenen Programmiersprachen (z. B. Python vs.
C) die Ergebnisse verschiender Tools beeinflusst.
Zur Erreichung dieser Ziele wurden zwei Software-Tools entwickelt. Das Analysis
Tool wurde konzipiert, um den Vergleich der Ergebnisse verschiedener Open-
Source-Metrik-Tools zu erleichtern. Darüber hinaus wurde ein Transcriber implementiert,
der einfache Python-Codedateien inC-Codeumwandelt,umdieMetriken
desselben Algorithmus in beiden Zielprogrammiersprachen vergleichen zu können.
Zusätzlich wurden mehrere Testfälle erstellt.
Die Untersuchung ergab beträchtliche Unterschiede in den Ergebnissen verschiedener
Metrik-Tools für identische Eingaben. Außerdem zeigte sich, dass der
Vergleich der zyklomatischen Komplexität für denselben Algorithmus in
unterschiedlichen Sprachen zu signifikant abweichenden Ergebnissen führte, obwohl
diese theoretisch ähnlich sein sollten. Dies weist darauf hin, dass beim Vergleich
von Ergebnissen, die von unterschiedlichen Bibliotheken berechnet wurden,
Vorsicht geboten ist. Die Arbeit verdeutlicht die Notwendigkeit zukünftiger
Bemühungen zur Standardisierung von Softwarecode-Metriken.