alessandrobergamo
Uploaded by
16 SLIDES
169 VUES
160LIKES

ASATDD

DESCRIPTION

ASATDD: an Automatic Self-Admitted Technical Debt Detection tool

1 / 16

Télécharger la présentation

ASATDD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AN AUTOMATIC SELF-ADMITTED TECHNICAL DEBT DETECTION TOOL

  2. Outline

  3. Cosa sono i Self-Admitted Technical Debt? “Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite... The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise.“ [Ward Cunningham] Self-admitted technical debt (SATD) is a particular form of technical debt: developers consciously perform the hack but also document it in the code by adding comments as a reminder (or as an admission of guilt).

  4. I Self-Admitted Technical Debt aumentano la propensione ai bug. I Self-Admitted Technical Debt rallentano il processo di sviluppo I Self-Admitted Technical Debt portano ad ignorare vari aspetti

  5. Per identificare i Self-Admitted Technical Debt sono stati proposti diversi approcci e tools in aiuto dello sviluppatore, perlopiù basati su utilizzo del codice sorgente, tool di analisi statica e sull’utilizzo dei commenti del codice sorgente. I pattern di commenti identificati da Potdar e Shihab ne sono un chiaro esempio.

  6. Tuttavia, l’analisi statica e l’utilizzo dei commenti del codice sorgente sono solo una parte dell’approccio basato sul text mining proposto da Huang Qiao [et al.].

  7. Partendo da una frase si arriva ad ottenere una lista di parole significative nella loro forma radice Questo approccio si divide in varie fasi, tra cui: pre-elaborazione del testo, selezione delle feature, istruzione del sotto-classificatore e le votazioni del classificatore. • Si istruisce il classificatore e ne si valutano le performance • Vengono poi analizzati i risultati di tutti i sotto-classificatori

  8. Sulla base di questo approccio è stato realizzato…

  9. Cos’è ASATDD? ASATDD (acronimo di an Automatic Self-Admitted Technical Debt Detection tool) è un plugin per IntelliJ che sfrutta l’analisi dei commit message per l’identificazione dei SATD. ASATDD presenta un architettura multi layer: • Domain Model Layer: rappresenta i business objects ed i suoi comportamenti; • Domain Services Layer: crea un’astrazione tra il dominio delle entità e la business logic di un’applicazione. • Application Services Layer: Sottosistema che permette la comunicazione tra l’UI layer ed il Repository layer; • UI Layer: Include tutte le interfacce grafiche ed, in generale, gli oggetti con cui interagisce l’utente.

  10. Il component diagram del plugin mostra le componenti implementate ex novo e quelle riutilizzate, identificate dal sottosistema denotato come «IdentifierSATD».

  11. La particolarità che ha favorito questo lavoro di tesi è stato, come detto, l’utilizzo dei commit message. Inoltre è stato proposto un nuovo approccio sull’istruzione e gestione dei classificatori, a vantaggio dell’ottimizzazione dello spazio occupato in memoria e del tempo impiegato nell’istruzione.

  12. Un esempio di utilizzo Come primo passaggio, l’utente deve eventualmente clonare un progetto da qualsiasi servizio di hosting per progetti software. Successivamente, a progetto clonato, dovrà eseguire il plugin utilizzando la toolbar di IntelliJ selezionando la voce «IdentifySATD» e successivamente «FindSATDAction».

  13. In questo momento, ci sarà il recupero dei Commit riguardanti tale repository attraverso l’utilizzo del metodo «retrieveCommitsLogs». Dopo il retrieve, i dati vengono associati all’entità «Commit».

  14. Dopo il plugin procederà ad istruire o caricare dalla memoria il classificatore. • Il classificatore procede a valutare i commit message che sono stati recuperati e pre-processati • Al termine della valutazione, si aprirà l’User Interface che, mostra tramite un JFrame una lista - di Commit che rappresentano proprio i Self-Admitted Technical Debt identificati dal classificatore.

  15. Sviluppi futuri • Aumentare la precisione del classificatore oppure eventualmente implementarlo attraverso l’utilizzo di altri approcci. • Implementare nuove scorciatoie per l’utilizzo più rapido del plugin • Implementare il plugin per altri differenti ambienti di programmazione

  16. GRAZIE PER L’ATTENZIONE

More Related