Misurazione del software
Il framework per la misurazione del software si basa su tre principi:
- Classificazione delle entità da esaminare
- Determinazione degli obiettivi di misurazione rilevanti
- Identificare il livello di maturità raggiunto dall'organizzazione
Classificazione delle entità da esaminare
Nell'ingegneria del software esistono principalmente tre classi di entità. Sono -
- Processes
- Products
- Resources
Tutte queste entità hanno entità interne ed esterne.
Internal attributessono quelli che possono essere misurati puramente in termini di processo, prodotto o risorse stesse. Ad esempio: dimensioni, complessità, dipendenza tra i moduli.
External attributessono quelli misurabili solo rispetto al suo rapporto con l'ambiente. Ad esempio: il numero totale di errori riscontrati da un utente, il tempo necessario per cercare nel database e recuperare le informazioni.
I diversi attributi che possono essere misurati per ciascuna delle entità sono i seguenti:
Processi
I processi sono raccolte di attività relative al software. Di seguito sono riportati alcuni degli attributi interni che possono essere misurati direttamente per un processo:
La durata del processo o una delle sue attività
Lo sforzo associato al processo o a una delle sue attività
Il numero di incidenti di un tipo specifico verificatisi durante il processo o una delle sue attività
I diversi attributi esterni di un processo sono costo, controllabilità, efficacia, qualità e stabilità.
Prodotti
I prodotti non sono solo gli elementi che la direzione si impegna a fornire, ma anche qualsiasi artefatto o documento prodotto durante il ciclo di vita del software.
I diversi attributi interni del prodotto sono dimensione, impegno, costo, specifica, lunghezza, funzionalità, modularità, riutilizzo, ridondanza e correttezza sintattica. Tra queste dimensioni, impegno e costo sono relativamente facili da misurare rispetto agli altri.
I diversi attributi del prodotto esterno sono usabilità, integrità, efficienza, testabilità, riusabilità, portabilità e interoperabilità. Questi attributi descrivono non solo il codice ma anche gli altri documenti che supportano lo sforzo di sviluppo.
Risorse
Queste sono entità richieste da un'attività di processo. Può essere qualsiasi input per la produzione del software. Include personale, materiali, strumenti e metodi.
I diversi attributi interni delle risorse sono età, prezzo, dimensione, velocità, dimensione della memoria, temperatura, ecc. I diversi attributi esterni sono produttività, esperienza, qualità, usabilità, affidabilità, comfort ecc.
Determinazione degli obiettivi di misurazione pertinenti
Una particolare misurazione sarà utile solo se aiuta a comprendere il processo o uno dei suoi prodotti risultanti. Il miglioramento del processo o dei prodotti può essere eseguito solo quando il progetto ha obiettivi chiaramente definiti per processi e prodotti. Una chiara comprensione degli obiettivi può essere utilizzata per generare metriche suggerite per un dato progetto nel contesto di un quadro di maturità del processo.
Il paradigma Obiettivo-Domanda-Metrica (GQM)
L'approccio GQM fornisce una struttura che comprende i seguenti tre passaggi:
Elenco degli obiettivi principali del progetto di sviluppo o manutenzione
Derivare le domande da ogni obiettivo a cui è necessario rispondere per determinare se gli obiettivi vengono raggiunti
Decidi cosa misurare per poter rispondere adeguatamente alle domande
Per utilizzare il paradigma GQM, prima esprimiamo gli obiettivi generali dell'organizzazione. Quindi, generiamo le domande in modo tale che le risposte siano note in modo da poter determinare se gli obiettivi vengono raggiunti. Successivamente, analizza ogni domanda in termini di quale misura abbiamo bisogno per rispondere a ciascuna domanda.
Gli obiettivi tipici sono espressi in termini di produttività, qualità, rischio, soddisfazione del cliente, ecc. Gli obiettivi e le domande devono essere costruiti in termini di pubblico.
Per aiutare a generare obiettivi, domande e metriche, Basili & Rombach ha fornito una serie di modelli.
Purpose - (caratterizzare, valutare, prevedere, motivare, ecc.) Il (processo, prodotto, modello, metrica, ecc.) Al fine di comprendere, valutare, gestire, ingegnerizzare, apprendere, migliorare, ecc. Example: Caratterizzare il prodotto per apprenderlo.
Perspective - Esaminare il (costo, efficacia, correttezza, difetti, modifiche, misure del prodotto, ecc.) Dal punto di vista dello sviluppatore, manager, cliente, ecc. Example: Esaminare i difetti dal punto di vista del cliente.
Environment - L'ambiente è costituito da quanto segue: fattori di processo, fattori persone, fattori problema, metodi, strumenti, vincoli, ecc. Example: I clienti di questo software sono coloro che non hanno alcuna conoscenza degli strumenti.
Misurazione e miglioramento dei processi
Normalmente la misurazione è utile per:
- Comprensione del processo e dei prodotti
- Stabilire una linea di base
- Accesso e previsione del risultato
A seconda del livello di maturità del processo fornito da SEI, il tipo di misurazione e il programma di misurazione saranno diversi. Di seguito sono riportati i diversi programmi di misurazione che possono essere applicati a ciascun livello di maturità.
Level 1: Ad hoc
A questo livello, gli input sono mal definiti, mentre gli output sono attesi. Il passaggio dall'ingresso all'uscita è indefinito e incontrollato. Per questo livello di maturità del processo, sono necessarie misurazioni di base per fornire un punto di partenza per la misurazione.
Level 2: Repeatable
A questo livello, gli input e gli output del processo, i vincoli e le risorse sono identificabili. Un processo ripetibile può essere descritto dal diagramma seguente.
Le misure di input possono essere le dimensioni e la volatilità dei requisiti. L'output può essere misurato in termini di dimensioni del sistema, risorse in termini di impegno del personale e vincoli in termini di costi e tempi.
Level 3: Defined
A questo livello vengono definite le attività intermedie e i loro input e output sono conosciuti e compresi. Un semplice esempio del processo definito è descritto nella figura seguente.
L'input e l'output delle attività intermedie possono essere esaminati, misurati e valutati.
Level 4: Managed
A questo livello, il feedback delle prime attività del progetto può essere utilizzato per stabilire le priorità per le attività correnti e successivamente per le attività del progetto. Possiamo misurare l'efficacia delle attività di processo. La misurazione riflette le caratteristiche del processo complessivo e dell'interazione tra e tra le principali attività.
Level 5: Optimizing
A questo livello, le misure delle attività vengono utilizzate per migliorare il processo rimuovendo e aggiungendo attività di processo e modificando dinamicamente la struttura del processo in risposta al feedback delle misurazioni. Pertanto, il cambiamento del processo può influenzare l'organizzazione e il progetto, nonché il processo. Il processo fungerà da sensori e monitor e possiamo modificare il processo in modo significativo in risposta ai segnali di pericolo.
A un determinato livello di maturità, possiamo raccogliere le misurazioni per quel livello e per tutti i livelli inferiori.
Identificazione del livello di maturità
La maturità del processo suggerisce di misurare solo ciò che è visibile. Pertanto, la combinazione della maturità del processo con GQM fornirà le misure più utili.
A level 1, è probabile che il progetto abbia requisiti mal definiti. A questo livello, la misurazione delle caratteristiche dei requisiti è difficile.
A level 2, i requisiti sono ben definiti e possono essere raccolte informazioni aggiuntive come il tipo di ciascun requisito e il numero di modifiche a ciascun tipo.
A level 3, le attività intermedie sono definite con criteri di ingresso e uscita per ciascuna attività
L'obiettivo e l'analisi della domanda saranno gli stessi, ma la metrica varierà con la maturità. Più maturo è il processo, più ricche saranno le misurazioni. Il paradigma GQM, di concerto con la maturità del processo, è stato utilizzato come base per diversi strumenti che assistono i manager nella progettazione di programmi di misurazione.
GQM aiuta a capire la necessità di misurare l'attributo e la maturità del processo suggerisce se siamo in grado di misurarlo in modo significativo. Insieme forniscono un contesto per la misurazione.