← Ultimi articoli
💻 informatica

Measuring Code Level Determinants of Software Sustainability: A Systematic Literature Review

Questa revisione sistematica della letteratura di 137 studi sintetizza i determinanti e le metriche a livello di codice per la sostenibilità del software, rivelando un significativo divario di ricerca nella misurazione del carbonio rispetto all'energia, e propone un framework decisionale fondato e linee guida azionabili per aiutare gli sviluppatori a costruire software più verdi.

Autori originali: Zoya Mahboob, Atif Jilani, Qurrat Ul Ain

Pubblicato 2026-10-22
📖 6 min di lettura🧠 Approfondimento

Autori originali: Zoya Mahboob, Atif Jilani, Qurrat Ul Ain

Articolo originale sotto licenza CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Ogni volta che un programma software viene eseguito, dall'app su uno smartphone ai massicci sistemi che gestiscono i servizi cloud globali, esso attinge energia dalla rete elettrica. Questo consumo non è solo una questione di costi; è un contributore diretto alle emissioni di carbonio che riscaldano il pianeta. Sebbene i data center che ospitano questi sistemi siano ben noti per le loro richieste energetiche, il software stesso — le righe di codice scritte dai programmatori — gioca un ruolo nascosto ma decisivo in quanto molta elettricità viene utilizzata. Proprio come il design del motore di un'auto ne determina l'efficienza del carburante, le scelte specifiche effettuate scrivendo il codice determinano quanta energia un programma richiede per funzionare. Alcune scelte sono efficienti, mentre altre sprecano energia senza che l'utente possa mai saperlo.

Per anni, i ricercatori hanno studiato come rendere il software più ecologico, ma le prove sono state sparse in migliaia di articoli, spesso utilizzando metodi diversi per misurare le stesse cose. Una nuova revisione sistematica, pubblicata da ricercatori della National University of Computer and Emerging Sciences in Pakistan, riunisce questa conoscenza frammentata. Analizzando 137 studi sottoposti a revisione paritaria pubblicati tra la fine del 2015 e l'inizio del 2026, il team ha creato una mappa chiara di quali decisioni di codifica contino di più per la sostenibilità. Hanno scoperto che, sebbene il campo sia cresciuto rapidamente, si è concentrato ampiamente sulla misurazione del consumo di energia, lasciando un divario significativo nella misurazione delle conseguenti emissioni di carbonio, anche mentre le normative iniziano a richiedere la rendicontazione del carbonio.

I ricercatori hanno iniziato classificando la vasta letteratura esistente in un sistema strutturato. Hanno identificato due categorie principali di informazioni: le scelte specifiche fatte dai programmatori, note come determinanti, e i modi in cui tali scelte vengono misurate, noti come metriche d'impatto. I determinanti spaziano dal generale, come la scelta del linguaggio di programmazione o l'algoritmo utilizzato per risolvere un problema, al granulare, come il modo in cui i dati sono memorizzati nella memoria o come vengono scritti i cicli. Le metriche sono gli strumenti utilizzati per vedere l'effetto di queste scelte, misurando principalmente quanta energia viene utilizzata o quanto tempo impiega un compito. Il team ha organizzato questi risultati per mostrare quando queste decisioni vengono prese nel processo di sviluppo del software e quando i loro effetti vengono effettivamente osservati.

Uno dei risultati più sorprendenti riguarda l'enorme scala di impatto che le decisioni di alto livello possono avere. La revisione conferma che la scelta del linguaggio di programmazione è un fattore dominante. Gli studi mostrano costantemente che i linguaggi compilati, che vengono tradotti direttamente in codice macchina, possono essere fino a venti volte più efficienti dal punto di la gestione dell'energia rispetto ai linguaggi interpretati, che vengono elaborati riga per riga durante l'esecuzione. Allo stesso modo, la scelta dell'algoritmo — la ricetta matematica che un programma segue — può creare differenze enormi nell'uso dell'energia. Un algoritmo più efficiente può ridurre il consumo di energia di ordini di grandezza, una differenza così grande che nessuna quantità di piccoli ritocchi al codice potrà mai eguagliare. Nonostante ciò, la revisione nota che questi argomenti ad alto impatto non sono i più studiati nella letteratura; i ricercatori hanno passato più tempo ad esaminare dettagli minori e meno impattanti, come specifici stili di codifica o piccole ottimizzazioni.

Lo studio ha anche mappato quando avvengono queste decisioni. La stragrande maggioranza della ricerca si concentra sulla fase di implementazione, quando il codice viene scritto per la prima volta, e sulla fase di runtime, quando il software è effettivamente in esecuzione. Tuttavia, è stato riscontrato un divario critico nella fase di test. Pochissimi studi esaminano come il processo di test del software, o il codice di test stesso, contribuisca allo spreco di energia. Questa è una significativa svista, poiché lo sviluppo di software moderno si affida pesantemente a sistemi di test automatizzati che vengono eseguiti migliaia di volte al giorno, consumando potenzialmente più energia del prodotto finale stesso. I ricercatori evidenziano che quest'area rimane in gran parte inesplorata, suggerendo una grande opportunità per futuri miglioramenti.

Forse il riscontro più urgente riguarda ciò che viene misurato. La revisione ha scoperto che 131 dei 137 studi misuravano il consumo di energia, spesso utilizzando contatori hardware specializzati per tracciare l'uso dell'elettricità fino al joule. Al contrario, solo tre studi hanno misurato direttamente le emissioni di carbonio. Questo squilibrio è problematico perché le normative globali si stanno spostando sempre più dal tracciamento dell'energia al tracciamento del carbonio. I ricercatori sottolineano che questo divario è facilmente colmabile. Poiché le emissioni di carbonio si calcolano moltiplicando l'uso dell'energia per l'intensità di carbonio della rete elettrica locale, l'abbondanza di dati sull'energia potrebbe essere convertita in dati sul carbonio se i ricercatori si limitassero a registrare il contesto della fonte di energia. Attualmente, il campo possiede i numeri relativi all'energia ma manca del contesto del carbonio necessario per la moderna rendicontazione ambientale.

Per aiutare i programmatori ad applicare queste scoperte, il team ha creato un quadro decisionale pratico. Funziona come una guida per la risoluzione dei problemi di sostenibilità. Se un servizio software costa troppo per essere eseguito, il framework suggerisce di guardare prima al linguaggio di programmazione e all'algoritmo prima di preoccuparsi di piccoli ritocchi al codice. Se un'app mobile scarica la batteria, punta verso specifici pattern di codifica noti per sprecare energia. Le linee guida sottolineano che i programmatori dovrebbero misurare l'energia direttamente piuttosto che indovinare in base alla velocità di un programma, poiché un programma più veloce non è sempre uno più efficiente. Raccomandano inoltre di stabilire budget energetici espliciti per le funzionalità del software, trattando lo spreco di energia con la stessa serietà di un bug del software.

La revisione conclude che il campo dell'ingegneria del software sostenibile sta maturando, con una comunità internazionale in crescita e metodi stabiliti. Tuttavia, essa chiama a un cambio di focus. I ricercatori sono esortati a studiare più profondamente la fase di test, a replicare i risultati sulle decisioni ad alto impatto come la scelta del linguaggio e a iniziare a riportare le emissioni di carbonio insieme ai dati sull'energia. Per i professionisti del settore, il messaggio è chiaro: il modo più efficace per ridurre l'impronta ambientale del software non è attraverso piccoli aggiustamenti, ma attraverso scelte fondamentali fatte all'inizio del processo di sviluppo. Scegliendo linguaggi, algoritmi e strutture dati efficienti, e misurando i risultati accuratamente, i programmatori possono ridurre significativamente il costo energetico e del carbonio del mondo digitale.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →