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/



