Configurazione software, cosa è?
Insieme di tutti gli elementi che compongono un sistema software:
Codice sorgente
Documentazione
Librerie e componenti esterni
Script di build
Manuali, guide teste
Cosa è il software configuration menagements
Insieme di attività che permettono di:
Identificare i componenti del sistema
Controllare le modifiche e versioni
Registrare lo stato di ogni elemento
Verificare che solo le versioni corrette vengano usate e rilasciate
Permette di lavorare con piú persone allo stesso codice
Obiettivi principali del software menagemente
Tracciabilitá
Riproducibilità
Controllo dei cambiamenti
Gestione delle versioni
Stabilità (evitare conflitti)
Componenti chiave del scm (software configuration management) secondo van vliet
Configuration identification : identificare gli elementi di configurazione
Version control : gestire le varianti dei componenti software
Change control : aggiornare la documentazione
Status accounting : tenere traccia dello stato di ogni componente
Auditing e review : verificare che la configurazione sia coerente e conforme
Change control process (come vengono gestite le modifiche)
Sottomissione( segnalazione problema)
Registrazione(la richiesta viene catalogata nel sistema di gestione)
Analisi(si valuta impatto della modifica)
Decision(accettazione)
Implementazione (modifica in un branch apposito)
Verifica e integrazione( test della modifica)
Aggiornamento documentazione(fine controllo)
Version
Git
Github
Buone pratiche
Branch dedicati
Commit frequenti
Commit chiari
Revisionare il codice
Taggare