37
1 Ingegneria del Software 2 – Processo Software 1 Gestione e Miglioramento dei Processi di Produzione del Software Ingegneria del Software 2 – Processo Software 2 Riferimenti Sommerville , Capitolo 28 Dennis M. Ahern, Aaron Clouse, and Richard Turner, CMMI Distilled: A Practical Introduction to Integrated Process Improvement, Second Edition

Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

1

Ingegneria del Software 2 – Processo Software 1

Gestione e Miglioramento deiProcessi di Produzione del

Software

Ingegneria del Software 2 – Processo Software 2

Riferimenti

• Sommerville , Capitolo 28

• Dennis M. Ahern, Aaron Clouse, and Richard Turner, CMMI Distilled: A Practical Introduction to Integrated Process Improvement, Second Edition

Page 2: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

2

Ingegneria del Software 2 – Processo Software 3

Argomenti

• Qualità del processo e del prodotto• Classificazione dei Processi• Misure dei Processi• Analisi e Modellazione dei Processi• Cambiamenti nei Processi• La valutazione della Qualità dei Processi• Il CMM software ed il CMMI

Ingegneria del Software 2 – Processo Software 4

Qualità dei Processi

• Il Processo Software rappresenta l’insieme delleattività produttive che vengono realizzate durantetutte le fasi del Ciclo di Vita del Software

• Esiste un legame empirico tra la qualità del processosoftware e la qualità dei prodotti software

• Migliorare il processo software consente, tra l’altro, dimigliorare la qualità dei prodotti software risultanti, nonchè di ridurre costi e tempi.

Page 3: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

3

Ingegneria del Software 2 – Processo Software 5

Come si esprime la qualità di un processo software?

• Quali attributi di qualità per un processo software?

• Vari punti di vista da considerare:

• Di chi esegue il processo• Di chi gestisce il processo• Di chi usufruisce dei prodotti del processo

Ingegneria del Software 2 – Processo Software 6

Attributi di un processo software

Quanto rapidamente si arriva alla consegna del prodotto a partire dalle sue specifiche?

Rapidità

Il processo può evolvere facilmente per tener conto di cambiamenti organizzativi o necessità di miglioramento?

Manutenibilità

Il processo è in grado di proseguire, anche a fronte di problemi non attesi?

Robustezza

Il processo è disegnato in modo da evitare errori di processo, o in modo da gestire gli errori di processo, prima che producano errori sul prodotto?

Affidabilità

Il processo definito è accettabile ed usabile dagli addetti allaproduzione software?

Accettabilità

Fino a che punto è possibile usare degli strumenti CASE a supporto delle attività del processo?

Supportabilità

Le attività del processo producono chiari risultati in modo che il progredire del processo è visibile dall’esterno?

Visibilità

Fino a che punto il processo è esplicitamente definito ed è possibile comprenderne la definizione?

Comprensibilità

DescrizioneCaratteristica

Page 4: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

4

Ingegneria del Software 2 – Processo Software 7

Miglioramento di un Processo

• Bisogna prima comprendere il processo attuale • E poi modificarlo per:

– Migliorare la qualità dei prodotti software– E diminuire i tempi ed i costi di sviluppo

• Attenzione: non si può migliorare semplicemente adottando metodi, strumenti, o modelli di processo adottati altrove…

• Bisogna impostare l’attività di miglioramento in base alla specifica organizzazione. È un processo ciclico

Ingegneria del Software 2 – Processo Software 8

Ciclo di miglioramento del processo

Misurazione del processoVengono misurati attributi diqualità del processo.

Analisi del processoIl processo di sviluppo utilizzato è analizzato allo scopo di trovaredebolezze e colli di bottiglia.

Cambiamento del processoIntroduzione dei cambiamentiindividuati in fase di analisi nelprocesso.

Misurazione

AnalisiCambiamento

Page 5: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

5

Ingegneria del Software 2 – Processo Software 9

Fattori di Qualità dei prodotti software

Tecnologie Di sviluppo

Costo, tempo e pianificazione

Qualità dellepersone

Qualità delProcesso Qualità del

ProdottoQualità delProdotto

Diversamente dalla qualità dei prodotti industriali, la qualità del prodotto software è determinata non solo dalla qualità del processo!

Ingegneria del Software 2 – Processo Software 10

Fattori di qualità

• Per sistemi di grandi dimensioni, la qualità del processo influenza sicuramente la qualità del prodotto

• Per piccoli progetti, la capacità degli sviluppatori è invece il fattore determinante

• La tecnologia utilizzata è fattore importantesoprattutto nei piccoli progetti

• In ogni caso, limitazioni sul tempo di realizzazioneinfluiranno di sicuro negativamente sulla qualità del prodotto risultante

Page 6: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

6

Ingegneria del Software 2 – Processo Software 11

• Processi Informali– Nessun modello di processo è adottato. Alcuni strumenti come

la gestione della configurazione potrebbero essere utilizzati, ma senza formalizzare la modalità d’utilizzo.

• Processi Gestiti– Esiste un modello di processo definito, comprendente un

insieme di procedure, tempistiche e vincoli tra procedure.• Processi Metodici

– C’è ricorso contemporaneo a modelli di processosistematici, a metodi di sviluppo definiti, e a strumenti CASE a supportodell’esecuzione.

• Processi di miglioramento– Oltre ad essere metodici, prevedono anche analisi quantitative

volte al miglioramento del processostesso

Classificazione dei processi

Ingegneria del Software 2 – Processo Software 12

Applicabilità del Processo

Processo Informale

Processo Informale

Processo Metodico

Processo Metodico

Processo Gestito

Processo Gestito

Domini applicativi bennoti, Sistemi re-ingegnerizzati

Domini applicativi bennoti, Sistemi re-ingegnerizzati

Grandi sistemi di lunga durata

Grandi sistemi di lunga durata

Prototipi, Sistemi Di breve durata, Sistemi dipiccole e medie dimensioni

Prototipi, Sistemi Di breve durata, Sistemi dipiccole e medie dimensioni

Page 7: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

7

Ingegneria del Software 2 – Processo Software 13

• Il processo utilizzato dovrebbe dipendere dallatipologia del prodotto da sviluppare– Per grandi sistemi, il management è di solito il problema

più significativo da risolvere, cosicchè, un processoprecisamente gestito è necessario

– Per sistemi più piccoli, una gestione più informale è consentita (e può far risparmiare tempo e risorse umane)

• Non esiste un processo che sia applicabileuniformemente e senza adattamenti in ogniorganizzazione– L’applicazione di un processo inappropriato può portare

ad un aumento dei costi e ad un peggioramento dellaqualità del processo

Scelta del processo

Ingegneria del Software 2 – Processo Software 14

Processi Supportati da strumenti CASE

Strumentigenerici

StrumentiPer la gestione

della configurazione

StrumentiDi gestionedel progetto

Workbenchdi analisi e

progettazione

Strumentispecializzati

Processo InformaleProcesso Informale

Processo Metodico

Processo Metodico

Processo Gestito

Processo Gestito

Processo di miglioramento

Processo di miglioramento

• Ogni tipo di processo potrà beneficiare di diversi tipi di strumenti a suo supporto.

Page 8: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

8

Ingegneria del Software 2 – Processo Software 15

• Le misurazioni di processo e di prodotto sono fondamentaliper il miglioramento dei processi [1].

• E’ auspicabile la raccolta di misure quantitative dei dati del processo– E’ molto difficile fare misure quando non c’è chiarezza nei

processi adottati. La definizione del processo è dunque un prerequisito fondamentale per la sua misura

• Misurare i processi consente di pianificare il loro miglioramento– Le misure sono però solo in grado di supportare il processo di

miglioramento, non di guidarlo; il processo di miglioramento è comunque un processo organizzativo

Misurazioni di processo

[1] Humphrey, 1989: Managing the software process, Addison Wesley

Ingegneria del Software 2 – Processo Software 16

• Tempo impiegato

• Risorse richieste– Ad esempio sforzo, calcolato in giorni-uomo

• Il giorno-uomo (e il multiplo mese-uomo) è l’unità di misuracomunemente adottata per lo sforzo

– Le risorse impiegate,es . Costi di viaggio, software, hardware,…

• Numero di occorrenze di alcuni eventi– Ad esempio, numero di difetti trovati

… in generale un amplissimo numero di metriche può essere proposto; per legare I valori riscontrati per tali metriche con gli obiettivi di qualità del prodotto e del processo che si vogliono perseguire, è possibileutilizzare l’approccio GQM (Goal/ Questions/ Metrics)

Tipologie di misure di processo

Page 9: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

9

Ingegneria del Software 2 – Processo Software 17

• Goals– Quali sono gli scopi che l’organizzazione cerca di

ottenere? L’obiettivo del miglioramento del processo è disoddisfare questi scopi (es. Migliorare la produttività deiprogrammatori, tempi di sviluppo, affidabilità del prodotto…)

• Questions– Servono a specificare meglio gli obiettivi . Es. Come

aumentare il numero di LOC controllate via debug?comeridurre I tempi per individuare I requisiti? Come valutarel’affidabilità?

• Metrics– Misure da prelevare per rispondere alle domande. Es.

Produttività del programmatore espressa in LOC/ giorno, numero di modifiche ai requisiti richieste, numero di test richiesti per scatenare un malfunzionamento.

Goal-Question-Metric Paradigm [1][1] V. Basili, D. Rombach, The TAME Project: towards improvement oriented software environments, IEEE Transactions on Software Engineering, 14 (6), pp. 758-773, 1988

Ingegneria del Software 2 – Processo Software 18

Analisi e Modellazione del processo

• La prima condizione necessaria al miglioramentodel processo è la sua conoscenza:– Analisi del processo

• Caratterizzazione del processo di sviluppo esistente in termini di attività svolte e attori coinvolti– Ottenuta tramite questionari/ interviste/ studio del flusso

documentale del processo / osservazione esterna del processo

– Modellazione del processo• Realizzazione di documentazione di riferimento che

stabilisca precisamente lo svolgimento del processo– Utilizzo di strumenti grafici di modellazione come, ad

esempio, i diagrammi di attività

Page 10: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

10

Ingegneria del Software 2 – Processo Software 19

• L’analisi studia i processi esistenti per comprenderne le attività.

• Il passo successivo alla comprensione consiste nelprodurre un modello astratto del processo (in genere mediante un grafico). Tale modello puòincludere diverse viste sul processo (attività, deliverables, etc.).

• Successivamente, si analizza il modello per scoprirne I problemi. A tal fine può esserenecessario discutere delle attività con le personecoinvolte , per individuare problemi e possibilisoluzioni.

Analisi e Modellazione del processo

Ingegneria del Software 2 – Processo Software 20

• Analisi dei modelli di processo e degli standard sui processi– É buona norma iniziare l’analisi facendo un confronto con

modelli di processo esistenti. Successivamente questi modellipotranno essere estesi o modificati.

• Questionari ed interviste– Devono essere progettati attentamente per raccogliere

informazioni ed opinioni sui processi• Studi etnografici

– Si raccolgono informazioni sul processo a partire da unaosservazione diretta sul campo. Può servire ad ottenere unaconoscenza approfondita di specifici aspetti del processo, piuttosto che per una visione complessiva sullo stesso.

Tecniche di analisi dei processi

Page 11: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

11

Ingegneria del Software 2 – Processo Software 21

Elementi di un modello di processo(1 parte)

Parallelogramma

Rettangolo con ombra

Rettangolo con bordi arrotondati e con ombra

Rettangolo con bordi arrotondati senza ombra

Simbolo

Può essere una pre-condizione o post-condizione di un processo o attività

Condizione

È un output tangibile di una attività Consegna (deliverable)

È un insieme coerente di attività (es. analisi dei requisiti, progettazione architetturale…)

Processo

Una attività ha un obiettivodefinito, e condizioni di ingresso e uscita definite. Esempi: preparare I dati di test per iltesting di unità, scrivere una funzione, rivedere un documento…E’ in genereatomica.

Attività

DescrizioneElemento

Ingegneria del Software 2 – Processo Software 22

Elementi di un modello di processo(2 parte)

Freccia

Rettangolo con doppi bordi

Un cerchio con un’ombra

Simbolo

Scambio di informazioni tra persone o con sistemi informatici

Comunicazione

Descrive come modificare un processo se accadono eventi imprevisti o inattesi

Eccezione

È un’area con responsabilità ben definite (es. gestore della configurazione, ingegnere dei test, progettista)

Ruolo

DescrizioneElemento

Page 12: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

12

Ingegneria del Software 2 – Processo Software 23

Esempio: modellazione del test di modulo

Test dimodulo

Registrazione deitest eseguiti

Dati di testdel modulo

Specifica del modulo

Il modulo compilasenza errori

Tutti I test definitiSono eseguibili

IngegnereDei test

Pre-condizione

InputProcesso

Ruolo

OutputsResponsabile

del

Post-condizione

Ingegneria del Software 2 – Processo Software 24

Modifica del processo

• Per ottenere il miglioramento di un processo, può esserenecessario modificarlo.

• Tra le possibili modifiche al processo:– Introduzione di nuove tecniche, metodologie, processi,

procedure;– Modifica dell’ordine di esecuzione dei processi;– Introduzione di nuovi deliverables (o abolizione di

deliverables esistenti)– Introduzione di nuovi ruoli o responsabilità– …

• Il cambiamento dovrebbe essere guidato da studi che cipermettono di prevedere il raggiungimento di benefici in termini di goals misurabili

Page 13: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

13

Ingegneria del Software 2 – Processo Software 25

Procedura di modifica del processo

Piano di modifica del

processo

Piano di modifica del

processo

Identificazionemiglioramenti

Identificazionemiglioramenti

Ordinare imiglioramenti per

priorità

Ordinare imiglioramenti per

priorità

IntroduzioneDella modifica nel processo

IntroduzioneDella modifica nel processo

Formazione degliingegneri

Formazione degliingegneri

Raffinamento dellemodifiche ai processi

Raffinamento dellemodifiche ai processi

Modello di processo

Modello di processo

Modello di processo

rivisto

Modello di processo

rivisto

Feedback suimiglioramenti

Feedback suimiglioramenti

Piano di formazione

Piano di formazione

Ingegneria del Software 2 – Processo Software 26

I cinque passi della procedura di modifica

• Identificare I miglioramenti: – Definire le proposte in grado di rimuovere colli di

bottiglia, debolezze (rispetto a qualità/ tempistica/ costi) del processo.

• Assegnare priorità ai miglioramenti.– Stabilire le priorità delle modifiche in base ai costi,

impatti, dipendenze…• Introduzione delle modifiche.

– Si attuano le modifiche, ossia nuovi metodi, tecniche, strumenti e procedure sono introdotti ed integrati con le altre attività del processo.

Page 14: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

14

Ingegneria del Software 2 – Processo Software 27

I cinque passi della procedura di modifica

• Addestramento riguardo alle modifiche.– Occorre istruire il personale riguardo alle modifiche

introdotte, al fine di trarre un pieno beneficio dalla lorointroduzione

• Raffinamento delle modifiche.– Dopo l’introduzione delle modifiche, sarà necessaria

una fase di rifinitura delle modifiche stesse, al fine disuperare gli inevitabili problemi che potrannoverificarsi.

Ingegneria del Software 2 – Processo Software 28

Business Process Reengineering

• Negli anni ’90 prese piede la moda della re-ingegnerizzazione dei processi aziendali [2]

• Venivano proposte modifiche radicali ai processi aziendali che spesso non tenevano conto delle esigenze delle persone coinvolte!

• Il fallimento del BPR fu largamente dovuto alla resistenza alle modifiche fatta dalle persone non coinvolte nel processo di modifica stesso.

Page 15: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

15

Ingegneria del Software 2 – Processo Software 29

La Valutazione della Qualità dei Processi Software

Il Capability Maturity Model (CMM)e il

Capability Maturity Model Integration (CMMI)

Ingegneria del Software 2 – Processo Software 30

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.

Page 16: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

16

Ingegneria del Software 2 – Processo Software 31

Come sono fatti i Processi Software

• Un Processo Software include tutta una serie di ulteriori processi specifici – Es. Processo di Gestione dei rischi, Processo di

Configuration Management, Proc. di Testing, …

• Per definire un processo software è necessario definire:– L’insieme dei processi specifici che esso implementa– Tutte le modalità operative di conduzione dei singoli

processi• i passi, i deliverable, i metodi, i tool, …

Ingegneria del Software 2 – Processo Software 32

Esempio

• Processo di gestione dei Rischi: i passi– Identify the risk– Analyze the risk– Categorize the seriousness and probability of the risk– Mitigate the risk

• È sufficiente questa descrizione?• Perché no?

– È troppo generale– Mancano le Procedure da seguire per completare i vari passi– Mancano template, linee guida, esempi di riferimento, tool…

Page 17: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

17

Ingegneria del Software 2 – Processo Software 33

Modelli di riferimento per organizzare i processi

• I modelli sintetizzano le migliori pratiche adottate in organizzazioni efficaci e di successo!

• I primi modelli di riferimento sono stati l’ISO 9000 e il CMM.

• Ulteriore Modello per i Processi Software: lo Standard IEEE 12207

Ingegneria del Software 2 – Processo Software 34

Modello ISO 9000

• La serie ISO 9000/9001 fornisce uno schema di riferimento per la Gestione della Qualità.

• Le norme definiscono i requisiti per l'implementazione di un sistema di gestione della qualità, al fine di:– assicurare la qualità dei processi aziendali– migliorare l'efficacia e l'efficienza nella realizzazione

del prodotto e nell'erogazione del servizio– ottenere ed incrementare la soddisfazione del cliente.

Page 18: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

18

Ingegneria del Software 2 – Processo Software 35

Le parti dello Standard ISO 9000

• ISO 9000, dal titolo Sistemi di gestione per la qualità - Fondamenti e vocabolario– Descrive il vocabolario ed i principi essenziali dei sistemi di

gestione per la qualità e della loro organizzazione

• ISO 9001 (rev.2008) Sistemi di gestione per la qualità - Requisiti– definisce i requisiti di un sistema di gestione per la qualità

per una organizzazione

• ISO 9000-3 – Definisce i requisiti di un sistema di gestione della qualità

per organizzazioni che forniscono, sviluppano, e fanno manutenzione software.

Ingegneria del Software 2 – Processo Software 36

CMM sta per Capability Maturity Model

• Il CMM fu originariamente prodotto per aiutare organizzazioni che producono software. Il CMM fu creato analizzando le attivitàdi organizzazioni altamente funzionanti.

• Queste attività diventarono le 316 key practices del CMM, e le pratiche furono raggruppate in 18 categorie dette Key ProcessAreas.

• Le 18 Key Process Areas si concentrano su attività di:– gestione requisiti, gestione cambiamenti,creare project plan,

…– tracking estimates against actuals, implementing quality

assurance activities, instituting peer reviews, and training personnel in processes related to their job duties.

Page 19: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

19

Ingegneria del Software 2 – Processo Software 37

Quali sono le differenze tra CMM e ISO?

• ISO considera la qualità da un punto di vista più ampio e guardaall’intera organizzazione. Il prodotto principale della norma ISO è il manuale di qualità che descrive le iniziative da implementare in tutta l’organizzazione.

• Sono eseguite interviste a tutti i manager dei vari settori aziendali

• Il CMM invece si dedica ad un aspetto più specifico e focalizza solo progetti software-intensive

• Non guarda l’intera organizzazione. Le interviste sono rivoltesoprattutto ai project manager e ai membri dei vari team dilavoro.

Ingegneria del Software 2 – Processo Software 38

Il CMM: Note storiche

• 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 [1].

[1] Paulk M.C, Curtis, et.al. Capability Maturity Model version 1.1, IEEE Software 10 (4), pp. 18-27

Page 20: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

20

Ingegneria del Software 2 – Processo Software 39

Capability Maturity Model (CMM)

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

• Il CMM è stato proposto 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.

Ingegneria del Software 2 – Processo Software 40

Valutare le Capacità di un Processo

• É un modo per valutare fino a che punto I processiseguiti da una organizzazione seguono le miglioriregole pratiche del settore (le best practice).

• Fornendo un metodo per la valutazione, è possibileanche identificare le aree di debolezza del processoche dovranno essere migliorate.

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

Page 21: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

21

Ingegneria del Software 2 – Processo Software 41

• 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

Il CMM inizialmente proposto dal SEI: 5 livelli di Maturità

Ingegneria del Software 2 – Processo Software 42

Page 22: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

22

Ingegneria del Software 2 – Processo Software 43

Livello 1: Iniziale

Ingegneria del Software 2 – Processo Software 44

Livello 2: Ripetibile

Page 23: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

23

Ingegneria del Software 2 – Processo Software 45

Livello 3: Definito

Ingegneria del Software 2 – Processo Software 46

Livello 4: Gestito

Page 24: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

24

Ingegneria del Software 2 – Processo Software 47

Livello 5: Ottimizzato

Ingegneria del Software 2 – Processo Software 48

Evoluzione del CMM nel CMMI

• Dopo il CMM software, 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 supportonell’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.

Page 25: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

25

Ingegneria del Software 2 – Processo Software 49

Il CMMI 1.1, 1.2, 1.3

• La versione 1.1 (2002) fu sviluppata per gestire la manutenzione e lo sviluppo di servizi e prodotti e fornire un framework estensibile, ma si dedica principalmente a quattro aspetti:

– Ingegneria dei sistemi (SE) : si concentra sullo sviluppo di sistemi che possono o meno includere software

– Ingegneria del software (SW) : – Sviluppo integrato di prodotto e processo (IPPD) : I processi che

supportano l’IPPD sono integrati con gli altri processi aziendal i– Supplier sourcing (SS)

• I modelli che sono stati descritti, oltre ad essere usati separatamente, si possono anche combinare. I più usati sono: CMMI-SE/SW, CMMI-SE/SW/SS e CMMI-SE/SW/IPPD/SS.

• Ulteriori versioni rilasciate…CMMI 1.2 (2008), CMMI 1.3 (2010)

Ingegneria del Software 2 – Processo Software 50

CMMI: Caratteristiche

• È un meta-modello di processo– 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.

Page 26: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

26

Ingegneria del Software 2 – Processo Software 51

Struttura del CMMI

• MaturityLevels (staged representation) or CapabilityLevels (continuous representation)

• Process Areas• Goals: Generic and Specific• Common Features• Practices: Generic and Specific

Ingegneria del Software 2 – Processo Software 52

Maturity Levels nel CMMI

• I livelli di maturità indicano i livelli di performance/ prestazioni che ci si può aspettare da unaorganizzazione. – Ad esempio, le organizzazioni con Maturity Level 1

possiedono processi ‘ad hoc’– le organizzazioni con Maturity Level 2 possiedono un

sistema minimale di gestione dei progetti.

• Esistono 5 Maturity Levels

Page 27: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

27

Ingegneria del Software 2 – Processo Software 53

Livelli di Maturità

• Livello 1- Iniziale– I processi sono ad hoc e caotici. Non c’è una struttura

organizzativa stabile di supporto al processo. Il successo del processo dipende dalle capacità ed iniziative individuali.

• Livello 2- Gestito– I processi sono pianificati e condotti secondo una politica

aziendale da personale competente e con risorse adeguate

• Livello 3- Definito– Tutti i processi sono ben definiti, compresi e descritti (con

standard, procedure, strumenti e metodi). Sono inoltre costantemente aggiornati e migliorati gli standard adottati.

Ingegneria del Software 2 – Processo Software 54

Livelli di Maturità

• Livello 4- Gestito Quantitativamente– I progetti definiscono obiettivi quantitativi per la qualità e le

prestazioni dei processi e si usano indicatori metrici e statistiche per valutare il ciclo di vita dei processi. Tali dati possono servire ad eseguire attendibili previsioni sulle prestazioni future.

• Uso di metriche: si misura per prendere decisioni e controllare i progressi.

• Livello 5- Ottimizzato– L’organizzazione migliora continuamente i propri processi,

stabilendo obiettivi quantitativi del miglioramento, evitando lecause di difetti, adottando miglioramenti tecnologici.

• Maturity Level 5 è il Nirvana: massima produttività del team, zero difetti, consegne in tempo, e budget rispettati!

Page 28: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

28

Ingegneria del Software 2 – Processo Software 55

Process Area (Area di Processo)

• Ad ogni livello di Maturità il CMMI associa le relative Aree di Processo (24 in tutto)

• Un’Area di Processo è un insieme di Pratiche correlate e necessarie a conseguire uno specifico Obiettivo(Goal).– Esempi di Process Areas: – Requirements Management (Livello 2), – Requirements Development (Livello 3),– Quantitative Project Management (Livello 4).

Ingegneria del Software 2 – Processo Software 56

Area di Processo, Goal e Pratiche

• Ogni Area di Processo ha sia Goal Specifici che Generici dell’Area

• Per ciascun Goal esistono un insieme di Pratiche(attività/ task importanti per raggiungere il Goal) sia Specifiche che Generiche.

Page 29: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

29

Ingegneria del Software 2 – Processo Software 57

Relazione tra Maturity levels, Process Areas, Goals e Practices

•Maturity level: organizza le aree di Processo

•Aree di processo: possiedono Goal specifici e generici, e Pratiche specifiche e generiche

•Caratteristiche comuni organizzano le pratiche generiche

Ingegneria del Software 2 – Processo Software 58

Componenti del modello CMMI

• Process Areas– Sono state identificate 24 differenti aree di processo,

organizzate in 4 gruppi e rilevanti al fine dell’individuazione dellacapacità del processo e della possibilità di migliorarlo

• Goals– I Goals rappresentano gli obiettivi organizzativi che si

vorrebbero ottenere, intesi come stato desiderato daraggiungere 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

Page 30: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

30

Ingegneria del Software 2 – Processo Software 59

Aree di Processo del CMMI (1/2)

Area Categoria

Gestione quantitativa del progetto

Implementazione di team integrati

Gestione dei rischi

Gestione integrata del progetto

Gestione degli accordi con I fornitori

Monitoraggio e Controllo del Progetto

Pianificazione del progettoGestione del Progetto

Innovazione e diffusione aziendale

Prestazioni aziendali del processo

Formazione aziendale

Focalizzazione aziendale del processo

Definizione aziendale del processoGestione del Processo

Ingegneria del Software 2 – Processo Software 60

Aree di Processo del CMMI (2/2)

Convalida

Area Categoria

Analisi e risoluzione di cause

Ambiente di integrazione aziendale

Analisi e risoluzione delle decisioni

Misurazione e analisi

Gestione della qualità del processo e prodotto

Gestione della configurazioneSupporto

Verifica

Integrazione del prodotto

Soluzione tecnica

Sviluppo dei requisiti

Gestione dei requisitiIngegneria

Page 31: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

31

Ingegneria del Software 2 – Processo Software 61

Esempi di Obiettivi (Goals) del CMMI

Obiettivo GenericoIstituzionalizzazione del processo come processo definito

Analisi e risoluzione di cause

Determinazione delle cause dei difetti

Sviluppo dei requisitiAnalisi e convalida dei requisiti, definizione delle funzionalità richieste

Monitoraggio e Controllo di progetto

Monitoraggio delle prestazioni e del progresso rispetto ai piani prefissati

Monitoraggio e Controllo di progetto

Azioni correttive atte ad eliminare deviazioni di un progetto dal suo piano

Area di ProcessoObiettivo

Ingegneria del Software 2 – Processo Software 62

Esempi di Norme (o Pratiche) del CMMI

Istituzionalizzazione del processo come processo definito

- Decisione e mantenimento di una politica aziendale per pianificare ed eseguire il processo di sviluppo dei requisiti.

- Assegnazione di responsabilità nell’esecuzione del processo, sviluppo dei work product ed erogazione dei servizi del processo di sviluppo dei requisiti.

Determinazione delle cause dei difetti

-Selezione di difetti da sottoporre all’analisi.

-Analisi causale dei difetti e proposta di azioni per rimuoverli

Analisi e convalida dei requisiti, definizione delle funzionalità richieste

-Analisi dei requisiti derivati per assicurarsi che siano necessari e sufficienti.-Convalida del prodotto per assicurarsi che offrirà il comportamento atteso

ObiettivoPratica

Page 32: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

32

Ingegneria del Software 2 – Processo Software 64

Capability Levels

• I livelli di Capacità esprimono quanto è capace una organizzazione a svolgere le pratiche di ciascuna area di processo.

Ingegneria del Software 2 – Processo Software 65

Livelli di Capacità del CMMI

• Livello 0 (Incompleta):– L’area del processo (es. Gestione dei Requisiti) non è

stata eseguita , o quanto meno non raggiunge tutti gli obiettivi dell’area

• Livello 1 (Eseguita)– Tutti gli obiettivi specifici dell’area sono stati soddisfatti,

conducendo tutte le pratiche previste. Tuttavia, siccome non è richiesto a questo livello che il processo sia istituzionalizzato, non sono garantite le prestazioni del processo

Page 33: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

33

Ingegneria del Software 2 – Processo Software 66

Livelli di Capacità del CMMI

• Livello 2 (Gestita):– Sono stati soddisfatti tutti i criteri del livello 1. In più, tutte le

attività sono pianificate, i prodotti del lavoro sono monitorati, controllati e verificati per aderire alla descrizione del processo

• Livello 3 (Definita)– Sono stati soddisfatti tutti i criteri del livello 2. In più, il

processo gestito viene adattato allo specifico progetto a partire dagli standard dell’organizzazione.

• Livello 4 (Gestita Quantitativamente)– Sono stati soddisfatti tutti i criteri del livello 3. In più, l’area di

processo è controllata e migliorata usando metodi statistici e criteri quantitativi.

Ingegneria del Software 2 – Processo Software 67

Livelli di Capacità del CMMI

• Livello 5 (Gestita):– Sono stati soddisfatti tutti i criteri del livello 4. In più, il

processo è in continua ottimizzazione, viene migliorato grazie allo studio delle prestazioni ottenute, l’analisi dei problemi verificatisi e l’adozione di strumenti correttivi.

Page 34: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

34

Ingegneria del Software 2 – Processo Software 68

Tipologie di Valutazioni CMMI

• Esistono due modalità di applicazione del modelloCMMI: – A Stadi (a Livelli)– Continua

• Nel primo caso si cerca di dare una valutazionegenerale 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 (su5 livelli) ad ogni aspetto del processo. – La valutazione globale del processo è una combinazione

delle valutazioni degli elementi

Ingegneria del Software 2 – Processo Software 69

Valutazione (a livelli) della Maturità del Processo

• La valutazione della Maturità dei processi di una organizzazione si determina in base ai livelli di capacità raggiunti in tutte le aree di determinate categorie.

• Per conseguire un dato livello di maturità, bisogna raggiungere almeno un certo livello di capacità in tutte le aree richieste da un certo livello di maturità.

Page 35: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

35

Ingegneria del Software 2 – Processo Software 70

Esempio

• Ad esempio, le aree di processo associate al livello diMaturità gestito (livello 2) sono 7:– Requirements management;– Project planning;– Project monitoring and control;– Supplier agreement management;– Measurement and analysis;– Process and product quality assurance;– Configuration management.

• Per ogni area è richiesto il Livello di Capacità 2 (o superiore)

Ingegneria del Software 2 – Processo Software 71

CMMI a stadi

Livello 1Iniziale

Livello 2Gestito

Livello 3Definito

Livello 4Gestito

Quantitativamente

Livello 5Ottimizzato

Page 36: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

36

Ingegneria del Software 2 – Processo Software 74

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).

Ingegneria del Software 2 – Processo Software 75

La Valutazione CMMI continua

• Diversamente dal modello a stadi, non classificauna organizzazione secondo livelli discreti.

• La valutazione della maturità non avvieneprendendo in considerazione l’intero processo nelsuo complesso, ma cercando di dare un giudizio dimaturità ad ogni sottoprocesso che è possibileindividuare nell’ambito del processo complessivo

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

Page 37: Gestione e Miglioramento dei Processi di Produzione del ...unina.stidue.net/Ingegneria del Software 2... · Ingegneria del Software 2 – Processo Software 4 Qualità dei Processi

37

Ingegneria del Software 2 – Processo Software 76

Un frammento di profilo di capacità del processo

54321

Convalida

Verifica

Gestione dei Requisiti

Gestione della Configurazione

Gestione del Rischio

Gestione degli accordi con i fornitori

Monitoraggio e Controllo del progetto

Ingegneria del Software 2 – Processo Software 77

Vantaggi

• Uno dei vantaggi del CMMI continuo è che le organizzazionipossono scegliere I processi da migliorare secondo le proprienecessità ed I requisiti.

• Ad esempio, una organizzazione può aver bisogno di migliorareI processi a diretto contatto con I clienti, mentre un’altra puòaver bisogno di migliorare quelli di gestione della configurazionee della validazione.

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