It is paramount to properly integrate effort estimation with good development practices. Effort estimation is an open challenges, and it is performed to prevent software defects and delays during the development. In agile projects, at the very beginning stage of the software development life cycle, correct effort estimation helps to determine the order of the tasks to perform. However, estimation can be complex and there is the risk of making erroneous estimations. Predicting the effort is important to validate the results obtained or monitor the progressive trend. While analogy and expert judgment based are popular effort estimation approaches, no tools exist to assist managers in verifying and supervising the progressive effort during project development, except for size measures such as Line Of Code (LOC) and Function Point (FP). Modern software repositories are a valuable support for large teams working together on a project. Besides the code, a repository includes useful data related to development practices as well as features that better identify the project’s developers. This thesis presents novel approaches and metrics based on data extracted from repositories and related to the software life cycle to profile developer activities. By acquiring employees log data, project management can be provided with useful information such as how much more effort it will take to complete, and how long that will take; however in open source repository such records do not usually exist. The value of the proposed metrics is to reveal the effort spent by developers, to estimate the additional effort required to complete the task, to highlight strengths and weaknesses, then suggest improvements. Furthermore, the proposed metrics can be easily integrated in the usual development environment, without affecting other practices. The above analysis can be performed both during the development process of new software components and features, or afterwards, when the application’s development has been completed.

Con il passare degli anni si è dato sempre più importanza all'effort impiegato per lo sviluppo di un progetto software. Stimare l'effort impiegato in un processo di sviluppo è una delle principali sfide tra le attività dell'ingegneria del software. Il suo scopo è quello di prevenire intoppi e ritardi nella creazione del software durante il processo di sviluppo. Nelle fasi iniziali dei processi detti agili, una corretta stima dell'effort aiuta a determinare quali task possono essere risolti o completati nel minor tempo possibile. Tuttavia, la stima dei requisiti e competenze può essere un compito complesso per gli stessi sviluppatori e c’è sempre il rischio di effettuare stime errate. Studiare l'andamento dell'effort impiegato nel processo di sviluppo è un elemento chiave per monitorare l’andamento progressivo di un team. Gli approcci più comuni per stimare l'effort complessivo di un progetto si basano sull’analogia di precedenti progetti software e sul giudizio degli esperti nel settore. Pochi sono però gli strumenti che assistono i project manager per misurare l'effort impiegato dai loro team di sviluppo. I software repository sono un supporto prezioso per grandi team che lavorano insieme a un progetto. Oltre al codice, un repository include dati utili relativi alle pratiche e funzionalità che meglio identificano gli sviluppatori che stanno dietro al progetto. Questa tesi presenta nuovi approcci e metriche basati su dati estratti dai repository e relativi al processo di sviluppo del software al fine di meglio profilare l’attività dei ogni programmatore. Mentre le aziende, attraverso l'acquisizione dei log data dei dipendenti, riescono a ottenere informazioni utili per stimare fattori come: quanto effort sarà necessario per completare un determinato progetto e quanto tempo ci vorrà; in un repository open source tali informazioni spesso non sono presenti. L'obiettivo delle metriche proposte è quello di rivelare l'effort degli sviluppatori, al fine di evidenziare punti di forza e debolezze nell'approccio utilizzato, e conseguentemente suggerire possibili miglioramenti. Inoltre, le metriche proposte possono essere facilmente integrate nell’ambiente di sviluppo abituale, senza influire sul processo di sviluppo. L’analisi sopra descritta può essere eseguita sia durante la fase di implementazione di nuovi componenti e funzionalità del software, sia successivamente, quando lo sviluppo dell’applicazione è completato.

Tecniche di data mining per stimare l'effort nei progetti software / Pelonero, Leonardo. - (2024 Feb 12).

Tecniche di data mining per stimare l'effort nei progetti software

PELONERO, LEONARDO
2024-02-12

Abstract

It is paramount to properly integrate effort estimation with good development practices. Effort estimation is an open challenges, and it is performed to prevent software defects and delays during the development. In agile projects, at the very beginning stage of the software development life cycle, correct effort estimation helps to determine the order of the tasks to perform. However, estimation can be complex and there is the risk of making erroneous estimations. Predicting the effort is important to validate the results obtained or monitor the progressive trend. While analogy and expert judgment based are popular effort estimation approaches, no tools exist to assist managers in verifying and supervising the progressive effort during project development, except for size measures such as Line Of Code (LOC) and Function Point (FP). Modern software repositories are a valuable support for large teams working together on a project. Besides the code, a repository includes useful data related to development practices as well as features that better identify the project’s developers. This thesis presents novel approaches and metrics based on data extracted from repositories and related to the software life cycle to profile developer activities. By acquiring employees log data, project management can be provided with useful information such as how much more effort it will take to complete, and how long that will take; however in open source repository such records do not usually exist. The value of the proposed metrics is to reveal the effort spent by developers, to estimate the additional effort required to complete the task, to highlight strengths and weaknesses, then suggest improvements. Furthermore, the proposed metrics can be easily integrated in the usual development environment, without affecting other practices. The above analysis can be performed both during the development process of new software components and features, or afterwards, when the application’s development has been completed.
12-feb-2024
Con il passare degli anni si è dato sempre più importanza all'effort impiegato per lo sviluppo di un progetto software. Stimare l'effort impiegato in un processo di sviluppo è una delle principali sfide tra le attività dell'ingegneria del software. Il suo scopo è quello di prevenire intoppi e ritardi nella creazione del software durante il processo di sviluppo. Nelle fasi iniziali dei processi detti agili, una corretta stima dell'effort aiuta a determinare quali task possono essere risolti o completati nel minor tempo possibile. Tuttavia, la stima dei requisiti e competenze può essere un compito complesso per gli stessi sviluppatori e c’è sempre il rischio di effettuare stime errate. Studiare l'andamento dell'effort impiegato nel processo di sviluppo è un elemento chiave per monitorare l’andamento progressivo di un team. Gli approcci più comuni per stimare l'effort complessivo di un progetto si basano sull’analogia di precedenti progetti software e sul giudizio degli esperti nel settore. Pochi sono però gli strumenti che assistono i project manager per misurare l'effort impiegato dai loro team di sviluppo. I software repository sono un supporto prezioso per grandi team che lavorano insieme a un progetto. Oltre al codice, un repository include dati utili relativi alle pratiche e funzionalità che meglio identificano gli sviluppatori che stanno dietro al progetto. Questa tesi presenta nuovi approcci e metriche basati su dati estratti dai repository e relativi al processo di sviluppo del software al fine di meglio profilare l’attività dei ogni programmatore. Mentre le aziende, attraverso l'acquisizione dei log data dei dipendenti, riescono a ottenere informazioni utili per stimare fattori come: quanto effort sarà necessario per completare un determinato progetto e quanto tempo ci vorrà; in un repository open source tali informazioni spesso non sono presenti. L'obiettivo delle metriche proposte è quello di rivelare l'effort degli sviluppatori, al fine di evidenziare punti di forza e debolezze nell'approccio utilizzato, e conseguentemente suggerire possibili miglioramenti. Inoltre, le metriche proposte possono essere facilmente integrate nell’ambiente di sviluppo abituale, senza influire sul processo di sviluppo. L’analisi sopra descritta può essere eseguita sia durante la fase di implementazione di nuovi componenti e funzionalità del software, sia successivamente, quando lo sviluppo dell’applicazione è completato.
Data Mining; Agile; Scrum; Effort; Git; Open source; Mining Software Repositories; Commit; API; Metrics; Software Repository; Profiling developer; monitoring team performance
Ingegneria del software; Metriche; Metrica; Processo di sviluppo; Monitoraggio; Profilazione sviluppatori; Effort
Tecniche di data mining per stimare l'effort nei progetti software / Pelonero, Leonardo. - (2024 Feb 12).
File in questo prodotto:
File Dimensione Formato  
Data Mining Techniques for Software Effort Estimation.pdf

accesso aperto

Tipologia: Tesi di dottorato
Licenza: PUBBLICO - Pubblico con Copyright
Dimensione 3.36 MB
Formato Adobe PDF
3.36 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.11769/598190
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact