LE GUIDE ULTIME

Software Artifacts - Artefacts logiciels

Que sont les artefacts logiciels et pourquoi sont-ils à la base du développement logiciel ? Découvrez les différents types d’artefacts et pourquoi tous les développeurs en ont besoin.

Introduction

Que sont les software artifacts (artefacts logiciels) et qu’ont-ils en commun avec les artefacts historiques ? Tout comme ces derniers, un artefact logiciel est le fruit d’efforts humains.

Même si, a posteriori, les deux sont des artefacts, il y a une grande différence : si les artefacts historiques sont tangibles, les artefacts logiciels sont virtuels, comme les modèles de langage, les microservices ou les documents de conception créés au cours du processus de développement logiciel.

Découvrez-en plus sur les artefacts logiciels et comment ils accompagnent tous les efforts de développement.

Qu’est-ce qu’un Software Artifact (artefact logiciel) ?

Dans le domaine du développement logiciel, un artefact logiciel est un élément produit lors du processus de développement. Il peut s’agir d’un modèle de données, d’un prototype, d’un diagramme de flux de travail, d’un document de conception ou d’un script de configuration. En fait, certains artefacts spécifiques sont nécessaires lors d’un cycle de développement et doivent être stockés dans un emplacement accessible.

En temps normal, le terme artefact est utilisé dans un contexte historique et fait référence aux inventions humaines. Le plus souvent, les artefacts revêtent un intérêt scientifique et sont utilisés pour remonter la piste vers des modes de vie passés. Les artefacts logiciels sont similaires dans le sens où ils aident les développeurs à suivre la trace de la création d’un produit logiciel. Ainsi, ils retranscrivent sous forme de carte le processus de développement logiciel.

Dans le monde du développement logiciel, « artefact logiciel » n’est pas un terme normalisé. Par conséquent, il n’est pas surprenant que les différentes entreprises aient leurs propres définitions et perspectives. Dans l’outil de LeanIX, un artefact logiciel est un élément de logiciel, déployable indépendamment, qui est en réalité développé par un ingénieur. Cela les démarque des actifs logiciels, un terme qui n’est pas bien admis au sein de la communauté des développeurs en raison de la gestion lourde et opérationnelle qu’ils nécessitent.

Toutefois, afin de respecter les normes générales de l’industrie, cette page passe également en revue les artefacts logiciels qui ne sont pas seulement générés par des ingénieurs ou des développeurs, mais aussi par d’autres membres du personnel qui contribuent au processus de développement.

Mais de quels types d’artefacts parlons-nous en réalité et comment sont-ils stockés pour les utilisations futures ? Lisez la suite et découvrez les différents types d’artefacts logiciels et l’importance des différents dépôts d’artefacts.

Référentiels d’artefacts

Les artefacts historiques sont découverts par les archéologues étant donné qu’ils ne sont pas faciles à trouver. Inutile de préciser qu’une forte dispersion des artefacts logiciels serait préjudiciable dans le monde de développement logiciel. Pour simplifier la traçabilité, il est nécessaire de les stocker correctement dans un référentiel d’artefacts. Vous trouverez ci-dessous les trois différents types que vous devez être capable de distinguer.

Référentiel à distance : utilise une URL à distance et est parfois hébergé par un fournisseur externe. S’il est possible de supprimer des artefacts logiciels, il n’est pas possible d’en ajouter.

Référentiel local : dans ce cas de figure, les artefacts logiciels sont stockés sur un serveur sur site et sont déployés et gérés sur place.

Référentiel virtuel : ce référentiel combine les deux types ci-dessus. Les utilisateurs ont accès aux artefacts locaux et à distance à l’aide de la même URL et peuvent les supprimer ou en ajouter sans difficulté.

Les sections suivantes sont consacrées aux différents types d’artefacts logiciels, aux moments auxquels ils sont créés et aux finalités courantes de leur utilisation.

Les types d’artefacts logiciels

Tout comme pour les référentiels d’artefacts, il existe différents types d’artefacts logiciels qu’il est nécessaire de stocker.

En général, on peut distinguer trois types distincts : les artefacts de gestion de projet, de code et de document. Lisez la suite pour en savoir plus.

Artefacts gestion de projet

Ces artefacts, créés une fois le code développé, servent à tester le bon fonctionnement du logiciel et à détecter les bogues ou autres problèmes techniques. Les artefacts de gestion de projet ont toujours l’utilisateur final en tête et sont habituellement créés par les développeurs logiciels, les responsables de la maintenance du logiciel, et les chefs de projets logiciels.

Voici quelques exemples.

  • Diagrammes de classe : ce sont des diagrammes à structure statique du système dont ils montrent les classes, les attributs et les méthodes, ainsi que tous les objets et leurs interdépendances.
  • Démo : comme leur nom l’indique, les démos sont des guides qui expliquent aux équipes une application de A à Z.
  • Documentation utilisateur final : ce type de documentation, destiné aux clients, vise à aider les utilisateurs finaux à utiliser les logiciels correspondants.
  • Documentation interne : ce type de documentation est destiné aux employés chargés de la maintenance ou de la réparation des applications logicielles.
  • User case/stories : ces artefacts décrivent en détail et avec des termes techniques les fonctionnalités du logiciel.
  • Critère : avec ces artefacts, le client ou le chef de projet expose les besoins du logiciel ou du projet afin de donner aux développeurs un objectif spécifique.
  • Unified Modeling Language (UML) : l’UML (Langage de Modélisation Unifié) est utilisé pour visualiser et esquisser le logiciel et son fonctionnement, y compris des liens et des processus.
  • Évaluation des risques : ceux-ci décrivent tous les risques ou écueils potentiels propres au logiciel, afin que les développeurs puissent trouver des moyens de les éviter et de les contourner.

Artefacts de code

Les artefacts de code sont probablement les sous-produits les plus attendus au cours du processus de développement du logiciel, puisqu’ils posent les fondations d’un programme. Créés par les développeurs et les ingénieurs en fiabilité de site, les artefacts de code leur permettent de faire une évaluation détaillée de leur travail avant le lancement du logiciel. C’est la meilleure manière d’éviter les problèmes techniques ultérieurs.

Voici les artefacts de code les plus fréquents et les plus utiles :

  • Suites de test : il s’agit d’un code spécifique pour tester les tenants et aboutissants d’un programme et s’assurer que chaque processus fonctionne comme prévu.
  • Scripts d’installation : ces artefacts préparent l’environnement pour le logiciel et permettent de confirmer sa compatibilité avec une machine donnée.
  • Code compilé : il s’agit du code final qui sera transmis à l’utilisateur. Il ne doit donc comporter aucune erreur ni aucun problème technique.
  • Sortie d’essai : ces artefacts sont connectés à la suite de tests vu qu’ils comprennent les registres et les résultats de la phase de test.
  • Microservices : ces artefacts sont des services à faible couplage ou de petits composants déployables qui donnent naissance à des systèmes d’application plus complexes dans leur ensemble.

Artefacts de documentation

Créés par les développeurs de logiciel, le personnel de maintenance ou les chefs de projet logiciels, les artefacts de documentation deviennent importants vers la fin de la programmation. En termes simples, un artefact de documentation garde une trace de tous les documents nécessaires pour reproduire le résultat sans avoir à créer un nouvel artefact.

Ces documents comprennent l’accord de l’utilisateur final qui énonce les conditions générales d’utilisation de l’artefact en lui-même. Autrement dit, il explique comment utiliser les artefacts et pas comment utiliser le programme logiciel.

Voici les artefacts de documentation que les plus courants dans le domaine du développement logiciel.

  • Diagrammes : ces artefacts servent à visualiser le processus interne du logiciel et illustrer les connexions entre le programme et les développeurs. Habituellement, ils sont créés pendant ou au début de la phase de codage.
  • Accords de l’utilisateur final : comme leur nom l’indique, ces artefacts aident l’utilisateur à comprendre le programme et énoncent les conditions du service.
  • Documents internes : ces artefacts comprennent tous les documents qui aident les développeurs à comprendre et améliorer le logiciel.

Les avantages des artefacts logiciels

Stocker les artefacts logiciels dans un emplacement accessible apporte beaucoup d’avantages aux équipes de développement et à d’autres équipes. Ils servent, entre autres choses, à articuler les objectifs du programme, les attentes en matière de performance et les caractéristiques du produit. L’équipe et le client peuvent les réviser afin d’adopter une vision partagée et unifiée.

Voici les avantages les plus importants.

Feuille de route complète

Les artefacts logiciels sont à la base du développement logiciel, car ils fournissent aux développeurs une feuille de route couvrant tous les aspects du programme. Sans les artefacts, il serait difficile de savoir quels sont les outils nécessaires pour construire un programme totalement fonctionnel. Cette feuille de route ou ce modèle permet aussi aux équipes de suivre le processus de développement et de déterminer s’il est nécessaire de modifier les flux de travail en fonction des besoins, des objectifs et des délais.

Gestion efficace du temps

Les artefacts logiciels font gagner du temps, et donc, de l’argent. Après tout, personne ne veut développer un programme qui est déjà obsolète au moment de sa sortie. C’est pourquoi les artefacts logiciels doivent être au centre du processus de développement, ils fixent le cap à suivre, déterminent une structure et allègent la charge de travail des développeurs qui peuvent accélérer certaines étapes et procédures. Les développement peuvent également contourner les écueils connus et évider les erreurs fréquentes.

Améliorations simples et réutilisabilité

Une fois qu’un programme est prêt à être lancé, il n’est pas encore entièrement « terminé » puisque tout logiciel nécessite des mises à jour pour garantir sa continuité. En moyenne, un programme durera entre 3 et 5 ans avant qu’une mise à jour soit nécessaire pour en maintenir son bon fonctionnement. Les artefacts logiciels facilitent ce processus. En outre, les développeurs peuvent aussi examiner les artefacts des produits précédents, notamment de documentation et de code, afin de recueillir des idées et de déterminer l’approche à adopter pour les problèmes techniques rencontrés dans de nouveaux projets.

Maintenabilité

L’entretien d’un programme peut demander beaucoup de temps et d’efforts. Les tâches comprennent la réparation des erreurs ou bogues occasionnels qui peuvent survenir avec le temps, ou la résolution des problèmes qui surviennent lorsque le programme est doté de nouvelles fonctionnalités, ou entièrement remplacé. Lorsque les artefacts logiciels sont créés, tous ces problèmes potentiels sont traités, ce qui prolonge la durée d’utilisation et aide à maintenir le logiciel sous contrôle.

Développement de prototypes

Avant la fin du développement et le lancement d’un programme, les clients souhaitent généralement obtenir un prototype permettant de se faire une idée du produit final et de l’expérience utilisateur. Ce prototype constitue en substance un véritable artefact qui aidera les développeurs à convertir une simple idée de produit en programme fonctionnel. Par ailleurs, il est plus facile d’apporter des corrections au prototype qu’au logiciel fini.

Favoriser la responsabilisation

Dans un monde de microservices, de solutions basées sur le cloud et d’architecture plutôt décentralisée, le service ownership a gagné en importance. Les artefacts logiciels permettent aux développeurs de laisser leur « signature » sur leurs produits uniques, ce qui non seulement est important aux yeux des créateurs, mais permet aussi aux futurs développeurs d’avoir une meilleure maîtrise des versions et de contacter la bonne personne en cas de questions ou de problèmes avec le programme.

Transmission de connaissances

Avec l’intelligence artificielle qui change le monde informatique, les artefacts logiciels sont devenus importants puisqu’ils fournissent des connaissances approfondies que l’intelligence artificielle peut utiliser pour améliorer encore davantage le logiciel. Ces connaissances accessibles sont également importantes pour les nouveaux développeurs qui ne maîtrisent pas les précédents processus de développement. À plusieurs égards, on peut comparer les référentiels d’artefacts à des bibliothèques ou des banques d’informations qui peuvent répondre aux questions qu’un nouveau membre de l’équipe pourrait se poser à propos d’un programme existant.

 

Conclusion

Les artefacts sont à la base du développement de tout logiciel. Dans leur ensemble, ils servent de guide pour les développeurs et améliorent le flux de travail, la maintenance et le dépannage.

Grâce aux artefacts, les itérations de produits peuvent être tracées jusqu’aux attributs et versions d’un produit spécifique. C’est pourquoi un bon référentiel d’artefact permet aux équipes de gagner du temps et de poursuivre un objectif commun. Il est essentiel pour un développeur de savoir comment créer et gérer les artefacts logiciels.

Ainsi, les outils modernes tels jouent désormais un rôle central dans le développement d’un logiciel, notamment en aidant votre équipe à découvrir les artefacts logiciels, à confier des responsabilités aux bonnes personnes, à analyser les indicateurs de type DORA et Flow, et à définir leur cycle de vie et leur statut de disponibilité.

Les questions les plus posées sur les Software Artifacts (artefacts logiciels)

Qu’est-ce qu’un artefact dans un logiciel ?

Un artefact logiciel est un élément produit lors du processus de développement. Il peut s’agit d’un modèle de données, d’un prototype, d’un diagramme de flux de travail, d’un document de conception ou d’un script de configuration.

En fait, certains artefacts spécifiques sont nécessaires lors du cycle de développement et doivent être stockés dans un emplacement accessible.

Avez-vous des exemples d’artefacts logiciels ?

Il existe trois types distincts d’artefacts logiciels : les artefacts de gestion de projet, comme les diagrammes de classe ou les démos, les artefacts de code comme les microservices, et les suites de tests, et les artefacts de documentation comme les diagrammes ou les documents internes.

Qu’est-ce qu’un référentiel d’artefact ?

Un dépôt d’artefact désigne un emplacement où les artefacts logiciels sont stockés au cours du processus de développement du logiciel. Il existe trois différents types de dépôts : à distance, local ou virtuel.

Qu’est-ce qu’un artefact en DevOps ?

Un artefact DevOps est un élément produit durant le processus de développement. Il peut s’agir d’un modèle de données, d’un prototype, d’un diagramme de flux de travail, d’un document de conception ou d’un script de configuration.