Classificazione delle problematiche Anno accademico 2009/10 Ingegneria del Software mod. B Tullio Vardanega, tullio.vardanega@math.unipd.it SCD IS Nozioni principali Misurazione del valore di qualità Descrizione delle caratteristiche di qualità (ISO 9126) Affidabilità elevata Pianificazione Nominale Qualità del software Accertamento di qualità Verifica e validazione Attività e tecniche Statiche Dinamiche Altro Misurazione Fondamenti di misurazione Misure e metriche Tecniche di analisi delle misure Caratterizzazione dei difetti Altro uso dei dati di misura Corso di Laurea in Informatica, Università di Padova 1/26 Corso di Laurea in Informatica, Università di Padova 2/26 Premesse 1 Le problematiche di qualità software attraversano l intera disciplina dell ingegneria del software Tre processi ISO/IEC 12207 tendono esplicitamente ad accertamento e produzione di qualità software (SQA) Verifica e Validazione (V&V) Premesse 2 La qualità di un prodotto software finito riflette la qualità dei prodotti intermedi generati dai processi attuati Processo di sviluppo Attività: specifica, progettazione, codifica Prodotti: analisi dei requisiti software, progettazione logica e di dettaglio, codice sorgente, etc. Processo di verifica e di validazione Attività: analisi, tracciamento, verifiche, ispezioni Prodotti: piano di qualifica Corso di Laurea in Informatica, Università di Padova 3/26 Corso di Laurea in Informatica, Università di Padova 4/26 Cosa è la qualità di un prodotto? Premesse 3 Una quantificazione della garanzia che il prodotto soddisfa i suoi requisiti Questa definizione è problematica nel caso del software Competizione tra i requisiti di qualità di interesse del cliente (efficienza, affidabilità, ecc.) e del fornitore (manutenibilità, riusabilità, ecc.) Alcuni requisiti sono difficili da specificare in modo non generico o non ambiguo Le specifiche software sono spesso incomplete e talvolta anche contraddittorie Premesse 4 È difficile rispondere in modo convincente alla domanda Cos è la qualità software La definizione che ci siamo dati nel modulo A La totalità delle caratteristiche che determinano l idoneità del prodotto a soddisfare bisogni espliciti o impliciti Ulteriore difficoltà deriva dalla selezione di metriche e strumenti di misura idonei all accertamento di qualità Quali metriche e misure Quali strumenti di misurazione Corso di Laurea in Informatica, Università di Padova 5/26 Corso di Laurea in Informatica, Università di Padova 6/26 UniPD - 2009/10 - Ingegneria del Software mod. B 1
Concetti fondanti 1 Concetti fondanti 2 Il software come strumento nei confronti del sistema Non è fine ma mezzo Gli strumenti sono scelti in base alla loro adeguatezza tecnica e qualitativa Determinata sulla base di attributi noti e fissati a priori La specifica di tali attributi software va inclusa nella specifica dei requisiti Perché la qualità del prodotto è legata alla qualità dello strumento Software come strumento Ma il software è più di un semplice strumento Perché determina le prestazioni del sistema e ne influenza la qualità La specifica degli obiettivi funzionali del software tende a oscurare la caratterizzazione dei suoi requisiti di qualità Ma i bisogni dell utente comprendono anche il livello di qualità atteso o necessario Analizzare il ruolo dei requisiti di qualità espliciti e impliciti per determinare come soddisfare i bisogni dell utente Ma soddisfare i requisiti di qualità comporta costi significativi che occorre valutare e controllare Corso di Laurea in Informatica, Università di Padova 7/26 Corso di Laurea in Informatica, Università di Padova 8/26 La gestione della qualità 1 Particolarmente importante per sistemi complessi e/o di grande dimensione La documentazione di qualità registra i progressi effettuati nella direzione della qualità e consente continuità di intervento a fronte di variazioni nella composizione dei gruppi di lavoro Per sistemi più semplici la GdQ richiede meno documentazione ma più attenzione verso la creazione di cultura di qualità Attività di GdQ La gestione della qualità 2 (quality assurance) Stabilisce procedure organizzative e standard aziendali per la qualità Pianificazione di qualità Seleziona le procedure adatte a un particolare progetto e le adatta all uso Controllo di qualità Assicura che le procedure selezionate siano seguite da tutto il personale e da tutta l infrastruttura La GdQ è più efficace se viene mantenuta indipendente dalla gestione del progetto Corso di Laurea in Informatica, Università di Padova 9/26 Corso di Laurea in Informatica, Università di Padova 10/26 Pianificazione SQA Consigli pratici I processi di supporto di ISO/IEC 12207 apportano valore di qualità ai prodotti del processo di sviluppo Se posti nelle condizioni di operare con efficacia La pianificazione di qualità richiede La definizione degli attributi di qualità del prodotto L organizzazione dei processi necessari a soddisfarli Può aderire a standard interni o esterni ISO 9000, CMM(I), SPICE, ecc. conferiscono caratteristiche di qualità ai processi di sviluppo influenzando il piano di qualità I processi SQA e V&V accertano la qualità prevista e l effettiva attuazione delle attività che conferiscono qualità Definire standard di processo per le attività che conferiscono qualità P.es.,: revisioni, gestione di configurazione, gestione e valutazione delle non-conformità Accertare che gli standard adottati siano effettivamente seguiti nello sviluppo Redigere rapporti di progresso sulla qualità destinati al responsabile di progetto e al cliente Non usare pratiche inidonee Corso di Laurea in Informatica, Università di Padova 11/26 Corso di Laurea in Informatica, Università di Padova 12/26 UniPD - 2009/10 - Ingegneria del Software mod. B 2
L importanza degli standard Riconoscere, inquadrare e consolidare i comportamenti da seguire Per evitare il ripetere errori già visti e già fatti Best practices Formare un quadro compiuto di riferimento per istituire processi (S)QA efficaci I quali comportano controlli di adesione agli standard Garantire continuità culturale Il nuovo personale comprende come funziona l organizzazione aziendale osservando come gli standard interni sono applicati I problemi degli standard Possono essere ritenuti obsoleti e/o inadeguati da parte del personale che deve attuarli Rischiano di degradare in mera burocrazia Processi non automatizzati e svolti a mano causano impegno di documentazione tedioso e maggiormente esposto a errori Corso di Laurea in Informatica, Università di Padova 13/26 Corso di Laurea in Informatica, Università di Padova 14/26 Pianificazione V&V Stabilisce come gestire i processi V&V e il ruolo delle tecniche adottate per soddisfare i requisiti assegnati ai processi La comprensione del contributo specifico di ciascuna attività V&V è condizione essenziale alla pianificazione La sezione 7 di IEEE 1012:1998 Software Verification and Validation sancisce il contenuto ordinario di un piano V&V http://standards.ieee.org/reading/ieee/std_public/descr iption/se/1012-1998_desc.html Misurazione a fini di qualità 1 Il fondamento della strategia PDCA Migliorare la qualità del prodotto migliorando la qualità dei processi produttivi Consente di comprendere ciò che avviene durante l esecuzione dei processi di un progetto Comprendere per analizzare, correggere, migliorare I dati collezionati devono essere significativi, interpretabili e disponibili quando richiesti Dopo sono inutili! Corso di Laurea in Informatica, Università di Padova 15/26 Corso di Laurea in Informatica, Università di Padova 16/26 Misurazione a fini di qualità 2 Tipi di misurazioni Caratteristiche di qualità (ISO/IEC 9126) Modelli di affidabilità Caratterizzazione dei difetti P.es.: totale, frequenza di rilevazione, densità Livello di soddisfazione del cliente Caratteristiche del prodotto Esterne: dimensione, numero di requisiti, Interne (strutturali): complessità, modularità, SQA rispetto a V&V 1 SQA produce accertamento di qualità di prodotto assicurando Pianificazione dei processi adottati in conformità agli standard in vigore Attività e procedure eseguite secondo i piani Prodotti realizzati in modo conforme agli standard applicabili Attenzione centrata sui piani attuativi La valutazione della qualità delle uscite corrispondenti consente di chiudere il ciclo PDCA V&V controlla l adeguatezza delle uscite di un processo rispetto ai suoi ingressi Attenzione centrata sui prodotti Corso di Laurea in Informatica, Università di Padova 17/26 Corso di Laurea in Informatica, Università di Padova 18/26 UniPD - 2009/10 - Ingegneria del Software mod. B 3
SQA rispetto a V&V 2 Un esempio di ciclo PDCA Piani e standard Prodotti in ingresso In relazione alla qualità Sviluppo SQA (white box) Prodotti in uscita Valutazione Requisiti utente Standard Pianificazione Piani Controllo di processo Verifica di prestazione Norme V&V (black box) Valutazione Produzione Rapporti di valutazione Prodotti Corso di Laurea in Informatica, Università di Padova 19/26 Corso di Laurea in Informatica, Università di Padova 20/26 La funzione SQA 1 Una buona gestione di progetto dota i suoi processi di una logica interna di tipo PDCA Evolutiva perché a ciclo chiuso (feedback-loop) L elemento chiave è l emissione di piani (P) per l esecuzione dei processi Il processo SQA vi gioca un ruolo chiave Producendo il proprio piano di processo Valutando e approvando tutti gli altri piani Fornendo linee guida per l emissione di piani conformi con gli standard Assistendo il progetto nell applicazione degli standard adottati La funzione SQA 2 In progetti di piccole dimensioni Il responsabile di progetto può svolgere anche il ruolo di responsabile SQA Lo sforzo richiesto è modesto ma occorre trovare equilibrio tra percezioni di qualità potenzialmente in conflitto fra loro In progetti di grandi dimensioni La funzione SQA è svolta da personale specializzato e dedicato Sforzo considerevole e maggiore indipendenza Generalmente sotto la doppia autorità del responsabile di progetto e della struttura SQA aziendale Talvolta totalmente indipendente dall organizzazione del fornitore ma all esclusivo servizio del cliente Corso di Laurea in Informatica, Università di Padova 21/26 Corso di Laurea in Informatica, Università di Padova 22/26 SQA presso il fornitore 1 Durante la fase di specifica di sistema Assicurare che la fase successiva sia attivata solo dopo l emissione di requisiti utente Chiari, coerenti, completi (rispetto alle caratteristiche di qualità attese), verificabili Accertare presenza e adeguatezza di tutti i piani di processo previsti Piano di gestione del progetto software Piano di configurazione software Piano di verifica e validazione (di qualifica) Piano di accertamento di qualità software SQA presso il fornitore 2 Durante la fase di analisi dei requisiti Accertare l adeguatezza della metodologia (di analisi, di formalizzazione) adottata Rispetto al problema Rispetto al grado di formalismo Meglio uno standard riconosciuto di una prassi interna Rispetto alle conoscenze del personale Accertare l applicazione corretta Della metodologia di sviluppo Dei piani di processo Corso di Laurea in Informatica, Università di Padova 23/26 Corso di Laurea in Informatica, Università di Padova 24/26 UniPD - 2009/10 - Ingegneria del Software mod. B 4
SQA presso il fornitore 3 Durante la fase di sviluppo del sistema Aiutare a contenere la complessità del progetto Verificare che la fattibilità delle componenti principali sia stata dimostrata dal progettista Assicurare che il progetto soddisfi le caratteristiche di qualità attribuite al prodotto Accertare l applicazione corretta Della metodologia di sviluppo Dei piani di processo SQA presso il fornitore 4 Durante la fase di verifica e validazione Accertare la qualità di codice e documentazione Sia prodotto che riusato Accertare l adeguatezza della campagna di V&V Piano, strategia, strumenti, procedure, documentazione Quantitativamente, mediante l utilizzo di metriche P.es.,: densità di difetti rilevati per modulo, per fase di verifica, per ciclo di verifica Accertare l esecuzione delle azioni correttive concordate nelle revisioni interne ed esterne Corso di Laurea in Informatica, Università di Padova 25/26 Corso di Laurea in Informatica, Università di Padova 26/26 UniPD - 2009/10 - Ingegneria del Software mod. B 5