Sei sulla pagina 1di 60

Universita’ degli Studi di Perugia

Dipartimento di Matematica e Informatica

Corso di Laurea in Informatica

Ingegneria del Software


Prof. Alfredo Milani
Il Processo produttivo del software costi e metriche
Materiale note, grazie al contributo di: Alfredo Milani, Fabrizio Montecchiani, Carlo Ghezzi, Alessandro Riccardi et al.
Sommario

• Problemi generali di valutazione delle


prestazioni e costi
• Quantificazione dei costi di sviluppo
• Attività di pianificazione e controllo
• Configuration Management
Il mitico mese-uomo
Mesi (m)
Andamento
ideale della curva
S=nxm tempo-risorse

Risorse (n)

Andamento reale
della curva
tempo-risorse
Risorse (n)
Cos’è una misura software
Fornisce un numero astratto X
Dobbiamo trasformare X in un costo gg/uomo: [costo
gg/uomo] = f(X)
L’esperienza (punti in rosso) ci fornisce la funzione f, da
utilizzare per le stime future:

costo gg/uomo f(X)

X (misura)
1.4
Peculiarità del software
• Complessità
Strumenti Strumenti

• Labilità sviluppo Strument


i
visualizzazione

modifica

• Modificabilità Criteri Strument Strumenti


sviluppo i sviluppo

• Invisibilità sviluppo

Strumenti Strumenti
modifica visualizzazione
Strume n
ti
modifica
Il costo del software
Le fonti di costo

• Costi diretti:
– Personale tecnico
– Personale di supporto
– Risorse informatiche
– Materiali di consumo
– Costi generali di struttura
• Costi indiretti:
– Indisponibilità delle applicazioni
– backlog
Fattori COCOMO per la stima dei costi
(COnstructive COst MOdel)

• Numero di istruzioni
• Fattore umano
• Complessità del programma
– Applicativi scientifici ed EDP
– Programmi di utilità (compilatori, middleware)
– Applicazioni di sistema (DBMS, sistemi operativi,
etc.)
• Stabilità dei requisiti
Misure e Metriche
Misure di Prodotto
Perché Misurare?
Cosa si ottiene dalla Misurazione
Processo di Misurazione
LOC

• Stima dei costi


• Stima dei tempi
• Stima dei rischi
• Dimensione del software

1.14
LOC

• Stima dei costi


• Stima dei tempi
• Stima dei rischi
• Dimensione del software

1.15
Misure di Prodotto Esempio 1/4
Metriche basate su LOC
Dimensioni del software

• Metriche dimensionali basate su LOC


(Lines of Code), SLOC (Source Lines of
Code), DSLOC (Delivered Lines of Code)

– Produttività: P=LOC/M (M=mesi-uomo)


– Qualità Q=E/LOC
– Costo unitario C=$/LOC
– Livello di documentazione D= PD/LOC
Misure di Prodotto Esempio 2/4
Cyclomatic Complexity - CC

Thomas J. McCabe nel 1976, è utilizzata per misurare la complessità di un


programma. Misura il numero di cammini linearmente indipendenti attraverso il
grafo di controllo di flusso.

V(G) = e – n + 2p
e=9 (archi) n=8 (nodi)
p=1 (componenti))= V(G)=3

Utile nella fase di test


Coverage < CC
Misure di Prodotto Esempio 3/4
Misure di Prodotto Esempio 4/4
Metrica FP o FUNCTION POINT di Albrecth

Alan Albrecht – IBM – 1970


ISO Standards: COSMIC 2011, FISMA 2008, IFPUG
2009, ...

Misura le funzionalità

Divide et impera: divide il sistema in componenti e


misura ogni componente

1.22
Metodo FP o FUNCTION POINT di Albrecth
Metodo FP o FUNCTION POINT di Albrecth
Metodo FP o FUNCTION POINT di Albrecth
Adjusted Function Points = ADF
Misure funzionali
• Metodo dei punti funzione FUNCTION POINT di
Albrecht
• Indici
– Numero di input
– Numero di output
– Numero di richieste (interrogazioni in linea che
producono una risposta immediata del sistema)
– Numero di file (creati e utilizzati internamente dal
programma)
– Numero di interfacce esterne (file o altri insiemi di dati
scambiati con altri programmi)
Metodo di Conteggio FP versione 4.1.1

Identificare 5 tipi di funzionalità=function


ILF Internal Logical Files

EIF External Interface Files

EI External Input
EO External Output
EQ External Query
Function Points
Metodo di Conteggio FP versione 4.1.1
FP: tre tipi di conteggio
Unadjusted Funcion Points UFP
Unadjusted Funcion Points UFP

ILF Internal Logical Files


EIF External Interface Files
EI External Input
EO External Output
EQ External Query
Costo-FP = AFP = Adjusted FP Count

AFP = UFP * VAF

UFP=Unadjusted Weighted Function Points


VAF=Value Adjustment Factor
UFP= Unadjusted Function Points

X
X
X
X
X
Calcolo VAF=Value Adjustment Factor

VAF = [0.65 + 0.01 *∑(fi)] 0 <= ∑(fi) <=70


i i

14 fattori di aggiustamento con valori da 0 a 5 calcolati mediante


•Fi:
questionario
Sono richieste procedure di backup e recovery?
E’ richiesta la trasmissione di dati?
L’elaborazione è distribuita?
Le prestazioni sono critiche?
Il programma si inserisce in un ambiente operativo ad alto carico?
Vi sono funzionalità avanzate di consultazione in linea e presentazione dati?
Gli archivi sono aggiornati in tempo reale?
Le informazioni scambiate tra utente e sistema sono complesse?
L’interfaccia è una GUI a finestre?
Il codice è complesso?
Il codice è scritto per essere riusabile?
Il progetto comprende l’installazione e la conversione di dati?
Il sistema è a multi-installazione?
Il programma è modificabile dall’utente?
Funzioni di tipo dati: Definizioni
Funzioni di tipo dati: Definizioni
FP: terminologia

• Informazioni di controllo: dati che


influenzano un processo elementare
• Riconoscibile da Utente: accordo tra
utenti e sviluppatori
• Mantenuto: capacità di modificare i dati
con processo elementare
• Processo elementare: autonomo, lascia il
sistema in uno stato consistente
ILF: regole di identificazione
ILF: esempi
Esempio ILF
Esempio ILF
EIF: regole di identificazione
EIF: Esempi
ILF e EIF: conteggio
ILF e EIF: conteggio DET
• Conta un DET per ogni campo unico
riconosciuto dall’utente e non ripetuto,
mantenuto in o recuperato da un ILF o EIF
attraverso un processo elementare
• Conta i DET mantenuti da ciascuna
applicazione indipendentemente
• Per contare i DET è necessario basarsi sul
progetto logico (tabelle) dei dati perché
vanno considerate anche le chiavi esterne
ILF e EIF: conteggio RET (Record Element Type)
ILF e EIF: conteggio RET (Record Element Type)
ILF e EIF: conteggio RET (Record Element Type)
COMPLESSITA’
Numero di FP non PESATI
Funzioni Transazione: Definizioni
Funzioni Transazione: Definizioni
VAF Fattore di aggiustamento basto su
GSC General System Characteristics

GSC =General Systems Characteristics


Fattore di Aggiustamento e
Total Degree of Influence
Calcolo di FP= UFP * VAF
i i

• FP = (VP )*[0.65+0.01  Fi]


•Fi:
14 fattori di aggiustamento GSC con valori da 1 a
5 calcolati mediante questionario
Sono richieste procedure di backup e recovery?
E’ richiesta la trasmissione di dati?
L’elaborazione è distribuita?
Le prestazioni sono critiche?
Il programma si inserisce in un ambiente operativo ad alto carico?
Vi sono funzionalità avanzate di consultazione in linea e presentazione dati?
Gli archivi sono aggiornati in tempo reale?
Le informazioni scambiate tra utente e sistema sono complesse?
L’interfaccia è una GUI a finestre?
Il codice è complesso?
Il codice è scritto per essere riusabile?
Il progetto comprende l’installazione e la conversione di dati?
Il sistema è a multi-installazione?
Il programma è modificabile dall’utente?
Relazione tra metriche dimensionali e funzionali

Risultato empirico: c’è relazione tra FP e LOC (fonte:Studio IBM)

Linguaggio LOC/FP

COBOL 110

FORTRAN/Pl1 65

4GL 25
Confronto Function Points / Lines-Of-Code
FP / LOC

Vedi esempio da: https://www.javatpoint.com/software-engineering-functional-point-fp-analysis


Utilità dei Function Point: metriche derivate
Utilità dei Function Point