Search for contacts, projects,
courses and publications

SENSOR - SENsible SOftware Refactoring

People

 

Bavota G.

(Responsible)

Lanza M.

(Co-responsible)

External participants

Ubayashi Naoyasu

(Third-party beneficiary)

Abstract

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à. Tuttavia, gli approcci di refactoring esistenti in letteratura possono suggerire allo sviluppatore come migliorare la manutenibilità del codice, ma ignorano altre caratteristiche del software che potrebbero essere impattate, anche in modo negativo, dalle operazioni di refactoring. Per esempio, nel contesto di un'applicazione per dispositivi mobili, un aspetto importante da considerare è il consumo energetico dell'applicazione, a causa della limitata autonomia fornita dalla batteria. Il progetto SENSOR mira a sviluppare una nuova generazione di tool automatici di refactoring che siano in grado non solo di migliorare la manutenibilità del codice, ma di considerare allo stesso tempo l'impatto dei refactoring su altri aspetti di qualità, come il consumo energetico, le performance, o la sicurezza garantita dal codice.

Additional information

Acronym
SENSOR
Start date
01.01.2020
End date
30.12.2022
Duration
36 Months
Funding sources
SNSF
External partners
Co-beneficiario esterno: Kyushu University
Status
Ended
Category
Swiss National Science Foundation / Bilateral programmes