Gestione della configurazione software nell'ingegneria del software
Che cos'è la gestione della configurazione software?
Nell'ingegneria del software, Gestione della configurazione software (SCM) è un processo per gestire, organizzare e controllare sistematicamente le modifiche nei documenti, nei codici e in altre entità durante il ciclo di vita dello sviluppo del software. L’obiettivo principale è aumentare la produttività con errori minimi. 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 il sistema di gestione della configurazione del software tecnico sono:
- Ci sono più persone che lavorano su un software che viene aggiornato continuamente
- Potrebbe verificarsi il caso in cui più versioni, rami e autori sono coinvolti in un progetto di configurazione del software e il team è distribuito geograficamente e lavora contemporaneamente
- È necessario accogliere i cambiamenti nei requisiti degli utenti, nelle politiche, nel budget e nella pianificazione.
- Il software dovrebbe essere in grado di funzionare su varie macchine e Operasistemi di ting
- Aiuta a sviluppare il coordinamento tra le parti interessate
- Il processo SCM è utile anche per controllare i costi coinvolti nell'apportare modifiche 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 del sistema software. Con l'aiuto di questo passaggio puoi gestire o controllare qualcosa anche se non sai di cosa si tratta. Si tratta di una descrizione che contiene il tipo CSCI (Computer Software Configuration Item), un identificatore del 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 ciascun CSCI nel repository SCM, utilizzando un approccio orientato agli oggetti
- Il processo inizia con oggetti di base che vengono raggruppati in oggetti aggregati. Dettagli su cosa, perché, quando e da chi vengono apportate modifiche al test
- Ogni oggetto ha le sue caratteristiche che ne identificano il nome che è esplicito a tutti gli altri oggetti
- Elenco delle risorse richieste come il documento, il file, gli strumenti, ecc.
Esempio:
Invece di nominare un file login.php, dovrebbe essere chiamato login_v1.2.php dove v1.2 sta per il numero di versione del file
Invece di denominare la cartella "Codice", dovrebbe essere denominata "Codice_D" dove D rappresenta il codice di cui deve essere eseguito il backup quotidiano.
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 costruzione di varie versioni di un'applicazione
- Definizione e determinazione dei meccanismi per la gestione delle varie versioni di questi prodotti di lavoro
- La linea di base funzionale corrisponde ai requisiti di sistema esaminati
- Le linee di base ampiamente utilizzate includono linee di base 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 questo passaggio, la richiesta di modifica viene inviata al gestore della configurazione del software.
Attività durante questo processo:
- Controlla le modifiche ad hoc per creare un ambiente di sviluppo software stabile. Le modifiche vengono apportate al repository
- La richiesta verrà verificata in base al merito tecnico, ai possibili effetti collaterali e all'impatto complessivo su 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
L'accounting dello stato della configurazione tiene traccia di ogni rilascio durante il processo SCM. Questa fase prevede il monitoraggio di ciò che contiene ciascuna versione e delle modifiche che portano a questa versione.
Attività durante questo processo:
- Tiene traccia di tutte le modifiche apportate alla linea di base precedente per raggiungere una nuova linea di base
- Identificare tutti gli elementi per definire la configurazione del software
- Monitorare lo stato delle richieste di modifica
- Elenco completo di tutte le modifiche dall'ultima linea di base
- Consente il monitoraggio dei progressi fino alla linea di base successiva
- Consente di verificare i rilasci/versioni precedenti da estrarre per il 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.
- Per verificare la conformità agli standard di controllo della configurazione. verificando e segnalando le modifiche apportate
- Gli audit SCM garantiscono inoltre il mantenimento della tracciabilità 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 riportati i principali partecipanti a SCM
1. Gestore della configurazione
- Configuration Manager è il responsabile responsabile dell'identificazione degli elementi di configurazione.
- CM garantisce che il team segua il processo SCM
- Lui/lei 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 del mantenimento della configurazione del codice.
- Lo sviluppatore dovrebbe verificare le modifiche e risolvere i conflitti
3. uditore
- Il revisore è responsabile degli audit e delle revisioni del SCM.
- Necessità di 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 il progresso dello sviluppo e riconosce i problemi nel processo SCM
- Genera report sullo stato del sistema software
- Assicurati che i processi e le policy siano seguiti per la creazione, la modifica e il test
5. Utente
L'utente finale deve comprendere i termini chiave di SCM per assicurarsi di disporre della versione più recente del software
Piano di gestione della configurazione software
La pianificazione del processo SCMP (Software Configuration Management Planning) inizia nelle prime fasi di codifica di un progetto. Il risultato della fase di pianificazione è il piano SCM che potrebbe essere ampliato o rivisto durante il progetto.
- L'SCMP può seguire uno standard pubblico come IEEE 828 o uno standard specifico dell'organizzazione
- Definisce i tipi di documenti da gestire e la denominazione del documento. Esempio Test_v1
- SCMP definisce la persona che sarà responsabile dell'intero processo SCM e della creazione delle linee di base.
- Correggi le policy per la gestione delle versioni e il controllo delle modifiche
- Definire gli strumenti che possono essere utilizzati 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 del cambiamento dovrebbe avere le seguenti 3 caratteristiche chiave:
Gestione della concorrenza:
Quando due o più attività vengono eseguite contemporaneamente, si parla di operazione simultanea. La concorrenza nel contesto di SCM significa che lo stesso file viene modificato da più persone contemporaneamente.
Se la concorrenza non viene gestita correttamente con gli strumenti SCM, potrebbe creare molti problemi urgenti.
Controllo della versione:
SCM utilizza il metodo di archiviazione o salva ogni modifica apportata al file. Con l'aiuto della funzionalità di archiviazione o salvataggio, è possibile tornare alla versione precedente in caso di problemi.
Synccronizzazione:
Gli utenti possono effettuare il checkout di più di un file o di un'intera copia del repository. L'utente lavora quindi sul file necessario e registra le modifiche nel repository. Possono sincronizzare la loro copia locale per rimanere aggiornati con le modifiche apportate dagli altri membri del team.
Di seguito sono riportati gli strumenti più 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. Abile: È uno strumento di gestione della configurazione software open source. Oltre alla gestione della configurazione, offre anche la distribuzione delle applicazioni e l'automazione delle attività.
Download link: https://www.ansible.com/
Controlla altri strumenti di configurazione SW: https://www.guru99.com/software-configuration-management-tools.html
Conclusione
- Le migliori pratiche di gestione della configurazione aiutano le organizzazioni a 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 del processo SCM è aumentare la produttività con errori minimi
- Il motivo principale dietro il processo di gestione della configurazione è che ci sono più persone che lavorano su un software che si aggiorna continuamente. SCM aiuta a stabilire concorrenza, sincronizzazione e controllo delle versioni.
- Una baseline è una versione formalmente accettata di un elemento di configurazione software
- Il controllo delle modifiche è un metodo procedurale che garantisce qualità e coerenza quando vengono apportate modifiche all'oggetto di configurazione.
- L'accounting dello stato della configurazione tiene traccia di ogni rilascio durante il processo SCM
- Gli audit di configurazione del software verificano che tutto il prodotto software soddisfi le esigenze di base
- Project manager, Configuration manager, sviluppatore, revisore e utente sono partecipanti al processo SCM
- La pianificazione del processo SCM inizia nelle prime fasi di un progetto.
- Git, Team Foundation Sever e Ansible sono alcuni strumenti SCM popolari.