Come misurare la sostenibilità del software con CAST Highlight

By on
 

La sostenibilità del software si riferisce alla capacità del software di essere sviluppato, utilizzato e gestito in modo sostenibile, ovvero senza causare impatti negativi sull'ambiente o sulla società. 

Ci sono diverse pratiche che possono contribuire a realizzare un software sostenibile, tra cui: 

  1. Codice efficiente: il codice del software dovrebbe essere scritto in modo efficiente, ovvero minimizzando l'utilizzo di risorse come la CPU, la memoria e il disco rigido. In questo modo si può ridurre l'impatto ambientale e il costo di gestione del software 
  1. Design sostenibile: il software dovrebbe essere progettato tenendo conto delle implicazioni ambientali e sociali del suo sviluppo e utilizzo. Ad esempio, si può cercare di minimizzare il consumo di energia, di utilizzare materiali sostenibili e di garantire la compatibilità con dispositivi a basso consumo energetico. 
  1. Utilizzo di tecnologie sostenibili: l'adozione di tecnologie sostenibili, come il cloud computing, la virtualizzazione e l'automazione, può contribuire alla sostenibilità del software. 
  1. Gestione del ciclo di vita del software: la gestione del ciclo di vita del software, dalla progettazione alla dismissione, dovrebbe essere gestita in modo sostenibile, tenendo conto degli impatti ambientali e sociali del software durante tutto il suo ciclo di vita. 
  1. Responsabilità sociale: le aziende che sviluppano e utilizzano il software dovrebbero essere responsabili nei confronti dell'ambiente e della società, adottando pratiche sostenibili e contribuendo a ridurre l'impatto ambientale del loro software 
  1. Inclusione degli stakeholder: gli stakeholder, tra cui gli utenti, le comunità e le organizzazioni interessate, dovrebbero essere coinvolti nel processo di sviluppo del software per garantire che sia sostenibile e risponda alle loro esigenze 
  1. Condivisione del codice: la condivisione del codice e la collaborazione con la comunità open source possono contribuire alla sostenibilità del software, consentendo una maggiore efficienza nello sviluppo del software e una riduzione del consumo di risorse 

Per misurare l'impatto energetico di un'applicazione software, è possibile utilizzare una serie di strumenti e metodologie: 

  1. Analisi del codice: la prima cosa da fare è esaminare il codice dell'applicazione per identificare le aree in cui si verificano potenziali sprechi di energia. Ad esempio, l'uso di cicli di elaborazione inefficienti, di funzioni ricorsive o di algoritmi non ottimizzati possono comportare un consumo energetico elevato. 
  1. Profilazione energetica: la profilazione energetica è una tecnica utilizzata per misurare il consumo di energia di un'applicazione in tempo reale. Questa tecnica può essere utilizzata per identificare i punti critici dell'applicazione in termini di consumo energetico. 
  1. Strumenti di monitoraggio: ci sono molti strumenti di monitoraggio disponibili per misurare il consumo di energia di un'applicazione in esecuzione su un determinato dispositivo. Questi strumenti possono fornire informazioni dettagliate sul consumo energetico dell'applicazione, ad esempio la quantità di energia consumata durante l'esecuzione di una particolare funzione o operazione. 
  1. Test di carico: i test di carico possono essere utilizzati per valutare il consumo energetico dell'applicazione sotto condizioni di carico elevato. Questi test possono aiutare a identificare eventuali problemi di efficienza energetica dell'applicazione. 
  1. Valutazione delle prestazioni: la valutazione delle prestazioni è un'attività che prevede l'analisi delle prestazioni dell'applicazione, che può includere anche la valutazione dell'efficienza energetica.  

In generale, la misurazione dell'impatto energetico di un'applicazione software richiede una combinazione di tecniche di analisi e strumenti specifici per valutare il consumo di energia dell'applicazione durante l'esecuzione. L'obiettivo finale è quello di identificare le aree in cui è possibile migliorare l'efficienza energetica dell'applicazione per ridurre il consumo di energia complessivo. 

Ci vogliamo soffermare in questo articolo sull’analisi statica del codice come strumento per la misura dell’impatto ambientale del software. Tramite la Software Intelligence, infatti, CAST Highlight ha introdotto recentemente dei nuovi indicatori che possono aiutare a migliorare l'efficienza del software e dotarsi quindi di applicazioni con un miglior impatto ambientale. 

Con Highlight viene calcolato un indice di “Green Impact” per misurare le pratiche di programmazione e i principi di ingegneria che rendono il software più rispettoso dell'ambiente.  

CAST_Highlight_Green_impactTale indice, disponibile sia a livello di portfolio applicativo che di singola applicazione, permette di identificare i difetti nel codice che contribuiscono all'utilizzo eccessivo di risorse e al consumo di energia e di consultare il trend del Green Impact per monitorare i progressi.  

L’indice Green Impact combina i risultati della scansione del codice con le risposte al questionario relative al contesto dell'applicazione per ottenere un indice che va da 0 (bassa compatibilità ambientale) a 100 (alta compatibilità ambientale). 

CAST-Highlight_indice_green_impact

 Più in dettaglio vediamo come viene effettuato il calcolo dell’indice Green Impact. 

A livello di applicazione, l’indice Green Impact è la media tra l’indice Green Scan (ottenuto tramite la scansione del codice sorgente)  e l’indice Green Survey (ottenuto in base alle risposte al questionario Green). 

Green Scan: a livello di applicazione, l’indice Green Scan è la media degli indici Green Scan delle tecnologie valutate (si veda l'elenco dei linguaggi di programmazione supportati per il Green Impact alla pagina https://doc.casthighlight.com/#technologycoverage). 

A livello di tecnologia, l’indice Green Scan viene calcolato in base a una media pesata delle violazioni alle metriche Green, le cosiddette Green Deficiency, del numero di occorrenze e del numero di righe di codice per una determinata tecnologia. I pesi delle metriche Green possono essere diversi da una tecnologia all'altra. L'elenco delle metriche relative al Green Impact disponibili in CAST Highlight si basa su un sottoinsieme delle regole di CAST Imaging per il Green-IT e deriva da standard quali PCI, CWE di MITRE, CISQ di OMG, ecc. 

Ad esempio per il linguaggio Java vengono verificate nel codice le seguenti “Green Deficiency”: 

CAST_Highlight_green_deficency

Punteggio Green Survey: A livello di applicazione, il punteggio Green Survey è un punteggio normalizzato da 0 a 100 in base alle risposte al questionario Green Impact. Ogni risposta al questionario ha un peso specifico che aumenta il punteggio. Queste alcune delle domande rivolte a classificare l’applicazione in ottica Green: 

  • La vostra applicazione utilizza strumenti di analisi statica del codice di terze parti per il tuning delle performance? [L'utilizzo di uno strumento di monitoraggio delle prestazioni incoraggia i team di sviluppo a sviluppare algoritmi e query di database efficienti dal punto di vista energetico e più rispettosi dell'ambiente] 
  • La vostra applicazione utilizza database NoSQL? [NoSQL è generalmente più veloce e più efficiente di SQL] 
  • La vostra applicazione gira su Linux? [Il sistema operativo Linux consuma meno energia rispetto agli altri OS] 
  • Quale colore di sfondo dello schermo utilizza maggiormente la vostra applicazione? [Le interfacce con sfondo nero consumano meno energia rispetto a quelle colorate. Un'applicazione con una modalità scura è più rispettosa dell'ambiente] 
    Quali sono i principali linguaggi di programmazione utilizzati nella vostra applicazione? [Il tempo di esecuzione, l'utilizzo della memoria e il consumo energetico sono diversi da un linguaggio di programmazione all'altro] 
  • La vostra applicazione sfrutta le funzionalità di intelligenza artificiale (AI)? [l'intelligenza artificiale avrà un impatto sul consumo energetico complessivo. Alcuni modelli di Machine Learning sono ottimizzati per consumare meno energia (fonte: https://spectrum.ieee.org/energy-efficient-green-ai-strategies)] 
  • La vostra applicazione utilizza strumenti di analisi dinamica del codice per monitorare il consumo energetico in tempo reale? 
  • Come viene distribuita la vostra applicazione agli utenti finali? [Le applicazioni SaaS/Cloud consumano meno energia perché l'infrastruttura sottostante è ottimizzata] 
  • La vostra applicazione dispone di un meccanismo di “purge” dei dati? [La cancellazione regolare dei dati garantisce migliori prestazioni alle query del database] 
  • La vostra applicazione utilizza criteri di cache per ridurre al minimo lo scambio di dati? [L'adozione di una politica di cache efficiente, riducendo al minimo lo scambio di dati, riduce l'impronta ambientale di un'applicazione] 

In Cast Highlight è possibile anche avere una stima dell’effort (espresso in giorni/uomo) necessario a rimuovere le violazioni alle metriche Green sia a livello di singola applicazione che a livello di intero portfolio applicativo.  

 CAST-Highlight_effort_rimozione _violazioni_metriche_green

Il Green Impact Effort viene calcolato sulla base del numero di occorrenze di ogni violazione e dell’effort configurato per ogni singola Green Deficiency che può essere diverso per le varie tecnologie a parità di metrica. 

In più a livello di portafoglio viene fornito il report CAST Highlight Portfolio Advisor for Green che identifica automaticamente le opportunità di migliorare la sostenibilità e l'impatto green delle applicazioni. È possibile stabilire rapidamente la priorità delle applicazioni da correggere in base al contesto applicativo e ottenere raccomandazioni che identificano le seguenti categorie di applicazioni: 

  • applicazioni che rappresentano la migliore opportunità di migliorare il punteggio di Green Impact con il minimo sforzo (Quick Win 
  • applicazioni critiche per l'azienda che richiedono un maggiore impegno per migliorare il punteggio di Green Impact, ma che saranno strategiche nel prossimo futuro (Rising Stars) 
  • applicazioni che già utilizzano pratiche di codifica rispettose dell'ambiente da utilizzare come modelli (Role Models) 
  • applicazioni che hanno un basso punteggio di Green Impact e che richiedono uno sforzo significativo per essere migliorate, ma che avranno un forte ritorno nel lungo periodo (Long-Term Investments). 

 CAST_Highlight_ Portfolio_Advisor_ for_ Green

La caratteristica di Cast Highlight che permette di analizzare rapidamente interi portfolio applicativi consente di valutare quindi anche l’impatto ambientale complessivo a livello aziendale e di pianificare piani di rimedio volti a migliorare la sostenibilità digitale. Con scansioni successive e ripetute è possibile monitorare i progressi e tenere sotto controllo i piani di rimedio in modo da migliorare costantemente il Green Impact del software. 

In definitiva, se da un lato il software è alla base di quasi tutte le soluzioni progettate per sostenere l’ambiente, dall’altro il suo utilizzo sempre più massiccio, dovuto al moltiplicarsi dell’impiego di tecnologie digitali negli ambiti più disparati, implica un aumento del carbon footprint. In questi ultimi tempi da parte di molte aziende è maturata la comprensione che il modo in cui il software è sviluppato e sfrutta l’hardware disponibile, può fare differenza in termini di carbon footprint. È per questo che la Software Intelligence di CAST Highlight costituisce uno strumento fondamentale per misurare l’efficienza e la sostenibilità del software e pianificare di conseguenza le opportunità di miglioramento per un futuro più Green.