Dieses Repository bietet ergänzendes Material zum ICSE 2023-Papier „Analyzing the Impact of Workloads on Modeling the Performance of Configurable Software Systems“, einschließlich experimenteller Daten (Konfigurationsbeispiele, Subjektsystemcode) und Messungen (Leistung, option- und arbeitslastspezifische Codeabdeckung). ) sowie ein interaktives Dashboard. Letzteres ergänzt die Darstellung der Studienergebnisse in der Arbeit und ermöglicht die Reproduktion unserer Analysen und Erkenntnisse.
Das Material enthält Informationen zu den folgenden neun Softwaresystemen:
Name | Domain | Sprache | Repository | Verwendeter Code / Version | Lizenz |
---|---|---|---|---|---|
jump3r | Audio-Encoder | Java | Link | v1.0.4 | LGPL 2.1 |
kanzi | Dateikompressor | Java | Link | v1.9 | Apache-Lizenz 2.0 |
dconvert | Bildskalierung | Java | Link | v1.0.0.-alpha7 | Apache-Lizenz 2.0 |
h2 | Datenbank | Java | Link | v1.4.200 | Mozilla Public License Version 2.0 |
batik | SVG-Rasterizer | Java | Link | v.1.14 | Apache-Lizenz 2.0 |
xz | Dateikompressor | C/C++ | Link | v5.2.0 | GPL 2.0 und GPL 3.0 |
lrzip | Dateikompressor | C/C++ | Link | v0.651 | GPL 2.0 |
x264 | Video-Encoder | C/C++ | Link | baee400.. | GPL 2.0 |
z3 | SMT-Löser | C/C++ | Link | v4.8.14 | MIT-Lizenz |
Dieses Archiv enthält die abgetasteten und für die Durchführung der Experimente verwendeten Konfigurationen als CSV-Dateien:
data/coverage_raw.tar.gz
Die als Arbeitslasten/Eingaben in den Experimenten verwendeten Dateien wurden aus verschiedenen Quellen gesammelt. Eine Auflistung der Provenienzen der Akten finden Sie unter:
data/workload_sources.csv
In Übereinstimmung mit der Lizenz (LICENSE.txt). Dieses Archiv enthält nicht den vollständigen Satz der verwendeten Dateien, da nicht alle verwendeten Dateien eine Weiterverbreitung unter der CC BY-SA 4.0-Lizenz zulassen.
Dieses Archiv enthält die Leistungsmessungen (Durchsatz und Ausführungszeit) pro Konfiguration und Workload als CSV-Dateien. Die Leistungsmessungen für jedes <software system>
finden Sie im folgenden Unterordner:
dashboard/resources/<software_system>/measurements.csv
Dieses Archiv enthält (als separate Datei!) Rohabdeckungsmessungen pro Konfiguration und Arbeitslast als CSV-Dateien. Basierend auf diesen Dateien wird der option- und arbeitslastspezifische Code abgeleitet. Die Rohcode-Abdeckungsmessungen finden Sie als gz-ipptes TAR-Archiv:
./coverage_raw.tar.gz
Dieses Archiv enthält die berechneten Codeabschnitte, die a) optionspezifisch und b) arbeitslast- und optionspezifisch sind. Die Codeabschnitte für jedes <software system>
finden Sie im folgenden Unterordner:
dashboard/resources/<software_system>/code/
Wir stellen ein interaktives Dashboard unter Verwendung des Framewords streamlit
bereit, das eine detaillierte Untersuchung unserer Analyse für jede Konfigurationsoption und Arbeitslast ermöglicht. Das Originalpapier stellt einen repräsentativen Teil der Ergebnisse dar, alle Analysen und Visualisierungen können über dieses Dashboard reproduziert werden. Wir stellen eine Docker-Version zur Verfügung, um das Dashboard lokal auszuführen.
Um den Docker-Container zu erstellen und auszuführen, führen Sie die folgenden Befehle aus:
#!/bin/sh
cd ./dashboard
docker build -t streamlitapp:latest .
docker run -p 8501:8501 streamlitapp:latest
Sie können jetzt das lokal ausgeführte Dashboard unter https://127.0.0.1:8501 oder https://localhost:8501 erkunden.
Um die Docker-Anwendung nutzen zu können, muss die Containerumgebung Docker eingerichtet und ausgeführt werden. Um Docker zu installieren, bieten diese Tutorials Orientierung: