Sviluppo del Software in Regime di Qualita’ Una Introduzione Mario Capurso http://info.bazarinfo.info Distribuzione dei costi del Software - 1 50% Produzione Manutenzione 50% Distribuzione dei costi del Software - 2 40% 25% Analisi e Progettazione Programmazione Documentazione Testing 20% 15% Gli Errori del Software •Il Millennium Bug: milioni di dollari di costo •L’abbattimento dell’Airbus Iraniano nel 1989 •Il crollo della rete telefonica americana nel 1989 •Il Therac 25 e le overdosi di radiazioni-1985/87 •I problemi con gli Space Shuttle -1980/95 •Il sistema SAGE ed il lancio di missili nucleari: 1956/60 I Costi degli Errori • Bank of America MasterNET: da 23 a 83 M$ • AllState Insurance: da 8 a 100 M$ • Airborne Self-Protection Jammer: 1B$ oltre il budget, – 4 anni di ritardo e operativo marginalmente • Los Angeles County: 18M$ di sistema, successivamente – riscritto, produce danni per 10M$ • Blue Cross Blue Shield: sistema da 200M$ fa danni per 60M$ e fa fuggire 35 000 assicurati L’aumento della complessita’ del software 1982 - MS DOS 1.1 - 180 Kbytes 1987 - MS DOS 3.31 - 798 Kbytes 1991 - MS DOS 5.0 - 2 Mbytes 1994 - MS DOS 6.2 - 5.8 Mbytes 1993 - MS Windows 3.11 - 16.4 Mbytes non compressi 1995 - MS Windows 95 - 32.8 Mbytes compressi 1999 - MS Windows 98 SE - 109 Mbytes compressi 2000 - MS Windows 2000 - 412 Mbytes compressi Il peso della complessità – Troppi fattori da considerare Il peso della complessità – Troppi livelli informatici da padroneggiare L’evoluzione del numero di transistor nei processori - La Legge di Moore - 1 La legge di Moore - 2 • La potenza di un processore raddoppia ogni 18 mesi a parita’ di costo Crisi del Software ed Ingegneria del Software • Difficolta’ di reggere il confronto con l’hardware: – Nella diminuzione dei prezzi – Nella maturita’ come prodotto industriale – Nella qualita’ • Necessita’ di metodi ingegneristici paragonabili a quelli usati nello sviluppo dell’hardware Rapporto fra i costi di hardware e software Ingegneria • “Studio e realizzazione delle tecniche con cui si applicano le enunciazioni teoriche e le norme di funzionamento di una disciplina, allo scopo di evitare uno sviluppo casuale e frammentario” (Vocabolario Zingarelli) Ingegneria e Qualita’ del Software • Qualita’ del Prodotto • Qualita’ del Processo • Qualita’ del Progetto Ingegneria e Qualita’ sono i segni di una Disciplina che matura Esempio: Il Ciclo di Vita del Software usato da Microsoft Qualita’ del Processo - Capability Maturity Model • Modello di Riferimento • Per migliorare il processo di sviluppo del software • Definisce cinque livelli di maturita’ • Usato negli Stati Uniti • Obbligatorio per chi sviluppa per il Dipartimento della Difesa • In Europa, SPICE usa un approccio simile I Livelli e le caratteristiche del CMM Livelli CMM e Aree chiave Qualita’ del Processo - ISO 9001 • Standard ISO (Internazionale) • In grado di certificare la qualita’ di un processo • Definisce due stati (Certificato/Non Certificato) • Usato a livello internazionale • Obbligatorio per chi lavora per l’E.S.A. e per enti che richiedono qualita’ certificata il Sistema della Qualita’ in Italia e l’ISO 9001 La famiglia di norme ISO 9001 La famiglia di norme - 2 Le norme da usare Le ISO 9000 sono basate sul concetto che ogni attività è realizzata mediante un processo CATEGORIE GENERALI DI PRODOTTO (ISO 9000-1 par. 4.4) Si identificano 4 categorie generali di prodotto: • Hardware; • Software; • Materiali da processo continuo; • Servizi. SITUAZIONI DEL SISTEMA QUALITÀ (ISO 9000-1 par. 6) Un fornitore può scegliere di utilizzare le ISO 9000 secondo due approcci: • “stimolato dalla direzione”, • “stimolato dalle parti interessate”, ISO 9001 e Qualita’del Processo • Riferimento primario per la qualità: la soddisfazione del cliente • Il processo è il modo con cui un’organizzazione soddisfa i suoi clienti • La qualità dei processi è componente essenziale • Obiettivo fondamentale per la qualità: non solo conformità, ma anche miglioramento continuo • La valutazione della qualità del processo non si limita a chiedere se i processi sono definiti, documentati ed attuati in conformità a quanto prescritto, ma chiede se “i processi sono efficaci nel fornire i risultati attesi” ASPETTI DELLA QUALITÀ (ISO 9000-1 par. 4.5) La qualità del processo contribuisce alla qualità di un prodotto attraverso la: • Qualità nella definizione delle esigenze relative al prodotto. • Qualità nella progettazione del prodotto. • Qualità nella conformità del prodotto al progetto. • Qualità nel supporto al prodotto (lungo l’intero ciclo di vita). SITUAZIONI DEL SISTEMA QUALITÀ (ISO 9000-1 par. 6) Nel valutare l’offerta di un prodotto il cliente considera dei fattori aggiuntivi: • Qualità nello stato e strategia di mercato del fornitore • Qualità nello stato e strategia finanziaria del fornitore • Qualità nello stato e strategia di gestione delle risorse umane Progettazione di un processo ISO 9001 - 1 1. 2. 3. 4. 5. 6. 7. Elenco delle principali attività dell’organizzazione, dei dati, informazioni e documenti esistenti sugli stessi. Analisi di tali attività e scelta tra i sistemi qualità ISO 9000 quello più appropriato Identificazione dei collegamenti tra il sistema qualità di riferimento scelto e attività principali svolte. Enunciazione della politica e degli obiettivi per la qualità. Definizione attività, tappe e tempi per raggiungere tali obiettivi. Identificazione e comunicazione al personale coinvolto dei loro ruoli e compiti per lo sviluppo, attuazione, gestione e controllo del sistema qualità. Definizione di struttura e configurazione dei documenti per la qualità. Progettazione di un processo ISO 9001 - 2 8. Definizione del processo per la preparazione delle procedure e del manuale per soddisfare i requisiti del sistema qualità ISO 9000 9. prescelto. 10. Addestramento del personale e sperimentazione di tali procedure. 11. Utilizzazione delle informazioni di ritorno, anche attraverso delle verifiche ispettive, per migliorare le attività e le procedure e consolidare la documentazione. 12. Attuazione del sistema qualità, misurazione periodica dei risultati per verificarne l’efficacia e l’efficienza del sistema stesso rispetto alla politica ed obiettivi. Clausola Iso 9001 e attivita’ Clausola Iso 9001 e attivita’ - 2 Clausola Iso 9001 e attivita’ - 3 Clausola Iso 9001 e attivita’ - 4