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