Tag Archives: outil

UML n’est pas une méthodologie

Je profite de ce billet de Bruce Eckel: UML vs OO design pour rappeler qu’UML n’est pas une méthodologie. Ce n’est sans doute pas inutile de le rappeler car énormément de cv associe Uml et méthodologie. Uml est tout juste un outil, un simple language, une collection de diagrammes qui facilitent la communication entre les différents acteurs d’un projet informatique. Bref UML est un outil très utile mais loin d’être suffisant pour garantir de bien modéliser un problème donné.

La preuve qu’Uml n’est pas une méthodologie on peut l’utiliser de différentes manières comme l’indique Martin Fowler:
Uml en tant que croquis:
On modélise rapidement une partie d’un problème pour en discuter avec d’autres personnes et avancer dans la compréhension du système. Dans ce mode l’outil essentiel reste la feuille de papier et le crayon de papier avec une bonne gomme. Si vous été fortuné un paperBoard et un marqueur seront les bienvenus 😉
Uml en tant que plan:
Le concepteur va modéliser le système à l’aide de diagrammes uml (principalement des diagrammes de classe et de séquence). Le développeur s’appuie sur ces diagrammes (des plans) pour implémenter le système. Dans ce mode un bon logiciel de modélisation est indispensable.
Uml en tan que plan peut aussi servir à faire du reverse engineering (omondo est particulièrement fort à ce petit jeu).
Uml en tant que language:
MDD.. Model driven développement. L’ensemble du système est décrit en uml. On appuie sur un bouton et l’implémentation qui va bien est généré automatiquement (c’est un peu plus compliqué que ça mais c’est l’idée). L’un des buts d’UML 2.0 est de mieux supporter MDD et MDA (model driven architecture)

On peut aussi se servir d’Uml pour la capture des besoins (c’est proche d’uml en tan que croquis): les diagrammes de cas utilisation. Mais attention l’important dans un cas d’utilisation ce n’est pas le dessin avec les petits bonhommes mais la description qui va avec. Les diagrammes de classes et/ou d’objets sont aussi de bons supports si les fonctionnels ne les rejettent pas. Modéliser un problème avec un diagramme de classe Uml force à la rigueur en laissant peu de place pour les incertitudes (à moins de tracer des relation n,n dans tous les sens).

Et vous, vous en servez comment d’uml?

Multi écrans

Un collègue est absent cette semaine et j’en profite pour utiliser son poste de travail comme un deuxième écran… Je n’ai pas de deuxième sortie vidéo mais c’est possible grâce à synergie. Ce petit programme est un bijou. Avec un seul couple clavier/souris on peut contrôler par le réseau n ordinateurs. Mais au lieu d’amener l’image des ordinateurs distants sur votre écran (comme vnc), il transfère la souris et le clavier vers l’autre écran. Ca fonctionne comme du multi-screen mais lorsque je change d’écran je change aussi d’ordi. Magique! Et le copier/coller d’un poste à l’autre fonctionne. C’est un produit open source compatible Unix/Mac/Windows.

Dans le même genre mais légèrement différent on trouve aussi MaxVista qui est un shareware Windows. Il ne permet pas de prendre le contrôle d’une autre machine mais permet de rajouter une sortie vidéo virtuelle à votre pc. Cette sortie vidéo ira s’afficher sur l’écran d’un autre ordinateur par le réseau.
Une fois qu’on a goûté au développement avec deux écrans c’est un peu dur de s’en passer. Un écran pour les logs ou le débuggage un autre ou on fait tourner l’appli… Ca change tout. C’est très dur à faire comprendre aux directions mais c’est une erreur de faire des économies sur le matos des développeurs. Le bon matos peut tout changer question productivité.

XML <=> javabean = Xstream

Voici le plus court chemin pour aller d’une structure XML à des javabeans et vice-versa: Xstream.

L’outil est impressionnant  de facilité et d’efficacité. Attention il s’agit d’un sérialisateur/désérialisateur => les structures objet et xml  doivent se correspondre. Il sait traiter les types simples tout comme les collections ou les maps. Une limite, il ne reconnait pas les attributs d’un élément mais seulement les sous éléments.

Dans le même genre il y a aussi jox

Si vous voulez faire du “mapping” xml < => objet, du xml databindings, il va falloir se tourner vers des solutions plus lourdes se basant sur un XML schema comme:
– Castor XML
– XMLBeans
– ou Jaxb

Ce ne sont pas les seules solutions, en voici une liste assez complète, selon un sondage sur manageability castor XML serait la solution la plus utilisée.

Code Search tools

Google is not the only search tool, if you’re a java developper you can use many specialyzed search engines:
jdocs to search the javadoc of  many open source project
jarhoo to search the jars and package names of  many open source project
and here is a new one:
Koders let you search the code of  many open source project (not only in java but in a wide range of language)

If you’re are looking for code sample this might be the place to go.