Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Scienza e misura
Misurazione
del software
IS
Finalità della misura
Rendere oggettivi i risultati degli esperimenti effettuati
Avere dati da cui ricavare modelli matematici
L’oggettività della misura implica ripetibilità, confronto,
confidenza
Ingegneria del Software
V. Ambriola, G.A. Cignoni,
C. Montangero, L. Semini
Aggiornamenti di: T. Vardanega (UNIPD)
1/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Limiti intrinseci della misura
Approssimazione nella misura di realtà fisiche
Astrazione nella misura di valutazione o di stima
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Misurare
Un’attività quotidiana
Misurare per conoscere
Misurare per giudicare
L’effetto di semplificazione e imprecisione
Misura e metrica
Grandezze fisiche: massa, lunghezza, velocità …
Grandezze economiche: prezzi, indici (inflazione, PIL, AEX), ..
Di tutto di più: gradimento, reddito, caratteristiche fisiche, …
Misurazione
UniPD - 2013/14 - Ingegneria del Software mod. B
2/39
Processo che assegna numeri o simboli ad attributi di entità
del mondo reale per descriverle secondo regole definite
Misura
Risultato della misurazione
Assegnazione empirica e oggettiva di un valore (numerico o
simbolo) a un’entità per caratterizzarne un attributo specifico
Metrica = insieme di regole
Dipartimento di Informatica, Università di Pisa
3/39
Per fissare le entità da misurare, gli attributi rilevanti, l’unità
di misura, la procedura per assegnare e interpretare i valori
Dipartimento di Informatica, Università di Pisa
4/39
1
Misurazione del software
Misurazione del software
IS
Indicatori
Per caratteristiche difficilmente misurabili
Obiettivi della misurazione nel SW
La misura desiderata può essere ottenuta indirettamente a
partire da altre misure ottenute tramite stime o predizioni
Identificare gli attributi misurabili
Determinare gli indicatori per le caratteristiche non misurabili
Misura quantitativa del grado di possesso di uno specifico
attributo da parte di un sistema, componente, processo
5/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Strumenti di valutazione e controllo
Entità da misurare
Processi
Progetti
Prodotti
Risorse
Interni
Esterni
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
Importanza della misurazione
“Misura ciò che è misurabile e rendi misurabile ciò
che non lo è”
Lord William Thomson Kelvin (1824-1907)
“You can't control what you can't measure”
6/39
Galileo Galilei (1564-1642)
“If you cannot measure it, you cannot improve it”
misurabili rispetto alle entità
misurabili rispetto all’ambiente
7/39
Misurazione del software
IS
Categorie di attributi
Se necessario scegliere maggiore effetto per minor costo
Dipartimento di Informatica, Università di Pisa
insiemi correlati di procedure astratte
attività concrete legate a tempo e risorse
beni e servizi in uscita dai progetti
elementi impiegati e consumati dal progetto
In modo proattivo piuttosto che reattivo
Decidere quali azioni correttive intraprendere
Le metriche nella produzione
Progetti – stime, preventivi e consuntivi di costo e di tempo
Prodotti – qualità
Processi – qualità (capability, maturity), miglioramenti
Risorse – consumo
Interpretare, cogliere tendenze
Metrica secondo il glossario SWE di IEEE
Valutare lo stato di
Metriche usate per stimare caratteristiche
Misurazione del software
IS
Tom de Marco (1940, -) software engineering author
Dipartimento di Informatica, Università di Pisa
8/39
2
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Processo di misurazione
Strategie
(Come
e discipline
ISO/IEC 15939 Software Measurement Process
Measurement Information Model: descrive i valori di misurazione da
produrre e le relazioni tra loro
Measurement Process Model: descrive il processo di misurazione
misurare
Linee guida (p.es. Practical Software Measurement)
Cosa
e perché
CMMI
9/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Secondo ISO 15939
definire) Cosa misurare
Come
Come capire i bisogni informativi
“the information needs are based on goals, constraints, risks, and
problems which originate from the technical and mgmt processes”
CMMI suggerisce di determinarli nelle seguenti aree
Requirements Management
Design & Implementation
Verification & Validation (V&V)
Quality Assurance
Configuration Management
Project Management
Risk analysis & decision analysis
Training
11/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Esempio – 1
Visione globale di ISO/IEC 15939
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
10/39
Per i responsabili di progetto
Quale è il costo del processo?
Quale è la produttività degli sviluppatori?
Quale è la qualità dei prodotti?
Per gli sviluppatori
Quanto verificabili sono i requisiti?
Abbiamo rimosso tutti i difetti?
Abbiamo soddisfatto tutti i requisiti?
Dipartimento di Informatica, Università di Pisa
12/39
3
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Un semplice modello di produttività
Lead time
Productivity
Metrica di project management
Cost
Personnel
Value
HW
Time
Quality
Reliability
Money
Quantity
Defects
Size
Resources
SW
Complexity
LT : lead time
Environmental
Constraints
WiP : work in progress
Problem
difficulty
Functionality
13/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Misura il tempo di calendario che intercorre tra un ordine di
sviluppo e la relativa consegna
Misurazione del software
IS
Esempio – 2 (CMMI level 2)
Requirements Management
Risk analysis
Configuration Management
Metriche software
Quanto le pratiche in uso aderiscono a quelle di riferimento
Quanto i prodotti del progetto soddisfano i requisiti
15/39
Dipartimento di Informatica, Università di Pisa
Problema aperto
Quali rischi gravano attualmente sul progetto e quanto
Il software è difficile da misurare
Il software ha caratteristiche multiformi
Le tecnologie cambiano rapidamente
L’ambiente di esecuzione ha una grande influenza
Quale è l’impatto di una data modifica
Quale è il grado di integrità delle baseline di progetto
Project Management
Quanto sono affidabili i preventivi e quanto accurati i consuntivi
Quanto efficaci sono le misure correttive quando concretamente adottate
Tipi di metriche
Quality Assurance
Del prodotto in sé
Delle sue funzionalità
Del suo comportamento
quanto è grande
cosa deve fare
cosa succede e quando
Quanto le pratiche in uso aderiscono a quelle di riferimento
Quanto i prodotti del progetto soddisfano le aspettative
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
14/39
Dipartimento di Informatica, Università di Pisa
16/39
4
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Linee di codice sorgente (SLOC)
La metrica più intuitiva e più usata
Conteggio dei costrutti / comandi
Semplificato e adattato alle funzionalità degli editor
Usata per derivare informazioni di costo e produttività
Rapportata alla densità di commenti
Limiti
Dipendente da sintassi e potenza espressiva del linguaggio
Dipendente dallo stile di codifica
17/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Software Science – 2
Unità di misura
n1 = numero di operatori distinti usati dal programma
n2 = numero di operandi distinti usati dal programma
N1 = numero di occorrenze degli operatori
N2 = numero di occorrenze degli operandi
Per determinare (tra l’altro)
* La dimensione N di un programma
N = n1 log2 n1 + n2 log2 n2
tipicamente si ha N = (N1+N2)
* Il volume V di un programma
V = (N1+N2) log2 (n1+n2)
V varia al variare del linguaggio di programmazione
Halstead assegna un valore (livello) I come costante di linguaggio
Dipartimento di Informatica, Università di Pisa
19/39
ma la ricerca ha mostrato che essa dipende anche dal programmatore
Misurazione del software
IS
Software Science – 1
Complessità ciclomatica – 1
Maurice H. Halstead, Elements of Software Science,
Elsevier, 1977
Complessità del codice
Misura a posteriori (molto più facile che a priori!)
Controversa
Basata sul numero e sul tipo dei costrutti
Basata su elementi di psicologia cognitiva e statistica
UniPD - 2013/14 - Ingegneria del Software mod. B
Indipendente dal linguaggio di programmazione
Complessità del flusso di controllo
Adatta solo ai primi linguaggi di programmazione
Oggi è statisticamente inefficace
Dipartimento di Informatica, Università di Pisa
Limiti
Proposta da Thomas McCabe nel 1976
Funzione dei possibili cammini indipendenti all’interno di un
singolo sottoprogramma
Misurazione astratta di un attributo significativo del codice
Limiti
Fallibilità dimostrata
Costosa da applicare prima di progettare il codice in dettaglio
18/39
Nonostante ciò ancora largamente usata
Dipartimento di Informatica, Università di Pisa
20/39
5
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Complessità ciclomatica – 2
Il valore rilevato va confrontato con soglie prefissate
Complessità ciclomatica – 4
P.es.: [1, 10] complessità bassa; [21, 50] complessità elevata;
[51, …) complessità inaccettabile
Corrisponde al numero di casi di prova necessari per
verificare ogni possibile esito di ogni ramo di
decisione della procedura
Misura la complessità del flusso di controllo ma non la complessità
del flusso dei dati
Il grado di fan-in e fan-out applicato ai dati può aiutare a stimare la
complessità del flusso dei dati
Meglio calcolarlo usando strumenti automatici
21/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Errore in difetto
La complessità reale è maggiore di quella misurata
Esempio: decisione, v(G) 6 5 2 3
Ma il codice sorgente è offuscato!
int _INT = 1; int INT_ =
0; int Int_ ( int _int )
{ if (_int == INT_) return
_INT; else
return _int
* Int_ ( _int – _INT ); }
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Complessità ciclomatica – 3
Definizione algebrica costruita sopra il grafo
di controllo G che descrive una procedura
v(G) e n p
e
n
p
numero di percorsi lineari in G
numero degli archi (flusso)
numero dei nodi (espressioni o comandi)
numero delle componenti connesse da ogni
arco (p 2 per esecuzione sequenziale:
1 predecessore, 1 successore)
Esempio: sequenza, v(G) 3 4 2 1
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
22/39
23/39
Complessità ciclomatica – 5
Errore in eccesso
La complessità reale è inferiore
a quella misurata
Esempio, v(G) 10 2 2 4
switch visto come una sequenza
di if annidati
v(G) C 1
Dove C è il numero dei casi
Dipartimento di Informatica, Università di Pisa
24/39
6
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Function Point – 1
Esempio
public void isValidSearchCriteria(SearchCriteria s) {
if(s!=null) {
return true;
} else {
CC = 2
return false;
}
}
Allan J. Albrecht e John E. Gaffney, IEEE TSE 1983
Non misura il software ma le sue entità logico-funzionali
Dimensione di progetto e di produttività in relazione ai requisiti funzionali
Indipendente dal linguaggio di programmazione
International Function Point User Group (IFPUG)
Conta le funzionalità differenziate per categorie e pesate in base ad
attributi del prodotto
Misurazioni diverse possono dare risultati diversi
Corrispondente interessante negli Use Case Points
tynerblain.com/blog/2007/02/12/software-cost-estimation-ucp-1/
Per approfondire: http://www.aivosto.com/project/help/pm-complexity.html
25/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Misurazione del software
IS
Probabilità di malfunzionamento
Osservazioni empiriche
Complessità ciclomatica
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
26/39
27/39
Dipartimento di Informatica, Università di Pisa
Function Point – 2
Componenti misurate
Definizione
External Input (EI)
Processo elementare a seguito del quale
dati entrano nella componente misurata
External Output (EO)
Processo elementare a seguito del quale
dati escono dalla componente
External Inquiry (EQ)
Processo elementare per il quale specifici
dati interni sono richiesti alla componente
e da essa emessi
Internal Logical File (ILF)
Gruppo di dati correlati interni alla
componente e alimentati tramite EI
External Interface File (EIF)
Gruppo di dati correlati esterni alla
componente e usati come riferimento
Dipartimento di Informatica, Università di Pisa
28/39
7
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Function Point – 3
Standard per misure funzionali – 1
Complessità
Componente
Totale
Bassa
Media
Alta
EI
3
4
6
EO
4
5
7
EQ
3
4
6
ILF
7
10
15
EIF
5
7
10
ISO/IEC 14143 – Functional size measurement
Concetti definiti
29/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Definire la terminologia del settore
Definire i criteri per valutare le metriche funzionali
Definire i criteri per accreditare i professionisti che le usano
Accuratezza di una misura funzionale
Accuratezza di una metrica funzionale
Ripetibilità e riproducibilità di una metrica funzionale
Soglia di sensibilità di una metrica funzionale
Applicabilità a un dominio funzionale
Misurazione del software
IS
Object point
Boehm et al., 1995, insieme a COCOMO 2.0
Conteggio delle componenti
Tipo
Screen
Report
3GL Component
semplice
1
2
-
medio
2
5
-
Standard per misure funzionali – 2
Le metriche tecniche dipendono dalla
tecnologia
difficile
3
8
10
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
Che è variabile nel tempo!
Utili come vista interna per stimare il costo di produzione
ISO/IEC 14143 (functional size measurement)
aiuta a orientarsi verso metriche funzionali
Fattore di aggiustamento rispetto alla
percentuale di riuso
Che possono fornire valori di misura più significativi
Utili come vista esterna per stimare il prezzo di vendita
La misurazione è resa indipendente dalla fase del progetto
30/39
31/39
Dipartimento di Informatica, Università di Pisa
A meno delle richieste esplicite di cambiamento
Dipartimento di Informatica, Università di Pisa
32/39
8
Misurazione del software
Misurazione del software
IS
Misurazione del software
IS
Misure interne ed esterne
Esempi di misure interne
Metrica per i metodi
Un metodo è sostanzialmente procedurale
Numero di requisiti, loro volatilità
Function Points, Use Case Points
Coesione, accoppiamento, fan-in / fan-out
SLoC, complessità ciclomatica
Livello di copertura delle prove
Si può usare McCabe come metrica di base
Corretta per tenere conto di interfacce e variabili locali
Complessità di un metodo
complessità dell’interfaccia del metodo
complessità delle variabili locali
complessità ciclomatica del codice
peso determinato statisticamente
Esempi di misure esterne
ISO/IEC 9126-1
33/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
IS
Misurazione del software
IS
Metriche per software OO
Metrica per le classi
Occorrono metriche dedicate
35/39
Dipartimento di Informatica, Università di Pisa
Complessità di una classe
Le metriche tradizionali non sono accurate
Complessità funzionale e complessità strutturale
Non linearità del codice
∑
La misura SLOC non funziona!
Uso di strutture e funzioni complesse
McCabe non funziona come misura assoluta!
Metriche per i metodi
Metriche per le classi
Metriche per i sistemi
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
∑
∑
34/39
complessità dell’interfaccia della classe
complessità locale
complessità locale esterna
complessità locale interna
complessità degli attributi locali
complessità dei metodi locali
costante o CC di classe attributo
peso determinato statisticamente
Dipartimento di Informatica, Università di Pisa
36/39
9
Misurazione del software
Misurazione del software
IS
IS
Metrica per i sistemi
Proprietà della metrica per le classi
Considera solo la parte locale della classe
Considera la complessità dell’uso delle classi negli attributi
Riferimenti
T.J. McCabe, “A Complexity Metric”, IEEE Trans. on
Software Engineering, 1976
A.J. Albrecht, J.E. Gaffney. “Software Function, […]:
A Software Science Validation”, IEEE Trans. on
Software Engineering, 1983
N.E. Fenton, S.L. Pfleeger, “Software Metrics: A
Rigorous & Practical Approach, II Ed., Int. Thompson
Computer Press, 1997
B. Boehm et al., “Cost Models for Future Software Life
Cycle Processes: CoCoMo II”, http://sunset.usc.edu/
Complessità del sistema
Metriche utilizzabili come fattori d’influenza
NC
NRC
NLC
Numero totale di classi
Numero di classi radice
Numero di classi foglia
37/39
Dipartimento di Informatica, Università di Pisa
Misurazione del software
Dipartimento di Informatica, Università di Pisa
39/39
Misurazione del software
IS
Qualità delle metriche
Precisione
In termini di esattezza e ripetibilità rispetto ai valori prodotti
SLOC e McCabe
FP
sì
no (questione di maturità)
Aderenza alla realtà
La misura corrisponde all’evidenza sperimentale
Quando le metriche sono usate come indicatori
Accuratezza
Corrispondenza con la percezione o la realtà effettiva
Dipartimento di Informatica, Università di Pisa
UniPD - 2013/14 - Ingegneria del Software mod. B
38/39
10
© Copyright 2025 Paperzz