top of page

Normativa e qualità del software

 

Il programmatore si concentra quasi esclusivamente sulla realizzazione di un programma eseguibile funzionante, ma l’azienda deve anche garantire una serie di altre qualità supplementari. Per esempio una documentazione interna (per i colleghi) e una esterna (per i clienti); oppure deve effettuare una serie di test molto più complessa perché l’utilizzatore è una figura esterna e non il programmatore stesso, oppure ancora deve tener conto degli sviluppi futuri del programma, ecc.

 

Custom: prevede uno specifico committente (cliente), e il rapporto con lo sviluppatore è regolato da contratto, che fissa i requisiti

del prodotto, i tempi e le modalità di consegna, il prezzo e le modalità di pagamento, la gestione dei contenziosi e della manutenzione.

COTS: non esiste un contratto specifico tra cliente e sviluppatore: il cliente acquista il prodotto presso i distributori ed eventualmente può sottoscrivere un contratto di assistenza.

 

Affinché la produzione del software possa essere considerata di qualità è necessario seguire le indicazioni contenute nelle normative internazionali

rilasciate dall’ISO (International Organization for Standardization) e sue emanazioni. 

Secondo la norma fondamentale per la qualità della produzione in generale (ISO 9000, che riguarda anche le organizzazioni che si occupano di prodotti e/o servizi software), e dalla norma fondamentale che descrive i requisiti di qualità dei prodotti software (ISO 9126). Come ogni prodotto dell’attività umana anche un prodotto software possiede un suo proprio ciclo di vita (life cycle), ovvero una serie di fasi che ne descrivono l’evoluzione dalla sua nascita fino al suo abbandono. Per i prodotti software il ciclo di vita viene formalizzato nel documento fondamentale ISO/IEC 12207:2008, “System and software engineering – Software life cycle processes”, il quale prevede tre gruppi di processi base del ciclo di vita: processi primari, processi di supporto e processi organizzativi.

 

Processi Primari

 

  •  Acquisition (acquisizione)

  •  Supply (fornitura)

  •  Development (sviluppo)

  •  Operation (esercizio)

  •  Maintenance (manutenzione)

  •  Destruction (dismissione)

 

Processi di Supporto

 

  •  Documentation (documentazione)

  •  Configuration (configurazione)

  •  Quality (qualità)

  •  Verification (verifica)

  •  Validation (validazione)

  •  Joint review (revisione congiunta)

  •  Audit (revisione di controllo)

  •  Problem resolution (risoluzione problemi)

  •  Usability (usabilità)

  •  Product evaluation (valutazione prodotto)

 

Processi Organizzativi

 

  •  Management (gestione)

  •  Infrastructure (gestione dell’infrastruttura)

  •  Improvement (migliorie)

  •  Human resource (risorse umane)

  •  Asset Management (investimenti)

  •  Reuse Program Management (riusabilità)

  •  Domain Engineering (ingegnerizzazione)

 

Come si può osservare a, l’attività aziendale di produzione di software, detta anche attività enterprise, si compone di una quantità di cicli molto articolata; In base alla norma, il ciclo di vita dei processi primari può essere schematizzato Il processo di Acquisizione ha lo scopo di definire il bene, sottoforma di prodotto software, che soddisfa le richieste del cliente. Il processo inizia con l’identificazione delle esigenze e delle richieste del cliente, la definizione dei requisiti e l’analisi del problema. Il processo di Fornitura invece consiste nello stilare un piano di progetto (project management plan) che descriva le tappe (milestone) concordate con il cliente per giungere al rilascio. Il processo di Sviluppo consiste nella realizzazione del prodotto software a partire dall’Acquisizione e rispettando la Fornitura. Termina con il rilascio. Il processo d’Uso consiste nell’installare, configurare e utilizzare il prodotto software fornendo il supporto e l’assistenza necessaria al cliente. Il processo di Manutenzione consiste nelle modifiche al prodotto software per correggere errori, migliorare prestazioni, adattare, aggiornare o integrarne le specifiche. Il processo di Dismissione consiste nelle attività necessarie per disinstallare o sostitituire il prodotto software, terminandone il ciclo di vita.

 

Le fasi preliminari al rilascio:

 

  • ISO/IEC 9126: qualità del software

Il documento si compone di quattro parti fondamentali, la prima delle

quali indica il modello di riferimento basato su tre punti di vista in merito

ai quali deve essere presa in considerazione la qualità del software: qualità

esterne, qualità interne e qualità in uso.

 

 

  • ISO/IEC 9126-1 “Il modello delle qualità del software”.

Per qualità esterne di un prodotto software la norma intende l’insieme

delle funzionalità che offre (cosa fa), le sue prestazioni (velocità di risposta,

quantità di eleaborazione) in relazione all’ambiente in cui opera (dal sistema

operativo all’hardware che richiede).

 

Per qualità interne di un prodotto software la norma intende le proprietà intrinseche del software, misurabili direttamente sul codice sorgente come la sua dimensione, la sua struttura logico-documentativa, il suo livello di comprensione e modificabilità. Per qualità in uso di un prodotto software la norma intende il livello con cui il programma si dimostra utile all’utente (che lo dovrà usare), sicuro, affidabile e soddisfacente. Per ognuno di questi tre aspetti il documento ne specifica i componenti misurabili nella forma caratteristica e sottocaratteristica: Le caratteristiche interne ed esterne sono le seguenti.

 

Funzionalità: capacità del software di fornire le funzioni esplicite e implicite

per cui è stato realizzato.

 

Affidabilità: capacità di mantenere un determinato livello di prestazioni

anche in condizioni impreviste.

 

Usabilità: capacità del software di essere compreso, facilmente utilizzato e

configurato.

 

Efficienza: capacità di espletare le funzioni nel minor tempo possibile utilizzando

nel miglior modo le risorse necessarie.

 

Manutenibilità: capacità del software di essere modificato, corretto, integrato.

 

Portabilità: capacità del software di adattarsi a diversi ambienti tecnologici,

sia hardware sia software.

 

Le caratteristiche in uso sono le seguenti.

 

Efficacia: capacità di consentire all’utente di ottenere i risultati previsti con

accuratezza e completezza.

 

Produttività: capacità di ottenere un livello di gestione delle risorse conveniente,

in termini di tempo di utilizzo e costi d’esercizio.

 

Sicurezza: capacità di fornire un livello accettabile di rischio per i dati, le

persone e l’attività economica correlata.

 

Soddisfazione: grado di risposta positiva dell’utente nell’iterazione con il

prodotto software.

 

 

Le rimanenti tre parti del documento ISO/IEC 9126 specificano le tecniche di misurazione della qualità (metriche) di questi tre aspetti del software.

2. ISO/IEC 9126-2 “Le metriche per la misura della qualità esterna”.

3. ISO/IEC 9126-3 “Le metriche per la misura della qualità interna”.

4. ISO/IEC 9126-4 “Le metriche per la misura della qualità in uso”.

bottom of page