Gestione della Qualità Qualità del prodotto Qualità del processo Certificazione
Cosa si intende per “qualità”? I punti problematici per un sistema software La qualità software non è solo assenza di difetti del prodotto C’è contrapposizione tra requisiti di qualità legati al cliente (efficienza, affidabilità) e requisiti di qualità legati allo sviluppo software (mantenibilità, riusabilità, ecc.) Alcuni requisiti di qualità sono difficilmente specificabili in modo non ambiguo Le specifiche software sono spesso incomplete e a volte non consistenti, ma non possiamo aspettare che le specifiche migliorino prima di preoccuparci della qualità del prodotto
Qualità del prodotto software Il prodotto deve soddisfare la sua specifica I requisiti sono il fondamento su cui misurare la qualità Il prodotto deve essere conforme a standard di sviluppo documentati gli standard definiscono i criteri cui attenersi nello sviluppo del software Deve presentare le caratteristiche che ci si aspetta da un prodotto sw realizzato professionalmente Esiste una famiglia di requisiti impliciti (ad esempio la manutenibilità) che devono essere rispettati
Attributi di qualità del prodotto Legati alle caratteristiche operative Correttezza Affidabilità Efficienza Integrità Usabilità Provabilità Legati alla capacità di subire modifiche Manutenibilità Flessibilità Legati all’adattabilità a nuovi ambienti Portabilità Riusabilità Interoperabilità
Qualità di prodotto e di processo La qualità del prodotto dipende dalla qualità del processo di sviluppo? Sì, se vale anche il viceversa!
Attività legate alla “qualità” Garanzie di qualità Stabilire procedure di tipo organizzativo e standard di qualità Pianificazione Selezionare le procedure applicabili ad un determinato progetto ed adattarle al caso specifico Controllo di qualità Assicurarsi che le procedure e gli standard pianificati siano effettivamente rispettati dal team di sviluppo software La responsabilità della gestione della qualità deve essere tenuta distinta dalla responsabilità di gestione del progetto
Sistema di Qualità Per sistema di qualità intendiamo l’insieme delle strutture manageriali e di responsabilità necessarie per assicurare che il software realizzato abbia tutte le caratteristiche di qualità concordate nelle prime fasi del processo tra committente e team di sviluppo I due sistemi di qualità (cliente e fornitore) devono essere integrati per ottenere i migliori risultati
Ingredienti di un sistema di qualità (1) Responsabiità del manager Sistema di qualità Revisione del contratto Controllo della progettazione Controllo dei documenti Acquisti Prodotti forniti dal fornitore
Ingredienti di un sistema di qualità (2) Identificazione dei prodotti e “tracciabilità” Controllo del processo Ispezioni e test Ispezioni, misure, strumenti di test Stato dell’ispezione e del test Controllo dei prodotti non conformi
Ingredienti di un sistema di qualità (3) Azioni correttive Gestione, memorizzazione, confezione e consegna Gestione dati sulla qualità Controlli interni di qualità Formazione Servizi Tecniche statistiche
Standard relativi al software Standard di prodotto: definiscono le caratteristiche che tutte le componenti del prodotto devono poter esibire (ad es. uno stile comune di programmazione). Standard di processo: definiscono come il processo di sviluppo del software deve essere impostato. Permettono di far propria le migliori esperienze e di evitare la ripetizione di errori, e forniscono dei frameworks per garantire la qualità Supportano la continuità: nuovo personale può integrarsi meglio in un’organizzazione comprendendone gli standard
Standard di prodotto / di processo
Standard e Certificazioni Il bisogno di definire delle normative per produrre un prodotto (non solo software) di qualità ha motivato la nascita di numerosi enti normatori, ad es. ANSI (USA) CEN (Comitato europeo di certificazione) ETSI (Istituto Europeo di Normazione delle telecomunicazioni) IEEE (Comitato USA per l’Information Technology) ISO (Organizzazione Internazionale per la Normazione) UNI (Ente Nazionale Italiano di Unificazione
ISO È una federazione mondiale (fondata nel 1947) di enti nazionali di standardizzazione di oltre 100 paesi Lo scopo è quello di promuovere lo sviluppo della standardizzazione nel mondo per facilitare lo scambio internazionale di merci e servizi e di sviluppare la cooperazione di attività intellettuali e scientifiche I progetti portati avanti dall’ISO prendono il nome di International Standard È organizzato in 164 comitati tecnici, 648 sottocomitati, 1606 gruppi di lavoro e 26 gruppi di studio http://www.iso.ch
La serie di standards ISO 9001 è quello più rilevante per il sw “Descrive sistema di qualità da usare quando un contratto tra due contraenti richiede la capacità del fornitore di progettare e fornire prodotti” ISO 9002 modello che si applica a produzione e installazione ISO 9003 modello che si applica all’ispezione finale e test
Accreditamento E` un importante passo verso la qualità, consistente nel certificare che un produttore si attiene allo standard ISO 9001 Esistono enti a livello nazionale riconosciuti per l’accreditamento
Passi tipici dell’accreditamento Questionario per esaminare il posizionamento Esame della documentazione del sistema di qualità (cartaceo) Visite ispettive in-loco ok esito ok condizionato non ok
Cosa significa in pratica? Definire gli standard di prodotto. Definire gli standard di processo, ovvero come sono organizzate le revisioni, come sono gestiti i risultati ecc. Monitorare il processo di sviluppo per assicurarsi che questi standard siano seguiti Fornire un rapporto sul processo software, consultabile sia da parte del management che da parte dell’acquirente del prodotto software.
Struttura di un Quality Manual La norma ISO 9000-3 dà le seguenti indicazioni senza voler essere né restrittiva né vincolante: 1. SCOPO 2. RIFERIMENTI 3. DEFINIZIONI 4. STRUTTURA DEL SISTEMA DI QUALITÀ’: 4.1 Responsabilità della direzione; 4.2 Sistema di Qualità; 4.3 Verifiche interne all’organizzazione del Sistema di Qualità; 4.4 Azioni correttive; 5. ATTIVITA’ RELATIVE AL CICLO DI VITA: 5.1 Riesame del contratto; 5.2 Specifica dei requisiti del committente; 5.3 Pianificazione dello sviluppo;
5.4 Pianificazione della Qualità; 5.5 Progettazione e Realizzazione; 5.6 Prova e Validazione; 5.7 Accettazione; 5.8 duplicazione, consegna e installazione; 5.9 Manutenzione; 6. ATTIVITA’ DI SUPPORTO: 6.1 Gestione delle configurazioni; 6.2 Controllo della documentazione; 6.3 Documenti di registrazione della qualità; 6.4 Misure; 6.5 Regole, pratiche e convenzioni; 6.6 Strumenti e tecniche; 6.7 Approvvigionamenti; 6.8 Prodotti software inclusi; 6.9 Addestramento.
Revisione di qualità E’ il principale metodo per validare la qualità di un processo o di un prodotto Consiste in una verifica di gruppo di parte o di tutto il processo o sistema e della sua documentazione per individuare eventuali problemi: Ispezione per rimozione di errori (prodotto) Revisione per valutazione dello stato di avanzamento (prodotto e processo) Revisione di qualità (prodotto e processo)