Gestion de la configuration logicielle en génie logiciel

Qu’est-ce que la gestion de configuration logicielle ?

En génie logiciel, Gestion de la configuration logicielle (SCM) est un processus permettant de gérer, d'organiser et de contrôler systématiquement les modifications apportées aux documents, codes et autres entités au cours du cycle de vie du développement logiciel. L’objectif principal est d’augmenter la productivité avec un minimum d’erreurs. SCM fait partie du domaine interdisciplinaire de la gestion de la configuration et peut déterminer avec précision qui a effectué quelle révision.

Pourquoi avons-nous besoin de la gestion de la configuration ?

Les principales raisons de la mise en œuvre d’un système de gestion de configuration logicielle technique sont :

  • Plusieurs personnes travaillent sur un logiciel qui est continuellement mis à jour
  • Il peut s'agir d'un cas où plusieurs versions, succursales et auteurs sont impliqués dans un projet de configuration logicielle et où l'équipe est géographiquement répartie et travaille simultanément.
  • Les changements dans les besoins des utilisateurs, la politique, le budget et le calendrier doivent être pris en compte.
  • Le logiciel doit pouvoir fonctionner sur diverses machines et OperaSystèmes de montage
  • Aide à développer la coordination entre les parties prenantes
  • Le processus SCM est également bénéfique pour contrôler les coûts impliqués dans la modification d'un système.

Besoin de gestion de configuration

Tout changement dans les éléments de configuration du logiciel affectera le produit final. Par conséquent, les modifications apportées aux éléments de configuration doivent être contrôlées et gérées.

Tâches dans le processus SCM

  • Identification de la configuration
  • Lignes de base
  • Le contrôle des changements
  • Comptabilisation de l'état de la configuration
  • Audits de configuration et Revvues

Identification de la configuration

L'identification de la configuration est une méthode permettant de déterminer la portée du système logiciel. Avec l'aide de cette étape, vous pouvez gérer ou contrôler quelque chose même si vous ne savez pas de quoi il s'agit. Il s'agit d'une description qui contient le type CSCI (Computer Software Configuration Item), un identifiant de projet et des informations de version.

Activités au cours de ce processus :

  • Identification des éléments de configuration comme les modules de code source, cas de testet la spécification des exigences.
  • Identification de chaque CSCI dans le référentiel SCM, en utilisant une approche orientée objet
  • Le processus commence par des objets de base qui sont regroupés en objets agrégés. Détails sur quoi, pourquoi, quand et par qui les modifications sont apportées au test
  • Chaque objet possède ses propres caractéristiques qui identifient son nom explicite pour tous les autres objets.
  • Liste des ressources nécessaires telles que le document, le dossier, les outils, etc.

Mise en situation :

Au lieu de nommer un fichier login.php, il devrait être nommé login_v1.2.php où v1.2 représente le numéro de version du fichier.

Au lieu de nommer le dossier « Code », il doit être nommé « Code_D », où D représente le code qui doit être sauvegardé quotidiennement.

Baseline

Une référence est une version formellement acceptée d'un élément de configuration logicielle. Il est désigné et fixé à un moment précis lors de la conduite du processus SCM. Il ne peut être modifié que par le biais de procédures formelles de contrôle des modifications.

Activités au cours de ce processus :

  • Faciliter la construction de différentes versions d’une application
  • Définir et déterminer les mécanismes de gestion des différentes versions de ces produits de travail
  • La base fonctionnelle correspond aux exigences du système révisées
  • Les références largement utilisées incluent les références fonctionnelles, de développement et de produits.

En termes simples, référence signifie prêt à être publié.

Le contrôle des changements

Le contrôle des modifications est une méthode procédurale qui garantit la qualité et la cohérence lorsque des modifications sont apportées à l'objet de configuration. Dans cette étape, la demande de modification est soumise au gestionnaire de configuration logicielle.

Activités au cours de ce processus :

  • Contrôlez les changements ad hoc pour créer un environnement de développement logiciel stable. Les modifications sont validées dans le référentiel
  • La demande sera vérifiée en fonction de sa valeur technique, des effets secondaires possibles et de son impact global sur d'autres objets de configuration.
  • Il gère les modifications et rend les éléments de configuration disponibles pendant le cycle de vie du logiciel.

Comptabilisation de l'état de la configuration

La comptabilité de l'état de la configuration suit chaque version pendant le processus SCM. Cette étape consiste à suivre ce que contient chaque version et les modifications qui conduisent à cette version.

Activités au cours de ce processus :

  • Conserve un enregistrement de toutes les modifications apportées à la référence précédente pour atteindre une nouvelle référence
  • Identifier tous les éléments pour définir la configuration logicielle
  • Surveiller l'état des demandes de changement
  • Liste complète de tous les changements depuis la dernière référence
  • Permet de suivre la progression jusqu'à la ligne de base suivante
  • Permet de vérifier les versions/versions précédentes à extraire pour les tests

Audits de configuration et Revvues

Les audits de configuration logicielle vérifient que tous les produits logiciels répondent aux besoins de base. Cela garantit que ce qui est construit est ce qui est livré.

Activités au cours de ce processus :

  • L'audit de configuration est effectué par des auditeurs en vérifiant que les processus définis sont suivis et en s'assurant que les objectifs SCM sont atteints.
  • Vérifier la conformité aux normes de contrôle de configuration. auditer et rendre compte des modifications apportées
  • Les audits SCM garantissent également que la traçabilité est maintenue tout au long du processus.
  • Garantit que les modifications apportées à une ligne de base sont conformes aux rapports d'état de la configuration
  • Validation de l’exhaustivité et de la cohérence

Participant au processus SCM

Voici les principaux participants au SCM

Participant au processus SCM

1. Gestionnaire de configurations

  • Configuration Manager est le responsable responsable de l’identification des éléments de configuration.
  • CM s'assure que l'équipe suit le processus SCM
  • Il/Elle doit approuver ou rejeter les demandes de changement

2. Développeur

  • Le développeur doit modifier le code conformément aux activités de développement standard ou aux demandes de modification. Il est responsable du maintien de la configuration du code.
  • Le développeur doit vérifier les modifications et résoudre les conflits

3. Auditeur

  • L'auditeur est responsable des audits et des examens SCM.
  • Nécessité de garantir la cohérence et l’exhaustivité de la version.

4. Chef de projet :

  • S'assurer que le produit est développé dans un certain délai
  • Surveille les progrès du développement et reconnaît les problèmes dans le processus SCM
  • Générer des rapports sur l'état du système logiciel
  • Assurez-vous que les processus et les politiques sont suivis pour la création, la modification et les tests.

5. Utilisateur

L'utilisateur final doit comprendre les termes clés du SCM pour s'assurer qu'il dispose de la dernière version du logiciel.

Plan de gestion de la configuration logicielle

La planification du processus SCMP (Software Configuration Management Planning) commence dès les premières phases de codage d'un projet. Le résultat de la phase de planification est le plan SCM qui peut être étendu ou révisé au cours du projet.

  • Le SCMP peut suivre une norme publique comme l'IEEE 828 ou une norme spécifique à une organisation.
  • Il définit les types de documents à gérer et une dénomination des documents. Exemple Test_v1
  • SCMP définit la personne qui sera responsable de l'ensemble du processus SCM et de la création des références.
  • Corriger les politiques de gestion des versions et de contrôle des modifications
  • Définir les outils qui peuvent être utilisés pendant le processus SCM
  • Base de données de gestion de configuration pour enregistrer les informations de configuration.

Outils de gestion de la configuration logicielle

Tout logiciel de gestion des changements doit avoir les 3 fonctionnalités clés suivantes :

Gestion de la concurrence :

Lorsque deux tâches ou plus se déroulent en même temps, on parle d’opération simultanée. La concurrence dans le contexte de SCM signifie que le même fichier est modifié par plusieurs personnes en même temps.

Si la simultanéité n’est pas gérée correctement avec les outils SCM, cela peut créer de nombreux problèmes urgents.

Contrôle de version:

SCM utilise une méthode d'archivage ou enregistre chaque modification apportée au fichier. Grâce à la fonction d'archivage ou de sauvegarde, il est possible de revenir à la version précédente en cas de problème.

Synchronisation:

Les utilisateurs peuvent extraire plusieurs fichiers ou une copie entière du référentiel. L'utilisateur travaille ensuite sur le fichier nécessaire et archive les modifications dans le référentiel. Il peut synchroniser sa copie locale pour rester à jour avec les modifications apportées par les autres membres de l'équipe.

Voici les outils populaires

1.Git : Git est un outil gratuit et open source qui facilite le contrôle de version. Il est conçu pour gérer tous types de projets avec rapidité et efficacité.

Lien de téléchargement: https://git-scm.com/

2. Équipe Foundation Serveur: Équipe Foundation est un groupe d'outils et de technologies qui permettent à l'équipe de collaborer et de se coordonner pour créer un produit.

Lien de téléchargement: https://azure.microsoft.com/en-us/services/devops/server/

3.Ansible: Il s'agit d'un outil de gestion de configuration logicielle open source. Outre la gestion de la configuration, il propose également le déploiement d'applications et l'automatisation des tâches.

Lien de téléchargement: https://www.ansible.com/

Découvrez plus d'outils de configuration logicielle : https://www.guru99.com/software-configuration-management-tools.html

Conclusion

  • Les meilleures pratiques de gestion de configuration aident les organisations à gérer, organiser et contrôler systématiquement les modifications apportées aux documents, codes et autres entités au cours du processus. Cycle de vie du développement logiciel.
  • L'objectif principal du processus SCM est d'augmenter la productivité avec un minimum d'erreurs
  • La principale raison du processus de gestion de la configuration est que plusieurs personnes travaillent sur des logiciels qui sont continuellement mis à jour. SCM aide à établir la concurrence, la synchronisation et le contrôle des versions.
  • Une référence est une version formellement acceptée d'un élément de configuration logicielle
  • Le contrôle des modifications est une méthode procédurale qui garantit la qualité et la cohérence lorsque des modifications sont apportées à l'objet de configuration.
  • La comptabilité de l'état de la configuration suit chaque version pendant le processus SCM
  • Les audits de configuration logicielle vérifient que tous les produits logiciels répondent aux besoins de base
  • Le chef de projet, le gestionnaire de configuration, le développeur, l'auditeur et l'utilisateur participent au processus SCM.
  • La planification du processus SCM commence dès les premières phases d'un projet.
  • Git, Team Foundation Sever et Ansible sont quelques outils SCM populaires.