System and software engineering - Software life
cycle processes
La norma ha lo scopo principale di definire una struttura
comune in modo
che i professionisti coinvolti nello sviluppo del software (committenti,
fornitori, sviluppatori, manutentori, operatori, manager e tecnici) possano
utilizzare un linguaggio comune. Tale linguaggio comune è basato su di una
struttura di processi, attività, compiti e risultati prodotti. Il modello è
flessibile e modulare in modo che ciascuno possa personalizzarlo a seconda
delle proprie esigenze organizzative dei singoli progetti software.
La norma, emessa nel 1995, è stata aggiornata nel 2008.
Lo standard stabilisce i processi presenti nel ciclo di
vita del software e, per ciascuno di essi, le attività da svolgere e i
risultati da produrre (outcomes).
Sono definiti 23 processi (43 processi a livello di
sistema e di software), 95 attività , 325 compiti (tasks) e 224
risultati (outcomes).
I processi sono suddivisi dalla norma in tre categorie:
-
Processi
primari, comprendenti le
attività direttamente legate allo sviluppo del software;
-
Processi
di supporto, che includono la
gestione dei documenti e dei processi di controllo della
qualità;
-
Processi
organizzativi, che coprono gli
aspetti manageriali e di gestione delle risorse.
Per ciascun processo la norma evidenzia chiaramente:
-
obiettivo e responsabilità,
-
lista delle attività che lo compongono,
-
singoli compiti nei quali è suddivisa
ogni attività.
1. Processi primari
I processi primari definiti dalla norma ISO 12207
indirizzano i seguenti processi produttivi e le relative attività:
Processes |
Activities |
Acquisition
Il processo ha lo scopo
di ottenere il prodotto/servizio che
soddisfa le necessità del cliente (i
requisiti concordati).
Il processo inizia con
l'identificazione dei requisiti e termina
con l'accettazione della fornitura.
|
Acquisition Preparation
Supplier Selection
Supplier Monitoring
Customer Acceptance |
Supply
Il processo ha lo scopo di fornire al
cliente il prodotto/servizio che soddisfa le
sue necessità (i requisiti concordati).
|
Proposal Preparation
Contract
Planning
Execution and Control
Review and Evaluation
Release and Completion |
Development
Il processo ha lo scopo di sviluppare un
prodotto software, o un sistema basato sul
software, che indirizzi le esigenze del
cliente (cioè i requisiti concordati). Le
attività del processo sono suddivise
rispetto al ruolo dello sviluppatore e a
quello del cliente. |
Requirements Elicitation
System Requirements Analysis
System Architecture Design
Software Requirements Analysis
Software Architecture Design
Software Construction (Code and Unit Test)
Software Integration
Software Testing
System Integration
System Testing
Software Installation |
Operation
La fase di Operation è svolte
simultaneamente alla fase di Manutenzione.
Il processo ha lo scopo di mantenere
operativo il sistema e di fornire il
supporto agli utenti.
|
Operational Use
Customer Support |
Maintenance
Le fase di Manutenzione è svolta
simultaneamente alla fase precedente di
Operation.
Il processo ha lo scopo di modificare il
prodotto software dopo il suo rilascio per
correggere i difetti, migliorare le sue
prestazioni o altri attributi o adattarlo a
cambiamenti nell'ambiente operativo
|
Defect or Request for Change Analysis
Change Implementation
Review/Acceptance of Changes
Migration
Software Withdrow |
Ciascun processo primario è definito e descritto dalla norma in termini di
attività (activities) e compiti (tasks).
Ogni
compito (task), a sua volta, indica cosa occorre fare ("what to do")
e non "come" la si deve fare ("how to do").
In particolare, la norma fa uso dei seguenti "verbi" per
indicare i diversi livelli di obbligatorietà:
-
dovrà, per la definizione dei requisiti;
-
dovrebbe, per specificare le
raccomandazioni;
-
può, per indicare il permesso a fare
qualcosa, o il fatto di essere in grado di farla;
-
qualunque altro (tempo presente), per
descrivere un preambolo o per descrivere il contesto.
Per una descrizione completa e dettagliata della norma
occorre fare riferimento alla norma stessa.
2. Processi di supporto
I processi di supporto definiti dalla norma ISO 12207
indirizzano le seguenti attività principali e di dettaglio:
Processes |
Activities |
Documentation |
Il processo di "Gestione della
documentazione" garantisce lo sviluppo e la
manutenzione delle informazioni prodotte e
registrate relativamente al prodotto
software.
|
Configuration Management |
Il processo di "Gestione della
configurazione" ha lo scopo di definire e
mantenere l'integrità di tutti i componenti
della configurazione (Configuration
Items) e di renderli accessibili a chi
ne ha diritto. |
Quality Assurance |
Il processo di "Assicurazione qualità" ha lo
scopo di assicurare che tutti i prodotti di
fase (work product) siano conformi
con i piani e gli standard definiti.
|
Verification |
Il processo di "Verifica" ha lo scopo di
confermare che ciascun work product
o servizio realizzato da un processo
soddisfi i requisiti specioficati.
Il processo di Verifica deve essere
integrato nei processi di Sviluppo,
Fornitura e Manutenzione.
Se la verifica viene eseguita da terzi,
questa viene definita come "Processo di
verifica indipendente". |
Validation |
Il processo di "Validazione" ha lo scopo di
confermare che i requisiti siano rispettati
quando uno specifico work product (o
componente software) sia utilizzato
nell'ambiente destinatario. |
Joint Review |
Il processo di "Revisione congiunta" ha lo
scopo di rivedere con le parti interessate (stakeholders)
i processi eseguiti rispetto agli obiettivi
definiti negli accordi e le cose da fare per
assicurare lo sviluppo di un prodotto che
soddisfi i requisiti concordati.
Le revisioni sono svolte durante l'intero
ciclo di vita, sia a livello di progetto che
a livello tecnico.
La revisione congiunta è svolta tra gli
stessi componenti del team (Peer Review)
quando si revisioni un componente del
prodotto oppure tra fornitore e committente
quando si revisioni l'intero prodotto.
|
Audit |
Il processo di "Audit" ha lo scopo di
determinare in maniera indipendente la
conformità di prodotti e processi
selezionati ai requisiti, piani e accordi.
L'attività di auditing è svolta da personale
che non ha partecipato direttamente allo
sviluppo dei prodotti, sei servizi o dei
sistemi oggetto delle revisioni. |
Problem Resolution |
Il processo di "Risoluzione dei problemi" ha
lo scopo di assicurare che tutti i problemi
individuati siano analizzati e risolti
secondo andamenti (trend)
riconosciuti.
|
Usability |
Il processo di "Usabilità" ha lo scopo di
assicurare che siano prese in
considerazione, ed opportunamente
indirizzate, le considerazioni espresse
dalle parti interessate (stakeholders)
relativamente alla facilità d'uso del
prodotto finale da parte degli utenti cui è
rivolto, al supporto che ne riceverà, alla
formazione, all'incremento della
produttività, alla qualità del lavoro,
all'accettazione del prodotto stesso.
|
Product Evaluation |
Il processo di "Valutazione del prodotto" ha
lo scopo principale di assicurare, tramite
esami e misure, che il prodotto soddisfi le
necessità esplicite ed implicite degli
utilizzatori del prodotto stesso. |
I processi di supporto aiutano le attività di tutti gli
altri processi dell'organizzazione a garantire il successo e la qualità del
progetto.
Questi processi possono essere attivati da un processo
primario o da un altro processo di supporto.
3. Processi organizzativi
I processi organizzativi definiti dalla norma ISO 12207
indirizzano le seguenti attività di gestionali:
Processes |
Activities |
Management |
Il processo di "Gestione della
documentazione" garantisce lo sviluppo e la
manutenzione delle informazioni prodotte e
registrate relativamente al prodotto
software.
|
Innfrastructure |
Il processo di "Gestione della
configurazione" ha lo scopo di definire e
mantenere l'integrità di tutti i componenti
della configurazione (Configuration
Items) e di renderli accessibili a chi
ne ha diritto. |
Improvement |
Il processo ha lo scopo di stabilire,
valutare, misurare, controllare e migliorare
il ciclo di vita del software. |
Human Resources |
Il processo ha lo scopo di fornire
all'organizzazione risorse umane adeguate e
di mantenere le loro competenze consistenti
con le necessità del business.
|
Asset Management |
Il processo ha lo scopo di gestire gli
elementi definiti come "asset" lungo
l'intera loro vita.
|
Reuse Program Management |
Il processo ha lo scopo di pianificare,
stabilire, gestire, controllare e monitorare
il programma di riuso formulato
dall'organizzazione e di utilizzare
sistematicamente le opportunità di riuso
identificate.
|
Domain Engineering |
Il processo ha lo scopo principale di
sviluppare e manutenere modelli,
architetture e asset del dominio in cui
opera il prodotto software sviluppato.
|
Tali processi eseguono funzioni a livello organizzativo
aziendale, per supportare altri processi primari, di supporto o
organizzativi.
I processi organizzativi aiutano nel definire,
controllare e migliorare gli altri processi.
Per una descrizione completa e dettagliata della norma
occorre fare riferimento ala norma stessa.
Miglioramento continuo
La norma fa proprio il ciclo di
miglioramento dei processi basato sulla sequenza Plan-Do-Check-Act (pianifica, esegui,
controlla, attua eventuali modifiche).
L'AICQ-CI
ha realizzato un apposito quaderno che tratta l'argomento e fornisce validi
suggerimenti su come applicare la norma ISO 12207 nelle organizzazioni
software.
"Quaderno
N. 17. Settembre 2004. Modello dei processi ISO 9000 applicato in aziende di
sviluppo software e fornitura di servizi IT. Aicq-ci"
|