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 » 20.Gestione e Miglioramento dei Processi di Produzione del Software


Argomenti

  • Qualità del processo e del prodotto
  • Classificazione dei Processi
  • Misure dei Processi
  • Analisi e Modellazione dei Processi
  • Cambiamenti nei Processi

Qualità dei Processi

Il Processo Software rappresenta l’insieme delle attività produttive che vengono realizzate durante tutte le fasi del Ciclo di Vita del Software.

Esiste un legame empirico tra la qualità del processo software e la qualità dei prodotti software.

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

Esistono, comunque, anche altri attributi di qualità di un processo che possono essere migliorati.

Attributi di un processo software


Ciclo di miglioramento del processo

Misurazione del processo
Vengono misurati attributi di qualità del processo.

Analisi del processo
Il processo di sviluppo utilizzato è analizzato allo scopo di trovare debolezze e colli di bottiglia.

Cambiamento del processo
Introduzione dei cambiamenti individuati in fase di analisi nel processo.


Fattori di Qualità dei prodotti software

I quattro fattori che influiscono sulla qualità dei prodotti software.

I quattro fattori che influiscono sulla qualità dei prodotti software.


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 importante soprattutto nei piccoli progetti.

In ogni caso, limitazioni sul tempo di realizzazione influiranno di sicuro negativamente sulla qualità del prodotto risultante.

Classificazione dei processi

  • 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.
  • Processi Metodici
    • C’è ricorso contemporaneo a modelli di processo sistematici, a metodi di sviluppo definiti, e a strumenti CASE a supporto dell’esecuzione.
  • Processi di miglioramento
    • Oltre ad essere metodici, prevedono anche analisi quantitative volte al miglioramento del processo stesso.

Applicabilità del Processo

Applicabilità di diversi tipi di processo a diversi tipi di prodotto.

Applicabilità di diversi tipi di processo a diversi tipi di prodotto.


Scelta del processo

  • Il processo utilizzato dovrebbe dipendere dalla tipologia del prodotto da sviluppare
    • Per grandi sistemi, il management è di solito il problema più significativo da risolvere, cosicchè, un processo precisamente 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 applicabile uniformemente e senza adattamenti in ogni organizzazione
    • L’applicazione di un processo inappropriato può portare ad un aumento dei costi e ad un peggioramento della qualità del processo.

Strumenti a supporto dei processi software

Supporto degli strumenti al processo software.

Supporto degli strumenti al processo software.


Misurazioni di processo

Le misurazioni di processo e di prodotto sono fondamentali per il miglioramento dei processi.

È auspicabile la raccolta di misure quantitative dei dati del processo.
È 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.

Tipologie di misure di processo

  • Tempo impiegato;
  • Risorse richieste
    • Ad esempio sforzo, calcolato in giorni-uomo
      • Il giorno-uomo (e il multiplo mese-uomo) è l’unità di misura comunemente 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, è ancora possibile utilizzare l’approccio GQM (Goal/ Questions/ Metrics).

Goal-Question-Metric Paradigm

Goals
Quali sono gli scopi che l’organizzazione cerca di ottenere? L’obiettivo del miglioramento del processo è di soddisfare questi scopi (es. Migliorare la produttività dei programmatori, tempi di sviluppo, affidabilità del prodotto…).

Questions
Servono a specificare meglio gli obiettivi. Es. Come aumentare il numero di LOC controllate via debug?come ridurre I tempi per individuare I requisiti? Come valutare l’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.

[V. Basili, D. Rombach, The TAME Project: towards improvement oriented software environments, IEEE Transactions on Software Engineering]

Analisi e Modellazione del processo

  • La prima condizione necessaria al miglioramento del 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à.

Analisi e Modellazione del processo (segue)

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

Il passo successivo alla comprensione consiste nel produrre 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ò essere necessario discutere delle attività con le persone coinvolte, per individuare problemi e possibili soluzioni.

Tecniche di analisi dei processi

  • 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 modelli potranno 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 una osservazione diretta sul campo. Può servire ad ottenere una conoscenza approfondita di specifici aspetti del processo, piuttosto che per una visione complessiva sullo stesso.

Elementi di un modello di processo


Elementi di un modello di processo (segue)


Esempio: modellazione del test di modulo


Modifica del processo

Per ottenere il miglioramento di un processo, può essere necessario 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 ci permettono di prevedere il raggiungimento di benefici in termini di goals misurabili.

Procedura di modifica del processo

Le attività fondamentali di una procedura di modifica di un processo software.

Le attività fondamentali di una procedura di modifica di un processo software.


I cinque passi della procedura di modifica

1. Identificare i miglioramenti:
Definire le proposte in grado di rimuovere colli di bottiglia, debolezze (rispetto a qualità/ tempistica/ costi) del processo.

2. Assegnare priorità ai miglioramenti.
Stabilire le priorità delle modifiche in base ai costi, impatti, dipendenze…

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

I cinque passi della procedura di modifica (segue)

4. Addestramento riguardo alle modifiche.
Occorre istruire il personale riguardo alle modifiche introdotte, al fine di trarre un pieno beneficio dalla loro introduzione.

5. Raffinamento delle modifiche.
Dopo l’introduzione delle modifiche, sarà necessaria una fase di rifinitura delle modifiche stesse, al fine di superare gli inevitabili problemi che potranno verificarsi.

Business Process Reengineering

Negli anni ‘90 prese piede la moda della re-ingegnerizzazione dei processi aziendali [Hammer, Reengineering Work: Don't automate, obliterate. Harward Business Review, July-Aug. 1990, pp. 104-112.]

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.

  • 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