Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

index.html 38KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. <!doctype html>
  2. <html lang=fr>
  3. <head>
  4. <!-- Always define the charset before the title -->
  5. <meta charset=utf-8>
  6. <title>Critique du livre UML 2 pour les développeurs — Biologeek — David Larlet</title>
  7. <!-- Define a viewport to mobile devices to use - telling the browser to assume that the page is as wide as the device (width=device-width) and setting the initial page zoom level to be 1 (initial-scale=1.0) -->
  8. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  9. <!-- Fake favicon, to avoid extra request to the server -->
  10. <link rel="icon" href="data:;base64,iVBORw0KGgo=">
  11. <link type="application/atom+xml" rel="alternate" title="Feed" href="/david/log/" />
  12. <link rel="manifest" href="/manifest.json">
  13. <link rel="stylesheet" href="/static/david/css/larlet-david-_J6Rv.css" data-instant-track />
  14. <noscript>
  15. <style type="text/css">
  16. /* Otherwise fonts are loaded by JS for faster initial rendering. See scripts at the bottom. */
  17. body {
  18. font-family: 'EquityTextB', serif;
  19. }
  20. h1, h2, h3, h4, h5, h6, time, nav a, nav a:link, nav a:visited {
  21. font-family: 'EquityCapsB', sans-serif;
  22. font-variant: normal;
  23. }
  24. </style>
  25. </noscript>
  26. <!-- Canonical URL for SEO purposes -->
  27. <link rel="canonical" href="https://larlet.fr/david/biologeek/archives/20070218-critique-du-livre-uml-2-pour-les-developpeurs">
  28. </head>
  29. <body>
  30. <div>
  31. <header>
  32. <nav>
  33. <p>
  34. <small>
  35. Je suis <a href="/david/" title="Profil public">David Larlet</a>, <a href="/david/pro/" title="Activité professionnelle">artisan</a> du web qui vous <a href="/david/pro/accompagnement/" title="Activité d’accompagnement">accompagne</a><span class="more-infos"> dans l’acquisition de savoirs pour concevoir des <a href="/david/pro/produits-essentiels/" title="Qu’est-ce qu’un produit essentiel ?">produits essentiels</a></span>. <span class="more-more-infos">Discutons ensemble d’une <a href="/david/pro/devis/" title="En savoir plus">non-demande de devis</a>.</span> Je partage ici mes <a href="/david/blog/" title="Expériences bienveillantes">réflexions</a> et <a href="/david/correspondances/2017/" title="Lettres hebdomadaires">correspondances</a>.
  36. </small>
  37. </p>
  38. </nav>
  39. </header>
  40. <section>
  41. <h1 property="schema:name">Critique du livre UML 2 pour les développeurs</h1>
  42. <article typeof="schema:BlogPosting">
  43. <div property="schema:articleBody">
  44. <img src="/static/david/biologeek/images/logos/uml2_developpeurs.png" alt="vignette" style="float:left; margin: 0.5em 1em;" property="schema:thumbnailUrl" />
  45. <p>Avis plutôt mitigé sur <a href="http://www.editions-eyrolles.com/Livre/9782212120295/">ce livre</a>. J'ai pas mal hésité avant d'en faire une critique car je sais le travail que ça représente de publier un livre et je serais assez déçu si j'étais à mon tour face à une critique peu élogieuse mais bon, mieux vaut être honnête vis-à-vis de vous, sinon ce ne sont plus des <a href="https://larlet.fr/david/biologeek/archives/20060219-critiques-de-livres-aux-editions-eyrolles/">critiques de livres</a> mais des billets commerciaux ;-).</p>
  46. <p>En fait, <strong>c'est plutôt <abbr title="Unified Modeling Language">UML</abbr> qui m'a déçu</strong>. J'en entendais parler depuis tellement longtemps que je m'attendais à quelque chose d'assez révolutionnaire qui permet d'être plus efficace dans ses développements et je me retrouve au final avec des petits diagrammes qui ressemblent vraiment à ceux que je faisais déjà dans mon agenda. Alors bien sûr le formalisme de la syntaxe permet de gagner en interopérabilité et je comprends que ce soit capital dans une équipe de plusieurs personnes qui ont besoin de parler le même langage. Mais dans l'état actuel ça ne m'a pas apporté grand chose. Peut-être que j'aurais dû me tourner vers <a href="http://www.editions-eyrolles.com/Livre/9782212117707/uml-2">UML 2 Modéliser une application web</a> qui correspondait surement plus à mes attentes...</p>
  47. <p>Par ailleurs, <strong>tous les exemples et les exercices se basent sur Java</strong>. C'est un choix et je comprends que ce soit plus vendeur que Python (jusqu'à quand&nbsp;? :-)) mais peut-être qu'un pseudo-code eut été plus générique&nbsp;? Enfin maintenant je sais au moins que l'héritage multiple n'est pas permis en Java.</p>
  48. <p><strong>Fort heureusement, il y a aussi des choses intéressantes dans ce livre.</strong> Tout d'abord l'approche «&nbsp;pour les développeurs » est très bonne et surtout adaptée à mon cas car je devais justement faire à titre professionnel un peu de Reverse Engineering. J'ai aussi appris les bases de la syntaxe, ce qui est toujours bon à savoir pour la suite.</p>
  49. <p>Mais enfin et surtout, c'est le <strong>cycle de développement avec UML</strong> et la méthode de développement associée qui sont vraiment intéressants. Je ne pense pas être autorisé à reproduire la figure ici (qui de toute façon sert de trame au livre donc sans les explications ça ne servirait pas à grand chose) mais je peux au moins vous décrire la méthode dans les grandes lignes&nbsp;: il s'agit d'aller de l'analyse à la conception en passant par différentes étapes (au total 9). Ces étapes permettent d'<strong>analyser le besoin</strong> à différents niveaux puis de passer à la <strong>conception</strong> pour finir par la <strong>réalisation</strong>. Alors c'est sûr, décrit ainsi ça relève du bon sens mais la description détaillée donnée dans le livre est pertinente... pour les gros projets.</p>
  50. <p>Néanmoins, on s'éloigne pas mal des méthodes de développement agiles (décidément il va falloir que je fasse un billet là-dessus !) que je trouve plus adaptées au développement par petites équipes et qui permettent de vérifier à plusieurs étapes du projet de la validité de ce que l'on est en train de réaliser avec le client et/ou les utilisateurs finaux.</p>
  51. <p>Au final, <strong>un bon livre si vous développez une application en Java relativement importante au sein d'une équipe composée de plusieurs personnes</strong>. Dans le cas contraire, je pense qu'il y a des ouvrages plus adaptés.</p>
  52. <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>
  53. </div>
  54. </article>
  55. <footer>
  56. <h6 property="schema:datePublished">— 18/02/2007</h6>
  57. </footer>
  58. </section>
  59. <section>
  60. <div>
  61. <h3>Articles peut-être en rapport</h3>
  62. <ul>
  63. <li><a href="/david/biologeek/archives/20070321-critique-du-livre-javascript-pour-le-web-20/" title="Accès à Critique du livre Javascript pour le web 2.0">Critique du livre Javascript pour le web 2.0</a></li>
  64. <li><a href="/david/biologeek/archives/20060615-critique-du-livre-redesign-web-20/" title="Accès à Critique du livre Redesign Web 2.0">Critique du livre Redesign Web 2.0</a></li>
  65. <li><a href="/david/biologeek/archives/20060219-critique-du-livre-le-zen-des-css/" title="Accès à Critique du livre le Zen des CSS">Critique du livre le Zen des CSS</a></li>
  66. </ul>
  67. </div>
  68. </section>
  69. <section>
  70. <div id="comments">
  71. <h3>Commentaires</h3>
  72. <div class="comment" typeof="schema:UserComments">
  73. <p class="comment-meta">
  74. <span class="comment-author" property="schema:creator">zyegfryed</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  75. </p>
  76. <div class="comment-content" property="schema:commentText">
  77. <p>Salut,<br />
  78. J'ai eu hésité entre ces deux livres, et j'ai finalement opté pour UML2:Modéliser une application Web. Si le titre a fait sourire certains de mes collègues (depuis quand modélise t'on une webapp ? *soupir*), j'ai bien aimé ce livre et le trouve utile. Il décrit étape par étapes comment si prendre pour une application en prenant un exemple courant en trame.<br />
  79. Par contre, idem que pour le livre que tu cites, les exemples sont donnés en Java, C# et PHP...mais pas de Python (*petite déception*)! <br />
  80. Je ne regrette cependant pas de l'avoir acheté.<br />
  81. Bye :)<br />
  82. Seb</p>
  83. </div>
  84. </div>
  85. <div class="comment" typeof="schema:UserComments">
  86. <p class="comment-meta">
  87. <span class="comment-author" property="schema:creator">Damien B</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  88. </p>
  89. <div class="comment-content" property="schema:commentText">
  90. <p>Hmmm, si UML est uniquement présenté comme un ensemble de petits schémas (ou si c'est tout ce qu'on en retient), le livre aurait probablement dû s'appeler &quot;UML pour les Mickeys&quot;, ou &quot;UML pour les manadjeurs&quot;, ce qui revient à peu près au même. Ils ne précisent pas sur la page d'Eyrolles si la méthodologie de développement présentée est RUP. Si oui, cherche dans Google les mots-clef RUP dX et XP, tu auras un point de vue de la relation entre RUP et les méthodes tarzanesques.</p>
  91. </div>
  92. </div>
  93. <div class="comment" typeof="schema:UserComments">
  94. <p class="comment-meta">
  95. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  96. </p>
  97. <div class="comment-content" property="schema:commentText">
  98. <p>@zyegfryed : ok merci pour ta remarque, à l'occasion j'essayerais de me le procurer, enfin j'aimerais bien décrire ma refonte avant pour pouvoir comparer ensuite ;-).<br />
  99. <br />
  100. ps : avec un pseudo comme ça j'espère que tu n'es jamais passé dans mon filtre à spam qui se base pas mal sur le pseudo vu que je le fais à la main...</p>
  101. </div>
  102. </div>
  103. <div class="comment" typeof="schema:UserComments">
  104. <p class="comment-meta">
  105. <span class="comment-author" property="schema:creator">Rémi</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  106. </p>
  107. <div class="comment-content" property="schema:commentText">
  108. <p>UML n'a souvent qu'un but : vendre des livres et des formations. A mon avis le plus important n'est pas de maîtriser UML, mais plutôt de maîtriser les concepts : la technologie objet, les designs patterns. UML te permet simplement de décrire et de faire partager tes conceptions. Moi le meilleur livre que j'ai lu en technologie objet est celui qu'a écrit Grady Booch (ISBN 2879080045) ce livre n'est plus commercialisé malheureusement. Autre livre très intéressant est celui Design Patterns par la pratique (ISBN 2212111398). Et un dernier excellent qui m'a fait changer mon regard sur la réalisation logicielle est celui sur L'extrème programming (ISBN 2212110510), là comme tu le dis un papier serai le bien venu, car beaucoup de monde connais UML mais très peu de monde connais les méthodes XP... ;-)<br />
  109. </p>
  110. </div>
  111. </div>
  112. <div class="comment" typeof="schema:UserComments">
  113. <p class="comment-meta">
  114. <span class="comment-author" property="schema:creator">neolao</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  115. </p>
  116. <div class="comment-content" property="schema:commentText">
  117. <p>en gros, j'ai le même commentaire que Rémi<br />
  118. <br />
  119. Sinon, tu as souligné un point important: les petites équipes.<br />
  120. J'ai surtout connu ça, et quand j'ai lu le genre de livre que tu cites, j'ai la même impression ... impossible d'appliquer leurs &quot;trucs&quot; dans ma structure.<br />
  121. <br />
  122. Alors je l'adapte. Je suis curieux de voir ton billet sur le développement agile :)</p>
  123. </div>
  124. </div>
  125. <div class="comment" typeof="schema:UserComments">
  126. <p class="comment-meta">
  127. <span class="comment-author" property="schema:creator">Cédric</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  128. </p>
  129. <div class="comment-content" property="schema:commentText">
  130. <p>Je te conseilles les livres de Pascal Roques ( sans vouloir faire de la pub ) au sujet d'UML, et notamment celui-ci<br />
  131. <br />
  132. <a href="http://www.actinidia.net/2007/01/21/557-uml2-modeliser-une-application-web" title="http://www.actinidia.net/2007/01/21/557-uml2-modeliser-une-application-web" rel="nofollow">www.actinidia.net/2007/01...</a><br />
  133. <br />
  134. Dans ton cas ( python et plutôt orienté web si je ne m'abuse ;) ) je pense qu'il serait mieux.<br />
  135. <br />
  136. </p>
  137. </div>
  138. </div>
  139. <div class="comment" typeof="schema:UserComments">
  140. <p class="comment-meta">
  141. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">18/02/2007</span> :
  142. </p>
  143. <div class="comment-content" property="schema:commentText">
  144. <p>@Damien B. : ok, je vais creuser de ce côté là.<br />
  145. <br />
  146. @Rémi et neolao : pas de pression s'il vous plaît ;-p<br />
  147. <br />
  148. @Cédric : oui j'avais d'ailleurs commenté ce même billet et c'est ce que je propose dans ma critique...</p>
  149. </div>
  150. </div>
  151. <div class="comment" typeof="schema:UserComments">
  152. <p class="comment-meta">
  153. <span class="comment-author" property="schema:creator">Damien B</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  154. </p>
  155. <div class="comment-content" property="schema:commentText">
  156. <p>@Rémi : beaucoup de monde connaît très mal UML, il faut dire que la présentation des 9 types de schéma, qui sont la partie visible d'UMLberg, n'aide pas trop. Tu mets en avant la connaissance des patrons pour la conception, et de la &quot;technologie&quot; objet : UML te permet justement de faire le lien entre les deux. Mais attention, ça n'est pas facile, et ça n'est certainement pas avec &quot;UML en trois jours&quot; qu'on va y arriver.<br />
  157. <br />
  158. @Cédric - &quot;Diagrammes de navigation (en utilisant par exemple des diagrammes d'état UML, qu'on ne s'attendrait pas à priori à trouver ici)&quot; : je ne comprends pas, c'est un grand classique de modéliser une navigation par une MEF (on retrouve par exemple cet aspect dans Webflow de BEA, oui, c'est encore du Java :-P ). Est-ce qu'il y a quelque chose de spécial dans la présentation de cette approche ?</p>
  159. </div>
  160. </div>
  161. <div class="comment" typeof="schema:UserComments">
  162. <p class="comment-meta">
  163. <span class="comment-author" property="schema:creator">Rémi</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  164. </p>
  165. <div class="comment-content" property="schema:commentText">
  166. <p>@Damien Je n'ai rien contre UML, mais le reproche que je fais c'est qu'il occupe toujours trop de terrain dans les formations, alors qu'il n'est pas aussi essentiel pour réaliser correctement des applis. <br />
  167. Je vois ce que cela donne une formation UML chez des gens qui développe tous les jours et dont ce n'est pas leur passion, un beau document relié qui vient caler un meuble...<br />
  168. Dans une réalisation logicielle, le but c'est toujours le résultat à obtenir et pas les moyens employés pour le réaliser, UML n'est qu'un outils pour se comprendre entre développeurs. Mais faire une bonne conception objet, avoir un code propre, simple, bien documenté, sans redondance, sans faille de sécurite, mettre en oeuvre des tests automatisés (avec python un régal ;-)), faire de la relecture de code ... Bref des bonnes pratiques que l'on ne voit que rarement mise en oeuvre, mais cela personne en parle... ;-)</p>
  169. </div>
  170. </div>
  171. <div class="comment" typeof="schema:UserComments">
  172. <p class="comment-meta">
  173. <span class="comment-author" property="schema:creator">Damien B</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  174. </p>
  175. <div class="comment-content" property="schema:commentText">
  176. <p>&quot;UML n'est qu'un outil pour se comprendre entre développeurs&quot;<br />
  177. <br />
  178. Aïe. Effectivement ça part (ou ça arrive) sur un très mauvais pied.<br />
  179. <br />
  180. &quot;avoir un code propre, simple, bien documenté, sans redondance&quot;<br />
  181. <br />
  182. En lisant ça j'ai le &quot;developpers, developpers, developpers&quot; de Ballmer qui raisonne à mes oreilles. Tout ça nous ramène à Frederic Brooks il y a 30 ans, et ses réflexions sur la complexité des problèmes que l'on a à résoudre en informatique.<br />
  183. <br />
  184. &quot;le but c'est toujours le résultat à obtenir et pas les moyens employés pour le réaliser&quot;<br />
  185. <br />
  186. Et dans 98% des cas le but c'est de faire un produit qui répond à des exigences de non-informaticiens. Et toutes les bonnes pratiques que tu cites ne répondent que de manière secondaire à cette problématique.<br />
  187. <br />
  188. Evidemment, si on se place dans la communauté des développeurs qui développent pour d'autre développeurs, le raisonnement ci-dessus est partiellement invalidé, mais pour une part mineur. On peut prendre en exemple le développement des IDE / EDI (Visual Xxx, Eclipse, Netbeans, VisualAge, (insérer pour Python ici ;-) ) etc...). J'étais tenté de conclure par &quot;mais là je digresse&quot;, mais pas tant que ça en fait. UML qu'est ce que c'est ? C'est d'une part un méta-méta-modèle, un langage de contraintes (OCL), le méta-modèle que vous connaissez (Classe, Interface, etc...), et au-dessus de tout ça, une représentation graphique normalisée (les 10 schémas) : à partir de ça on construit le modèle. Pour les amateur de &quot;bonne conception objet&quot;, il est recommandé d'avoir lu au moins une fois la spécification UML 2, rien que pour la culture personnelle. Là par contre, je digresse... ah non, revenons à la base : &quot;c'est plutôt UML qui m'a déçu. [...] je me retrouve au final avec des petits diagrammes qui ressemblent vraiment à ceux que je faisais déjà&quot;. On ne va pas revenir aux débats IDEF-0 / SADT, ça serait trop long, on va être plus punchy (parallèle vaseux mais c'est fait pour choquer) : &quot;c'est plutôt Python qui m'a déçu. [...] je me retrouve au final avec une application web qui a la même interface graphique que ce que je faisais déjà&quot;.<br />
  189. <br />
  190. Pour conclure, parce que ça commence à être vraiment long, essayez de voir au-delà du côté marketing d'UML (2.0 avant l'heure pourrait-on dire). N'oubliez pas que c'est le produit d'années d'expériences en conception orientée objet, et que même si ça ne vous plait pas, il y a des choses à prendre dedans, mais attention : ça n'est pas une connaissance qui se digère en une lecture de livre. Evidemment ça n'est pas facile, surtout entouré d'une génération de développeurs lobotomisés par Struts et son interprétation frelatée de MVC (tellement passée dans le &quot;langage&quot; courant que Guido s'y est laissé prendre).</p>
  191. </div>
  192. </div>
  193. <div class="comment" typeof="schema:UserComments">
  194. <p class="comment-meta">
  195. <span class="comment-author" property="schema:creator">Huygens</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  196. </p>
  197. <div class="comment-content" property="schema:commentText">
  198. <p>Apparemment, il y a amalgame entre UML, méthode de développement et langage de programmation. Et on dirait que le livre dont tu parles a râté sa tâche...<br />
  199. UML est un langage qui permet de construire des diagrammes modélisant un concept (qui peut être un programme), et ce de manière standard.<br />
  200. Juste des schémas, c'est inutile. C'est l'emploi d'une méthode de développement (cycle en V, RUP, Extreme Programming, etc.) qui est le plus important. Si maintenant tu peux combiner UML pour t'aider à construire tes concepts et même à améliorer le passage d'une phase à l'autre du cycle de vie du logiciel, tu as gagné ! Mais c'est quelque chose de difficile encore.<br />
  201. En gros, le top c'est de commencer par faire en parallèle les cas d'utilisation que tu peux illustrer par UML (ce qui te permet de faire une première passe sur leur cohérence) et de l'autre côté tu peux commencer aussi à déterminer les principaux concepts ou objets de ton domaine que tu illustres par un diagramme de domaine (une sorte de diagramme de classe simplifié). Ensuite, la méthode CRC est très pratique pour à partir des cas d'utilisation et des objets déjà identifiés de consolider ce qui est vraiment objet de ce qu'il ne l'est pas. Tu remarqueras que là on est pas au niveau langage de programmation encore.<br />
  202. Une fois fait, un diagramme de robustesse et une analyse sémantique de tes cas d'utilisations te sera d'un grand secours pour vraiment paufiner et vérifier ton système. Tu peux alors en dériver les diagrammes d'état-transition, de séquences et d'activités.<br />
  203. Alors tu peux construire ton diagramme de classe. Et là tu es encore libre de le décrire sans te préoccuper de ton langage. Tu y indiques juste les relations entre classe, les méthodes et les attributs sans rentrer encore dans la définition des constructeurs, destructeurs, accesseurs, etc.<br />
  204. C'est là où il va falloir penser à quel langage tu veux utiliser. Car l'étape suivante est un diagramme de classe plus détaillé avec les éléments omis précédement et l'implémentation des associations sous forme d'attributs. Tu contournes là aussi les limitations du langage, par exemple tu utilises des classes abstraites pures pour implémenter tes interfaces en C++ ou inversement, tu utilises des interfaces en Java pour implémenter l'héritage multiple.<br />
  205. Tu peux ensuite passer à la génération du code.<br />
  206. <br />
  207. Voilà, c'est une description générique de comment utiliser UML dans n'importe quel cycle de développement logiciel.<br />
  208. Après, c'est à toi de voir quelle méthode de dev tu as besoin par rapport à ta structure, tes contraintes de temps/ressources, etc. Mais tu risque de passer par les même schéma UML.<br />
  209. <br />
  210. Pour répondre à Rémi, UML te permet de vérifier la cohérence de ton analyse et de ta conception, et pas seulement de communiquer entre développeur. Mais UML n'est pas le seul outil dans ce but. Une méthode de développement adaptée te permettra d'avoir un projet robuste, fiable et maintenable si tu arrives à la gérer. UML peut t'aider à mieux passer d'une phase à l'autre de ta méthode. Tout ça est lié, et quand on est simple développeur sur de petits projets, on a du mal à s'en rendre compte.</p>
  211. </div>
  212. </div>
  213. <div class="comment" typeof="schema:UserComments">
  214. <p class="comment-meta">
  215. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  216. </p>
  217. <div class="comment-content" property="schema:commentText">
  218. <p>Merci Damien et Huygens pour vos commentaires instructifs, apparemment je suis passé à côté de ce qui était intéressant dans UML et c'est bien dommage... je ne sais pas s'il faut remettre l'ouvrage en question ou mon attachement au code. Mais bon tout n'est pas perdu, je vais plonger un peu plus en avant dans ce langage.</p>
  219. </div>
  220. </div>
  221. <div class="comment" typeof="schema:UserComments">
  222. <p class="comment-meta">
  223. <span class="comment-author" property="schema:creator">neolao</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  224. </p>
  225. <div class="comment-content" property="schema:commentText">
  226. <p>Moi je n'ai jamais eu affaire à des grands projets.<br />
  227. <br />
  228. Pire, j'ai été trop souvent seul développeur.<br />
  229. <br />
  230. Concrètement, l'UML m'a permis d'avoir une vision globale des objets que je manipule. Surtout depuis que j'éclate de plus en plus mes structures.<br />
  231. <br />
  232. Quand je lis les derniers commentaires, je ne comprend même pas la moitié des acronymes cités lol<br />
  233. Alalaaa, que de choses à apprendre :)</p>
  234. </div>
  235. </div>
  236. <div class="comment" typeof="schema:UserComments">
  237. <p class="comment-meta">
  238. <span class="comment-author" property="schema:creator">Huygens</span> le <span class="comment-date" property="schema:commentTime">19/02/2007</span> :
  239. </p>
  240. <div class="comment-content" property="schema:commentText">
  241. <p>Si la mention du diagramme de robustesse t'a fait soulever un sourcil, tu peux te reporter sur cette page web (en langue anglaise) : <a href="http://iconixprocess.com/iconix-process/analysis-and-preliminary-design/robustness-analysis/" title="http://iconixprocess.com/iconix-process/analysis-and-preliminary-design/robustness-analysis/" rel="nofollow">iconixprocess.com/iconix-...</a><br />
  242. Le processus ICONIX est un processus de développement parmi d'autres (comme RUP ou XP) qui utilise beaucoup le langage UML.<br />
  243. Pour un aperçu rapide de ce process : <a href="http://iconixprocess.com/iconix-process/" title="http://iconixprocess.com/iconix-process/" rel="nofollow">iconixprocess.com/iconix-...</a></p>
  244. </div>
  245. </div>
  246. <div class="comment" typeof="schema:UserComments">
  247. <p class="comment-meta">
  248. <span class="comment-author" property="schema:creator">Huygens</span> le <span class="comment-date" property="schema:commentTime">20/02/2007</span> :
  249. </p>
  250. <div class="comment-content" property="schema:commentText">
  251. <p>Pour neolao :<br />
  252. <br />
  253. Définition des acronymes (tu peux trouver plus d'information pour chacun des acronymes sur les Wikipedia)<br />
  254. IDE : Integrated Development Environment<br />
  255. EDI : Environement de Développement Intégré<br />
  256. UML : Unified Modelling Language<br />
  257. OCL : Object Constraint Language<br />
  258. IDEF-0, SADT et MVC : il faudra demander à Damien ou Wikipedia ;-)<br />
  259. Cycle en V : c'est un processus de développement dont on schématise souvent l'approche sous la forme d'un V<br />
  260. RUP : Rational Unified Process - autre processus de développement, de type itératif et incrémental<br />
  261. CRC : Class-Responsibility-Collaborator - je te conseille les liens suivants en plus de Wikipedia : <a href="http://alistair.cockburn.us/index.php/Using_CRC_cards" title="http://alistair.cockburn.us/index.php/Using_CRC_cards" rel="nofollow">alistair.cockburn.us/inde...</a> et <a href="http://www.agilemodeling.com/artifacts/crcModel.htm" title="http://www.agilemodeling.com/artifacts/crcModel.htm" rel="nofollow">www.agilemodeling.com/art...</a><br />
  262. <br />
  263. Par Wikipedia, j'entends la version française de l'encyclopédie en ligne mais également ses variantes étrangères. Il n'y en a pas une plus complète qu'une autre. Pour les diagrammes UML, je te conseille l'Allemande, pour le CRC, RUP, etc. l'anglaise est pas mal. Pour le cycle en V, la française est bien avancée, etc.</p>
  264. </div>
  265. </div>
  266. <div class="comment" typeof="schema:UserComments">
  267. <p class="comment-meta">
  268. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">20/02/2007</span> :
  269. </p>
  270. <div class="comment-content" property="schema:commentText">
  271. <p>Sinon pour avoir juste la signification dans google : « define:MONSUPERACRONYME » mais c'est moins détaillé que wikipédia bien sûr (même si ça renvoie souvent sur wikipédia).</p>
  272. </div>
  273. </div>
  274. <div class="comment" typeof="schema:UserComments">
  275. <p class="comment-meta">
  276. <span class="comment-author" property="schema:creator">Damien B</span> le <span class="comment-date" property="schema:commentTime">20/02/2007</span> :
  277. </p>
  278. <div class="comment-content" property="schema:commentText">
  279. <p>SADT : Structured Analysis and Design Technique, méthodologie d'analyse systémique. Deux choses à retenir dans SADT : les actigrammes et les datagrammes. Les premiers permettent de représneter l'analyse fonctionnelle descendante (i.e. d'un plan large à une vue très détaillée) d'un système. Les datagrammes suivent le même principe mais pour représenter les flux de données. Wikipedia en anglais dit que SADT est une technique d'ingénierie logicielle : c'est faux, heureusement d'ailleurs qu'on a fait de l'analyse systémique avant d'avoir des ordinateurs.<br />
  280. <br />
  281. IDEF0 : partie analyse fonctionnelle de IDEF (Integrated DEFinition), basée sur la partie analyse fonctionnelle de SADT. Dire comme dans Wikipedia en français que &quot;SADT est connue sous le nom de IDEF0&quot; est donc une grosse erreur. IDEF est une initiative de l'US Air Force pour rationaliser ses processus de production (démarrage pendant les années 70). <br />
  282. <br />
  283. MVC : ensemble de design patterns qui forment le Model View Controller. C'est un principe qui date de la fin des années 70 / début des années 80, la problématique à résoudre était de faire un logiciel de suivi de production, avec mise à jour en temps réel des indicateurs aggrégés. Le principe retenu fut donc une hiérarchie de composants formant l'interface utilisateur, chaque composant ayant une vue (partie visuelle), un controlleur (interactions avec l'utilisateur, par ex notifier la vue d'afficher une liste déroulante sur clic souris) et le modèle (les données du composant). Les trois parties du composant communiquant entre elles par des événements, ainsi que les composants entre eux. L'acronyme a aujourd'hui été complètement débilisé par les zélotes du framework web Java nommé Struts (de sinistre mémoire).<br />
  284. <br />
  285. <br />
  286. Méfiance quand même sur Wikipedia pour l'informatique, souvent affecté d'un prisme jeuniste. N'oubliez pas d'aller consulter le premier Wiki, qui lui est consacré à la POO, les design patterns, etc... qui lui a l'inconvénient d'être affecté du prisme inverse : <a href="http://c2.com/cgi/wiki?WelcomeVisitors" title="http://c2.com/cgi/wiki?WelcomeVisitors" rel="nofollow">c2.com/cgi/wiki?WelcomeVi...</a> . A noter que le principe du Wiki a été conçu et implémenté par Ward Cunningham (dans c2.com), qui est à l'origine de CRC avec Kent Beck. Donc pour les CRC par exemple, c'est de la bonne vous pouvez y aller : <a href="http://c2.com/cgi/wiki?CategoryCrcCards" title="http://c2.com/cgi/wiki?CategoryCrcCards" rel="nofollow">c2.com/cgi/wiki?CategoryC...</a> .<br />
  287. <br />
  288. (Promis, j'arrête les patés)</p>
  289. </div>
  290. </div>
  291. <div class="comment" typeof="schema:UserComments">
  292. <p class="comment-meta">
  293. <span class="comment-author" property="schema:creator">X.B.</span> le <span class="comment-date" property="schema:commentTime">25/02/2007</span> :
  294. </p>
  295. <div class="comment-content" property="schema:commentText">
  296. <p>Merci,<br />
  297. <br />
  298. Je suis un des deux auteurs du livre et je ne peux que vous encourager à publier des critiques.<br />
  299. <br />
  300. Nous avons effectivement passé bcp de temps à élaborer cet ouvrage mais la critique est indispensable pour améliorer tout travail.<br />
  301. <br />
  302. En ce qui concerne ce livre, l'objectif est d'essayer de répondre à la question suivante : &quot;A quoi sert UML pour le développeur (i.e. celui qui code) ?&quot;.<br />
  303. <br />
  304. En effet, il n'existe rien aujourd'hui (ni livre, ni site web, ni formation) qui explique la relation UML et Code. Les principales ressources ciblent les aspects syntaxiques (diagrammes) ou méthodo. <br />
  305. <br />
  306. Nous avons voulu parler de génération de code et de reverse et des problèmes que cela pose.<br />
  307. <br />
  308. Puis de techniques intéressantes pour le développement (tests et pattern). <br />
  309. <br />
  310. La méthodo fournie à la fin du livre n'est là qu'à titre d'exemple de méthodo (à ne pas comparer avec RUP).<br />
  311. <br />
  312. Est-ce que quelqu'un ici utilise (ou compte utiliser) UML pour ses développements?<br />
  313. <br />
  314. X.B.<br />
  315. <br />
  316. </p>
  317. </div>
  318. </div>
  319. <div class="comment" typeof="schema:UserComments">
  320. <p class="comment-meta">
  321. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">26/02/2007</span> :
  322. </p>
  323. <div class="comment-content" property="schema:commentText">
  324. <p>Ouf, je suis heureux que la critique ait été bien prise, je ne voulais surtout pas dénigrer le travail effectué.<br />
  325. <br />
  326. &gt; Est-ce que quelqu'un ici utilise (ou compte utiliser) UML pour ses développements?<br />
  327. <br />
  328. Oui, c'était le but après la lecture de cet ouvrage. Sur les deux projets que je mène de front, ce livre est intéressant pour celui ayant déjà bien avancé et sur lequel il manquait de la documentation et il fallait que je trouve les erreurs de conception. Je suis donc parti du code pour arriver au diagramme de classes.<br />
  329. <br />
  330. En revanche pour un nouveau projet, qui est une application web, le livre cité (UML 2 Modéliser une application web) est beaucoup plus adapté et m'aide dans sa réalisation from scratch.<br />
  331. <br />
  332. En fait, je m'attendais plus à un ouvrage tel que le second et c'est sûrement mon tort, c'est le « pour les programmeurs » qui m'a attiré mais je suis plus à une place de chef de projet actuellement.</p>
  333. </div>
  334. </div>
  335. <div class="comment" typeof="schema:UserComments">
  336. <p class="comment-meta">
  337. <span class="comment-author" property="schema:creator">X.B.</span> le <span class="comment-date" property="schema:commentTime">02/03/2007</span> :
  338. </p>
  339. <div class="comment-content" property="schema:commentText">
  340. <p>Merci pour ces compléments d'information.<br />
  341. <br />
  342. Une petite question (je n'ai pas lu &quot;UML 2 Modélisier une application web&quot;), est-ce que UML est utilisé pour générer du code (PHP, HTML, JavaScript, ...) ?<br />
  343. <br />
  344. Sinon, si vous cherchez un livre UML &quot;pour les chefs de projets&quot;, je trouve que ceux de P. Roque sont très intéressants. Ils proposent une méthode très utile.<br />
  345. <br />
  346. Bonne continuation et merci encore<br />
  347. <br />
  348. X.B.<br />
  349. <br />
  350. </p>
  351. </div>
  352. </div>
  353. <div class="comment" typeof="schema:UserComments">
  354. <p class="comment-meta">
  355. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">03/03/2007</span> :
  356. </p>
  357. <div class="comment-content" property="schema:commentText">
  358. <p>&gt; Une petite question (je n'ai pas lu &quot;UML 2 Modélisier une application web&quot;), est-ce que UML est utilisé pour générer du code (PHP, HTML, JavaScript, ...) ?<br />
  359. <br />
  360. Oui, l'étape finale consiste à arriver au modèle de données et à écrire le code associé dans plusieurs langages. Je ferais une critique de cet ouvrage de P. Roques très prochainement.</p>
  361. </div>
  362. </div>
  363. <div class="comment" typeof="schema:UserComments">
  364. <p class="comment-meta">
  365. <span class="comment-author" property="schema:creator">eollia</span> le <span class="comment-date" property="schema:commentTime">04/04/2007</span> :
  366. </p>
  367. <div class="comment-content" property="schema:commentText">
  368. <p>Bonjour,<br />
  369. <br />
  370. Je m'intéresse actuellement au langage UML. J'ai ainsi décidé pour la fin de mes études d'orienter mon sujet de recherche dans ce domaine.<br />
  371. La problématique actuelle serait : &quot;comment rapprocher les phases de définition des besoins à la phase de développement ?&quot;<br />
  372. <br />
  373. Mon objectif était de prendre les phases d'un projet et de les identifier aux diagrammes UML puis de générer le code grâce au travail effectué précédament<br />
  374. D'âpres les commentaires votre livre répondraient finalement à ma question ce qui donne peu d'interet à ma problématique ?<br />
  375. <br />
  376. Pourriez-vous me donner une piste à suivre pour mes rechercher ? Quelle analyse faire suite à ce livre ou en la complétant ?<br />
  377. <br />
  378. J'espère que vous pourriez m'aider pour mon projet <br />
  379. <br />
  380. Cordialement<br />
  381. </p>
  382. </div>
  383. </div>
  384. <div class="comment" typeof="schema:UserComments">
  385. <p class="comment-meta">
  386. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">04/04/2007</span> :
  387. </p>
  388. <div class="comment-content" property="schema:commentText">
  389. <p>@eollia : je te conseille de lire ma critique au sujet du livre UML 2 modéliser une application web consultable à l'adresse suivante : <a href="https://larlet.fr/david/biologeek/archives/20070305-critique-du-livre-uml-2-modeliser-une-application-web/" title="https://larlet.fr/david/biologeek/archives/20070305-critique-du-livre-uml-2-modeliser-une-application-web/" rel="nofollow">www.biologeek.com/journal...</a></p>
  390. </div>
  391. </div>
  392. <div class="comment" typeof="schema:UserComments">
  393. <p class="comment-meta">
  394. <span class="comment-author" property="schema:creator">Franck Barbier</span> le <span class="comment-date" property="schema:commentTime">09/06/2007</span> :
  395. </p>
  396. <div class="comment-content" property="schema:commentText">
  397. <p>Bonjour,<br />
  398. <br />
  399. Je suis l'auteur du livre UML 2 et MDE, Ingénierie des modèles avec études de cas <a href="http://www.dunod.com/pages/ouvrages/ficheouvrage.asp?id=49526" title="http://www.dunod.com/pages/ouvrages/ficheouvrage.asp?id=49526" rel="nofollow">www.dunod.com/pages/ouvra...</a><br />
  400. <br />
  401. Sans vouloir faire de pub pour mon bouquin, j'invite tous ceux qui veulent du &quot;concret&quot; sur UML à accéder à toutes les études de cas de mon bouquin gratuites et en ligne : <a href="http://www.PauWare.com/UML_2_et_MDE/" title="http://www.PauWare.com/UML_2_et_MDE/" rel="nofollow">www.PauWare.com/UML_2_et_...</a><br />
  402. <br />
  403. Si vous n'aimez pas lire, au moins vous aurez des applications complètement implémentées à partir de modèles UML<br />
  404. <br />
  405. Voir aussi <a href="http://www.PauWare.com/PauWare_software" title="http://www.PauWare.com/PauWare_software" rel="nofollow">www.PauWare.com/PauWare_s...</a> pour ceux intéressés par les State Machine Diagrams<br />
  406. <br />
  407. Bien à vous.</p>
  408. </div>
  409. </div>
  410. </div>
  411. </section>
  412. <footer>
  413. <nav>
  414. <p>
  415. <small>
  416. Je réponds quasiment toujours aux <a href="m&#x61;ilto:d&#x61;vid%40l&#x61;rlet&#46;fr" title="Envoyer un email">emails</a> (<a href="/david/signature/" title="Ma signature actuelle avec possibilité de chiffrement">signés</a>) et vous pouvez me rencontrer à Montréal. <span class="more-infos">N’hésitez pas à <a href="/david/log/" title="Être tenu informé des mises à jour">vous abonner</a> pour être tenu informé des publications récentes.</span>
  417. </small>
  418. </p>
  419. </nav>
  420. </footer>
  421. </div>
  422. <script src="/static/david/js/larlet-david-3ee43f.js" data-no-instant></script>
  423. <script data-no-instant>InstantClick.init()</script>
  424. </body>
  425. </html>