Gestione delle configurazioni software

Gestione delle configurazioni
software
Attività ausiliaria che abbraccia tutto il processo software.
Un cambiamento può avvenire in qualunque momento.
Le attività di SCM hanno lo scopo di:
1. Riconoscere il cambiamento
2. Controllarlo
3. Garantire che sia opportunamente implementato
4. Riferire agli interessati l’avvenuto cambiamento
1
Cambiamenti
Cambiamenti nei
requisiti funzionali
Cambiamenti nei
requisiti non funzionali
altri
documenti
modelli software
Piano
di
progetto
dati
Test
codice
2
La configurazione del software
programmi
Le parti
documenti
dati
3
Origine dei cambiamenti
• Nuove condizioni aziendali o di mercato, che dettano un
cambiamento nei requisiti del prodotto o nelle regole
aziendali
• Nuove esigenze della clientela, che richiedono una
modifica nei dati prodotti dal sistema, nelle funzionalità
del prodotto o del servizio offerto
• Riorganizzazione o riduzione delle dimensioni
dell’azienda, che causa un cambiamento nelle
precedenze fra progetti e nella struttura dei team addetti
allo sviluppo software
• Vincoli finanziari o di tempo che costringono a ridefinire il
sistema o il prodotto
4
Documenti acquisiti
•
L’IEEE (IEEE Std. No. 610.12-1990) definisce così il concetto di
documento acquisito:
• Una specifica o un prodotto formalmente revisionato e
accettato, che serve in seguito da fondamento per un
ulteriore sviluppo, e che può essere modificato solo
attraverso procedure formali di controllo del cambiamento
• Un documento acquisito è un “punto critico” nello sviluppo del
software, segnato dalla consegna di un elemento della
configurazione e dall’approvazione di tale elemento, ottenuta
attraverso delle revisioni tecnico formali
5
Documenti acquisiti
modified
SCIs
Project database
Software
engineering
tasks
SCIs
Formal
technical
reviews
approved
SCIs
stored
SCIs
extracted
SCM
controls
SCIs
BASELINES:
System Specification
Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
6
Oggetti della configurazione software
Data model
Design specification
data design
architectural design
module design
interface design
Component N
Test specification
interface description
algorithm description
PDL
test plan
test procedure
test cases
Source code
7
L’archivio SCM
• L’archivio SCM è un database che rappresenta il centro
di accumulazione e memorizzazione delle informazioni
del progetto
• L’archivio consente di svolgere o concretizzare le
seguenti funzioni:
– Integrità dei dati
– Condivisione dell’informazione
– Integrazione degli strumenti
– Integrazione dei dati
– Applicazione della metodologia
– Standardizzazione dei documenti
8
Caratteristiche dell’archivio
u se -case s
an aly sis m o d e l
b u sin e ss ru le s
b u sin e ss fu n ct io n s
o rg an izat io n st ru ct u re
in fo rm at io n arch it e ct u re
b e h av io ral d iag ram s
d e sig n m o d e l
arch it e ct u ral d iag ram s
Business
Cont ent
so u rce co d e
sce n ario -b ase d d iag ram s
flo w -o rie n t e d d iag ram s
class-b ase d d iag ram s
o b j e ct co d e
sy st e m b u ild in st ru ct io n s
Const ruct ion
Cont ent
in t e rface d iag ram s
co m p o n e n t -le v e l d iag ram s
t e ch n ical m e t rics
t e st case s
t e st scrip t s
t e st re su lt s
q u alit y m e t rics
Model
Cont ent
V&V
Cont ent
p ro j e ct e st im at e s
p ro j e ct sch e d u le
Project
Management
Cont ent
SCM re q u ire m e n t s
ch an g e re q u e st s
ch an g e re p o rt s
SQA re q u ire m e n t s
p ro j e ct re p o rt s/ au d it re p o rt s
p ro j e ct m e t rics
Document s
Pro je ct Plan
SCM/ SQA Plan
Sy st e m Sp e c
Re q u ire m e n t s Sp e c
De sig n Do cu m e n t
Te st Plan an d Pro ce d u re
Su p p o rt d o cu m e n t s
Use r m an u al
9
Caratteristiche della gestione delle modifiche al
software
•
•
•
•
•
Gestione delle versioni
– Salva tutte le versioni per consentire una gestione efficace delle release del
prodotto, e per consentire agli sviluppatori di tornare alle versioni precedenti
durante la fase di collaudo e debugging
Monitoraggio delle dipendenze e gestione dei cambiamenti
– L’archivio gestisce un’ampia varietà di relazioni fra gli elementi e i dati in esso
immagazzinati
Monitoraggio dei requisiti
– Offre la possibilità di monitorare tutti i componenti del progetto e i prodotti che
derivano da una determinata parte della specifica dei requisiti. Inoltre, offre la
possibilità di identificare quale requisito ha generato un dato prodotto.
Gestione della configurazione
– Registra una serie di configurazioni che rappresentano specifici risultati del
progetto o release di produzione.
Audit trail.
– Stabilisce ulteriori informazioni riguardanti chi, quando e perchè ha effettuato una
certa modifica
10
Il processo di gestione delle configurazioni
Risposte alle domande:
• In che modo un team software identifica gli elementi di una
configurazione software?
• Come può un’organizzazione identificare e gestire le molte versioni
esistenti di un programma (e la relativa documentazione) per poter
apportare le opportune modifiche in modo efficiente?
• Come fa un’organizzazione a controllare le modifiche prima e dopo
del rilascio del software al cliente?
• Chi è responsabile di approvare le modifiche e di definirne le
priorità?
• Come assicurare che le modifiche siano state eseguite in maniera
opportuna?
• Quale meccanismo viene utilizzato per notificare agli interessati le
modifiche avvenute?
11
Il processo di gestione delle configurazioni
Software
Vm.n
reporting
configuration auditing
version control
change control
identification
SCIs
12
Controllo delle versioni
•
•
Il controllo delle versioni combina procedure e strumenti al fine di governare
versioni diverse degli elementi della configurazione, prodotti nel corso del
progetto software
Un sistema per il controllo delle versioni implementa o viene integrato
direttamente con quattro funzionalità principali:
– un database di progetto che contiene tutti gli oggetti di configurazione
rilevanti
– una funzionalità di gestione delle versioni che memorizza tutte le
versioni di un oggetto di configurazione
– una funzionalità make che consente all’ingegnere software di
raccogliere tutti gli oggetti di configurazione rilevanti e costruire una
specifica versione del software
– un monitoraggio dei bug che consente al team di registrare e
monitorare lo stato di tutti i problemi associati all’oggetto di
configurazione
13
Processo di controllo del cambiamento
Si riconosce l’esigenza di una modifica
Richiesta di modifica dall’utente
Lo sviluppatore valuta la richiesta
Si produce una relazione
L’autorità di controllo delle modifiche decide
La richiesta è posta in coda
Richiesta respinta
l’utente viene informato
14
Processo di controllo del cambiamento
Assegnazione del personale agli SCI
Estrazione degli SCI dall’archivio
Modifica
Revisione del cambiamento
Documento acquisito per il collaudo
15
Processo di controllo del cambiamento
Esecuzione SQA e collaudo
Reinserimento degli oggetti modificati
Ratifica delle modifiche da iincludere nella nuova versione
Costruzione della nuova versione del software
Revisione per tutti gli elementi della configurazione
Inserimento delle modifiche nella nuova versione
16