«UML est la pire chose qui soit jamais arrivée à MDD.» Pourquoi?


17

William Cook dans un tweet a écrit ceci:

" UML est la pire chose qui soit arrivée au MDD. Heureusement, beaucoup de gens le savent maintenant ... "

Je voudrais connaître le raisonnement derrière cette affirmation (apparemment, je ne fais pas référence à son opinion personnelle).

J'ai remarqué que beaucoup de gens n'aiment pas beaucoup UML. Il convient également de mentionner qu'il est dans le milieu universitaire, où UML est beaucoup plus le Saint Graal du design et de la modélisation efficaces.


15
Je dirais que le MDD est la pire chose qui soit jamais arrivée au MDD.
Michael Borgwardt

Réponses:


39

Eh bien, je suis le universitaire qui a publié le tweet original. Les tweets ne sont pas censés être des articles savants. Ce sont des publicités, et je pense qu'elles peuvent aussi être controversées. Voici mes tweets de suivi:

1) UML a été créé pour modéliser les conceptions OO. Cela affecte que vous modélisez le code d'un système, pas le comportement du système. UML est au mauvais niveau.

2) l'idée que 7 (ou 13) formats de diagramme en UML peuvent couvrir tout est fou. Qu'en est-il des interfaces graphiques, des wireframes Web, des autorisations, etc. ???

3) UML a encouragé l'idée que les modèles doivent être graphiques. Ridicule! Les modèles textuels et graphiques sont à la fois utiles et souvent interchangeables

4) L'UML est à la fois trop grande et complexe et en même temps très limitée. Le stéréotype et les profils ne sont pas efficaces pour les extensions utilisables.

Notez que je ne dis pas nécessairement que UML est mauvais. Je dis simplement que cela n'aide pas l'objectif du "développement axé sur les modèles", ce qui m'intéresse. Je ne comprends pas le commentaire sur le "Saint Graal".


10
+1 pour trouver et répondre à une question sur prog.SE concernant votre propre tweet!
Warren P

Le développement piloté par les modèles m'a donc toujours semblé avoir un modèle visuel. Et sinon UML, alors quoi? (Remarque, je n'ai jamais aimé le MDD et je déteste UML. Mais je suis prêt à essayer MDD-sans-UML. Que dois-je essayer?
Warren P

1
@Warren P: qu'est-ce qui vous déplaît dans MDD et UML?
dan_l

1
J'ai supprimé ma réponse parce que j'avais clairement tort sur ce que vous vouliez dire. Mais je maintiens l'affirmation selon laquelle UML, comme tout langage, est un outil de communication, pas un outil de conception. Vous avez répondu que «de nombreux langages de programmation ont le mot« langage »dans leur nom, mais cela ne signifie pas qu'ils sont uniquement destinés à la communication, pas à l'exécution» - je pense que vous manquez le fait que l'exécution EST une communication avec un ordinateur. Vous n'utiliseriez pas non plus COBOL comme outil de conception.
pdr

Je pense que le commentaire du "Saint Graal" fait référence à la fréquence de l'enseignement.

8

UML est l'équivalent de prendre un tournevis et un marteau et de les coller ensemble et de l'appeler un "outil de fixation universel". En théorie, il peut être utilisé pour représenter une tonne de choses dans les moindres détails, dans la pratique, c'est un tas d'outils mal intégrés prétendant être un seul outil, ce qui rend la tâche bien plus difficile que d'avoir un outil approprié pour commencer.



3

Je pense qu'il y a aussi lieu de faire valoir que le MDD est la pire chose qui soit arrivée à UML (pourquoi autrement aurions-nous l'UML2 que nous avons?), Mais en l'ignorant pour le moment ...

MDD = Model Driven <Design | Development>. L'idée est de pouvoir développer des solutions à un niveau d'abstraction approprié au domaine du problème - c'est-à-dire qu'il s'agit d'une tentative d'exprimer des solutions à des problèmes dans la syntaxe la plus naturelle pour exprimer ces solutions. Le domaine problématique lui-même est caractérisé par un modèle opérationnel (c'est-à-dire par un modèle qui peut être exécuté par ordinateur). Ainsi, MDD peut être une approche très attrayante, même si elle a deux exigences principales:

  1. Il faut être capable de compiler ce langage sous une forme adaptée à l'exécution informatique (le modèle doit être opérationnel ); et
  2. Il faut créer un langage de modélisation pour le domaine problématique.

Je crois comprendre que l'effort UML2 était destiné à traiter le point 1, probablement sous la conviction que l'expérience industrielle avec UML a montré que le point 2 était satisfait pour un grand sous-ensemble de domaines problématiques. Malheureusement, et c'est ce que je pense que voulait dire William Cook, UML ne satisfait pas au point 2 pour la portée des problèmes qui a été pensée. Je ne parle pas d'expérience personnelle, mais je pense que l'expérience industrielle de l'utilisation de MDD avec UML a deux résultats communs:

  • Soit le code source généré à partir de l'UML doit être modifié pour résoudre ces petits écarts entre la conception UML et les exigences du programme (forçant les développeurs à travailler avec du code généré ayant des normes différentes de maintenabilité et réduisant l'applicabilité des artefacts UML à la mise en œuvre ); OU
  • L'UML est encombré de nombreux détails qui réduisent son utilisation en tant que langage pour communiquer sur la conception.

    Dans les deux cas, la promesse de MDD n'est pas tenue. UML pourrait être considéré comme la pire chose qui soit arrivée à MDD car il a attiré l'attention des développeurs d'outils MDD à l'exclusion des modèles qui pourraient réellement fonctionner (quoique pour un ensemble plus petit de problèmes logiciels).


  • -2

    UML est génial tant qu'il ne s'agit que d'un langage de modélisation. Si vous essayez de connecter MDD à UML afin d'obtenir une vue graphique, cela est inutile. MDD serait génial sans UML ainsi que UML sans MDD.

    Disons que UML et MDD ont divorcé aujourd'hui afin de ne plus avoir une vie meilleure :-)


    Ce n'est "génial" à aucun niveau. Un utilisateur du langage de programmation ADA désastreux (Booch) a créé des diagrammes enfantins et s'est connecté avec quelques approches de diagramme de classe plus sérieuses pour créer UML. UML est immédiatement devenu un gros générateur de revenus pour les éditeurs de logiciels. C'était horrible, mais sauvé en déposant simplement de nouveaux types de diagrammes (cet UML antérieur) comme la séquence, le flux de données, etc. Il n'y a rien d'extensible. Pas de schémas de base de données, pas de diagrammes de couches, c'est plein de lacunes et plein de diagrammes inutiles en même temps.
    Rick O'Shea
    En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
    Licensed under cc by-sa 3.0 with attribution required.