Contenuti - Qualità e gestione della qualità - Qualità di prodotto - Qualità del software - Modelli della qualità del software - Esempio: ISO/IEC 9126 Definizione di qualità - Visioni della qualità - Intrinseca: conformità ai requisiti ed idoneità all’uso - Relativa: soddisfazione del cliente - Quantitativa: livelli di qualità e sua misura - Gestione della qualità Gestione della qualità - Dimensioni della gestione della Qualità - Pianificazione [della qualità] - Definizione di politica ed obiettivi [di qualità] - Controllo ed accertamento [della qualità] - Miglioramento [della qualità] Pianificazione della qualità - Premesse al controllo di qualità - Politiche e scelte strategiche (orizzontali) - Obiettivi del singolo progetto (verticali) - Strumenti di controllo - Per verifica e gestione Controllo della qualità - Modalità ed ambiti di controllo - Verifica e validazione finalizzate al collaudo - Conoscenza ed analisi del dominio Accertamento della qualità - Obiettivi e finalità - Verso l’esterno ? fornire certezze al committente - Verso l’interno ? fornire certezze alla direzione Qualità di ... - Prodotto bene o servizio, intenzionale o meno - Sistema insieme di elementi correlati od interagenti - Processo attività correlate finalizzate alla realizzazione di obiettivi - Organizzazione struttura con funzioni ed amministrazione proprie Classi di prodotti - Tangibili - Hardware (p.es. lavatrice) - Materiali (p.es. lamiera profilata) - Intangibili - Software (p.es. programmi o dati) - Servizi (p.es. formazione) - Classificazione ISO 9000 Requisiti - Dichiarati - Impliciti - Obbligatori La ricetta della qualità - Definire bene cosa deve essere realizzato - Come si controllerà - Controllare - Per conoscere ed intervenire - Per dare/avere confidenza - Per migliorare i risultati Il software - Applicazioni - Pacchetti (automazione aziendale) - Su commessa (sistema informativo aziendale) - Componenti - Librerie (pacchetti) - Middleware (su commessa) - Software di base - Sistemi operativi (Windows, Linux) - Gestori di servizi (DB, Web) Servizi software - Avviamento - Installazione e configurazione - Popolamento/migrazione dati - Supporto agli utenti - Formazione - Assistenza all’uso - Gestione - Supporto e monitoraggio - Elaborazione dati - Manutenzione (evoluzione, adattamento, correzione) Il software nella realtà - Con che cosa abbiamo a che fare? - Cos’è oggetto di progetto? - Sistemi software - Utilizzano software di base - Si integrano con componenti preesistenti ... - Comprendono componenti ad hoc o personalizzati - Cooperano con pacchetti di automazione aziendale - Prevedono servizi di avviamento, supporto e gestione Qualità certificata - Norme per i prodotti - Per tutelare il cliente rispetto all’uso od al valore di prodotti - FCC (Federal Communications Commission) - CE (Consumer Electronics) - OEM (Original Equipment Manufacturer) - DOC(G) - Carte dei servizi, … - Norme per i processi - Requisiti di una funzione aziendale - P.es.: ISO 9001 per il sistema di qualità aziendale - La norma esprime requisiti comuni Certificazione del software? - Esistono requisiti comuni? - Troppe variabili - Sistemi complessi e multiformi - Contesti di applicazione diversi - Dalla piccola azienda alla multinazionale - Dal laboratorio astronomico allo Shuttle - In generale, fallisce la ricerca - Di insiemi comuni di requisiti - Di livelli qualitativi accettabili per tutti Quali strumenti? - Seguire la ricetta (limitare la libertà creativa) - Definire bene cosa fare (P-D) - Controllare (C-A) - Analisi e definizione dei requisiti - Modelli per la qualità del software - Strumenti per la definizione dei sistemi - Metriche per definire livelli qualitativi - Controllo continuo del progetto - Rispetto dei vincoli contrattuali - Controllo e verifica delle attività e dei risultati Modelli della qualità software - Strumenti per la gestione della qualità - Valutazione dei prodotti - Visione dell’utente: problemi d’uso - Visione dello sviluppatore: problemi tecnici - Visione della direzione: problemi di costi - Un solo modello per committenti e fornitori - Per uniformare la percezione della qualità - Per uniformare la valutazione della qualità Caratteristiche del software - Legate all’uso - Visione del committente - La qualità è legata alla convenienza d’uso - Correttezza, affidabilità, efficienza, … - Legate alla produzione - Visione del fornitore - La qualità è vista in prospettiva dei servizi e del riuso - Manutenibilità, portabilità, riusabilità, … Modelli della qualità - Strategia tipica - Definizione di caratteristiche - Loro organizzazione in una struttura logica - Modello di Boehm (valore storico) - 22 caratteristiche di cui 11 “primitive” - ISO/IEC 9126:2001 - Software engineering - Product quality - Part 1: Quality model - 7 caratteristiche principali – 31 sottocaratteristiche ISO/IEC 9126:2001 - Strumento di definizione e valutazione - Organizzazione gerarchica delle caratteristiche - Definizione di metriche - Visioni della qualità - Qualità interna - Qualità esterna - Qualità in uso - Misura della qualità (ISO/IEC 9126-2,3,4) - Valutazione della qualità (ISO/IEC 14598) Caratteristiche di ISO/IEC 9126 - 7 caratteristiche principali - Funzionalità - Affidabilità - Usabilità - Efficienza - Qualità in uso - Manutenibilità - Portabilità - [Riusabilità non ancora sufficientemente consolidata] Qualità nel ciclo di vita - Qualità obiettivo - Soddisfacimento dei requisiti --> parzialmente implicita - Qualità richiesta - Sancita contrattualmente --> esplicita - Qualità progettata - Qualità stimata - Qualità consegnata Il processo di valutazione Riepilogo - Qualità e gestione della qualità - Qualità di prodotto - Qualità del software - Modelli della qualità del software - Esempio: ISO/IEC 9126 Riferimenti - ISO 9000:2000, Quality Management Systems - Fundamentals and vocabulary - ISO/IEC 9126:2001, Information Technology - Software product quality- Part 1: Quality model - ISO/IEC 14598:2001, Information Technology - Software Product Evaluation