Metodologia

Software quality: quali tool per automatizzare la misurazione

Automazione nella misurazione della software quality: quali tool utilizzare? O, meglio, quali i criteri idonei da applicare?

Pubblicato il 20 Ago 2019

AI Questions Icon
Chiedi all'AI
Riassumi questo articolo
Approfondisci con altre fonti
Fig01_devops-pp

Una delle principali tentazioni per chi lavora o si occupa di progetti ICT è di automatizzare quanto più possibile e, sarebbe il caso di dirlo, “costi quel che costi!”. Il rischio è pertanto che da ‘strumento’ l’automazione diventi ‘obiettivo’, perdendo di fatto il proprio valore di ‘ingrediente’ (asset) in una buona ricetta (progetto). Come indicato dal buon senso comune (prima) e da alcune best practice quali ITIL e approcci quali DevOps (poi), un tool va attentamente selezionato dopo aver ottimizzato i flussi di processo che intende supportare, non scelto a prescindere dall’uso reale che se ne farebbe, partendo dalle sue potenzialità. È il processo a dover usare un tool e non il contrario. Ma la realtà nel settore ICT racconta spesso un’altra storia, ovverosia di disporre di prodotti ERP fortemente personalizzati (con alti costi di realizzazione) in luogo di prodotti/soluzioni ad-hoc, magari con un minore impegno economico ed un maggiore ‘fit for purpose’. Normalmente il rapporto benefici/costi dovrebbe essere positivo, analizzando pertanto condizioni d’uso che suggeriscano o sconsiglino l’adozione spinta di tecnologia. Basti pensare ai magazzini di Amazon: i robot fanno il lavoro ‘sporco’ (movimentazione dei carichi nel magazzino), ma poi l’impacchettamento è lasciato ad esperte mani umane, così come nelle fabbriche automobilistiche le parti più delicate dell’assemblaggio di componenti è deputato ad operatori umani. Insomma…tecnologia si, ma ‘q.b. (quanto basta)’, come la normale logica vorrebbe. Lo stesso vale per la software quality.

Possibili criteri per una buona applicazione dell’automazione

Quando si parla però di progetti software, la regola sembra spesso diventare eccezione, sebbene anche DevOps proponga l’automazione quale uno dei cinque valori CALMS (Culture, Automation, Lean, Measurement, Sharing), ma non necessariamente il principale, dovendosi trovare un buon bilanciamento dei cinque elementi (figura 1).

grafico che illustra i Valori DevOps: CALMS
Fig. 1 – Valori DevOps: CALMS

Una valida ‘toolchain’, prevede ad esempio una corretta integrazione dei tool utilizzabili nelle diverse fasi di un ciclo di vita. E qui sta uno dei possibili criteri di valutazione: usare un tool adeguato, utile e che generi valore per il progetto in un dato momento, non in assoluto.

Strumenti per la gestione e memorizzazione dei requisiti utente dovrebbero poter avere punti di aggancio con quelli per il testing (ad esempio condividendo matrici di copertura che permettano di valutare la completezza di un piano di test e collaudo), ma non diventare ‘coltellini svizzeri’ multi-uso, essendo proposti come soluzioni di ALM (Application Lifecycle Management).

Un buono strumento dovrebbe essere specializzato nel fare qualcosa bene, rapidamente, con poca fatica ma con un buon livello di accuratezza e precisione, comparato con l’esecuzione umana. Pertanto è possibile individuare aree e fasi del ciclo di vita nelle quali l’automazione risulta sicuramente più utile e performante ed altre nelel quali la combinazione di costi, rischi e valore propende per l’attività manuale.

Automatizzare la misurazione della software quality?

Passando dalle considerazioni generali a quelle specifiche sulla misurazione della software quality, l’automazione può portare beneficio laddove il contenuto è stabile e già acquisito (es: code quality analysis, esecuzione automatica di test case, …) ma non dove al contrario è variabile (es: analisi dei requisiti, …), mentre è da valutarsi neutro quando il tool è un mero collettore e organizzatore di contenuti.

Veniamo al punto: un requisito per valutare un automatizzare la misurazione della software quality può essere – come nella figura 2 seguente, rappresentante un iceberg – ben espresso, ambiguo/non granulare o addirittura dato per scontato, implicito. Sono molti i tentativi di utilizzo di meta-linguaggi per la codifica di uno user requirement (UR), ma ancora non soddisfacenti, sempre applicando i criteri summenzionati (costo, rischio, valore/beneficio).

L’iceberg dei requisiti
Fig. 2 – L’iceberg dei requisiti

Alcuni esempi: trasformare un UR in una forma UML (Unified Modeling Language) è sicuramente utile per chiarire ed uniformare lo stile di scrittura tra gli attori ma ha un costo (il tempo di traduzione nel meta-linguaggio partendo da un requisito ‘umano’ e gli eventuali costi di licenza del software), un rischio (ogni diagramma UML ha un obiettivo d’uso specifico, quindi potrebbe servirne uno in più, non inizialmente previsto…ad esempio per diagrammare un requisito non-funzionale, NFR (Non-Functional Requirements) e un valore (come in ITIL, l’insieme dei requisiti funzionali e non-funzionali…quale diagramma UML usereste per rappresentare gli aspetti proposti nella norma ISO/IEC 25010 o 25012 sulla qualità dei dati?).

Ancora, tool per la stima dell’effort usando metodi parametrici quali CO.CO.MO. Si partirebbe dall’inserire un numero di LOC (Lines of Code) che in fase di stima ancora non si conosce per poi selezionare un livello atteso (alto, medio, basso, …) per una serie di parametri (cost-drivers) i cui valori sono impostati a partire da una base dati di progetti non noti e quindi possibilmente non simili al progetto che staremmo valutando con una logica di tipo ‘black box’, determinando in pochi minuti il numero dei giorni di lavoro attesi, la data di consegna, i costi associati e una distribuzione dell’effort suddivisa per macro-fasi del ciclo di vita.

Il costo sembrerebbe ridotto (pochi minuti per inserire le informazioni ‘qualitative’ richieste), ma il rischio è sicuramente alto: come determinare quante LOC avremo a posteriori prima di averle scritte? E poi, le LOC non sono un’espressione della dimensione funzionale di un software, ma solo della lunghezza delle istruzioni (statemente) adottati per realizzare quelle funzionalità, fortemente variabili in funzinoe dello stile di programmazione adottato. Ancora, basti calcolare ex-post il ‘relative error’ tra valori stimati e consuntivati usando i giorni-persona. Il valore, conseguentemente, sarebbe non ottimale. ‘Quick & dirty’ non si associa bene ad una fase di stima di un progetto, grande o piccolo che sia, fortemente cruciale da essere ‘meccanicizzata’.

schermate Tool per stime con modelli parametrici: COSTAR
Fig. 3 – Tool per stime con modelli parametrici: COSTAR

Ultimo esempio: strumenti di conteggio automatico delle funzionalità di un software. I Software vendor propongono due possibili approcci: derivare il numero di FP (di qualunque tipo siano) da eleborazioni dei requisiti (es: UML) o da un parsing del codice sorgente.

Nel primo caso, tradurre un requisito umano, di per sé ambiguo, porta a una variabilità sensibile dei valori ottenuti (es: ‘gestire’ potrebbe essere interpretato come ‘CRUD’ (Create/Read/Update/Delete) o CRUDL (L: List, aggiungendo una o più visualizzazioni o export). Forzare l’elicitazione dei requisiti per essere validi in un qualsivoglia meta-linguaggio ha un costo non banale di istruzione sia per l’analista che per gli stakeholder (tanti, diversi e variabili) da contattare. Le certificazioni individuali (es: IFPUG CFPS/CFPP, COSMIC CCFL, …) rispondono proprio a questo obiettivo.

Nel secondo caso invece uno strumento che determini un valore ex-post (e non ex-ante) riduce di molto la propria utilità e valore, dato che la quasi totalità dei conteggi FPA è nella quotidianità relativo a manutenzioni evolutive di sistemi esistenti o a nuovi sviluppi e che quindi non hanno codice da analizzare. Il conteggio c.d. di baseline è un caso importante ma ben delimitato e in ogni caso, come indicato in un recente documento AGID sulle misure software nei contratti ICT, citiamo testualmente, “IFPUG non ha validato la correttezza e validità degli algoritmi proposti da OMG”, con riferimento agli AFP (Automated Function Points).

Infine, le manutenzioni correttive non modificano alcun FUR e quindi rappresentano un ulteriore tipo di interventi ‘out of scope’ per questo genere di tool. I costi sono relativi alle eventuali licenze (nel caso di strumenti commerciali), tempo di istruzione di uno specialista di prodotto e per applicazioni limitate il rischio è di una non approvata compatibilità da parte delle associazioni internazionali che gestiscono le principali metodologie FSM (Functional Size Measurement) e in ogni caso non siano correttamente definiti i confini delle applicazioni parte di un’architettura come i file logici partendo dallo schema fisico delle tabelle dati. Il valore, conseguentemente, sembra non essere positivo, dato che la variabilità tra i conteggi automatici e quelli effettuati da un certificato umano non sono banali, né in termini assoluti che percentuali.

Quali possibili conclusioni?

Insomma, uno strumento è sempre valido ma a condizione di generare un vantaggio (ovverosia un ‘valore’). In parole povere, ci dovremmo chiedere se ‘ne valga la pena’ oppure no…E la risposta va determinata volta per volta, applicando i criteri sopra proposti. Come diceva Eliyahu Goldratt, l’ideatore della Theory of Constraints (TOC): “Automation is good, so long as you know exactly where to put the machine“.

GUFPI-ISMA ha ridefinito nel 2016 le proprie Linee Guida con un primo volume relativo ai Principi, Assunzioni e Best Practice Contrattuali (PABCP) con i principali aspetti da poter osservare anche per auto-valutazioni dei propri contratti a cui seguirà a breve un secondo volume con indicazioni operative sui singoli lemmi discussi. Interessati a saperne di più? Seguite i nostri prossimi contributi su ZeroUnoWeb e visitate il sito di GUFPI-ISMA per ulteriori spunti ed approfondimenti!

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Partecipa alla community

guest
0 Commenti
Più recenti Più votati
Inline Feedback
Vedi tutti i commenti

DATA CENTER HUB

Tutti
RICERCHE
I PROTAGONISTI
GUIDE
APPROFONDIMENTI
Leggi l'articolo Data center in Italia, la corsa si gioca sull’energia: 95 GW di richieste a Terna
l'analisi
Data center in Italia, la corsa si gioca sull’energia: 95 GW di richieste a Terna
Leggi l'articolo Data center, gestione dell’energia e architetture critiche con Schneider Electric
l'identikit
Data center, gestione dell’energia e architetture critiche con Schneider Electric
Leggi l'articolo Data center, la region Azure in Italia di Microsoft
l'identikit
Data center, la region Azure in Italia di Microsoft
Leggi l'articolo Sviluppo dei data center, l’approccio integrato di Deerns
l'identikit
Sviluppo dei data center, l’approccio integrato di Deerns
Leggi l'articolo Campus data center e interconnessione: come si sviluppa l’ecosistema Equinix
l'identikit
Campus data center e interconnessione: come si sviluppa l’ecosistema Equinix
Leggi l'articolo Continuità elettrica per i data center: le soluzioni di Riello UPS
l'identikit
Continuità elettrica per i data center: le soluzioni di Riello UPS
Leggi l'articolo Data center, le 50 parole chiave
glossario
Data center, le 50 parole chiave
Leggi l'articolo Equans, un approccio end-to-end per i nuovi data center
l'identikit
Equans, un approccio end-to-end per i nuovi data center
Leggi l'articolo Munters, il raffreddamento che sostiene l’evoluzione dei data center
l'identikit
Munters, il raffreddamento che sostiene l’evoluzione dei data center
Leggi l'articolo Elettrificazione e distribuzione elettrica ad alta efficienza secondo ABB
L'identikit
Elettrificazione e distribuzione elettrica ad alta efficienza secondo ABB
Leggi l'articolo Dallo staffaggio alla protezione antincendio: l’offerta Hilti per i data center
l'identikit
Dallo staffaggio alla protezione antincendio: l’offerta Hilti per i data center
Leggi l'articolo Come HiRef ottimizza il raffreddamento e l’efficienza energetica dei data center
l'identikit
Come HiRef ottimizza il raffreddamento e l’efficienza energetica dei data center
Leggi l'articolo Data center in Italia: come cambia l’ecosistema della filiera
VADEMECUM
Data center in Italia: come cambia l’ecosistema della filiera
Leggi l'articolo La corsa all’AI fa esplodere la domanda energetica dei data center
Lo studio
La corsa all’AI fa esplodere la domanda energetica dei data center
Leggi l'articolo Dal data center all’AI factory: cosa serve sapere prima di investire
Vademecum
Dal data center all’AI factory: cosa serve sapere prima di investire
Leggi l'articolo Consumi AI data center: ABB scommette sulla corrente continua
Energy efficiency
Consumi AI data center: ABB scommette sulla corrente continua
Leggi l'articolo Data center, cresce l’appeal del mercato italiano per i capitali
L'analisi
Data center, cresce l’appeal del mercato italiano per i capitali
Leggi l'articolo Data center “lights-out”: quanto manca all’infrastruttura autonoma
vademecum
Data center “lights-out”: quanto manca all’infrastruttura autonoma
Leggi l'articolo Etichetta UE per i data center: più trasparenza sui consumi
L'approfondimento
Etichetta UE per i data center: più trasparenza sui consumi
Leggi l'articolo Data center, Becker: “La sovranità digitale passa dalla dimensione regionale”
L'intervista
Data center, Becker: “La sovranità digitale passa dalla dimensione regionale”
Leggi l'articolo Data center in Italia, la corsa si gioca sull’energia: 95 GW di richieste a Terna
l'analisi
Data center in Italia, la corsa si gioca sull’energia: 95 GW di richieste a Terna
Leggi l'articolo Data center, gestione dell’energia e architetture critiche con Schneider Electric
l'identikit
Data center, gestione dell’energia e architetture critiche con Schneider Electric
Leggi l'articolo Data center, la region Azure in Italia di Microsoft
l'identikit
Data center, la region Azure in Italia di Microsoft
Leggi l'articolo Sviluppo dei data center, l’approccio integrato di Deerns
l'identikit
Sviluppo dei data center, l’approccio integrato di Deerns
Leggi l'articolo Campus data center e interconnessione: come si sviluppa l’ecosistema Equinix
l'identikit
Campus data center e interconnessione: come si sviluppa l’ecosistema Equinix
Leggi l'articolo Continuità elettrica per i data center: le soluzioni di Riello UPS
l'identikit
Continuità elettrica per i data center: le soluzioni di Riello UPS
Leggi l'articolo Data center, le 50 parole chiave
glossario
Data center, le 50 parole chiave
Leggi l'articolo Equans, un approccio end-to-end per i nuovi data center
l'identikit
Equans, un approccio end-to-end per i nuovi data center
Leggi l'articolo Munters, il raffreddamento che sostiene l’evoluzione dei data center
l'identikit
Munters, il raffreddamento che sostiene l’evoluzione dei data center
Leggi l'articolo Elettrificazione e distribuzione elettrica ad alta efficienza secondo ABB
L'identikit
Elettrificazione e distribuzione elettrica ad alta efficienza secondo ABB
Leggi l'articolo Dallo staffaggio alla protezione antincendio: l’offerta Hilti per i data center
l'identikit
Dallo staffaggio alla protezione antincendio: l’offerta Hilti per i data center
Leggi l'articolo Come HiRef ottimizza il raffreddamento e l’efficienza energetica dei data center
l'identikit
Come HiRef ottimizza il raffreddamento e l’efficienza energetica dei data center
Leggi l'articolo Data center in Italia: come cambia l’ecosistema della filiera
VADEMECUM
Data center in Italia: come cambia l’ecosistema della filiera
Leggi l'articolo La corsa all’AI fa esplodere la domanda energetica dei data center
Lo studio
La corsa all’AI fa esplodere la domanda energetica dei data center
Leggi l'articolo Dal data center all’AI factory: cosa serve sapere prima di investire
Vademecum
Dal data center all’AI factory: cosa serve sapere prima di investire
Leggi l'articolo Consumi AI data center: ABB scommette sulla corrente continua
Energy efficiency
Consumi AI data center: ABB scommette sulla corrente continua
Leggi l'articolo Data center, cresce l’appeal del mercato italiano per i capitali
L'analisi
Data center, cresce l’appeal del mercato italiano per i capitali
Leggi l'articolo Data center “lights-out”: quanto manca all’infrastruttura autonoma
vademecum
Data center “lights-out”: quanto manca all’infrastruttura autonoma
Leggi l'articolo Etichetta UE per i data center: più trasparenza sui consumi
L'approfondimento
Etichetta UE per i data center: più trasparenza sui consumi
Leggi l'articolo Data center, Becker: “La sovranità digitale passa dalla dimensione regionale”
L'intervista
Data center, Becker: “La sovranità digitale passa dalla dimensione regionale”