Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Anna Rita Fasolino » 21.La Valutazione della Qualità dei Processi Software – Il Capability Maturity Model (CMMI)


La valutazione della Qualità dei processi

La qualità di un sistema sw è largamente determinata dalla qualità del processo usato per la sua produzione e manutenzione.

Importante poter accertare la qualità di un processo => necessità di appropriati modelli di qualità di processo.

Modelli di questo tipo sono detti modelli di accertamento e miglioramento: consentono di valutare la CAPACITA’ e la MATURITA’ di un processo di produzione e manutenzione del software e sono capaci di guidare il loro miglioramento.

Capability Maturity Model (CMM)

CMM sta letteralmente per ‘Modello di Maturità delle Capacità Software’.

Il CMM è utilizzato per valutare e migliorare la capability di un processo nell’eseguire tale disciplina.

CAPABILITY
Adeguatezza di un processo rispetto alle attività produttive dell’azienda.

MATURITY
Grado di consolidamento di un processo all’interno dell’Azienda.

Valutare le Capacità di un Processo

É un modo per valutare fino a che punto I processi seguiti da una organizzazione seguono le migliori regole pratiche del settore (le best practice).

Fornendo un metodo per la valutazione, è possibile anche identificare le aree di debolezza del processo che dovranno essere migliorate.

Ci sono stati negli anni varie proposte di modelli per la valutazione ed il miglioramento dei processi, ma il CMM proposto dal SEI resta uno dei modelli fondamentali.

Note storiche sul CMM

Nel 1984, negli USA il Department of Defense (DoD) stanco dei frequenti insuccessi nello sviluppo software, fece richiesta alla Carnegie Mellon University di allestire un sistema per valutare le capacità dei fornitori di portare a termine con successo il completamento dei progetti.

Sotto la direzione di W. Humphrey, il SEI (Software Engineering Institute) iniziò così a sviluppare un modello di miglioramento dei processi che nell’agosto del 1991 portò al rilascio dell’ormai noto Capability Maturity Model (CMM) for Software [Paulk M.C, Curtis, et.al. Capability Maturity Model version 1.1, IEEE Software 10 (4), pp. 18-27].

Il CMM proposto dal SEI

  • Iniziale
    • Essenzialmente non controllato;
  • Ripetibile
    • Sono definite ed usate procedure di gestione del prodotto;
  • Definito
    • Sono definite ed usate procedure di gestione del processo;
  • Gestito
    • Sono definite ed usate strategie di gestione della Qualità;
  • Ottimizzato
    • Sono definite ed usate strategie di miglioramento del processo.

Note storiche

Inizialmente si svilupparono diverse tipologie di CMM, applicabili a diverse discipline ingegneristiche.

Verso la fine degli anni ‘90, sempre sponsorizzato dal DoD, il SEI mise a punto il progetto CMMI (Capability Maturity Model Integration) che andasse ad integrare gli aspetti diversi dei vari CMM in un unico modello.

L’obiettivo primario del progetto era quello di fornire supporto nell’ottimizzazione dei processi utilizzati per sviluppare sistemi e prodotti, riducendo la ridondanza, la complessità e i costi risultanti dall’uso di più capability maturity models.

L’output scaturito del CMMI consta di una suite di prodotti di supporto al coordinamento di attività interdisciplinari richieste per metter su con successo un progetto.

CMMI: Caratteristiche

È un meta-modello di processo che individua un insieme di funzionalità di ingegneria che dovrebbero essere presenti man mano che le organizzazioni raggiungono diversi livelli di capacità e maturità del processo.

Per ottenere tali capacità, una organizzazione dovrebbe sviluppare un modello di processo conforme alle indicazioni del CMMI.

Componenti del modello CMMI

Process Areas
Sono state identificate 24 differenti aree di processo, organizzate in 4 gruppi e rilevanti al fine dell’individuazione della capacità del processo e della possibilità di migliorarlo.

Goals
I Goals rappresentano gli obiettivi organizzativi che si vorrebbero ottenere, intesi come stato desiderato da raggiungere per una organizzazione.
Ogni process area ha i suoi obiettivi associati.
Practices
Le Practices (o norme) descrivono metodi e tecniche per raggiungere un goal. Si distinguono in norme generiche e specifiche.

Aree di Processo del CMMI


Aree di Processo del CMMI (segue)


Esempi di Obiettivi (Goals) del CMMI


Esempi di Norme (o Pratiche) del CMMI


La valutazione CMMI

Una organizzazione che intenda adottare il CMMI viene valutata formalmente in ciascuna area del processo sulla base di 6 livelli di capacità, verificando che raggiunga gli obiettivi associati a ciascuna area.

  • Livello 0 (incompleta): l’area non raggiunge tutti i goal dell’area;
  • Livello 1 (eseguita): tutti i goal dell’area sono soddisfatti;
  • Livello 2 (gestita): tutti i goal sono soddisfatti e le attività sono svolte in maniera conforme alla politica dell’organizzazione;
  • Livello 3 (definita): come gestita, ed inoltre esistono standard aziendali rispetto ai quali ogni processo seguito viene definito;
  • Livello 4 (gestita quantitativamente): come definita, e le misurazioni raccolte sono usate per la gestione del processo;
  • Livello 5 (ottimizzata): si usano le misurazioni per guidare il miglioramento del processo.

Tipologie di CMMI

Esistono due modalità di applicazione del modello CMMI

    1. A Stadi
    2. Continua

      Nel primo caso si cerca di dare una valutazione generale della maturità di tutto il processo di sviluppo, secondo una scala composta di 5 livelli.
      Per poter soddisfare un certo livello, l’organizzazione deve garantire il soddisfacimento di determinati obiettivi.

      Nel secondo caso si cerca di dare una valutazione (su 5 livelli) ad ogni aspetto del processo. La valutazione globale del processo è una combinazione delle valutazioni degli elementi.

      CMMI a stadi

      Il Modello CMMI a stadi.

      Il Modello CMMI a stadi.


      CMMI a Stadi (segue)

      Viene dato un giudizio globale sulla maturità dell’intero processo di sviluppo software, secondo una scala a 5 valori (talvolta 6)

      1. Iniziale
        • Assenza di controllo di processo;
      2. Gestito
        • Sono definite e usate strategie per la gestione della qualità;
      3. Definito
        • Sono definite e usate strategie e procedure per la gestione del processo;
      4. Gestito Quantitativamente
        • Sono utilizzati metodi statistici quantitativi che permettono di avviare processi di miglioramento del processo;
      5. Ottimizzato
        • Processi di miglioramento del processo sono costantemente eseguiti.

      CMMI a Stadi (segue)

      É paragonabile al CMM software. Ogni livello di maturità ha le proprie Aree di processo e Goals.

      Per raggiungere un dato livello di maturità occorre, in tutte le aree di processo richieste per quel livello, aver raggiunto almeno un certo livello di capacità.

      Ad esempio, le aree di processo associate al livello gestito (livello 2) sono 7:

      1. Requirements management;
      2. Project planning;
      3. Project monitoring and control;
      4. Supplier agreement management;
      5. Measurement and analysis;
      6. Process and product quality assurance;
      7. Configuration management.

      Vantaggi e Svantaggi

      Un vantaggio è che il CMMI a stadi è perfettamente compatibile col CMM Software.
      Esso inoltre definisce una chiara via di miglioramento per le organizzazioni, spostandosi da un livello all’altro.

      Uno svantaggio è che in una organizzazione può essere più opportuno introdurre obiettivi e norme dei livelli più alti, prima di quelli dei livelli più bassi: in tal caso, l’organizzazione riceverà una valutazione complessiva di più basso livello (nonostante le norme introdotte).

      Il modello CMMI continuo

      Diversamente dal modello a stadi, non classifica una organizzazione secondo livelli discreti.

      La valutazione della maturità non avviene prendendo in considerazione l’intero processo nel suo complesso, ma cercando di dare un giudizio di maturità ad ogni sottoprocesso che è possibile individuare nell’ambito del processo complessivo.

      Si ottiene un valore di maturità per ogni area prevista dal CMMI.

      Un frammento di profilo di capacità del processo

      Un esempio di Profilo di capacità del processo secondo il CMMI continuo

      Un esempio di Profilo di capacità del processo secondo il CMMI continuo


      Vantaggi

      Uno dei vantaggi del CMMI continuo è che le organizzazioni possono scegliere i processi da migliorare secondo le proprie necessità ed i requisiti.

      Ad esempio, una organizzazione può aver bisogno di migliorare i processi a diretto contatto con i clienti, mentre un’altra può aver bisogno di migliorare quelli di gestione della configurazione e della validazione.

      L’organizzazione può anche sviluppare profili target ed effettivi, dove il profilo target riflette il livello di maturità che si vuole raggiungere per una data area di processo.

      • Contenuti protetti da Creative Commons
      • Feed RSS
      • Condividi su FriendFeed
      • Condividi su Facebook
      • Segnala su Twitter
      • Condividi su LinkedIn
      Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

      Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93