Description structurée, sous forme de texte, de données et de procédures, par exemple d'un programme informatique
Utilisation des outils de suivi de problèmes, d'animation de commauté
Faciliter la prise en main par un autre développeur
Problématique des logiciels libres, des logiciels de recherche, mais aussi en interne d'une entreprise
Et puis aussi...
Être rigoureux est essentiel
src
: le code source de l'applicationbuild
: fichiers générés à la compilationdoc
: documentationtest
: le code source des testslib
: librairies générées à la compilation (si on les sépare du build)bin
: exécutables générés à la compilation (si on les sépare du build)include
: les entêtes du projet (si on les sépare des sources)Qu'est-ce qu'une chaîne de compilation ?
Quel est l'intérêt des outils génériques ?
Bonnes pratiques
Éditeurs en ligne spécialisés
Limitations vite atteintes
Interfaces graphiques comme kompare, kdiff3
Version Control system (VCS) en anglais
...on se débrouille comme on peut
Un système de gestion de version
Chaque modification doit être :
Configuration d'un dépôt
Développement d'une version alternative
Ajouter une nouvelle version à la branche sélectionnée
Intégration des modifications de la branche
Pour identifier une version spécifique
On peut même avoir plusieurs dépôts distants...
Gestion des dépôts distants simplifiée :
Tests unitaires, tests d'intégration, tests fonctionnels
Problématique de la couverture du code
Principe : tester une fonctionnalité élémentaire
Exemple d'outil : QtTestLib
Principe : tester l'intégration des modules dans l'ensemble
Exemple : assemblage d'une classe client et d'une classe produit pour créer un module de process commande.
Stratégie alternative : big-bang
Tester chacune des fonctionnalités indépendamment les unes des autres
Réalisation automatique et régulière
Production de rapports d'intégration
Exemple d'outil : Jenkins (exemple de status)
Objectif : impliquer les intervenants non techniques dans un projet logiciel
Exemple d'outil : cucumber (Gherkin, exemple d'utilisation en C++)
Initiation à git en TP.