Sei sulla pagina 1di 129

Ingegneria del Software

(Ing.Informatica Nuovo Ord.)


Canale M-Z / A.A. 2005-06
Marco Cadoli
Universit di Roma La Sapienza
Dipartimento di Informatica e Sistemistica
www.dis.uniroma1.it/~cadoli

SECONDA PARTE

Economia del SW
Versione definitiva
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

SECONDA PARTE
Economia del software
I.
Metriche e metodologie di stima delle risorse
II. Metodo dei punti funzione
III. Dimensionamento dello sforzo di sviluppo

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

I. Metriche e metodologie di stima


delle risorse
I.1. La quantit nel processo e nel prodotto

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

I.1. La quantit nel processo e nel


prodotto

Caratteristiche, attributi, indicatori


Tipologie di metriche
Metriche basate sulla dimensione
Metriche basate sulla complessit

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivi

Stime
Controllo della qualit
Analisi della produttivit
Determinazione dei costi
Controllo del progetto

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

Caratteristiche, attributi, indicatori


Le caratteristiche classificano gli aspetti
ritenuti essenziali (non misurabili)
Gli attributi (o sottocaratteristiche)
rappresentano una classificazione pi fine
delle caratteristiche (non misurabili)
Gli indicatori o criteri ingegneristici sono
propriet misurabili degli attributi

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

Tipologie di metriche
Metriche relative al processo
ad es., risorse, aderenza allo scheduling, numero di
errori, ecc.
impatto sul personale
statistiche!

Metriche relative ad un singolo progetto


valenza strategica/statistica

Metriche relative al software


dirette/indirette
dimensione/complessit
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

Metriche relative al SW
Dirette
misure effettuabili direttamente sul codice
LOC (Lines Of Code)
Indice di McCabe

misure effettuabili sulle specifiche


transazionali (FP)
OO (ricerca...)

Indirette
livelli di servizio
valutazioni espresse dagli utenti
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

Metriche basate sulla dimensione


LOC
errori (interni) per KLOC
errori (esterni) per KLOC/anno
pagine di documentazione per KLOC
LOC persona/mese
errori persona/mese
costo per LOC
costo per pagina di documentazione
LOC facile da calcolare, ma legato al
linguaggio/stile di programmazione
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

Metriche basate sulla complessit


Misura delle funzionalit presenti nel codice
Prima proposta nel 1979 (Albrecht): Punti
Funzione (Function Point - FP)
formula empirica basata su un insieme di misure
(numero input utente, numero di file, ) combinate
tramite un peso

Varie estensioni alla proposta iniziale

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

10

II. Metodi: punti funzione


II.1. Introduzione al metodo dei FP
II.2. Il metodo dei punti funzione

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

11

II.1. Introduzione al metodo dei FP


Breve storia
Formula per il calcolo
Limiti del metodo

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

12

Breve storia dei FP- (1975-85)


1975 Albrecht propone ed usa i FP allinterno dellIBM
1979 Albrecht pubblica la prima versione dei FP basata su 4
parametri (funzioni elementari) con un solo peso ed una
funzione correttiva alquanto soggettiva
1981 Il metodo pubblicato dalla IEEE
1982 DeMarco propone Bang una estensione dei FP per sw
scientifico
1983 Albrecht e Gaffney pubblicano alcune corrispondenze
numeriche tra FP e LOC
1984 Albrecht revisiona e pubblica il metodo introducendo un
quinto parametro, differenti pesi ed una funzione di
correzione pi sofisticata
1985 la Software Productivity Research determina una
corrispondenza tra FP e LOC per 30 linguaggi ed alcuni
parametri per il calcolo inverso (backfire)
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

13

Breve storia dei FP- (1986-?)


1986 Nasce in America lIFPUG (International Function
Point User Group); nascono i Feature Point (algoritmi)
1988 Metodo britannico semplificato detto Mark II
1990 Prima versione del manuale ufficiale (IFPUG)
1992 Versione 3.4 del manuale, nasce il GUFPI (Gruppo
Utenti FP Italia)
1994 Versione 4.0 del manuale - Intervento ISO
1995 La Boeing estende i FP integrando in un unico
approccio le problematiche relative ai dati, alle funzioni ed al
controllo
1997.... OO + FP
2000 versione 4.1 del manuale (web, interfacce grafiche,
client server, ...)
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

14

FP : proposta 1984
Parametro
Conteggio
N. Input utente
X
N. Output utente
X
N. Richieste utente
X
N. File
X
N. Interfacce esterne
X

Peso
3-4-6
4-5-7
3-4-6
7-10-15
5-7-10

Totale parametro
=
=
=
=
=
Somma totale

14

FP = Somma _ totale 0.65 + 0.01

i =1

Ing. del SW: Seconda parte

F i

Marco Cadoli, Universit La Sapienza, nov 2005

15

I cinque parametri
Input utente: funzione elementare che acquisisce ed elabora un
dato esterno allapplicazione
Output utente: funzione elementare che produce un output
esterno allapplicazione
Richiesta utente: processo elementare composto da un input ed
un output che si risolve nel reperimento di dati
File: gruppo di dati logicamente collegati riconoscibile
dallutente e manutenuto/aggiornato dentro il confine
dellapplicazione
Interfaccia esterna: gruppo di dati logicamente collegati
riconoscibile dallutente, referenziato dallapplicazione ma
mantenuto/aggiornato allinterno del confine di unaltra
applicazione
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

16

Pesi
Ciascun parametro partecipa alla somma
complessiva tramite un peso calcolato in base alla
sua complessit, discretizzata in tre fasce:
semplice - media- alta
NB: i pesi sono assegnati e differenti per ogni
parametro
La somma totale un intero detto FP non
pesati (unadjusted FP)

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

17

Adjusted FP
Il valore ottenuto (FP non pesati) viene modificato (+/- 35%)
tramite una formula correttiva che misura le caratteristiche
generali del sistema tramite 14 indicatori quali:
Il sistema necessita procedure di backup/recovery?
richiesto un trasferimento dati?

14

FP = Somma _ totale 0.65 + 0.01

i =1

F i

Il generico Fi assume un valore tra 0 e 5

0.65
1.35

0.0
0.7

0) Irrilevante ... 5) Essenziale

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

18

Limiti della metrica FP


Mancanza di considerazione degli algoritmi
Insufficiente considerazione dei vincoli
temporali
Molteplicit di versioni
Presenza di elementi soggettivi

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

19

LOC vs FP
Linguaggio di programmazione

LOC/FP

Assembler

320

128

Cobol

105

Fortran

105

Pascal

90

Ada

70

OO (C++ / JAVA)

30

4GL

20

Generatore di codice

15

Foglio elettronico

Linguaggio grafico/visuale

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

20

II.2. Il metodo dei FP


Tipi di conteggio
Il primo passo della metodologia:
Determinazione dei FP non pesati
Il secondo passo della metodologia:
Determinazione del fattore di aggiustamento

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

21

Tre tipi di utilizzo relativi a:


Nuovo progetto
Applicazione preesistente
utile quando si voglia misurare il patrimonio
aziendale di software o il valore di un
pacchetto

Manutenzione evolutiva

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

22

Tipi di conteggio
APPLICAZIONE PREESISTENTE / NUOVO PROGETTO

AFP = UFP * AF
MANUTENZIONE EVOLUTIVA

AFP = (ADD + CHG + CON) * AFA - DEL * AFB


nuovo

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

vecchio

23

Tipi di conteggio (2)


Dove:
punteggio grezzo
U(nadjusted)FP:
conteggio degli elementi significativi

che

deriva

dal

A(djusted)FP:
punteggio complessivo finale che tiene
conto di tutti i fattori di complessit
A(djusting)F(actor): fattore di aggiustamento che tiene conto
delle caratteristiche generali di complessit
CON:
punteggio grezzo sviluppato dalle funzionalit di
conversione richieste esplicitamente dal committente

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

24

Tipi di conteggio (3)


ADD:
punteggio grezzo sviluppato dalle funzionalit
che sono state aggiunte allapplicazione
CHG:
punteggio grezzo sviluppato dalle funzionalit
modificate, calcolato dopo le modifiche
DEL:

punteggio grezzo delle funzionalit eliminate

AFB(efore):
fattore di aggiustamento
allapplicazione prima delle modifiche

relativo

AFA(fter): fattore di aggiustamento relativo allapplicazione


dopo le modifiche

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

25

Metodologia dei FP: due passi


1. Determinazione dei FP non pesati (unadjusted
FP).
Determina cosa lutente vuole,
indipendentemente dallambiente di sviluppo e
dalla complessit del problema
2. Determinazione del fattore di aggiustamento.
Tiene conto dei fattori dipendenti dal come
viene realizzata lapplicazione

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

26

Determinazione dei FP non pesati:


Tecnica generale
1. Vengono valutate le funzionalit atomiche
dellapplicazione contandole rispetto a cinque
elementi significativi
2. Vengono valutate le complessit delle
funzionalit atomiche sempre sulla base di
caratteristiche degli elementi significativi
3. Vengono determinati i FP unadjusted come
somma pesata

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

27

Elementi significativi

Elementi o funzioni di tipo dati

Elementi o funzioni di tipo transazione

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

28

Seguiremo un esempio
Lutente chiede di
inserire,
interrogare, e
ottenere prospetti
su informazioni relative a tipi di lavoro.
Le informazioni riguardano:
Lavoro (Codice Lavoro, Nome Lavoro, Livello
Retributivo)
Descrizione Lavoro (Codice Lavoro, Progressivo
Linea, Linea Descrizione Lavoro)
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

29

Funzioni di tipo dati: definizioni


ILF
File Interno Logico
gruppo di dati logicamente collegati riconoscibile
dallutente e mantenuto/aggiornato dentro il
confine dellapplicazione.
EIF
File Esterno di Interfaccia
gruppo di dati logicamente collegati riconoscibile
dallutente, referenziato dallapplicazione ma
mantenuto/aggiornato allinterno del confine di
unaltra applicazione.

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

30

Esempio: Conteggio degli ILF


Il processo che opera sugli archivi non vede due
distinti archivi, Lavoro e Descrizione Lavoro,
perch ogni volta che aggiorna Lavoro aggiorna
anche Descrizione Lavoro
Dunque:
1 ILF
0 EIF

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

31

Regole di indentificazione elementi di


tipo dati
ILF Internal Logical File
1. Il gruppo di dati o informazioni di controllo un gruppo di
dati logico, o identificabile dallutente, che soddisfa
determinati requisiti utente.
2. Il gruppo di dati mantenuto allinterno del confine
dellapplicazione.
3. Il gruppo di dati modificato, o mantenuto, attraverso un
processo elementare dellapplicazione.
4. Il gruppo di dati identificato non stato contato come un EIF
per lapplicazione.
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

32

Regole di indentificazione elementi di


tipo dati (2)
EIF External Interface File
1.

Il gruppo di dati o informazioni di controllo un gruppo


di dati logico, o identificabile dallutente, che soddisfa
determinati requisiti utente.

2.

Il gruppo di dati referenziato dallapplicazione che si


sta misurando ed ad essa esterno.

3. Il gruppo di dati non mantenuto dallapplicazione che


si sta misurando.
4.

Il gruppo di dati contato come un ILF per almeno


unaltra applicazione.

5. Il gruppo di dati identificato non stato contato come un


ILF per lapplicazione.
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

33

Regole di indentificazione elementi di


tipo dati (3): suggerimenti
- Unapplicazione pu usare un ILF o EIF in vari processi, ma lILF o
lEIF sono contati una sola volta.
- Non supporre che un file fisico sia uguale ad un file logico quando i dati
sono visti logicamente dal punto di vista dellutente.
- Sebbene alcune tecniche di memorizzazione come le tabelle in un
DBMS relazionale o in un file sequenziale sono in stretta relazione con
gli ILFs o EIFs, non supporre che ci equivalga ad una relazione fisicologica uno-ad-uno.
- Se un gruppo di dati non stato contato come un ILF o EIF, conta i suoi
elementi dati come DETs per lILF o lEIF che comprende quel gruppo
di dati.
- Non supporre che tutti i file fisici debbano essere contati o inclusi come
parte di un ILF o EIF.
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

34

Conteggio delle funzioni di tipo dati


DET (Data Element Type - Elemento di tipo dati)
campo unico riconoscibile dallutente in un ILF o
EIF
RET (Record Element Type - Elemento di tipo
record)
sottogruppo di elementi dati riconoscibile dallutente
in un ILF o EIF
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

35

Esempio: conteggio dei RET e DET


I gruppi Lavoro e Descrizione Lavoro, pur
essendo manipolati insieme dallapplicazione,
sono due gruppi distinti. Dunque 2 RET
Codice Lavoro va contato una volta
Dunque 5 DET

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

36

Conteggio delle funzioni di tipo dati

Determinazione della complessit


DET
RET
1
2-5
6-

Ing. del SW: Seconda parte

1-19

20-50

51-

BASSA

BASSA

MEDIA

BASSA

MEDIA

ALTA

MEDIA

ALTA

ALTA

Marco Cadoli, Universit La Sapienza, nov 2005

37

Conteggio delle funzioni di tipo dati (2)


At t r ibu zion e del pu n t eggio
Co m p le s s it
BASSA
ME DIA
ALTA

Ing. del SW: Seconda parte

ILF
7
10
15

EIF
5
7
10

Marco Cadoli, Universit La Sapienza, nov 2005

38

Funzioni di tipo transazione


EI - External Input - Input esterni
Processo elementare che elabora dati provenienti
dallesterno del confine dellapplicazione.
EO - External Output- Output esterni
Processo elementare che genera dati che vengono
inviati al di fuori del confine dellapplicazione.
EQ - External Query- Interrogazione esterna
Processo elementare composto da un input ed un
output che si risolve nel reperimento di dati.
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

39

Conteggio degli input esterni


FTR Tipo di file referenziato
un ILF manipolato o un EIF letto
DET Elemento di tipo dati
campo unico riconoscibile dallutente in un ILF o
in un EIF

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

40

Conteggio degli input esterni (2)


Det er m in a zion e della com plessit
DE T
F TR
0-1
2
3-

Ing. del SW: Seconda parte

1-4

5-15

16-

BASSA BASSA ME DIA


BASSA ME DIA ALTA
ME DIA ALTA ALTA

Marco Cadoli, Universit La Sapienza, nov 2005

41

Conteggio degli input esterni (3)

At t r ib u zion e d e l p u n t e ggio

Ing. del SW: Seconda parte

Co m p le s s it

UFP

B AS S A
ME DIA
AL T A

3
4
6

Marco Cadoli, Universit La Sapienza, nov 2005

42

Regole di identificazione input esterno


Dati

I dati sono ricevuti dallesterno del confine dellapplicazione.

Il processo la pi piccola unit di attivit che significativa


per lutente finale del sistema.

Il processo autonomo e lascia lapplicazione che si sta


misurando in uno stato di coerenza funzionale.

Per il processo individuato, deve essere applicabile una delle


seguenti due regole:
1. Il trattamento logico unico rispetto ad altri input esterni
dellapplicazione.
2. I dati identificati sono diversi rispetto ad altri input esterni
dellapplicazione.

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

43

Conteggio degli output esterni


FTR

Tipo di file referenziato

un ILF o un EIF letto durante la generazione delloutput


esterno
DET Elemento di tipo dati
campo unico, riconoscibile
nelloutput esterno

Ing. del SW: Seconda parte

dallutente

che

Marco Cadoli, Universit La Sapienza, nov 2005

compare

44

Conteggio degli output esterni (2)

D e t e r m in a zion e d e lla com p le s s it


DET
F TR
0 -1
2 -3
4-

Ing. del SW: Seconda parte

1 -5

6 -1 9

20-

B AS S A B AS S A M E D I A
B AS S A M E D I A AL T A
M E D I A AL T A AL T A

Marco Cadoli, Universit La Sapienza, nov 2005

45

Conteggio degli output esterni (3)

At t r ib u zion e d e l p u n t e ggio
Co m p le s s it
B AS S A
ME DIA
AL T A

Ing. del SW: Seconda parte

UFP
4
5
7

Marco Cadoli, Universit La Sapienza, nov 2005

46

Regole di identificazione output


esterni
Il processo invia dati o informazioni di controllo allesterno
del confine dellapplicazione.
I dati o le informazioni di controllo sono inviate attraverso
un processo elementare dellapplicazione.
Il processo la pi piccola unit di attivit che significativa
per lutente finale del sistema.

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

47

Regole di identificazione output


esterni (2)

Il processo autonomo e lascia lapplicazione che si sta


misurando in uno stato di coerenza funzionale.

Per il processo individuato, deve essere applicabile una


delle seguenti due regole:
1. Il trattamento logico unico rispetto ad altri output
esterni dellapplicazione.
2. I dati identificati sono diversi rispetto ad altri output
esterni dellapplicazione

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

48

Conteggio delle interrogazioni esterne


1. Si valutano separatamente gli FTR e i
DET relativi ai parametri di input (campi
oggetto della selezione) e di output (campi
esito della selezione) della interrogazione
2. Si valutano le due complessit
3. Si sceglie il valore maggiore

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

49

Conteggio delle interrogazioni esterne


(2)
FTR
un

Tipo di file referenziato

ILF o un EIF letto


dellinterrogazione esterna

durante

lelaborazione

DET Elemento di tipo dati


campo unico, riconoscibile dallutente e non ricorrente, che
compare nellinterrogazione esterna

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

50

Conteggio delle interrogazioni esterne


(3)
D e t e r m in a zion e d e lla com p le s s it
L a t o in p u t
DE T
F TR
0 -1
2
3-

Ing. del SW: Seconda parte

1 -4
B AS S A
B AS S A
ME DIA

5 -1 5

16-

B AS S A M E D I A
M E D I A AL T A
AL T A
AL T A

Marco Cadoli, Universit La Sapienza, nov 2005

51

Conteggio delle interrogazioni esterne


(4)
Lato output
DET
1-5
6-19
20FTR
0-1
BASSA BASSA MEDIA
2-3
BASSA MEDIA ALTA
4MEDIA ALTA ALTA

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

52

Conteggio delle interrogazioni esterne


(5)
Attribuzione del punteggio
Complessit
BASSA
MEDIA
ALTA

Ing. del SW: Seconda parte

UFP
3
4
6

Marco Cadoli, Universit La Sapienza, nov 2005

53

UFP : riassunto valutazione


Funzione di
DET e FTR

transazioni

dati

Parametro
Conteggio
N. Input utente
X
N. Output utente
X
N. Richieste utente
X
N. File
X
N. Interfacce esterne
X

Peso
3-4-6
4-5-7
3-4-6
7-10-15
5-7-10

Totale parametro
=
=
=
=
=
Somma totale

Funzione di
DET e RET
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

54

Determinazione del fattore di


aggiustamento: Caratteristiche generali
Sono 14 fattori, cui deve essere attribuito un punteggio da
0 a 5 a seconda del grado di influenza e significativit.
F1 - Comunicazione dati
0: Semplice elaborazione batch
5: Transazionale con pi di un front end e pi protocolli
di comunicazione
F2 - Distribuzione dellelaborazione
0: Nessuna funzione presente
5: Elaborazione distribuita dinamicamente
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

55

Caratteristiche generali (2)


F3 - Prestazioni
0: Nessun requisito
5: Requisiti molto stringenti (appl. time critical)
F4 - Utilizzo della configurazione
0: Nessun vincolo
5: Utilizzo di molte configurazioni (esistenti + nuove)
con pesanti vincoli sulle risorse
F5 - Frequenza delle transazioni
0: Nessun picco di utilizzo
5: Vari picchi e stringenti livelli di servizio

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

56

Caratteristiche generali (3)


F6 - Inserimento dati interattivo
0: Tutto batch
5: Le transazioni per inserimento dati sono > 30%
F7: Efficienza per lutente finale
0: Nessun supporto per l utente
5: Altissima usabilit
F8: Aggiornamento interattivo
0: Non fornisce nessun aggiornamento interattivo
5: Altissima protezione contro la perdita dei dati, con
procedure automatiche

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

57

Caratteristiche generali (4)


F9: Complessit elaborativa
0: Nulla
5: Elaborazioni matematiche o logiche complesse
F10: Riusabilit
0: non esiste codice riusabile
5: alta necessit di riusabilit e parametrizzazione del codice
F11: Facilit di installazione
0: Non sono richieste particolari inizializzazioni
5: Sono necessarie guide e strumenti di installazione e
conversione

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

58

Caratteristiche generali (5)


F12: Facilit di gestione operativa
0: Nessuna esigenza
5: Applicazione per operazioni non presidiate
F13: Molteplicit dei siti
0: Un solo sito (appl. stand alone)
5: Molti siti caratterizzati da ambienti hw/sw eterogenei
F14: Facilit di modifica
0: Applicazione rigida
5: Esistono molti strumenti interni alla appl. per
permetterne una facile modifica (macro, tabelle, ecc.)

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

59

Calcolo del fattore di aggiustamento


AF = TDI * 0,01 + 0,65
dove TDI la somma dei gradi di influenza assegnati
a ciascuna caratteristica.
Il fattore di aggiustamento pu modificare il
punteggio finale del 35%.

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

60

III. Dimensionamento dello sforzo di


sviluppo
III.1. Considerazioni generali sui costi dei
progetti software
III.2. Metodi di stima dello sforzo a partire dalle
linee di codice (Cocomo)
III.3. Tecniche per passare da punti funzione a
linee di codice
III.4. Cocomo II

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

61

III.1. Considerazioni generali sui costi


dei progetti software
Scopi
Passi essenziali

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

62

Scopo delle metodologie per la


determinazione dello sforzo

Specifiche

Ing. del SW: Seconda parte

Determinazione
dello sforzo

Costo
Tempo

Marco Cadoli, Universit La Sapienza, nov 2005

63

Passi essenziali
1. Specifiche Funzioni (Punti Funzione)
2. Funzioni Linee di codice
3. Linee di codice Sforzo/Tempo
4. Sforzo Costi
tenendo conto, nei vari passi,
delle caratteristiche del progetto
attraverso fattori di aggiustamento

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

64

Calcolo costo e tempo di un progetto


di sviluppo: schema generale
parametri di aggiustamento
Specifiche

spec. formali Calcolo FP


fp
o semi (ER,
pesati
DFD, UML, ...)
spec. testuali
parametri
schermate

Calcolo costo
mercato

Ing. del SW: Seconda parte

MM e T

Calcolo LOC
loc

Calcolo sforzo
e tempo: COCOMO
T

Marco Cadoli, Universit La Sapienza, nov 2005

65

Esito dei progetti software


Valori percentuali
Esito finale

Dimensione progetto (FP)


<100

100-1K

1K-5K

>5K

Soppresso

13

24

Ritardo di almeno 1 anno

10

12

18

Ritardo tra 6 e 12 mesi

24

35

37

Ritardo inferiore a 6 mesi

72

53

37

20

Anticipo

15

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

66

Esito dei progetti software (2)

Mesi
Durata media

Dimensione progetto (FP)


<100

100-1K

1K-5K

>5K

Pianificata

12

18

24

Effettiva

16

24

36

Ritardo

12

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

67

III.2. Metodi di stima dello sforzo a


partire dalle linee di codice

Le grandezze stimate
Il modello Cocomo
Insufficienza delle LOC
Vantaggi della metrica FP

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

68

Grandezze stimate
Sforzo (Effort, Cost):
Il numero di mesi-uomo (MM) o anni-uomo (MY) necessari
per realizzare il progetto.
Durata dello sviluppo (Delivery Time):
Tempo che intercorre dallinizio del progetto al momento in
cui la prima versione operativa del prodotto disponibile.
Impegno (Manpower):
Sforzo sviluppato nellunit di tempo; la derivata dello
sforzo rispetto al tempo. Corrisponde al numero di persone che
lavorano contemporaneamente al progetto.
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

69

Modello COCOMO

CoCoMo = Constructive Cost Model (Bohem 1981)


Stima lo sforzo M ed il tempo di sviluppo T ottimale
Basato su statistiche
Utilizza il ciclo di vita a cascata (!)
Prevede:
tre modelli di calcolo, e
tre diversi tipi di applicazione

Formule base : M=aSb T=cMd (dove S sono KLOC)


Fornisce unindicazione percentuale del costo su
quattro fasi (pianificazione&analisi, progetto,
sviluppo, integrazione e test)
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

70

Coefficienti di correzione

Presenti nei due modelli di calcolo pi complessi


Stimano il contesto in cui il SW viene prodotto
Produttoria di 15 coefficienti
6 valori per ogni coefficiente:
(molto basso basso nominale alto - molto alto
- extra alto)

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

71

COCOMO: Applicazione / Modello


Tipo di modello

Base

Intermedio

Dettagliato

Caratteristiche
generali progetto

Solo dimensione
complessiva

coefficienti di correzione
globali

coefficienti di correzione

Semplice
(organic)

Intermedio
(semi-detached)

M = 2,4 S k

1, 05

T = 2,5 M 0,38
M = 3,0 S k

1,12

T = 2,5 M 0,35

15

M = M Nom ci

(embedded)

M = 3,6 S k

1, 20

T = 2,5 M 0,32

M Nom = 3,2 S k

1, 05

15

M = M Nom ci

idem

1,12

15

M = M Nom ci

idem

M Nom = 2,8 S k

Ing. del SW: Seconda parte

idem

M Nom = 3,0 S k
Complesso

per ciascuna fase

1, 20

Marco Cadoli, Universit La Sapienza, nov 2005

72

Assunzioni e definizioni
S: solo linee di codice sviluppate per il progetto
T: dalla fase di progetto a quella di integrazione e test. La
raccolta dei requisiti fuori da questo intervallo
MM =
19 giorni
152 ore di lavoro
Requisiti stabili

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

73

Tipo di applicazione
Organic
applicazione piccola
sviluppata in casa
ambiente di sviluppo noto
Embedded
presenza elevata di vincoli al contorno (hw, sw,
funzionali)
scarsa conoscenza degli obiettivi dellapplicazione
sviluppo concorrente
necessit di utilizzare tecniche/algoritmi/tecnologie
nuove
Semidetached
a met tra i due tipi precedenti
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

74

Esempio

Modello base
Progetto semplice (organic)
S = 32K
MM = 2.4(32)1.05 = 91 MM
T = 2.5(91)0.38 = 14 mesi
Persone = 91/14 = 6.5
Produttivit = 32K/91 = 0.352 kloc/mese !
18.5 loc/giorno !!!!

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

75

MM: Percentuale fasi


(organic)
KLOC
2
Pian. e
requisiti
Progetto

8
6

32
6

128
6

16

16

16

16

Sviluppo
68
progetto dett
codifica e test
Integ. e test
16

65

62

59

Ing. del SW: Seconda parte

26
42

25
40
19

24
38
22

23
36
25

Marco Cadoli, Universit La Sapienza, nov 2005

76

T: Percentuale fasi
(organic)
KLOC
2
Pian. e
requisiti

Ing. del SW: Seconda parte

8
10

32
11

128
12

13

Progetto

19

19

19

19

Sviluppo

63

59

55

51

Integ. e
test

18

22

26

30

Marco Cadoli, Universit La Sapienza, nov 2005

77

Esempio
Quanti MM di programmazione ?
MMprog = 0.62*91 = 56 MMprog
Quanto T di programmazione ?
Tprog = 0.55*14 = 7.7 mesi
Quanti programmatori ?
Programmatori = 56/7.7 = 7.3
Se S non in tabella interpolazione lineare
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

78

I 15 coefficienti di correzione

Prodotto
1. RELY: REquired software reliabiLitY(0.75-0.88-1.0-1.151.40-n/a)
2. DATA: DATA base size (n/a-0.94-1.0-1.08-1.16-n/a)
3. CPLX: product ComPLeXity (0.70-0.85-1.0-1.15-1.30-1.65)

Sistema
4. TIME: execution TIME constraint (n/a-1.0-1.11-1.30-1.66n/a)
5. STOR: main STORage constraint (n/a-1.0-1.06-1.21-1.56n/a)
6. VIRT - VIRTual machine volatility (n/a-0.87-1.0-1.15-1.30n/a)
7. TURN - computer TURNaround time (0.87-1.0-1.07-1.15n/a-n/a)

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

79

I 15 coefficienti di correzione (2)

Personale
8. ACAP - Analyst CAPability (1.40-1.19-1.0-0.86-0.71-n/a)
9. AEXP - Application EXPerience (1.29-1.13-1.0-0.91-0.82-n/a)
10. PCAP - Programmer CAPability (1.42-1.17-1.0-0.86-0.7-n/a)
11. VEXP - Virtual machine EXPerience (1.21-1.10-1.0-0.90-n/an/a)
12. LEXP: Program. Language EXPer. (1.14-1.07-1.0-0.95-n/a-n/a)

Progetto
13. MODP: MODern Program. practices (1.24-1.10-1.0-0.91-0.82n/a)
14. TOOL - use of software TOOLs (1.24-1.10-1.0-0.91-0.83-n/a)
15. SCED - SChEDule constraints (1.23-1.08-1.0-1.04-1.10-n/a)

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

80

I 15 coefficienti di correzione (3)


Prodotto
RELY: REquired software reliabiLitY(0.75-0.88-1.0-1.15-1.40-n/a)
Affidabilit richiesta intesa come difettosit residua
DATA: DATA base size (n/a-0.94-1.0-1.08-1.16-n/a)
Dimensione relativa al programma dei dati gestiti
CPLX: product ComPLeXity

(0.70-0.85-1.0-1.15-1.30-1.65)

Complessit globale del prodotto

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

81

I 15 coefficienti di correzione (4)


Sistema
TIME: execution TIME constraint (n/a-1.0-1.11-1.30-1.66-n/a)
Requisiti di efficienza
STOR: main STORage constraint (n/a-1.0-1.06-1.21-1.56-n/a)
Requisiti di memoria centrale
VIRT - VIRTual machine volatility (n/a-0.87-1.0-1.15-1.30-n/a)
Frequenza con cui le caratteristiche del sistema target vengono
modificate durante lo sviluppo
TURN - computer TURNaround time (0.87-1.0-1.07-1.15-n/a-n/a)
Tempo di risposta accettabile
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

82

I 15 coefficienti di correzione (5)


Personale
ACAP - Analyst CAPability (1.40-1.19-1.0-0.86-0.71-n/a)
Efficienza del personale di analisi
AEXP - Application EXPerience (1.29-1.13-1.0-0.91-0.82-n/a)
Esperienza nello sviluppo di sw simile
PCAP - Programmer CAPability (1.42-1.17-1.0-0.86-0.7-n/a)
Efficienza del personale di programmazione
VEXP - Virtual machine EXPerience

(1.21-1.10-1.0-0.90-n/a-n/a)

Disponibilit di esperienza nelluso della macchina target


LEXP: Program. Language EXPer. (1.14-1.07-1.0-0.95-n/a-n/a)
Esperienza nelluso del linguaggio di programmazione
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

83

I 15 coefficienti di correzione (6)


Progetto
MODP: MODern Program. practices (1.24-1.10-1.0-0.91-0.82-n/a)
Uso di tecniche di programmazione efficienti
TOOL - use of software TOOLs (1.24-1.10-1.0-0.91-0.83-n/a)
Uso di strumenti automatizzati
SCED - SChEDule constraints (1.23-1.08-1.0-1.04-1.10-n/a)
Vincoli sul tempo di conclusione del progetto

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

84

Considerazioni su Cocomo

hp1: Ciclo di vita a cascata


hp2: Requisiti stabili
hp3: Personale adeguato
hp4: presente una gestione del progetto
Tabelle per la determinazione dei coeff. correttivi
Modello base
errore<20% nel 25% dei casi
Modello intermedio errore<20% nel 68% dei casi
Modello avanzato
errore<20% nel 70% dei casi

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

85

Insufficienza delle LOC


Incerta definizione dellunit di misura
Solo indirettamente
committente

legata

agli

obiettivi

del

Legata alle scelte implementative


Impossibilit di confronto tra applicazioni simili
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

86

Insufficienza delle LOC (2)


Inutilizzabile a scopo previsionale
Inadeguatezza per i linguaggi avanzati
Difficolt nel gestire luso contemporaneo di pi
linguaggi
Impossibilit di misurare il valore del software
acquisito esternamente
Premia linefficienza
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

87

Vantaggi della metrica FP

Indipendenza dai fattori esterni


Assenza di effetti paradosso
Ripetibilit
Verificabilit
Orientamento verso lutente
Utilizzabili fin dalle prime fasi del progetto

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

88

Dimensione tipica in FP del patrimonio


SW aziendale
(Capers Jones)
Tip o d i a zie n d a

D i m e n s io n e
(KF P )

Ba n ca loca le

125

Ba n ca com m er cia le

350

Ba n ca in t er n a zion a le

450

Com pa gn ia di a ssicu r a zion i

400

Com pa gn ia di a ssicu r a zion i di gr a n di dim en sion i

550

Azien da di gest ion e del ser vizio t elefon ico

450

Azien da m a n ifa t t u r ier a n el set t or e t elefon ico

600

Azien da m a n ifa t t u r ier a

200

Azien da m a n ifa t t u r ier a di gr a n di dim en sion i

375

Gr a n de pr odu t t or e di ca lcola t or i

Ing. del SW: Seconda parte

1.650

Marco Cadoli, Universit La Sapienza, nov 2005

89

III.3. Tecniche per passare da punti


funzione a linee di codice

Fasi del passaggio da FP a LOC


Il coefficiente di backfiring
La correzione del conteggio
Esempio

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

90

Fasi del passaggio dal FP a LOC


1. Applicazione di un coefficiente di backfiring
2. Correzione del conteggio per tenere conto degli
aspetti non considerati nella fase precedente

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

91

Coefficienti di backfiring di alcuni


linguaggi
Linguaggio

Livello
nominale

LOC per Function Point


Minimo Media

Massimo

1st Generation

1.00

220

320

500

Basic assembly

1.00

200

320

450

Macro assembly

1.50

130

213

300

2.50

60

128

170

BASIC (interpreted)

2.50

70

128

165

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

92

Coefficienti di backfiring di alcuni


linguaggi (2)
2nd Generation

3.00

55

107

165

FORTRAN

3.00

75

107

160

ALGOL

3.00

68

107

165

COBOL

3.00

65

107

150

CMS2

3.00

70

107

135

J OVIAL

3.00

70

107

165

PASCAL

3.50

50

91

125

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

93

Coefficienti di backfiring di alcuni


linguaggi (3)
3 r d G e n e r a t ion

4 .0 0

45

80

125

P L /I

4 .0 0

65

80

95

MODU LA 2

4 .0 0

70

80

90

AD A 8 3

4 .5 0

60

71

80

LISP

5 .0 0

25

64

80

F ORTH

5 .0 0

27

64

85

Q U I C K B AS I C

5 .5 0

38

58

90

C ++

6 .0 0

30

53

125

Ad a 9 5

6 .5 0

28

49

110

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

94

Coefficienti di backfiring di alcuni


linguaggi (4)
Da ta ba se

8 .0 0

25

40

75

B a s ic

1 0 .0 0

20

32

37

(d e fa u lt

1 0 .0 0

10

32

45

S M AL L T AL K

1 5 .0 0

15

21

40

G e n e r a t or s

2 0 .0 0

10

16

20

S cr e e n p a in t e r s

2 0 .0 0

16

30

SQL

2 7 .0 0

12

15

Spr ea dsh eets

5 0 .0 0

Vis u a l
(W in d ow s )
AP L
va lu e )

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

95

Correzione del conteggio

Si tiene conto di tre aspetti (valutazioni da 1 a 5)


1. Complessit del problema
1: Solo algoritmi e calcoli semplici
5: Molti algoritmi e calcoli complessi
2. Complessit delle strutture dati
1: Poche variabili scarsamente correlate tra di
loro
5: Struttura dei file complessa con molte
interrelazioni tra file

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

96

Correzione del conteggio (2)


3. Complessit del codice
1: Non procedurale
2: Molto strutturato, con moduli riusabili
5: Scarsamente strutturato

Il coeff. di aggiustamento determinato con la


formula:
0.0
0.6
0,7 + 0,05 (Ct - 3)
dove Ct la somma dei tre livelli di complessit

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

97

Esempio
Calcolo delle linee di codice
Calcolo dello sforzo (persone/tempo)

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

98

Base dati fatture

45 FP
Assumiamo di scrivere il programma in C
Complessit Problema : Semplice
Complessit Dati : Struttura semplice
Complessit programma: Molto strutturato

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

99

Calcolo dello sforzo


C o e ffic ie n te d i b a c k firin g d e l lin g u a g g io ( C )
C o rre z io n e d e l c o e ffic ie n te :
PROBLEM A
C O M P L E S S IT A
1

D A TI
2

B A F = 0 ,7 + 0 ,0 5

128
C O D IC E
2

TO TALE
5

( 5 - 3 ) = 0 ,8

C o e ff ic ie n te a p p lic a z io n e : 1 2 8 x 0 ,8 = 1 0 2
D im e n s io n e a p p lic a z io n e : 4 5 x 1 0 2 = 4 5 9 0 L O C
S F O R Z O (C O C O M O B A S E S E M P L IC E ):
1 ,0 5
2 ,4 X 4 ,6
TEM PO:

M M

0 ,3 8
2 ,5 x 1 1 .9

Ing. del SW: Seconda parte

= 1 1 .9
= 6 .4 M

Marco Cadoli, Universit La Sapienza, nov 2005

100

Calcolo del costo


F ig u ra
A n alista
S istem ista
P ro g ram m ato re

F razio n e
10%
20%
70%

T ariffa
18
16
12

1 ,8
3 ,2
8 ,4
1 3 ,4
M L it/M M

1 3 ,4 x 1 1 ,9 = 1 5 9 ,4 6 M L it

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

101

III.4. Cocomo II

Schema calcolo costi e tempi


Modelli
Economie e diseconomie di scala
Calcolo delle SLOC
Fattori di aggiustamento
Stima dei tempi

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

102

Calcolo costo e tempo di un progetto


di sviluppo: Cocomo II
parametri di aggiustamento x riuso
secondo Cocomo II
Specifiche

fp pesati
spec. formali Calcolo FP
o semi (ER,
DFD, UML, ...)
spec. testuali
parametri sul progetto
schermate

Calcolo costo
mercato

Ing. del SW: Seconda parte

MM e T

Calcolo LOC
fp non pesati

loc

Calcolo sforzo
e tempo: COCOMOII
T

Marco Cadoli, Universit La Sapienza, nov 2005

103

Cocomo II
Motivazioni per il nuovo modello:
nuovi modelli per il ciclo di vita del SW
riuso
considerazione di differenti granularit nella
conoscenza del problema

Dettagli in COCOMO II Model Definition


Manual, disponibile al sito
ftp://ftp.usc.edu/pub/soft_engineering/COC
OMOII/cocomo99.0/modelman.pdf
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

104

Incertezza nella stima

Da Boehm, 1981
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

105

Modelli di CocomoII
1. Early Design model
adatto alla fase iniziale del progetto
poche informazioni/poco dettaglio (FP)
7 fattori di costo

2. Post-Architecture model
pensato per lo sviluppo e la manutenzione del SW
pi dettaglio e informazioni (FP/LOC+ modificatori x riuso)
17 fattori di costo

Cinque fattori per il calcolo dellesponente, che


sostituiscono i tre tipi di progetto (organic, semidetached, embedded)
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

106

Formula base ed economie e


diseconomie di scala
PMnom= 2.94 SB
B indica la presenza o meno di economie di scala
In Cocomo:
In CocomoII:

B {1.05, 1.12, 1.20} (solo diseconomie)


B = 0.91 + 0.01 * i=1..5 wi

0.0
0.25

Ogni wi ha sei possibili livelli (Very Low[5]..Extra High[0])


B, in Cocomo II, va da 0.91 a 1.16
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

107

Scaling drivers

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

108

PRECedentedness & Development


FLEXibility

Esperienza pregressa, comprensione, vincoli

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

109

Architecture/Risk RESolution
Product
Design
Review

Component
Off
The
Shelf
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

110

TEAM Cohesion

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

111

Process MATurity
Basato sul CMM
Due modalit di calcolo:
livello CMM (1-, 1+, 2, 3, 4 , 5)
analisi % delle 18 aree di processo chiave

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

112

Metodo di valutazione della %

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

113

Calcolo delle SLOC


Riuso
Fattori importanti per il riuso
Esempio

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

114

LOC/UFP

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

115

Riuso

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

116

Riuso in Cocomo II
Tre fattori
SU :
AA:
UNFM:

Ing. del SW: Seconda parte

Software Understanding
Assessment and Assimilation
Programmer Unfamiliarity

Marco Cadoli, Universit La Sapienza, nov 2005

117

SU: Software Understanding

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

118

AA: Assessment and Assimilation

Quanto sforzo necessario per:


- valutare se il codice da integrare appropriato
- integrare la sua descrizione nella descrizione del
prodotto complessivo
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

119

UNFM: Programmer Unfamiliarity

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

120

Adaptation Adjustment Factor


DM : % Design Modified
percentuale di progetto modificato per adattare il sw ai nuovi
obietivi (parametro soggettivo)

CM : % Code Modified
percentuale di codice modificato

IM : % Integration Required For Modified SW


percentuale di sforzo richiesto per integrare il codice modificato
rispetto allo sforzo normale per sw di dimensioni analoghe

Se non c modifica nel progetto o nel codice


(DM==0 && CM==0) SU non va calcolato
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

121

Equivalent SLOC

50
50

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

122

Esempio di calcolo delle ESLOC


Modulo software di 8k LOC per effettuare il
browsing di una tabella relazionale

codice ben scritto e documentato


SU=20
valutazione e documentazione semplici AA=2
codice sorgente sconosciuto
UNFM=1.0
% di progetto da modificare 10%
DM=10
% di codice da modificare 20%
CM=20
% sforzo di integrazione 35%
IM=35

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

123

Esempio di calcolo delle ESLOC (2)


ASLOC = 8
DM = 10

SU = 20
CM = 20

AA = 2
IM = 35

UNFM = 1.0

AAF = 0.4 (10)+0.3 (20) +0.3 (35) = 20.5 (AAF 50)


ESLOC = 8[2+20.5(1+0.02*20*1.0)]/100= 8[30.7]/100 = 2.456

50
50
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

124

Esempio di calcolo delle ESLOC (3)

Usando il programma COCOMO II 1990.0, disponibile al sito


ftp://ftp.usc.edu/pub/soft_engineering/COCOMOII/cocomo99.0/c990windows.exe
lesempio corrente viene modellato con il metodo Adaptation (modulo third)
Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

125

Fattori di aggiustamento e stima dei


tempi

Aggiustamento di PMnom
I 7 fattori di costo dellEarly Design
model
I 17 fattori di costo del Post-Architecture
model
Stima dei tempi

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

126

Aggiustamento di PMnom
Early Design model

Post-Architecture
model

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

127

7 vs 17

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

128

Stima dei tempi


Simile a Cocomo

Ing. del SW: Seconda parte

Marco Cadoli, Universit La Sapienza, nov 2005

129