Caratteristiche e funzionamento della Continuous Integration in informatica

Caratteristiche e funzionamento della Continuous Integration in informatica

La Continuous Integration è una pratica emersa e diffusa grazie alla comunità Extreme Programming (XP), infatti in accordo con la definizione data da Martin Fowler, si può definire la Continuous Integration una pratica di sviluppo software dove i membri di un team integrano il proprio lavoro frequentemente, da una a più volte al giorno. Ogni integrazione deve essere verificata da una build automatizzata, che include dei test, per individuare errori di integrazione il più presto possibile e permettere ad un team di sviluppare software rapidamente.

Caratteristiche e funzionamento della Continuous Integration in informatica

Il problema dell’integrazione non è nuovo nel campo dello sviluppo ed è tanto più complesso quanto più crescono le dimensioni del software e del team che ne è incaricato allo sviluppo: al crescere della complessità, infatti, cresce anche la necessità di integrare e di garantire il corretto funzionamento di tutti i componenti sviluppati dai diversi membri del team. L’obiettivo principale della Continuous Integration è appunto quello di semplificare l’integrazione del software, facendola diventare parte integrante del processo di sviluppo anziché relegarla ad una fase successiva.

Sulla base delle caratteristiche dei modelli di sviluppo, è possibile affermare che la Continuous Integration ben si coniuga con una metodologia incrementale/iterativa. Su questo tipo di modelli di sviluppo infatti, l’integrazione del software è un evento che avviene frequentemente a differenza del modello a cascata, in cui viene fatta solamente al termine dell’implementazione, per poi essere testata nella sua interezza in fase di collaudo e verifica. Il vantaggio di un modello iterativo sta quindi nel costo di gestione dei bug, sia di sviluppo che di integrazione. E’ riconosciuto infatti che tale costo è tanto più elevato quanto più tardi viene scoperto.

La Continuous Integration ha inoltre come ulteriore scopo quello di individuare eventuali errori ancora prima: questo significa che per rilevare malfunzionamenti non è necessario attendere il termine dell’iterazione o dell’intero processo di sviluppo.

 

Funzionamento della Continuous Integration

Il funzionamento generale di un sistema di Continuous Integration è il seguente:

  1. Lo sviluppatore esegue i cambiamenti necessari al codice: implementa la feature richiesta, fino a che non la ritiene completata. Insieme ad essa, scrive i test automatici che la riguardano.
  2. Esegue una build privata sulla propria workstation: attraverso il processo di build vengono eseguiti tutti i task necessari alla corretta preparazione del software, prima del suo rilascio. In questa fase, oltre alla compilazione, intervengono i test automatici.
  3. Invio del codice al repository: una volta soddisfatti tutti i test, lo sviluppatore invia i propri cambiamenti al sistema di controllo versione.
  4. Build di integrazione: il Continuous Integration server periodicamente reperisce l’ultima versione del software dal repository ed effettua una nuova build automatica, comprensiva di test, che sarà il prodotto dei cambiamenti inviati da tutti gli sviluppatori del team.
  5. Feedback: se il processo di build da parte del Continuous Integration server va a buon fine, erro genera un feedback positivo (per esempio tramite email o un monitor ben visibile dal team) ed il software è pronto al rilascio. Viceversa il feedback sarà negativo e la soluzione del problema individuato diventa prioritaria rispetto lo sviluppo di nuove funzionalità.

Funzionamento della Continuous Integration in informatica

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: www.vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *