diff --git a/src/chapter_3.md b/src/chapter_3.md index c60ff22..34c916c 100644 --- a/src/chapter_3.md +++ b/src/chapter_3.md @@ -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? diff --git a/src/figures/files-entropy.pdf b/src/figures/files-entropy.pdf new file mode 100644 index 0000000..f5c042a Binary files /dev/null and b/src/figures/files-entropy.pdf differ diff --git a/src/figures/lines-entropy.pdf b/src/figures/lines-entropy.pdf new file mode 100644 index 0000000..c477a6b Binary files /dev/null and b/src/figures/lines-entropy.pdf differ