produzione software - la configurazione

41
Il processo di produzione del Software … dall’idea al prodotto finito … parte 4 Il processo di produzione del software 1

Upload: gemax-consulting

Post on 21-Jan-2017

63 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Produzione software - La configurazione

1

Il processo di produzione del Software

… dall’idea al prodotto finito …parte 4

Il processo di produzione del software

Page 2: Produzione software - La configurazione

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

Page 3: Produzione software - La configurazione

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

Page 4: Produzione software - La configurazione

4

Cosa è una configurazionesoftware ?

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

Page 5: Produzione software - La configurazione

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

Page 6: Produzione software - La configurazione

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

Page 7: Produzione software - La configurazione

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

Page 8: Produzione software - La configurazione

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

Page 9: Produzione software - La configurazione

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

Page 10: Produzione software - La configurazione

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

Page 11: Produzione software - La configurazione

11

SCISoftware 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

Page 12: Produzione software - La configurazione

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

Page 13: Produzione software - La configurazione

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

Page 14: Produzione software - La configurazione

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

Page 15: Produzione software - La configurazione

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

Page 16: Produzione software - La configurazione

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

Page 17: Produzione software - La configurazione

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

Page 18: Produzione software - La configurazione

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

Page 19: Produzione software - La configurazione

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

Page 20: Produzione software - La configurazione

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

Page 21: Produzione software - La configurazione

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

Page 22: Produzione software - La configurazione

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

Page 23: Produzione software - La configurazione

23

Il processo di controllo

Il processo di produzione del software

Si riconosce l’esigenza di una modifica

Richiesta di modifica dall’utente

Lo sviluppatore valuta la richiesta

Si produce una relazione

Page 24: Produzione software - La configurazione

24

Il processo di controllo

Il processo di produzione del software

L’autorità di controllo delle modifiche decide se accogliere la richiesta

Accolta

Richiesta respinta

L’utente viene informato

Pianificazione richiesta si genera ECO

Page 25: Produzione software - La configurazione

25

Il processo di controllo

Il processo di produzione del software

Assegnazione delle attività

Estrazione degli elementi della configurazione

Realizzazione della modifica

Esame della modifica

Reinserimento degli oggetti modificati

Page 26: Produzione software - La configurazione

26

Il processo di controllo

Il processo di produzione del software

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

Page 27: Produzione software - La configurazione

27

Il processo di controllo

Il processo di produzione del software

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.

Page 28: Produzione software - La configurazione

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

Page 29: Produzione software - La configurazione

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

Page 30: Produzione software - La configurazione

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

Page 31: Produzione software - La configurazione

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

Page 32: Produzione software - La configurazione

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

Page 33: Produzione software - La configurazione

33

Esame della configurazioneL’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

Page 34: Produzione software - La configurazione

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

Page 35: Produzione software - La configurazione

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

Page 36: Produzione software - La configurazione

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

Page 37: Produzione software - La configurazione

37

Software Change Request

Questo documento viene generato quando viene richiesto un cambiamento.

Il processo di produzione del software

Page 38: Produzione software - La configurazione

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

Page 39: Produzione software - La configurazione

39

Engineering Change Order (ECO)

Questo documento viene prodotto una volta che il cambiamento e stato approvato.

Il processo di produzione del software

Page 40: Produzione software - La configurazione

40

Configuration Audit Report

Questo documento viene prodotto una volta che il cambiamento e stato attuato.

Il processo di produzione del software

Page 41: Produzione software - La configurazione

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