Software Product Quality ISO 25000 PDF
Document Details
![ValiantFairy1879](https://quizgecko.com/images/avatars/avatar-10.webp)
Uploaded by ValiantFairy1879
Università degli Studi di Bari
null
null
Tags
Summary
This document provides an overview of software product quality and the related ISO standards, specifically ISO 9126, 14598, and 25000. It covers aspects like defining software products, quality characteristics (Functionality, Reliability, Usabilty, etc.), quality models, and the evaluation process, focusing on the perspective of users (external quality), developers (internal quality), and general guidelines.
Full Transcript
Software Product Quality ISO 25000 Definizione di Prodotto Software ðProdotto software: q Una serie di istruzioni fornite ad un computer per fargli realizzare determinate operazioni rispettando i requisiti concordati con il cliente Requisiti funzionali e non funziona...
Software Product Quality ISO 25000 Definizione di Prodotto Software ðProdotto software: q Una serie di istruzioni fornite ad un computer per fargli realizzare determinate operazioni rispettando i requisiti concordati con il cliente Requisiti funzionali e non funzionali (prestazioni che deve assicurare il prodotto, capacità di essere user friendly grazie ad una grafica particolare, accessibilità da parte dei disabili, tecnologia da utilizzare, sicurezza etc.) q Standard di qualità di prodotto: ISO 9126 Il prodotto software è l’insieme di programmi, procedure, regole, documenti, pertinenti all’utilizzo di un sistema informatico ISO per la qualità del software ð La ISO ha emesso norme che definiscono il modello di qualità del software in vari contesti di utilizzo: q ISO 9126: Software engineering product quality. Modello di riferimento per definire le caratteristiche di qualità del software e le metriche per la valutazione della qualità che il software possiede q ISO 14598: guida la valutazione della qualità del software (secondo un processo ben definito) secondo i criteri 9126 q ISO 25000: Software Quality Requirements and Evaluation (SQuaRE) integra ISO9126 e ISO 14598 per la valutazione della qualità di prodotto ISO 9126: utilizzo ð La ISO 9126 può essere utilizzata da acquirenti, sviluppatori, auditors, addetti all’assicurazione qualità secondo diverse prospettive, per vari scopi tra cui: q Definire i requisiti di qualità del software (quality goals) nei capitolati tecnici e/o nelle offerte tecniche che vengono prodotte in risposta ai capitolati; q Validare la completezza di un documento di specifica dei requisiti e/o progettazione del software q Identificare obiettivi che vanno soddisfatti dal disegno tecnico del software q Identificare criteri di assicurazione della qualità q Identificare criteri di accettazione, test e collaudo del software ISO 9126: struttura ðLa norma si compone delle seguenti parti: q ISO/IEC 9126-1: Il modello delle caratteristiche e sottocaratteristiche di qualità del software q ISO/IEC 9126-2: le metriche per la misura della qualità esterna q ISO/IEC 9126-3: le metriche per la misura della qualità interna q ISO/IEC 9126-4: le metriche per la misura della qualità in uso Struttura del modello 9126 ðLa 9126-1 definisce un modello a 4 livelli: q Tre punti di vista sulla qualità del software (esterno, interno, in uso) che qualsiasi progetto di sviluppo deve prendere in considerazione e soddisfare q I principali attributi (requisiti qualitativi) che qualificano un software secondo tre punti di vista q Per ogni attributo, le sottocaratteristiche (requisiti quantiativi misurabili) che la rappresentano e che dovranno essere misurate per valutare il livello di qualità effettivamente raggiunto nel software q Le metriche per effettuare le misure La Qualità del Software secondo ISO 9000: IEC 9126 Appropriatezza Accuratezza Interoperabilità Funzionalità Sicurezza Maturità Affidabilità Tolleranza ai difetti Recuperabilità Misure Comprensibilità Usabilità Apprendibilità Operatività Efficienza Consumo di tempo Consumo di risorse Analizzabilità Manutenibilità Modificabilità Stabilità Portabilità Testabilità Adattabilità Installabilità Conformità Sostituobilità DIB 7 Un Esempio di Modello Eseguibile Misura Nr. di fault / Tempi di chiusura / Criterio Tempi di modifica / Tasso di fault Correttezza Fattor Grado di test / Copertura di e statement / Completezza del piano di test Manutenibilità Testabilità Sforzo / Impegno uomo speso Espandibilità Nr di modifiche / Sforzo di modifica / Dimensione di modifica / Tasso di modifica DIB 8 3 punti di vista sulla qualità ð A determinare la qualità complessiva di un software occorrono 3 punti di vista q IN USO (percepita): esprime l’efficacia ed efficienza con cui il software serve le esigenze dell’utente, ed è correlata alla percezione diretta dell’utente q INTERNA: esprime la misura in cui il codice software possiede una serie di attributi statici, indipendentemente dall’ambiente di utilizzo e dall’utente. Qualità tecniche interne del prodotto che gli sviluppatori devono conseguire per dare allo stesso le qualità esterne desiderate (riuso, dimensione, funzionalità, accoppiamento, coesione) q ESTERNA: esprime il comportamento dinamico del software, nell’ambito d’uso. Capacità e caratteristiche tangibili che il prodotto mostra ai suoi utilizzatori (manutenibilità, portabilità, usabilità, affidabilità) ð I tre punti di vista si influenzano a vicenda: non può esservi qualità percepita positivamente dall’utente senza che vi sia una buona qualità intrinseca al codice e buone prestazioni. Qualità Interna ð La qualità interna rappresenta le proprietà intrinseche del prodotto (quelle misurabili direttamente sul codice sorgente). Si realizza a partire da: q Requisiti utente (external quality requirements) che rappresentano le specifiche di qualità così come le dà l’utente fornendo il primo input al progetto q Le specifiche tecniche (internal quality requirements) che rappresentano la qualità richiesta dall’utente tradotta dallo sviluppatore nell’architettura del software, nella struttura del programma, nelle interfacce del software verso l’utente Qualità Esterna ðLa qualità esterna è quella rappresentata dalle prestazioni del prodotto e dalle funzionalità che offre (il prodotto è visto come black box da testare) q Riguarda il comportamento dinamico del software in un dato ambiente operativo e dipende strettamente dai requisiti del cliente q Il software è calato in un ambiente (environment). Le caratteristiche di qualità esterne del software lo qualificano in relazione all’ambiente e premettono di osservarne il comportamento mentre è utilizzato operativamente Qualità In Uso ðLa qualità in uso riguarda il livello con cui il prodotto si dimostra utile all’utente nel suo contesto di utilizzo in particolare la capacità del prodotto di dare efficacia ed efficienza al lavoro dell’utente a fronte di una sicurezza di utilizzo e di una soddisfazione nel fare uso del prodotto ðÈ una misura della interazione tra utente e prodotto in un determinato contesto d’uso La qualità del software nel ciclo di vita… ð La qualità di un prodotto software dipende dalla qualità del processo di sviluppo adoperato e dalla maturità dell'organizzazione che lo produce, con tecniche e strumenti adeguati, determinando una sequenza logica di azioni lungo il ciclo di vita. …La qualità del software nel ciclo di vita ð Il focus sulla qualità cambia durante il ciclo di vita. q All’inizio, durante la raccolta ed analisi dei requisiti, la qualità è specificata dai requisiti utente, soprattutto da un punto di vista “esterno” e funzionale. q Nella fase di progettazione, la qualità esterna si traduce in un disegno tecnico, confrontandosi con il punto di vista degli sviluppatori sulla qualità interna del software e completandosi con i requisiti “impliciti” che il software deve rispettare. q La qualità finale (quella in uso) deve essere quella appropriata per gli utenti ed il contesto d’uso. Non esiste una qualità perfetta ed “assoluta”. Esiste quella necessaria e sufficiente per un dato contesto (la qualità è relativa). Caratteristiche Esterne ed Interne ð 6 caratteristiche rappresentano la qualità esterna ed interna di un prodotto software Le Sottocaratteristiche ð Le 6 caratteristiche principali sono ulteriormente specificate da 27 sottocaratteristiche Caratteristiche interne/esterne… ð Funzionalità: capacità di fornire servizi tali da soddisfare, in determinate condizioni, requisiti funzionali espliciti o impliciti (il software fa ciò per fare il quale è stato acquistato). Le sottocaratteristiche correlate sono: q Adeguatezza: presenza di funzioni appropriate per compiti specifici che supportano obiettivi dell’utente. q Accuratezza: capacità di fornire risultati corretti in accordo con i requisiti dati dall’utente. q Interoperabilità: capacità di interagire con altri sistemi. q Sicurezza: capacità di proteggere programmi e dati da accessi non autorizzati e di consentire quelli autorizzati. … Caratteristiche interne/esterne… ð Affidabilità: capacità di mantenere le prestazioni stabilite nelle condizioni e nei tempi fissati (il software reagisce bene a variazioni esterne); le sottocaratteristiche correlate sono: q Maturità (robustezza): capacità di evitare fermi della applicazione (failure) a seguito di malfunzioni (fault). q Tolleranza errori: capacità di mantenere determinati livelli di prestazione in caso di malfunzioni (non degrado). q Recuperabilità: capacità e velocità, in caso di malfunzioni, di ripristinare dei livelli di prestazione predeterminati e di recuperare i dati. … Caratteristiche interne/esterne… ð Usabilità: capacità di essere compreso, appreso, usato con soddisfazione dall’utente in determinate condizioni d’uso (il software gestisce bene l’interazione con gli utenti); le sottocaratteristiche correlate sono: q Comprensibilità: capacità di ridurre l’impegno richiesto agli utenti per capirne il funzionamento e le modalità di utilizzo. q Apprendibilità: capacità di ridurre l’impegno richiesto agli utenti per impararlo ad usare. q Operabilità: capacità di mettere in condizione gli utenti di farne uso per i propri scopi e controllarne l’uso. q Attrattività/Piacevolezza: capacità di essere piacevole per l’utente che ne fa uso. … Caratteristiche interne/esterne… ðEfficienza: rapporto fra prestazioni e quantità di risorse utilizzate, in condizioni definite di funzionamento (il software usa bene le risorse disponibili); le sottocaratteristiche correlate sono: q Comportamento rispetto al tempo: adeguati tempi di risposta, tempi di elaborazione e throughput rates per eseguire le funzioni richieste, sotto determinate condizioni. q Uso di risorse: utilizzo di una quantità e di una tipologia di risorse adeguate per eseguire le funzioni richieste, sotto determinate condizioni. … Caratteristiche interne/esterne… ð Manutenibilità: capacità di essere modificato con un impegno contenuto (per evoluzioni e/o correzioni o adeguamenti); le sottocaratteristiche correlate sono: q Analizzabilità: capacità di limitare impegno richiesto per diagnosticare carenze o cause di malfunzionamenti, o per identificare parti da modificare. q Modificabilità: capacità di limitare l’impegno richiesto per modificare, rimuovere errori o sostituire componenti. q Stabilità: capacità di ridurre il rischio di comportamenti inaspettati a seguito della effettuazione di modifiche. q Testabilità: capacità di essere facilmente testato per validare le modifiche apportate. … Caratteristiche interne/esterne ð Portabilità: facilità con cui il software può essere trasferito da un ambiente operativo ad un altro; le caratteristiche correlate sono: q Adattabilità: capacità di adattarsi a nuovi ambienti operativi limitando la necessità di apportare modifiche. q Installabilità: capacità di ridurre l’impegno richiesto per installarlo in un particolare ambiente operativo. q Coesistenza: capacità di coesistere con altri software nel medesimo ambiente, condividendo risorse. q Sostituibilità: capacità di essere utilizzato al posto di un altro software per svolgere gli stessi compiti nello stesso ambiente. La qualità in uso ð La qualità in uso è rappresentata da 4 caratteristiche, che rappresentano il punto di vista dell’utente sul software. … La qualità in uso ð Efficacia, la capacità di supportare un utente nel raggiungere i suoi obiettivi con accuratezza e completezza in un dato contesto. ð Produttività, la capacità di supportare un utente nello spendere l’appropriata quantità di risorse in relazione all’efficacia dei risultati da raggiungere. ð Soddisfazione, la capacità di soddisfare un utente in un dato contesto d’uso. ð Sicurezza, la capacità di raggiungere accettabili livelli di rischio per le persone, l’ambiente di utilizzo, le attività dell’utilizzatore, in un dato contesto d’uso. Overview 9126 Caratteristiche vs Punti di Vista Interdipendenza tra le caratteristiche ð Nella 9126 non è possibile separare nettamente le varie caratteristiche, rispetto ai loro effetti sul software. ð Diverse caratteristiche e sottocaratteristiche interne ed esterne (ad es: la completezza, accuratezza, la fault tolerance) influenzano la qualità in uso. ð Un problema rilevato nell’uso (ad es. il non poter completare una operazione utente) può essere riferito a caratteristiche di qualità esterne (ad es. la affidabilità o l’operabilità) e/o a caratteristiche interne (un errore nelle strutture di decisione del codice). Uso integrato delle metriche … ð Esistono diverse relazioni ed interdipendenze tra le tre classi di metriche. ð Molte delle caratteristiche 9126 possono essere misurate contemporaneamente da metriche interne ed esterne. ð Ad es. la "affidabilità" può essere misurata esternamente rilevando il numero di errori durante l’esecuzione del prodotto in un dato periodo di osservazione ed internamente ispezionando il codice sorgente per verificare il livello di tolleranza agli errori che possiede. … Uso integrato delle metriche ð Un problema rilevato nell’uso di un prodotto (ad es. l'impossibilità per un utente di completare correttamente una operazione) può essere riferito sia a caratteristiche di qualità esterne (ad es. la affidabilità o l’operabilità, sottocaratteristica della usabilità) che a caratteristiche interne (un errore nelle strutture di decisione del codice). ð La qualità va quindi misurata come combinazione delle misure riferite alle tre qualità, in modo da coprire i diversi punti di vista sulla qualità. Le metriche nel ciclo di vita del software ð Utilizzo metriche nel ciclo di vita: q Un committente può valutare la convenienza a scegliere un determinato prodotto usando metriche per la valutazione della affidabilità. q Uno sviluppatore dovrà disporre di metriche di funzionalità per verificare la corretta implementazione nei vari semilavorati prodotti. q Un manutentore può valutare lo sforzo ed il rischio di modificare un programma utilizzando metriche di manutenibilità. q Chi dovrà valutare la capacità di migrazione di un prodotto in altri ambienti dovrà disporre di misure di portabilità. q Gli utenti dovranno poter misurare la usabilità e la efficacia del prodotto che è stato loro fornito. ISO 9126: applicabilità ð Il modello 9126 può essere utilizzato per definire i requisiti di ogni tipo di software, Custom, COTS, incluso il "firmware". ð La valutazione della qualità secondo la 9126 è possibile in ogni momento del ciclo di vita, dalla acquisizione, allo sviluppo (progettazione, codifica), alla manutenzione. ð Destinatari sono quindi tutti gli attori del ciclo di vita del software, utenti, sviluppatori, gestori ed addetti alla manutenzione, manager, auditors, ognuno secondo le proprie esigenze. ISO 14598: Processo per la valutazione di un prodotto software Verso la ISO 25000 (www.iso25000.com) ð La norma ISO/IEC 9126 è in corso di revisione. ð Il modello di qualità del software è confluito nel sistema di norma ISO 25000, nella norma 25010, senza modifiche. ð Le metriche sono definite nella sezione ISO 2502n, composta da più documenti che supporteranno la misurazione del software secondo i diversi punti di vista della qualità interna, esterna ed in uso, fornendo: q un modello di riferimento per rilevare le misure, q definizioni matematiche delle varie misure, primitive di misura, misure derivate, q una guida pratica alla misurazione. ISO 25000 … ðLa serie di standard ISO 25000 noto anche come SQuaRE (System and Software Quality Requirements and Evaluation) ha l’obiettivo di creare un framework per la valutazione della qualità di prodotti software ðÈ il risultato della evoluzione di standard: q ISO 9126: definisce un modello di qualità per la valutazione di un prodotto software q ISO 14598: definisce un processo per la valutazione di un prodotto software DEFINIZIONE E VALUTAZIONE DELLA QUALITÀ DEL SOFTWARE ISO/IEC 14598: Valutazione di prodotti ISO/IEC 9126: Caratteristiche di qualità e metriche 1. Guida Generale 2. Pianificazione e gestione 1. Caratteristiche di qualità 3. Processo 4. Processo 5. Processo per gli per gli per i sviluppatori acquirenti valutatori 2. Metriche 3. Metriche Esterne Interne 6. Modulo di valutazione DIB 37 … ISO 25000 … ðConsiste di 5 raggruppamenti q ISO/IEC 2500n – Quality Management Division: definiscono i modelli comuni, termini e definizioni di riferimento per i vari standard q ISO/IEC 2501n – Quality Model Division: definiscono modelli di qualità dettagliati per sistemi software, prodotti software, qualità in uso e dei dati q ISO/IEC 2102n – Quality Measurement Division: definiscono modelli di riferimento per rilevare le misure di prodotto, definizioni matematiche di misure di qualità (osservate, calcolate), suggerimenti per la loro applicazione … ISO 25000 ðISO/IEC 2503n - Quality Requirements Division: specifica dei requisiti di qualità che possono essere usati nel processo di elicitazione di requisiti di qualità di un prodotto software ðISO/IEC 2504n – Quality Evaluation Division: requisiti, raccomandazioni e lineeguida per la valutazione di prodotti software (framework, linee guida per sviluppatori, acquirenti, struttura della documentazione da utilizzare…) ISO/IEC 25010 ðIl modello di qualità definito nella ISO/IEC 25010 comprende 8 caratteristiche di qualità che devono essere prese in considerazione nella valutazione della qualità di un prodotto software ISO/IEC 25040 ðFornisce una descrizione del processo da adottare per valutare la qualità di un prodotto software e stabilisce i requisiti per l’applicazione del processo. È composto di 5 attività. q 1. Stabilire i requisiti per la valutazione q 2. Specificare la valutazione q 3. Progettare la valutazione q 4. Eseguire la valutazione q 5. Concludere la valutazione Attività 1: Restrizioni: Vincoli della valutazione Stabilire i requisiti per la valutazione: Output: Input: 1. Indicare lo scopo della Specificare lo scopo della Esigenze del cliente; valutazione valutazione Specifica dei requisiti della 2. Ottenere i requisiti della Specifica dei requisiti qualità del prodotto qualità del prodotto Specifica ad alto livello del software; 3. Identificare le parti del piano di valutazione Prodotto software da prodotto da valutare valutare; 4. Definire il rigore della valutazione Strumenti: Strumenti e metodi di valutazione; Documenti e standard di riferimento Attività 2: Restrizioni: Vincoli della valutazione Output: Specifica delle metriche selezionate; Input: Specificare la valutazione: Specifica dei criteri di Specificare lo scopo della 1. Selezionare i moduli di decisione per le metriche valutazione valutazione selezionate; Specifica dei requisiti 2. Definire i criteri di Specifica dei criteri Specifica ad alto livello del decisionali per la valutazione decisione per le metriche piano di valutazione 3. Definire i criteri di della qualità; decisione per la Specifiche ad alto livello del valutazione piano di valutazione rivisto; Strumenti: Strumenti e metodi di valutazione; Documenti e standard di riferimento Attività 3: Restrizioni: Vincoli della valutazione Input: Specifica dei requisiti della qualità di prodotto; Specifica dei requisiti per la valutazione; Output: Specifica delle metriche Specifica dettagliata del selezionate; piano di valutazione (budget, Specifica dei criteri di scopo); decisione per le metriche Progettare la valutazione: Specifica dei metodi di selezionate; 1. Pianificare le attività della valutazione (metodi, tools, Specifica dei criteri valutazione standard) decisionali per la valutazione della qualità; Specifiche ad alto livello del piano di valutazione rivisto; Strumenti: Risorse umane; Strumenti e metodi di valutazione; Documenti e standard di riferimento Attività 4: Restrizioni: Vincoli della valutazione Input: Specifica dettagliata del piano di valutazione; Specifica dei requisiti di qualità di prodotto; Specifica dei requisiti della Output: valutazione; Eseguire la valutazione: Risultati delle misure di Specifica dei criteri di 1. Rilevare le misure qualità; decisione per le metriche 2. Applicare i criteri di Risultati della valutazione; selezionate; decisione per le metriche Specifica dei criteri 3. Applicare i criteri decisionali per la decisionali di valutazione valutazione; Specificazione dei metodi di valutazione; Prodotto software da valutare Strumenti: Risorse umane; Strumenti e metodi di valutazione; Attività 5: Restrizioni: Vincoli della valutazione Concludere la valutazione: Input: 1. Esaminare i risultati della Specifica dei requisiti della valutazione Output: valutazione; 2. Creare la relazione di Relazione di valutazione sulla Specifica dettagliata del qualità del prodotto software valutazione piano di valutazione; 3. Controllare la qualità della Specificazione dei metodi di valutazione e ottenere un valutazione; feedback Risultati della valutazione 4. Valutazione dei dati di processo Strumenti: Risorse umane; Strumenti e metodi di valutazione; Processo per la Certificazione di qualità di prodotto ISO/IEC 25000 Certification Body Accredited Laboratory