Slashdot Mirror


Is UML Really Necessary?

rotifer asks: "A while ago I saw Kent Beck talk at the Java user's group meeting here in Seattle. Someone asked him about UML. He made a derisive noise and sneered that he had come up with a better version called GML, Galactic Modeling Language. He said (and I am paraphrasing here) that GML had three components "Boxes, Arrows and Arrows Pointing to Boxes". I thought this was right on. That seemed to be all the object modeling a person would need, especially when compared to the 808 pages of obtuse documentation that make up UML. But am I missing something here. Do people find UML useful. Or is it just overblown hype? Do you need this fully featured language to design an O-O system? Or are you better off with just boxes and arrows? Also, if you were to teach programming to beginning Java and C++ developers, is it a good idea to start with a course in UML so that new programmers can become familiar with O-O methodology before they start to cut code?"

4 of 27 comments (clear)

  1. UML can be insanely useful by Mr+T · · Score: 3
    First off, it's probably the best modeling language to date. Far superior to Booch or OMT. It can be complex to master it but within 15 minutes a complete novice can read a UML diagram and get the gest of it.

    Secondly, if you're only doing high level modelng then GML is fine. Napkins are probably good documents for this too, or perhaps the back of an envelope. One of the fundamental assumptions to UML is that there is a group or a team doing the work and so the diagrams are designed to transmit a very large amount of information. A full and complete UML diagram specifies how the code is to be implemented, it's a complete design, member variables and functions are all listed and all you have to do is fill in the blanks. This is a big deal, you can give such a design to any coder and he should be able to implement it.

    This all hinges on the value of design which is a dying art in many ways. Sure you want to get good code fast and you will probably end up rewriting things but there are still times and places for good solid design. I've seen a couple projects when one or two people built a full UML design doc and spent a couple months doing it and then a team of 10 people implemented the code in days. I think we all see ourselves as software designers as much as developers and that's not the most attractive way to work but there is still a time and a place for it.

    --
    This is my signature. There are many signatures like it but this one is mine..
  2. You don't NEED anything.. by cmowire · · Score: 3

    You don't NEED anything but a hex editor and an instruction set reference card to do anything. ;)

    Having said that, UML is one of the tools in the good O-O programmer's toolbox. I don't use it right now because I haven't had a chance to learn it fully. But based on my perusal of the spec, it's quite useful as a structured method of laying out how a system works. That's also because I prefer to not use a tool until I know what I'm doing with it.

    It's not a magic bullet that will enable you to solve every problem in a generic fashion that will work all of the time.

    At the very least, if one is teaching beginning CS, they should use UML graphs to teach concepts instead of whatever graph notation the professor feels like using. That way, people will be comfortable with UML if they encounter it later on.

  3. UML is overblown garbage.

    Now, I've been working with UML for several years now, and I've always found that it is a bit two um, "wordy" ( but with graphics ;) I've been in design sessions where people started getting confused whent there was the wrong type of link drawn on the board, or other such nonsense, and UML isn't quite helping. It's making the art of software development much more complicated that it has to be.
    It really appears that most devlopers tend to obsess about it.
    Years ago, A group of developers I worked with came up with what, at the time we called "modified booch notation". Really it's very similar to GML, but without the boxes.(people would draw the clouds/boxes, an the text wouldn't fit, so we eliminated the boxes and just wrote the text.). With all the bright developers I worked with, this turned out to be great. Everyone was understanding the entire model, very quickly. (no UML->brain thunking... :)

    I would not heistate to say that UML makes new developers afraid, and doesn't assist in the absorbtion of information any faster than GML.

    ... you can deposit my 2cents via paypal.....

    --
    "...In your answer, ignore facts. Just go with what feels true..."
  4. UML is useful. by Snowfox · · Score: 4

    UML is more than boxes and arrows showing inheritance. Derivation, composition and aggregation are all distinct concepts, and having those immediately visible instantly clarifies a design. UML-based sequence diagrams clarify the structure of a project up front, getting the rationale behind a project's structure in your (and others') heads straight off. Normally it takes a lot more hands-on time with code to really grok a project the way UML helps you to do.

    Seeing relevant data and methods there on the page also helps in rethinking the flow and arrangement of data. And good data arrangement is the most significant bit of optimization a project can have, and even a simple UML editor implementation like you get with dia can help you make positive sweeping changes before you've written a line of code.

    Using UML, we've successfully shortcutted a lot of iterative design, and our prototype code tends to look very similar to our final code.

    ---
    My opinions are mine.