vendredi 15 janvier 2010

Industrialisation de développement de logiciel (.NET)

Dans cet article je voudrais présenter mon expérience dans l’industrialisation de développement de logiciel. Je vais me concentrer sur les aspects purement techniques.

Je pense que l’automatisation est l’une des caractéristiques principales de l’industrialisation. La première chose à automatiser est un processus de build de votre logiciel. Le strict minimum d’un build automatique :

  1. Compilation des sources
  2. Packaging (création des *.dll, *.exe ou archive Web, par exemple)

Aujourd’hui, les bons projets rajoutent encore quelques étapes supplémentaires pour assurer la qualité :

  1. Tout d’abord, la récupération de la version du système de gestion de version (CVS, SVN, Git, etc).
  2. 2 étapes décrit précédemment
  3. Lancement des tests automatisés (NUnit+DbUnit.NET)
  4. Génération de la documentation (Doxygen - générateur avancé de la documentation technique à partir du code source, les langages supportés - C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C# )
  5. Génération des métriques sur le code (FxCop - signale des problèmes (règle de nommage, performance, architecture(design), sécurité, etc) dans le code, NCover - détermine la couverture du code par les tests, NDepend - analyse les dépendances).
  6. Déploiement pour l’équipe de QA si nécessaires.
  7. Envoie des notifications à l’équipe de développement sur les résultats des builds (mail, SMS, feed RSS, etc).

Dans le monde .NET, nous avons outil MSBuild (équivalent de Ant en Java) qui permet de faire ces builds. L’exemple du script MsBuild pour compiler une classe C#:



MsBuild contient un certain nombre de tâches (target) prédéfinis. Toutes les 7 étapes que j’ai listé peuvent être réalisées facilement avec les targets standards de MsBuild.

Dans le prochain article je décrirai le serveur d’intégration continue TeamCity qui s’intègre dans la politique d’industrialisation des grands projets.

Aucun commentaire: