17

William Cook in a tweet wrote that:

"UML is the worst thing to ever happen to MDD. Fortunately many people now realize this ..."

I would like to know the reasoning behind that claim (apparently, I'm not referring to his personal opinion).

I've noticed that many people out there don't like UML that much. Also it is worth mentioning that he is in academia, where UML is preety much the holy grail of effective design and modelling.

Flo
  • 1,231
  • 2
  • 12
  • 20

4 Answers4

44

Well, I'm the academic who posted the original tweet. Tweets are not meant to be scholarly articles. They are advertisements, and I think they can also be controversial. Here are my follow-up tweets:

1) UML was created to model OO designs. It effect you are modeling the code of a system, not the system's behavior. UML is at wrong level.

2) the idea that 7 (or 13) diagram formats in UML can cover everything is crazy. What about GUIs, web wireframes, authorization, etc. ???

3) UML has encouraged the idea that models must be graphical. Ridiculous! Text and graphic models are both useful and often interchangeable

4) UML is at once too large and complex and at the same time very limiited. Stereotype and profiles are not effective for usable extensions.

Note that I'm not necessarily saying UML is bad. I'm simply saying that it is not helping the goal of "model-driven development", which is what I'm interested in. I don't understand the comment about "holy grail".

William Cook
  • 456
  • 4
  • 3
  • 14
    +1 for finding and answering a question on prog.SE about your own tweet! – Warren P Jun 20 '12 at 22:59
  • So Model-driven development always seemed to me to be about having a visual model. And if not UML, then what? (note, I've never liked MDD, and I hate UML. But I'm willing to give MDD-sans-UML a shot. What should I try? – Warren P Jun 20 '12 at 23:00
  • 1
    @Warren P : what do you dislike about MDD , and UML ? – dan_l Jun 21 '12 at 02:20
  • 1
    I've removed my answer because clearly I was wrong about what you meant. But I stand by the statement that UML, like any language, is a communication tool, not a design tool. You responded that 'Many programming languages have the word "language" in their name, but that does not mean they are only for communication, not execution' - I think you miss the point that execution IS communication with a computer. You wouldn't use COBOL as a design tool either. – pdr Jun 21 '12 at 07:57
  • 1
    I think the "holy grail" comment is in reference to frequency of being taught. –  Jun 21 '12 at 18:04
  • I think someone could see UML, and MDD, and then read this article on Model transformation, and just say, Screw All This, I'm just going to do it All In Clojure: http://en.wikipedia.org/wiki/Model_transformation – Warren P Jul 06 '12 at 02:17
  • I studied MID and learned ERD... I am soo annoyed by UML popping up in the data domain. I think ER diagrams are much better. I get pimples with UML infringing on RB design and schema diagrams. – Menelaos Jul 25 '16 at 12:58
11

UML is the equivalent of taking a screwdriver and a hammer and taping them together and calling it a "Universal Fastening Tool." In theory it can be used to represent a ton of things in great detail, in practice its a bunch of poorly integrated tools claiming to be a single tool, that makes doing any one task far more difficult than having a proper tool to begin with.

Ryathal
  • 13,317
  • 1
  • 33
  • 48
  • The funny thing is that exists https://www.harborfreight.com/impact-screwdriver-set-with-case-37530.html – Buddhi741 Mar 05 '19 at 10:49
3

I think there's also a case to be made that MDD is the worst thing that happened to UML (why else would we have the UML2 that we have?), but ignoring that for the moment...

MDD = Model Driven <Design|Development>. The idea is to be able to develop solutions at a level of abstraction appropriate to the problem domain - that is, it is an attempt to express solutions to problems in the most natural syntax for expressing those solutions. The problem domain itself is characterized with an operational model (that is, by a model that can be executed by computer). So, MDD can be a very attractive approach, albeit one with two major requirements:

  1. One must be able to compile that language into a form suitable for computer execution (the model must be operational); and
  2. One must create a modeling language for the problem domain.

It's my understanding that the UML2 effort was intended to address point 1, probably under the belief that industrial experience with UML showed that point 2 was satisfied for some large subset of problem domains. Unfortunately, and this is what I think William Cook was getting at, UML does not satisfy point 2 for anywhere near the scope of problems that was thought. I don't speak from personal experience, but I think the industrial experience of using MDD with UML has two common outcomes:

  • Either the source code generated from the UML needs to be tweaked to resolve those small gaps between the UML design and the program requirements (forcing developers to work with generated code that has different standards for maintainability and reducing the applicability of the UML artifacts to the implementation); OR
  • The UML gets cluttered up with a lot of detail that reduces its usability as a language for communicating about the design.

    In either case, the promise of MDD is unfulfilled. UML might be considered the worst thing that happened to MDD because it occupied the attention of MDD tool developers to the exclusion of models that might actually work (albeit for a smaller set of software problems).

  • Aidan Cully
    • 3,476
    • 1
    • 19
    • 23
    -2

    UML is great as long as it is just a modeling language. If you try to connect MDD to UML in order to get a graphical view then it is useless. MDD would be great without UML as well as UML without MDD.

    Let's say UML and MDD have divorced today in order to have a better life not together anymore :-)

    UML_Guru
    • 11
    • 1
    • It's not "great" at any level. A user of the disastrous ADA programming language (Booch) created some childish diagrams and hooked up with a couple of more serious class diagraming approaches to create UML. UML immediately turned into a big-software-vendor revenue generator. It was horrific, but salvaged by simply dropping in new diagram types (that pre-dated UML) like sequence, data flow, etc. There's nothing extensible about it. No database schemas, no layer diagrams, it's full of gaps and full of useless diagrams at the same time. – Rick O'Shea Jul 29 '16 at 00:44