Gestione della configurazione software nell'ingegneria del software
โก Riepilogo intelligente
La gestione della configurazione del software (SCM) รจ un processo per gestire, organizzare e controllare sistematicamente le modifiche a documenti, codice e altri elementi durante l'intero ciclo di vita dello sviluppo del software. Il suo obiettivo principale รจ aumentare la produttivitร mantenendoping ridurre al minimo gli errori.

Che cos'รจ la gestione della configurazione software?
Nell'ingegneria del software, Gestione della configurazione del software (SCM) La gestione del codice sorgente (SCM) รจ un processo per gestire, organizzare e controllare sistematicamente le modifiche apportate a documenti, codici e altre entitร durante il ciclo di vita dello sviluppo del software. L'obiettivo principale รจ aumentare la produttivitร riducendo al minimo gli errori. La SCM fa parte del campo interdisciplinare della gestione della configurazione e puรฒ determinare con precisione chi ha effettuato quale revisione.
Perchรฉ abbiamo bisogno della gestione della configurazione?
Le ragioni principali per implementare un sistema di gestione della configurazione del software tecnico sono:
- Diverse persone lavorano allo sviluppo di un software che viene costantemente aggiornato.
- Potrebbe verificarsi un caso in cui un progetto di configurazione software coinvolge piรน versioni, rami e autori, e il team รจ distribuito geograficamente e lavora contemporaneamente.
- ร necessario tener conto delle modifiche ai requisiti degli utenti, alle politiche, al budget e alla tempistica.
- Il software dovrebbe essere in grado di funzionare su varie macchine e Operasistemi di ting.
- Contribuisce a sviluppare il coordinamento tra le parti interessate.
- Il processo SCM รจ inoltre utile per controllare i costi associati alle modifiche apportate a un sistema.
Qualsiasi modifica agli elementi di configurazione del software influenzerร il prodotto finale. Pertanto, le modifiche agli elementi di configurazione devono essere controllate e gestite.
Attivitร nel processo SCM
- Identificazione della configurazione
- Baseline
- Controllo delle modifiche
- Contabilitร dello stato di configurazione
- Verifiche di configurazione e Revviste
Identificazione della configurazione
L'identificazione della configurazione รจ un metodo per determinare l'ambito di un sistema software. Grazie a questo passaggio, รจ possibile gestire o controllare qualcosa anche senza conoscerne la natura. Si tratta di una descrizione che contiene il tipo CSCI (Computer Software Configuration Item), un identificatore di progetto e informazioni sulla versione.
Attivitร durante questo processo:
- Identificazione degli elementi di configurazione come moduli del codice sorgente, caso di provae la specifica dei requisiti.
- Identificazione di ogni CSCI nel repository SCM, utilizzando un approccio orientato agli oggetti.
- Il processo inizia con oggetti di base che vengono raggruppati in oggetti aggregati. Vengono forniti dettagli su cosa, perchรฉ, quando e da chi vengono apportate le modifiche al test.
- Ogni oggetto possiede caratteristiche proprie che ne identificano il nome, esplicito per tutti gli altri oggetti.
- Elenco delle risorse necessarie, come il documento, il file, gli strumenti, ecc.
Esempio:
Anzichรฉ chiamare il file login.php, dovrebbe chiamarsi login_v1.2.php, dove v1.2 indica il numero di versione del file.
Invece di nominare una cartella โCode" dovrebbe essere chiamato "Code_Dโ dove D indica che il codice deve essere sottoposto a backup giornaliero.
Linea di base
Una baseline รจ una versione formalmente accettata di un elemento di configurazione software. Viene designato e fissato in un momento specifico durante lo svolgimento del processo SCM. Puรฒ essere modificato solo attraverso procedure formali di controllo delle modifiche.
Attivitร durante questo processo:
- Facilitare la creazione di diverse versioni di un'applicazione.
- Definizione e determinazione dei meccanismi per la gestione delle diverse versioni di questi prodotti di lavoro.
- La configurazione funzionale di base corrisponde ai requisiti di sistema esaminati.
- Tra le linee di base piรน utilizzate figurano quelle funzionali, di sviluppo e di prodotto.
In parole semplici, linea di base significa pronto per il rilascio.
Controllo delle modifiche
Il controllo delle modifiche รจ un metodo procedurale che garantisce qualitร e coerenza quando vengono apportate modifiche all'oggetto di configurazione. In questa fase, la richiesta di modifica viene inviata al responsabile della configurazione del software.
Attivitร durante questo processo:
- Gestisci le modifiche ad hoc per creare un ambiente di sviluppo software stabile. Le modifiche vengono salvate nel repository.
- La richiesta verrร esaminata in base al merito tecnico, ai possibili effetti collaterali e all'impatto complessivo sugli altri oggetti di configurazione.
- Gestisce le modifiche e rende disponibili gli elementi di configurazione durante il ciclo di vita del software.
Contabilitร dello stato di configurazione
Stato della configurazione Contabilitร tracks ogni rilascio durante il processo SCM. Questa fase prevede tracScopri cosa contiene ogni versione e i cambiamenti che hanno portato a questa versione.
Attivitร durante questo processo:
- Tiene traccia di tutte le modifiche apportate alla baseline precedente per raggiungere una nuova baseline.
- Identificare tutti gli elementi necessari per definire la configurazione del software.
- Monitorare lo stato delle richieste di modifica.
- Elenco completo di tutte le modifiche apportate dall'ultimo punto di riferimento.
- Permette tracre del progresso verso la prossima linea di base.
- Consente di esportare le versioni precedentitracted per i test.
Verifiche di configurazione e Revviste
Gli audit di configurazione del software verificano che tutto il prodotto software soddisfi le esigenze di base. Garantisce che ciรฒ che viene costruito sia ciรฒ che viene consegnato.
Attivitร durante questo processo:
- L'audit della configurazione viene condotto da revisori verificando che i processi definiti vengano seguiti e assicurando che gli obiettivi SCM siano soddisfatti.
- Verificare la conformitร agli standard di controllo della configurazione, effettuare verifiche e segnalare le modifiche apportate.
- Gli audit SCM garantiscono inoltre che tracLa facilitร d'uso viene mantenuta durante il processo.
- Garantisce che le modifiche apportate a una baseline siano conformi ai report sullo stato della configurazione.
- Validazione della completezza e della coerenza.
Partecipante al processo SCM
Di seguito sono elencati i principali partecipanti alla gestione della catena di approvvigionamento (SCM):
1. Gestore della configurazione
- Il responsabile della configurazione รจ la figura incaricata di identificare gli elementi di configurazione.
- CM si assicura che il team segua il processo SCM.
- Deve approvare o rifiutare le richieste di modifica.
2. Sviluppatore
- Lo sviluppatore deve modificare il codice in base alle attivitร di sviluppo standard o alle richieste di modifica. ร responsabile della manutenzione della configurazione del codice.
- Lo sviluppatore deve verificare le modifiche e risolvere i conflitti.
3. uditore
- Il revisore รจ responsabile degli audit e delle revisioni del SCM.
- ร necessario garantire la coerenza e la completezza del rilascio.
4. Responsabile del progetto:
- Assicurarsi che il prodotto venga sviluppato entro un determinato periodo di tempo.
- Monitora l'avanzamento dello sviluppo e individua i problemi nel processo di gestione della catena di fornitura (SCM).
- Genera report sullo stato del sistema software.
- Assicurarsi che vengano rispettati i processi e le politiche per la creazione, la modifica e il test.
5. Utente
L'utente finale deve comprendere i termini chiave della gestione della catena di fornitura (SCM) per assicurarsi di disporre della versione piรน recente del software.
Piano di gestione della configurazione software
Il processo SCMP (Software Configuration Management Planning) inizia nelle prime fasi di programmazione di un progetto. Il risultato della fase di pianificazione รจ il piano SCM, che puรฒ essere ampliato o rivisto nel corso del progetto.
- Il protocollo SCMP puรฒ seguire uno standard pubblico come l'IEEE 828 o uno standard specifico dell'organizzazione.
- Definisce i tipi di documenti da gestire e una convenzione di denominazione dei documenti. Esempio: Test_v1.
- SCMP definisce la persona che sarร responsabile dell'intero processo SCM e della creazione delle linee di base.
- Definire le politiche per la gestione delle versioni e il controllo delle modifiche.
- Definire gli strumenti utilizzabili durante il processo SCM.
- Database di gestione della configurazione per la registrazione delle informazioni di configurazione.
Strumenti di gestione della configurazione software
Qualsiasi software di gestione delle modifiche dovrebbe possedere le seguenti 3 caratteristiche principali:
Gestione della concorrenza:
Quando due o piรน attivitร vengono eseguite contemporaneamente, si parla di operazioni concorrenti. Nel contesto della gestione del codice sorgente (SCM), la concorrenza significa che lo stesso file viene modificato contemporaneamente da piรน persone.
Se la concorrenza non viene gestita correttamente con gli strumenti SCM, potrebbe creare molti problemi urgenti.
Controllo della versione:
Il sistema di controllo versione (SCM) utilizza un metodo di archiviazione, ovvero salva ogni modifica apportata a un file. Grazie alla funzione di archiviazione o salvataggio, รจ possibile ripristinare la versione precedente in caso di problemi.
Synccronizzazione:
Gli utenti possono estrarre piรน di un file o un'intera copia del repository. Successivamente, lavorano sul file necessario e caricano le modifiche nel repository. Possono sincronizzare la propria copia locale per rimanere aggiornati con le modifiche apportate dagli altri membri del team.
Di seguito sono elencati alcuni strumenti popolari:
1.Git: Git รจ uno strumento gratuito e open source che aiuta il controllo della versione. ร progettato per gestire tutti i tipi di progetti con velocitร ed efficienza.
Download link: https://git-scm.com/
2. squadra Foundation Server: Team Foundation รจ un gruppo di strumenti e tecnologie che consentono al team di collaborare e coordinarsi per la creazione di un prodotto.
Download link: https://azure.microsoft.com/en-us/services/devops/server/
3. Ansible: Si tratta di uno strumento open source per la gestione della configurazione del software. Oltre alla gestione della configurazione, offre anche funzionalitร di distribuzione delle applicazioni e automazione delle attivitร .
Download link: https://www.ansible.com/


