61
ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Embed Size (px)

Citation preview

Page 1: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

ISO/IEC12207Lo standard

internazionaleper

il ciclo di vitadel software

Page 2: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Per quale motivo è nato?

Il software con il passare del tempo è diventato parte integrante della vita di tutti i giorni per milioni di persone.

SW

Procedure, metodistrumenti, ambientiper lo sviluppo SW

???management e

ingegnerizzazione

Page 3: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Per quale motivo è nato?C’era la necessità di

“parlare la stessa lingua”

per creare e gestire software

Procedure, metodistrumenti, ambientiper lo sviluppo SW

migrazioneModellocomune

Page 4: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Quando è nato?

Nel 1989, un comitato tecnico (JTC1) costituito due anni prima dall’ISO e dall’IEC, comincia lo sviluppo di uno standard per il ciclo di vita di un software

1 Agosto 1995: viene pubblicato lo standard internazionale ISO/IEC 12207.

Al progetto hanno partecipato 17 nazioni (anche l’Italia)

Page 5: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

ISO/IEC 12207 Lo standard copre il ciclo di vita di un software, dal momento della concretizzazione delle idee fino al suo ritiro dal mercato.

L’architettura del software viene costituita tramite una serie di processi e di relazioni tra essi.

La derivazione di un processo da un altro è basata su due principi fondamentali: Modularità Responsabilità

Page 6: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Modularità

Ogni processo è un modulo a se stante ed è dedicato ad una singola funzione.

coesione

accoppiamento

Page 7: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Responsabilità

Ogni processo viene eseguito sotto la supervisione di un gruppo di lavoro.

Ogni gruppo di lavoro ha determinate responsabilità.

Un gruppo di lavoro può supervisionare più di un processo, ma difficilmente avviene il viceversa.(più gruppi di lavoro supervisionano lo stesso processo)

Page 8: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

I processi

I processi nel ciclo di vita del software sono raggruppati in tre classi principali: Processi primari Processi di supporto Processi organizzativi

Oltre alle tre classi di processi fondamentali, esiste anche un processo “speciale”, detto processo di tailoring

Page 9: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software
Page 10: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software
Page 11: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Suddivisione dei processi

Ogni processo è suddiviso in diverse attività, ed ogni attività a sua volta in vari compiti secondo uno schema gerarchico

Processo

Attività 1 Attività 2 Attività n

Compito 1 Compito n Compito 1 Compito n

…… …

Page 12: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Processi primari (5) 5 processi base sviluppati dalle parti principali coinvolte nel ciclo di vita del software, ovvero: l’acquirente il fornitore lo sviluppatore l’utente il manutentore

Provvedono a gestire le funzioni principali durante il ciclo di vita.

Page 13: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Processi primari (5) Acquisizione (5.1)

5 attività, suddivise in 23 compiti

Fornitura (5.2) 7 attività, suddivise in 24 compiti

Sviluppo (5.3) 13 attività, suddivise in 55 compiti

Esercizio (5.4) 4 attività, suddivise in 9 compiti

Manutenzione (5.5) 6 attività, suddivise in 24 compiti

Page 14: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Acquisizione (5.1) Contiene le attività e i compiti dell’acquirente.

Il processo comincia con la definizione della necessità di acquistare un sistema, un prodotto o un servizio software.

Il processo continua con la preparazione di una richiesta di preventivo, la selezione di un fornitore, il management del processo di acquisizione e termina con l’accettazione del sistema proposto.

Page 15: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Acquisizione (5.1)

Definizione delle necessità Richiesta di un preventivo Preparazione e aggiornamento del contratto Monitoraggio delle attività del fornitore Accettazione del prodotto

Page 16: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Fornitura (5.2)

Contiene le attività e i compiti del fornitore del prodotto software.

Il processo inizia con la contrattazione con l’acquirente per il prodotto o servizio SW

Il processo continua con la determinazione delle procedure e delle risorse necessarie per gestire il progetto.

Il processo termina con la consegna del sistema (prodotto o servizio) all’acquirente

Page 17: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Fornitura (5.2) Inizializzazione Preparazione di un preventivo Contratto Planning Esecuzione e controllo Revisione e valutazione Consegna e completamento

Le prime due attività sono svolte prima dell'accordo mentre le ultime 5 dopo l'accordo.

Page 18: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Sviluppo (5.3) Contiene le attività e i compiti dello sviluppatore del software

Il termine sviluppo è riferito sia allo sviluppo di nuovo software sia a modifiche di software già esistente.

Il processo di sviluppo può essere inteso come: sviluppo di un prototipo del sistema studio dei requisiti e design di un prodotto effettiva produzione di un prodotto

Page 19: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Sviluppo (5.3) implementazione del processo analisi dei requisiti del sistema e del sw design dell’architettura del sistema e sw design dettagliato del software codifica e testing del software integrazione del sistema e del software test di qualità del sistema e del software installazione del software supporto all’accettazione del software

Page 20: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Esercizio (5.4)

Contiene le attività e i compiti di chi utilizza il software: l’utente finale.

Consiste nella conduzione delle operazioni richieste e operate dagli utenti del software e nella gestione delle stesse.

Comprende anche un’iniziale fase di collaudo per verificare l'uso del prodotto software operante nell'ambiente per il quale è stato richiesto.

Page 21: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Esercizio (5.4)

Implementazione del processo Testing operazionali Operazioni sul sistema Supporto all’utente

Page 22: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Manutenzione (5.5)

Contiene le attività e i compiti del manutentore del sistema.

Il processo viene pianificato in modo che la conduzione delle attività, di gestione delle modifiche e di analisi del tipo di manutenzione (adattativa, correttiva o di emergenza) sia il più possibile semplice e a costi minimi.

Page 23: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Manutenzione (5.5)

Lo scopo è quello di modificare il software già esistente mantenendone l’integrità.

Per apportare effettivamente le modificheal software, viene invocato il processo di sviluppo (5.3).

Il processo termina con il ritiro del sistema.

Page 24: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Manutenzione (5.5)

implementazione del processo analisi del problema e delle modifiche implementazione delle modifiche revisione/accettazione della manutenzione migrazione ritiro del software

Page 25: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Processi di supporto (6)

I Processi di Supporto e di Controllo supportano gli altri processi del ciclo di vita del software e contribuiscono al successo e alla qualità di un progetto software.

Un processo di supporto può essere richiesto da uno dei cinque processi primari o da un altro processo di supporto.

Page 26: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Processi di supporto (6)

Documentazione (6.1) 4 attività, suddivise in 7 compiti

Gestione della configurazione (6.2) 6 attività, suddivise in 6 compiti

Assicurazione di qualità (6.3) 4 attività, suddivise in 16 compiti

Verifica (6.4) 2 attività, suddivise in 13 compiti

Page 27: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Processi di supporto (6)

Validazione (6.5) 2 attività, suddivise in 10 compiti

Revisione congiunta (joint review) (6.6) 3 attività, suddivise in 8 compiti

Revisione (audit) (6.7) 2 attività, suddivise in 8 compiti

Risoluzione del problema (6.8) 2 attività, suddivise in 2 compiti

Page 28: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Documentazione (6.1) Si occupa della registrazione di tutto ciò che è stato prodotto nel ciclo di vita del software: dalle informazioni ai requisiti del sistema, dagli input agli output del prodotto.

I documenti relativi a questo processo presentano tutte le attività relative alla pianificazione, alla progettazione, allo sviluppo, alla manutenzione e alla gestione totale del processo produttivo.

Page 29: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Documentazione (6.1)

implementazione del processo progetto e sviluppo della documentazione produzione della documentazione manutenzione della documentazione

Page 30: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione della configurazione (6.2)

Prevede attività e compiti relativi all'applicazione di procedure tecniche ed amministrative per assicurare la completezza, la consistenza e la correttezza degli elementi software.

In questo processo bisognerà identificare, registrare, analizzare e verificare i possibili cambiamenti dell'elemento software specificando approvazioni e rifiuti (controllo della configurazione).

Page 31: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione della configurazione (6.2)

Questo processo fornisce un meccanismo per identificare, controllare e tracciare le versioni di ogni elemento del software.

In molti casi le versioni del software precedentemente prodotto e ancora in uso devono subire manutenzione e devono essere anche controllate in maniera accurata.

Page 32: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione della configurazione (6.2)

implementazione del processo identificazione della configurazione controllo della configurazione documentazione della configurazione valutazione della configurazione gestione delle versioni e dei rilasci

Page 33: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Assicurazione di qualità (6.3)

Ha lo scopo di prevenire il presentarsi dei problemi, di individuarli quando si presentano, di identificarne le cause e di trovarvi rimedio.

L'assicurazione della qualità comprende tutte le attività del management, il quale determina le politiche per la qualità, gli obiettivi e le responsabilità, e le implementa attraverso la pianificazione, il controllo e il miglioramento della qualità.

Page 34: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Assicurazione di qualità (6.3)

L'assicurazione di qualità riguarda sia il prodotto sia il processo: Il prodotto deve essere conforme ai requisiti ed aderire ai vari piani di progetto e sviluppo al fine di poter possedere gli specificati attributi di qualità.

Il processo, oltre ad essere conforme a quanto specificato ed aderire alla pianificazione, deve rispettare gli standard utilizzati per la sua implementazione.

Per maggiori informazioni vedi ISO 9001

Page 35: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Assicurazione di qualità (6.3)

implementazione del processo assicurazione qualità del prodotto assicurazione qualità del processo assicurazione del sistema qualità

Page 36: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Verifica (6.4) E’ costituito da attività e compiti atti a determinare se i requisiti del prodotto, sistema o servizio software sono completi e corretti e se essi sono soddisfatti.

Tale processo deve essere integrato nei processi primari di sviluppo, fornitura e manutenzione.

Consiste nella verifica di processi, requisiti, design, codifica, integrazione e documentazione.

Page 37: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Verifica (6.4)

implementazione del processo verifica

Page 38: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Validazione (6.5) Serve a determinare se il prodotto finale offerto soddisfa l'utilizzo per cui è stato creato.

La validazione non è un processo da eseguire al termine della produzione, ma esso può essere completato nelle prime fasi dello sviluppo.

Questo processo solitamente viene invocato al momento dell’attività di supporto all’accettazione del software (5.3.13).

Page 39: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Validazione (6.5)

implementazione del processo validazione

Page 40: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Revisione congiunta (joint review) (6.6)

In questo processo si procede alla pianificazione delle revisioni congiunte tra acquirente e fornitore che avverranno sulla base di un calendario di incontri fissato all'inizio del progetto.

In una joint review, il fornitore presenta all’acquirente il progresso nelle operazioni e tutta la documentazione finora prodotta, per la valutazione e l’approvazione.

Page 41: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Revisione congiunta (joint review) (6.6)

implementazione del processo revisione della gestione del progetto revisione tecnica del progetto

Page 42: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Revisione (audit) (6.7) Processo relativo alla determinazione della verifica della conformità ai requisiti, ai piani ed ai contratti stabiliti.

Il processo di revisione dovrà essere condotto da personale che non ha nessuna responsabilità diretta sullo sviluppo dei prodotti, dei servizi o dei sistemi che si revisionano.

Le attività della revisione dovranno essere condotte rispettando i piani e il contratto.

Page 43: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Revisione (audit) (6.7)

implementazione del processo revisione (audit)

Page 44: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Risoluzione del problema (6.8)

Scopo di questo processo è fornire tempestivamente le risorse per assicurare la risoluzione dei problemi appena essi sono rilevati.

Quando si verifica o si rileva un problema durante le fasi di sviluppo, di manutenzione, o di altri processi è necessario documentarlo dettagliatamente, accertarne l'effettiva esistenza, per poi risolverlo (anche in diversi modi).

Page 45: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Risoluzione del problema (6.8)

Prima però di risolverlo sarà opportuno valutarne la priorità e l’importanza rispetto agli altri utilizzando un parametro di riferimento.

Questo processo non entra in gioco solamente quando si evidenzia un problema durante il ciclo di vita, ma anche quando il processo non è più conforme ai requisiti richiesti.

Page 46: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Risoluzione del problema (6.8)

implementazione del processo risoluzione del problema

Page 47: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Processi organizzativi (7)

I processi organizzativi sono impiegati in un’organizzazione per stabilire e implementare una struttura a supporto e per il continuo miglioramento di: processi del ciclo di vita struttura organizzativa personale

Supportano qualsiasi altro processo del ciclo di vita del software.

Page 48: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione del progetto (7.1) 5 attività, suddivise in 12 compiti

Gestione dell’infrastruttura (7.2) 3 attività, suddivise in 5 compiti

Miglioramento (7.3) 3 attività, suddivise in 6 compiti

Addestramento (7.4) 3 attività, suddivise in 4 compiti

Processi organizzativi (7)

Page 49: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione del progetto (7.1)

Il processo contiene tutte le generiche attività e compiti, che possono essere impiegate all'interno del processo di produzione per gestire i rispettivi “processi”.

Il management è responsabile per la gestione del prodotto, del progetto e dei compiti applicabili nei processi primari o di supporto.

Page 50: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione del progetto (7.1)

Iniziazione e definizione dello scopo Pianificazione Esecuzione e controllo Revisione e valutazione Chiusura del progetto

Page 51: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione dell’infrastruttura (7.2)

Processo che assicura il corretto svolgimento di tutte le attività di produzione.

Serve a stabilire e mantenere l’infrastruttura sottostante al ciclo di vita del software.

L’infrastruttura può includere hardware, software, strumenti, tecniche, ulteriori standard e le conoscenze di base per lo sviluppo, l’esercizio e la manutenzione.

Page 52: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Gestione dell’infrastruttura (7.2)

implementazione del processo costituzione dell'infrastruttura manutenzione dell'infrastruttura

Page 53: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Miglioramento (7.3)

Definisce le attività necessarie a migliorare il ciclo di vita di un software.

Sono di fondamentale importanza esperienze passate, poiché aiutano l’approccio al problema.

Futuri progetti potranno trarre beneficio dalle operazioni di miglioramento effettuate.

Page 54: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Miglioramento (7.3)

Costituzione del processo Controllo e valutazione del processo Miglioramento del processo

Lo standard su questo punto è molto vago, consiglia solamente di produrre documentazione e di rivedere progetti passati per accorgersi

degli errori già commessi.

Page 55: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Addestramento (7.4)

Tale processo è inerente alla formazione e addestramento del personale.

I processi primari dipendono dalle conoscenze e dalle capacità del personale sia dell'azienda fornitrice sia di quella acquirente.

Il personale deve essere addestrato e formato costantemente.

Page 56: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Addestramento (7.4)

implementazione del processo sviluppo del materiale di formazione formazione

Page 57: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Tailoring: il processo speciale

I processi, le attività ed i compiti dello standard sono stati progettati in modo da poter essere adattati (tailored) a specifiche esigenze (ambienti, progetti, domini applicativi, etc..).

Il processo di tailoring descrive cosa fare per “adattare” gli altri processi software.

Page 58: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Tailoring: il processo speciale

Il tailoring consiste nella cancellazione di processi, attività e compiti non applicabili al caso specifico e nell'aggiunta di processi, attività o compiti non presenti nello standard e necessari per il caso specifico.

L’aggiunta di processi, attività e compiti deve essere adeguatamente documentata nel contratto.

Page 59: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Tailoring: il processo speciale

identificazione dell'ambiente di sviluppo coinvolgimento delle parti individuazione dei processi, delle attività e dei compiti necessari

documentazione della decisione di eliminare o aggiungere processi, attività o compiti

Page 60: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Interazioni tra processi

Nel prossimo lucido vedremo come i vari processi del ciclo di vita di un software (primari, di supporto e organizzativi) interagiscono tra loro.

Page 61: ISO/IEC 12207 Lo standard internazionale per il ciclo di vita del software

Progetto

acquisizione fornitura manutenzione

esercizio

sviluppo

U

U

TT

E

JOINTREVIEW

V & V

AUDIT

P E

E

E

P

E

QUALITÁE

RISOLUZ.PROBLEMI

E EE

DOCUMENTAZIONE

CONTROLLOGESTIONE

E

Organizzazione

PROGETTO INFRASTRUTTURA MIGLIORAMENTO FORMAZIONE

gestisce feedback

tailoringU U

T: da il compitoE: esegueP: partecipaU: utilizza