Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo del Centro IPPARI, Sicurezza informatica
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Centro ricerche IPPARI, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Sicurezza dei sistemi informatici

Ingegneria del software per la sicurezza

Lezione 12 di Sicurezza dei sistemi informatici 1

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

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 2

Indice

  1. Ingegneria del software per la sicurezza
  2. revisione e ispezione del software
  3. verifica di correttezza del software
  4. collaudo del software
  5. sviluppo del software basato su modelli
  6. sviluppo del software con metodi formali
  7. riferimenti

revisione e ispezione del software

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:

verifica di correttezza del software

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

collaudo del software

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

sviluppo del software basato su modelli

modelli del software:

spesso espressi da collezioni di diagrammi

vantaggi dello sviluppo del software basato su modelli:

sviluppo del software con metodi formali

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:

riferimenti