SlideShare una empresa de Scribd logo
1 de 41
Il processo di produzione del
Software
… dall’idea al prodotto finito …
parte 4
Il processo di produzione del software 1
Gestione delle configurazioni
Quando si realizza del software, vi sono sempre dei
cambiamenti da apportare. Poiché tali cambiamenti si
verificano inevitabilmente, occorre controllarli in modo
efficace.
La gestione delle configurazioni software e un insieme di
attività progettate con lo scopo di controllare i cambiamenti
tramite l’identificazione dei prodotti che possono cambiare, la
definizione delle relazioni fra di essi, la definizione dei
meccanismi per la gestione delle versioni di questi prodotti, il
controllo delle modifiche imposte e producendo revisioni e
report sulle modifiche eseguite.
Il processo di produzione del software 2
Gestione delle configurazioni
La gestione delle configurazioni software (SCM, Software
Configuration Management) e un’attività ausiliaria, che
abbraccia tutto il processo software. Un cambiamento
può avvenire in qualsiasi momento; le attività di SCM
hanno lo scopo di riconoscere il cambiamento,
controllarlo, garantire che sia opportunamente
implementato e riferire agli interessati l’avvenuto
cambiamento.
Il processo di produzione del software 3
Cosa è una configurazione
software ?
Una configurazione software e un insieme di
programmi (nella forma sorgente ed eseguibile),
documenti che descrivono i programmi (sia per i
tecnici, sia per gli utenti) e strutture dati (contenute nei
programmi oppure esterne).
Ognuno di questi elementi può cambiare senza
preavviso in qualsiasi momento del ciclo di vita del
software.
Il processo di produzione del software 4
Quale, l’origine dei
cambiamenti?
La risposta a questa domanda e tanto varia quanto la natura dei
cambiamenti.
Si possono pero individuare quattro fonti principali di cambiamento:
• 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 da un sistema informativo, nella funzionalità di un prodotto
o nel servizio offerto
• la riorganizzazione o la riduzione delle dimensioni dell’azienda, che
causa un cambiamento nelle
• precedenze fra progetti e nella struttura dei team addetti allo
sviluppo del software
• vincoli finanziari o di tempo che costringono a ridefinire il sistema
oppure il prodotto.
Il processo di produzione del software 5
Documento acquisito
La gestione delle configurazioni software si basa sul
concetto di documento acquisito:
Una specifica od un prodotto formalmente revisionato
ed accettato, che serve in seguito da fondamento di un
ulteriore sviluppo e che può essere modificato solo
attraverso procedure formali di controllo del
cambiamento.
Il processo di produzione del software 6
Per capire bene …
Osservando le porte di una cucina di un grande ristorante, si
può vedere come esse siano contrassegnate dalle scritte
ENTRATA ed USCITA.
Le porte hanno dei fermi che consentono la loro apertura
solo nella direzione opportuna.
Se un cameriere prende un piatto pronto dalla cucina, lo
mette su un vassoio e subito si accorge di aver preso il
piatto sbagliato, egli può sostituirlo con il piatto giusto in
modo veloce ed informale prima di lasciare la cucina.
Il processo di produzione del software 7
Per capire bene …
Se, tuttavia, egli esce dalla cucina, consegna il piatto al
cliente e solo in questo momento viene informato del
suo errore, deve seguire una procedura fissata:
verificare sulla nota se c’è stato un errore, scusarsi
sentitamente, ritornare in cucina attraverso la porta di
ENTRATA, spiegare il problema e cosi via.
Il processo di produzione del software 8
Per capire bene …
Dunque un documento acquisito è analogo alla porta della
cucina del ristorante.
Prima che un elemento della configurazione software sia
diventato un documento acquisito, le modifiche possono
essere apportate in modo veloce ed informale.
Tuttavia, una volta stabilito un documento acquisito, e
come se si fosse passati attraverso l’equivalente di una
porta a senso unico.
Si possono ancora apportare modifiche, ma ora e
necessario applicare una determinata procedura formale
che valuti e verifichi ciascuna modifica.
Il processo di produzione del software 9
Punto critico
Nell’ingegneria del software, definiamo un documento
acquisito come un “punto critico” nello sviluppo del
software, segnato dalla consegna di un elemento della
configurazione software e dall’approvazione di tale
elemento, ottenuta mediante una revisione tecnica
formale. Ulteriori modifiche all’architettura del
programma (contenuta nella specifica di progettazione)
potranno essere apportate solo dopo la loro
valutazione ed approvazione.
Il processo di produzione del software 10
SCI
Software Configuration Item
Un elemento di configurazione del software e anche detto SCI
(Software Configuration Item) od Oggetto della Configurazione.
Quando esso diviene un documento acquisito esso viene inserito
all’interno di un database, o repository, dove può essere preso
per essere utilizzato nelle altre parti del progetto. Tuttavia tale
oggetto non potrà essere più modificato, a meno che non si passi
attraverso tutte le attività della gestione della configurazione del
software. Proprio perché viene riutilizzato, un oggetto della
configurazione ha spesso varie dipendenze con altri oggetti della
configurazione.
Il processo di produzione del software 11
Oggetti della configurazione
Per essere tenuti sotto controllo, gli elementi della
configurazione devono ricevere ciascuno un nome ed
essere strutturati secondo uno schema orientato agli
oggetti.
Si possono individuare due tipi di oggetti:
• oggetti di base
• oggetti aggregati
Il processo di produzione del software 12
Oggetti di base
Un oggetto di base e una “unità testuale” prodotta da
un tecnico nel corso di analisi, progettazione, stesura
del codice o collaudo.
Ad esempio, un oggetto di base può essere una parte
della specifica dei requisiti, il listato di un componente
oppure una serie di casi di prova utilizzati per
collaudare il codice.
Il processo di produzione del software 13
Oggetti aggregati
Un oggetto aggregato è una collezione di oggetti di
base o di altri oggetti aggregati. Ad esempio una
“Specifica di progettazione” e un oggetto aggregato in
quanto e in realtà un elenco, dotato di nome,
comprendente Progettazione dei dati, Progettazione
architetturale, Progettazione dei moduli, Progettazione
delle interfacce.
Esso contiene nient’altro che dei puntatori a questi altri
componenti.
Il processo di produzione del software 14
Oggetti caratteristiche
Ogni oggetto e individuato da una serie di
caratteristiche:
• un nome
• una descrizione
• un elenco di risorse
• una “realizzazione”
Il processo di produzione del software 15
Oggetti caratteristiche
Il nome e una sequenza di caratteri che individua univocamente
l’oggetto.
La descrizione è un elenco di elementi che specificano: il tipo di
oggetto (documento, programma, dato), un’ identificatore di
progetto, informazioni di versioni o modifica.
Le risorse sono entità fornite, elaborate, richiamate od in altro
modo richieste dall’oggetto. Tipi di dati, funzioni specifiche o
perfino nomi di variabili sono esempi di cioè che può fungere da
risorsa per un oggetto.
La realizzazione è un puntatore all’unita testuale, nel caso degli
oggetti base, ed un puntatore nullo, nel caso di oggetti aggregati.
Il processo di produzione del software 16
Relazioni tra gli oggetti
Un oggetto può essere “parte-di” un oggetto aggregato.
La relazione “parte-di” determina una gerarchia fra gli oggetti.
Non e realistico supporre che le relazioni fra oggetti si limitino a
quelle gerarchiche, spesso esistono relazioni orizzontali fra
oggetti in rami diversi della gerarchia.
In questo caso si parla di relazione “collegato a”.
Il processo di produzione del software 17
Relazioni tra gli oggetti
La relazione “parte-di” vige all’interno di un oggetto composto,
mentre il secondo collega un oggetto aggregato (es. il modello
dati) ed un oggetto base (es. classi di casi di prova).
Il processo di produzione del software 18
Diagrammi MIL
Le relazioni fra gli oggetti della configurazione si possono
rappresentare mediante l’uso di MIL (Module Interconnection
Language o linguaggio di connessione di moduli).
Questo linguaggio indica, per ogni oggetto, quali dati, funzioni e
strutture rende disponibili, di quali ha bisogno (relazioni
“collegato-a”) e da cosa e composto (relazioni “parte-di”). Anche
l’uso di diagrammi di classi o di casi d’uso, può aiutare a trovare
le relazioni tra gli oggetti.
Il processo di produzione del software 19
Controllo delle versioni
Quando un oggetto e divenuto documento acquisito ed e stato
inserito nel repository, da li può essere prelevato per il suo
utilizzo.
Normalmente i repository permettono di scegliere, oltre
all’identificatore dell’oggetto, anche una serie di attributi, che
possono essere semplici come il numero di versione od
estremamente complicati come una serie di variabili booleane
che indicano quali funzioni sono state modificate.
Il processo di produzione del software 20
Controllo delle versioni
Questo permette una certa flessibilità; infatti si può: tener
traccia delle modifiche apportate, sviluppare versioni differenti
(ad esempio partendo dalla versione 1.1, si generano due
versioni parallele, la 1.1.1 e la 1.2), scegliere quale versione
utilizzare e costruire varianti (ad esempio si potrebbe costruire
un oggetto aggregato C che usi con i monitor a colori un oggetto
A, mentre con i monitor bianco e nero usi un oggetto B; in
questo caso di C esisterebbero un’unica versione, ma due
varianti).
Il processo di produzione del software 21
Controllo del cambiamento
Il controllo dei cambiamenti e fondamentale. Ma le forze che lo
rendono necessario lo rendono anche fastidioso.
Ci preoccupiamo dei cambiamenti poiché una piccola perturbazione
del codice può portare gravi problemi nel prodotto. Ma può anche
correggere un grosso errore od attivare una nuova funzionalità.
Ci preoccupiamo dei cambiamenti perché un singolo sviluppatore può
mettere a rischio il progetto; ma allo stesso tempo potrebbe avere
delle idee brillanti ed il processo di controllo di un grosso
cambiamento potrebbe scoraggiare questa creatività.
Il processo di produzione del software 22
Il processo di controllo
Il processo di produzione del software 23
Si riconosce l’esigenza di una modifica
Richiesta di modifica dall’utente
Lo sviluppatore valuta la richiesta
Si produce una relazione
Il processo di controllo
Il processo di produzione del software 24
L’autorità di controllo delle modifiche
decide se accogliere la richiesta
Accolta
Richiesta respinta
L’utente viene informato
Pianificazione richiesta si genera ECO
Il processo di controllo
Il processo di produzione del software 25
Assegnazione delle attività
Estrazione degli elementi della
configurazione
Realizzazione della modifica
Esame della modifica
Reinserimento degli oggetti modificati
Il processo di controllo
Il processo di produzione del software 26
Documento per il collaudo
Attività di garanzia di qualità
e collaudo
Ratifica delle modifiche da includere
nella successiva versione (revisione)
Costruzione della nuova versione
del software
Esame della modifica a tutti gli
elementi della configurazione
Il processo di controllo
Il processo di produzione del software 27
Inserimento delle modifiche
nella nuova versione
Distribuzione della nuova versione
Per ogni cambiamento approvato viene generato un ordine di
cambiamento (ECO – Engineering Change Order).
Questo ordine descrive i cambiamenti da eseguire, i vincoli da
rispettare ed i criteri di revisione.
Il processo di controllo
Le operazioni di reinserimento e di estrazione coinvolgono due
aspetti importanti: il controllo degli accessi e la
sincronizzazione.
Il controllo degli accessi governa i diritti di accedere ad un
determinato elemento della configurazione e di modificarlo da
parte dei tecnici.
La sincronizzazione garantisce che le modifiche svolte
simultaneamente da persone diverse non si annullino l’una con
l’altra.
Il processo di produzione del software 28
Il processo di controllo
Abbiamo detto che una richiesta di cambiamento deve essere
approvata da un’autorità preposta al controllo dei cambiamenti.
Dato che ogni oggetto della configurazione ha legami con altri
oggetti della configurazione, l’autorità preposta al controllo dei
cambiamenti varia dal semplice capo progetto, per una modifica
locale che non interessa altri moduli (nome delle variabili
interne, ad esempio), ad un insieme di esperti (rappresentanti
dei settori software, hardware, database, assistenza, marketing e
cosi via), se la modifica coinvolge altri oggetti (cambiamento
dell’interfaccia utente).
Il processo di produzione del software 29
Domande utili
Alcune domande che l’autorità si deve porre sono:
• Quali effetti ha la modifica sull’hardware?
• E sulle prestazioni?
• In che modo può cambiare la percezione che il cliente ha del
prodotto?
• Come incide sulla qualità e sull’ affidabilità ?
Il processo di produzione del software 30
Esame della configurazione
Una volta che la richiesta di modifica e stata accettata,
e stato prodotto l’ECO e si è effettata la modifica, sorge
una domanda:
Come si può garantire che la modifica sia stata
correttamente eseguita?
Il processo di produzione del software 31
Esame della configurazione
In due modi:
• le revisioni tecniche formali, dettate dai
principi della Qualita del Software
• l’esame della configurazione
Il processo di produzione del software 32
Esame della configurazione
L’esame deve rispondere alle seguenti domande :
1. La modifica specificata nell’ECO e stata effettuata? Si sono
aggiunte altre modifiche?
2. E stata svolta una revisione tecnica formale per valutare la
correttezza sul piano tecnico?
3. Il processo software e stato seguito e gli standard di ingegneria del
software sono stati applicati correttamente?
4. La modifica e stata messa in risalto nello SCI? Sono stati specificati
l’autore e la data dell’operazione? Gli attributi dell’elemento della
configurazione riflettono la modifica?
5. Sono state eseguite le procedure SCM per annotare, registrare e
riferire la modifica?
6. Sono stati opportunamente aggiornati tutti gli elementi della
configurazione correlati?
Il processo di produzione del software 33
Relazioni sulla situazione
La stesura di resoconti e tra le attività più importanti del
processo di controllo e gestione del cambiamento.
Infatti tali resoconti servono per capire: che cosa e accaduto,
chi ne e il responsabile, quando e accaduto, che cosa ne
subisce le conseguenze.
Inoltre i resoconti possono essere collocati in un database in
linea, cosicché sviluppatori ed addetti alla manutenzione
possano accedere alle informazioni sulle modifiche per parola
chiave. Inoltre periodicamente viene compilato un resoconto
sullo stato della configurazione per tenere aggiornati la
direzione e lo staff di ogni cambiamento importante.
Il processo di produzione del software 34
Resoconti sulla
configurazione
I resoconti sullo stato della configurazione svolgono un
ruolo vitale nella riuscita di un progetto di sviluppo di
software di grandi dimensioni. L’alto numero di persone
coinvolte spesso fa si che “la mano sinistra non sappia
cosa fa la destra”.
Può capitare che due persone tentino di modificare lo
stesso oggetto con scopi contrastanti. Il team può passare
mesi interi costruendo programmi sulla base di una
specifica hardware obsoleta. Una persona che sarebbe in
grado di rilevare le conseguenze dannose di una modifica
proposta, non sa che la modifica e in effetti già in corso.
Il processo di produzione del software 35
Documenti necessari
• Software Change Request
• Software Change Report
• Engineering Change Order (ECO)
• Configuration Audit Report
• Configuration Status Report
Il processo di produzione del software 36
Software Change Request
Questo documento viene generato quando viene
richiesto un cambiamento.
Il processo di produzione del software 37
Software Change Report
Questo documento viene generato una volta valutato il
cambiamento (cioè una volta stabilita la sua validità
tecnica, i potenziali effetti collaterali, l’impatto globale
sugli altri oggetti della configurazione e sulle funzioni di
sistema ed i costi previsti).
Il processo di produzione del software 38
Engineering Change Order
(ECO)
Questo documento viene prodotto una volta che il
cambiamento e stato approvato.
Il processo di produzione del software 39
Configuration Audit Report
Questo documento viene prodotto una volta che il
cambiamento e stato attuato.
Il processo di produzione del software 40
Configuration Status Report
Questo documento viene prodotto periodicamente per
informare e tenere aggiornati tutti gli interessati ai
cambiamenti apportati, quelli in sospeso, ecc. Il modulo
qui sotto stante e un esempio di quello che contiene un
resoconto sullo stato della configurazione.
Il processo di produzione del software 41

Más contenido relacionado

La actualidad más candente

Progetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di Firenze
Progetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di FirenzeProgetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di Firenze
Progetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di FirenzeProgettoELI4U
 
Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009Fabrizio Di Crosta
 
Pmp knowledge areas by zuri
Pmp knowledge areas by zuriPmp knowledge areas by zuri
Pmp knowledge areas by zuriRiccardo Zucconi
 
Integrazione di progetto
Integrazione di progettoIntegrazione di progetto
Integrazione di progettoHumanWare
 
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015Redazione InnovaPuglia
 
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...Mario Gentili
 
Slide Project Software Engineer
Slide Project Software EngineerSlide Project Software Engineer
Slide Project Software Engineerguestf4963
 
Project management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMBProject management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMBMario Gentili
 
Consulenza gestione progetti
Consulenza gestione progettiConsulenza gestione progetti
Consulenza gestione progettiHumanWare
 
Configuration management
Configuration managementConfiguration management
Configuration managementperformer05
 
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum  - Jekpot - 25 november 2005 - SienaIntervento 10' KM Forum  - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum - Jekpot - 25 november 2005 - SienaEpistema
 
Business process reengineering
Business process reengineering Business process reengineering
Business process reengineering AndreaMazzella
 
Our Model : 123
Our Model : 123Our Model : 123
Our Model : 123enricogiua
 
Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011Consorzio QuInn
 
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi ITITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi ITCMDBuild org
 

La actualidad más candente (20)

Progetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di Firenze
Progetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di FirenzeProgetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di Firenze
Progetto ELI4U - Milestone 50% - WP1 - Attività 1 - Comune di Firenze
 
Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009Case History Automazione E Strumentazione Aprile 2009
Case History Automazione E Strumentazione Aprile 2009
 
Il Piano di Project Management in 20 mosse
Il Piano di Project Management in 20 mosseIl Piano di Project Management in 20 mosse
Il Piano di Project Management in 20 mosse
 
Pmp knowledge areas by zuri
Pmp knowledge areas by zuriPmp knowledge areas by zuri
Pmp knowledge areas by zuri
 
Integrazione di progetto
Integrazione di progettoIntegrazione di progetto
Integrazione di progetto
 
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
PERCHE' E COME SI VALUTA LA QUALITA' DEL SOFTWARE19 06_2015
 
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
PMP - Generalità, Project Life Cicle e Organizzazioni, Processi e Aree di con...
 
Iloveyou
IloveyouIloveyou
Iloveyou
 
Configuration management
Configuration management Configuration management
Configuration management
 
Slide Project Software Engineer
Slide Project Software EngineerSlide Project Software Engineer
Slide Project Software Engineer
 
Project management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMBProject management professional - concetti fondamentali secondo il PMB
Project management professional - concetti fondamentali secondo il PMB
 
Consulenza gestione progetti
Consulenza gestione progettiConsulenza gestione progetti
Consulenza gestione progetti
 
Pmp cost management
Pmp cost managementPmp cost management
Pmp cost management
 
Configuration management
Configuration managementConfiguration management
Configuration management
 
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum  - Jekpot - 25 november 2005 - SienaIntervento 10' KM Forum  - Jekpot - 25 november 2005 - Siena
Intervento 10' KM Forum - Jekpot - 25 november 2005 - Siena
 
Business process reengineering
Business process reengineering Business process reengineering
Business process reengineering
 
Our Model : 123
Our Model : 123Our Model : 123
Our Model : 123
 
Iso 9001 2000 Sezione VII
Iso 9001 2000 Sezione VIIIso 9001 2000 Sezione VII
Iso 9001 2000 Sezione VII
 
Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011Quinn - Miglioramento - ABlean - 2011
Quinn - Miglioramento - ABlean - 2011
 
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi ITITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
 

Similar a Produzione software - La configurazione

Integration management
Integration managementIntegration management
Integration managementMario Gentili
 
Ecole 2010 meeting ad hoc net
Ecole 2010 meeting ad hoc netEcole 2010 meeting ad hoc net
Ecole 2010 meeting ad hoc net3Service Srl
 
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementSalvatore Cordiano
 
Software Re Engineering
Software Re EngineeringSoftware Re Engineering
Software Re Engineeringpantifabr
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...it Consult
 
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUMLIntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUMLmatteo_gentile
 
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 DevopsEmerasoft, solutions to collaborate
 
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
 
02_AICQ_QOL_N.1-2009_ModelloSERVQUAL
02_AICQ_QOL_N.1-2009_ModelloSERVQUAL02_AICQ_QOL_N.1-2009_ModelloSERVQUAL
02_AICQ_QOL_N.1-2009_ModelloSERVQUALercolonese
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...italianaSoftware
 
Architettura Di Prodotto Per Un Aspirapolvere Ad Aria Compressa
Architettura Di Prodotto Per Un Aspirapolvere Ad Aria CompressaArchitettura Di Prodotto Per Un Aspirapolvere Ad Aria Compressa
Architettura Di Prodotto Per Un Aspirapolvere Ad Aria CompressaGabriele Manno
 
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 2011Gian Maria Ricci
 
Definio Financial Platform
Definio Financial PlatformDefinio Financial Platform
Definio Financial PlatformInAnte
 
Regione Labict Presentazione Wm Cw 20080512 V02
Regione Labict Presentazione Wm Cw 20080512 V02Regione Labict Presentazione Wm Cw 20080512 V02
Regione Labict Presentazione Wm Cw 20080512 V02Gian Luca Matteucci
 
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...Emerasoft, solutions to collaborate
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...LucaGre
 

Similar a Produzione software - La configurazione (20)

Integration management
Integration managementIntegration management
Integration management
 
Ecole 2010 meeting ad hoc net
Ecole 2010 meeting ad hoc netEcole 2010 meeting ad hoc net
Ecole 2010 meeting ad hoc net
 
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
 
Software Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpASoftware Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpA
 
PLM@NET
PLM@NETPLM@NET
PLM@NET
 
Software Re Engineering
Software Re EngineeringSoftware Re Engineering
Software Re Engineering
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
 
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUMLIntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
 
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
 
Presentazione di SpagoWord
Presentazione di SpagoWordPresentazione di SpagoWord
Presentazione di SpagoWord
 
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
 
02_AICQ_QOL_N.1-2009_ModelloSERVQUAL
02_AICQ_QOL_N.1-2009_ModelloSERVQUAL02_AICQ_QOL_N.1-2009_ModelloSERVQUAL
02_AICQ_QOL_N.1-2009_ModelloSERVQUAL
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
 
Architettura Di Prodotto Per Un Aspirapolvere Ad Aria Compressa
Architettura Di Prodotto Per Un Aspirapolvere Ad Aria CompressaArchitettura Di Prodotto Per Un Aspirapolvere Ad Aria Compressa
Architettura Di Prodotto Per Un Aspirapolvere Ad Aria Compressa
 
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
 
Iso 9001 2000 Sezione VII.3 VII.6
Iso 9001 2000 Sezione VII.3 VII.6Iso 9001 2000 Sezione VII.3 VII.6
Iso 9001 2000 Sezione VII.3 VII.6
 
Definio Financial Platform
Definio Financial PlatformDefinio Financial Platform
Definio Financial Platform
 
Regione Labict Presentazione Wm Cw 20080512 V02
Regione Labict Presentazione Wm Cw 20080512 V02Regione Labict Presentazione Wm Cw 20080512 V02
Regione Labict Presentazione Wm Cw 20080512 V02
 
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
 

Más de Gemax Consulting

Cobot & Artificial Intelligence
Cobot & Artificial IntelligenceCobot & Artificial Intelligence
Cobot & Artificial IntelligenceGemax Consulting
 
Industria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficientiIndustria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficientiGemax Consulting
 
Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0Gemax Consulting
 

Más de Gemax Consulting (6)

Cobot & Artificial Intelligence
Cobot & Artificial IntelligenceCobot & Artificial Intelligence
Cobot & Artificial Intelligence
 
Industria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficientiIndustria 4.0 soluzioni efficienti
Industria 4.0 soluzioni efficienti
 
Reti di calcolatori
Reti di calcolatoriReti di calcolatori
Reti di calcolatori
 
Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0Iot e mobile application nell'industria 4.0
Iot e mobile application nell'industria 4.0
 
Coding & Gaming
Coding & GamingCoding & Gaming
Coding & Gaming
 
Ergonomia aziendale
Ergonomia aziendaleErgonomia aziendale
Ergonomia aziendale
 

Produzione software - La configurazione

  • 1. Il processo di produzione del Software … dall’idea al prodotto finito … parte 4 Il processo di produzione del software 1
  • 2. Gestione delle configurazioni Quando si realizza del software, vi sono sempre dei cambiamenti da apportare. Poiché tali cambiamenti si verificano inevitabilmente, occorre controllarli in modo efficace. La gestione delle configurazioni software e un insieme di attività progettate con lo scopo di controllare i cambiamenti tramite l’identificazione dei prodotti che possono cambiare, la definizione delle relazioni fra di essi, la definizione dei meccanismi per la gestione delle versioni di questi prodotti, il controllo delle modifiche imposte e producendo revisioni e report sulle modifiche eseguite. Il processo di produzione del software 2
  • 3. Gestione delle configurazioni La gestione delle configurazioni software (SCM, Software Configuration Management) e un’attività ausiliaria, che abbraccia tutto il processo software. Un cambiamento può avvenire in qualsiasi momento; le attività di SCM hanno lo scopo di riconoscere il cambiamento, controllarlo, garantire che sia opportunamente implementato e riferire agli interessati l’avvenuto cambiamento. Il processo di produzione del software 3
  • 4. Cosa è una configurazione software ? Una configurazione software e un insieme di programmi (nella forma sorgente ed eseguibile), documenti che descrivono i programmi (sia per i tecnici, sia per gli utenti) e strutture dati (contenute nei programmi oppure esterne). Ognuno di questi elementi può cambiare senza preavviso in qualsiasi momento del ciclo di vita del software. Il processo di produzione del software 4
  • 5. Quale, l’origine dei cambiamenti? La risposta a questa domanda e tanto varia quanto la natura dei cambiamenti. Si possono pero individuare quattro fonti principali di cambiamento: • 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 da un sistema informativo, nella funzionalità di un prodotto o nel servizio offerto • la riorganizzazione o la riduzione delle dimensioni dell’azienda, che causa un cambiamento nelle • precedenze fra progetti e nella struttura dei team addetti allo sviluppo del software • vincoli finanziari o di tempo che costringono a ridefinire il sistema oppure il prodotto. Il processo di produzione del software 5
  • 6. Documento acquisito La gestione delle configurazioni software si basa sul concetto di documento acquisito: Una specifica od un prodotto formalmente revisionato ed accettato, che serve in seguito da fondamento di un ulteriore sviluppo e che può essere modificato solo attraverso procedure formali di controllo del cambiamento. Il processo di produzione del software 6
  • 7. Per capire bene … Osservando le porte di una cucina di un grande ristorante, si può vedere come esse siano contrassegnate dalle scritte ENTRATA ed USCITA. Le porte hanno dei fermi che consentono la loro apertura solo nella direzione opportuna. Se un cameriere prende un piatto pronto dalla cucina, lo mette su un vassoio e subito si accorge di aver preso il piatto sbagliato, egli può sostituirlo con il piatto giusto in modo veloce ed informale prima di lasciare la cucina. Il processo di produzione del software 7
  • 8. Per capire bene … Se, tuttavia, egli esce dalla cucina, consegna il piatto al cliente e solo in questo momento viene informato del suo errore, deve seguire una procedura fissata: verificare sulla nota se c’è stato un errore, scusarsi sentitamente, ritornare in cucina attraverso la porta di ENTRATA, spiegare il problema e cosi via. Il processo di produzione del software 8
  • 9. Per capire bene … Dunque un documento acquisito è analogo alla porta della cucina del ristorante. Prima che un elemento della configurazione software sia diventato un documento acquisito, le modifiche possono essere apportate in modo veloce ed informale. Tuttavia, una volta stabilito un documento acquisito, e come se si fosse passati attraverso l’equivalente di una porta a senso unico. Si possono ancora apportare modifiche, ma ora e necessario applicare una determinata procedura formale che valuti e verifichi ciascuna modifica. Il processo di produzione del software 9
  • 10. Punto critico Nell’ingegneria del software, definiamo un documento acquisito come un “punto critico” nello sviluppo del software, segnato dalla consegna di un elemento della configurazione software e dall’approvazione di tale elemento, ottenuta mediante una revisione tecnica formale. Ulteriori modifiche all’architettura del programma (contenuta nella specifica di progettazione) potranno essere apportate solo dopo la loro valutazione ed approvazione. Il processo di produzione del software 10
  • 11. SCI Software Configuration Item Un elemento di configurazione del software e anche detto SCI (Software Configuration Item) od Oggetto della Configurazione. Quando esso diviene un documento acquisito esso viene inserito all’interno di un database, o repository, dove può essere preso per essere utilizzato nelle altre parti del progetto. Tuttavia tale oggetto non potrà essere più modificato, a meno che non si passi attraverso tutte le attività della gestione della configurazione del software. Proprio perché viene riutilizzato, un oggetto della configurazione ha spesso varie dipendenze con altri oggetti della configurazione. Il processo di produzione del software 11
  • 12. Oggetti della configurazione Per essere tenuti sotto controllo, gli elementi della configurazione devono ricevere ciascuno un nome ed essere strutturati secondo uno schema orientato agli oggetti. Si possono individuare due tipi di oggetti: • oggetti di base • oggetti aggregati Il processo di produzione del software 12
  • 13. Oggetti di base Un oggetto di base e una “unità testuale” prodotta da un tecnico nel corso di analisi, progettazione, stesura del codice o collaudo. Ad esempio, un oggetto di base può essere una parte della specifica dei requisiti, il listato di un componente oppure una serie di casi di prova utilizzati per collaudare il codice. Il processo di produzione del software 13
  • 14. Oggetti aggregati Un oggetto aggregato è una collezione di oggetti di base o di altri oggetti aggregati. Ad esempio una “Specifica di progettazione” e un oggetto aggregato in quanto e in realtà un elenco, dotato di nome, comprendente Progettazione dei dati, Progettazione architetturale, Progettazione dei moduli, Progettazione delle interfacce. Esso contiene nient’altro che dei puntatori a questi altri componenti. Il processo di produzione del software 14
  • 15. Oggetti caratteristiche Ogni oggetto e individuato da una serie di caratteristiche: • un nome • una descrizione • un elenco di risorse • una “realizzazione” Il processo di produzione del software 15
  • 16. Oggetti caratteristiche Il nome e una sequenza di caratteri che individua univocamente l’oggetto. La descrizione è un elenco di elementi che specificano: il tipo di oggetto (documento, programma, dato), un’ identificatore di progetto, informazioni di versioni o modifica. Le risorse sono entità fornite, elaborate, richiamate od in altro modo richieste dall’oggetto. Tipi di dati, funzioni specifiche o perfino nomi di variabili sono esempi di cioè che può fungere da risorsa per un oggetto. La realizzazione è un puntatore all’unita testuale, nel caso degli oggetti base, ed un puntatore nullo, nel caso di oggetti aggregati. Il processo di produzione del software 16
  • 17. Relazioni tra gli oggetti Un oggetto può essere “parte-di” un oggetto aggregato. La relazione “parte-di” determina una gerarchia fra gli oggetti. Non e realistico supporre che le relazioni fra oggetti si limitino a quelle gerarchiche, spesso esistono relazioni orizzontali fra oggetti in rami diversi della gerarchia. In questo caso si parla di relazione “collegato a”. Il processo di produzione del software 17
  • 18. Relazioni tra gli oggetti La relazione “parte-di” vige all’interno di un oggetto composto, mentre il secondo collega un oggetto aggregato (es. il modello dati) ed un oggetto base (es. classi di casi di prova). Il processo di produzione del software 18
  • 19. Diagrammi MIL Le relazioni fra gli oggetti della configurazione si possono rappresentare mediante l’uso di MIL (Module Interconnection Language o linguaggio di connessione di moduli). Questo linguaggio indica, per ogni oggetto, quali dati, funzioni e strutture rende disponibili, di quali ha bisogno (relazioni “collegato-a”) e da cosa e composto (relazioni “parte-di”). Anche l’uso di diagrammi di classi o di casi d’uso, può aiutare a trovare le relazioni tra gli oggetti. Il processo di produzione del software 19
  • 20. Controllo delle versioni Quando un oggetto e divenuto documento acquisito ed e stato inserito nel repository, da li può essere prelevato per il suo utilizzo. Normalmente i repository permettono di scegliere, oltre all’identificatore dell’oggetto, anche una serie di attributi, che possono essere semplici come il numero di versione od estremamente complicati come una serie di variabili booleane che indicano quali funzioni sono state modificate. Il processo di produzione del software 20
  • 21. Controllo delle versioni Questo permette una certa flessibilità; infatti si può: tener traccia delle modifiche apportate, sviluppare versioni differenti (ad esempio partendo dalla versione 1.1, si generano due versioni parallele, la 1.1.1 e la 1.2), scegliere quale versione utilizzare e costruire varianti (ad esempio si potrebbe costruire un oggetto aggregato C che usi con i monitor a colori un oggetto A, mentre con i monitor bianco e nero usi un oggetto B; in questo caso di C esisterebbero un’unica versione, ma due varianti). Il processo di produzione del software 21
  • 22. Controllo del cambiamento Il controllo dei cambiamenti e fondamentale. Ma le forze che lo rendono necessario lo rendono anche fastidioso. Ci preoccupiamo dei cambiamenti poiché una piccola perturbazione del codice può portare gravi problemi nel prodotto. Ma può anche correggere un grosso errore od attivare una nuova funzionalità. Ci preoccupiamo dei cambiamenti perché un singolo sviluppatore può mettere a rischio il progetto; ma allo stesso tempo potrebbe avere delle idee brillanti ed il processo di controllo di un grosso cambiamento potrebbe scoraggiare questa creatività. Il processo di produzione del software 22
  • 23. Il processo di controllo Il processo di produzione del software 23 Si riconosce l’esigenza di una modifica Richiesta di modifica dall’utente Lo sviluppatore valuta la richiesta Si produce una relazione
  • 24. Il processo di controllo Il processo di produzione del software 24 L’autorità di controllo delle modifiche decide se accogliere la richiesta Accolta Richiesta respinta L’utente viene informato Pianificazione richiesta si genera ECO
  • 25. Il processo di controllo Il processo di produzione del software 25 Assegnazione delle attività Estrazione degli elementi della configurazione Realizzazione della modifica Esame della modifica Reinserimento degli oggetti modificati
  • 26. Il processo di controllo Il processo di produzione del software 26 Documento per il collaudo Attività di garanzia di qualità e collaudo Ratifica delle modifiche da includere nella successiva versione (revisione) Costruzione della nuova versione del software Esame della modifica a tutti gli elementi della configurazione
  • 27. Il processo di controllo Il processo di produzione del software 27 Inserimento delle modifiche nella nuova versione Distribuzione della nuova versione Per ogni cambiamento approvato viene generato un ordine di cambiamento (ECO – Engineering Change Order). Questo ordine descrive i cambiamenti da eseguire, i vincoli da rispettare ed i criteri di revisione.
  • 28. Il processo di controllo Le operazioni di reinserimento e di estrazione coinvolgono due aspetti importanti: il controllo degli accessi e la sincronizzazione. Il controllo degli accessi governa i diritti di accedere ad un determinato elemento della configurazione e di modificarlo da parte dei tecnici. La sincronizzazione garantisce che le modifiche svolte simultaneamente da persone diverse non si annullino l’una con l’altra. Il processo di produzione del software 28
  • 29. Il processo di controllo Abbiamo detto che una richiesta di cambiamento deve essere approvata da un’autorità preposta al controllo dei cambiamenti. Dato che ogni oggetto della configurazione ha legami con altri oggetti della configurazione, l’autorità preposta al controllo dei cambiamenti varia dal semplice capo progetto, per una modifica locale che non interessa altri moduli (nome delle variabili interne, ad esempio), ad un insieme di esperti (rappresentanti dei settori software, hardware, database, assistenza, marketing e cosi via), se la modifica coinvolge altri oggetti (cambiamento dell’interfaccia utente). Il processo di produzione del software 29
  • 30. Domande utili Alcune domande che l’autorità si deve porre sono: • Quali effetti ha la modifica sull’hardware? • E sulle prestazioni? • In che modo può cambiare la percezione che il cliente ha del prodotto? • Come incide sulla qualità e sull’ affidabilità ? Il processo di produzione del software 30
  • 31. Esame della configurazione Una volta che la richiesta di modifica e stata accettata, e stato prodotto l’ECO e si è effettata la modifica, sorge una domanda: Come si può garantire che la modifica sia stata correttamente eseguita? Il processo di produzione del software 31
  • 32. Esame della configurazione In due modi: • le revisioni tecniche formali, dettate dai principi della Qualita del Software • l’esame della configurazione Il processo di produzione del software 32
  • 33. Esame della configurazione L’esame deve rispondere alle seguenti domande : 1. La modifica specificata nell’ECO e stata effettuata? Si sono aggiunte altre modifiche? 2. E stata svolta una revisione tecnica formale per valutare la correttezza sul piano tecnico? 3. Il processo software e stato seguito e gli standard di ingegneria del software sono stati applicati correttamente? 4. La modifica e stata messa in risalto nello SCI? Sono stati specificati l’autore e la data dell’operazione? Gli attributi dell’elemento della configurazione riflettono la modifica? 5. Sono state eseguite le procedure SCM per annotare, registrare e riferire la modifica? 6. Sono stati opportunamente aggiornati tutti gli elementi della configurazione correlati? Il processo di produzione del software 33
  • 34. Relazioni sulla situazione La stesura di resoconti e tra le attività più importanti del processo di controllo e gestione del cambiamento. Infatti tali resoconti servono per capire: che cosa e accaduto, chi ne e il responsabile, quando e accaduto, che cosa ne subisce le conseguenze. Inoltre i resoconti possono essere collocati in un database in linea, cosicché sviluppatori ed addetti alla manutenzione possano accedere alle informazioni sulle modifiche per parola chiave. Inoltre periodicamente viene compilato un resoconto sullo stato della configurazione per tenere aggiornati la direzione e lo staff di ogni cambiamento importante. Il processo di produzione del software 34
  • 35. Resoconti sulla configurazione I resoconti sullo stato della configurazione svolgono un ruolo vitale nella riuscita di un progetto di sviluppo di software di grandi dimensioni. L’alto numero di persone coinvolte spesso fa si che “la mano sinistra non sappia cosa fa la destra”. Può capitare che due persone tentino di modificare lo stesso oggetto con scopi contrastanti. Il team può passare mesi interi costruendo programmi sulla base di una specifica hardware obsoleta. Una persona che sarebbe in grado di rilevare le conseguenze dannose di una modifica proposta, non sa che la modifica e in effetti già in corso. Il processo di produzione del software 35
  • 36. Documenti necessari • Software Change Request • Software Change Report • Engineering Change Order (ECO) • Configuration Audit Report • Configuration Status Report Il processo di produzione del software 36
  • 37. Software Change Request Questo documento viene generato quando viene richiesto un cambiamento. Il processo di produzione del software 37
  • 38. Software Change Report Questo documento viene generato una volta valutato il cambiamento (cioè una volta stabilita la sua validità tecnica, i potenziali effetti collaterali, l’impatto globale sugli altri oggetti della configurazione e sulle funzioni di sistema ed i costi previsti). Il processo di produzione del software 38
  • 39. Engineering Change Order (ECO) Questo documento viene prodotto una volta che il cambiamento e stato approvato. Il processo di produzione del software 39
  • 40. Configuration Audit Report Questo documento viene prodotto una volta che il cambiamento e stato attuato. Il processo di produzione del software 40
  • 41. Configuration Status Report Questo documento viene prodotto periodicamente per informare e tenere aggiornati tutti gli interessati ai cambiamenti apportati, quelli in sospeso, ecc. Il modulo qui sotto stante e un esempio di quello che contiene un resoconto sullo stato della configurazione. Il processo di produzione del software 41