Un esperimento di
programmazione estrema
Una nuova metodologia di programmazione
Tesi di Marco Tamanti
6/12/2000
Nuove esigenze



Internet
Globalizzazione
Tempi ristretti
 Specifiche dinamiche
 Rapida evoluzione
6/12/2000
Il costo delle modifiche

Proibito modificare i piani
6/12/2000

Il cambiamento è la norma
Nuovi strumenti
Processori veloci e costi dell’hardware ridotti
 Ambienti di sviluppo integrati
 Programmazione OO, modulare
 Database relazionali ad oggetti


Insieme di tecniche che XP introduce
6/12/2000
I valori





Buon senso
Semplicità
Comunicazione
Retroazione
Coraggio
6/12/2000

Il codice

L’uomo
Le tecniche
Utente sempre
presente
Veloce
pianificazione
40 ore
settimanali
Semplici
obiettivi
La metafora
Ristrutturazione
del codice
Piccoli cicli
produttivi
Test automatici
Proprietà
collettiva
6/12/2000
Programmazione
in coppia
Regole standard
di codifica
Continua
integrazione
Pratiche isolate

Test automatici
–
–
–
–
–

Qualità del codice
Sicurezza personale
Correzioni singole
Adesione alle specifiche
Ridotti test pre-release
Programmazione in coppia
–
–
–
–
–
Qualità del codice
Sicurezza personale
Meno errori
Comunicazione
…
160
Tempo
140
120
Individuali
100
80
In coppia
60
Totale in
coppia
40
20
0
1° Prog.
2° Prog.
3° Prog.
100
90
Qualità
80
70
60
50
Individuali
In coppia
40
30
20
10
0
6/12/2000
1°
Prog.
2°
Prog.
3°
Prog.
4°
Prog.
XP non è per tutti
XP non può funzionare quando il manager:


pretende specifiche complete dall’inizio
richiede un lungo ciclo per assicurarsi della qualità
prima di entrare in produzione
XP non può funzionare se:

Ciclo compilazione-testing è troppo lungo
 Gruppi con più di 10 persone
 Alcuni membri del gruppo non aderiscono a XP e non
accettano le responsabilità
6/12/2000
Conclusioni

XP è semplice, ma non è così semplice
applicarla
 Rivoluzionaria
 Molti la criticano perché non ci sono risultati
misurabili
 Difficile testare XP: bisognerebbe confrontare
progetti identici
 www.egroups.com
extremeprogramming
 Internet - aziende giovani - piccoli gruppi
6/12/2000
IbnDbTestingKit

setUp

test1 {
doWork
checkWork
}

tearDown
6/12/2000
dB
Scarica

Un esperimento di programmazione estrema Una nuova