SysML, l’UML de l’analyse système

Voici un court papier écrit en 2005. Les reflexions qu’il soulève restent pertinentes. Je me suis bien éloigné de ces considérations depuis une dizaine d’années. Si les efforts pour structurer les exigences paraissent louables, je ne peux m’empêcher de les trouver vains. Ou tout au moins aurait-il falu les compléter par une structuration des tests (via des stéréotypes ?) à différents niveaux…

Je ferais certainement l’effort d’une note de lecture sur l’ouvrage de Pascal Roques un de ces jours. En attendant : enjoy !

Note de lecture : Use Cases : Requirements in Context, par Daryl Kulak & Eamonn Guiney

Note : 6 ; Bonne mise en pratique du cycle itératif et de bonnes idées, mais pas entièrement concluant.

Ce livre présente les cas d’utilisation dans le cadre d’un processus itératif, en fait celui d’Unfied Process. A ce titre, il propose une approche incrémentale pour la spécification des cas d’utilisation, basée sur celle de Craig Larman. Cet ouvrage taille aussi un short à la gestion des exigences, par rapport auxquels les auteurs préfèrent la spécification des règles métier, même si en fait c’est surtout la production de gros documents de spécification monoblocs qui est remise en cause. La description des spécifications incrémentale est réellement valable et concrète, et de plus desservie par des exemples concrets en annexe.

La construction du livre est un peu curieuse, car les annexes forment la moitié de l’ouvrage, le texte principal ne comptant que 170 pages structurées en 11 chapitres. Le premier d’entre-eux consacre ses 18 pages à l’identification des problèmes liés à l’approche classique. La prose manque un peu d’élan lyrique, mais s’efforce néanmoins de bien synthétiser ces points d’achoppement. Disons que le boulot est fait.

Le second chapitre s’étend sur 32 pages, il s’agit d’une introduction aux cas d’utilisation d’inspiration très « Gery Schneider ». On y aborde plutôt efficacement les basiques de la représentation des cas d’utilisation et les bonnes règles de conduite. Plus globalement on y traite aussi des cas d’utilisation dans l’environnement UML. Un chapitre rondement mené.

Lire la suite

Note de lecture : Building Web Applications with UML 2nd edition, par Jim Conallen

Note : 6 ; Pas les progrès espérés de cette seconde édition considérablement étoffée, mais avec une notation qui continue à se rapprocher de Rational plus que de UML / MDA

Seconde édition d’un ouvrage paru en 2000, ce volume considérable (450 pages), dont un tiers est consacré aux annexes. La première édition montrait une ébauche de profile UML pour les applications Web. Depuis un certain nombre de spécialisations ont vu le jour, notamment dans le monde JEE. Voyons ce qu’il en est.

Comme je l’ai dit, le corps principal du livre compte 300 pages, repartis en 2 parties et découpé en 12 chapitres. La première partie est consacrée à la modélisation des technologies relatives au Web et rassemble les 5 premiers chapitres. Le premier chapitre sert d’introduction et couvre 3 pages, n’en parlons pas. Le chapitre 2 est en fait la réelle introduction. Sur 20 pages, il fait le point sur les principales technologies et protocoles qui sont le quotidien des applications Web à la date de l’ouvrage. C’est plutôt bien écrit mais on y apprend pas grand chose.

Le chapitre 3 s’intitule « dynamic client ». On y évoque tout ce qui tourne autour du DOM, et ce n’est pas particulièrement superficiel. Il y a quelques tentatives timides de modélisation. Il est dommage qu’elles soient timides, car elles sont plutôt originales et bien pensées. C’est un chapitre court de 10 pages.

Les 20 pages du chapitre 4 s’intéressent à ce qu’il y a au-delà de http et HTML. En l’occurrence RMI, DCOM et SOAP. Plus de focus sur la technologie que sur la modélisation. Mais l’auteur nous gratifie quand même de quelques schémas d’architecture à la sauce UML.

Enfin, le chapitre 5 clôt cette première partie. C’est de sécurité qu’il est question sur 22 pages, avec à la clé encryptions, firewalls, etc. Là encore le soutiens UML est éparse. Pourtant Jim Conallen est le seul auteur que j’ai vu faire usage des collaborations paramétrées, intelligemment qui plus est !

La seconde partie est consacrée à la modélisation d’applications Web. Elle débute par le chapitre 6, probablement celui que je juge le plus hors-sujet. On en prend quand même pour pas loin de 40 pages. On y parle de processus de développement, et de métamodèle de processus. Le tout très emprunt d’Unfied Process. Guère passionnant.

La définition de l’architecture, sujet du chapitre 7 qui accuse un peu plus de 25 pages, utilise la représentation 4+1 vue de Philippe Kruchten. On y est moins hors sujet qu’au chapitre précédent. Mais le sujet aurait pu être mieux traité. D’autant qu’il révèle peu de spécificités Web.

C’est de requirements et donc de cas d’utilisation qu’il est question au chapitre 8. Les 25 pages de ce chapitre nous permette d’asseoir l’étude de cas, mais n’offrent aucun élément nouveau par rapport aux approches classiques. A contrario, on ne peut reprocher au chapitre 9 consacré à l’UX d’être classique ! Ce sont 25 pages également qui traitent essentiellement de « navigational maps » représentées en UML !

La vingtaine de pages du chapitre 10 consacrées à l’analyse font le pendant du chapitre 8. Là non plus rien de neuf sous le soleil. Ce qui est dit ici se retrouve dans la prose de Doug Rosenberg. Les 30 pages du chapitre 11 dédié à la conception montrent bien d’avantage de créativité dans l’utilisation d’UML dans un contexte Web, notamment dans l’usage de composants stéréotypés. Le chapitre « conception avancée » qui lui fait suite est de la même veine.

Le corps de l’ouvrage se termine sur un chapitre « implémentation » qui apporte bien peu au paysage UML dressé par l’auteur.

Enfin, les annexes forment un solide manuel de référence au profil développé par l’auteur.

J’attendais donc de cette nouvelle édition qu’elle converge d’avantage vers le métamodèle UML et qu’elle fédère la notation Web commune aux différentes technologies Web (HTML, XML, .Net et J2EE, notamment, mais aussi PHP et autres technologies spécifiques). Au lieu de cela, l’auteur a choisi de se rapprocher d’une notation orientée analyse s’appuyant sur Rational Rose et convergeant graduellement vers le processus « Iconix » de Doug Rosenberg, même si cela reste inavoué. Cela signifie bien sûr que l’on ne voit ni le signe d’une approche fédératrice des annotations UML pour le Web, ni d’un support MDA pour les applications Web.

Dix ans après, l’ouvrage mériterait un 3ème édition. Tout d’abord, le talent de Jim Conallen pour développer un profil UML créatif et pertinent est réel. Cet ouvrage pourrait laisser tomber l’aspect process qui apporte bien peu et se pencher sur les nouveaux aspects des architectures Web modernes : si le MVC reste important de nouvelles approches existent, utilisant les approches réactives, le REST et les librairies JavaScript avec HTML 5 !

image

Référence complète : Building Web Applications with UML, second edition – Jim Conallen – Addison Wesley 2002 – ISBN: 0-201-73038-3; EAN: 978-0-201-73038-8

Building Web Applications with UML


https://www.goodreads.com/book/add_to_books_widget_frame/0201730383?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Real-Time UML, par Bruce Powel Douglass

Note : 6 ; Beaucoup d’UML classique avec un peu de spécifique « temps réel ».

Les 50 premières pages de ce livre ne nous laissent pas vraiment penser que celui-ci traite spécifiquement de temps-réel : elles exposent les principes généraux d’UML.

Il faut attendre le chapitre 2 et le traitement des exigences temps-réel pour aborder des éléments spécifiques. Ici, on parle surtout de messages, d’évènements et de réponses, mais aussi de cas d’utilisation (curieusement ils utilisent un formalisme « pré-UML » avec les relations « uses », entre autres choses). Sinon, l’approche proposée se calque sur la structure en « peau d’oignons » de John Ellis.

Le chapitre 3 est consacré à l’analyse objet. Ici, ce sont les techniques de découverte des objets (qu’ils soient du domaine, visuels ou utilitaires), des associations et des attributs qui sont détaillés. Curieusement, l’étape du « problem statement » prends place ici, alors que je l’aurais plutôt vu au chapitre précédant. La particularité des modèles « temps réels » est d’utiliser une structure de classes composites, à l’image des diagrammes de blocs proposés par UML 2.

Le chapitre 4, consacré à l’aspect comportemental des objets est, comme on peut s’y attendre dans le domaine du temps réel, essentiellement consacré aux automates d’état. Les « timing diagrams » apparus ultérieurement avec UML2 y sont aussi évoqués.

Le chapitre 5 dédié à l’architectural design s’appuie sur une approche à 3 niveaux (Architectural design, mechanistic design et detailed design). Les 2 niveaux suivants seront étudiés aux 2 chapitres suivants. L’architectural design se focalise sur la structure en couche et en package, la définition des protocoles d’échanges et le modèle de concurrence. Outre l’utilisation classique des diagrammes de dépendances entre packages, on a aussi droit à l’utilisation moins courante des diagrammes de déploiement. Les protocoles sont fort logiquement décrits à l’aide de collaborations et de diagrammes de séquence. Ce chapitre est également l’occasion de développer certains patterns architecturaux tels que : Monitor-Actuator, Watchdog, Safety executive, Diverse redundancy, Homogenous redundancy, ainsi que les plus classiques Proxy et Broker. La description de la concurrence s’appuie sur des diagrammes de déploiement où figurent les instances de tâches : non standard mais diablement clairs et utiles !

Comme on pouvait s’y attendre, le chapitre 6 traite du « mechanistic design ». Ceux-ci exposent les choix tactiques de conception, à savoir les design patterns mis en œuvre. Quelques patterns viennent étoffer les très classiques patterns du GoF (Rendez-vous, Transaction,…), ils sont très logiquement documentés à l’aide de Collaborations UML.

Le chapitre 7 « detailed design » traite du troisième niveau de l’approche architecturale. Ici, ce sont les structures de donnée, les complexités algorithmiques et la gestion des exceptions qui sont abordées.

Ce livre est sommes toutes complet sur l’usage d’UML dans le domaine du temps-réel. Il commence assez doucement et plutôt classiquement (voir faiblement) sur l’expression du besoin, mais surprend en couvrant l’ensemble du cycle de développement, y compris la conception détaillée avec UML, ce que l’on n’est pas forcément habitué à voir. Le public est aussi clairement visé : les ingénieurs travaillant dans le temps réel. Les autres seront peu ou pas concernés…

real-time-UML

Référence complète : Real-Time UML, Developing efficient objects for embedded systems – Bruce Powel Douglass – Addison Wesley / O.T. series 1998 – ISBN : 0-201-32579-9

Real-Time UML: Developing Efficient Objects for Embedded Systems

http://www.goodreads.com/book/add_to_books_widget_frame/0201325799?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Note de lecture : De Merise à UML, par Nasser Kettani & al.

Note : 6 ; Attention, classique !

Voici un « best seller hexagonal », dont le but est de permettre la transition vers UML aux populations aguerries à Merise, comme l’indique le titre. Il faut également savoir que c’est un titre largement promu par Rational France, société où les auteurs officient.

En fait, moins de 100 pages sont consacrées au parallèle entre UML et Merise ! La partie la plus importante de l’ouvrage est consacrée à une approche « standard » de projet utilisant UML, sans faire référence au vocable spécifique à Merise. Certes, la chose est bien menée, bien que je désapprouve la francisation systématique des termes UML. Les modèle développés sont presque systématiquement enrichis de concepts issus d’UP : les 4+1 vues, les stéréotypes UP, etc. Ceci est discutable, je pense, car il est difficile de discerner ainsi ce qui fait partie d’UML car ce n’est pas précisé ! D’un autre coté les textes sont clairs et précis, supérieurs en cela à « UML en action » auquel on pourrait le comparer ; les auteurs vont jusqu’à nous présenter du code OCL, suffisamment simple pour être naturellement compréhensible.

On remarquera la présence d’un chapitre (le 3ème) consacré aux processus métier, et plus précisément au BPR. Deux autres sont consacrés à, la gestion de projet (où il n’est bien évidemment pas question d’UML), dont un consacré à UP.

Finalement, ainsi que je l’ai dit au début, seule la troisième partie, constituée de deux chapitres, est consacrée à la transition Merise – UML, ou devrai-je dire : Merise – UP / UML ! Ceci est fait essentiellement sous forme de parallèles !

Au final, le titre est éminemment trompeur, le livre ne traite que peu de la transition Merise vers UML, qui plus est dans une partie mineure sans rapport avec le reste de l’ouvrage ! Ceci ne réduit en rien la qualité du livre, mais un autre titre (par exemple : réalisation de projets avec UP et UML) aurait été mieux adapté. Parmi les curiosité, on trouve des diagrammes repris de nombreuses fois sur différents chapitres ! On trouve aussi une bibliographie, très solide, à la fin de chaque chapitre. Bref, un ouvrage somme toute solide et dense, avec ses 400 pages.

merise-uml

Référence complète : De Merise à UML – Nasser Kettani, Dominique Mignet, Pascal Paré & Camille Rosenthal-Sabroux – Eyrolles 1998 – ISBN : 2-212-08997-X

De Merise à UML


http://www.goodreads.com/book/add_to_books_widget_frame/221208997X?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : UML pour les décideurs, par Franck Vallée

Note : 4 ; Le cycle en « Y » n’est pas mort, il bouge encore… « UML pour les vieux » aurait-il été un meilleur titre ?

UML peut-il réellement être un outil pour le décideur. Personnellement j’en doute, bien que la finalité d’une notation soit d’être un vecteur de communication. Le pari est en tout cas ambitieux, voyons s’il est réussi, et pour se faire passons en revue le contenu du livre. Celui-ci compte 270 pages découpés en 8 chapitres formant 2 parties : « UML en puissance » et « Déployer UML dans l’entreprise ». On peut en conclure que l’on va avoir des chapitres relativement gros, disons selon la tendance française plutôt que selon le mode américain.

Le premier chapitre, UML et le génie logiciel, est un tour rapide d’UML. Il compte tout de même 65 pages et fait un tour très complet de la notation UML 2. Elle replace l’utilisation de la notation dans une gestion de projet classique « phasée » séparant distinctement l’analyse de la conception. Ce dernier point était l’un des axes prépondérants de l’approche en « Y » que je dénie complètement.

Au chapitre 2, on se concentre sur les cas d’utilisation. Je n’y ai rien trouvé de neuf, à part 6 pages sur les 50 de ce chapitres dédiés au ROI à partir des cas d’utilisation.

Le chapitre 3 couvre aussi 50 pages et est dédié à l’utilisation d’UML en conception. Enfin quand je dis en conception, je devrais dire en implémentation, car on court-circuite joyeusement une vraie conception objet, pour passer directement de l’analyse à sa projection sur l’infrastructure technique. Je ne suis pas un grand supporter du phasage, mais je ne le suis pas non plus de l’approche consistant à tartiner la coloration technique sur un modèle d’analyse ! Pas convaincant !

Le chapitre 4 nous parle processus, organisation du projet et rôles. Effectivement, on y ressort le cycle en « Y ». Je croyais pourtant qu’il était mort, mais il semble qu’il bouge encore…

Le chapitre 5, le premier de la seconde partie est très court : 10 pages. Son but est de formuler les objectifs de changements avec UML. Ca c’est le titre du chapitre. Dans la pratique, je n’ai pas compris le but de ce chapitre.

Le chapitre 6 « méthodes et outils » couvre sur 40 pages la question des différents types de cycle de développement. C’est relativement intéressant (XP y est rapidement classé comme un procès pour les petits projets ne posant de toute façon as de problème). L’affinité de l’auteur pour Unified Process et MDA arrive assez rapidement.

Le chapitre 7 « changer pour UML » nous apporte une analyse assez précise en terme de coût et d’impact du passage sur UML. Enfin le chapitre 8 « aider la prise de décision » conclut sur 6 pages en disant qu’UML, c’est bien.

Je connais Franck Vallée et l’apprécie. Mais je trouve que ce livre apporte peu de choses, surtout en 2005. Les points différenciant par rapport à un ouvrage pur UML sont peu évident. En tout cas ils ne m’apparaissent pas. Le focus méthodologique qui y est décrit me replonge dans un monde ancien, sclérosé et poussiéreux avec lequel je ne veux plus rien à voir. Quand à la relation avec le titre elle est presque inexistante. Je dénombre environ 20 pages du livre qui semblent à mon avis adresser le sujet.

Pour ce qui est d’évoquer UML de manière plus large (si l’on oublie la question du « processus pour les vieux »), eh bien Franck Vallée écrit très bien, sa description d’UML est claire et pertinente. L’analyste pourra lire cette prose avec profit.

uml-decideurs

Référence complète : UML pour les décideurs – Franck Vallée – Eyrolles 2005 – ISBN : 2-212-11621-7

UML pour les décideurs


http://www.goodreads.com/book/add_to_books_widget_frame/2212116217?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : UML Distilled 3rd edition, par Martin Fowler

Note : 9 ; Une édition encore meilleure (si c’est possible) d’un ouvrage qui ne cesse de me surprendre par sa qualité et se concision.

On est toujours en droit de se demander si une nouvelle édition n’est pas un simple lifting, surtout quand il s’agit comme ici d’un best seller. J’en veux pour témoin l’habillage résolument clinquant de la jaquette, on croirait Elvis Presley à sa grande époque !

Ce livre présente UML2, et ce fut l’un des premiers. Outre la présentation précise et efficace d’UML2, les points de différence avec UML1 sont soulignés. Le livre reste toujours aussi agréable à lire. Il est intéressant de noter, tout comme la seconde édition mettait un coup de projecteur sur Unified Process, ce sont ici les méthodes Agiles qui sont mises en lumière. Cela induit un petit travers dans la présentation de la notation dont je me serais bien passé. Il est préférable dans ce type d’ouvrage, de présenter la notation pour elle-même, mais c’est résolument le point de vue adopté par l’auteur : filtrer de la norme UML ce qui est utile et important à utiliser dans le cadre d’un projet. N’attendez donc pas une description exhaustive d’UML 2.0 !

J’ai souvent remarqué que les très bon livres utilisent les pages internes des couvertures comme « cartes de référence ». C’est encore le cas ici : Les éléments constitutifs de la notation sont présentés sous forme graphique, regroupés par type de diagramme, avec le renvoi vers la page descriptive. Vraiment très pratique !

J’ai souvent fait remarqué la concision et la clarté de la prose de Martin Fowler. Il est ici au sommet de son art. On a même peine à croire, la dernière page refermée que tout tient en moins de 200 pages, annexes comprise, le texte étant par ailleurs largement aéré par les nombreux diagrammes illustrant le texte. C’est un tour de force, d’autant qu’au grée des éditions et des normes successives d’UML ajoutant de nouveaux éléments, le volume du livre n’a pas augmenté d’une seule page.

Je ne vais pas détailler le contenu du livre. De manière globale, Martin Fowler a vétillé le volume consacré à chaque sujet en fonction de l’importance relative dans un usage réel au sein d’un projet. Ainsi le diagramme de classe se taille la part du lion. Le diagramme de séquence et le diagramme d’objet (et le diagramme de communication qui est son complément naturel) sont aussi très correctement traités. A l’autre extrémité, le diagramme de déploiement, d’interaction, de temps ou les collaboration sont abordés très succinctement en seulement 2 pages. Pourtant en 2 pages seulement l’auteur concentre l’essence de l’information sur ces digrammes et le lecteur intéressé y trouvera déjà de quoi les utiliser concrètement. De toute manière d’autres livre plus massifs existent pour traiter cette matière plus en profondeur, ce n’est pas le créneau de ce livre.

UML est un bon outil. Pas seulement pour le spécificateur, mais aussi pour le développeur ou toute personne au sein des projets pour simplement communiquer de manière efficace. Mais tout le monde ne peut ou ne veux investir beaucoup de temps à comprendre cet outil. UML distilled est sans contestation possible le livre idéal pour cela. Mon conseil ? Faites figurer ce livre de force dans toute bibliothèque d’un projet. Il contient le substantifique moelle de la notation UML qui peut être acquise avec un investissement de temps complètement optimisé. Ce serait dommage de passer à côté.

UML-distiled-3edt

Référence complète : UML Distilled, a brief Guide to the standard Modeling Language, Third edition – Martin Fowler – Addison Wesley / O.T. series 2003 –ISBN: 0-321-19368-7

UML Distilled: A Brief Guide to the Standard Object Modeling Language


http://www.goodreads.com/book/add_to_books_widget_frame/0321193687?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : UML 2 par la pratique : études de cas et exercices corrigés 4ème édition, par Pascal Roques

Note : 7 ; Plus qu’une mise à jour !

Déjà la 4ème édition de ce livre ! J’en ai donc raté 2, et j’aurais aussi raté celui-ci si Pascal ne m’en avait pas fait cadeau. L’un des objectifs majeurs de cette nouvelle édition était la mise à jour par rapport à UML 2 : de ce coté l’objectif est atteint. On notera, par exemple, l’utilisation abondante des « frames » (mais pas de l’interaction overview, pourtant si utile). Autre nouveauté majeure, les « composite structure diagram » sont dorénavant présentés, mais avec un traitement peu en mesure avec leur importance. Les « timing diagram », de leur coté, sont juste évoqué en passant mais j’en fais moins de cas, car cette innovation outre sa séparation par rapport aux autres concepts d’UML2, me semble de moins d’importance. Pascal aime beaucoup les diagrammes d’état, aussi leur réserve-t-il traditionnellement une part importante, y compris les trucs quasi-inutiles comme les états historiques. Cette édition suit la tradition et les nouveautés concernant les automates d’état sont extensivement passées en revue. Je continue à trouver surdimensionné l’importance accordée à cet aspect, mais on reconnaitra que celui-ci est au moins traité « in extenso » ! On n’en dira pas autant des diagrammes de communication (les anciens diagrammes de collaboration) : assez peu évoqués, ils sont de plus utilisés avec les stéréotypes Jocobsoniens (déjà présents dans la première édition, à mon grand désarroi, et qui persistent dans cette dernière mouture), je n’en suis pas un grand fan, car ils induisent des choix de modélisation particuliers et rendent la lecture des diagrammes d’autant plus difficile que le lecteur du livre sera généralement débutant en UML. Autre nouveauté : Pascal nous propose une analyse linguistique, si l’exercice est intéressant et bien mené, son intérêt pratique est questionnable, mais comme on dit : c’est bien de le faire au moins une fois.

Au-delà de la mise à jour UML 2, cette nouvelle édition a pris un peu d’ampleur, passant de 290 à 320 pages. On a vu pire, d’autant qu’il faut bien l’avouer : les qualités pédagogiques de l’auteur rendent cela extrêmement digeste. Le principe du livre est toujours le même : la présentation d’UML se fait au travers d’exercices durant les 3 premiers chapitres, ce qui permet de présenter les concepts de façon progressive. La quatrième partie dédiée à la conception s’appuie sure 2 études de cas. Ceux qui connaissent le cours Valtech UML reconnaitront la trame et les exercices. On remarquera au passage les emprunts à l’approche de Craig Larman, au travers des contrats d’opération, entre autre chose.

Si vous cherchez un ouvrage sur UML, vous voici donc face à 3 choix principaux :

L’UML distilled de Martin Fowler : Condensé et efficace, il présente la notation UML aux lecteurs déjà aguerris dans l’utilisation d’un langage de modélisation graphique

L’UML Reference Guide des 3 amigos : C’est la référence sur UML et ne s’adresse pas au débutant, car si le texte est pédagogique, il ne fait grâce d’aucune des subtilités du standard. Le débutant risquera fort d’être noyé.

L’UML par la pratique de Pascal Roques : Un bon moyen (la référence devrai-je plutôt dire) de s’auto former à UML, avec des exercices et une présentation progressive des concepts. Toutefois, le format retenu ne le rend pas tellement pratique pour s’en servir après coup comme un manuel de référence. Ce n’était pas le but de l’auteur, et l’exercice ne parait pas tellement praticable de toute façon.

UML 2 par la pratique

Référence complète : UML 2 par la pratique : études de cas et exercices corrigés, 4ème édition – Pascal Roques – Eyrolles 2005 – ISBN : 2-212-11680-2 (une 7ème édition est aujourd’hui disponible).

Uml 2 Par La Pratique: Études De Cas Et Exercices Corrigés


http://www.goodreads.com/book/add_to_books_widget_frame/2212116802?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : MDA en action : Ingénierie logicielle guidée par les modèles, par Xavier Blanc

Note : 7 ; Un très bon livre, pour comprendre les concepts clés de MDA, les métamodèles associés et leurs mécanismes de transformation.

Mon snobisme naturel m’incite généralement à préférer les livres américains à leurs équivalents français. Le fait que je m’intéresse aujourd’hui à un ouvrage bien de chez nous ne doit rien à une quelconque cabale hexagonale, mais bien aux qualités intrinsèques dudit ouvrage.

MDA est un sujet complexe, qui nécessite d’en comprendre les fondements afin de pouvoir saisir les nombreux « buzzwords » que sont OCL, Semantic Actions, et autres CIM, PIM, PSM et MOF ! C’est exactement l’approche de ce livre : après un chapitre de présentation générale de MDA, on aborde tout de suite la pierre angulaire du MDA : le MOF (méta-object facilities) encore appelé méta-métamodèle ! Si il est un sujet ardu dans MDA, c’est bien ce fameux MOF (vous l’avez probablement compris rien qu’en lisant la phrase précédente). Mais l’auteur s’en tire fort bien, de manière exemplaire devrais-je même dire car au chapitre 6, on se plonge même dans la manipulation d’un métamodèle construit à l’aide du framework EMF d’Eclipse (celui-là même qui est au cœur de Rational Software Modeler / Architect) : bravo ! Bien sûr, il vous faudra avoir le goût des métamodèles, mais dans le cas contraire, MDA n’est probablement pas pour vous. UML2 est bien entendu abordé, et si vous n’aviez pas encore compris ce que sont UML infrastructure et superstructure (on ne saurait vous en blâmer) et la fameuse dépendance « merge », l’explication est ici. Je met juste un bémol sur les explications dédiées aux classes du métamodèle UML2 qui sont un peu fastidieuses.

Les standards connexes, si ils sont traités brièvement ne le sont pas moins clairement, avec une mention spéciale pour le traitement de XMI et DI (diagram interchanges) ce dernier sujet n’étant même jamais abordé dans les autres textes. De même, si vous êtes noyés dans les problèmes d’incompatibilités de XMI, la réponse est ici. La clé de voûte de MDA, la transformation de modèles n’est pas en reste, puisque l’auteur développe les 3 approches possibles : transformation par programmation, par « templates » et par règles de programmation, la 1ère et le 3ème approche étant par la suite illustrés dans la prise en compte des plates-formes d’exécution, J2EE et PHP respectivement, la transformation entre 2 métamodèles différent (car l’auteur présente un métamodèle PHP simplifié pour l’occasion) est carrément la cerise sur le gâteau ! On est pas loin du tour de force.

Sur le fond, l’approche de l’auteur (fusion des informations de transformation avec le modèle) s’oppose avec l’approche de Kleppe & Warmer qui est de séparer les informations de transformation du modèle. Personnellement je préfère cette dernière approche. Cela ne retranche rien à la qualité de cet ouvrage, que je conseille à la condition que vous recherchiez l’approche « en profondeur » et soyez friand de métamodèles !

L’étude cas et la présentation de deux outils MDA (Rational Software Architect et Objecteering MDA Modeler) ne sont pas la meilleure partie de l’ouvrage, mais elles complètent utilement celui-ci en donnant une illustration concrète.

Voilà donc un livre solide et complet sur MDA. Il requiert un peu e motivation pour aborder le sujet sous l’angle métamodèle, mais il équilibre de façon fort heureuse les principes et la pratique, le tout dans un volume raisonnable, puisque le livre compte 260 pages.

MDA en Action

Référence complète : MDA en action : Ingénierie logicielle guidée par les modèles – Xavier Blanc – Eyrolles 2005 – ISBN : 2-212-11539-3

MDA en Action


http://www.goodreads.com/book/add_to_books_widget_frame/2212115393?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on