This commit is contained in:
Raffaele Mignone 2021-06-07 12:20:15 +02:00
parent cf91cd0f71
commit 5420e9cec7
Signed by: norangebit
GPG Key ID: F5255658CB220573
3 changed files with 30 additions and 1 deletions

View File

@ -9,13 +9,42 @@ Nel caso in cui la issue sia stata classificata manualmente, oltre all'individua
Questo dato aggiuntivo presente su alcune issues è stato *proiettato* anche sulla classificazione dei commit di *fix* per andare come questi sono distribuiti sulle varie fasi.
I risultati di questa analisi sono riportati in @fig:count-fix-phases.
![Istanze dei fix in base alla fase](figures/count-fix-phases.pdf){#fig:count-fix-phases}
![Istanze dei fix in base alla fase](figures/count-fix-phases.pdf){#fig:count-fix-phases width=70%}
Rispetto alla distribuzione sulle issues (@fig:labeling-phases) è possibile notare la scomparsa della fase *data collection*, inoltre è evidente anche la riduzione delle occorrenze di *model training* e una crescita di importanza per quanto riguarda le fasi di *model requirements* e *model deployment*.
Sfortunatamente i dati disponibili per questa analisi sono molti limitati, è stato possibile ricavare la fase solo per quaranta *fix*, per cui non è stato possibile altre analisi.
## RQ3: esiste una differenza di entropy tra ML bug e altri bug?
La successiva analisi avevo lo scopo di verificare l'esistenza di una differenza tra l'entropia del *fix* rispetto alla natura di questi.
L'analisi è stata svolta sia a livello di file sia a livello di linee, quindi per ogni commit del dataset è stato necessario individuare sia il numero di file che hanno subito delle modifiche, sia il numero di linee alterate, considerando in questo modo sia le aggiunte che le rimozioni.
Inoltre per poter valutare l'entità del cambiamento è stato necessario conoscere anche il numero totale di file e di linee di ogni progetto.
Questi valori sono stati calcolati attraverso la storia `git` del branch `master`[^branch-master].
Per ogni commit sono stati individuati i file aggiunti ($+1$) e rimossi ($-1$) in modo tale da poter calcolare il delta-cambiamento del commit.
Eseguendo la somma di questo delta su tutti i commit si è ottenuto il numero totale di file del progetto.
In modo analogo si è proceduto anche per quanto riguarda le linee.
[^branch-master]: Oltre al branch `master` è stato considerato anche il branch `main` diventato molto comune dopo le proteste del movimento Black Lives Matter e il branch `master-V2` unico branch utilizzato da un progetto.
Una volta note queste informazioni preliminari è stato possibile calcolare l'entropia dei *fix* che è stata riportata nei boxplot[^boxplot-entropy] in @fig:entropy.
Dal boxplot in @fig:files-entropy è possibile notare una distribuzione equivalente per le due tipologie di fix.
Una situazione analoga si riscontra anche nell'analisi sulle linee (@fig:lines-entropy) anche se in questo caso è possibile notare che i valori di entropia associati ai fix di \ac{ML} sono shiftati leggermente verso l'alto.
[^boxplot-entropy]: Per ragioni di visualizzazione è stato scelto il $95-esimo$ quantile come limite superiore di entrambi i grafici.
\begin{figure}[!ht]
\subfloat[Entropia calcolata sui files\label{fig:files-entropy}]{%
\includegraphics[width=0.45\textwidth]{src/figures/files-entropy.pdf}
}
\hfill
\subfloat[Entropia calcolata sulle linee\label{fig:lines-entropy}]{%
\includegraphics[width=0.45\textwidth]{src/figures/lines-entropy.pdf}
}
\caption{Entropia in base al tipo di fix}
\label{fig:entropy}
\end{figure}
## RQ4: come varia il livello di discussione tra ML bug e altri bug?
## RQ5: come varia il time-to-fix tra ML bug e altri bug?

Binary file not shown.

Binary file not shown.