title: Critique du livre UML 2 Modéliser une application web slug: critique-du-livre-uml-2-modeliser-une-application-web date: 2007-03-05 18:23:02 type: post vignette: images/logos/uml2_modeliser_application_web.png contextual_title1: ★ Astuces et bonnes pratiques Django contextual_url1: 20080211-astuces-et-bonnes-pratiques-django contextual_title2: ★ Développer une application RESTful avec Django contextual_url2: 20070501-developper-une-application-restful-avec-django contextual_title3: ★ Bien débuter avec Django : le framework web python pour les perfectionnistes pressés contextual_url3: 20070212-bien-debuter-avec-django-le-framework-web-python-pour-les-perfectionnistes-presses
Après avoir été un peu déçu par ma précédente approche d'UML, et vu l'engouement de certains dans les commentaires je me suis dit qu'il fallait vraiment que j'en apprenne un peu plus à ce sujet. Pure coïncidence, j'ai quasi-anonymement reçu le livre UML 2 Modéliser une application web que je me suis empressé de lire, laissant un moment Javascript pour le Web 2.0 de côté.
Bonne nouvelle, ce livre correspond plus à mes attentes et en fait à la position de chef de projet que j'occupe actuellement. La méthode est adaptée au développement web et couvre l'ensemble des questions à se poser, de l'analyse des besoins utilisateurs au code. Le schéma donné à la fin du premier chapitre (en libre téléchargement sur le site d'Eyrolles) vous permettra d'avoir une vue d'ensemble des étapes. D'ailleurs lisez le chapitre complet, il est question de méthode de développement agile et... bon je le dis plus mais il faut que j'en parle donc c'est une bonne introduction en attendant :-).
En suivant un exemple concret tout au long de l'ouvrage, les différentes étapes sont décrites de façon assez détaillée. Les diagrammes associés, très clairs, permettent de comprendre le cheminement logique de modélisation de l'application web. J'ai ainsi pu apprendre l'existence d'une foule de nouveaux diagrammes qui m'étaient jusqu'alors inconnus.
Pour finir, les annexes sont intéressantes et permettent de se remémorer rapidement les différentes étapes dans le cas où on réouvre le livre quelques semaines plus tard, toujours pratique.
Le livre parfait donc ? Non, et ce pour deux raisons (oui je sais je commence à être pénible mais bon...) :
Je suis peut-être passé totalement à côté du livre mais c'est le sentiment que j'ai pour avoir essayé de suivre le schéma donné pour une application de taille moyenne en utilisant Django. En fait je me suis dit qu'il pouvait être intéressant d'utiliser cette méthode pour la refonte de ce blog mais j'ai le modèle de données en tête depuis trop longtemps pour que ce soit pertinent. J'ai donc choisi une application que je devais réaliser professionnellement en partant de l'analyse des besoins. C'est parti pour une rédaction du cahier des charges technique à partir des cas d'utilisation. Jusqu'ici tout va bien. On passe maintenant aux interfaces et on associe les URL (hop on peut d'ores et déjà générer le urls.py si c'est un projet Django).
C'est à cet instant qu'il commence à y avoir une divergence entre la méthode et la réalité. Les diagrammes proposés sont intéressants mais si les cas d'utilisation sont suffisamment clairs, le modèle de données doit commencer à apparaitre et les autres diagrammes deviennent assez inutiles du coup. Le diagramme de navigation est le seul qui m'a été utile pour passer de la maquette au modèle de données. Pourquoi ? Tout simplement car le modèle adopté par les frameworks récent ne demande pas forcément de connaitre les fonctions permettant d'accéder aux différents objets. Et au pire, celles-ci peuvent être ajoutées facilement à la volée.
Peut-être que l'application réalisée était trop simple mais j'en viens à me demander s'il ne faudrait pas écrire UML 2 pour les frameworks web... à moins qu'UML ne soit pas vraiment adapté à la simplicité des frameworks web ?
PS : attention, le livre a été publié il y a plus d'un an et si je prend en compte le temps de relecture et de publication, j'imagine bien qu'il était difficile de prévoir le succès actuel des frameworks web.
Vous pouvez consulter l'ensemble de mes critiques de livres.