ISO/IEC 9126
Con la sigla ISO/IEC 9126 si individua una serie di normative e linee guida, sviluppate dall'ISO (Organizzazione internazionale per la normazione) in collaborazione con l'IEC (Commissione Elettrotecnica Internazionale), preposte a descrivere un modello di qualità del software. Lo standard è stato sostituito dalla ISO/IEC 25010:2011[1]. Il modello propone un approccio alla qualità in modo tale che le società di software possano migliorare l'organizzazione e i processi e, quindi come conseguenza concreta, la qualità del prodotto sviluppato.
La norma tecnica relativa alla qualità del software si compone in quattro parti:
- Modello della qualità del software
- Metriche per la qualità esterna
- Metriche per la qualità interna
- Metriche per la qualità in uso
Modello di qualità
[modifica | modifica wikitesto]Il modello di qualità stabilito nella prima parte dello standard, ISO/IEC 9126-1, è classificato da sei caratteristiche generali (funzionalità, affidabilità, efficienza, usabilità, manutenibilità, portabilità) e varie sottocaratteristiche misurabili attraverso delle metriche, fornite in tre relazioni tecniche (technical reports) quali ISO/IEC 9126-2, 3 e 4. La funzionalità è un "requisito funzionale" a differenza delle ultime cinque caratteristiche chiamate invece " requisiti non funzionali" o "requisiti di qualità"; in particolare questi ultimi sono materia fondamentale nello studio dell'ingegneria del software.
Il modello è articolato nel seguente modo:
Funzionalità
[modifica | modifica wikitesto]La Funzionalità è la capacità di un prodotto software di fornire funzioni che soddisfano esigenze stabilite, necessarie per operare sotto condizioni specifiche.
- Appropriatezza: rappresenta la capacità del prodotto software di fornire un appropriato insieme di funzioni per gli specificati compiti ed obiettivi prefissati all'utente.
- Accuratezza: la capacità del prodotto software di fornire i risultati concordati o i precisi effetti richiesti.
- Interoperabilità: è la capacità del prodotto software di interagire ed operare con uno o più sistemi specificati.
- Conformità: la capacità del prodotto software di aderire a standard, convenzioni e regolamentazioni rilevanti al settore operativo a cui vengono applicate.
- Sicurezza: la capacità del prodotto software di proteggere informazioni e dati negando in ogni modo che persone o sistemi non autorizzati possano accedervi o modificarli, e che a persone o sistemi effettivamente autorizzati non sia negato l'accesso ad essi.
Affidabilità
[modifica | modifica wikitesto]L'Affidabilità è la capacità del prodotto software di mantenere uno specificato livello di prestazioni quando usato in date condizioni per un dato periodo.
- Maturità: è la capacità di un prodotto software di evitare che si verificano errori, malfunzionamenti o siano prodotti risultati non corretti.
- Tolleranza agli errori: è la capacità di mantenere livelli predeterminati di prestazioni anche in presenza di malfunzionamenti o usi scorretti del prodotto.
- Recuperabilità: è la capacità di un prodotto di ripristinare il livello appropriato di prestazioni e di recupero delle informazioni rilevanti, in seguito a un malfunzionamento. A seguito di un errore, il software può risultare non accessibile per un determinato periodo di tempo, questo arco di tempo è valutato proprio dalla caratteristica di recuperabilità.
- Aderenza: è la capacità di aderire a standard, regole e convenzioni inerenti all'affidabilità.
Efficienza
[modifica | modifica wikitesto]L'efficienza è la capacità di fornire appropriate prestazioni relativamente alla quantità di risorse usate.
- Comportamento rispetto al tempo: è la capacità di fornire adeguati tempi di risposta, elaborazione e velocità di attraversamento, sotto condizioni determinate.
- Utilizzo delle risorse: è la capacità di utilizzo di quantità e tipo di risorse in maniera adeguata.
- Conformità: è la capacità di aderire a standard e specifiche sull'efficienza.
Usabilità
[modifica | modifica wikitesto]L'usabilità è la capacità del prodotto software di essere capito, appreso, usato e benaccetto dall'utente, quando usato sotto condizioni specificate.
- Comprensibilità: esprime la facilità di comprensione dei concetti del prodotto, mettendo in grado l'utente di comprendere se il software è appropriato.
- Apprendibilità: è la capacità di ridurre l'impegno richiesto agli utenti per imparare ad usare la sua applicazione.
- Operabilità: è la capacità di mettere in condizione gli utenti di farne uso per i propri scopi e controllarne l'uso.
- Attrattiva: è la capacità del software di essere piacevole per l'utente che ne fa uso.
- Conformità: è la capacità del software di aderire a standard o convenzioni relativi all'usabilità.
Manutenibilità
[modifica | modifica wikitesto]La manutenibilità è la capacità del software di essere modificato, includendo correzioni, miglioramenti o adattamenti.
- Analizzabilità: rappresenta la facilità con la quale è possibile analizzare il codice per localizzare un errore nello stesso.
- Modificabilità: la capacità del prodotto software di permettere l'implementazione di una specificata modifica (sostituzioni componenti).
- Stabilità: la capacità del software di evitare effetti inaspettati derivanti da modifiche errate.
- Testabilità: la capacità di essere facilmente testato per validare le modifiche apportate al software.
Portabilità
[modifica | modifica wikitesto]La portabilità è la capacità del software di essere trasportato da un ambiente di lavoro ad un altro. (Ambiente che può variare dall'hardware al sistema operativo).
- Adattabilità: la capacità del software di essere adattato per differenti ambienti operativi senza dover applicare modifiche diverse da quelle fornite per il software considerato.
- Installabilità: la capacità del software di essere installato in uno specificato ambiente.
- Conformità: la capacità del prodotto software di aderire a standard e convenzioni relative alla portabilità.
- Sostituibilità: è la capacità di essere utilizzato al posto di un altro software per svolgere gli stessi compiti nello stesso ambiente.
Qualità esterne
[modifica | modifica wikitesto]Le metriche esterne, specificate nella norma ISO/IEC 9126-2, misurano i comportamenti del software sulla base dei test, dall'operatività e dall'osservazione durante la sua esecuzione, in funzione degli obiettivi stabiliti in un contesto tecnico rilevante o di business.
Qualità interne
[modifica | modifica wikitesto]La qualità interna, più precisamente le metriche interne, è specificata nella norma ISO/IEC 9126-3 e si applica al software non eseguibile (ad esempio il codice sorgente) durante le fasi di progettazione e codifica. Le misure effettuate permettono di prevedere il livello di qualità esterna ed in uso del prodotto finale, poiché gli attributi interni influiscono su quelli esterni e quelli in uso. Le metriche interne permettono di individuare eventuali problemi che potrebbero influire sulla qualità finale del prodotto prima che sia realizzato il software eseguibile. Esistono metriche che possono simulare il comportamento del prodotto finale tramite simulazioni.
Qualità in uso
[modifica | modifica wikitesto]La qualità in uso rappresenta il punto di vista dell'utente sul software. Il livello di qualità in uso è raggiunto quando sia stato raggiunto sia il livello di qualità esterna sia il livello di qualità interna. Le norme ISO/IEC 9126-4 forniscono esempi di metriche da utilizzare per la misurazione della qualità rispetto ai tre punti di vista (interno, esterno, in uso). La qualità in uso, quindi, permette di abilitare specificati utenti ad ottenere specificati obiettivi con efficacia, produttività, sicurezza e soddisfazione.
- Efficacia: la capacità del software di mettere in grado gli utenti di raggiungere gli obiettivi specificati con accuratezza e completezza.
- Produttività: la capacità di mettere in grado gli utenti di spendere una quantità di risorse appropriate in relazione all'efficacia ottenuta in uno specificato contesto d'uso.
- Soddisfazione: è la capacità del prodotto software di soddisfare gli utenti.
- Sicurezza: rappresenta la capacità del prodotto software di raggiungere accettabili livelli di rischio di danni a persone, al software, ad apparecchiature o all'ambiente operativo d'uso.
Ciclo di qualità del software
[modifica | modifica wikitesto]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.
Altre norme
[modifica | modifica wikitesto]Il modello di qualità del software ISO/IEC 9126 dal 2005 è confluito nel sistema di norma ISO/IEC 25000.
Note
[modifica | modifica wikitesto]Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su ISO/IEC 9126
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale ISO - Il sito contiene la documentazione ufficiale in PDF o in formato cartaceo acquistabile dal sito web dell'ISO.
- (EN) La nuova norma ISO/IEC 25000:2005.
- Sito CNIPA - I modelli di qualità del software sul sito dell'CNIPA
- Sito Tecnoteca - Informazioni utili sullo standard ISO/IEC 9126 sul portale TecnoTeca