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

<p>Après avoir été un peu déçu par ma <a href="https://larlet.fr/david/biologeek/archives/20070218-critique-du-livre-uml-2-pour-les-developpeurs/">précédente approche</a> d'<abbr title="Unified Modeling Language">UML</abbr>, et vu l'engouement de certains <a href="https://larlet.fr/david/biologeek/archives/20070218-critique-du-livre-uml-2-pour-les-developpeurs/#co">dans les commentaires</a> je me suis dit qu'il fallait vraiment que j'en apprenne un peu plus à ce sujet. Pure coïncidence, j'ai <a href="http://blog.muriel-shanseifan.org/" hreflang="fr" title="Merci :-)">quasi</a>-anonymement reçu le livre <a href="http://www.editions-eyrolles.com/Livre/9782212117707/uml-2">UML 2 Modéliser une application web</a> que je me suis empressé de lire, laissant un moment Javascript pour le Web 2.0 de côté.</p>

<p><strong>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.</strong> 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 :-).</p>


<p>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.</p>


<p>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.</p>


<p><strong>Le livre parfait donc&nbsp;? Non, et ce pour deux raisons</strong> (oui je sais je commence à être pénible mais bon...)&nbsp;:</p>

<ul>
<li>Je trouve inadmissible, en 2006, de publier encore du code <abbr title="HyperText Markup Language">HTML</abbr> non valide. Je suis un peu tatillon là-dessus mais j'y peux rien, j'ai les poils qui se hérissent lorsque je vois des balises en majuscules. Ok ce n'est pas l'objet du livre mais quand même...</li>
<li>Seconde remarque que je trouve plus importante car elle touche le fond. <strong>J'ai l'impression que la méthode proposée ne convient pas au développement web à l'aide de frameworks</strong> et là dans mon cas c'est problématique. Les exemples donnés en C# ou en <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> en fin d'ouvrage sont intéressants si l'on code son application from scratch mais c'est de plus en plus rare et inutile.</li>
</ul>

<p>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 <a href="https://larlet.fr/david/biologeek/archives/20070212-bien-debuter-avec-django-le-framework-web-python-pour-les-perfectionnistes-presses/">en utilisant Django</a>. En fait je me suis dit qu'il pouvait être intéressant d'utiliser cette méthode pour <a href="https://larlet.fr/david/biologeek/archives/20070224-objectifs-et-motivations-de-la-refonte-de-ce-blog/">la refonte de ce blog</a> 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).</p>


<p>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&nbsp;? 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.</p>


<p>Peut-être que l'application réalisée était trop simple mais j'en viens à me demander s'il ne faudrait pas écrire <strong>UML 2 pour les frameworks web</strong>... à moins qu'UML ne soit pas vraiment adapté à la simplicité des frameworks web&nbsp;?</p>


<p><em>PS&nbsp;: 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.</em></p>


<p>Vous pouvez <a href="https://larlet.fr/david/biologeek/archives/20060219-critiques-de-livres-aux-editions-eyrolles/">consulter l'ensemble de mes critiques de livres</a>.</p>
