Outil de programmation
Un outil de programmation, ou outil de développement logiciel, est un programme informatique conçu pour faciliter le développement d'un autre programme informatique. Il aide généralement le développeur à organiser, modifier et gérer les fichiers informatiques nécessaires au développement. Par exemple, un programmeur peut utiliser un éditeur de code source pour écrire ou modifier des fichiers de code, puis un compilateur pour convertir ce code source en code machine exécutable. Il peut également utiliser des outils de construction (en anglais : Build tools) qui regroupent automatiquement les fichiers exécutables et les fichiers de données dans des packages partageables ou des kits d'installation. Un ensemble d'outils exécutés successivement, où la sortie de chaque outil sert d'entrée au suivant est appelé une chaîne d'outils (en anglais : toolchain). Un environnement de développement intégré (IDE) regroupe plusieurs de ces outils au sein d'un seul programme, une seule application. En général, un IDE propose un éditeur de code source ainsi que d'autres outils intégrés (built-in tools) ou modules complémentaires (plug-in tools) qui facilitent la compilation, le débogage (debugging) et les tests . Qualifier un programme comme outil de développement peut être fait de manière subjective. Certains programmes, comme la collection de compilateurs GNU, sont utilisés exclusivement pour le développement logiciel, tandis que d'autres, comme le Bloc-notes (Notepad de Windows), ne sont pas spécifiquement conçus pour le développement mais restent quand même souvent utilisés pour la programmation.
Un outil de programmation, ou outil de développement logiciel, est un programme informatique conçu pour faciliter le développement d'un autre programme informatique. Il aide généralement le développeur à organiser, modifier et gérer les fichiers informatiques nécessaires au développement. Par exemple, un programmeur peut utiliser un éditeur de code source pour écrire ou modifier des fichiers de code, puis un compilateur pour convertir ce code source en code machine exécutable. Il peut également utiliser des outils de construction (en anglais : Build tools) qui regroupent automatiquement les fichiers exécutables et les fichiers de données dans des packages partageables ou des kits d'installation.
Un ensemble d'outils exécutés successivement, où la sortie de chaque outil sert d'entrée au suivant est appelé une chaîne d'outils (en anglais : toolchain). Un environnement de développement intégré (IDE) regroupe plusieurs de ces outils au sein d'un seul programme, une seule application. En général, un IDE propose un éditeur de code source ainsi que d'autres outils intégrés (built-in tools) ou modules complémentaires (plug-in tools) qui facilitent la compilation, le débogage (debugging) et les tests .
Qualifier un programme comme outil de développement peut être fait de manière subjective. Certains programmes, comme la collection de compilateurs GNU, sont utilisés exclusivement pour le développement logiciel, tandis que d'autres, comme le Bloc-notes (Notepad de Windows), ne sont pas spécifiquement conçus pour le développement mais restent quand même souvent utilisés pour la programmation.
Catégories
[modifier | modifier le code]Les principales catégories d'outils de développement :
- Assembleur (Assembler) – Convertit le langage d'assemblage en code machine
- Système de suivi des bugs (Bug tracking system) – Application qui enregistre les bugs logiciels
- Automatisation de construction (Build automation) – Créer des logiciels de manière automatisée
- Logiciel de revue de code (Code review software) – Outil permettant à un ou plusieurs personnes de vérifier/examiner le code d'un programme
- Compilateur (Compiler) – Logiciel qui traduit du code d'un langage de programmation vers un autre
- Générateur de compilateurs (Compiler-compiler) – Programme qui génère des analyseurs syntaxiques ou des compilateurs, aussi appelé parser generator
- Debugger – Logiciel utilisé pour analyser et corriger les erreurs d'un programme.
- Décompilateur (Decompiler) – Programme traduisant un exécutable en code source
- Désassembleur (Disassembler) – Programme qui convertit le code machine en langage d’assemblage.
- Générateur de documentation (Documentation generator) – Technologie automatisant la création de documentation logicielle
- Constructeur d'interface graphique (Graphical user interface builder) – Outil de développement logiciel permettant de réaliser des interfaces graphiques.
- Etude de liens (Linker) – Programme qui combine les fichiers intermédiaires en un fichier exécutable
- Chargeur (Loader) – Charge les fichiers exécutables en mémoire et les prépare leur exécution par le processeur CPU).
- Débugger de mémoire (Memory debugger) – Outil permettant de détecter les problèmes liés à la gestion de la mémoire.
- Minifieur (Minifier) – Suppression des caractères inutiles dans le code sans modifier le fonctionnement.
- Formateur de code (Pretty-printer) – Met en forme le code ou le balisage pour le rendre plus lisible.
- Profiler de performance (Performance profiler) – Mesure le temps ou les ressources utilisés par une partie d'un programme.
- Analyseur de code statistique (Static code analyzer) – Analyse un programme sans l'exécuter.
- Editeur de code source (Source code editor) – Éditeur de texte spécialisé dans le code logiciel (manipulation de code).
- Génération de code source (Source code generation) – Technique de programmation informatique consistant à produire automatiquement du code.
- Système de contrôle de version (Version control system) – Stocke et suit les versions des fichiers
Autres notions
[modifier | modifier le code]- Graphe d’appels (Call graph) – Structure utilisée en informatique pour représenter les relations d’appel entre fonctions.
- Comparaison des environnements de développement intégrés (Comparison of integrated development environments) – Présentation des principaux logiciels considérés comme des IDE.
- Ingénierie logicielle assistée par ordinateur (Computer aided software engineering) – Domaine regroupant les outils dédiés au développement logiciel.
- Git (Git) – Système distribué de gestion de versions.
- GitHub (GitHub) – Plateforme collaborative de développement logiciel.
- Analyseur de code Lint (Lint) – Outil signalant les mauvaises pratiques ou erreurs potentielles dans le code.
- Liste des sujets en génie logiciel (List of software engineering topics) – Vue d’ensemble et guide thématique du génie logiciel.
- Liste des frameworks de tests unitaires (List of unit testing frameworks) – Inventaire des outils dédiés aux tests unitaires.
- Gestion manuelle de la mémoire (Manual memory management) – Méthode de gestion de la mémoire effectuée explicitement par le programmeur.
- Fuite de mémoire (Memory leak) – Situation où un programme ne libère pas la mémoire devenue inutile.
- Rétro‑ingénierie (Reverse-engineering) – Processus consistant à extraire des informations de conception à partir d’un artefact existant.
- Revision Control System (Revision Control System) – Système de gestion de versions.
- Kit de développement logiciel (Software development kit) – Ensemble d’outils destinés au développement logiciel.
- Génie logiciel (Software engineering) – Approche d’ingénierie appliquée au développement de logiciels.
- SourceForge (SourceForge) – Plateforme de découverte et d’hébergement de logiciels open source et B2B.
- SWIG (SWIG) – Outil open source facilitant l’interfaçage entre langages de programmation.
- Boîtes à outils pour l’innovation utilisateur (Toolkits for User Innovation) – Méthode de conception centrée sur l’utilisateur innovateur.
- Valgrind (Valgrind) – Outil de programmation pour le profilage, le débogage mémoire et la détection de fuites de mémoire.
Références
[modifier | modifier le code]