Merge branch 'chapter_4' into draft
This commit is contained in:
commit
224dba4a53
@ -1,6 +1,6 @@
|
||||
# Analisi
|
||||
|
||||
## RQ1: come il ML e' distribuito sull'architettura dei progetti?
|
||||
## RQ1: come il ML e' distribuito sull'architettura dei progetti? {#sec:rq1}
|
||||
|
||||
In questa prima analisi si è andato a verificare l'esistenza di una differenza nei files e nelle directories modificate in base al tipo di cambiamento.
|
||||
Per poter svolgere questa analisi è stato necessario individuare il numero totale di file modificati per *fix* generici e per i *fix* specifici del \acl{ML}.
|
||||
@ -31,7 +31,7 @@ Dal boxplot riportato in @fig:imports si può notare che, indipendentemente dall
|
||||
Ciò indica che i progetti inclusi all'interno dello studio sono di varia natura e che alcuni sono più incentrati sul \ac{ML} rispetto ad altri.
|
||||
Inoltre, considerando l'analisi *strict*, è possibile osservare come solo un $25\%$ dei progetti abbia una percentuale di files di \ac{ML} superiore al $45\%$.
|
||||
|
||||
## RQ2: come sono distribuiti i bug sulle diverse fasi di ML?
|
||||
## RQ2: come sono distribuiti i bug sulle diverse fasi di ML? {#sec:rq2}
|
||||
|
||||
Come illustrato nella @sec:classificazione-commit per poter determinare la natura di un *issue fix* si è fatto ricorso alla classificazione delle *issues* ad esso associate.
|
||||
La maggior parte delle *issues* è stata classificata automaticamente, ma è stato comunque necessario classificarne una porzione in modo manuale per poter avere un train/test set.
|
||||
@ -44,7 +44,7 @@ I risultati di questa analisi sono riportati in @fig:count-fix-phases.
|
||||
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 d'importanza per quanto riguarda le fasi di *model requirements* e *model deployment*.
|
||||
Sfortunatamente i dati disponibili per questa analisi sono molto limitati (è stato possibile ricavare la fase solo per quaranta *fix*), per cui non è stato possibile effettuare delle analisi più approfondite.
|
||||
|
||||
## RQ3: esiste una differenza di entropy tra ML bug e altri bug?
|
||||
## RQ3: esiste una differenza di entropy tra ML bug e altri bug? {#sec:rq3}
|
||||
|
||||
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.
|
||||
@ -86,7 +86,7 @@ In entrambi i casi, l'*effect size* è trascurabile.
|
||||
|
||||
: Risultati dei test statistici per quanto riguarda l'entropia {#tbl:test-entropy}
|
||||
|
||||
## RQ4: come varia il livello di discussione tra ML bug e altri bug?
|
||||
## RQ4: come varia il livello di discussione tra ML bug e altri bug? {#sec:rq4}
|
||||
|
||||
Per rispondere a questa domanda è stato necessario andare a valutare il numero di commenti presenti all'interno di ogni issues.
|
||||
Poiché un singolo commit può far riferimento a più issues è stato considerato il numero di commenti medi.
|
||||
@ -130,7 +130,7 @@ Inoltre, per entrambe le metriche, abbiamo un *effect size* medio.
|
||||
|
||||
: Risultati dei test statistici per quanto riguarda il livello di discussione {#tbl:test-discussion}
|
||||
|
||||
## RQ5: come varia il time-to-fix tra ML bug e altri bug?
|
||||
## RQ5: come varia il time-to-fix tra ML bug e altri bug? {#sec:rq5}
|
||||
|
||||
In quest'ultima analisi si vuole andare a valutare se c'è differenza nel tempo necessario per eseguire il *fix*.
|
||||
Per valutare questo parametro è stato necessario estrarre da ogni *issue* la data di apertura e di chiusura e calcolare i giorni che intercorrono tra queste.
|
||||
|
29
src/chapter_4.md
Normal file
29
src/chapter_4.md
Normal file
@ -0,0 +1,29 @@
|
||||
# Conclusioni
|
||||
|
||||
La *RQ1* (@sec:rq1) ci ha permesso di inquadrare la natura dei progetti considerati per questo studio.
|
||||
Attraverso l'analisi degli import si è mostrato come l'utilizzo di librerie di \acl{ML} vari a seconda del progetto.
|
||||
Da questo dato si può capire che i progetti all'interno del dataset sono diversi tra di loro e che alcuni sono più incentrati sul \ac{ML} rispetto ad altri.
|
||||
Si è anche visto che la percentuale di progetti con un numero di *source files* di \acl{ML} superiore al $45\%$ sia molto limitata.
|
||||
Inoltre andando ad analizzare la porzione di sistema impattata dai cambiamenti si è visto come anche in questo caso il dato sia caratterizzato da una forte variabilità.
|
||||
|
||||
Le *RQ3*, *RQ4* e *RQ5* (da @sec:rq3) sono andate a valutare nello specifico le differenze in termini di entropia, discussione e *time-to-fix* tra gli interventi di *issue fixing* generici e quelli specifici del \acl{ML}.
|
||||
Da queste analisi si evince che tra i due tipi di interventi ci sono sia similitudini che differenze.
|
||||
Nel caso dell'entropia e della complessità del processo di cambiamento del software non sono emerse differenze rilevanti.
|
||||
Questo ci porta a pensare che il processo di cambiamento non varia in base al tipo di intervento, ma sia costante.
|
||||
|
||||
Nel caso del livello di discussione e del *time-to-fix* sono emerse delle differenze confermate anche dai test statistici effettuati.
|
||||
In entrambi i casi l'essere un *fix* legato al \acl{ML} ha spinto la metrica verso l'alto.
|
||||
Nel caso dei messaggi scambiati non solo si è riscontrato un numero medio di messaggi più elevato, ma si è visto anche che questi mediamente sono più lunghi.
|
||||
Questo dato potrebbe dipendere sia dal maggiore tempo richiesto per d'individuazione e correzione delle problematiche legate al \ac{ML}, sia da un maggiore interesse per queste problematiche rispetto alle altre.
|
||||
|
||||
## Sviluppi futuri
|
||||
|
||||
Nella *RQ2* sfortunatamente non è stato possibile svolgere un'analisi più approfondita per la carenza di dati.
|
||||
Un possibile sviluppo futuro potrebbe consistere nella realizzazione di un classificatore *multi-label* in grado di individuare la fase in cui il problema si è manifestato.
|
||||
In questo modo non solo sarebbe possibile conoscere la fase per ogni intervento di *fix*, ma anche definire delle nuove analisi.
|
||||
Per esempio si potrebbe andare a ricercare differenze in termini di entropia, discussione e *time-to-fix* in base alla fase in cui si è presentata la *issue*.
|
||||
|
||||
Per quanto riguarda la valutazione dell'entropia si è scelto come intervallo temporale di riferimento il singolo commit.
|
||||
Utilizzando questa configurazione non si è riscontrata nessuna differenza degna di nota.
|
||||
Un possibile sviluppo futuro potrebbe consistere nell'andare a valutare l'entropia considerando dei riferimenti temporali più ampi e verificare in questo caso la presenza di differenze.
|
||||
|
Loading…
Reference in New Issue
Block a user