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

Hai bisogno della gestione della configurazione

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

Partecipante al processo 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.

Riassumi questo post con: