Docente: Giuseppe Scollo
Università di Catania, sede di Comiso (RG)
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Studi in Informatica applicata, AA 2006-7
nella lezione precedente si è visto come l'ingegneria del software fornisca principi di progettazione di qualità e modelli del processo produttivo, utili al conseguimento di qualità dei prodotti software, incluse le qualità di sicurezza
vediamo adesso alcune tecniche di controllo, affermatesi in buone pratiche di ingegneria del software, per assicurare che il software possegga le qualità desiderate; nella prossima lezione il quadro si completa con tecniche di gestione per il mantenimento della qualità del software attraverso la sua evoluzione
le revisioni del software, sia durante il suo sviluppo che a seguito della rilevazione di difetti, sono una pratica già diffusa negli anni '70, che si è in seguito evoluta nella pratica delle ispezioni formali, periodicamente reiterate, ciascuna delle quali consta essenzialmente di due fasi:
solo le tecniche di verifica formale di correttezza del software sono in grado di garantire che esso soddisfi i requisiti (formali) con la precisione e il rigore della matematica
il loro uso è necessario, e in taluni casi reso obbligatorio da norme di legge o da vincoli contrattuali, per lo sviluppo di software cosiddetto safety critical, cioè dalla cui correttezza dipende l'incolumità di vite umane, o la sicurezza di grandi impianti, o il riparo da rischi di grande danno economico
ostacoli alla diffusione della verifica formale nella produzione industriale del software:
per prodotti software di grande complessità, i principi di astrazione e modularità si applicano tanto allo sviluppo del software quanto alla sua verifica di correttezza, affinché quest'ultima risulti fattibile: ritorneremo più avanti su questo punto
il collaudo del software può solo rivelare la presenza di errori,
non la loro assenza
(E.W. Dijkstra)
nonostante questo limite inerente, il collaudo del software è l'alternativa pratica alla verifica formale
ambiti del collaudo:
a ciascun ambito sono appropriate distinte strategie di collaudo
metodi di collaudo:
il collaudo di regressione si applica a seguito di modifiche al software, per scoprire se queste hanno avuto influenza su funzionalità preesistenti del software che non dovrebbero esserne affette
modelli del software:
spesso espressi da collezioni di diagrammi
vantaggi dello sviluppo del software basato su modelli:
metodi formali possono essere usati nel processo produttivo del software per:
è già stata mostrata la maturità industriale di numerosi metodi formali, si consulti ad es. www.fmeurope.org
progressi ulteriori sono da attendersi dallo sviluppo di: