SQALE ( Software Quality Assessment based on Lifecycle Expectations ) è un metodo per valutare il codice sorgente di un'applicazione software . Si basa sul concetto di debito tecnico . È un metodo generico, indipendente dai linguaggi , indipendente dagli strumenti di analisi del codice e pubblicato sotto la licenza Creative Commons BY-NC-ND. Gli editori possono implementare liberamente il metodo nel loro codice degli strumenti di analisi automatica.
Il metodo SQALE è stato sviluppato dalla società inspearit France. Viene utilizzato su applicazioni di tutti i tipi e dimensioni per monitorare la qualità del software e gestire il debito tecnico. Diversi strumenti di analisi statica del codice lo implementano e producono gli indici e gli indicatori definiti dal metodo.
Il metodo SQALE è stato sviluppato per soddisfare un'esigenza generale relativa alla valutazione del codice sorgente di un'applicazione. Ad oggi, infatti, non è emerso alcun metodo standard per rispondere a domande fondamentali quali:
Standard come ISO 9126 forniscono solo risposte senza dettagli su come costruire una soluzione completa al problema posto. Per poter valutare la qualità di un codice sorgente, la comunità degli sviluppatori necessita di un metodo generico con le seguenti proprietà:
Il metodo SQALE tende a rispondere a queste esigenze basandosi sull'analisi sistematica dei metodi di consolidamento per quanto riguarda le tipologie di scala e la clausola di rappresentanza.
La prima versione del metodo (versione 0.8) è stata pubblicata nel 2010. Da allora, il metodo è stato completato per supportare l'analisi del debito tecnico secondo la prospettiva di business e per proporre un nuovo indicatore: mappa del debito che consente la scelta del debito strategia rimborso del debito tecnico a seconda del contesto. La versione 1.0 è stata rilasciata ingennaio 2012.
Il metodo si basa su nove principi fondamentali:
Il metodo si compone di quattro concetti principali:
Il modello di qualità SQALE viene utilizzato per formulare e organizzare requisiti non funzionali per la qualità del codice. È organizzato in 3 livelli gerarchici. Il primo livello è costituito da caratteristiche, il secondo livello da sottocaratteristiche. Il terzo livello è un livello costituito da requisiti relativi ad attributi interni al codice sorgente. Questi requisiti possono dipendere dal contesto del software e dalla sua lingua. I requisiti del modello di qualità SQALE sono utilizzati come riferimento per la stima del debito tecnico. Qualsiasi violazione di uno dei requisiti del modello induce un debito tecnico.
Il modello di analisi SQALE contiene da un lato le regole che servono per uniformare le misure ed i controlli relativi al codice, dall'altro le regole per l'aggregazione dei valori normalizzati in indici. Il metodo SQALE standardizza i risultati degli strumenti di analisi del codice sorgente trasformandoli in indici che rappresentano i carichi. Per fare ciò, vengono utilizzate le funzioni di riparazione (vedere stima ) e non di riparazione. Nel metodo SQALE, gli indici vengono aggregati per addizione. Sia nell'albero del modello di qualità, sia nell'albero gerarchico degli artefatti del codice sorgente.
Tutti gli indici SQALE rappresentano le spese. Questi addebiti possono essere espressi in unità di lavoro, in durata (ad esempio in ore) o in costo (ad esempio in €). In tutti i casi, gli indici hanno valori su una scala di tipo rapporto. Possono quindi essere movimentate con tutte le operazioni autorizzate per questo tipo di bilancia. Per qualsiasi elemento della gerarchia dei manufatti del patrimonio del codice sorgente, l'onere della riparazione relativo a una data caratteristica può essere stimato sommando tutti i costi di riparazione osservati rispetto ai requisiti della caratteristica. Gli indici caratteristici SQALE sono i seguenti:
Il metodo definisce anche un indice globale: per qualsiasi elemento della gerarchia degli artefatti del patrimonio del codice sorgente, possiamo stimare il carico di bonifica relativo a tutte le caratteristiche del modello di qualità sommando tutti i costi di bonifica relativi a tutti i requisiti del modello di qualità. Questa metrica derivata è chiamata: indice di qualità SQALE (SQI)
Per i progetti agili, il SQI rappresenta quello che viene comunemente chiamato debito del progetto tecnico .
Il metodo definisce anche le densità dell'indice (ad esempio la densità dell'indice di qualità SQALE: SQID) consentendo di confrontare la qualità di prodotti di diverse dimensioni.
Il metodo SQALE definisce quattro indicatori sintetici. Ogni utente può definirne altri in base alle proprie esigenze di informazione.
Le due più importanti sono: la piramide SQALE e la mappa del debito SQALE , che vengono utilizzate per stabilire strategie tecniche di rimborso del debito.
Il concetto di debito tecnico è stato inventato da Ward Cunningham per monitorare la qualità del codice dei progetti agili.
Il metodo SQALE è particolarmente indicato per la gestione del debito tecnico. Lei permette:
Nei requisiti relativi al codice (il modello di qualità SQALE), il metodo consente di inserire una soglia minima da raggiungere con gli unit test. Se questa soglia non viene raggiunta, questo modificherà l'indice di affidabilità dell'applicazione.