mardi 9 décembre 2008

Méthodes et Outils pour industrialiser la production de logiciel

Industrialiser, c'est notamment
  • assurer qualité, fiabilité et maintenabilité
  • minimiser l'effort
  • mettre en œuvre méthodes, outils et bonnes pratiques

Concevoir

Concevoir le logiciel (utiliser Uml et les outils existants maintenant dans Eclipse : Topcased, Papyrus, eclipse-uml2. Utiliser netbeans et son outil Uml intégré)

Connaître et utiliser les motifs de conception (design-patterns): Composite, Stratégie, Visiteur, DAO, MVC, Observateur, Façade etc...

Concevoir des classes maigres (une seule responsabilité par classe), composées de méthodes courtes (limiter, en général, la taille d'une méthode à ce qui peut être contenu dans une fenêtre de l'outil de développement).

Utiliser massivement (mais à bon escient) la délégation . Vérifier la pertinence du nommage des classes et des méthodes. Refactorer le code en permanence.

Connaître

Les outils, méthodes, et cadres applicatifs standard ou émergents:
  • struts, spring, seam, velocity ou jet (templating), outillage xml
  • programmation générative, approches dirigées par les modèles

Construire

Structurer et découpler: une application doit être structurée en couches, chacune des couches est, si nécessaire, divisée en modules.

Les sous-ensembles du logiciel sont vus comme des boites noires, c'est à dire qu'ils déclarent une API sous la forme d'un jeu d'interfaces. Si le couplage entre les classes d'un module est fort, le couplage entre les modules et les couches doit être faible.

Lorsqu'une classe implémente une interface, la règle est de déclarer l'objet d'interface et d'instancier la classe. De plus, depuis jdk1.5, utiliser les génériques pour paramétrer classes et méthodes, ainsi que les annotations.


Outiller

Adopter les outils adaptés, facteurs de qualité:

Trace configurable
  • log4j
  • Implémenter des méthodes toString pour les classes
Test unitaire et d'intégration
  • JUnit
  • TestNG
  • Cactus
  • Cargo + Selenium
Dépot de code et gestion de version
  • Subversion
  • Cvs
Livraison
  • Utiliser l'outil ant pour compiler et déployer l'application

Analyser

Lire beaucoup de code.

Lire (et comprendre) le code des bibliothèques tierces.

Faire des revues de code en ayant une vision conceptuelle du logiciel.

Se représenter, mentalement, l'application en termes de diagramme de classes (à minima).

Faire de la rétro conception avec l'outil intégré dans netbeans.

Mettre au point


Savoir utiliser les outils de débogage, en comprendre les mécanismes (protocole de débogage distant, compilation dynamique et rechargement à chaud du bytecode).

Configurer l'outil de débogage pour tracer l'exécution des bibliothèques tierces.

Savoir diagnostiquer les erreurs en analysant les traces des piles d'exception.


Aucun commentaire: