Replication Package of the paper: "A Taxonomy of Self-Admitted Technical Debt in Deep Learning Systems"
Authors/Creators
Description
# README
## _Replication Package for A Taxonomy of Self-Admitted Technical Debt in Deep Learning Systems_
This package contains several files and a folder with both code and data used within the context of the study.
## output_StaticAnalysis.csv
This file contains the results of the manual annotation aimed at verifying whether a static code analysis tool can be used to pinpoint the presence of SATD and, more specifically, DL-SATD. For each SATD instance, you can find a list of warnings impacting the area of the code where the SATD is, as well as the outcome of our manual annotation.
## dependentsTensorflow.csv
This file contains the list of dependents of the TensorFlow DL framework together with the number of stars and the number of forks.
## dependentsTorch.csv
This file contains the list of dependents of the PyTorch DL framework, together with the number of stars and the number of forks.
## 100Projects.csv
This file contains the list of 100 open-source Python projects importing at least one among Tensorflow or PyTorch that we have used as the initial set for our study.
## SATDTensorFlow.csv
This file contains the list of SATD detected for the 50 Python open-source projects relying on TensorFlow. Each line contains the name of the project, the path to the file in which the SATD has been detected, the line in the file where the SATD comment starts, and the SATD comment.
## SATDTorch.csv
This file contains the list of SATD detected for the 50 Python open-source projects relying on PyTorch. Each line contains the name of the project, the path to the file in which the SATD has been detected, the line in the file where the SATD comment starts, and the SATD comment.
## SampledSATD.csv
This file contains the list of the 443 SATD comments used to determine the DL-specific SATD Taxonomy. Each line contains the link to the SATD, followed by the SATD comment body, and two identifiers used to determine the context of the SATD comment (used to properly select the presence of static code analysis tools warnings).
## FinalValidation.csv
This file contains the outcome of the manual validation of the 443 SATD in our sample.
## MappingWithHumbatovaEtAl.xls
This file contains the outcome of the mapping between our DL-specific SATD taxonomy and the taxonomy of DL-bugs by Humbatova et al.
## extractSATDComments.py
This file contains the source code used to analyze the 100 projects in our study. Specifically, for each project and each Python file within it, the script checks whether the file imports one of the two DL frameworks used in the context of the study. If this is the case, it extracts all comments within it and re-implements the KL-SATD to check whether the comment is a SATD candidate.
## runAscat.py
This file contains the source code used to run Prospector as an aggregator of static code analysis tools for Python.
## CompleteStaticAnalysisWarnings
This directory contains the outputs of Prospector (one for each studied project, in JSON format)
Files
dl-satd-replication.zip
Additional details
Funding
- Ministry of Education, Universities and Research
- EMELIOT PRIN 2020 2020W3A5FY