Software build
processus complet de conversion d'un code source en produits logiciels
From Wikipedia, the free encyclopedia
Une compilation logicielle est le processus de conversion de fichiers de code source en un ou plusieurs artefacts logiciels autonomes pouvant être exécutés sur un ordinateur, ou le résultat de cette conversion[1].
Dans la production de logiciels, les builds optimisent les logiciels pour les performances et la distribution, en les conditionnant dans des formats tels que ' .exe'; '.deb'; '.apk'[1].
Le processus de compilation utilise souvent des outils spécialisés tels que CMake, Make ou Gradle, et s'intègre à des systèmes d'automatisation comme Jenkins ou Git Actions. Malgré les progrès réalisés, des problèmes tels que les conflits de dépendances, la compatibilité entre plateformes et les longs temps de compilation persistent[1],[2],[3].
Fonctions
En développement logiciel, la création de logiciels est un processus de bout en bout qui comprend de nombreuses fonctions distinctes. Certaines de ces fonctions sont décrites ci-dessous.
Contrôle de version
La fonction de contrôle de version gère des activités telles que la création et la mise à jour des espaces de travail, l'établissement de référentiels et la génération de rapports. Elle crée un environnement d'exécution pour le processus de compilation et capture les métadonnées relatives aux entrées et sorties de ce processus afin d'en garantir la reproductibilité et la fiabilité.
Des outils tels que Git, AccuRev ou StarTeam facilitent ces tâches en offrant des fonctionnalités permettant de marquer des points spécifiques de l'historique comme étant importants, et bien plus encore.
Qualité du code
Également connue sous le nom d'analyse statique de programme/analyse statique de code, cette fonction est chargée de vérifier que les développeurs ont respecté les sept axes de qualité du code : commentaires, tests unitaires, duplication, complexité, règles de codage, bogues potentiels et architecture et conception[1].
Garantir la qualité du code d'un projet permet de réduire le nombre de bogues et influence les exigences non fonctionnelles telles que la maintenabilité, l'extensibilité et la lisibilité, qui ont un impact direct sur le retour sur investissement d'une entreprise[1].
Compilation
Il ne s'agit là que d'une petite fonctionnalité de la gestion du processus de compilation. La fonction de compilation transforme les fichiers sources en objets exécutables ou intermédiaires. Tous les projets n'auront pas besoin de cette fonction.
Alors que pour les programmes simples, le processus consiste en la compilation d'un seul fichier, pour les logiciels complexes, le code source peut être constitué de nombreux fichiers et peut être combiné de différentes manières pour produire de nombreuses versions différentes.
Enchaînement
Le processus de compilation d'un programme informatique est généralement géré par un outil de compilation, un programme qui coordonne et contrôle d'autres programmes. Parmi ces outils, on peut citer make, Gradle, Ant, Maven, Rake, SCons et Phing. L'utilitaire de compilation doit généralement compiler les différents fichiers dans le bon ordre. Si le code source d'un fichier particulier n'a pas été modifié, il n'est pas forcément nécessaire de le recompiler (on utilise « pas forcément » plutôt que « nécessairement » car il peut lui-même dépendre d'autres fichiers modifiés). Les utilitaires de compilation et les éditeurs de liens sophistiqués s'efforcent d'éviter de recompiler le code inutilement, afin de réduire le temps de compilation. Un processus plus complexe peut impliquer d'autres programmes produisant du code ou des données dans le cadre de la compilation du logiciel.

- Automatisation de la construction
- Liste des logiciels d'automatisation de la compilation
- versionnage logiciel
