Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 1 - Cicli di vita Ernesto Damiani Università degli Studi di Milano Lezione 1 – Il prodotto software
Ingegneria del software Lingegneria del software è la disciplina tecnologica e manageriale che riguarda la produzione sistematica e la manutenzione dei prodotti software entro tempi e costi preventivati (IEEE Standard Glossary of Software Engineering)
Una riflessione preliminare La parte più difficile nella costruzione di un sistema software è decidere cosa costruire. Nessunaltra fase del processo di sviluppo del software può compromettere altrettanto gravemente il risultato finale se fatta nel modo sbagliato. Nessunaltra fase è altrettanto difficile da correggere a posteriori [Brooks 87]
Terminologia (1) Affidabilità: il software si comporta come previsto Correttezza: agendo su dati che soddisfano un predicato dingresso I, il software produce dati che soddisfano un predicato duscita O Interoperabilità: facilità di integrazione con altri prodotti
Terminologia (2) Manutenibilità: facilità nel realizzare adattamenti o evoluzioni; agio nel correggere gli errori Riusabilità: impiego di componenti esistenti Usabilità: facilità duso da parte dellutente Verificabilità: possibilità di dimostrare a posteriori la correttezza o altre caratteristiche del software
Qualità del software Qualità interna (white-box) ed esterna (black-box). Ad esempio: – Qualità interna: concisione e leggibilità del codice – Qualità esterna: facilità di manutenzione Punto di vista industriale : – Le qualità interne sono un mezzo, quelle esterne il fine
Caratteristiche del software Malleabilità: il prodotto software può essere trasformato e dotato di nuove funzionalità Manutenzione correttiva e adattativa: la manutenzione non è la correzione, ma leliminazione degli errori e levoluzione del prodotto Preminenza del design: la produzione del software è unattività prevalentemente progettuale FINE