Top Banner
La gestione delle configurazioni (Software configuration management) Prof. Paolo Ciancarini Corso di Ingegneria del Software CdL Informatica Università di Bologna
58

La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Sep 09, 2018

Download

Documents

phamnga
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

La gestione delle configurazioni(Software configuration management)

Prof. Paolo CiancariniCorso di Ingegneria del SoftwareCdL Informatica Università di Bologna

Page 2: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Obiettivi di questa lezione• Cos’è il Software Configuration Management (SCM)?• Attività tipiche del SCM• Strumenti per SCM

Page 3: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

30 3

Sviluppare iterativamente

Controllare le modifiche

Usarearchitetture

di componentiGestire irequisiti

Modellaregraficamente

Verificarela qualità

Principi guida dello sviluppo software

Page 4: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Come gestire il ciclo di vita del sw?

• Come si gestisce lo sviluppo delle varie versioni?

• Come si identificano i diversi componenti di un sistema software?

• Cosa si registra di ogni deployment?• Come si tracciano i cambiamenti delle versioni

e configurazioni operative?

4

Page 5: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Le configurazioni dei sistemi software

• Il problema:• Ogni sistema software cambia durante lo sviluppo, e anche dopo• Esistono contemporanemente più versioni del sistema:

• Modifiche da persone diverse• Varianti diverse rilasciate a clienti diversi• Nuove versioni in sviluppo• Deployment su hw e sistemi operativi diversi

➭ Come si controlla lo sviluppo delle modifiche e delle versioni?

• Soluzione: Software Configuration Management

Page 6: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Un esempio di toolchain basata su SCM (DevOps)

DevOps è un metodo moderno di gestione degli sviluppi (Developments) in parallelo con le Operations. Si basa sull’idea di integrazione continua (continuous integration)

Page 7: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Esempio: Integrazione continua in XP• Mantieni un repository condiviso del codice • Automatizza le build e rendile auto-testanti• Tutti gli sviluppatori possono eseguire commit alla baseline tutti i giorni• Ogni commit fa partire una build: fail fast, ovvero se un commit di uno

sviluppatore è tale da far fallire un test, bisogna intervenire immediatamente prima che si crei una valanga di errori successivi

• Fai in modo che il build sia veloce• Esegui i test in un clone dell'ambiente di produzione• Fa’ in modo che sia facile prendere le ultime versioni dei pacchetti• Ognuno può vedere i risultati dell'ultimo build• Automatizza il deployment: anche il rilascio del software sugli ambienti di test o

sull'ambiente di produzione deve essere automatizzato.

Page 8: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Versioni: esempi

• V0: file vuoto• V1: prima stesura• V2: iterazione al posto della ricorsione• V3: aggiunta documentazione• V4: risolti tutti i bug• V5: risolto altro bug

Storia (oppure log)

Page 9: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Commit

Si fa commit quando si associa un nome ad una versione, inserendo il file in un repositoryCheck IN: inserimento file nel repositoryCheck OUT: aquisizione file in mutua esclusione

Page 10: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Branch

Un branch è una sequenza di versioni

Nell’esempio in figura, la versione principale (trunk) è in verde, i branch in gialloIl grafo delle versioni non è un albero a causa dei merge (frecce rosse)

Page 11: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Configurazione: esempio

Supponiamo di avere creato un programma su più moduli e più versioni• Main.c 1.25, 2.12• Cli.c 1.16• Gui.cpp 1.13• Makefile 1.4• Foo.c 1.1, 2.7

Occorrerà poter fare commit di intere directory (CVS)

Page 12: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Versioni e configurazioni

Page 13: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

CVS (Grune, 1986)

Page 14: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Cos’è la gestione delle configurazioni sw (SCM)?

• Definizione: Software Configuration Management• Insieme delle attività del processo di sviluppo che costruiscono

una baseline di un sistema software• Include i metodi e le tecniche per iniziare, valutare e controllare

la modifica ad un sistema software

• Standard (approvati da ANSI)• IEEE 828: Software Configuration Management Plans• IEEE 1042: Guide to Software Configuration Management

Page 15: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Gestire il SCM

• SCM è la funzione che ha lo scopo di rendere efficiente la gestione tecnica dei rilasci

• L’ambito di applicazione di SCM può essere:• A livello aziendale (tutti i progetti sw di un’azienda)• Per un singolo progetto• Distribuito tra i membri del team di progetto• Un mix dei tre approcci precedenti

Page 16: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Principali attività di SCM

• Identificazione degli elementi sw in configurazione• Modellazione del sistema e dei suoi componenti in evoluzione

• Promotion management• Gestione di versioni per altri sviluppatori

• Gestione dei rilasci• Gestione di versioni per clienti e utenti

• Change management • Approvazione e tracciamento di richieste di modifica

• Gestione dei branch• La gestione dello sviluppo simultaneo da più persone

• La gestione delle varianti• La gestione di versioni coesistenti

Page 17: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Ruoli importanti per SCM

• Configuration manager• Ruolo responsabile di identificare i configuration item• Definisce le procedure per creare promozioni e rilasci

• Membro del Change Control Board• Approva o respinge le richieste di modifica

• Sviluppatore• Crea promozioni durante lo sviluppo o su richiesta di modifica.

Inserisce modifiche e risolve conflitti• Auditor

• Sceglie e valuta le promozioni per il rilascio e assicura consistenza e completezza di ogni rilascio

Page 18: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Terminologia

• Termini da definire:• Configuration item• Baseline• SCM Directories• Versione• Revisione• Rilascio

➭ Seguiamo lo standard IEEE 828-2012

Page 19: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Terminologia: Configuration Item

Configuration Item (elemento in configurazione):Collezione di artefatti (documenti e software), messi in configurazione cioè trattati come singola entità nel processo di gestione delle configurazioni

• Un configuration item contiene non solo codice sorgente ma tutti gli artefatti rilevanti, di vari tipi

• In certi progetti metteremo in configurazione non solo pezzi di software ma anche hardware (es. tipo di CPU, schede di rete, frequenze di bus, ecc)

Page 20: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Esempi di configuration item

Page 21: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Definire gli elementi in configurazione

• Non tutti gli artefatti prodotti durante il ciclo di vita verranno messi in configurazione

• Due problemi:• Cosa: Selezione dei configuration item

• Cosa va messo sotto controllo di configurazione?• Quando: Quando iniziamo a porre un elemento sotto controllo

di configurazione?• Dilemma:

• Iniziare troppo presto a porre elementi in configurazione aumenta la “burocrazia” di progetto e i costi

• Iniziare troppo tardi genera caos

Page 22: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Possibiliconfiguraton item

Modelli Sottosistemi Documenti

Modello oggetti Modello dinamico

Database User Interface

. . . .

Codice Dati Test di unità

RAD ODD

. . . . . . . .

. . . .

“il progetto”

Possibili elementi della configurazione

Page 23: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Artefatti per SCM: quali scegliere?

• Descrizione del problema• Software Project Management

Plan (SPMP)• Documento Requirements

Analysis (RAD)• Documento System Design

(SDD)• Contratto del progetto• Documento Object Design

(ODD)• Modello dinamico• Modello degli oggetti• Modello funzionale• Test di unità• Strategia di integrazione

• Codice sorgente• Specifica API• Dati e database in input • Test plan• Test data• Support software (parte del

prodotto)• Support software (al di fuori

del prodotto)• Manuale utente• Manuale amministratore

Page 24: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Possibili scelte per SCM (in rosso)

• Descrizione del problema• Software Project Management

Plan (SPMP)• Documento Requirements

Analysis (RAD)• Documento System Design

(SDD)• Contratto del progetto• Documento Object Design

(ODD)• Modello dinamico• Modello degli oggetti• Modello funzionale• Test di unità• Strategia di integrazione

• Codice sorgente• Specifica API• Dati e database in input • Test plan• Test data• Support software (parte del

prodotto)• Support software (al di fuori

del prodotto)• Manuale utente• Manuale amministratore

Page 25: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Terminologia: versione

Versione: Il rilascio iniziale o conseguente di un configuration item associato ad una sua ricompilazione completa (build)

Nota: versioni diverse possono offrire diverse funzionalità

Page 26: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Terminologia: Baseline

Baseline: Un artefatto revisionato e approvato formalmente dal management, utile per ulteriori sviluppi, e che può essere modificato solo mediante procedure controllate

L’obiettivo di una baseline è di ridurre il rischio di modifiche senza controlli durante il ciclo di vita (dunque non solo durante lo sviluppo)

Esempi: •Baseline A: La API è completamente definita; i corpi dei metodi sono vuoti

•Baseline B: Tutti i metodi di accesso sono stati implemementati e testati

•Baseline C: Anche la GUI è stata implementata.

Page 27: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Baseline

http://blog.feabhas.com/tag/baseline/

Una "baseline" è la descrizione, ad un certo punto del tempo, di un sistema sw e dei suoi componenti, che serve come riferimento per definire una modifica del sistema stesso

Page 28: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Dare nome alle baseline

• Esistono molti schemi di denominazione di baseline (esempi: 1.0, 6.01a, ...)

• Molto comune uno schema a tre cifre:

Principale, Rilascio esterno

(cliente)

Secondaria,Rilascio interno(sviluppatore)

Piccola revisione (sviluppatore)

7.5.5

Page 29: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Tipi di baseline

• Un sistema software evolve via via in più baseline, ciascuna prodotta di solito dopo una qualche revisione della precedente

• Es. analysis review, design review, code review, system testing, client acceptance, …• baseline di sviluppo• baseline funzionale• baseline di prodotto

Page 30: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Evoluzione dell’albero delle configurazioni

L’avanzamento del progetto produce artefatti, che vanno in configurazione; esistono alcune baseline/attività tipiche di ogni sviluppo di sistema:1.baseline funzionale per la System Requirements Review (SRR)2.Preliminary Design Review (PDR) per "design-to"3.Critical Design Review (CDR) per "build-to"4.System Acceptance Review (SAR) per "as-built"5.Operational Readiness Review (ORR) per "as-deployed"

Fonte: http://aaq.auburn.edu/node/60

Page 31: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Transizioni tra baseline

Rilascio

Baseline A (sviluppo)

Baseline B (funzionale, prototipo 1)

Baseline C (prodotto, beta test)

Come gestiamo le modifiche nelle baseline?

=> Change Management

Tempo

Page 32: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Change management

• “Change management” è la gestione delle richieste di modifica delle baseline

• Processo di change management: • Richiesta di modifica (da parte di qualche stakeholder)• Si valuta la richiesta rispetto ai requisiti ed ai vincoli di progetto• In seguito a tale valutazione la richiesta viene accettata o rifiutata• Se accettata, la modifica si assegna ad uno sviluppatore e

realizzata• La modifica realizzata viene ispezionata (audited)

Page 33: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

User

ReleaseSoftware

RepositoryMaster

DirectoryProgrammer

Promotion

Controllo delle modifiche

• Due tipi di controllo delle modifiche:• Promozione: cambia lo stato del codice internamente al

progetto• Rilascio: Un software modificato viene pubblicato all’esterno

dell’organizzazione che lo sviluppa

Page 34: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Foo ’16 Foo ’17

Directory tipiche di SCM

• Programmer’s Directory • (IEEE Std: “Dynamic Library”)• La controlla il programmatore

• Master Directory • (IEEE Std: “Controlled Library”) • directory centrale delle promozioni

• Software Repository• (IEEE Std: “Static Library”)• Codebase delle baseline rilasciate

Archivio centraledel sorgente

Rilascio

Promozione

Page 35: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Principali strumenti per SCM• RCS (Revision Control System) [Tichy 1982] : il primo • CVS (Concurrent Version Control) [Grune 1986]:

• Basato su RCS, permette sviluppi concorrenti senza lock• http://www.cvshome.org/

• Subversion [Collabnet 2004]:• Basato su CVS, open source• http://subversion.tigris.org/

• Git [Torvalds 2005]:• visualizzare e navigare una cronologia di sviluppo non lineare• Ipotesi: una modifica verrà fusa più spesso di quanto sia scritta• GitHub [2008]: social hosting di versioni e configurazioni

Page 36: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Modeling sw Configuration Management

• IEEE model• RCS model• CVS model• SVN model

Page 37: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Modello IEEE

Version*

Controlled Item

*

CM Aggregate ConfigurationItem

ReleasePromotion

RepositoryMaster Directory

*

*

Page 38: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Modello RCS

Version

*

File

Tag

*

*Aggregati proibitiControllo della concorrenza basato su lockNumeri di versione distinguono promozioni e rilasci Le baseline sono identificate da tag

User

locks *

0..1

Repository

*

Working Copy

*

11

ancestor

*1

Page 39: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Numerazione di versioni in RCS

1.1 :Revision

1.3.1.1:Revision

1.3.2.1:Revision

1.2 :Revision 1.3 :Revision 1.4 :Revision

1.3.1.2:RevisionBranch 1.3.1

Branch 1.3.2

Trunk

Page 40: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Modello CVS

Revision

Controlled Item*

Directory File

RepositorySuperset di RCSControllo degli aggregati in directoryModifiche concorrenti con copy/modify/merge(niente locking)

Tag

**

*

*

Working CopyUser

*

11

ancestor

*1

Page 41: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Copy/Modify/Merge in CVS

:Repository

modify()

alice:Developer

checkin(ac)

checkout()

aliceCopy:WorkingCopy

checkout()

joe:Developer

modify()

update(jc)

checkin(jc)

merge(ac)

joeCopy:WorkingCopy

Se le modifiche si sovrappongono, CVS di

Joe risolve i conflitti editando la copia

fusione

Page 42: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Ridenominazione in CVS

• CVS non supporta la ridenominazione• Invece lo sviluppatore

• Ridenomina il file nella copia di lavoro• Rimuove il vecchio nome dal repository• Aggiunge il nuovo nome nel repository

• I due alberi delle versioni sono disconnessi

editor1.3 editor1.4

myEditor1.1

myEditor1.2

cvs remove editor

cvs add myEditor

La relazione tra i due alberi di

revisione è persa

Page 43: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Subversion• Open Source http://subversion.tigris.org/

• Basato su CVS• Subversion interface and features similar to CVS• Commands: checkout, add, delete, commit, diff

• Differisce da CVS• Version controlled moving, renaming, copying of files and

directories• Version controlled metadata of files and directories

• Opzioni• Istallazione standalone• Integrato con Apache webserver

• The time for branch management is independent of the size of the system (CVS creates physical copies of the files, Subversion uses only tags)

Page 44: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Modello Subversion

Revision

Controlled Item*

Directory File

Repository

Simile a CVSControllo del file renaming/movingNumeri di versione globaliBranches e tags sono copie

*

*

Working CopyUser

*

11

ancestor

*1

copy* 1

Page 45: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

SVN Global Revision Number Scheme

Il numero di versione globale si applica all’intero alberoIl numero di versione aumenta dopo ogni check in, indipendentemente dalla quantità delle modifiche

Page 46: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Ridenominazione in Subversion

• Subversion vede come atributo il nome di un CI • Le modifiche al nome sono la stessa cosa che modifiche al

contenuto• C’è un unico albero storia• Lo strumento riesce a gestire i conflitti di ridenominazione

editor 3 editor 4 myEditor 5

svn rename editor myEditor

Page 47: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Duplicazione in Subversion

• Subversion traccia le copie così come traccia la ridenominazione• La storia di un CI copiato include la storia dell’originale• Le copie costano poco, vengono memorizzate solo le differenze• I branch sono copie

editor 3 editor 4

myEditor 5

svn copy editor myEditor

editor 6

Page 48: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

GIT

• Pro Git: http://www.git-scm.com/book/en/v2

• Creative Commons Attribution Non Commercial Share Alike 3.0 license

Page 49: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Controllo delle versioni centralizzato

Esempio: Subversion

Page 50: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Le versioni sono “delta”

Page 51: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Controllo delle versioni distribuito

Esempio: git

Page 52: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Snapshots

• In questo esempio i file A B C sono tracciati• Il database è conservato su ogni macchina locale• Per editare: “checkout” dal database in working directory• “commit” da working directory nel database• Memorizzato in formato compresso • I file sono memorizzati con hash SHA-1 non con filename

Page 53: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Operazioni locali

A che serve l’area stage?

Page 54: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

http://blog.mikepearce.net/2010/05/18/the-difference-between-git-pull-git-fetch-and-git-clone-and-git-rebase/

Page 55: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

SCM in SWEBOK

Page 56: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Domande di autotest

• Cos’è una versione?• Cos’è una configurazione?• A che serve un commit?• Come si inizia a usare git?

Page 57: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Letture raccomandate

Chacon e Straub, Pro git, Apress, 2014

Page 58: La gestione delle configurazioni (Software configuration ...cs.unibo.it/cianca/ · Seguiamo lo standard IEEE 828-2012. Terminologia: Configuration Item Configuration Item (elemento

Domande?