When UML meets Slashdot

There was a recent thread about UML on Slashdot, as a reaction to this blog post . The headline: “Is UML Really Dead, Or Only Cataleptic?“. Many posters are clearly bitter towards UML. There seems to be a strong preference for using UML as a communication tool as opposed to as a basis for partial or full code generation (see post on UML modes). Many also complain that the graphical notation is cumbersome and that it hurts productivity (+1!). A few actually like UML; however, it is said that the UML specification is vast and complex and that you should pick the parts of UML that make sense for your case/goals (+1 here too).

Lots of interesting points, but the most negative posts are just misinformed. But that is Slashdot, what should I expect? Java and Eclipse have, in general, a poor receptivity on Slashdot, so I guess UML is in good company.

Of course, while I disagree with those that ditch UML because it was not properly employed in some project they worked, I strongly agree with the complaints about UML (graphical) diagrams being cumbersome and hard to deal with, as I have written here before. But that is not a problem with UML per se, but with the fact most still see it as a graphical language.

UML certainly has its share of problems (design by committee, no reference implementation), but I strongly believe it is very useful and that there isn’t anything out there (I am talking to you, home grown DSLs) that can replace it as the lingua franca for model-driven development.

EmailFacebookLinkedInGoogle+Twitter

11 thoughts on “When UML meets Slashdot

  1. Doug Schaefer

    June 3, 2008 at 12:07am

    One also has to question whether model-driven development itself is the right paradigm. Yes, UML is the most popular in that domain, but I wonder what percentage of software developers give a rats you know what about modeling at all. If I had to pick between modeling and Eclipse content assist and quick fix, I know what would make me more productive.

    And this comes from a guy who spent a good 8 years of his career trying to make modeling matter and gave up along with many a colleague. UML is crap, the tools are even worse. Start over, if it’s not tool late and make a real executable modeling language. Oh yeah, we had that with ObjecTime Developer. Thanks, Rational! (ok, I’m a little bitter ;)

  2. Jilles

    June 3, 2008 at 1:28am

    UML is not misunderstood but yet another over engineered silver bullet. It’s had over ten years to prove itself in industry and it’s just not working as advertised by UML tool vendors and other proponents. Sure there are success stories and some areas where it actually is useful but in the vast majority of UML tool deployments the added value is dubious at best and the dogmatic reasoning that put it in place can be qualified as misguided.

    MDA as such is interesting but I think at this point, it is very clear it is only usable in very specific and stable domains. Additionally people like Martin Fowler point out that UML might not be the best tool for this particular job even.

    To be fair, I think UML was doomed the day the OMG got involved. I think OMG has a long track record proving that design by committee leads to bloated, over engineered compromises.

  3. Ed Merks

    June 3, 2008 at 5:30am

    Where some see models but others see only code, I see tend to see the models in the code Of course some will ague my model-based perspective is narrow, but I believe the contrary to be true, i.e., a code-only perspective is narrow. So to me the question of whether model-driven development is the right paradigm is simply not seeing the forest for all the trees and their bark beetles. When you define an interface A with a method getX, you’ve defined a model of your data. As such, whether folks feel as if they are modeling or not, much of what they do is in fact modeling their data. It simply doesn’t matter whether they have rat body parts to spare. EMF lets you quite easily define a model using Java and of course we could make it far easier given resources levels like those that go into JDT.

    In any case, I personally have grave concerns about formalisms such as UML and XML Schema that seem to be complex in a way that is far beyond the mental capacity of the average human being. That being said, I believe simplicity is an illusion that hides intrinsic complexity behind intuition and deep understanding.

    My personal ambition is to ensure that EMF’s pragmatic approach to model driven development solves real every day problems so that it can be used to build simple applications or even monstrously complex things like UML and XML Schema. Rather than argue from up on a soapbox about the virtues MDD, I’d rather spend my time addressing limitations that impede real programmers in their daily lives; although I do love a good strong soapbox. Make it real, pragmatic, and valuable, and you’ve made it matter. In other words, don’t just say it matters, make it matter…

  4. neil

    June 3, 2008 at 6:51am

    Slashdot hating aside, I have to second Doug’s comment. I’m not sure that the *graphical* nature of UML is the problem … I think it’s resistance to so-called ‘big design up front’. Many developers seem to have had the same negative experiences with modeling and documentation that is only done to appease a manager or client.

    That said, I would like to see more studies on how UML is used in industry. My current understanding is that it has an optimistic 40% usage rate (mostly for communication, I would think).

    See http://amazinnggg.blogspot.com/2006/11/uml-usage.html

  5. Ed Merks

    June 3, 2008 at 9:12am

    Anything that gets in the way of iterative design is going to be a tough sell in this increasingly agile world. Producing diagrams purely for management’s gratification is even worse.

    I asked someone a few months ago, what are people doing with these fancy UML tools? Don’t they want to generate code? The answer was that although there is code generation support, mostly people use the tools to draw pretty pictures. Of course if the quality of the code being generated is poor, and worse yet, if it doesn’t support iterative development, the pictures about about the most valuable thing you get.

    It makes me sad and helps remind me to focus on practical things that matter to real developers. It’s quite easy to map UML to Ecore and thereby to extract significant value from the investment. It’s also easy to go in the other direction too, if someone is in need of gratuitous gratification…

  6. rchaves

    June 3, 2008 at 10:33pm

    @Doug:

    “One also has to question whether model-driven development itself is the right paradigm”

    True. I would not want to write an OS, or Eclipse itself, using UML and MDD. But most of the code being currently being written in Java out there (i.e. business applications) is built at the wrong level of abstraction, and this is why even though we have been doing that for decades, we still suck at doing it. Gosh, I think even Cobol was more appropriate than the Java-based solutions currently in use.

    “Start over, if it’s not tool late and make a real executable modeling language.”

    If a better executable modeling language is born, I will be happy to move to it. Must-have requirements: high-level of abstraction, not owned by a company, backed by a solid metamodel, syntax agnostic, solid open source reference implementation. Oh, I guess it will help if I can translate back and forth to UML.

    Hey, I think I just described UML.

  7. rchaves

    June 3, 2008 at 10:50pm

    @Jiles:

    Yes, UML is huge. It grew from a unified notation that combined the pre-existing OMT, Booch and OOSE approaches to a multi-paradigm executable modeling language. It does suffer from trying to be everything to everybody.

    But nobody says you must use all of its features. There are many uses of UML, and the trick is in recognizing what is relevant and what must be ignored.

    “MDA as such is interesting but I think at this point, it is very clear it is only usable in very specific and stable domains. “

    I would say more than 50% of the applications out there involve implementing simple business logic and database-based persistence. That is clearly an excellent target for MDD. Why hasn’t it picked up yet? My bet is that the tool providers that support feature-rich MDD are just not interested in that market if they cannot charge 100K+ for their tool suite (as they do in the telecom and embedded industry).

    people like Martin Fowler point out that UML might not be the best tool for this particular job even

    I truly admire Martin Fowler for his many contributions, but I strongly believe he is completely off (and as are other luminaries, such as Dave “Bedarra” Thomas) when it comes to UML and MDD.

  8. rchaves

    June 3, 2008 at 10:58pm

    @Ed:

    EMF is here and can show its usefulness today, and that is great. But we have a long way ahead of us, and a structure-centric approach won’t take us far enough. But it is a good step in the right direction. I think I read people are considering a model-based approach for e4. That is awesome, and much/all of the credit for making the Eclipse Platform developers even consider the idea certainly goes to the Ed Merks Framework. ;)

    “Make it real, pragmatic, and valuable, and you’ve made it matter. In other words, don’t just say it matters, make it matter…”

    Awesome advice! I think I am working on that!

  9. rchaves

    June 3, 2008 at 11:04pm

    @Neil:

    I am big believer in incremental design. UML does not preclude that, actually even facilitates that. Yes, tools that generate code once that you must maintain by hand from there on are a pain. But executable modeling-based tools don’t have that caveat because the model is the code.

    Executable modeling is still new and not exposed by any of the mainstream UML tools, and thus is not well known. But I am working towards changing that… ;)

    BTW, thanks for the link!

Comments are closed.