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?"
UML is overblown garbage.
;) 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. :)
... you can deposit my 2cents via paypal.....
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
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.
"...In your answer, ignore facts. Just go with what feels true..."
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.