SlideShare a Scribd company logo
1 of 63
Il processo di produzione del
Software
… dall’idea al prodotto finito …
parte 2
Il processo di produzione del software 1
Le metriche
Vi sono quattro motivi principali che spingono a
misurare il processo ed il progetto software:
• Caratterizzare
• Valutare
• Prevedere
• Migliorare
Il processo di produzione del software 2
Le metriche
Si caratterizza per:
per acquisire conoscenze sui processi, i prodotti
le risorse e gli ambienti e per stabilire indicazioni
di base per il confronto con i prossimi lavori.
Il processo di produzione del software 3
Le metriche
Si valuta per:
determinare lo stato rispetto ai piani. Le misurazioni
sono i sensori che ci fanno conoscere quando i
progetti ed i processi sono fuori controllo, in modo
da poter applicare misure correttive. Inoltre si
valuta per stabilire il raggiungimento degli obbiettivi
di qualità e per stabilire l'impatto dei miglioramenti
tecnologici e di processo sui prodotti e sui processi.
Il processo di produzione del software 4
Le metriche
Si prevede per:
pianificare. La misura per scopi di previsione prevede l'acquisizione di
conoscenze sulle relazioni fra processi e prodotti e la creazione di
modelli per la realizzazione di tali relazioni in modo che i valori
osservati per determinati attributi possano essere utilizzati per
prevederne altri. Ci si comporta in questo modo perché si vogliono
stabilire degli obbiettivi raggiungibili nell'ambito dei costi, dei tempi e
della qualità in modo da poter applicare le risorse appropriate. Le
misure di previsione fungono anche da base per determinare le
tendenze in modo da poter stimare i costi, i tempi e la qualità sulla
base dei valori attuali. Le proiezioni e le stime basate su dati storici
aiutano anche ad analizzare i rischi ed a seguire valutazioni sul
progetto e sul costo.
Il processo di produzione del software 5
Le metriche
Si misura per:
ottenere un miglioramento quando si
raccolgono informazioni quantitative che
aiutano ad identificare i punti critici, le
inefficienze e le altre opportunità di
miglioramento della qualità del prodotto e delle
prestazioni di un processo.
Il processo di produzione del software 6
Le metriche
Vengono utilizzati come sinonimi:
• Misura
• Misurazione
• Metrica
• Indicatore
NON LO SONO !
Il processo di produzione del software 7
Le metriche
Misura:
fornisce una misurazione quantitativa del grado,
ammontare, dimensione, capacita di un attributo di
un prodotto o di un processo. Le misure possono
essere dirette (righe di codice prodotte, velocita di
esecuzione, memoria occupata, difetti rilevati in un
dato intervallo temporale, ecc.) od indirette
(funzionalità, qualità, complessità, efficienza,
affidabilità, facilita di manutenzione, ecc.).
Il processo di produzione del software 8
Le metriche
Misurazione:
l'atto di determinare la misura.
Il processo di produzione del software 9
Le metriche
Metrica:
mette in relazione, secondo certi criteri, le
singole misure.
Il processo di produzione del software 10
Le metriche
Indicatore:
è una combinazione di metriche che mette in
risalto certe caratteristiche di un processo, di un
progetto o di un prodotto.
Il processo di produzione del software 11
Le metriche
Il difetto delle metriche software e il fatto che
esse NON misurano qualcosa di tangibile e
come tale non c‘è accordo su cosa si deve
misurare, come misurarlo, quali metriche ed
indicatori adottare.
Il processo di produzione del software 12
Le metriche di processo
Esiste un solo modo razionale di migliorare un
processo: misurare gli attributi specifici,
ricavarne una famiglia di metriche significative e
ricavarne degli indicatori che suggeriscano una
strategia di miglioramento.
Il processo di produzione del software 13
Le metriche di processo
Gli indicatori di processo forniscono informazioni
sull'efficacia di un processo esistente.
Sulla base di tali indicatori, manager e tecnici sono
in grado di stabilire che cosa funziona a dovere e
cosa no.
Il loro obbiettivo e quello di fornire indicatori che
conducano a miglioramenti a lungo termine del
processo software.
Il processo di produzione del software 14
Le metriche di processo
L'efficacia di un processo software si misura
indirettamente
A partire dalle informazioni derivate dal
processo si ricava una famiglia di metriche
Il processo di produzione del software 15
Le metriche di processo
Tali informazioni comprendono il numero di errori
scoperti prima della distribuzione del software, i difetti
comunicati dagli utenti finali, i prodotti distribuiti, il
lavoro speso, il tempo impiegato, il grado di conformità
alle scadenze prefissate ed altre misure. Le metriche di
processo si ricavano anche dalla misura delle
caratteristiche di specifiche operazioni ingegneristiche. Si
possono ad esempio misurare il lavoro ed il tempo speso
nelle attività ausiliarie e nelle altre attività generiche.
Il processo di produzione del software 16
Le metriche di processo
Le metriche di processo possono rivelarsi
significativamente benefiche per un'azienda
impegnata ad accrescere il proprio livello di
maturità di processo. Tuttavia, come tutte le
metriche, anche queste sono soggette ad abusi
e per questo possono creare più problemi di
quanti ne risolvano.
Il processo di produzione del software 17
Le metriche di processo
Un "corretto" uso delle metriche potrebbe essere il seguente:
• Nell'interpretare le metriche utilizzare il buon senso e la sensibilità
organizzativa.
• Comunicare regolarmente i risultati agli individui ed ai team che
hanno raccolto le misure e le metriche.
• Non servirsi delle metriche per valutare i singoli.
• Collaborare con i tecnici ed i team per impostare obiettivi chiari e le
metriche che aiutano a raggiungerli.
• Non utilizzare mai le metriche come arma nei confronti dei singoli e
dei team.
• Non considerare negativi i dati che segnalano aree problematiche.
Quei dati sono solo un indicatore utile a migliorare il processo.
• Non dare troppa importanza ad una metrica specifica, a danno di
altre, pure importanti.
Il processo di produzione del software 18
Le metriche di processo
Un indicatore di processo utile e l'analisi dei guasti, la quale si svolge nel seguente
modo:
1. Gli errori ed i difetti sono classificati secondo l'origine (ad esempio nella
specifica, nella logica, nella mancanza di conformità agli standard e cosi via)
2. Si prende nota del costo di correzione di ogni errore o difetto.
3. Si contano errori e difetti di ogni categoria e si dispongono le categorie in ordine
decrescente.
4. Si calcola il costo complessivo degli errori e dei difetti di ogni categoria.
5. Si analizzano i risultati per determinare le categorie che comportano i costi piu
alti.
6. Si predispone un piano di modifiche al processo tese ad eliminare la classe di
errori e difetti più costosa (od a ridurne la frequenza).
Una delle cose che può aiutare nell'analisi dei guasti e costruire un grafico che riporti
la distribuzione dei difetti, dividendoli in cause ed origini.
Il processo di produzione del software 19
Le metriche di progetto
Le metriche di progetto e gli indicatori derivati sono
sfruttati dal capo progetto e dal team per adattare la
progressione del progetto e le attività tecniche.
Gli indicatori di progetto permettono al capo progetto di
stimare lo stato di avanzamento di un progetto in corso,
seguire i rischi potenziali, scoprire aree problematiche
prima che la situazione diventi critica, regolare il flusso
del lavoro e delle operazioni e valutare la capacita del
team di controllare la qualità dei prodotti.
Il processo di produzione del software 20
Le metriche di progetto
Le metriche raccolte dai processi passati formano
una base dalla quale ricavare stime dell'impegno e
del tempo necessari per il progetto in corso.
Nel corso del progetto, le misure di impegno e
tempo spesi vengono confrontati con le stime (e
con la tabella dei tempi del progetto).
Munito di questi dati, il capo progetto sorveglia e
pilota l'avanzamento del progetto.
Il processo di produzione del software 21
Le metriche dimensionali
Le metriche dimensionali si ottengono
normalizzando le misure di qualità e produttività
sulla base delle dimensioni del software
prodotto.
Esse si basano sul numero di linee di codice
prodotto.
Il processo di produzione del software 22
Le metriche dimensionali
• errori per KLOC (migliaia di linee di codice)
• difetti per KLOC
• costo per riga di codice
• pagina di documentazione per KLOC
• errori/mese-uomo
• LOC per mese-uomo
• costo per pagina di documentazione
Il processo di produzione del software 23
Le metriche dimensionali
Le metriche dimensionali non sono da tutti
accettate in quanto esse non possono misurare:
• Fattori umani (dimensione del gruppo,
competenze)
• Fattori problematici (complessità, cambiamento)
• Fattori di processo (tecniche, strumenti)
• Fattori di prodotto (affidabilità, prestazioni)
• Fattori di risorse (persone, strumenti)
Il processo di produzione del software 24
Le metriche dimensionali
Le misure basate sulle LOC dipendono
pesantemente dal linguaggio adottato e che il
loro impiego nelle stime esige un livello di
dettaglio non sempre facile da raggiungere (ad
esempio, il pianificatore deve stimare il numero
di LOC ben prima delle fasi di analisi e
progettazione).
Il processo di produzione del software 25
Le metriche basate sulle
funzioni
Le metriche basate sulle funzioni adottano una
misura della funzionalità dell'applicazione.
Tale misura e denominata function point
(o punti funzione)
Il processo di produzione del software 26
Le metriche basate sulle
funzioni
Tabella per il calcolo dei punti di funzione:
Il processo di produzione del software 27
Le metriche basate sulle
funzioni
• Numero di input utente: si conta ogni input dell'utente che fornisce al software
dati applicativi distinti. Occorre distinguere gli input dalle interrogazioni, che
devono essere conteggiate a parte.
• Numero di output utente: si conta ogni output destinato all'utente che fornisce
dati applicativi. Per output si intendono resoconti, schermate, messaggi d'errore e
cosi via. I singoli dati contenuti in un resoconto non sono conteggiati
separatamente.
• Numero di interrogazioni utente: un'interrogazione e definita come un input in
linea che suscita la generazione di una risposta immediata del software, nella
forma di output in linea. Si conta ogni interrogazione distinta.
• Numero di file: Si conta ogni file logico principale (cioè un raggruppamento logico
di dati che possa far parte di un database oppure un file separato).
• Numero di interfacce esterne: Si contano tutte le interfacce leggibili dalla
macchina (ad esempio file di dati su supporti di memorizzazione), utilizzate per
trasmettere informazioni ad un altro sistema.
Il processo di produzione del software 28
Le metriche basate sulle
funzioni
Le aziende che si servono dei punti funzione
sviluppano criteri per determinare se una certa
voce e semplice, media o complessa.
In ogni caso la determinazione della complessità
resta in parte soggettiva.
Il processo di produzione del software 29
Le metriche basate sulle
funzioni
Calcolo dei punti funzione (FP):
FP=totale×[0,65+0,01×ΣFi ]
“totale” e la somma delle voci ricavate dalla tabella
soprastante.
Gli Fi (i=1;...;14) sono valori di aggiustamento della
complessità, basati sulle risposte alle seguenti
domande:
Il processo di produzione del software 30
Le metriche basate sulle
funzioni
1. Il sistema richiede salvataggi e recuperi affidabili?
2. Si richiedono comunicazioni di dati?
3. Ci sono funzioni di elaborazione distribuita?
4. Le prestazioni sono un fattore critico?
5. Il sistema funzionerà in un ambiente operativo
esistente, utilizzato a fondo?
6. Il sistema richiede inserimenti di dati in linea?
7. L'inserimento di dati in linea richiede che la relativa
transazione si articoli in più schermi operazioni?
Il processo di produzione del software 31
Le metriche basate sulle
funzioni
8. I file principali sono aggiornati in linea?
9. I dati d'ingresso o di output, i file e le interrogazioni sono
complessi?
10. L'elaborazione interna e complessa?
11. Il codice e stato progettato per essere riutilizzabile?
12. La progettazione richiede anche conversione ed
installazione?
13. Il sistema e stato progettato per essere installato in più
organizzazioni?
14. L'applicazione e stata progettata per facilitare le modifiche
e per essere di semplice uso da parte dell'utente finale?
Il processo di produzione del software 32
Le metriche basate sulle
funzioni
La risposta ad ognuna di queste domande può andare da 0 (non importante o
non applicabile) a 5 (assolutamente essenziale).
Le costanti ed i pesi visti precedentemente sono determinati empiricamente.
I punti funzione cosi calcolati si utilizzano per delle misure di produttività e
qualità:
• errori per FP
• difetti per FP
• costi per FP
• pagine di documentazione per FP
• FP per mese-uomo
I function point permettono di confrontare lo sforzo stimato su due sistemi
diversi, o per progetti nel tempo. Tuttavia i punti funzione sono una misura
astratta e relativa (non concreta o assoluta!) e devono essere adattati per
ogni organizzazione o dominio.
Il processo di produzione del software 33
Le metriche basate sulle
funzioni
Feature Points
I feature points sono un adattamento dei
function points, a cui viene aggiunto un altro
parametro di misurazione:
gli algoritmi.
Il processo di produzione del software 34
Le metriche basate sulle
funzioni
Object Points
Gli object points sono una metrica basata sulle
funzioni, ma, a differenza dei function points,
essi si incentrano sui tools di ausilio che
permettono di creare velocemente schermate e
report.
Il processo di produzione del software 35
Le metriche basate sulle
funzioni
Object Points
I parametri di configurazione che prende in esame
sono i seguenti:
• Schermate: Tutto ciò che deve essere visualizzato
sullo schermo
• Report: I vari report che devono essere generati
• Componenti 3GL: Tutto ciò che deve essere
costruito “a mano”
Il processo di produzione del software 36
Le metriche basate sulle
funzioni
Object Points
Ad ognuno di questi parametri viene associato
un peso:
Il processo di produzione del software 37
Object Type Complexity-Weight
Simple Medium Difficult
Screen 1 2 3
Report 7 8 5
3GL Component 10
Le metriche basate sulle
funzioni
Object Points
I valori vengono poi sommati insieme ed utilizzati
per ottenere i NOP, cioè gli object points che
tengono conto anche della percentuale di oggetti
riutilizzabili
NOP=OPx[(100−reuse)/100 ]
Dove:
OP e il valore trovato dalla somma precedente, reuse e
la percentuale di riutilizzo.
Il processo di produzione del software 38
Le metriche basate sulle
funzioni
Object Points
Trovato il NOP viene calcolato il PROD:
Attraverso il NOP ed il PROD si può calcolare lo sforzo
richiesto in mesi-uomo:
sforzo= NOP / PROD
Come per i function points, i valori numerici sono dati
attraverso dati empirici.
Il processo di produzione del software 39
Developers experience and
capability ICASE
maturity and capability
Very
low
Low Nominal High Very
high
PROD 3 8 11 20 50
Le metriche basate sulle
funzioni
Modello COCOMO (COnstructive COst MOdel)
Il modello COCOMO e un modello che cerca di aiutare il capo-progetto a:
a) calcolare lo sforzo in mesi-uomo previsto per un progetto, nonché la sua durata
b) seguire il progetto durante tutte le sue fasi
La formula principale e quella del calcolo per lo sforzo in mesi-uomo:
Dove:
• A e una costante moltiplicativa usata per calcolare gli effetti moltiplicativi quando
aumenta la grandezza del progetto
• size e la grandezza del progetto in migliaia di linee di codice
• B e il fattore di scala che indica le economie e le diseconomie in base alla
grandezza del progetto.
Il processo di produzione del software 40
B
sizeAsforzo 
Le metriche basate sulle
funzioni
Modello COCOMO
Calcolato lo sforzo esso viene aggiustato in base
ai Cost Driver che indicano quanto incidono le
varie parti del progetto sullo sforzo.
Il processo di produzione del software 41
Le metriche basate sulle
funzioni
Il processo di produzione del software 42
COST DRIVER
ACAP Analyst Capability PEXP Platform Experience
AEXP Applications Experience PREX Personnel Experience
CPLX Product Complexity PVOL Platform Volatility
DATA Database Size RCPX Product Reliability and Complexity
DOCU Doc to match lifecycle needs RELY Required Software Reliability
FCIL Facilities RUSE Required Reusability
LTEX Language and Tool Experience SCED Required Development Schedule
PCAP Programmer Capability STOR Main Storage Constraint
PCON Personnel Continuity TIME Execution Time Constraint
PDIF Platform Difficulty TOOL Use of Software Tools
PERS Personnel Capability
Modello COCOMO
Le metriche basate sulle
funzioni
Modello COCOMO
Calcolo dello sforzo modificato
Dove:
sono i cost driver calcolati
Il processo di produzione del software 43






 i
iEMsforzoficatosforzoModi
iEM
Le metriche basate sulle
funzioni
Modello COCOMO
Calcolo del tempo
Dove:
SCEDPercentage e la percentuale del Cost Driver SCED.
Il processo di produzione del software 44
  
  





 
100
3 01,00233,0 tageSCEDPercen
ficatosforzoModiTIME B
Le metriche per la qualità
Lo scopo primario dell’ingegneria del software e
quello di produrre sistemi, applicazioni o prodotti di
alta qualità.
Per raggiungerlo, gli ingegneri del software devono
applicare metodi efficaci abbinati a strumenti
moderni, nel contesto di un processo software
maturo.
Un buon ingegnere del software (ed un buon
manager del settore software) deve inoltre
misurare se l’alta qualità sarà ottenuta.
Il processo di produzione del software 45
Le metriche per la qualità
Correttezza:
un programma che non operi correttamente è di ben poco
valore per i suoi utenti. La correttezza e il grado in cui il
software svolge la funzione richiesta. La misura di correttezza
più comune e il numero di difetti per KLOC, intendendo per
difetto un’accertata mancanza di conformità ai requisiti.
Quando si considera la qualità globale del prodotto software, i
difetti sono quei problemi evidenziati da un utente del
programma dopo che il programma stesso e stato rilasciato
per l’utilizzo generale. Per gli scopi di definizione della qualità,
i difetti vengono contati dopo un periodo di tempo standard,
in genere un anno.
Il processo di produzione del software 46
Le metriche per la qualità
Facilità di manutenzione:
la manutenzione e l’attività più costosa in termini di lavoro fra quelle
del software; e l’indice della facilita con cui un programma può essere
corretto nel caso di rilevi un errore, adattato nel caso in cui muti il suo
ambiente o ritoccato nel caso in cui un utente desideri una modifica
dei requisiti. Non c’è modo di misurare direttamente la facilita di
manutenzione, di conseguenza si deve ricorrere a misure indirette.
Una semplice metrica orientata al tempo e il “tempo medio per la
modifica” (MTTC, Mean-Time-To-Change), cioè il tempo necessario ad
analizzare la richiesta di cambiamento, progettare, implementare,
collaudare e distribuire agli utenti l’opportuna modifica. In media i
programmi di facile manutenzione esibiscono un valore inferiore di
MTTC (per modifiche affini) rispetto a quelli di difficile manutenzione.
Il processo di produzione del software 47
Le metriche per la qualità
Integrità:
questo attributo misura la capacita di un sistema di resistere ad attacchi (sia
accidentali, sia intenzionali) alla sua sicurezza. Gli attacchi possono essere
rivolti a tre componenti del software: programmi, dati e documenti. Per
misurare l’integrità, si devono definire due altri attributi: la minaccia e la
sicurezza. La minaccia e la probabilità (stimata o ricavata da dati empirici) che
un attacco di un certo tipo avvenga in un certo dato spazio di tempo. La
sicurezza e la probabilità (parimenti stimata o ricavata da dati empirici) che
l’attacco sia respinto.
Il processo di produzione del software 48
    sicurezzaacciaegrità 1min1int
Le metriche per la qualità
Usabilità:
stabilire se un prodotto e facile da usare e tra le cose più
difficili da misurare; normalmente si cerca di misurare
quattro caratteristiche: le competenze fisiche ed
intellettive necessarie per apprendere ed utilizzare il
sistema; il tempo necessario ad acquisire una moderata
disinvoltura nell’uso del sistema; l’incremento di
produttività (rispetto alla soluzione sostituita dal
sistema), misurato quando il sistema e utilizzato in modo
moderatamente efficiente; una valutazione soggettiva
(talvolta ricavata da un questionario) delle reazioni degli
utenti.
Il processo di produzione del software 49
Le metriche per la qualità
Defect Removal Efficiency (DRE):
è una metrica utile sia a livello di processo che di progetto.
In sostanza la DRE e una misura del potere filtrante delle
attività di assicurazione e controllo di qualità applicate nel
corso di tutte le attività portanti del processo.
Rispetto al processo considerato nella sua interezza, la DRE e
cosi definita:
DRE=E/(E+D)
Dove
E è il numero di errori scoperti prima della consegna del software
all’utente finale e D e il numero di difetti scoperti dopo la
consegna.
Il processo di produzione del software 50
Le metriche per la qualità
Il valore ideale di DRE è 1, ottenuto quando il software
non presenta difetti.
In un caso reale il valore di D e maggiore di zero, ma
quello di DRE può tendere ad 1. All’interno del singolo
progetto, la DRE può servire a valutare la capacita di
scoprire errori da parte di un team prima di passare alla
successiva attività od al compito successivo.
Per fare un esempio, l’analisi dei requisiti produce un
modello suscettibile di revisione per la ricerca e
correzione degli errori. Gli errori non rilevati passano
all’operazione di progettazione (nella quale possono
essere scoperti o no).
Il processo di produzione del software 51
Le metriche per la qualità
In tale contesto la DRE e ridefinita come segue:
dove
Ei e il numero di errori scoperti nel corso dell’attività i, Ei+1 e il numero
di errori scoperti nel corso dell’attività i+1 riconducibili ad errori non
rilevati nell’attività i.
Dal punto di vista della qualità, l’obbiettivo di un team (o del singolo
ingegnere del software) è quello di avvicinarsi quanto possibile al
valore 1 per DREi. In altre parole, gli errori devono essere filtrati prima
di passare all’attività successiva.
Il processo di produzione del software 52
 1

ii
i
i
EE
E
DRE
Integrazione delle metriche
nel processo software
Le metriche servono a:
• caratterizzare
• valutare
• prevedere
• Migliorare
Una delle cose più difficili delle metriche e
introdurle all’interno di un processo software.
Il processo di produzione del software 53
Integrazione delle metriche
nel processo software
Occorre dunque stabilire una piattaforma per le
valutazioni metriche, tenendo presente che le
informazioni raccolte non devono essere
necessariamente radicalmente differenti, ma le
stesse valutazioni metriche possono servire per
vari scopi. Inoltre affinché sia un efficace ausilio
per il miglioramento dei processi e/o per la
stima dei costi e degli sforzi.
Il processo di produzione del software 54
Integrazione delle metriche
nel processo software
I dati della piattaforma devono avere i seguenti
attributi:
• i dati devono essere ragionevolmente precisi
• i dati devono essere raccolti per il maggior
numero possibile di progetti
• le misure devono essere uniformi
• le applicazioni devono essere simili al lavoro
che si deve stimare
Il processo di produzione del software 55
Integrazione delle metriche
nel processo software
I dati raccolti vengono tanto dal processo,
quanto dal progetto, quanto dal prodotto;
l’insieme di questi dati ci fornisce le misure,
dalle quali vengono elaborate le metriche, dalle
quali vengono estratti gli indicatori.
Il processo di produzione del software 56
Integrazione delle metriche
nel processo software
Per inserire le metriche in un processo di sviluppo, bisogna:
1. Indentificare gli obbiettivi
2. Indentificare cosa vogliamo conoscere
3. Indentificare le entità e gli attributi necessari (che cosa
misurare)
4. Formalizzare gli obbiettivi delle misurazioni (come
misurare)
5. Stabilire come elaborare le misure prese (cioè scegliere la
metrica da seguire)
6. Stabilire gli indicatori che si vogliono prendere in
considerazione
Il processo di produzione del software 57
Integrazione delle metriche
nel processo software
Poniamoci un obbiettivo:
ridurre il tempo di valutazione ed
implementazione delle richieste di modifica.
Il processo di produzione del software 58
Integrazione delle metriche
nel processo software
Cosa vogliamo conoscere:
1. il tempo trascorso dalla richiesta al termine della
valutazione
2. l’impegno per svolgere la valutazione
3. il tempo trascorso dalla valutazione all’assegnazione
dell’ordine di modifica al personale
4. l’impegno necessario ad apportare la modifica
5. Il tempo necessario per apportare la modifica
6. gli errori scoperti durante la modifica ed i difetti scoperti
dopo che la modifica e stata rilasciata al cliente
Il processo di produzione del software 59
Integrazione delle metriche
nel processo software
Ponendo:
= è il tempo trascorso (in ore o giorni) dalla richiesta al
termine della valutazione
= è l’impegno (in persone-ora) per svolgere la valutazione
= è il tempo trascorso (in ore o giorni) dalla valutazione
all’assegnamento dell’ordine di modifica al personale
Il processo di produzione del software 60
quequeT
evalW
evalT
Integrazione delle metriche
nel processo software
Ponendo:
= l’impegno (in persone-ora) necessario ad apportare la
modifica
= è il tempo necessario (in ore o giorni) per apportare
la modifica
= è il numero di errori scoperti durante la modifica
= è il numero di difetti scoperti dopo che la modifica e
stata rilasciata al cliente
Il processo di produzione del software 61
changeW
changeT
changeE
changeD
Integrazione delle metriche
nel processo software
Dopo aver raccolto queste misure per una serie di
modifiche, e possibile calcolare il tempo totale
trascorso dalla richiesta di modifica
all’implementazione della stessa e la percentuale
del tempo assorbito per partire, per la valutazione,
l’assegnamento e l’implementazione della modifica.
Analogamente si può determinare le percentuali
dell’impegno richiesto per la valutazione e
l’implementazione.
Il processo di produzione del software 62
Integrazione delle metriche
nel processo software
Queste valutazioni metriche possono essere determinate
nel contesto dei dati di qualità, e .
Le percentuali forniscono una conoscenza del punto in cui
il processo di richiesta della modifica rallenta e ciò può
portare a contromisure per il miglioramento del processo
per ridurre , , , e/o .
Inoltre si può calcolare l’efficienza della rimozione dei
difetti che può essere confrontata col tempo trascorso e
con l’impegno totale necessario per determinare
l’impatto delle attività di controllo della qualità sul tempo
e l’impegno necessario per apportare una modifica.
Il processo di produzione del software 63
changeE changeD
quequeT evalW evalT changeW changeE

More Related Content

What's hot

Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009Fabrizio Di Crosta
 
Pmp knowledge areas by zuri
Pmp knowledge areas by zuriPmp knowledge areas by zuri
Pmp knowledge areas by zuriRiccardo Zucconi
 
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...Mario Gentili
 
Integrazione di progetto
Integrazione di progettoIntegrazione di progetto
Integrazione di progettoHumanWare
 
Project management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMBProject management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMBMario Gentili
 
Consulenza gestione progetti
Consulenza gestione progettiConsulenza gestione progetti
Consulenza gestione progettiHumanWare
 
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015Redazione InnovaPuglia
 
Slide Project Software Engineer
Slide Project Software EngineerSlide Project Software Engineer
Slide Project Software Engineerguestf4963
 
Business process reengineering
Business process reengineering Business process reengineering
Business process reengineering AndreaMazzella
 
Configuration management
Configuration managementConfiguration management
Configuration managementperformer05
 
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum  - Jekpot - 25 november 2005 - SienaIntervento 10' KM Forum  - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum - Jekpot - 25 november 2005 - SienaEpistema
 
Project Management Corso Base Saggio
Project Management Corso Base SaggioProject Management Corso Base Saggio
Project Management Corso Base SaggioFR Projects
 
Our Model : 123
Our Model : 123Our Model : 123
Our Model : 123enricogiua
 
Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011Consorzio QuInn
 

What's hot (19)

Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009
 
Il Piano di Project Management in 20 mosse
Il Piano di Project Management in 20 mosseIl Piano di Project Management in 20 mosse
Il Piano di Project Management in 20 mosse
 
Pmp knowledge areas by zuri
Pmp knowledge areas by zuriPmp knowledge areas by zuri
Pmp knowledge areas by zuri
 
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
 
Integrazione di progetto
Integrazione di progettoIntegrazione di progetto
Integrazione di progetto
 
Project management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMBProject management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMB
 
Pmp cost management
Pmp cost managementPmp cost management
Pmp cost management
 
Configuration management
Configuration management Configuration management
Configuration management
 
Consulenza gestione progetti
Consulenza gestione progettiConsulenza gestione progetti
Consulenza gestione progetti
 
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
 
Iloveyou
IloveyouIloveyou
Iloveyou
 
Slide Project Software Engineer
Slide Project Software EngineerSlide Project Software Engineer
Slide Project Software Engineer
 
Business process reengineering
Business process reengineering Business process reengineering
Business process reengineering
 
Configuration management
Configuration managementConfiguration management
Configuration management
 
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum  - Jekpot - 25 november 2005 - SienaIntervento 10' KM Forum  - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
 
Project Management Corso Base Saggio
Project Management Corso Base SaggioProject Management Corso Base Saggio
Project Management Corso Base Saggio
 
Our Model : 123
Our Model : 123Our Model : 123
Our Model : 123
 
Iso 9001 2000 Sezione VII
Iso 9001 2000 Sezione VIIIso 9001 2000 Sezione VII
Iso 9001 2000 Sezione VII
 
Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011
 

Similar to Produzione software - Le metriche

2005 november 25 - Intervento 10 KM Forum
2005 november 25 - Intervento 10 KM Forum2005 november 25 - Intervento 10 KM Forum
2005 november 25 - Intervento 10 KM ForumEpistema
 
Misurare le performance aziendali per creare valore nel tempo
Misurare le performance aziendali per creare valore nel tempoMisurare le performance aziendali per creare valore nel tempo
Misurare le performance aziendali per creare valore nel tempoForema
 
Competence center Application Management & Quality Assurance
Competence center Application Management  & Quality AssuranceCompetence center Application Management  & Quality Assurance
Competence center Application Management & Quality AssuranceFausto Servello
 
Corso "Sistemi di monitoraggio e indicatori di performance"
Corso "Sistemi di monitoraggio e indicatori di performance"Corso "Sistemi di monitoraggio e indicatori di performance"
Corso "Sistemi di monitoraggio e indicatori di performance"Maurilio Savoldi
 
iVision Software 2.3
iVision Software 2.3iVision Software 2.3
iVision Software 2.3ivisionweb
 
Risk management: Un'analisi della gestione dei rischi di un progetto software
Risk management: Un'analisi della gestione dei rischi di un progetto software Risk management: Un'analisi della gestione dei rischi di un progetto software
Risk management: Un'analisi della gestione dei rischi di un progetto software Donato Bellino
 
Continual service improvement tutorial
Continual service improvement tutorialContinual service improvement tutorial
Continual service improvement tutorialAndrea Praitano
 
Bus lab organizzazione_ordingroma_160212cc
Bus lab organizzazione_ordingroma_160212ccBus lab organizzazione_ordingroma_160212cc
Bus lab organizzazione_ordingroma_160212ccGiovanni Gentile
 
Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...
Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...
Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...GMSL S.r.l.
 
Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...
Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...
Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...Paolo Quaglia
 
Process framework, paradigma operativo di analisi dei processi
Process framework, paradigma operativo di analisi dei processiProcess framework, paradigma operativo di analisi dei processi
Process framework, paradigma operativo di analisi dei processiCarlos Graziosi
 
Previsione della domanda e gestione scorte aggiornata gennaio 2015
Previsione della domanda e gestione scorte aggiornata gennaio 2015Previsione della domanda e gestione scorte aggiornata gennaio 2015
Previsione della domanda e gestione scorte aggiornata gennaio 2015logisticaefficiente
 
Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...
Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...
Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...PORTALE PAQ
 

Similar to Produzione software - Le metriche (20)

Produzione software
Produzione softwareProduzione software
Produzione software
 
Corso progettazione
Corso progettazioneCorso progettazione
Corso progettazione
 
Gestione dei requisiti
Gestione dei requisitiGestione dei requisiti
Gestione dei requisiti
 
2005 november 25 - Intervento 10 KM Forum
2005 november 25 - Intervento 10 KM Forum2005 november 25 - Intervento 10 KM Forum
2005 november 25 - Intervento 10 KM Forum
 
Iso 9001 2000 Sezione VII.3 VII.6
Iso 9001 2000 Sezione VII.3 VII.6Iso 9001 2000 Sezione VII.3 VII.6
Iso 9001 2000 Sezione VII.3 VII.6
 
Misurare le performance aziendali per creare valore nel tempo
Misurare le performance aziendali per creare valore nel tempoMisurare le performance aziendali per creare valore nel tempo
Misurare le performance aziendali per creare valore nel tempo
 
Competence center Application Management & Quality Assurance
Competence center Application Management  & Quality AssuranceCompetence center Application Management  & Quality Assurance
Competence center Application Management & Quality Assurance
 
Presentazione Marras.pptx
Presentazione Marras.pptxPresentazione Marras.pptx
Presentazione Marras.pptx
 
Corso "Sistemi di monitoraggio e indicatori di performance"
Corso "Sistemi di monitoraggio e indicatori di performance"Corso "Sistemi di monitoraggio e indicatori di performance"
Corso "Sistemi di monitoraggio e indicatori di performance"
 
Visaggio fd l13_9_18
Visaggio fd l13_9_18Visaggio fd l13_9_18
Visaggio fd l13_9_18
 
iVision Software 2.3
iVision Software 2.3iVision Software 2.3
iVision Software 2.3
 
Guida alla software selection
Guida alla software selectionGuida alla software selection
Guida alla software selection
 
Risk management: Un'analisi della gestione dei rischi di un progetto software
Risk management: Un'analisi della gestione dei rischi di un progetto software Risk management: Un'analisi della gestione dei rischi di un progetto software
Risk management: Un'analisi della gestione dei rischi di un progetto software
 
Continual service improvement tutorial
Continual service improvement tutorialContinual service improvement tutorial
Continual service improvement tutorial
 
Bus lab organizzazione_ordingroma_160212cc
Bus lab organizzazione_ordingroma_160212ccBus lab organizzazione_ordingroma_160212cc
Bus lab organizzazione_ordingroma_160212cc
 
Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...
Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...
Università di Torino - prof. Antonio DI LEVA, Business Process Management: me...
 
Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...
Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...
Better Software 2010 - Applicazione pratica di un processo di sviluppo Agile ...
 
Process framework, paradigma operativo di analisi dei processi
Process framework, paradigma operativo di analisi dei processiProcess framework, paradigma operativo di analisi dei processi
Process framework, paradigma operativo di analisi dei processi
 
Previsione della domanda e gestione scorte aggiornata gennaio 2015
Previsione della domanda e gestione scorte aggiornata gennaio 2015Previsione della domanda e gestione scorte aggiornata gennaio 2015
Previsione della domanda e gestione scorte aggiornata gennaio 2015
 
Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...
Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...
Sviluppo di una piattaforma di workflow e di un panello di controllo sulle pe...
 

More from Gemax Consulting

Cobot & Artificial Intelligence
Cobot & Artificial IntelligenceCobot & Artificial Intelligence
Cobot & Artificial IntelligenceGemax Consulting
 
Industria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficientiIndustria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficientiGemax Consulting
 
Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0Gemax Consulting
 

More from Gemax Consulting (6)

Cobot & Artificial Intelligence
Cobot & Artificial IntelligenceCobot & Artificial Intelligence
Cobot & Artificial Intelligence
 
Industria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficientiIndustria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficienti
 
Reti di calcolatori
Reti di calcolatoriReti di calcolatori
Reti di calcolatori
 
Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0
 
Coding & Gaming
Coding & GamingCoding & Gaming
Coding & Gaming
 
Ergonomia aziendale
Ergonomia aziendaleErgonomia aziendale
Ergonomia aziendale
 

Produzione software - Le metriche

  • 1. Il processo di produzione del Software … dall’idea al prodotto finito … parte 2 Il processo di produzione del software 1
  • 2. Le metriche Vi sono quattro motivi principali che spingono a misurare il processo ed il progetto software: • Caratterizzare • Valutare • Prevedere • Migliorare Il processo di produzione del software 2
  • 3. Le metriche Si caratterizza per: per acquisire conoscenze sui processi, i prodotti le risorse e gli ambienti e per stabilire indicazioni di base per il confronto con i prossimi lavori. Il processo di produzione del software 3
  • 4. Le metriche Si valuta per: determinare lo stato rispetto ai piani. Le misurazioni sono i sensori che ci fanno conoscere quando i progetti ed i processi sono fuori controllo, in modo da poter applicare misure correttive. Inoltre si valuta per stabilire il raggiungimento degli obbiettivi di qualità e per stabilire l'impatto dei miglioramenti tecnologici e di processo sui prodotti e sui processi. Il processo di produzione del software 4
  • 5. Le metriche Si prevede per: pianificare. La misura per scopi di previsione prevede l'acquisizione di conoscenze sulle relazioni fra processi e prodotti e la creazione di modelli per la realizzazione di tali relazioni in modo che i valori osservati per determinati attributi possano essere utilizzati per prevederne altri. Ci si comporta in questo modo perché si vogliono stabilire degli obbiettivi raggiungibili nell'ambito dei costi, dei tempi e della qualità in modo da poter applicare le risorse appropriate. Le misure di previsione fungono anche da base per determinare le tendenze in modo da poter stimare i costi, i tempi e la qualità sulla base dei valori attuali. Le proiezioni e le stime basate su dati storici aiutano anche ad analizzare i rischi ed a seguire valutazioni sul progetto e sul costo. Il processo di produzione del software 5
  • 6. Le metriche Si misura per: ottenere un miglioramento quando si raccolgono informazioni quantitative che aiutano ad identificare i punti critici, le inefficienze e le altre opportunità di miglioramento della qualità del prodotto e delle prestazioni di un processo. Il processo di produzione del software 6
  • 7. Le metriche Vengono utilizzati come sinonimi: • Misura • Misurazione • Metrica • Indicatore NON LO SONO ! Il processo di produzione del software 7
  • 8. Le metriche Misura: fornisce una misurazione quantitativa del grado, ammontare, dimensione, capacita di un attributo di un prodotto o di un processo. Le misure possono essere dirette (righe di codice prodotte, velocita di esecuzione, memoria occupata, difetti rilevati in un dato intervallo temporale, ecc.) od indirette (funzionalità, qualità, complessità, efficienza, affidabilità, facilita di manutenzione, ecc.). Il processo di produzione del software 8
  • 9. Le metriche Misurazione: l'atto di determinare la misura. Il processo di produzione del software 9
  • 10. Le metriche Metrica: mette in relazione, secondo certi criteri, le singole misure. Il processo di produzione del software 10
  • 11. Le metriche Indicatore: è una combinazione di metriche che mette in risalto certe caratteristiche di un processo, di un progetto o di un prodotto. Il processo di produzione del software 11
  • 12. Le metriche Il difetto delle metriche software e il fatto che esse NON misurano qualcosa di tangibile e come tale non c‘è accordo su cosa si deve misurare, come misurarlo, quali metriche ed indicatori adottare. Il processo di produzione del software 12
  • 13. Le metriche di processo Esiste un solo modo razionale di migliorare un processo: misurare gli attributi specifici, ricavarne una famiglia di metriche significative e ricavarne degli indicatori che suggeriscano una strategia di miglioramento. Il processo di produzione del software 13
  • 14. Le metriche di processo Gli indicatori di processo forniscono informazioni sull'efficacia di un processo esistente. Sulla base di tali indicatori, manager e tecnici sono in grado di stabilire che cosa funziona a dovere e cosa no. Il loro obbiettivo e quello di fornire indicatori che conducano a miglioramenti a lungo termine del processo software. Il processo di produzione del software 14
  • 15. Le metriche di processo L'efficacia di un processo software si misura indirettamente A partire dalle informazioni derivate dal processo si ricava una famiglia di metriche Il processo di produzione del software 15
  • 16. Le metriche di processo Tali informazioni comprendono il numero di errori scoperti prima della distribuzione del software, i difetti comunicati dagli utenti finali, i prodotti distribuiti, il lavoro speso, il tempo impiegato, il grado di conformità alle scadenze prefissate ed altre misure. Le metriche di processo si ricavano anche dalla misura delle caratteristiche di specifiche operazioni ingegneristiche. Si possono ad esempio misurare il lavoro ed il tempo speso nelle attività ausiliarie e nelle altre attività generiche. Il processo di produzione del software 16
  • 17. Le metriche di processo Le metriche di processo possono rivelarsi significativamente benefiche per un'azienda impegnata ad accrescere il proprio livello di maturità di processo. Tuttavia, come tutte le metriche, anche queste sono soggette ad abusi e per questo possono creare più problemi di quanti ne risolvano. Il processo di produzione del software 17
  • 18. Le metriche di processo Un "corretto" uso delle metriche potrebbe essere il seguente: • Nell'interpretare le metriche utilizzare il buon senso e la sensibilità organizzativa. • Comunicare regolarmente i risultati agli individui ed ai team che hanno raccolto le misure e le metriche. • Non servirsi delle metriche per valutare i singoli. • Collaborare con i tecnici ed i team per impostare obiettivi chiari e le metriche che aiutano a raggiungerli. • Non utilizzare mai le metriche come arma nei confronti dei singoli e dei team. • Non considerare negativi i dati che segnalano aree problematiche. Quei dati sono solo un indicatore utile a migliorare il processo. • Non dare troppa importanza ad una metrica specifica, a danno di altre, pure importanti. Il processo di produzione del software 18
  • 19. Le metriche di processo Un indicatore di processo utile e l'analisi dei guasti, la quale si svolge nel seguente modo: 1. Gli errori ed i difetti sono classificati secondo l'origine (ad esempio nella specifica, nella logica, nella mancanza di conformità agli standard e cosi via) 2. Si prende nota del costo di correzione di ogni errore o difetto. 3. Si contano errori e difetti di ogni categoria e si dispongono le categorie in ordine decrescente. 4. Si calcola il costo complessivo degli errori e dei difetti di ogni categoria. 5. Si analizzano i risultati per determinare le categorie che comportano i costi piu alti. 6. Si predispone un piano di modifiche al processo tese ad eliminare la classe di errori e difetti più costosa (od a ridurne la frequenza). Una delle cose che può aiutare nell'analisi dei guasti e costruire un grafico che riporti la distribuzione dei difetti, dividendoli in cause ed origini. Il processo di produzione del software 19
  • 20. Le metriche di progetto Le metriche di progetto e gli indicatori derivati sono sfruttati dal capo progetto e dal team per adattare la progressione del progetto e le attività tecniche. Gli indicatori di progetto permettono al capo progetto di stimare lo stato di avanzamento di un progetto in corso, seguire i rischi potenziali, scoprire aree problematiche prima che la situazione diventi critica, regolare il flusso del lavoro e delle operazioni e valutare la capacita del team di controllare la qualità dei prodotti. Il processo di produzione del software 20
  • 21. Le metriche di progetto Le metriche raccolte dai processi passati formano una base dalla quale ricavare stime dell'impegno e del tempo necessari per il progetto in corso. Nel corso del progetto, le misure di impegno e tempo spesi vengono confrontati con le stime (e con la tabella dei tempi del progetto). Munito di questi dati, il capo progetto sorveglia e pilota l'avanzamento del progetto. Il processo di produzione del software 21
  • 22. Le metriche dimensionali Le metriche dimensionali si ottengono normalizzando le misure di qualità e produttività sulla base delle dimensioni del software prodotto. Esse si basano sul numero di linee di codice prodotto. Il processo di produzione del software 22
  • 23. Le metriche dimensionali • errori per KLOC (migliaia di linee di codice) • difetti per KLOC • costo per riga di codice • pagina di documentazione per KLOC • errori/mese-uomo • LOC per mese-uomo • costo per pagina di documentazione Il processo di produzione del software 23
  • 24. Le metriche dimensionali Le metriche dimensionali non sono da tutti accettate in quanto esse non possono misurare: • Fattori umani (dimensione del gruppo, competenze) • Fattori problematici (complessità, cambiamento) • Fattori di processo (tecniche, strumenti) • Fattori di prodotto (affidabilità, prestazioni) • Fattori di risorse (persone, strumenti) Il processo di produzione del software 24
  • 25. Le metriche dimensionali Le misure basate sulle LOC dipendono pesantemente dal linguaggio adottato e che il loro impiego nelle stime esige un livello di dettaglio non sempre facile da raggiungere (ad esempio, il pianificatore deve stimare il numero di LOC ben prima delle fasi di analisi e progettazione). Il processo di produzione del software 25
  • 26. Le metriche basate sulle funzioni Le metriche basate sulle funzioni adottano una misura della funzionalità dell'applicazione. Tale misura e denominata function point (o punti funzione) Il processo di produzione del software 26
  • 27. Le metriche basate sulle funzioni Tabella per il calcolo dei punti di funzione: Il processo di produzione del software 27
  • 28. Le metriche basate sulle funzioni • Numero di input utente: si conta ogni input dell'utente che fornisce al software dati applicativi distinti. Occorre distinguere gli input dalle interrogazioni, che devono essere conteggiate a parte. • Numero di output utente: si conta ogni output destinato all'utente che fornisce dati applicativi. Per output si intendono resoconti, schermate, messaggi d'errore e cosi via. I singoli dati contenuti in un resoconto non sono conteggiati separatamente. • Numero di interrogazioni utente: un'interrogazione e definita come un input in linea che suscita la generazione di una risposta immediata del software, nella forma di output in linea. Si conta ogni interrogazione distinta. • Numero di file: Si conta ogni file logico principale (cioè un raggruppamento logico di dati che possa far parte di un database oppure un file separato). • Numero di interfacce esterne: Si contano tutte le interfacce leggibili dalla macchina (ad esempio file di dati su supporti di memorizzazione), utilizzate per trasmettere informazioni ad un altro sistema. Il processo di produzione del software 28
  • 29. Le metriche basate sulle funzioni Le aziende che si servono dei punti funzione sviluppano criteri per determinare se una certa voce e semplice, media o complessa. In ogni caso la determinazione della complessità resta in parte soggettiva. Il processo di produzione del software 29
  • 30. Le metriche basate sulle funzioni Calcolo dei punti funzione (FP): FP=totale×[0,65+0,01×ΣFi ] “totale” e la somma delle voci ricavate dalla tabella soprastante. Gli Fi (i=1;...;14) sono valori di aggiustamento della complessità, basati sulle risposte alle seguenti domande: Il processo di produzione del software 30
  • 31. Le metriche basate sulle funzioni 1. Il sistema richiede salvataggi e recuperi affidabili? 2. Si richiedono comunicazioni di dati? 3. Ci sono funzioni di elaborazione distribuita? 4. Le prestazioni sono un fattore critico? 5. Il sistema funzionerà in un ambiente operativo esistente, utilizzato a fondo? 6. Il sistema richiede inserimenti di dati in linea? 7. L'inserimento di dati in linea richiede che la relativa transazione si articoli in più schermi operazioni? Il processo di produzione del software 31
  • 32. Le metriche basate sulle funzioni 8. I file principali sono aggiornati in linea? 9. I dati d'ingresso o di output, i file e le interrogazioni sono complessi? 10. L'elaborazione interna e complessa? 11. Il codice e stato progettato per essere riutilizzabile? 12. La progettazione richiede anche conversione ed installazione? 13. Il sistema e stato progettato per essere installato in più organizzazioni? 14. L'applicazione e stata progettata per facilitare le modifiche e per essere di semplice uso da parte dell'utente finale? Il processo di produzione del software 32
  • 33. Le metriche basate sulle funzioni La risposta ad ognuna di queste domande può andare da 0 (non importante o non applicabile) a 5 (assolutamente essenziale). Le costanti ed i pesi visti precedentemente sono determinati empiricamente. I punti funzione cosi calcolati si utilizzano per delle misure di produttività e qualità: • errori per FP • difetti per FP • costi per FP • pagine di documentazione per FP • FP per mese-uomo I function point permettono di confrontare lo sforzo stimato su due sistemi diversi, o per progetti nel tempo. Tuttavia i punti funzione sono una misura astratta e relativa (non concreta o assoluta!) e devono essere adattati per ogni organizzazione o dominio. Il processo di produzione del software 33
  • 34. Le metriche basate sulle funzioni Feature Points I feature points sono un adattamento dei function points, a cui viene aggiunto un altro parametro di misurazione: gli algoritmi. Il processo di produzione del software 34
  • 35. Le metriche basate sulle funzioni Object Points Gli object points sono una metrica basata sulle funzioni, ma, a differenza dei function points, essi si incentrano sui tools di ausilio che permettono di creare velocemente schermate e report. Il processo di produzione del software 35
  • 36. Le metriche basate sulle funzioni Object Points I parametri di configurazione che prende in esame sono i seguenti: • Schermate: Tutto ciò che deve essere visualizzato sullo schermo • Report: I vari report che devono essere generati • Componenti 3GL: Tutto ciò che deve essere costruito “a mano” Il processo di produzione del software 36
  • 37. Le metriche basate sulle funzioni Object Points Ad ognuno di questi parametri viene associato un peso: Il processo di produzione del software 37 Object Type Complexity-Weight Simple Medium Difficult Screen 1 2 3 Report 7 8 5 3GL Component 10
  • 38. Le metriche basate sulle funzioni Object Points I valori vengono poi sommati insieme ed utilizzati per ottenere i NOP, cioè gli object points che tengono conto anche della percentuale di oggetti riutilizzabili NOP=OPx[(100−reuse)/100 ] Dove: OP e il valore trovato dalla somma precedente, reuse e la percentuale di riutilizzo. Il processo di produzione del software 38
  • 39. Le metriche basate sulle funzioni Object Points Trovato il NOP viene calcolato il PROD: Attraverso il NOP ed il PROD si può calcolare lo sforzo richiesto in mesi-uomo: sforzo= NOP / PROD Come per i function points, i valori numerici sono dati attraverso dati empirici. Il processo di produzione del software 39 Developers experience and capability ICASE maturity and capability Very low Low Nominal High Very high PROD 3 8 11 20 50
  • 40. Le metriche basate sulle funzioni Modello COCOMO (COnstructive COst MOdel) Il modello COCOMO e un modello che cerca di aiutare il capo-progetto a: a) calcolare lo sforzo in mesi-uomo previsto per un progetto, nonché la sua durata b) seguire il progetto durante tutte le sue fasi La formula principale e quella del calcolo per lo sforzo in mesi-uomo: Dove: • A e una costante moltiplicativa usata per calcolare gli effetti moltiplicativi quando aumenta la grandezza del progetto • size e la grandezza del progetto in migliaia di linee di codice • B e il fattore di scala che indica le economie e le diseconomie in base alla grandezza del progetto. Il processo di produzione del software 40 B sizeAsforzo 
  • 41. Le metriche basate sulle funzioni Modello COCOMO Calcolato lo sforzo esso viene aggiustato in base ai Cost Driver che indicano quanto incidono le varie parti del progetto sullo sforzo. Il processo di produzione del software 41
  • 42. Le metriche basate sulle funzioni Il processo di produzione del software 42 COST DRIVER ACAP Analyst Capability PEXP Platform Experience AEXP Applications Experience PREX Personnel Experience CPLX Product Complexity PVOL Platform Volatility DATA Database Size RCPX Product Reliability and Complexity DOCU Doc to match lifecycle needs RELY Required Software Reliability FCIL Facilities RUSE Required Reusability LTEX Language and Tool Experience SCED Required Development Schedule PCAP Programmer Capability STOR Main Storage Constraint PCON Personnel Continuity TIME Execution Time Constraint PDIF Platform Difficulty TOOL Use of Software Tools PERS Personnel Capability Modello COCOMO
  • 43. Le metriche basate sulle funzioni Modello COCOMO Calcolo dello sforzo modificato Dove: sono i cost driver calcolati Il processo di produzione del software 43        i iEMsforzoficatosforzoModi iEM
  • 44. Le metriche basate sulle funzioni Modello COCOMO Calcolo del tempo Dove: SCEDPercentage e la percentuale del Cost Driver SCED. Il processo di produzione del software 44              100 3 01,00233,0 tageSCEDPercen ficatosforzoModiTIME B
  • 45. Le metriche per la qualità Lo scopo primario dell’ingegneria del software e quello di produrre sistemi, applicazioni o prodotti di alta qualità. Per raggiungerlo, gli ingegneri del software devono applicare metodi efficaci abbinati a strumenti moderni, nel contesto di un processo software maturo. Un buon ingegnere del software (ed un buon manager del settore software) deve inoltre misurare se l’alta qualità sarà ottenuta. Il processo di produzione del software 45
  • 46. Le metriche per la qualità Correttezza: un programma che non operi correttamente è di ben poco valore per i suoi utenti. La correttezza e il grado in cui il software svolge la funzione richiesta. La misura di correttezza più comune e il numero di difetti per KLOC, intendendo per difetto un’accertata mancanza di conformità ai requisiti. Quando si considera la qualità globale del prodotto software, i difetti sono quei problemi evidenziati da un utente del programma dopo che il programma stesso e stato rilasciato per l’utilizzo generale. Per gli scopi di definizione della qualità, i difetti vengono contati dopo un periodo di tempo standard, in genere un anno. Il processo di produzione del software 46
  • 47. Le metriche per la qualità Facilità di manutenzione: la manutenzione e l’attività più costosa in termini di lavoro fra quelle del software; e l’indice della facilita con cui un programma può essere corretto nel caso di rilevi un errore, adattato nel caso in cui muti il suo ambiente o ritoccato nel caso in cui un utente desideri una modifica dei requisiti. Non c’è modo di misurare direttamente la facilita di manutenzione, di conseguenza si deve ricorrere a misure indirette. Una semplice metrica orientata al tempo e il “tempo medio per la modifica” (MTTC, Mean-Time-To-Change), cioè il tempo necessario ad analizzare la richiesta di cambiamento, progettare, implementare, collaudare e distribuire agli utenti l’opportuna modifica. In media i programmi di facile manutenzione esibiscono un valore inferiore di MTTC (per modifiche affini) rispetto a quelli di difficile manutenzione. Il processo di produzione del software 47
  • 48. Le metriche per la qualità Integrità: questo attributo misura la capacita di un sistema di resistere ad attacchi (sia accidentali, sia intenzionali) alla sua sicurezza. Gli attacchi possono essere rivolti a tre componenti del software: programmi, dati e documenti. Per misurare l’integrità, si devono definire due altri attributi: la minaccia e la sicurezza. La minaccia e la probabilità (stimata o ricavata da dati empirici) che un attacco di un certo tipo avvenga in un certo dato spazio di tempo. La sicurezza e la probabilità (parimenti stimata o ricavata da dati empirici) che l’attacco sia respinto. Il processo di produzione del software 48     sicurezzaacciaegrità 1min1int
  • 49. Le metriche per la qualità Usabilità: stabilire se un prodotto e facile da usare e tra le cose più difficili da misurare; normalmente si cerca di misurare quattro caratteristiche: le competenze fisiche ed intellettive necessarie per apprendere ed utilizzare il sistema; il tempo necessario ad acquisire una moderata disinvoltura nell’uso del sistema; l’incremento di produttività (rispetto alla soluzione sostituita dal sistema), misurato quando il sistema e utilizzato in modo moderatamente efficiente; una valutazione soggettiva (talvolta ricavata da un questionario) delle reazioni degli utenti. Il processo di produzione del software 49
  • 50. Le metriche per la qualità Defect Removal Efficiency (DRE): è una metrica utile sia a livello di processo che di progetto. In sostanza la DRE e una misura del potere filtrante delle attività di assicurazione e controllo di qualità applicate nel corso di tutte le attività portanti del processo. Rispetto al processo considerato nella sua interezza, la DRE e cosi definita: DRE=E/(E+D) Dove E è il numero di errori scoperti prima della consegna del software all’utente finale e D e il numero di difetti scoperti dopo la consegna. Il processo di produzione del software 50
  • 51. Le metriche per la qualità Il valore ideale di DRE è 1, ottenuto quando il software non presenta difetti. In un caso reale il valore di D e maggiore di zero, ma quello di DRE può tendere ad 1. All’interno del singolo progetto, la DRE può servire a valutare la capacita di scoprire errori da parte di un team prima di passare alla successiva attività od al compito successivo. Per fare un esempio, l’analisi dei requisiti produce un modello suscettibile di revisione per la ricerca e correzione degli errori. Gli errori non rilevati passano all’operazione di progettazione (nella quale possono essere scoperti o no). Il processo di produzione del software 51
  • 52. Le metriche per la qualità In tale contesto la DRE e ridefinita come segue: dove Ei e il numero di errori scoperti nel corso dell’attività i, Ei+1 e il numero di errori scoperti nel corso dell’attività i+1 riconducibili ad errori non rilevati nell’attività i. Dal punto di vista della qualità, l’obbiettivo di un team (o del singolo ingegnere del software) è quello di avvicinarsi quanto possibile al valore 1 per DREi. In altre parole, gli errori devono essere filtrati prima di passare all’attività successiva. Il processo di produzione del software 52  1  ii i i EE E DRE
  • 53. Integrazione delle metriche nel processo software Le metriche servono a: • caratterizzare • valutare • prevedere • Migliorare Una delle cose più difficili delle metriche e introdurle all’interno di un processo software. Il processo di produzione del software 53
  • 54. Integrazione delle metriche nel processo software Occorre dunque stabilire una piattaforma per le valutazioni metriche, tenendo presente che le informazioni raccolte non devono essere necessariamente radicalmente differenti, ma le stesse valutazioni metriche possono servire per vari scopi. Inoltre affinché sia un efficace ausilio per il miglioramento dei processi e/o per la stima dei costi e degli sforzi. Il processo di produzione del software 54
  • 55. Integrazione delle metriche nel processo software I dati della piattaforma devono avere i seguenti attributi: • i dati devono essere ragionevolmente precisi • i dati devono essere raccolti per il maggior numero possibile di progetti • le misure devono essere uniformi • le applicazioni devono essere simili al lavoro che si deve stimare Il processo di produzione del software 55
  • 56. Integrazione delle metriche nel processo software I dati raccolti vengono tanto dal processo, quanto dal progetto, quanto dal prodotto; l’insieme di questi dati ci fornisce le misure, dalle quali vengono elaborate le metriche, dalle quali vengono estratti gli indicatori. Il processo di produzione del software 56
  • 57. Integrazione delle metriche nel processo software Per inserire le metriche in un processo di sviluppo, bisogna: 1. Indentificare gli obbiettivi 2. Indentificare cosa vogliamo conoscere 3. Indentificare le entità e gli attributi necessari (che cosa misurare) 4. Formalizzare gli obbiettivi delle misurazioni (come misurare) 5. Stabilire come elaborare le misure prese (cioè scegliere la metrica da seguire) 6. Stabilire gli indicatori che si vogliono prendere in considerazione Il processo di produzione del software 57
  • 58. Integrazione delle metriche nel processo software Poniamoci un obbiettivo: ridurre il tempo di valutazione ed implementazione delle richieste di modifica. Il processo di produzione del software 58
  • 59. Integrazione delle metriche nel processo software Cosa vogliamo conoscere: 1. il tempo trascorso dalla richiesta al termine della valutazione 2. l’impegno per svolgere la valutazione 3. il tempo trascorso dalla valutazione all’assegnazione dell’ordine di modifica al personale 4. l’impegno necessario ad apportare la modifica 5. Il tempo necessario per apportare la modifica 6. gli errori scoperti durante la modifica ed i difetti scoperti dopo che la modifica e stata rilasciata al cliente Il processo di produzione del software 59
  • 60. Integrazione delle metriche nel processo software Ponendo: = è il tempo trascorso (in ore o giorni) dalla richiesta al termine della valutazione = è l’impegno (in persone-ora) per svolgere la valutazione = è il tempo trascorso (in ore o giorni) dalla valutazione all’assegnamento dell’ordine di modifica al personale Il processo di produzione del software 60 quequeT evalW evalT
  • 61. Integrazione delle metriche nel processo software Ponendo: = l’impegno (in persone-ora) necessario ad apportare la modifica = è il tempo necessario (in ore o giorni) per apportare la modifica = è il numero di errori scoperti durante la modifica = è il numero di difetti scoperti dopo che la modifica e stata rilasciata al cliente Il processo di produzione del software 61 changeW changeT changeE changeD
  • 62. Integrazione delle metriche nel processo software Dopo aver raccolto queste misure per una serie di modifiche, e possibile calcolare il tempo totale trascorso dalla richiesta di modifica all’implementazione della stessa e la percentuale del tempo assorbito per partire, per la valutazione, l’assegnamento e l’implementazione della modifica. Analogamente si può determinare le percentuali dell’impegno richiesto per la valutazione e l’implementazione. Il processo di produzione del software 62
  • 63. Integrazione delle metriche nel processo software Queste valutazioni metriche possono essere determinate nel contesto dei dati di qualità, e . Le percentuali forniscono una conoscenza del punto in cui il processo di richiesta della modifica rallenta e ciò può portare a contromisure per il miglioramento del processo per ridurre , , , e/o . Inoltre si può calcolare l’efficienza della rimozione dei difetti che può essere confrontata col tempo trascorso e con l’impegno totale necessario per determinare l’impatto delle attività di controllo della qualità sul tempo e l’impegno necessario per apportare una modifica. Il processo di produzione del software 63 changeE changeD quequeT evalW evalT changeW changeE