Software build


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

Page «Linker (computing)» non trouvée

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.

Exemple de commandes Cmake et Make exécutées sur un émulateur de terminal avec un chemin d'accès à un répertoire source

Références

  1. a b c d et e (en) « What is Build? », Techopedia, (consulté le )
  2. (en-US) « Software Build Process (Complete Guide) », devopsbuzz.com, (consulté le )
  3. (en-US) « What is Software Building Process? A Complete Guide in 2024 - Hapy Co », (consulté le )

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.