Qualità del Software PDF - Definizione, Misurazione e Problematiche
Document Details

Uploaded by TrustedLucchesiite6255
Università di Bari Aldo Moro
Tags
Related
- Gestione della Qualità del Software PDF
- Introduzione alla Misurazione e il suo legame con la Qualità PDF
- Misurazione e Qualità PDF - Ingegneria del Software
- Modelli e metodi per la qualità del software PDF - Appunti Universitari
- Modelli e Metodi per la Qualità del Software - PDF
- Metodi e Modelli per la Qualità del Software PDF
Summary
Questo documento esplora il concetto di qualità del software, partendo da diverse prospettive e definizioni. Vengono analizzati i differenti livelli di astrazione e le problematiche legate alla misurazione della qualità, includendo tipologie di problemi, metodi e standard di riferimento.
Full Transcript
1. Qualità del Software Cosa si intende per Qualità? Termine Ambiguo -> molte interpretazioni Ragioni: Concetto non semplice -> multidimensionale Dimensioni: Entità di interesse Punto di vista entità Attributi di qualità in grado di misura...
1. Qualità del Software Cosa si intende per Qualità? Termine Ambiguo -> molte interpretazioni Ragioni: Concetto non semplice -> multidimensionale Dimensioni: Entità di interesse Punto di vista entità Attributi di qualità in grado di misurare l'entità Diversi livelli di Astrazione: Concetto di qualità usato in maniera più generale Per indicare un aspetto più specifico di un prodotto Concetto di vita quotidiana: Diverso se usato in ambito popolare o professionale Prospettiva Popolare Qualità come caratteristica immateriale/non tangibile -> Opinioni, commenti, giudizi (non misurabile concretamente). Buona o Cattiva Qualità Non quantificata o gestita Qualità basata sulla lussuosità/costo (prodotto poco costoso -> di poca qualità) Prospettiva Professionale Definiscono qualità rispetto a: Conformità con i requisiti -> chiaramente definiti. Verificare durante lo sviluppo se il prodotto soddisfa i requisiti. Se così non fosse è un difetto Adeguatezza con l'utilizzo -> Prodotto deve soddisfare esigenze utente e le aspettative Cos'è la Qualità del Software Un software è considerato di qualità perchè non ha difetti (bug) di tipo funzionale. Per esprimere questa definizione si adottano misure/metriche [quantitative-qualitative] Tasso di difetti -> n.difetti/PF (processo o funzione), n.difetti/KLOC (Kilo Lines of code) Affidabilità: n.fallimenti (operazioni fallite) / N. ore di funzionamento Soddisfazione degli utenti: % utenti soddisfatti (tramite indagini) Definizione di Qualità del Software ISO -> Insieme di proprietà e di caratteristiche desiderate (per un processo, prodotto, servizio software). Scopo: Soddisfare committente con requisiti impliciti/espliciti Ritorno economico investitori Equilibrio tra tecnica, costo e tempo di esecuzione del processo Misurazione -> prende info su attributi di entità. Attributo -> aspetto o proprietà specifica di un'entità Entità -> oggetto o evento del mondo reale (processo, prodotto, risorsa) Descritta con caratteristiche specifiche. Deve essere anche "Bug Free"-> privo di errori che compromettono funzionamento e sicurezza. Qualità del software Qualità Funzionali ->Soddisfazione dei requisiti funzionali, valutato col Testing Qualità Strutturali -> Soddisfazione dei requisiti non funzionali da parte dell'architettura, valutato con l'analisi architetturale Misurare la Qualità Qualità di un prodotto software -> misura in cui il prodotto soddisfa la sua specifica. Nel software: Entità visibili e misurabili -> processi, risorse impiegate e attributi dei prodotti Attributi Esterni -> visibili all'utente Attributi Interni -> visibili agli sviluppatori Tipi di problemi nel software Failure -> comportamento non previsto nei requisiti Fault -> difetto del sorgente, causa di un failure Error -> causa di un difetto (es. errore umano nell'interpretare una specifica) Perchè il software è difettoso? Umani che commettono errori -> inevitabile Programmatori esperti -> errori ogni 10 righe 50% degli errori individuati durante la compilazione alcuni tramite il testing 15% presenti anche durante la consegna al cliente. Da dove arrivano i difetti 56% dai Requisiti 27% dal Design 7% dal Codice 10% da Altro Il problema della qualità del software Assicurare qualità è difficile. Esistono: Attività come il Testing Metodi per la qualità del prodotto Metodi per la qualità del processo Come introdurre la qualità Si inizia dallo Scopo (goal) di chi vuole valutare -> Avere Obiettivi chiari Domande specifiche sull'entità Definire Metriche per analizzare e quantificare le qualità richieste rispetto agli obiettivi Queste devono correlarsi ai Goals dell'organizzazione -> Misurazioni utili e costruttive Le metriche devono coincidere con le diverse parti interessate (sviluppatori, utenti, progettisti) Pianificazione di un modello di Qualità 1. Sviluppo dei goal 2. Generazione di domande -> definiscono i goal 3. Specificare le misure -> in base ai goal 4. Meccanismi operativi -> sviluppato dalle misure adottare 5. Raccoglimento dati -> con seguente analisi 6. Analisi dati post-mortem -> per il futuro Attività di sviluppo del software Obiettivi di Verifica e Validazione Verifica -> confronto di un prodotto con i suoi requisiti Validazione -> accettazione del prodotto da parte del committente Verifica Non è una fase separata dal processo Opportuno sia effettuata da persone diverse Documentazione controllata da persone diverse dagli autori (il controllo va documentato) Due tipi di Verifica: Ispezione/Code Review Testing Attività legate alla qualità Testing -> investigazione sui rischi connessi all'esecuzione del sw Misurazione -> indicatori di qualità mediante ispezione e esecuzione Verifica -> analisi delle funzioni rispetto la specifica Validazione -> accettazione da parte degli stakeholder Certificazione -> analisi delle funzioni rispetto ai requisiti Costo della qualità (ISO) Costi che si sostengono per adeguare la qualità del prodotto alla qualità richiesta. Costi principali: Per fare bene le cose (conformità) Di prevenzione -> prevenire gli insuccessi Di accertamento -> per controllo e collaudi Per aggiustare le cose sbagliate (non conformità) Insuccessi interni -> prodotto non soddisfa requisiti di qualità prima della consegna Insuccessi Esterni -> prodotto non soddisfa requisiti di qualità post consegna (costi di manutenzione/riparazione, garanzia/resi ecc...) Standardizzazione Enti di Standardizzazione (ISO) -> integrano vari approcci alla definizione di qualità Consapevolezza della qualità -> attributo che varia in base: Al Percettore Dal contesto di percezione Dallo scopo e costo del prodotto ISO/IEC 9126: Per i prodotti software. ISO 9000 e ISO 12207: Per i processi.