Skip to content
This repository has been archived by the owner on Mar 9, 2023. It is now read-only.

Semi-automatic "Container" of a toolchain used for a complete software evolution analysis

Notifications You must be signed in to change notification settings

FrancescoMazzitelli/SoftwareEvolutionToolchainWrapper

Repository files navigation

Unisannio

Tools utilizzati nel progetto

Python Unisannio

Progetto Evoluzione e qualità del software - Magistrale 2022

Componenti del gruppo:

  • Francesco Cosimo Mazzitelli
  • Pio Antonio Perugini
  • Donato Guerrera
  • Ermanno Nicoletti
  • Achille Melillo

Requisiti

Per poter eseguire l'applicazione è necessario:

  • Scaricare e installare GIT, Java, Python
  • Impostare il percorso relativo GIT e Java nel path per la definizione delle variabili d'ambiente
  • Scaricare ed installare WSL con una distro linux
  • Eseguire il comando pip install -r requirements.txt che installerà tutte le librerie necessarie al funzionamento dell'applicazione
  • Eseguire come amministratore l'eseguibile "GIT bash" e inserire il seguente comando: git config --system core.longpaths true
  • Inserire l'url relativo alla repository da analizzare nel file settings .json:

{ "repo": "https://github.com/insert/repository/here" }

Descrizione del progetto

Il funzionamento del progetto prevede:

  • Download automatico del repository da analizzare direttamente da GIT
  • Estrazione dei commits del repository
  • Filtraggio dei commits secondo un determinato criterio
  • Checkout dinamico del repository in relazione ai commit filtrati
  • Applicazione del tool "ck" per l'estrazione di metriche relative al commit filtrato
  • Eliminazione dei file non utili all'elaborazione
  • Analisi dei file .csv ottenuti tramite pandas
  • Plot del grafico di tutte le metriche per commit per visualizzare l'andamento delle metriche nel tempo
  • Applicazione (semiautomatica) del tool "nicad6" per l'analisi dei cloni
  • Estrazione di dati utili dai file .xml risultato e incapsulamento in .csv
  • Analisi dei risultati
  • Applicazione del tool "sonarqube" utilizzato per l'analisi del technical debt
  • Analisi dei risultati tramite navigazione della pagina html visualizzata
  • Risultati

Analisi dei cloni (semiautomatica)

Non è stato possibile automatizzare l'esecuzione di nicad6, è quindi necessario:

  • Installare txl, presente nella cartella "tools"
    • Windows: dall'interno della cartella corrispondente apri il prompt dei comandi e digita "InstallTxl.bat"
    • Linux: dall'interno della cartella corrispondente apri il prompt dei comandi e digita "./InstallTxl"
  • Installare nicad6, presente nella cartella "tools" tramite il comando "make". Verrà quindi avviata la procedura di compilazione dell'eseguibile tramite gcc e txl
  • Copiare il progetto da analizzare nella cartella "systems" di nicad
  • Avviare il prompt dei comandi dalla cartella "nicad6" e digitare il seguente somando:
    • Tipo1: ./nicad6 functions java systems/To_Analyze type1-report default-report
    • Tipo2: ./nicad6 functions java systems/To_Analyze type2-report default-report
    • Tipo3: ./nicad6 functions java systems/To_Analyze type3-1-report default-report
  • Copiare i file "...clones-0.00-classes.xml" nella cartella "nicad_input". Se non è presente crearla manualmente nella root del progetto oppure avviare il nicad_wrapper dal main e farlo fallire per generare automaticamente la cartella

Documentazione

La documentazione relativa all'applicazione è consultabile sul seguente sito:

Link to documentation

Report

Report di progetto

Link to report

Presentazione

Presentazione del progetto

Link to presentation

About

Semi-automatic "Container" of a toolchain used for a complete software evolution analysis

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published