SlideShare a Scribd company logo
Configuration Management
Configuration Management
Corso di Gestione dei Progetti Software
di
Francesco Garofalo,
Antonio Fasulo Prof.ssa F.Ferrucci
Configuration Management
Configuration Management
Perché il Configuration Management? 1/2
I sistemi software cambiano continuamente durante lo sviluppo e l’uso.
I sistemi SW grandi e complessi richiedono molti più cambiamenti rispetto a
sistemi di piccola taglia, e la gestione dei cambiamenti in sistemi di grandi
dimensioni è complessa e non banale.
Il concetto di Configuration Management (CM) è nato per gestire i
cambiamenti nei sistemi di grossa taglia.
La maggior parte dei sistemi può essere pensata come un insieme di versioni,
ognuna delle quali deve essere mantenuta e gestita.
Configuration Management
Configuration Management
Perché il Configuration Management? 2/2
Configuration Management
Configuration Management
Definizione
La Configuration Management riguarda le politiche, i processi e gli strumenti
per la gestione dei sistemi software in evoluzione.
La Software Configuration Management è stata definita da Bersoff, Henson e
Siegel come la disciplina che identifica la configurazione di un sistema in
momenti distinti nel tempo allo scopo di controllare sistematicamente i
cambiamenti e garantire l’integrità e la tracciabilità di ogni configurazione per
tutto il ciclo di vita.
Configuration Management
Configuration Management
Un po’ di storia 1/2
La CM nasce nel 1950 da un bisogno dell’industria aerospaziale, che aveva
necessità di garantire la riproducibilità degli aircraft e per la gestione
dell’ingegneria dei cambiamenti.
Negli anni 70 con la distribuzione dei
software e dei computer su larga scala, il
problema del configuration
management e change management si
inizia ad evidenziare sempre di più.
Per lo Univac 1100 exec-8 i
manutentori utilizzavano “card
correttive” di vario colore per
distinguerle.
Configuration Management
Configuration Management
Un po’ di storia 2/2
A cavallo tra gli anni 70 e 80, la SCM emerge come disciplina.
Con l’avanzamento dei software sempre più user friendly vennero costruiti dei
software specializzati per il build, come make e strumenti per il source code
control system (SCCS) e il revision control system (RCS) per permettere ai
manutentori di tenere traccia di tutte le alterazioni testuali effettuate nel file.
Configuration Management
Configuration Management
Benefici & Obiettivi 1/2
Il Configuration Management:
● assicura che lo sviluppo dei processi sia tracciabile e sistematico e che
tutti i cambiamenti siano gestiti precisamente;
● migliora la qualità dei sistemi rilasciati e la produttività dei manutentori;
Il CM è una parte essenziale dello sviluppo software e dell’ambiente di
manutenzione.
Assicura che il Software rilasciato non sia contaminato da cambiamenti
incontrollati e non approvati.
Configuration Management
Configuration Management
Benefici & Obiettivi 2/2
Gli obiettivi del CM sono:
● Identificare ogni versione del sistema;
● Conservare versioni precedenti di documentazione e software;
● Fornire una traccia di audit per tutte le modifiche effettuate;
● Per tutto il ciclo di vita, mantenere la tracciabilità e l’integrità del sistema.
I benefici del CM sono:
1. Ridurre la confusione e stabilire un ordine;
2. Assicurare che le attività siano ben organizzate al fine di mantenere
l’integrità del prodotto;
3. Garantire le corrette configurazioni del prodotto;
4. Garantire la qualità del software, e un software di qualità richiede
meno sforzi di manutenzione;
5. Migliora la produttività, poiché analisti e programmatori sanno
esattamente dove trovare ogni pezzo di software e di documentazione;
6. Riduce la responsabilità grazie ad una documentazione che traccia le
azioni;
Configuration Management
Funzionalità del CM
Product
Configuration Management
Identification
Identification 1/2
Gli item che necessitano della configurazione, devono essere identificati in questa
fase.
L’identificazione include specifiche, design, documenti, dati, disegni, codice
sorgente, codice eseguibile, test plan, componenti hardware, e componenti
software per lo sviluppo, altresì chiamati, compilatori, debugger ed emulatori.
Per identificare accuratamente i prodotti e le loro configurazioni e versioni è
necessario progettare una baseline di configurazione.
Configuration Management
Identification
Identification 2/2
Configuration Management
Version Control
Definizione 1/4
Per evitare confusione sugli artefatti durante il processo evolutivo, è necessario
assegnare un nuovo identificatore all’artefatto ogni volta che l’artefatto è
modificato;
È importante notare che assegnare un nuovo identificatore per ogni modifica allo stesso artefatto
potrebbe nascondere importanti relazioni tra gli artefatti identificati in modo univoco.
Ad esempio, si potrebbe essere interessati a registrare un fatto che un determinato
artefatto corregge un sottoinsieme di difetti rilevati in una versione precedente.
Il tipo di relazione di cui sopra può essere registrato mediante la funzionalità di
Version Control (VC) di SCM:
(i) interpretando gli artefatti software come elementi di configurazione e
(ii) identificando le relazioni, se ve ne sono, tra gli elementi di configurazione.
Configuration Management
Version Control
Copie Master - Copie Funzionanti 2/4
L'idea di base del VC è di avere due file separati: copie master e copie funzionanti.
Il primo è archiviato in un repository centralizzato.
Gli sviluppatori di software controllano le copie funzionanti dal repository,
modificano le copie funzionanti e, infine, controllano le copie funzionanti nel
repository.
Il check-in in un file significa impegnarsi per le modifiche apportate alle copie
funzionanti, il sistema VC crea una nuova versione nella repository ogni volta che
viene eseguito il commit di un file.
Col passare del tempo, tutte le versioni del file vengono archiviate nel repository e
l’archiviazione di molte copie di un file non spreca eccessivamente spazio di
archiviazione
Configuration Management
Version Control
Gestione dei conflitti 3/4
Possono sorgere conflitti se molti sviluppatori di uno stesso software desiderano
utilizzare la stessa versione di un file.
Tuttavia, i conflitti possono essere risolti mediante due tecniche:
● lock-modify-unlock
● copy-edit-merge
Configuration Management
Version Control
Trunk, Branch e Merge 4/4
Configuration Management
Funzionalità del CM
System models and selection
I file sono entità discrete che contengono descrizioni di elementi ben definiti di
un progetto, vale a dire specifica dei requisiti, casi di test, progettazione, codice,
risultati dei test e rapporti sui difetti. Tuttavia, non è né un mezzo efficiente né
efficace per le relazioni tra artefatti e attributi.
L’idea generale di configurazione solleva la necessità di consentire agli utenti di
avere un accesso selettivo a parti e versioni di tali manufatti aggregati. Per
impostazione predefinita, SCCS e RCS mantengono nell'area di lavoro la versione
più recente della variante principale.
Gli altri artefatti devono essere recuperati esplicitamente dall’utente
Configuration Management
Funzionalità del CM
Tool
Configuration Management
Funzionalità del CM
Workspace Control
Il Workspace è implementato nel SCM per offrire agli utenti un luogo isolato.
Nelle loro aree, gli utenti eseguono attività di modifica degli artefatti dove
possono testare isolatamente le modifiche effettuate.
Esistono due tipi di Workspace:
1. Simil Directory, dove viene effettuata la modifica diretta dei file
2. Workspace complessi, come ambienti di sviluppo integrato e database.
In generale un Workspace dovrebbe avere 3 caratteristiche fondamentali:
● Sandbox: I file devono essere modificabili nel workspace privato dell’utente;
● Building
● Isolation: Ogni sviluppatore deve avere un ambiente isolato in cui provare le
modifiche effettuate nel codice senza influire su altri utenti.
Configuration Management
Change Management
Il Change Management ha lo scopo di garantire che la modifica sia un
processo gestito, dando maggior importanza alle richieste di cambiamento a
priorità più alta.
Il cambiamento è un dato di fatto per i grandi sistemi software e possono
derivare dai seguenti fattori:
● Scoperta di un bug;
● Richiesta di un nuovo requisito funzionale;
● Permettere a un sistema di adattarsi a diversi ambienti hw e sw
Configuration Management
Change Management
Processo
Configuration Management
Change Management
Change request
L’attività di change management inizia quando un cliente sottomette una change
request (CR):
● Segnalazione di un bug;
● Richiesta di una funzionalità aggiuntiva.
Queste problematiche spesso sono trattate separatamente all’interno di varie azienda,
ma sostanzialmente possono riferirsi al processo di change management.
Configuration Management
Change Management
Change request - Statechart diagram
Una CR potrà assumere i seguenti stati (come descritti in figura) durante l’intero
processo di change management.
Configuration Management
Change request (CR)
Una CR deve essere ben formattata all’interno di una Change Request Form (CRF).
Una CRF dovrà contenere:
● Raccomandazioni del
cambiamento;
● I costi/tempi stimati per la
modifica;
● Data richiesta del
cambiamento;
● Data di approvazione della
CR;
● Data implementazione
della CR;
● Data di validazione della
CR;
● Note.
Stato della CR : Submit
Configuration Management
Change request
Validation
La CR deve essere poi validata per evitare le seguenti problematiche:
Stato della CR: Review
● CR già presa in carico;
● Fraintendimenti rispetto a quello che il cliente si aspetta e ciò che il sistema
offre;
● Funzionalità già esistenti nel sistema, ma che il cliente non ne conosce
l’esistenza.
Se una di queste condizioni fosse verificata, allora la CR verrà rigettata (Stato della
CR: Decline), altrimenti potrà passare alla fase successiva.
Configuration Management
Change Management
Impact Analysis
A questo punto la CR deve essere valutata sotto un punto di vista di costo e tempo
necessario per la sua risoluzione.
Quest’attività generalmente è associata al team di sviluppo o di manutenzione, che
dovranno indicare quante componenti saranno impattate dalla CR e stabilire una
stima di quanto costerà tale modifica all’interno del sistema. Stato della CR: Analysis
Se il team di sviluppo non reputa fattibile
una determinata modificata, la CR verrà
rigettata. Stato della CR: Decline
Configuration Management
Change Management
Approvazione
la decisione definitiva spetta al product development group che deciderà se
approvare la CR secondo le seguenti questioni:
● Quali saranno le conseguenze se non verrà accettata la CR?
● A chi è rivolta la CR?
● Quanto costa implementare la CR?
● Quando fare la CR?
Se la CR viene accettata verrà impostata anche la relativa priorità e verrà inserita
all’interno di uno stack (Stato della CR: Commit) dedicato alla gestione di tutte le
richieste di cambiamento, altrimenti Stato della CR: Decline.
Configuration Management
Change Management
Implement change
Quando la CR deve essere processata, quindi implementata tutte le modifiche
apportate in ogni componente devono essere documentate all’interno di un derivation
history.
Stato della CR: Implement
Configuration Management
Change Management
Review/Reporting
Al termine del processo di implementazione della CR, bisogna andare a svolgere le
seguenti attività, generalmente a carico del test manager Stato della CR: Verification:
● Testing delle funzionalità;
● Testing di regressione: importanti per garantire che la modifica apportata a
determinate componenti del sistema non ha intromesso errori in altre
componenti;
● Riportare i cambiamenti che sono stati effettuati con le relative nuove versioni
associate alle componenti modificate.
Se l’attività di test ha prodotto esito positivo allora Stato della CR: Closed, altrimenti
Stato della CR: Decline.
Configuration Management
Release Management
Una release management è una versione di un sistema software che deve essere
distribuita ai clienti.
Perché definire il ‘quando’ effettuare una CR?
- Rilasci frequenti: utenti potrebbero non passare a una nuova versione,
soprattutto se devono pagare;
- Rilasci rari: utenti possono abbandonare il sistema, trovando maggior conforto
in altri sistemi alternativi.
Una release è un’attività molto costosa non solo per il lavoro tecnico necessario per
creare una nuova versione, ma anche per:
● Preparare il materiale pubblicitario;
● Definire strategie di mercato;
● File di configurazione (eventualmente per hw e SO differenti);
● Programma di installazione;
● Documentazione;
Configuration Management
Release Management
Fattori di rilascio
I principali fattori di rilascio sono:
● Qualità del sistema: Se viene rilevato un grave bug del sistema deve essere previsto
un nuovo rilascio;
● Cambiamenti della piattaforma: Potrebbe essere necessario effettuare un nuovo
rilascio del sistema quando viene rilasciata una nuova versione del SO sul quale
opera il sistema;
● Competition: nuova versione causata dalla concorrenza;
● Requisiti di marketing: un’organizzazione potrebbe aver assunto un impegno
inerente a una pubblicazione in una determinata data;
● Sistemi personalizzati: i clienti forniscono e pagano per apportare determinate
modifiche ad un determinato sistema, che dovrà essere rilasciato il prima
possibile.
Configuration Management
Variant Management
Per determinati sistemi molto spesso devono essere gestite varie varianti, come:
- varianti per vari utenti del sistema;
- varianti per varie piattaforme (deve girare su differenti sistemi operativi);
Due approcci per gestire le varianti:
● Redundant team: ad ogni team distinto è assegnata la gestione di una determinata
variante del sistema;
● Single project: cerca di massimizzare il codice che condiviso tra le varie varianti
creando un sotto-sistema principale condiviso da molti team.
Configuration Management
System Building
Rappresenta l’attività di creazione di un sistema completo ed eseguibile,
compilando e collegando le varie componenti di un sistema, file di dati,
librerie esterne e file di configurazione.
Gli strumenti di Version Management (Vm)
e di system build devono comunicare con
un processo build che in relazione ad una
baseline di un determinato sistema,
provvede alla sua creazione.
Configuration Management
System building
Interazione
La creazione di un sistema comporta l’assemblaggio di una grande quantità di
informazioni su software e sistema operativo, quindi ha senso andare ad utilizzare
tool automatici che automatizzano tale attività. Potrebbe essere necessario anche
aggiungere file di librerie o file di configurazione che definiscono l’installazione di
destinazione.
Configuration Management
System building
Funzionalità
Un sistema di build deve prevedere le seguenti funzionalità:
● Version management system integration: il sistema di compilazione dovrebbe
controllare le versioni richieste dei componenti dal VM;
● Minimal recompilation: Il build system dovrebbe capire quali componenti
richiedono la compilazioni e quali risultano essere già compilate;
● Executable system creation: Il system build deve collegare l’oggetto compilato con
librerie e file di configurazione per creare un sistema eseguibile;
● Test automation: Alcuni sistemi di build possono automaticamente eseguire test
automatici usando tool di testing automatico come JUnit;
● Reporting: Fornire un rapporto positivo o negativo del build e dei test che sono
stati eseguiti;
● Documentation generation: Il system build potrebbe essere in grado di rilasciare
note inerenti al build su pagine di aiuto.
Configuration Management
System building
Minimal recompilation
La compilazione essendo un’attività computazionale, i tool di system building sono
progettati con l’obiettivo di minimizzare il numero di componenti da compilare.
Bisogna trovare un modo per collegare un codice sorgente con il relativo codice
oggetto. Associare una firma ad ogni codice sorgente, che verrà riversata sul relativo
codice oggetto. Tale firma cambia ogni volta che il codice sorgente cambia e viene
ricompilato.
Configuration Management
System building
Firme dei file
Possono essere usate due tipi di firme:
- Modification timestap: la firma del codice sorgente è l’ora e data in cui quel file è
stato modificato. Se il file del codice sorgente di un componente è stato
modificato dopo il file del codice oggetto correlato, il sistema presuppone la
ricompilazione per creare un nuovo file di codice oggetto;
- Source code checksum: la firma del file del codice sorgente è un checksum
calcolato dai dati nel file. Una funzione di checksum calcola un numero
univoco utilizzando il testo sorgente come input. Se si modifica il testo
sorgente anche di un carattere questo genera un checksum diverso. Puoi quindi
essere sicuro si quel codice sorgente, in quanto file con checksum diversi sono
in realtà diversi. Il checksum viene calcolato prima della compilazione e il
compilatore dopo la compilazione firma il codice oggetto con appunto il
checksum che è stato calcolato.
Configuration Management
Funzionalità del CM
Process (Accounting & Auditing)
Configuration Management
Status Accounting
Al fine di quantificare le proprietà del software è necessario raccogliere
statistiche.
Lo scopo dell’Accounting è:
1. Compilare e conservare registri formali sulle configurazioni esistenti;
2. Produrre report periodici sullo stato delle configurazioni, per fare questo è
necessario:
a. Descrivere correttamente il prodotto;
b. Verificare la configurazione per i test e la consegna;
c. Mantenere una storia di CR, incluse quelle approvate e quelle respinte;
Lo Status Accounting è utile per comunicare dettagli importanti del progetto e
elementi di configurazione agli stakeholder del progetto.
Configuration Management
Auditing
I sistemi basati su CM devono fornire le seguenti funzionalità di Auditing:
1. Possibilità di ripristinare il sistema ad un punto stabile precedente;
2. Identificare quali modifiche sono state eseguite, perché e chi le ha eseguite.
SCM viene così visto come un archivio ricercabile.
Prima di rilasciare un prodotto è
necessario effettuare:
1. Audit per la configurazione
formale
2. Audit per la configurazione fisica
Configuration Management
IEEE 828-2005
IEEE Standard for Software Configuration Management Plans
IEEE Std 828-2005 was prepared by the Life Cycle Data Harmonization
Working Group of the Software Engineering Standards Committee of the
IEEE Computer Society. This revision is a minor update to IEEE 828-
1998 and was done to ensure consistency among the SCM guidance
provided by this standard, IEEE/EIA 12207.1 TM -1997, IEEE/EIA
Guide for Information Technology—Software Life Cycle Processes — Life
Cycle Data, and the IEEE Software Engineering Body of Knowledge
(SWEBOK) project. Information regarding relationships of IEEE 828-
2005 to other standards is contained in Annex B.
Lo standard in uso attualmente è IEEE 828-2012
Configuration Management
IEEE Std 828-2005
Template
1. Overview
2. Definitions and acronyms
3. The Software Configuration Management Plan
4. Adaption the plan
5. Conformance to the standard
Configuration Management
IEEE Std 828-2005
1.Overview
1. Overview
1.1 Scope
Questo standard stabilisce i contenuti minimi richiesti da un Software
Configuration Management Plan (SCM). Questo standard si applica
all'intero del ciclo di vita di software critici; ad esempio, laddove il
fallimento avrebbe un impatto sulla sicurezza o causerebbe grandi
perdite finanziarie o sociali. Si applica anche al software non critico e al
software già sviluppato.
1.2 Purpose
Il piano SCM documenta quali attività SCM devono essere svolte,
come devono essere svolte, chi è responsabile di svolgere attività
specifiche, quando devono accadere e quali risorse sono necessarie.
Può indirizzare le attività SCM su qualsiasi parte del ciclo di vita di un
prodotto software.
Configuration Management
IEEE Std 828-2005
2. Definitions and acronyms
2. Definitions and acronyms
2.1 Definitions
2.2 Acronyms
Configuration Management
IEEE Std 828-2005
3. The Software Configuration Management Plan
Le informazioni sulla pianificazione di SCM devono essere suddivise nelle
sei classi descritte nella Tabella di seguito. Questa sezione deve contenere
tutte le informazioni sulla pianificazione di SCM mediante inclusione o
riferimento ad altre posizioni, ad esempio altri documenti.
Configuration Management
IEEE Std 828-2005
3. The Software Configuration Management Plan
3.1 Introduction
Le informazioni introduttive forniscono una panoramica generale e
semplificata delle attività SCM; in particolare chi approva, chi esegue e
chi interagisce con il SCM possa ottenere una chiara comprensione del
Piano.
3.2 SCM management
Il SCM management identifica le responsabilità e autorità per le attività
di SCM all’interno della struttura del progetto.
Le informazioni sulla gestione di SCM devono includere quattro
argomenti: l'organizzazione di progetto a cui applicare SCM, le
responsabilità di SCM di tali organizzazioni, i riferimenti alle politiche
e alle direttive SCM che si applicano a questo progetto e la gestione del
processo SCM.
Configuration Management
IEEE Std 828-2005
3.2 SCM management
3.2 SCM management
3.2.1 Organization
Deve essere descritto il contesto organizzativo, tecnico e
gestionale, all'interno del quale devono essere realizzate le attività
SCM pianificate.
3.2.2 SCM responsibilities
È necessario specificare l'assegnazione delle attività SCM alle unità
organizzative. Per ogni attività elencata all'interno delle attività
SCM (nel punto 3.3), deve essere fornito il nome dell'unità
organizzativa che svolge una determinata attività.
Deve essere fornita una matrice che metta in relazione le
organizzazioni, le attività e le responsabilità.
Configuration Management
IEEE Std 828-2005
3.2 SCM management
3.2 SCM management
3.2.3 Applicable policies, directives, and procedures
Eventuali vincoli esterni posti sul Plan da altre politiche, direttive
e procedure, devono essere identificati e per ciascuno di loro,
devono essere indicati impatto ed effetto sul Plan.
3.2.4 Management of the SCM process
a. Il costo previsto del processo SCM e il monitoraggio dei
costi;
b. I mezzi e costi per l’unità che dovrà sorvegliare la riuscita del
SCM;
c. L'identificazione, la valutazione e i piani per l'attenuazione dei
rischi associati allo svolgimento delle attività SCM.
Configuration Management
IEEE Std 828-2005
3.3 SCM activities
3.3 SCM activities
Le informazioni sulle attività di SCM identificano tutte le funzioni e le
attività necessarie per gestire la configurazione del sistema software
come specificato nell'ambito del Piano. Devono essere identificate le
attività SCM sia tecniche che gestionali.
3.3.1 Configuration identification
3.3.1.1 Identifying configuration items
3.3.1.2 Naming configuration items
3.3.1.3 Acquiring configuration items
3.3.2 Configuration control
a) Identificazione e documentazione di un cambiamento
b) Analisi e valutazione di una richiesta di modifica
c) Approvazione o disapprovazione di una richiesta
d) Verifica, implementazione e rilascio di una modifica
Configuration Management
IEEE Std 828-2005
3.3 SCM activities
3.3.2.1 Requesting changes
3.3.2.2 Evaluating changes
3.3.2.3 Approving or disapproving changes
3.3.2.4 Implementing changes
Configuration Management
IEEE Std 828-2005
3.3.3 Configuration status accounting
3.3.3 Configuration status accounting
Le attività di status accounting registrano e riportano lo stato degli
elementi della configurazione del progetto.
Il piano deve contenere informazioni su quanto segue:
a) Quali elementi di dati e metriche SCM devono essere tracciati e
segnalati per baseline e modifiche;
b) Quali tipi di rapporti contabili sullo stato devono essere generati e la
loro frequenza;
c) In che modo le informazioni devono essere raccolte, archiviate,
elaborate, segnalate e protette dalla perdita;
d) Come controllare l'accesso ai dati di stato.
Configuration Management
IEEE Std 828-2005
3.3.4 Configuration evaluation and reviews - Audit
3.3.4 Configuration evaluation and reviews
La valutazione della configurazione consiste in audit che determinano
la misura in cui il CI riflette le caratteristiche fisiche e funzionali
richieste.
L’Audit della configurazione sono un meccanismo di gestione per
valutare la baseline.
Il piano deve identificare gli audit di configurazione e le revisioni da
svolgere per il progetto.
Configuration Management
IEEE Std 828-2005
3.3.5 Interface control - 3.3.6 Vendor Control
3.3.5 Interface control
Le attività di controllo dell'interfaccia coordinano le modifiche agli
elementi della configurazione del progetto con le modifiche
all'interfaccia degli elementi al di fuori dell'ambito del piano. HW, SW
di sistema e SW di supporto, nonché altri progetti e risultati,
dovrebbero essere esaminati per potenziali effetti di interfacciamento
sul progetto.
3.3.6 Subcontractor/vendor control
Le attività di controllo del fornitore incorporano gli elementi sviluppati
all'esterno dell'ambiente di progetto negli CI del progetto.
Sono inclusi software sviluppato per contratto e software acquisito
nella sua forma finita. Particolare attenzione dovrebbe essere rivolta a queste
attività SCM a causa delle relazioni organizzative e legali aggiunte.
Configuration Management
IEEE Std 828-2005
3.3.7 Release management and delivery
3.3.7 Release management and delivery
L'SCMP descriverà come sarà formalmente controllata la costruzione,
il rilascio e la consegna dei prodotti software e della documentazione.
Le procedure per compensare le deviazioni e le deroghe approvate
dovrebbero essere incluse nei meccanismi di controllo. Copie master di
codice e documentazione devono essere conservate per tutta la vita del
prodotto software. Il codice e la documentazione che contengono le
funzioni essenziali di sicurezza che devono essere gestite, archiviate,
imballate e consegnate in conformità con le politiche delle
organizzazioni coinvolte.
Configuration Management
IEEE Std 828-2005
3.4 SCM schedules - 3.5 SCM resources
3.4 SCM schedules
Le informazioni sullo schedule del SCM stabiliscono la sequenza e il
coordinamento per le attività SCM identificate e per tutti gli eventi che
incidono sull'attuazione del piano.
3.5 SCM resources
Le informazioni sulle SCM resources identificano l'ambiente,
l'infrastruttura, gli strumenti software, le tecniche, le attrezzature, il
personale e la formazione necessari per l'implementazione delle attività
SCM specificate.
Configuration Management
IEEE Std 828-2005
3.6 SCM plan maintenance
3.6 SCM plan maintenance
Le informazioni sulla manutenzione del piano SCM identificano le
attività e le responsabilità necessarie per garantire una pianificazione
SCM continua durante il ciclo di vita del progetto. Il piano deve
includere una cronologia delle modifiche apportate al piano e indicare
quanto segue:
a) Chi è responsabile del monitoraggio del Piano
b) Con quale frequenza devono essere eseguiti gli aggiornamenti
c) Come devono essere valutate e approvate le modifiche al Piano
d) Modalità di modifica e comunicazione del Piano
Configuration Management
IEEE Std 828-2005
4. Adapting the plan
4. Adapting the plan
Questo standard consente una notevole flessibilità nella preparazione
di un piano SCM. Un piano di successo riflette il suo ambiente di
progetto. Dovrebbe essere scritto in termini familiari ai suoi utenti e
dovrebbe essere coerente con i processi di sviluppo e
approvvigionamento del progetto.
4.1 Upward adaptation
4.2 Downward adaptation
4.3 Format
Configuration Management
IEEE Std 828-2005
5. Conformance to the standard
5. Conformance to the standard
5.1 Minimum information
Le aree di attività definite nel punto 3 sono state definite
correttamente?
5.2 Presentation format
Deve esistere un documento, un titolo di sezione o tale riferimento che
sia specificamente etichettato "Piano di gestione della configurazione
del software". All'interno di questo documento, deve essere inclusa
ciascuna delle sei classi di informazioni.
5.3 Consistency criteria
5.4 Conformance declaration
Configuration Management
Riferimenti
Slide di F.Garofalo & A.Fasulo
Libri:
● Software Evolution and Maintenance “A practitioner’s Approach” - P.Tripathy,
K.Naik;
● Software Engineering 9ed - Sommerville;
Articoli:
1. How is Configuration Management in Aircraft Industry implemented?
http://laccei.org/LACCEI2009-Venezuela/p89.pdf
2. SCMP 828-1983 - IEEE Standard -
https://ieeexplore.ieee.org/document/7439689
3. SCMP 828-2005 - IEEE Standard -
https://standards.ieee.org/standard/828-2005.html
1. SCMP 828-2012 - IEEE Standard -
https://ieeexplore.ieee.org/document/6170935
5.
https://www.researchgate.net/publication/220403673_Impact_of_software_engin
eering_research_on_the_practice_of_software_configuration_management

More Related Content

What's hot

Stutture modificate
Stutture modificateStutture modificate
Stutture modificate
Antongiulio Bua
 
Bli.It Concetti Su Gamp1
Bli.It Concetti Su Gamp1Bli.It Concetti Su Gamp1
Bli.It Concetti Su Gamp1
BLI.IT
 
Sinibaldi bpm
Sinibaldi bpmSinibaldi bpm
Sinibaldi bpmsinibaldi
 
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...Emerasoft, solutions to collaborate
 
La Governance dei processi di semplificazione attraverso il Performance Manag...
La Governance dei processi di semplificazione attraverso il Performance Manag...La Governance dei processi di semplificazione attraverso il Performance Manag...
La Governance dei processi di semplificazione attraverso il Performance Manag...
Fondazione CUOA
 
Corso oa lezione 11 - modificate
Corso oa   lezione 11 - modificateCorso oa   lezione 11 - modificate
Corso oa lezione 11 - modificateAntongiulio Bua
 
Pareto - Software Controllo di Gestione
Pareto - Software Controllo di GestionePareto - Software Controllo di Gestione
Pareto - Software Controllo di Gestione
rossano storti
 
Maps metodo-advanced-planning-system
Maps metodo-advanced-planning-systemMaps metodo-advanced-planning-system
Maps metodo-advanced-planning-systemKelematica
 
Helpdeskadvanced: Soluzione evoluta per la customer care
Helpdeskadvanced: Soluzione evoluta per la customer careHelpdeskadvanced: Soluzione evoluta per la customer care
Helpdeskadvanced: Soluzione evoluta per la customer care
Pat S.r.l.
 
Principi di ingegneria del software
Principi di ingegneria del softwarePrincipi di ingegneria del software
Principi di ingegneria del software
Marco Liverani
 

What's hot (13)

Stutture modificate
Stutture modificateStutture modificate
Stutture modificate
 
Bli.It Concetti Su Gamp1
Bli.It Concetti Su Gamp1Bli.It Concetti Su Gamp1
Bli.It Concetti Su Gamp1
 
Sinibaldi bpm
Sinibaldi bpmSinibaldi bpm
Sinibaldi bpm
 
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
 
La Governance dei processi di semplificazione attraverso il Performance Manag...
La Governance dei processi di semplificazione attraverso il Performance Manag...La Governance dei processi di semplificazione attraverso il Performance Manag...
La Governance dei processi di semplificazione attraverso il Performance Manag...
 
Corso oa lezione 11 - modificate
Corso oa   lezione 11 - modificateCorso oa   lezione 11 - modificate
Corso oa lezione 11 - modificate
 
Pareto - Software Controllo di Gestione
Pareto - Software Controllo di GestionePareto - Software Controllo di Gestione
Pareto - Software Controllo di Gestione
 
Iloveyou
IloveyouIloveyou
Iloveyou
 
Reale Mutua Assicurazioni - Polarion Success Story
Reale Mutua Assicurazioni - Polarion Success StoryReale Mutua Assicurazioni - Polarion Success Story
Reale Mutua Assicurazioni - Polarion Success Story
 
Selex Sistemi Integrati - Success Story
Selex Sistemi Integrati - Success StorySelex Sistemi Integrati - Success Story
Selex Sistemi Integrati - Success Story
 
Maps metodo-advanced-planning-system
Maps metodo-advanced-planning-systemMaps metodo-advanced-planning-system
Maps metodo-advanced-planning-system
 
Helpdeskadvanced: Soluzione evoluta per la customer care
Helpdeskadvanced: Soluzione evoluta per la customer careHelpdeskadvanced: Soluzione evoluta per la customer care
Helpdeskadvanced: Soluzione evoluta per la customer care
 
Principi di ingegneria del software
Principi di ingegneria del softwarePrincipi di ingegneria del software
Principi di ingegneria del software
 

Similar to Configuration management

Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
Salvatore Cordiano
 
Configuration management
Configuration managementConfiguration management
Configuration management
performer05
 
Software Re Engineering
Software Re EngineeringSoftware Re Engineering
Software Re Engineering
pantifabr
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
Gian Maria Ricci
 
Integrated Configuration Management
Integrated Configuration ManagementIntegrated Configuration Management
Integrated Configuration Management
Daniele Di Lorenzo
 
FDCC - SCAP - Overview
FDCC - SCAP - OverviewFDCC - SCAP - Overview
FDCC - SCAP - Overview
Ce.Se.N.A. Security
 
PLM@NET
PLM@NETPLM@NET
PLM@NET
Luigi Tufano
 
Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo spa
 
PRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEM
PRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEMPRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEM
PRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEM
ERP Billing & CRM
 
PALUZZANO TESI
PALUZZANO TESIPALUZZANO TESI
PALUZZANO TESI
Enrico Paluzzano
 
Easyglass
EasyglassEasyglass
Easyglass
ivano bua
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project BrochureMyti S.r.l.
 
LARUS 10th - Rampado Omar
LARUS 10th - Rampado OmarLARUS 10th - Rampado Omar
LARUS 10th - Rampado Omar
LARUS Business Automation
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
Babel
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
Sabino Labarile
 
Technical manual (1)
Technical manual (1)Technical manual (1)
Technical manual (1)cpro2011
 
Costruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsCostruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio Devops
Emerasoft, solutions to collaborate
 
Consigli per Organizzare Demo e Scegliere il Nuovo Erp Aziendale
Consigli per Organizzare Demo e Scegliere il Nuovo Erp AziendaleConsigli per Organizzare Demo e Scegliere il Nuovo Erp Aziendale
Consigli per Organizzare Demo e Scegliere il Nuovo Erp Aziendale
Francesca Solari
 

Similar to Configuration management (20)

Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
 
Configuration management
Configuration managementConfiguration management
Configuration management
 
Software Re Engineering
Software Re EngineeringSoftware Re Engineering
Software Re Engineering
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
Integrated Configuration Management
Integrated Configuration ManagementIntegrated Configuration Management
Integrated Configuration Management
 
FDCC - SCAP - Overview
FDCC - SCAP - OverviewFDCC - SCAP - Overview
FDCC - SCAP - Overview
 
PLM@NET
PLM@NETPLM@NET
PLM@NET
 
Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI
 
PRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEM
PRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEMPRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEM
PRESENTAZIONE -EBC 360 utility -- ENERGY GAS WATER SYSTEM
 
PALUZZANO TESI
PALUZZANO TESIPALUZZANO TESI
PALUZZANO TESI
 
Easyglass
EasyglassEasyglass
Easyglass
 
Easyglass
EasyglassEasyglass
Easyglass
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project Brochure
 
LARUS 10th - Rampado Omar
LARUS 10th - Rampado OmarLARUS 10th - Rampado Omar
LARUS 10th - Rampado Omar
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
Technical manual (1)
Technical manual (1)Technical manual (1)
Technical manual (1)
 
Costruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsCostruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio Devops
 
Consigli per Organizzare Demo e Scegliere il Nuovo Erp Aziendale
Consigli per Organizzare Demo e Scegliere il Nuovo Erp AziendaleConsigli per Organizzare Demo e Scegliere il Nuovo Erp Aziendale
Consigli per Organizzare Demo e Scegliere il Nuovo Erp Aziendale
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 

More from Francesco Garofalo

Presentazione Tesi di Laurea Magistrale - NAEVUS
Presentazione Tesi di Laurea Magistrale - NAEVUSPresentazione Tesi di Laurea Magistrale - NAEVUS
Presentazione Tesi di Laurea Magistrale - NAEVUS
Francesco Garofalo
 
Post Mortem Review (PROJECT MANGER) Nefrapp
Post Mortem Review (PROJECT MANGER) NefrappPost Mortem Review (PROJECT MANGER) Nefrapp
Post Mortem Review (PROJECT MANGER) Nefrapp
Francesco Garofalo
 
IV - Visual Abstaction of Large OD Movement Data
IV - Visual Abstaction of Large OD Movement Data IV - Visual Abstaction of Large OD Movement Data
IV - Visual Abstaction of Large OD Movement Data
Francesco Garofalo
 
OpenCL - Introduzione al framework OpenCL
OpenCL - Introduzione al framework OpenCLOpenCL - Introduzione al framework OpenCL
OpenCL - Introduzione al framework OpenCL
Francesco Garofalo
 
Antivirus & Antivirus Evasion
Antivirus & Antivirus EvasionAntivirus & Antivirus Evasion
Antivirus & Antivirus Evasion
Francesco Garofalo
 
Bluetooth
Bluetooth Bluetooth
Bluetooth
Francesco Garofalo
 

More from Francesco Garofalo (6)

Presentazione Tesi di Laurea Magistrale - NAEVUS
Presentazione Tesi di Laurea Magistrale - NAEVUSPresentazione Tesi di Laurea Magistrale - NAEVUS
Presentazione Tesi di Laurea Magistrale - NAEVUS
 
Post Mortem Review (PROJECT MANGER) Nefrapp
Post Mortem Review (PROJECT MANGER) NefrappPost Mortem Review (PROJECT MANGER) Nefrapp
Post Mortem Review (PROJECT MANGER) Nefrapp
 
IV - Visual Abstaction of Large OD Movement Data
IV - Visual Abstaction of Large OD Movement Data IV - Visual Abstaction of Large OD Movement Data
IV - Visual Abstaction of Large OD Movement Data
 
OpenCL - Introduzione al framework OpenCL
OpenCL - Introduzione al framework OpenCLOpenCL - Introduzione al framework OpenCL
OpenCL - Introduzione al framework OpenCL
 
Antivirus & Antivirus Evasion
Antivirus & Antivirus EvasionAntivirus & Antivirus Evasion
Antivirus & Antivirus Evasion
 
Bluetooth
Bluetooth Bluetooth
Bluetooth
 

Configuration management

  • 1. Configuration Management Configuration Management Corso di Gestione dei Progetti Software di Francesco Garofalo, Antonio Fasulo Prof.ssa F.Ferrucci
  • 2. Configuration Management Configuration Management Perché il Configuration Management? 1/2 I sistemi software cambiano continuamente durante lo sviluppo e l’uso. I sistemi SW grandi e complessi richiedono molti più cambiamenti rispetto a sistemi di piccola taglia, e la gestione dei cambiamenti in sistemi di grandi dimensioni è complessa e non banale. Il concetto di Configuration Management (CM) è nato per gestire i cambiamenti nei sistemi di grossa taglia. La maggior parte dei sistemi può essere pensata come un insieme di versioni, ognuna delle quali deve essere mantenuta e gestita.
  • 4. Configuration Management Configuration Management Definizione La Configuration Management riguarda le politiche, i processi e gli strumenti per la gestione dei sistemi software in evoluzione. La Software Configuration Management è stata definita da Bersoff, Henson e Siegel come la disciplina che identifica la configurazione di un sistema in momenti distinti nel tempo allo scopo di controllare sistematicamente i cambiamenti e garantire l’integrità e la tracciabilità di ogni configurazione per tutto il ciclo di vita.
  • 5. Configuration Management Configuration Management Un po’ di storia 1/2 La CM nasce nel 1950 da un bisogno dell’industria aerospaziale, che aveva necessità di garantire la riproducibilità degli aircraft e per la gestione dell’ingegneria dei cambiamenti. Negli anni 70 con la distribuzione dei software e dei computer su larga scala, il problema del configuration management e change management si inizia ad evidenziare sempre di più. Per lo Univac 1100 exec-8 i manutentori utilizzavano “card correttive” di vario colore per distinguerle.
  • 6. Configuration Management Configuration Management Un po’ di storia 2/2 A cavallo tra gli anni 70 e 80, la SCM emerge come disciplina. Con l’avanzamento dei software sempre più user friendly vennero costruiti dei software specializzati per il build, come make e strumenti per il source code control system (SCCS) e il revision control system (RCS) per permettere ai manutentori di tenere traccia di tutte le alterazioni testuali effettuate nel file.
  • 7. Configuration Management Configuration Management Benefici & Obiettivi 1/2 Il Configuration Management: ● assicura che lo sviluppo dei processi sia tracciabile e sistematico e che tutti i cambiamenti siano gestiti precisamente; ● migliora la qualità dei sistemi rilasciati e la produttività dei manutentori; Il CM è una parte essenziale dello sviluppo software e dell’ambiente di manutenzione. Assicura che il Software rilasciato non sia contaminato da cambiamenti incontrollati e non approvati.
  • 8. Configuration Management Configuration Management Benefici & Obiettivi 2/2 Gli obiettivi del CM sono: ● Identificare ogni versione del sistema; ● Conservare versioni precedenti di documentazione e software; ● Fornire una traccia di audit per tutte le modifiche effettuate; ● Per tutto il ciclo di vita, mantenere la tracciabilità e l’integrità del sistema. I benefici del CM sono: 1. Ridurre la confusione e stabilire un ordine; 2. Assicurare che le attività siano ben organizzate al fine di mantenere l’integrità del prodotto; 3. Garantire le corrette configurazioni del prodotto; 4. Garantire la qualità del software, e un software di qualità richiede meno sforzi di manutenzione; 5. Migliora la produttività, poiché analisti e programmatori sanno esattamente dove trovare ogni pezzo di software e di documentazione; 6. Riduce la responsabilità grazie ad una documentazione che traccia le azioni;
  • 10. Configuration Management Identification Identification 1/2 Gli item che necessitano della configurazione, devono essere identificati in questa fase. L’identificazione include specifiche, design, documenti, dati, disegni, codice sorgente, codice eseguibile, test plan, componenti hardware, e componenti software per lo sviluppo, altresì chiamati, compilatori, debugger ed emulatori. Per identificare accuratamente i prodotti e le loro configurazioni e versioni è necessario progettare una baseline di configurazione.
  • 12. Configuration Management Version Control Definizione 1/4 Per evitare confusione sugli artefatti durante il processo evolutivo, è necessario assegnare un nuovo identificatore all’artefatto ogni volta che l’artefatto è modificato; È importante notare che assegnare un nuovo identificatore per ogni modifica allo stesso artefatto potrebbe nascondere importanti relazioni tra gli artefatti identificati in modo univoco. Ad esempio, si potrebbe essere interessati a registrare un fatto che un determinato artefatto corregge un sottoinsieme di difetti rilevati in una versione precedente. Il tipo di relazione di cui sopra può essere registrato mediante la funzionalità di Version Control (VC) di SCM: (i) interpretando gli artefatti software come elementi di configurazione e (ii) identificando le relazioni, se ve ne sono, tra gli elementi di configurazione.
  • 13. Configuration Management Version Control Copie Master - Copie Funzionanti 2/4 L'idea di base del VC è di avere due file separati: copie master e copie funzionanti. Il primo è archiviato in un repository centralizzato. Gli sviluppatori di software controllano le copie funzionanti dal repository, modificano le copie funzionanti e, infine, controllano le copie funzionanti nel repository. Il check-in in un file significa impegnarsi per le modifiche apportate alle copie funzionanti, il sistema VC crea una nuova versione nella repository ogni volta che viene eseguito il commit di un file. Col passare del tempo, tutte le versioni del file vengono archiviate nel repository e l’archiviazione di molte copie di un file non spreca eccessivamente spazio di archiviazione
  • 14. Configuration Management Version Control Gestione dei conflitti 3/4 Possono sorgere conflitti se molti sviluppatori di uno stesso software desiderano utilizzare la stessa versione di un file. Tuttavia, i conflitti possono essere risolti mediante due tecniche: ● lock-modify-unlock ● copy-edit-merge
  • 16. Configuration Management Funzionalità del CM System models and selection I file sono entità discrete che contengono descrizioni di elementi ben definiti di un progetto, vale a dire specifica dei requisiti, casi di test, progettazione, codice, risultati dei test e rapporti sui difetti. Tuttavia, non è né un mezzo efficiente né efficace per le relazioni tra artefatti e attributi. L’idea generale di configurazione solleva la necessità di consentire agli utenti di avere un accesso selettivo a parti e versioni di tali manufatti aggregati. Per impostazione predefinita, SCCS e RCS mantengono nell'area di lavoro la versione più recente della variante principale. Gli altri artefatti devono essere recuperati esplicitamente dall’utente
  • 18. Configuration Management Funzionalità del CM Workspace Control Il Workspace è implementato nel SCM per offrire agli utenti un luogo isolato. Nelle loro aree, gli utenti eseguono attività di modifica degli artefatti dove possono testare isolatamente le modifiche effettuate. Esistono due tipi di Workspace: 1. Simil Directory, dove viene effettuata la modifica diretta dei file 2. Workspace complessi, come ambienti di sviluppo integrato e database. In generale un Workspace dovrebbe avere 3 caratteristiche fondamentali: ● Sandbox: I file devono essere modificabili nel workspace privato dell’utente; ● Building ● Isolation: Ogni sviluppatore deve avere un ambiente isolato in cui provare le modifiche effettuate nel codice senza influire su altri utenti.
  • 19. Configuration Management Change Management Il Change Management ha lo scopo di garantire che la modifica sia un processo gestito, dando maggior importanza alle richieste di cambiamento a priorità più alta. Il cambiamento è un dato di fatto per i grandi sistemi software e possono derivare dai seguenti fattori: ● Scoperta di un bug; ● Richiesta di un nuovo requisito funzionale; ● Permettere a un sistema di adattarsi a diversi ambienti hw e sw
  • 21. Configuration Management Change Management Change request L’attività di change management inizia quando un cliente sottomette una change request (CR): ● Segnalazione di un bug; ● Richiesta di una funzionalità aggiuntiva. Queste problematiche spesso sono trattate separatamente all’interno di varie azienda, ma sostanzialmente possono riferirsi al processo di change management.
  • 22. Configuration Management Change Management Change request - Statechart diagram Una CR potrà assumere i seguenti stati (come descritti in figura) durante l’intero processo di change management.
  • 23. Configuration Management Change request (CR) Una CR deve essere ben formattata all’interno di una Change Request Form (CRF). Una CRF dovrà contenere: ● Raccomandazioni del cambiamento; ● I costi/tempi stimati per la modifica; ● Data richiesta del cambiamento; ● Data di approvazione della CR; ● Data implementazione della CR; ● Data di validazione della CR; ● Note. Stato della CR : Submit
  • 24. Configuration Management Change request Validation La CR deve essere poi validata per evitare le seguenti problematiche: Stato della CR: Review ● CR già presa in carico; ● Fraintendimenti rispetto a quello che il cliente si aspetta e ciò che il sistema offre; ● Funzionalità già esistenti nel sistema, ma che il cliente non ne conosce l’esistenza. Se una di queste condizioni fosse verificata, allora la CR verrà rigettata (Stato della CR: Decline), altrimenti potrà passare alla fase successiva.
  • 25. Configuration Management Change Management Impact Analysis A questo punto la CR deve essere valutata sotto un punto di vista di costo e tempo necessario per la sua risoluzione. Quest’attività generalmente è associata al team di sviluppo o di manutenzione, che dovranno indicare quante componenti saranno impattate dalla CR e stabilire una stima di quanto costerà tale modifica all’interno del sistema. Stato della CR: Analysis Se il team di sviluppo non reputa fattibile una determinata modificata, la CR verrà rigettata. Stato della CR: Decline
  • 26. Configuration Management Change Management Approvazione la decisione definitiva spetta al product development group che deciderà se approvare la CR secondo le seguenti questioni: ● Quali saranno le conseguenze se non verrà accettata la CR? ● A chi è rivolta la CR? ● Quanto costa implementare la CR? ● Quando fare la CR? Se la CR viene accettata verrà impostata anche la relativa priorità e verrà inserita all’interno di uno stack (Stato della CR: Commit) dedicato alla gestione di tutte le richieste di cambiamento, altrimenti Stato della CR: Decline.
  • 27. Configuration Management Change Management Implement change Quando la CR deve essere processata, quindi implementata tutte le modifiche apportate in ogni componente devono essere documentate all’interno di un derivation history. Stato della CR: Implement
  • 28. Configuration Management Change Management Review/Reporting Al termine del processo di implementazione della CR, bisogna andare a svolgere le seguenti attività, generalmente a carico del test manager Stato della CR: Verification: ● Testing delle funzionalità; ● Testing di regressione: importanti per garantire che la modifica apportata a determinate componenti del sistema non ha intromesso errori in altre componenti; ● Riportare i cambiamenti che sono stati effettuati con le relative nuove versioni associate alle componenti modificate. Se l’attività di test ha prodotto esito positivo allora Stato della CR: Closed, altrimenti Stato della CR: Decline.
  • 29. Configuration Management Release Management Una release management è una versione di un sistema software che deve essere distribuita ai clienti. Perché definire il ‘quando’ effettuare una CR? - Rilasci frequenti: utenti potrebbero non passare a una nuova versione, soprattutto se devono pagare; - Rilasci rari: utenti possono abbandonare il sistema, trovando maggior conforto in altri sistemi alternativi. Una release è un’attività molto costosa non solo per il lavoro tecnico necessario per creare una nuova versione, ma anche per: ● Preparare il materiale pubblicitario; ● Definire strategie di mercato; ● File di configurazione (eventualmente per hw e SO differenti); ● Programma di installazione; ● Documentazione;
  • 30. Configuration Management Release Management Fattori di rilascio I principali fattori di rilascio sono: ● Qualità del sistema: Se viene rilevato un grave bug del sistema deve essere previsto un nuovo rilascio; ● Cambiamenti della piattaforma: Potrebbe essere necessario effettuare un nuovo rilascio del sistema quando viene rilasciata una nuova versione del SO sul quale opera il sistema; ● Competition: nuova versione causata dalla concorrenza; ● Requisiti di marketing: un’organizzazione potrebbe aver assunto un impegno inerente a una pubblicazione in una determinata data; ● Sistemi personalizzati: i clienti forniscono e pagano per apportare determinate modifiche ad un determinato sistema, che dovrà essere rilasciato il prima possibile.
  • 31. Configuration Management Variant Management Per determinati sistemi molto spesso devono essere gestite varie varianti, come: - varianti per vari utenti del sistema; - varianti per varie piattaforme (deve girare su differenti sistemi operativi); Due approcci per gestire le varianti: ● Redundant team: ad ogni team distinto è assegnata la gestione di una determinata variante del sistema; ● Single project: cerca di massimizzare il codice che condiviso tra le varie varianti creando un sotto-sistema principale condiviso da molti team.
  • 32. Configuration Management System Building Rappresenta l’attività di creazione di un sistema completo ed eseguibile, compilando e collegando le varie componenti di un sistema, file di dati, librerie esterne e file di configurazione. Gli strumenti di Version Management (Vm) e di system build devono comunicare con un processo build che in relazione ad una baseline di un determinato sistema, provvede alla sua creazione.
  • 33. Configuration Management System building Interazione La creazione di un sistema comporta l’assemblaggio di una grande quantità di informazioni su software e sistema operativo, quindi ha senso andare ad utilizzare tool automatici che automatizzano tale attività. Potrebbe essere necessario anche aggiungere file di librerie o file di configurazione che definiscono l’installazione di destinazione.
  • 34. Configuration Management System building Funzionalità Un sistema di build deve prevedere le seguenti funzionalità: ● Version management system integration: il sistema di compilazione dovrebbe controllare le versioni richieste dei componenti dal VM; ● Minimal recompilation: Il build system dovrebbe capire quali componenti richiedono la compilazioni e quali risultano essere già compilate; ● Executable system creation: Il system build deve collegare l’oggetto compilato con librerie e file di configurazione per creare un sistema eseguibile; ● Test automation: Alcuni sistemi di build possono automaticamente eseguire test automatici usando tool di testing automatico come JUnit; ● Reporting: Fornire un rapporto positivo o negativo del build e dei test che sono stati eseguiti; ● Documentation generation: Il system build potrebbe essere in grado di rilasciare note inerenti al build su pagine di aiuto.
  • 35. Configuration Management System building Minimal recompilation La compilazione essendo un’attività computazionale, i tool di system building sono progettati con l’obiettivo di minimizzare il numero di componenti da compilare. Bisogna trovare un modo per collegare un codice sorgente con il relativo codice oggetto. Associare una firma ad ogni codice sorgente, che verrà riversata sul relativo codice oggetto. Tale firma cambia ogni volta che il codice sorgente cambia e viene ricompilato.
  • 36. Configuration Management System building Firme dei file Possono essere usate due tipi di firme: - Modification timestap: la firma del codice sorgente è l’ora e data in cui quel file è stato modificato. Se il file del codice sorgente di un componente è stato modificato dopo il file del codice oggetto correlato, il sistema presuppone la ricompilazione per creare un nuovo file di codice oggetto; - Source code checksum: la firma del file del codice sorgente è un checksum calcolato dai dati nel file. Una funzione di checksum calcola un numero univoco utilizzando il testo sorgente come input. Se si modifica il testo sorgente anche di un carattere questo genera un checksum diverso. Puoi quindi essere sicuro si quel codice sorgente, in quanto file con checksum diversi sono in realtà diversi. Il checksum viene calcolato prima della compilazione e il compilatore dopo la compilazione firma il codice oggetto con appunto il checksum che è stato calcolato.
  • 37. Configuration Management Funzionalità del CM Process (Accounting & Auditing)
  • 38. Configuration Management Status Accounting Al fine di quantificare le proprietà del software è necessario raccogliere statistiche. Lo scopo dell’Accounting è: 1. Compilare e conservare registri formali sulle configurazioni esistenti; 2. Produrre report periodici sullo stato delle configurazioni, per fare questo è necessario: a. Descrivere correttamente il prodotto; b. Verificare la configurazione per i test e la consegna; c. Mantenere una storia di CR, incluse quelle approvate e quelle respinte; Lo Status Accounting è utile per comunicare dettagli importanti del progetto e elementi di configurazione agli stakeholder del progetto.
  • 39. Configuration Management Auditing I sistemi basati su CM devono fornire le seguenti funzionalità di Auditing: 1. Possibilità di ripristinare il sistema ad un punto stabile precedente; 2. Identificare quali modifiche sono state eseguite, perché e chi le ha eseguite. SCM viene così visto come un archivio ricercabile. Prima di rilasciare un prodotto è necessario effettuare: 1. Audit per la configurazione formale 2. Audit per la configurazione fisica
  • 40. Configuration Management IEEE 828-2005 IEEE Standard for Software Configuration Management Plans IEEE Std 828-2005 was prepared by the Life Cycle Data Harmonization Working Group of the Software Engineering Standards Committee of the IEEE Computer Society. This revision is a minor update to IEEE 828- 1998 and was done to ensure consistency among the SCM guidance provided by this standard, IEEE/EIA 12207.1 TM -1997, IEEE/EIA Guide for Information Technology—Software Life Cycle Processes — Life Cycle Data, and the IEEE Software Engineering Body of Knowledge (SWEBOK) project. Information regarding relationships of IEEE 828- 2005 to other standards is contained in Annex B. Lo standard in uso attualmente è IEEE 828-2012
  • 41. Configuration Management IEEE Std 828-2005 Template 1. Overview 2. Definitions and acronyms 3. The Software Configuration Management Plan 4. Adaption the plan 5. Conformance to the standard
  • 42. Configuration Management IEEE Std 828-2005 1.Overview 1. Overview 1.1 Scope Questo standard stabilisce i contenuti minimi richiesti da un Software Configuration Management Plan (SCM). Questo standard si applica all'intero del ciclo di vita di software critici; ad esempio, laddove il fallimento avrebbe un impatto sulla sicurezza o causerebbe grandi perdite finanziarie o sociali. Si applica anche al software non critico e al software già sviluppato. 1.2 Purpose Il piano SCM documenta quali attività SCM devono essere svolte, come devono essere svolte, chi è responsabile di svolgere attività specifiche, quando devono accadere e quali risorse sono necessarie. Può indirizzare le attività SCM su qualsiasi parte del ciclo di vita di un prodotto software.
  • 43. Configuration Management IEEE Std 828-2005 2. Definitions and acronyms 2. Definitions and acronyms 2.1 Definitions 2.2 Acronyms
  • 44. Configuration Management IEEE Std 828-2005 3. The Software Configuration Management Plan Le informazioni sulla pianificazione di SCM devono essere suddivise nelle sei classi descritte nella Tabella di seguito. Questa sezione deve contenere tutte le informazioni sulla pianificazione di SCM mediante inclusione o riferimento ad altre posizioni, ad esempio altri documenti.
  • 45. Configuration Management IEEE Std 828-2005 3. The Software Configuration Management Plan 3.1 Introduction Le informazioni introduttive forniscono una panoramica generale e semplificata delle attività SCM; in particolare chi approva, chi esegue e chi interagisce con il SCM possa ottenere una chiara comprensione del Piano. 3.2 SCM management Il SCM management identifica le responsabilità e autorità per le attività di SCM all’interno della struttura del progetto. Le informazioni sulla gestione di SCM devono includere quattro argomenti: l'organizzazione di progetto a cui applicare SCM, le responsabilità di SCM di tali organizzazioni, i riferimenti alle politiche e alle direttive SCM che si applicano a questo progetto e la gestione del processo SCM.
  • 46. Configuration Management IEEE Std 828-2005 3.2 SCM management 3.2 SCM management 3.2.1 Organization Deve essere descritto il contesto organizzativo, tecnico e gestionale, all'interno del quale devono essere realizzate le attività SCM pianificate. 3.2.2 SCM responsibilities È necessario specificare l'assegnazione delle attività SCM alle unità organizzative. Per ogni attività elencata all'interno delle attività SCM (nel punto 3.3), deve essere fornito il nome dell'unità organizzativa che svolge una determinata attività. Deve essere fornita una matrice che metta in relazione le organizzazioni, le attività e le responsabilità.
  • 47. Configuration Management IEEE Std 828-2005 3.2 SCM management 3.2 SCM management 3.2.3 Applicable policies, directives, and procedures Eventuali vincoli esterni posti sul Plan da altre politiche, direttive e procedure, devono essere identificati e per ciascuno di loro, devono essere indicati impatto ed effetto sul Plan. 3.2.4 Management of the SCM process a. Il costo previsto del processo SCM e il monitoraggio dei costi; b. I mezzi e costi per l’unità che dovrà sorvegliare la riuscita del SCM; c. L'identificazione, la valutazione e i piani per l'attenuazione dei rischi associati allo svolgimento delle attività SCM.
  • 48. Configuration Management IEEE Std 828-2005 3.3 SCM activities 3.3 SCM activities Le informazioni sulle attività di SCM identificano tutte le funzioni e le attività necessarie per gestire la configurazione del sistema software come specificato nell'ambito del Piano. Devono essere identificate le attività SCM sia tecniche che gestionali. 3.3.1 Configuration identification 3.3.1.1 Identifying configuration items 3.3.1.2 Naming configuration items 3.3.1.3 Acquiring configuration items 3.3.2 Configuration control a) Identificazione e documentazione di un cambiamento b) Analisi e valutazione di una richiesta di modifica c) Approvazione o disapprovazione di una richiesta d) Verifica, implementazione e rilascio di una modifica
  • 49. Configuration Management IEEE Std 828-2005 3.3 SCM activities 3.3.2.1 Requesting changes 3.3.2.2 Evaluating changes 3.3.2.3 Approving or disapproving changes 3.3.2.4 Implementing changes
  • 50. Configuration Management IEEE Std 828-2005 3.3.3 Configuration status accounting 3.3.3 Configuration status accounting Le attività di status accounting registrano e riportano lo stato degli elementi della configurazione del progetto. Il piano deve contenere informazioni su quanto segue: a) Quali elementi di dati e metriche SCM devono essere tracciati e segnalati per baseline e modifiche; b) Quali tipi di rapporti contabili sullo stato devono essere generati e la loro frequenza; c) In che modo le informazioni devono essere raccolte, archiviate, elaborate, segnalate e protette dalla perdita; d) Come controllare l'accesso ai dati di stato.
  • 51. Configuration Management IEEE Std 828-2005 3.3.4 Configuration evaluation and reviews - Audit 3.3.4 Configuration evaluation and reviews La valutazione della configurazione consiste in audit che determinano la misura in cui il CI riflette le caratteristiche fisiche e funzionali richieste. L’Audit della configurazione sono un meccanismo di gestione per valutare la baseline. Il piano deve identificare gli audit di configurazione e le revisioni da svolgere per il progetto.
  • 52. Configuration Management IEEE Std 828-2005 3.3.5 Interface control - 3.3.6 Vendor Control 3.3.5 Interface control Le attività di controllo dell'interfaccia coordinano le modifiche agli elementi della configurazione del progetto con le modifiche all'interfaccia degli elementi al di fuori dell'ambito del piano. HW, SW di sistema e SW di supporto, nonché altri progetti e risultati, dovrebbero essere esaminati per potenziali effetti di interfacciamento sul progetto. 3.3.6 Subcontractor/vendor control Le attività di controllo del fornitore incorporano gli elementi sviluppati all'esterno dell'ambiente di progetto negli CI del progetto. Sono inclusi software sviluppato per contratto e software acquisito nella sua forma finita. Particolare attenzione dovrebbe essere rivolta a queste attività SCM a causa delle relazioni organizzative e legali aggiunte.
  • 53. Configuration Management IEEE Std 828-2005 3.3.7 Release management and delivery 3.3.7 Release management and delivery L'SCMP descriverà come sarà formalmente controllata la costruzione, il rilascio e la consegna dei prodotti software e della documentazione. Le procedure per compensare le deviazioni e le deroghe approvate dovrebbero essere incluse nei meccanismi di controllo. Copie master di codice e documentazione devono essere conservate per tutta la vita del prodotto software. Il codice e la documentazione che contengono le funzioni essenziali di sicurezza che devono essere gestite, archiviate, imballate e consegnate in conformità con le politiche delle organizzazioni coinvolte.
  • 54. Configuration Management IEEE Std 828-2005 3.4 SCM schedules - 3.5 SCM resources 3.4 SCM schedules Le informazioni sullo schedule del SCM stabiliscono la sequenza e il coordinamento per le attività SCM identificate e per tutti gli eventi che incidono sull'attuazione del piano. 3.5 SCM resources Le informazioni sulle SCM resources identificano l'ambiente, l'infrastruttura, gli strumenti software, le tecniche, le attrezzature, il personale e la formazione necessari per l'implementazione delle attività SCM specificate.
  • 55. Configuration Management IEEE Std 828-2005 3.6 SCM plan maintenance 3.6 SCM plan maintenance Le informazioni sulla manutenzione del piano SCM identificano le attività e le responsabilità necessarie per garantire una pianificazione SCM continua durante il ciclo di vita del progetto. Il piano deve includere una cronologia delle modifiche apportate al piano e indicare quanto segue: a) Chi è responsabile del monitoraggio del Piano b) Con quale frequenza devono essere eseguiti gli aggiornamenti c) Come devono essere valutate e approvate le modifiche al Piano d) Modalità di modifica e comunicazione del Piano
  • 56. Configuration Management IEEE Std 828-2005 4. Adapting the plan 4. Adapting the plan Questo standard consente una notevole flessibilità nella preparazione di un piano SCM. Un piano di successo riflette il suo ambiente di progetto. Dovrebbe essere scritto in termini familiari ai suoi utenti e dovrebbe essere coerente con i processi di sviluppo e approvvigionamento del progetto. 4.1 Upward adaptation 4.2 Downward adaptation 4.3 Format
  • 57. Configuration Management IEEE Std 828-2005 5. Conformance to the standard 5. Conformance to the standard 5.1 Minimum information Le aree di attività definite nel punto 3 sono state definite correttamente? 5.2 Presentation format Deve esistere un documento, un titolo di sezione o tale riferimento che sia specificamente etichettato "Piano di gestione della configurazione del software". All'interno di questo documento, deve essere inclusa ciascuna delle sei classi di informazioni. 5.3 Consistency criteria 5.4 Conformance declaration
  • 58. Configuration Management Riferimenti Slide di F.Garofalo & A.Fasulo Libri: ● Software Evolution and Maintenance “A practitioner’s Approach” - P.Tripathy, K.Naik; ● Software Engineering 9ed - Sommerville; Articoli: 1. How is Configuration Management in Aircraft Industry implemented? http://laccei.org/LACCEI2009-Venezuela/p89.pdf 2. SCMP 828-1983 - IEEE Standard - https://ieeexplore.ieee.org/document/7439689 3. SCMP 828-2005 - IEEE Standard - https://standards.ieee.org/standard/828-2005.html 1. SCMP 828-2012 - IEEE Standard - https://ieeexplore.ieee.org/document/6170935 5. https://www.researchgate.net/publication/220403673_Impact_of_software_engin eering_research_on_the_practice_of_software_configuration_management