Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/01035.jsonl.gz/354

I sistemi software moderni sono tra i costrutti più complessi sviluppati dall'uomo. Essi possono richiedere la progettazione e lo sviluppo di milioni di componenti che interagiscono tra di loro al fine di fornire le funzionalità attese (es. gestire le transazioni monetarie di una banca). Tali componenti sono sviluppati tramite linguaggi di programmazione che rappresentano un'interfaccia tra il programmatore, ovvero colui che crea il software, e la macchina (computer), che esegue le istruzioni contenute nel software. L'insieme di tali istruzioni prende il nome di codice sorgente.Una volta sviluppato ed entrato in esercizio, un sistema software è soggetto a continue modifiche volte ad adattarlo ai cambiamenti del contesto applicativo in cui è utilizzato (es. l'entrata in vigore di nuove leggi sulle transazioni monetarie estere). Tale fase del ciclo di vita del software è nota come manutenzione, e rappresenta oltre il 90% dei costi sostenuti per i sistemi software. Studi empirici hanno dimostrato che un'alta qualità del codice sorgente può contribuire a ridurre i costi di manutenzione. Il miglioramento della qualità del codice può essere ottenuto tramite operazioni di refactoring, ovvero trasformazioni del codice che non modificano il comportamento del sistema (le funzionalità che esso offre), ma ne migliora la manutenibilità.Il progetto JITRA si pone l'obiettivo di sviluppare una nuova generazione di tool automatici in grado di (i) raccomandare al programmatore operazioni di refactoring volte ad evitare l'introduzione di problemi di qualità nel codice, e (ii) accompagnare tali raccomandazioni da una spiegazione razionale che le giustifichi.