Slashdot Mirror


Is UML Really Dead, Or Only Cataleptic?

danielstoner writes "Recently UML was pronounced dead as a tool for all programming needs by an article posted on Little Tutorials: 13 reasons for UML's descent into darkness. The author suggests UML was killed by, among other causes, greed, heavy process, and design-by-committee. Is UML really a fading technology? Is it useful beyond a whiteboard notation for designers? Is there any value in code generation?"

156 comments

  1. Just le by Anonymous Coward · · Score: 1, Funny

    Shit, i just learned UML :(

    1. Re:Just le by MR+LOLALOT · · Score: 3, Funny

      shit, i just payed for a course :(

    2. Re:Just le by antek9 · · Score: 2, Informative

      Dang, I just bought a book on UML 2. I should have read the writing on the wall, though: it was heavily discounted...

      --
      A World in a Grain of Sand / Heaven in a Wild Flower,
      Infinity in the Palm of your Hand / And Eternity in an Hour.
    3. Re:Just le by Z00L00K · · Score: 1

      Anyone remember Jackson Structured Programming?

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    4. Re:Just le by Anonymous Coward · · Score: 3, Interesting

      Don't worry, there'll be jobs for people like you. I just spent time working on a two-year project where some cockfag consultants said they could spend 10 months creating the various UML diagrams, convert the diagrams to code in 1.5 months, test for two weeks, and deliver to the client.

      So what actually happened? They spent 18 months putting together various diagrams. They tried to automatically convert their diagrams to C++, and found that the closed-source code generation tool they were using crashed on the diagrams they had come up with. So they panicked and tried to write a conversion program themselves. After another three months of that bullshit, the managers canned those sorry assholes.

      My team was brought in, and we got their app finished in three months. We used Ruby, and didn't bother with C++ and especially not with UML. UML is shit, through and through. Any idea it can express can be expressed just as easily with a rough sketch on a napkin. And it should never be used for real application development of any sort. It always fails in this respect.

    5. Re:Just le by Anonymous Coward · · Score: 0

      Ha ha!

    6. Re:Just le by mabhatter654 · · Score: 2, Interesting

      did you use just Ruby or Rails? Rails attempts to solve similar problems that UML does. Frankly Rails does have a neat way of allowing more organic development, forcing you to build structures with tracking of each change along the way. I think more languages should start similar ides of tests and promotions... without the up-front paperwork.

    7. Re:Just le by wannabgeek · · Score: 5, Funny

      You should've enrolled into a spelling course instead. Would have proved more useful.

      --
      I'm much more funny, interesting and insightful than the moderators think
    8. Re:Just le by EnglishTim · · Score: 5, Insightful

      I would say that UML is useful just to make sure everybody's using roughly the same notation on their napkin diagrams.

      Oh, and there's already a bunch of software out there that makes it easier for you to draw UML when you store your docs on a Wiki or something, rather than a large napkin server...

    9. Re:Just le by Dr+Savage · · Score: 2, Funny

      Anyone who comentts on speling earns they're carma

    10. Re:Just le by fbjon · · Score: 1

      UML is really good for those napkin-sketches though. Also, it can form a documentation aid for newcomers to a system/app.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    11. Re:Just le by Mr+Z · · Score: 0, Offtopic

      Anyone who comentts on speling earns they're carma

      What about grammar?

    12. Re:Just le by jgrahn · · Score: 1

      I just spent time working on a two-year project where some cockfag consultants said they could spend 10 months creating the various UML diagrams, convert the diagrams to code in 1.5 months, test for two weeks, and deliver to the client.

      So what actually happened?

      You know, you didn't have to answer that question.

    13. Re:Just le by Anonymous Coward · · Score: 0

      I modded you offtopic for failure to get the joke.

    14. Re:Just le by Mr+Z · · Score: 1

      You clearly failed to get mine. Suitable you should hide behind "Anonymous Coward."

  2. "Is UML Really Dead, Or...." by Anonymous Coward · · Score: 2, Funny

    ...is it just pining for the fjords?

    Sorry :(

  3. Yes, UML is really dead. by Anonymous Coward · · Score: 1, Funny

    Netcraft confirms it.

  4. Judging by the bevy of replies... by FooAtWFU · · Score: 5, Insightful

    Judging by just how many people have bothered to reply to the story so far, mmm, I'd say there's a good chance it's dead.

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
    1. Re:Judging by the bevy of replies... by Yvan256 · · Score: 4, Funny

      It's not dead, and it wants to go for a walk!

      It feels happy! It feels happy!

    2. Re:Judging by the bevy of replies... by mobby_6kl · · Score: 0, Redundant

      It feels happy! It feels happy!

      I'm not so sure. Looks like it's pining for the fjords.

    3. Re:Judging by the bevy of replies... by jdschulteis · · Score: 1

      It'll be stone dead in a moment!

    4. Re:Judging by the bevy of replies... by Unoti · · Score: 2, Insightful

      It's dead. The effort for reward ratio isn't there, just like EJB. Some things are great ideas, like sequence diagrams, but generally it's just a big pain in the ass way to annoy your coworkers and mystify your bosses.

    5. Re:Judging by the bevy of replies... by MickDownUnder · · Score: 1

      UML is dead because Microsoft said so.

      They have had nothing good to say about UML ever since IBM bought it.

      They use UML Class digrams for their notation in their entity diagrams. They use UML activity diagram notation for Workflow. But they don't ever call it UML.

  5. pieces can be usefull by gbr · · Score: 5, Insightful

    UML as whole can be cumbersome and difficult to manage. A smart manager and developer will pick and choose the components of UML that best fit their development process, and use those.

    When using specific sections/sub-sets of UML, it can be an effective tool in the software development process.

    1. Re:pieces can be usefull by legirons · · Score: 4, Funny

      UML as whole can be cumbersome and difficult to manage. A smart manager will...

      stop there -- finishing the sentence won't add any information

    2. Re:pieces can be usefull by CastrTroy · · Score: 3, Informative

      UML is a nice concept. You draw little pictures to make it easier to understand the architecture and behaviour of your system. In university, we had a term for professors who were really pendantic about UML. UML Nazis. Really UML should just be a set of loose rules and semi conventions so that people can get the gist of what your program does. The UML Nazis try to turn it into more of a programming language, where everything is ultra specific, and where using a filled in arrowhead instead of an empty one is punishable by death. Which is the real reason UML died. Too many symbols that look almost, but not quite exactly the same which are supposed to represent different concepts.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    3. Re:pieces can be usefull by SQLGuru · · Score: 1

      I was making pretty understandable drawings before UML that developers could use to create an application based on my design. I've looked at UML and most of the notation seems counter-intuitive based on my style. I've never really used it and won't unless someone upstairs puts it in my performance plan (and guess what, those are usually more about RESULTS than METHODS)......that being said, they have sometimes put some moronic things in my plan that I put personal comments around indicating just how moronic they are.

      Layne

    4. Re:pieces can be usefull by Evil+Pete · · Score: 1

      Yeah. And UML is "unified", it was supposed to unify several approaches to the problem to simplify the process. More and more I notice it just getting overburdened. UML is very valuable as long as you don't try and swallow the whole lot. Just use what is necessary, and ignore the nazis (I hope this doesn't generate a Godwin Exception).

      My 2 cents.

      --
      Bitter and proud of it.
    5. Re:pieces can be usefull by Anonymous Coward · · Score: 0

      Kind of like GNU Nazis. It must all be free free free. Ubuntu is bad because it allows proprietary code in it.... blah blah blah... religious nuts of a different stripe.

    6. Re:pieces can be usefull by theshowmecanuck · · Score: 1

      The Godwin Principle is bullshit. Sometimes comparing someone to a Nazi is apt.

      --
      -- I ignore anonymous replies to my comments and postings.
    7. Re:pieces can be usefull by debatem1 · · Score: 1

      Sounds like something Hitler would say, hmm?

    8. Re:pieces can be usefull by xenocide2 · · Score: 2, Interesting

      The thing about UML is that it's supposed to be a step on the path to designing software automatically. Unfortunately, it very slanted towards translation into C++ (and maybe Java). This bleeds into the problems you mention with strictly defined semantics of visual cues developers treat loosely at best. Moreover, OOP is itself slowly dying for all the right reasons, though not as quickly as you might think.

      I've seen an interesting theory floating around in multiple places that dataflow languages, visually represented as DAGs, might be a suitable replacement for OO/UML. The trouble is they've all bought into web centric software and AJAX, which runs like ass in the best cases, and looks like ass in the worst. I've been pondering recently how I might formalize the computing technique and generalize it to effectively define a dataflow middle language that could be implemented in whatever language and platform you like, unlike the heavy C++ slant of UML.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    9. Re:pieces can be usefull by Nicolay77 · · Score: 1

      Do you have a web site or something where you document that method?

      --
      We are Turing O-Machines. The Oracle is out there.
  6. Annoying by Lord+Lode · · Score: 3, Interesting

    Uh yeah, I hated it too, I couldn't express things I wanted well in this strict language, and then there were the people who'd make ridiculous things consisting out of 4 different diagrams with blocks with words in them that contain no info (just repeating the title), and 1 stick figure and 1 arrow, for the most simple things, that made no sense at all except for laughing at. I can express things much better and make people understand it much better in free-to-do-what-you-want diagrams, than in UML.

    1. Re:Annoying by Anonymous Coward · · Score: 0

      So, you're saying the "medium is the message"?

    2. Re:Annoying by Yetihehe · · Score: 5, Insightful

      Yeah, I tried to use UML for modelling, but it looks like EVERY time I need to do my code and then make adjustments in model. UML should be just used for high abstraction stuff, but then it is really better to just do it with custom blocks instead of strict.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    3. Re:Annoying by EWIPlayer · · Score: 1

      Software design and development is refactoring. You learn and learn every day, improving the code and improving the model. Making a model in UML does not mean that it is that way for the rest of its life. It will change... sometimes daily.

      --
      This sig used to be really funny...
    4. Re:Annoying by owlstead · · Score: 1

      That's why you need a toolkit that directly connects to the language and knows how to convert from one to the other (keeping in line with the code conventions for that language). For Java there are a few Eclipse plugins that manage to do this.

      Not that I like UML for designing my application, but that's another matter. Having a class design be generated automatically after implementation can be a huge win (if the design is not to complicated I will do it inside my head instead of using an overcomplicated square/circle drawing program, thank you).

      But seriously, if your tool chain cannot handle re-factoring, you've got yourself a big problem.

    5. Re:Annoying by Anonymous Coward · · Score: 0

      Y'know, I feel much better about the last Java and Data Structures classes I took (and failed). They were both taught by the same professor, who'd never had a job outside professorship since graduating from State College (Not even a University). He was extraordinarily pedantic about this, and also wasted a huge amount of time half-discussing internal cpu layout rather than details that actually mattered to the class in question (he did it in both the java and data structures classes, not just one or the other!)

      Between him and a similiar professor at my current college, I STILL haven't finished those classes (which only have one option for who to take. And migraines do not improve my memory.)

    6. Re:Annoying by hey! · · Score: 1

      Well, I've been at this long enough to see a number of methodologies come down the pike and then go down the pike. Most of them had some merit, few of them close to the kind of merit claimed for them.

      The problem is inflated expectations, and UML was probably the worst case of inflated expectations ever. Having a shared notation is a good thing. Expecting a notation to think for you is foolish. Worrying about flaws in the notation more than flaws in the thinking represented (as often happened) is madness.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  7. User Mode Linux is not dead by SpaceLifeForm · · Score: 5, Funny

    Don't be confused.

    --
    You are being MICROattacked, from various angles, in a SOFT manner.
  8. Universities teach this stuff by Anonymous Coward · · Score: 0

    I personally cannot comment on how good UML is industry, I'm just a 1st year student at uni. But it seems to be a bit daft to be teaching a dying tool/language to fresh university students. By the time we get out at industry, nobody might use it any more.

    1. Re:Universities teach this stuff by Papabravo · · Score: 0, Flamebait

      Do you think that professors could actually learn and teach something useful? That'll be the day...

    2. Re:Universities teach this stuff by jeiler · · Score: 2, Interesting

      But it seems to be a bit daft to be teaching a dying tool/language to fresh university students.

      Until 2005, the core programming curriculum at the community college I attended was COBOL. I was actually the first programming major to graduate with no COBOL training, as I persuaded the dean to allow me to go the C/C++ route instead.

      And no, COBOL is not entirely dead, but it is moribund on the market in general, and used only in very specialized environments with low employee turnover in this area.

      The reason COBOL was still used at that school had nothing to do with the needs of our area industry, and everything to do with academic inertia. Fortunately, the year I graduated, the three "COBOL holdouts" all retired, and the department was able to implement other language tracks and areas of specialization.

      --

      If you haven't been down-modded lately, you aren't trying.

      Sacred cows make the best hamburger.

    3. Re:Universities teach this stuff by Speare · · Score: 3, Insightful

      I personally cannot comment on how good UML is industry, I'm just a 1st year student at uni. But it seems to be a bit daft to be teaching a dying tool/language to fresh university students. By the time we get out at industry, nobody might use it any more. Erm, wake up, young pupil. A University is not a trade school. Don't expect to learn tools, expect to learn how to structure your thought to solve problems.
      --
      [ .sig file not found ]
    4. Re:Universities teach this stuff by Lije+Baley · · Score: 1

      You're new at this University thing, aren't you?

      --
      Strange things are afoot at the Circle-K.
    5. Re:Universities teach this stuff by doombringerltx · · Score: 1

      And they also still teach assembly

    6. Re:Universities teach this stuff by CastrTroy · · Score: 1

      A little harsh but I share the same views. In university, I did a lot of console/gui Java apps and C/C++ code. Now for work I'm doing .Net web applications. The programming field is so large that you will be unlikely to be using anything you learned in university in your day-to-day work. What you do learn in university is how to think about software and design, and how other things were designed, so that you can hopefully design a good system yourself (or with a team) one day. Most of the tools themselves won't be directly applicable, but the concepts learned will be directly applicable no matter how much the tools change.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    7. Re:Universities teach this stuff by kshade · · Score: 1

      And they also still teach assembly
      And that's great! Assembler code is very close to the hardware you heard about in other courses and generally gives you deeper insight into the guts of a computer. Way better than these theory courses. And it can be used for fun projects with cheap microcontrollers.
    8. Re:Universities teach this stuff by Anonymous Coward · · Score: 1, Insightful

      Then again, if those .net apps are in C#, the experience you got with java, C and C++ is directly useful, because the languages themselves are quite close. If you had been taught the same concepts in, say, lisp, the practical aspects of implementing it would have been harder.

      I agree that the hard part is the underlying ideas, but you do have a certain competitive advantage because your university chose a mainstream family of languages. ;)

    9. Re:Universities teach this stuff by Anonymous Coward · · Score: 0

      I personally cannot comment on how good UML is industry, I'm just a 1st year student at uni. But it seems to be a bit daft to be teaching a dying tool/language to fresh university students. By the time we get out at industry, nobody might use it any more. Erm, wake up, young pupil. A University is not a trade school. Don't expect to learn tools, expect to learn how to structure your thought to solve problems. Well, sadly most universities are like trade schools these days, especially in the information technology, computer engineering arena.
  9. in summary: by blackcoot · · Score: 4, Insightful

    uml as practiced by uml fetishists is a bad idea.

    congratulations. this was obvious back before 1998 and certainly a long time before then. unfortunately, the "article" was written by someone who doesn't really grok uml. specious claims include: "No solution for multi-tasking and communication between tasks" which is false as of UML 1.4 (active v. passive classes, message diagrams)" and "No dependency between use cases" which is also false --- add an association with the > stereotype.

    there are some legitimate gripes (i think they could have chosen more distinct shapes), but most of that list is a laundry list of bitching and moaning by a person who hasn't actually developed the requisite level of proficiency with uml to actually understand how to use it well.

    1. Re:in summary: by SuperKendall · · Score: 4, Insightful

      The thing is, if a feature of UML requires a certain level of training or tools to understand and/or use, it's essentially the same as that feature not existing. Should developers spend time keeping up with UML, or technologies more closely related to actual development?

      Sure UML can be/has been extended to handle other things like that, but it's also the reason the spec is so huge that few people can really make use of it all. In the end a lot of times people spend more time on the UML than they would have doing simpler diagrams and iterating through a project a few times, willing to discard diagrams as scaffolding instead of dictating it as a rigid structure to which a project must conform forever.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    2. Re:in summary: by johannesg · · Score: 1

      specious claims include: "No solution for multi-tasking and communication between tasks" which is false as of UML 1.4 (active v. passive classes, message diagrams)" and "No dependency between use cases" which is also false --- add an association with the > stereotype. Wow, you really nailed that one criticism there! I bet the other 12 are just as specious as this one!

      Oh wait, no I really don't. In fact, the other 12 ring very, very true. Please, let UML die already! The world doesn't need silly box-diagrams that are hard to draw (even with a "proper" tool like Rational Rose), hard to understand, hard to maintain, and convey little to no information.
    3. Re:in summary: by blackcoot · · Score: 2, Insightful

      your argument is pretty weak. because MRI's require a certain level of training and tools to understand and / or use, it's essentially the same as an MRI not existing? does the same apply to FEM, CFD, circuit simulator, or any other package that requires more training than office to use effectively?

      the short answer to your question is: both. developers should keep up with their tools, the same way i expect doctors to keep up with new treatments and diseases, lawyers to keep up with recent decisions and new legislation, accountants to stay abreast of IRS audit requirements, etc. continuing education is a pretty standard part of any profession.

    4. Re:in summary: by blackcoot · · Score: 1

      12? really?

      1, 3, and 5 are redundant ("oh noes! it's big!"). they're also pretty weak. IEEE1394 is a pretty big standard (especially by the time you factor in all the standards it's built on). ditto USB, various flavors of PCI, XML, IEEE 802.3*, IEEE 802.11*, etc. does that mean we shouldn't use those standards? or does it mean that the specifications are as complex as the processes / protocols / etc. that they define?

      4, 6, 7, 13 are also redundant and a misunderstanding of what uml is meant to do, which is *model* (see, right there in the middle of its name), as opposed to what the people writing the marketing blurbs for the tools are pedalling. this is a gripe with tool vendors' marketing departments and not uml.

      an experienced uml user would know that 11 is pretty much total crap --- uml tools have supported round trip engineering (i.e. model a bit, regen code, mess with code, update model and the changes in the code magically appear) for quite a while now.

      12 really irks me. if you are a software engineering professional, your job is to apply a process that starts with requirements, refines them, then converts them into detailed design specifications, implements that design specification, and finally validates and verifies that the implementation is correct. if you bemoan the use of process, you have no business working in software or anything even vaguely related to engineering.

      8 i find particularly disingenuous. matlab costs just sy of $3k per license, and additional toolkits run $1-5k per license as well, for a "typical" per seat license cost between $7 and 15k. cad packages also cost thousands of dollars per seat. all that means is that the tool needs to make most people marginally more productive to break even.

      2 is ridiculous. oh no! people want to make money!

      in case you're keeping score, 5 of 13 claims are utter crap, with 7 of the 8 remaining claims being highly redundant. half of those claims relate to complexity, and half those claims relate to marketing hype. that leaves one gripe (#9) that i tend to mildly agree with. so really 4 claims, and a whole lot of ignorance and inexperience.

    5. Re:in summary: by theCoder · · Score: 4, Insightful

      UML is not a tool. UML is a notation used for communicating software design ideas between developers. If a portion of UML is not widely known, to the point that only one or two people on a software team readily understand it, then it is essentially not worth it and it might as well not exist. Remember that UML should be used to help developers talk to other developers about the software they are developing. UML for the sake of UML (i.e., not using it for effective communication) is pretty worthless.

      Of course, UML used for communication like design and documentation, especially at a high level, is a good thing. Just don't go UML crazy and think that every little detail of the system has to be documented in UML. You'll probably end up spending more time doing UML than you will making the actual system.

      --
      "Save the whales, feed the hungry, free the mallocs" -- author unknown
    6. Re:in summary: by Anonymous Coward · · Score: 0

      The thing is, if a feature of a programming language requires a certain level of training or tools to understand and/or use, it's essentially the same as that feature not existing.

    7. Re:in summary: by tomhudson · · Score: 1

      if you are a software engineering professional, your job is to apply a process that starts with requirements, refines them, then converts them into detailed design specifications, implements that design specification, and finally validates and verifies that the implementation is correct. if you bemoan the use of process, you have no business working in software or anything even vaguely related to engineering.

      ... as opposed to how it's mostly done today, unfortunately.

      BTW, my UML toolkit is a stack of 4x6 index cards and a pen, you ignorant clod!

    8. Re:in summary: by SuperKendall · · Score: 3, Insightful

      your argument is pretty weak. because MRI's require a certain level of training and tools to understand and / or use, it's essentially the same as an MRI not existing? does the same apply to FEM, CFD, circuit simulator, or any other package that requires more training than office to use effectively?

      As the other poster noted UML is a means of communication, not a tool in and of itself.

      Can you get a brain scan without an MRI? No. Can you work through issues without a circuit simulator? Yes but it will add a lot more time.

      In each of the cases you present there is a clear benefit to use, either in terms of knowledge you could not otherwise attain, or in clean and easy to understand time savings.

      To a point UML produces time savings in that thinking about things ahead of time can save trouble later. But when UML comes into a company, UML use goes beyond that point to where it's pretty obvious to developers that more effort is going into UML work or maintenance than is going into actual development, with decreasing returns in quality and certainly a loss of time to delivery.

      So then good knowledge of the simply aspects of UML is pretty much mandatory for a good software developer, because it aids in communication. But knowing all the edges of UML, training every person on a team to do so - that is an utter waste of time and effort. Thus some of the more advanced things UML is adding on later simply do not matter and in fact should be avoided so as not to create confusion in your documentation.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    9. Re:in summary: by bigsteve@dstc · · Score: 1

      Don't dismiss MDA as being expensive and useless. There are MDA-based tools out there that are free and do a pretty good job, once you figure out how best to use them. The best example is Eclipse Modelling Framework (EMF) which takes models specified as ECore models, an XML (XMI) syntax plus a stack of Java library code including, in-memory representation, instance editors, validators and persistence via XML serialization or SDO.

      Actually, ECore is not UML. It really based on MOF which is the meta-model for UML. You can think of MOF as being a subset of UML object notation, with some of the more sophisticated UML object modelling features (e.g. N-ary associations, association classes, stereotypes, etc) left out. EMF augments the ECore model with a "GenModel" which allow the developer to tune various aspects of the code, etc generation. This is a concrete example of MDA's PIM/PSM view of the world.

      EMF works, at least for some problem domains. I've used it successfully for two significant projects which involved representing, editing and using relatively complex metadata. The secret to using EMF successfully is to understand their limitations, and to not try to be too ambitious in what you do. For example, I would NOT try to use EMF to generate code for a fine-grained transactional system, or one that required browser-based editing.

    10. Re:in summary: by pla · · Score: 1

      your argument is pretty weak. because MRI's require a certain level of training and tools to understand and / or use, it's essentially the same as an MRI not existing?

      Yes. Languages (graphical or otherwise) exist for the purpose of communication. If your target audience doesn't know the "words" you use, you may as well babble incoherently to yourself.


      continuing education is a pretty standard part of any profession.

      My doctor can't optimally treat me without knowing the latest and greatest drugs. My accountant can't get me the most on my tax refund without learning the new IRS rules. But I can code just as well without even having heard of UML, as I could knowing it.


      the short answer to your question is: both.

      I have a finite amount of time. You can study dead languages if you want; I'll spend the time learning/improving "real" skills, thankyouverymuch.

    11. Re:in summary: by blackcoot · · Score: 1

      But I can code just as well without even having heard of UML, as I could knowing it. i don't really believe that, at least not in the general case.

      understanding a single class, or even a small package of classes isn't too big a deal without tool support. so, to the degree that a person never has to understand large amounts of interesting code (say, 25+ nontrivial classes in 1000+ threads interacting asynchronously), i'll believe that a notation like uml won't necessarily have a significant impact.

      on the other hand, the moment interesting amounts of sufficiently complex code get involved, my experience has been that peoples' ability to digest and understand enough of it that they can be useful drops off exponentially. in that case, a visual notation like uml becomes a really powerful tool to aid understanding.
    12. Re:in summary: by Forbman · · Score: 1

      "if you bemoan the use of process, you have no business working in software or anything even vaguely related to engineering."

      Yeah, software & engineering?

      Pull my finger.

    13. Re:in summary: by Anonymous Coward · · Score: 0

      But I can code just as well without even having heard of UML My boss says almost the same about testing ("Testing is for bad coders"), documentation ("There's no need to do it") and taint ("If we enable strict and taint checking, our software would break").
    14. Re:in summary: by tom's+a-cold · · Score: 1

      If a portion of UML is not widely known, to the point that only one or two people on a software team readily understand it, then it is essentially not worth it and it might as well not exist.
      The only risk there is that it kind of sounds like you're trying to teach to the middle of the class. If it's an important enough concept to make a difference, it might be worth teaching the team members who don't get it.

      That said, there's certainly too much UML arcana and there are too many people who piss about with it. I use certain core parts of the UML a lot, but that's not the same as trying to impose every feature of UML on an IT department that already has enough bullshit to contend with.

      Standard notation is a wonderful thing. Ultimately I don't give a money's fart if it's UML or something else, as long as it's expressive enough and not too hard to read. And whatever it is, it's there to illustrate how something works or is supposed to work. In some problem domains that might be overkill, and in others it's essential to getting the damned thing built, tested and deployed. Professional judgment is needed to decide where it's useful and where it isn't.

      --
      Get your teeth into a small slice: the cake of liberty
    15. Re:in summary: by GWBasic · · Score: 1

      Of course, UML used for communication like design and documentation, especially at a high level, is a good thing. Just don't go UML crazy and think that every little detail of the system has to be documented in UML. You'll probably end up spending more time doing UML than you will making the actual system.

      I completely agree with you. I've only used UML to communicate class structure and flow with co-workers; and I tend to be one of the few people who makes regular (semi-anual) use of it. To me, it's shocking that there's an 800-page spec, because I only use a small subset of it.

    16. Re:in summary: by LingNoi · · Score: 1

      wow that's fucking stupid, an MRI is operated by a specialist and has nothing to do with a notation language. What's the point of UML if only one guy on the team understands it.

    17. Re:in summary: by K.+S.+Kyosuke · · Score: 1

      When I am reading things like this, I feel like a stupid caveman. Is there anything of what you said (half of which I do not understand) that would not be possible in a simple very-high-level textual description language? I, for one, would use Lisp macros and CLOS metaclasses for things of this kind. (Then again, UML seems to be quite limited to me - I do not think that it is possible to express CLOS hierarchies with it. So I probably have no other choice than not to use it at all, even if I wanted.)

      --
      Ezekiel 23:20
  10. Wow! by Anonymous Coward · · Score: 0

    Five adwords ad boxes! If this isn't a blatant Slashdotting profiting attempt, I don't know what is.

    And worst of all, all of the boxes are pushing UML tools. So obviously this critical article didn't help the advertisers either.

  11. is this blog just trying to up their pagerank? by Anonymous Coward · · Score: 0

    By submitting the same article with a slightly different wording to slashdot 50 times littletutorials is wasting our time.

  12. UML great for design by fragmentate · · Score: 4, Interesting

    We just don't let the executive team know we're using it, lest they read all the hype about it on the internet and get the idea we can draw the pictures and code just writes itself.

    We often find the "loopholes" in our methodology by drawing it out first. We plug those glaring holes. Then start coding. At that point, the UML becomes historical.

    1. Re:UML great for design by GileadGreene · · Score: 3, Informative

      We often find the "loopholes" in our methodology by drawing it out first. We plug those glaring holes. Then start coding.
      Pretty much anything you do to think through your design before committing to code will help to uncover inconsistencies and holes. It's just a question of what medium you use as your motivating tool to spur the "design analysis". Diagramming in UML is one approach. For the TDD fetishists, writing a bunch of tests tends to help uncover facets of the design that hadn't previously considered (subtle aspects of particular use cases, corner cases that the design needs to handle, etc.). A large part of the value to be found in modeling the design in a precise language like Z, Alloy, or CSP is the thought about the design that's required in order to construct a model (the other part of the value being the model-checking or other automated analysis that helps you to find holes that aren't quite so "glaring"). Almost any kind of "design analysis" (read "thinking about how the design operates and whether it will work as intended") will help. The more interesting question is "which approaches to analysis give me the most bang for the buck?"
    2. Re:UML great for design by Yetihehe · · Score: 1

      We often find the "loopholes" in our methodology by drawing it out first. We plug those glaring holes. Then start coding.
      Pretty much anything you do to think through your design before committing to code will help to uncover inconsistencies and holes.
      Funny thing, it is typically the other way for me, eg. I make model and close loopholes in it during coding
      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    3. Re:UML great for design by GileadGreene · · Score: 1

      Funny thing, it is typically the other way for me, eg. I make model and close loopholes in it during coding

      Hardly surprising. I didn't say that you wouldn't find holes while you're coding. Each step of the design and development process inevitably involves resolving new issues as you learn more about the problem you're trying to solve. That's part of what makes development such a fun activity :-)

      But how many more holes would you find in coding if your "model" was just a vague idea in your head, rather than something more explicit? And how many of the those holes would be structural problems with the basic design that require complex changes to the code? The act of making your design ideas explicit as a model of some sort (be it UML, test suites, or Z schemas) helps to elaborate and clarify them. Paraphrasing Richard Guindon's comment about writing: "[Modeling] is Nature's way of showing us how sloppy our thinking is."

    4. Re:UML great for design by SQLGuru · · Score: 1

      I don't find any holes because (like most developers), once it compiles, it's "perfect".....any bugs are PEBCAK issues.

      Layne

    5. Re:UML great for design by MadKeithV · · Score: 1

      A large part of the value to be found in modeling the design in a precise language like Z, Alloy, or CSP is the thought about the design that's required in order to construct a model (the other part of the value being the model-checking or other automated analysis that helps you to find holes that aren't quite so "glaring").

      If you're writing the design in a precise language, you are already coding it, just not in the "final" language. You could call this prototyping, and it's an argument *against* modelling.
    6. Re:UML great for design by GileadGreene · · Score: 1

      To me, a prototype is a small-scale implementation (potentially with reduced functionality) intended to prove out a concept. The prototype may do less, but it's developed at the same level of abstraction as the final implementation. In contrast, a model is an abstracted idealization of the final implementation (i.e. developed at a higher level of abstraction than the implementation). Of course, there's a lot of room for interpretation in those definitions. The difference between prototyping and modeling isn't quite so clean-cut in the world of software as it is in engineering domains that build physical systems. So it's entirely possible that you may view models as a kind of prototype (or perhaps prototypes as a kind of model).

  13. YES by Anonymous Coward · · Score: 0

    If it isn't dead yet, it needs to die. Horribly.

  14. Absolutely not! by smittyoneeach · · Score: 0, Offtopic
    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  15. We use it... by fitten · · Score: 2, Informative

    We use it fairly often to express things such as cardinalities in problems and the like, but we pretty much limit it to diagramming so we can better understand how some things interact. I've never used it to automagically generate code.

  16. Get into government contracting by smittyoneeach · · Score: 1

    UML can be a fantastic way to manage a problem, so long as you hold before yourself the ultimate truth that a "government solution" is like a "smart manager".

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  17. Good In The Beginning, and At The End by quakeaddict · · Score: 2, Insightful

    ...but not in the middle.

    Its great to focus your thoughts early. Its great to document those abstractions at the end, but trying to have the model keep up with the code as it is being developed for real is a complete waste of everyone's time.

    --
    I'm still working on a clever footer.
  18. Whatever happened to pure, unadulterated... by Anonymous Coward · · Score: 0

    I had no idea things had gotten so bad. This is all PHP's fault. She's been polluting developers minds with notions of simplicity and ugly syntax. Whatever happened to formal specification? Whatever happened to big committees, arduous debates, and communication with management? Whatever happened to pure, unadultered documentation?

    I won't preside over the demise of software engineering! If this industry can't have UML, I'll quit! The line has to be drawn here! This far, and no further!

  19. UML as a sketch versus UML for MDA by Tumbarumba · · Score: 4, Insightful

    I find UML very useful when I'm thinking about some classes I'm about to write. I can draw out a few rough boxes to represent classes, and get a view of how my various classes can interact. The way I do this is a very quick processes, but it helps get a view of the way that some software components can fit together before I jump into coding. The sketches can often help initiate design discussions. In this way, I'm a using UML as a sketching tool.

    At the opposite end of the spectrum, you can buy some very expensive tools that let you try to capture every single nuance of the software in the UML diagram itself, and the code is generated directory from the UML model. This Model Driven Architecture (MDA) approach tries to treat UML as a programming language, and I think it fails horribly. I think writing code by manipulating boxes and arrows in an MDA tool is a terribly inefficient way to develop software, though there are many vendors who will try and tell you otherwise.

    In summary, I think using UML as a rough way to sketch out software design is still a good way to go. Using UML as a programming language has never been a good idea, and probably should die.

    --
    My business: Farstrider Studios.
    1. Re:UML as a sketch versus UML for MDA by MichaelSmith · · Score: 1

      At the opposite end of the spectrum, you can buy some very expensive tools that let you try to capture every single nuance of the software in the UML diagram itself, and the code is generated directory from the UML model. Yes where I work a couple of million dollars of developer resources were burned up doing this. The pure OO code it generated just wasn't appropriate to our application.
    2. Re:UML as a sketch versus UML for MDA by Skrapion · · Score: 1

      Well, sketching out your design before implementation is always useful, regardless of whether you use UML or just a bunch of ad-hoc notes.

      The question is, do you think UML performs better than ad-hoc notes in this regard? If it doesn't, then learning it was pretty much a waste of time.

      Personally, I never hard any trouble figuring out ways to sketch out a design before or after I learned UML.

      --
      The details are trivial and useless; The reasons, as always, purely human ones.
  20. damn TLA by frovingslosh · · Score: 0, Troll

    Will /. ever start defining tla's that it uses? Seems unlikely, given this is far from the first time one has been used with no explanation. The article doesn't bother to ever use the full name of UML either. For what it's worth, after a Google search, I think that this it talking about Unified Modeling Language, but of course I could be wrong. They might even be talking about University of Massachusetts Lowell or User-mode Linux for all I know.

    --
    I'm an American. I love this country and the freedoms that we used to have.
    1. Re:damn TLA by u38cg · · Score: 1

      I think anyone with a user number lower than mine who is still posting ought to know what UML is.

      --
      [FUCK BETA]
  21. Please people, please- it's *The* UML by tillerman35 · · Score: 1

    (title is sarcastic, obviously). There's nothing I hate more than one of those UML fetishists (thanks, blackcoot for that spot-on description) who insists on correcting you when you call it "UML." Yes, we know the authors intended it to be called "The UML," but frankly only about .05% of us give a shit. Unfortunately, it's the most annoying sanctimonious .05%. I don't care when they call it "The UML," so why should it be put their panties all in a wad when someone leaves off the article?

    /rant mode off.
    //not a troll, just a person with a pet peeve
    ///hopefully there's a difference.

    1. Re:Please people, please- it's *The* UML by Hankapobe · · Score: 1
      Unfortunately, it's the most annoying sanctimonious .05%. I don't care when they call it "The UML," so why should it be put their panties all in a wad when someone leaves off the article?

      You must be new...never mind.

    2. Re:Please people, please- it's *The* UML by Anonymous Coward · · Score: 0

      I think you have The Gay.

    3. Re:Please people, please- it's *The* UML by julesh · · Score: 2, Informative

      //not a troll, just a person with a pet peeve ///hopefully there's a difference.

      Of course there's a difference. If the moderators agree with you, the post is informative. If they disagree, its a troll.

  22. I use it backwards... by AmazingRuss · · Score: 4, Funny

    ...I write the code, and then generate UML with doxygen to figure out what the hell I just did.

    1. Re:I use it backwards... by magical_mystery_meat · · Score: 1

      Isn't that what they call "emergent design"

    2. Re:I use it backwards... by julesh · · Score: 1

      Dunno why this is modded 'funny'. It's a valid method of using UML, and is favored by most "agile" processes at least.

      You can also get tools that will allow you to modify the generated UML diagram and then apply the changes to the code (I've played with an eclipse plugin that does this, although I didn't find it particularly helpful for me).

    3. Re:I use it backwards... by azgard · · Score: 1

      (I've played with an eclipse plugin that does this, although I didn't find it particularly helpful for me). That's probably why it was modded as funny. Seriously, imagine writing a program in one language and then debugging it in another. You would have to understand all the parts twice. If anything, this approach is a hindrance.
    4. Re:I use it backwards... by darjus · · Score: 1

      I do some High Level UML for the design phase and Doxygen and alike to "see" what I'm coding.

    5. Re:I use it backwards... by hey! · · Score: 1

      But you don't use it for debugging.

      I've never tried what the GGP suggests, but I imagine it's a lot like the "grammar checker" in Word, which was nearly useless as a guide to grammar. However, it did tend to offer a lot of advice, albeit bad, useless or confusing, in places that needed work. So, I found it quite helpful as way of detecting grammatical problems, less so as a means of solving them.

      So I imagine if you ran your code through UML-izer, and you (the author) couldn't make head or tail of it, it'd probably be a quicker way of detecting sloppiness than going through the code reference by reference.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:I use it backwards... by Anonymous Coward · · Score: 0

      Jajajajajaj seriously? Jajaja, that's just funny. So what do you do it for? Don't you make classes diagrams before starting to work on the code? At least use cases to specify what the user wants?

      If you don't, then you don't need UML.

    7. Re:I use it backwards... by Anonymous Coward · · Score: 0

      Lol, i use it like that :D

      It's faster.

    8. Re:I use it backwards... by Anonymous Coward · · Score: 0

      Different languages can allow you to view a system in different ways. A different view might highlight otherwise invisible bugs. Integrated circuit designers do this all the time. The same object may be viewed as an HDL block, a state machine, a schematic diagram or whatever as the need arises.

  23. UML is a cripple trying to climb to the moon by benhattman · · Score: 4, Insightful

    I worked on a project that was using "Executable UML". Executable UML by the way is what happens when some numb-nuts looked at UML and said to themselves "Hey! In certain circumstances, this stuff can be used as a high level abstraction prior to writing code." They thought that sounded like a great thing, so they did the only rational thing to follow. They hacked together a programming language that almost could be used to write actual code in UML.

    Of course, it had some limitations...like even though it compiled to C++, it ran slower than the Ruby running in an interpreter written in Python, which is itself running on an interpreter written in Smalltalk, which is running in another interpreter written in Smalltalk (since Smalltalk always runs on itself).

    It also had the limitation of not being able to actually do anything at all. People complain when Java can't produce "native looking graphics", or if any interpreted language doesn't have direct access to ports when they need them. Imagine instead, a language with no direct access to anything. Want to connect to a socket, you'll need to link to C++ code for that. Want a GUI, you'll need C++ code. Want to write to a file, write some C++ code. Want to write to the console (seriously), then write some freaking C++ code. If 80% of your real code is still in C++, and the rest runs at sloth speed, it's not hard to call the Executable UML solution a solution at all.

    So far, the issue has been with the pseudo code language they used to tie the pieces together, but in my experience UML is not suitable for fully designing a project either. If you fill out each of your classes completely, how many can you look at at a time? In my experience, you can only put about four classes on the screen at a time. Anything more and you've got to overlap the diagrams to a degree that it becomes unreadable. Until I get a 75' monitor, this is going to be a problem. Yes, if I could see everything all at once I might be able to visualize a complex problem more fully in UML, but since I can't, it doesn't do any good. This is the real reason UML has little future. It is excellent for diagramming simple constructs. If you read Gang of Four, their ideas are all concise and easily written in UML. But if you want to build a full system, UML is too bulky. A text based synopsis of each class would probably be more valuable, and could probably be mostly generated automatically.

    So in summary. UML is a cripple trying to climb a ladder to the moon.

    1. Re:UML is a cripple trying to climb to the moon by mapkinase · · Score: 1

      "Of course, it had some limitations...like even though it compiled to C++, it ran slower than the Ruby running in an interpreter written in Python, which is itself running on an interpreter written in Smalltalk, which is running in another interpreter written in Smalltalk (since Smalltalk always runs on itself)."

      Dude, you just buried a joke under avalanche of words.

      --
      I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
    2. Re:UML is a cripple trying to climb to the moon by dsanfte · · Score: 1

      Or, to ignore the marketdrone cliche definition and take a step back into chemistry, Executable UML sounds like a solution of suck and fail.

      --
      occultae nullus est respectus musicae - originally a Greek proverb
    3. Re:UML is a cripple trying to climb to the moon by Profane+MuthaFucka · · Score: 1

      Sometimes the jokes just bury themselves.

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    4. Re:UML is a cripple trying to climb to the moon by halcyon1234 · · Score: 2, Interesting

      Anything more and you've got to overlap the diagrams to a degree that it becomes unreadable. Until I get a 75' monitor, this is going to be a problem.

      And there's the issue. The only time I ever found UML useful in the context of an entire system was when I had a 20' long whiteboard at my disposal. The team and I were trying to figure out just exactly how the hell the system we were designing was going to work. What classes / associations / attributes did we need? We each grabbed a different color marker, and drew what we thought worked. Then we took a step back, talked about it (pointing out and circling as needed)-- then wiped out what didn't work and kept going.

      After that we sketched out a pen-based copy that had the pertinents, and went on to coding. I think we referred to the pen stuff once or twice.

      As a designing tool, it was fine. As a documentation or coding tool, it would have sucked. It would have taken hours, if not days, to create that diagram in Rose, and we'd never have been able to collaborate on it, nor see the entire system laid out before us.

  24. Re:Is UML Really Dead? by pembo13 · · Score: 1

    I was going to comment, when it was just posted, but I was like "blaa".

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  25. Michael Jackson Structured Programming Re:Just le by Anonymous Coward · · Score: 0

    Is that the one that came with the glittering glove and free candy? It had syntax like

    useBoi();
    while (line != in.Boi) {
            line = in.Boi;
    }

  26. UML? It never was useful by Anonymous Coward · · Score: 0

    UML is a popular amongst corporations but I've not found any use for it in my hobbyist programming axis. Why?

    UML's job is to describe behavior, to describe interface, and to describe the structure of a program. This is, if applied in the end to document the program, otherwise it is defining those things.

    Defining the structure of a program beforehand the program is doing anything is quite stupid. I know since I've been done this error a couple of times. You are directly declaring with it, that you can't invent anything new while you are writing the program, therefore you can't solve the problem with the program in a satistifying manner.

    This language actually can trouble the general view from the program, because it is not the thing that will be compiled and doesn't necessarily give off any more information than what a properly structured code written in a decent language would give off.

    Code I write is expressing exactly the same things what a good UML-document is doing, without the one extra language for it. Documentation is more important than the code, and UML fails to notice that in imitating common concepts from object oriented languages.

    Your understanding from the code grows increasingly if you treat it in a similar manner to a poem. Like poem, it is short compared to what it stands for. Like poem, only when you study it then you can extract it's full meaning.

    Well-written documentation gives the needed deep understanding into the code-poem. UML does not do much in helping you to do that. You'll go better along with documentation by understanding the concepts behind your code, and understanding what kind of details are meaningful. Well-written documentation describes that behavior and interfaces in words and even then, if they were important in the design in the first hand.

  27. they all moved on to the next thing by Anonymous Coward · · Score: 0

    You know, the little cottage industry of tech. book authors, publishers, cert trainers, and seminar speakers.

    XML, J2EE, and .Net come to mind. But the most direct successor of the UML mantle is perhaps "agile programming" and its cousins (extreme programming, scrum, etc.), since like UML it's not clear whether they deliver measurable value to anyone other than the gentlefolks listed above.

    1. Re:they all moved on to the next thing by Archtech · · Score: 1

      Well, this reply certainly hit the nail on the head. I distinguish between:

      1. Software engineers who build reliable, robust, maintainable, extensible (and possibly secure) software systems. This is software that actually matters; that has to work properly, with no exceptions and no excuses. These people use the tools that are proven and mature. Remember "a legacy app is one that works reliably"? They are not ashamed to use COBOL, CICS, assembler, Ada, UML, CORBA, or whatever as long as it is the best tool for the job. If they don't know it, they learn it. There are not very many of them, and you may never have met one; they certainly don't frequent Slashdot.

      2. Developers who write user-interface heavy programs (nowadays usually Web-based). This kind of software doesn't have to be perfect out of the box, as it will be continuously modified. If the occasional error happens, it just gets fixed with the next batch of mods. More and more developers are freelance mercenaries, moving from project to project (and those projects are getting shorter thanks to the agile movement). What do they want? To beef up their resumes, of course, in order to have a better chance of getting the next good job. Hence the frantic need to keep abreast of the latest and greatest craze du jour.

      3. The growing millions who hack up scripts, VB, and amusing Web sites of various kinds. They use whatever is quick, easy, and cheap. They naturally make all the mistakes in the book, but mostly they get the job done - somehow.

      4. "The little cottage industry of tech. book authors, publishers, cert trainers, and seminar speakers" referred to by the parent. Only it's not "little": it's huge - and its influence is even huger. This is the community that treats software development as a branch of the fashion/entertainment industry: as soon as anything new is understood and stable, it's "dead" (basically because it's perceived as boring). Time to move on to the next unstable, unproven "technology". And guess what? The very large and powerful community of "vendors" is right behind them, urging them on. That's because they make a lot of their profits from churn.

      And we wonder why software is chronically unreliable!

      --
      I am sure that there are many other solipsists out there.
    2. Re:they all moved on to the next thing by Valtor · · Score: 1

      1. Software engineers who build reliable, robust, maintainable, extensible (and possibly secure) software systems...they certainly don't frequent Slashdot... And why would you say such a thing? I consider myself one of those people and I still find slashdot interesting nowadays.
      --
      "Sockets are the standard networking API, also useful for stopping your eyes from falling onto your cheeks" zeromq.org
    3. Re:they all moved on to the next thing by Archtech · · Score: 1

      Apologies, Valtor. I exaggerated for effect. What I really meant, on reconsideration, was more like "Not many of them seem to frequent Slashdot, and they don't seem to dominate threads like this one". In retrospect, I must have let my emotions run away with me.

      --
      I am sure that there are many other solipsists out there.
  28. Re:Is UML Really Dead? by larry+bagina · · Score: 1

    according to the slashdot community, it's been the year of the linux desktop since 1999. And nobody wants an ipod since it doesn't support ogg vorbis.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  29. 13 reasons that X, Y, Z by Zarf · · Score: 1

    Is it me or is this a new meme. I see a lot of "13 reasons blah-diddy-blah this-and-that" lately. I think it's a virus.

    --
    [signature]
    1. Re:13 reasons that X, Y, Z by whitehatlurker · · Score: 1

      I blame digg - every third posting there is a list of [some number, usually less than 20] [reasons for/reasons against/top/bottom/sexiest/...] something. I didn't read TFA - is there a PROFIT! on the list?

      --
      .. paranoid crackpot leftover from the days of Amiga.
  30. Booch notation... by gatkinso · · Score: 1

    ...poised for a comeback!

    --
    I am very small, utmostly microscopic.
    1. Re:Booch notation... by isj · · Score: 1

      Actually, Booch notation isn't half bad. I does not have all the details and precision of UML, but it is sufficient. And classes and objects are fluffy clouds - not boxes. Grady Booch's rationale for that shape was that the drawings were approximations anyway. the story goes that when UML was designed the others wanted nice rectangular boxes for classes and Booch had to give in, but commented "but they are really just rectangular floffy clouds"

  31. It's a bunch of shapes connected by lines by hritcu · · Score: 1

    - I'd like to start with a diagram.
    - It's a bunch of shapes connected by lines.

    --
    If you don't fail at least 90 percent of the time, you're not aiming high enough. (Alan Kay)
    1. Re:It's a bunch of shapes connected by lines by hritcu · · Score: 1
      --
      If you don't fail at least 90 percent of the time, you're not aiming high enough. (Alan Kay)
    2. Re:It's a bunch of shapes connected by lines by scotsghost · · Score: 1

      What the hell is wrong with the Dilbert site?? The only way I can read the comic is in short glimpses before the Flashcrap loads -- then hit reload to read the next panel. Did Scott Adams let his pointy-haired-boss design the flashcrap??

  32. Documentation will be next? by Anonymous Coward · · Score: 0

    This article is silly and I also wonder if the author actually grasps the whole concept of UML's. IMO the article basically boils down to "UML will die because programmers hate it". But isn't this something which has been going on for the last 30 years or so? When looking at the things a programmer dislikes (generalizing:) you can be sure that documentation will score high on the list. Heck; from what I understand its even one of the key reasons why Java invented javadoc. A means to produce the maximum amount of (usefull) documentation with a minimum amount of effort on the programmer.

    But even despite the disdain the need for documentation hasn't gone away... Next thing I wonder about is the fact that UML can be used by more people than merely the programmers. When looking at use case diagrams one of its basic requirements is that it will only describe the functionality of the program from a - users - point of view. It shouldn't reflect anything which has something to do with programming or programming techniques. Its solely aimed at design, not technical implementation.

    But the main reason why I simply chose to disregard this article as fud is the fact that the author mentions "expensive tools" and "java" in the same article. Guess what? One of the main Java IDE's called NetBeans offers native support for UML modeling. And yes; NetBeans is free.

    And well, to finish up; when looking at the bottom of the article you'll see that this story falls right into the same category of the article we had a couple of days back stating that Java was to die very soon now thanks to the likes of Ruby and Python. I sure hope /. will ignore silly articles like these for a while now. Its boring.

    1. Re:Documentation will be next? by kris_golden · · Score: 1

      The article from a couple of days ago argued the exact opposite. It argued Java would not die due to Ruby or Python.

  33. It didn't solve many problems by webview · · Score: 1

    I think the reason why it died was because it really didn't solve any problems.

    Don't get me wrong, I was trained in UML and think it is great for communicating high-level processes, but it's pointless to expect the typical developer (even users outside your organization which you have no control over) to understand all the details of cardinality, the difference between a dashed-line with an outline arrow and solid-line with an outline arrow, or how about a half-arrow and dash-lined?

    I love it for 10,000ft view illustrations, but to go any further is pointless. We were always promised a rich (round-trip) set of tools, but it never happened. Whenever I would get into to details of the code, I quickly learned that my models had become out of date and it ended up being an exercise in redoing the diagrams just so they would match the code (i.e. the code became the authoritative source).

    I firmly believe that the actual coding process is 75% of the design phase and UML assumed that the models comprised 99% of the design phase. I still think models are useful, and I use UML to-this-day, but I don't think it will be as prominant as some people had hoped.

  34. Sounds good by AmazingRuss · · Score: 4, Funny

    I'll use that next time somebody asks.

  35. Hated it by MBGMorden · · Score: 2, Interesting

    As one who had UML as a required course when working on my degree, I can personally say that I hated the whole idea of it (I did fine in the case - got an A, just hated UML).

    To me, a diagram of that nature should simply provide an overview. When you start introducing rules on diagram format and such, it really starts to grate me.

    My professor in that class even stressed how cool this UML utility was (I can't rememeber the name but it was some Java app the university had site licensed) because it could convert your diagram into basic code (just function names and such - you had to write the real meat'n'taters part). Sad thing was that by the time most people could get the perfect UML diagram of their program created for it to create that skeleton program, most people could have written a freeform diagram, hand coded the skeleton program, and written 20-30% of the actual code.

    I'm not saying that people shoudl just dive in and start coding with no planning, but UML was just beyond tedious.

    --
    "People who think they know everything are very annoying to those of us who do."-Mark Twain
  36. Cataleptic by rwa2 · · Score: 1

    The military-industrial complex seems to be using it a lot... Lockheed was supposedly planning on using IBM Rational Rose to do all of the JSF software development, and Boeing's been playing around with the Ilogix Rhapsody tools to do various simulation things.

    A complete working toolchain is of course prohibitively expensive to use in any other setting (with ClearCase to do version control, and all of the full time admins needed to keep the system organized enough to keep from falling flat on its face).

    But as long as the PHBs and other management types think it gives them simple enough pictures to have at least a glimmer of hope of appearing to know how any of the SW projects they manage work, then I have a feeling they will mandate that developers use UML-to-code tools regardless of the cost.

    I worked on a decent-sized development effort using the Rhapsody thing, and I have to admit I was surprised that it actually worked pretty well. Most of the "real" code was embedded in traditional blocks of text attached as properties to the UML elements, but the additional structure enforced by the software kinda helped organize everything. And it was pretty neat to be able to visually navigate the code tree.

    You still needed pretty skilled developers to make the thing worse, and of course they could do their job better without having management trying to interject things they half-learned from a design pattern seminar. And ultimately, management will point to how easy development now looks, and will use that to justify hiring cheaper, less qualified developers.

    Bottom line, I think UML-to-code development styles have shown that they can work, and will persevere, even if only as a learning tool. I think it just depends on how fast the open-source tools like Umbrello reach the level of capability of the expensive commercial tools.

  37. For what it's worth by wellingj · · Score: 1

    I found this little thing: http://dia2code.sourceforge.net/examples.html I thought it was interesting that they actually do code generation of 'virtual' functions in C.

  38. If you looked at my company... by shadoelord · · Score: 2, Interesting

    You would believe it was dead. There are only 2 engineers, myself and another fellow in a different office, that use UML for design. The opposite in the company is no design at all, or very loosely worded documents.

    If I get hit by a bus... at least someone will be able to understand what the hell I was working on.

    --
    this is my sig, there are many like it, but this one is mine.
  39. DEAD???? by Anonymous Coward · · Score: 0

    Dead??? What're you talking about??? Most modern software engineering tools are being based on use cases, classes diagrams, and scenarios... you can't say uml is dead without a strong replacement for it... As far as I concern, UML has helped me to understand lot of things, it helps a lot with customer-developers relation, and it's really useful for size and effort estimations.

    There's one thing that I think is being misunderstood, UML isn't a tool for developers, it's a tool for the entire software process...

    So, I don't think UML is dead, it's just being deprecated by those who doesn't understand its pros and are most likely to develop using a code-and-fix life cycle.

  40. Just an extra (un-needed) step by Mr.+Sanity · · Score: 1

    After doing development professionally for a number of years, I've found a special hate for UML used beyond simple class overviews. The amount of time that gets wasted by UML is onerous. Generally, if you've got a solid design doc (you do have one, right????) then UML is just a halfway point between your DD and the code you'd write. But, if you've written a solid DD then doing UML is just making you repeat 75% of your DD in a different format, and 25-50% of you coding in a different format. Cutting out the DD leaves a project with far more time to actually reach completion on time.

  41. Re:Just le - Remember Jackson & Ward/Mellor &a by ahodgkinson · · Score: 4, Informative
    > Anyone remember Jackson Structured Programming?

    ..or flow charts and those cool green templates from IBM for drawing them.

    This was all part of the set of diagraming methodologies for structured programming. They are all gone now, which is unfortunate, and they have lessons for today's object oriented world. Which is to say that we're now re-living the same evolution for object oriented systems. The results will probably be the same. System generation from diagrams (now called MDA) probably isn't worth it.

    For the uninitiated, Jackson (structure charts) and Ward & Mellow (real-time system modelling) were diagramming methodologies to help design systems written in structured languages (assembly, COBOL, FORTRAN, C, etc.). There were lots of others, but I can't remember all the names.

    It all culminated in CASE (Computer Aided Software Engineering). Which, in it's extreme form, called 'strong case', was trying to be a CAD system for replacing programming. Like today's UML the intent was to generate code directly from the diagrams. It didn't work too well on real projects and gradually faded away.

    There was also a 'weak case' faction, that wanted to use the diagrams merely to do early design and document the resulting system. The intent was to have a lingua-franca in which you could quickly express design concepts using a simple standardized notation. This is where ULM started. It not a bad idea, as long as you keep the diagramming system fairly simple, which means it won't be rich enough to generate code from.

    The 'strong case' equivalent in the object world is MDA (Model Driven Architecture), which from what I've seen and read about is doomed to failure. I believe that the diagram to code gap is just too large and the programming detail required to actually implement a system is too difficult to capture in simple diagrams (which is what you want in the design stage).

    Have a look at Pros and Cons of MDA Code Generators? and my experience on a MDA project.

    I suspect frameworks, like Struts and the like, are a much better approach.

    --
    ---- It won't be as bad as you fear or as good as you hope, but it will take twice as long as you plan.
  42. depends what you mean by jilles · · Score: 1

    UML is mostly used in a informal fashion as a way to illustrate text outlining/documenting a design. As such it can be useful since it gives engineers a concise vocabulary to discuss things on a whiteboard or piece of paper. As such it has somewhat displaced older notations and I actually like it. One of my favorite tools is an obscure one called umlet that does exactly what I need it to do: generate diagrams from very concise pseudo code.

    What is dead, or rather was never alive, is UML tooling as a silver bullet to fix bad design, incompetent consultants, magic please generate my application tools, etc. Rational Rose is one of the most successful scams in our industry. They sell lots of tools, licenses, certification and consultancy to companies that think their architecture and design problems can be bought off. I heard a talk by Ivar Jacobson once where he joked that he was happy that people were buying his books (on e.g. Rational Unified Process) but regretted that they didn't bother reading them.

    I've been in a number of companies and I've never seen any effective use of UML related tooling beyond the annotate boring word documents and power point slides with pointless diagrams stage. We all know the diagrams where trivial classes with a bunch of setters and getters get nice sequence diagrams and use case diagrams and the state diagram or sequence diagram for the poorly designed 3000 lines long very complex class is conveniently omitted.

    My best example here is very simple: try find UML diagrams of eclipse EMF and related infrastructure for many UML tools. Hint, you won't find much to write home about. This is extremely complicated software and UML just isn't good enough for it. The experts on this matter are voting with their feet. UML tool designers don't eat their own dog food when it comes to their own software. So why should you? Come to think of it, I don't know of any open source projects where UML is used extensively. I know of a few with bullshit design wikis sporting a few useless class diagrams though. I also know of quite many that produce UML tooling. But I know of exactly 0 projects that use UML tooling as intended.

    --

    Jilles
  43. MOD PARENT UP by Project2501a · · Score: 1

    UML was just an idea to communicate ideas.

    Then came in the PHBs and thought that they could get rid of the programming part by converting the diagrams into code.

    FAIL.

    --
    ----
  44. UML by jkeelsnc · · Score: 1

    I am currently a CIS student at Appalachian State University. In fact, we take a Systems Analysis class and use UML some in Database Design. It is all very interesting. However, particularly in Systems Analysis, Diagramming and System modeling are practically treated as Sacred and Holy. Personally, for Database Design at least it would see that UML is useful. However, for programming in general I am not so sure. It was interesting to read the article and the responses though.

  45. Well, you need something... by Anonymous Coward · · Score: 0

    I sometimes turn to UML when something is too complicated for me to figure out in my head... In those cases, I need some sort of diagram to sort out the confusion. Since I hate to reinvent the wheel, I use UML... a bunch of smart people spent a long time developing this system. It's good enough for me when I need it.

    However, I only use the UML described in Fowler's "UML Distilled". It's just the right amout for me.

  46. Re:Just le - Remember Jackson & Ward/Mellor &a by Anonymous Coward · · Score: 0

    Heh. The lecturer for my second-year Software Engineering module told us about "the future"; a lot of very clever people were designing systems that would eliminate the need for coding by hand by automatically generating code from UML. I couldn't quite believe what I was hearing.
    "No code? Just UML diagrams?"
    "Yes."
    The most WTF-worthy aspect of this was that he said this was why you couldn't be a software engineer without knowing UML,because every employer would be using it.

  47. kill it! kill it! kill it! by Mr.+Slippery · · Score: 1

    Please please please, let it die. And to be sure, shoot it with a silver bullet, put a stake through its heart, cut off its head and stuff the mouth with garlic, and bury it upside-down at the crossroads.

    Can we please learn from this and just immediately pummel with clue-by-fours the next bunch who think that cryptic diagrams are the best way to communicate about computer programs?

    --
    Tom Swiss | the infamous tms | my blog
    You cannot wash away blood with blood
  48. Programmers could easily do well not knowing UML by SuperKendall · · Score: 1

    i don't really believe that, at least not in the general case.

    Why not? It's not like he said coding without any kind of diagramming, which is a different thing - remember that there were many diagram notations well before UML, that people used - and even if people did not know that almost everyone has done ad-hoc diagrams with boxes and lines to describe relationships.

    So I would argue any programmer could easily get along without knowing UML, because the most useful parts of UML are simply intuitive and easily understood. UML helped to codify everyones diagrams more universally understood, but the nature of the most used parts of such diagrams is such that anyone with but a few minutes explanation can understand different dialects f diagrams. After all, all diagrams are simply attempting to convey concepts underneath which are ALREADY universal in nature, so any diagram variant will be expressing well-known concepts!

    on the other hand, the moment interesting amounts of sufficiently complex code get involved, my experience has been that peoples' ability to digest and understand enough of it that they can be useful drops off exponentially. in that case, a visual notation like uml becomes a really powerful tool to aid understanding./i

    I have worked on very large systems myself (primarily Java). These systems were understood well through careful application of documentation, before UML ever took hold. What UML did however do in greatly increase the time it took to deliver projects because all sorts of additional artifacts had to be produced, and conform to UML. When you are doing custom documentation it's much easier to customize documentation to be useful for you, when you use UML in a large company that generally means RUPP and *that* means IBM coming in with a nice juicy software customization consultancy.

    Again, UML in moderation is very useful, but almost no companies use UML in moderation, partly because they unfortunately succumb to the Great Lie that is Model Driven Development and seek to dictate how code is structured from the very top, almost beyond architects.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  49. Yes! by mmcuh · · Score: 1

    Dead, dead, dead. Good riddance.

  50. Re:Programmers could easily do well not knowing UM by MickDownUnder · · Score: 1

    So you don't actually know anything about UML do you?

  51. They're doing it wrong by Katalyst23 · · Score: 1

    I don't think UML is dead, I think they're just doing it wrong! Trying to generate code from UML diagrams is pretty useless. As pointed out by other posts, UML is pointless to try and use for systems of any real size, but is great for illustrating simple concepts (like the GOF use it for). I find that UML's real strength is when initially designing something - it's easy to get your ideas across about how the system should work in general.

    --
    It's turtles all the way down!
  52. Re:Programmers could easily do well not knowing UM by SuperKendall · · Score: 1

    More than you apparently. I've used it on several large projects. I know enough to know how far to take it at any rate.

    You appear to be one of the theorists who have read a lot about UML but have little practical application behind you in real companies. Or one of those that believes all went well with his project while leaving burning ruins behind him, I've seen enough of those as well.

    I'll give you the last response. Since you appear to be only able to sneer and not give any kind of counter-arguments to my actual expereince, I see no need to read whatever further fantasy you feel like posting.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  53. Survey of Use Case usage by JeffParsons · · Score: 1

    The discussion of UML's death has been very interesting. Along those lines, we invite you to participate in a survey of how Use Cases are used (within or outside UML). We would really like to hear your views about Use Cases and what you are doing with them. We have recently created a web survey and we would love to get your responses and ideas, no matter what you think! The survey can be found at: https://www.uleth.ca/survey/uml/ The survey is hosted by the University of Lethbridge in Alberta Canada. We are Brian Dobing, from the University of Lethbridge, and Jeff Parsons, Memorial University of Newfoundland. We are primarily researchers and teachers, not UML consultants or book writers. We have no preconceived notions of what distinguishes good vs bad Use Cases, when and how they should be used, etc. But we are very interested in your views. Some of our work was published in the Communications of the ACM and is available free online at: http://www.acmqueue.org/modules.php?name=Content&pa=showpage&pid=461 We have recently completed a longer article based on this research and should be able to provide it to anyone interested in a few months. (It isnâ(TM)t published yet.) You can request a copy if you complete the survey â" but actually we will provide it free to anyone so please donâ(TM)t enter a lot of garbage data just to get the paper. Just send us an email (there are email links on the first page of the survey). We really welcome all opinions, including those that say weâ(TM)re asking the wrong questions etc. Our goal is to help the UML and Use Case community better understand what it going on. To that end, the OMG is supporting our research and has provided a link to our survey on their web pages (omg.org and uml.org). We look forward to hearing from you and providing you with some interesting feedback in return. Once again, the link is: https://www.uleth.ca/survey/uml/

  54. Re:Programmers could easily do well not knowing UM by MickDownUnder · · Score: 1

    I've been using it since 1996 and have lots and lots of experience in it.

    Your arguments are silly. UML is no good because people don't have the time to keep up with it?

    Are you for real?

    UML isn't about being a pedist. It's about communication. If you're going to be a pedist you don't need UML to do that, you can just get on slashdot and discredit things you know nothing about.

    If you had any experience using UML you'd know, it's possible to teach someone from scratch enough UML in 20 mins for them to gain real value from it, and that value just keeps giving, it doesn't stop because some minor revision of the syntax got released.

    UML is about describing systems architecture, sure you can describe systems architecture in ways other than UML, but without explanation, UML diagrams are going to be more easily understood than some notation you've cooked up on your own and it will be a hell of a lot easier to understand than source code.

    UML is a tool and in the right hands it can be a very good one. Any tool can be mis-used, a good tradesman doesn't blame his tools.

  55. Re:Programmers could easily do well not knowing UM by SuperKendall · · Score: 1

    UML isn't good because too many people overuse it. You are totally misunderstaing what I say.

    UML is about describing systems architecture, sure you can describe systems architecture in ways other than UML, but without explanation, UML diagrams are going to be more easily understood than some notation you've cooked up on your own

    Anyone can figure out what a box is, and what a line means, in about five seconds. How do you imagine the world worked before UML? There were simply a number of other standards, or off the cuff diagrams. UML is simply more widey defined, to the point where in fact the UML diagrams are *not* going to be more easily understood than my own or others notation because some of it is not readily apparent and if I'm drawing adding my own notation I can understand what it means and explain things more clearly to others.

    Hoist by your own petard, UML master of disaster!

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  56. Re: sketching vs. design - the Graphical Fallacy by Capt.Albatross · · Score: 1

    This may stem from the Graphical Fallacy -- 'a picture is worth a thousand words'. While pictures often do help in understanding things, they are not nearly as expressive as human language, especially for abstract ideas of any complexity (if you don't agree, try drawing a diagram that self-evidently refutes this assertion!) From this perspective, it's not hard to see that diagram-based techniques, of which UML is one, can work for sketching, but run out of power if they are called on to substitute for language.

  57. Re:Programmers could easily do well not knowing UM by MickDownUnder · · Score: 1

    A lot of people misuse C#, C++, Java, AND VB. Is that any reason for not using them?

    UML doesn't have a monopoly on bad developers.

    So what if you can invent your own notation and explain your own diagrams more easily? When you leave your place of work, who will understand your diagrams then? Can people read books or find content on the internet about the format of your diagrams?

    I think it is you has a deep misunderstanding about this topic.

    Let me guess you develop using Microsoft? You're an agile zealot? You've gullibly believed everything an MVP has ever said about UML/RUP/Rational (now owned by IBM), without a thought to the motivation behind the rhetoric? You spend all day in Resharper, lost, madly navigating round and refactoring overly complex and mostly useless architecture? Refactoring is the tool of choice for the lost and blind!

    You can hoist that where the sun don't shine.

  58. Re:Programmers could easily do well not knowing UM by SuperKendall · · Score: 1

    A lot of people misuse C#, C++, Java, AND VB. Is that any reason for not using them?

    It s if they are using them wrong. If some idiot tried to put together a crucial transaction oriented system in VB, I'd certainly tell them to stop. SImilarily when UML is used in ways that are not practical, the use of it (to the extent it has overstepped its bounds) must be stopped as well. Sadly that is impossible at many companies today.

    UML doesn't have a monopoly on bad developers.

    It does have a monopoly on inept management, as they are generally the ones that take it too far. Developers have sense enough to know what amount of use for a project is productive (though not always).

    So what if you can invent your own notation and explain your own diagrams more easily?

    Yeah, so what if you can make the thing that UML means to make easier. easier! Who cares I say!

    And shaking my head, I leave you with that thought. You can continue your pointless assertions, my time is too valuable to waste on further pointing out what anyone who has worked with UML already knows.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  59. What about a bidirectional UML/IDE framwork? by Nexalist · · Score: 1

    I have read all the comments on this UML thread with interest. Most of my experience is in embedded systems and I have been trying to learn all I can about the various high level software modeling environments, both model driven (MDD) ones, such as UML and model based (MBD) ones such as Mathworkâ(TM)s Matlab/Simulink combo and National Instrumentâ(TM)s Labview. Why? For a number of reasons: (1) the day of the individual code developer is coming to an end with more and more development done by large teams often separated geographically around the world (2) systems, especially in the embedded world, are be coming more complex and require millions of lines of code running on multicore CPUs (3) as I learned from lectures by Richard Feynman at Caltech, the key to unraveling a systemâ(TM)s complexity is drawing pictures that clearly delineate patterns and relationships and (4) even if you get the code right, it seems to me the entire project could come to a halt if the system design and the relationships between entities are flawed.
    An article on online at Embedded.com (MDD and IDEs: making the twain meet in embedded systems design) describes a bidirectional framework that allows developers to move back and forth between two environments, an embedded IDE for code development and an MDD such as UML at the system definition level. I was particularly struck by the following statement in the conclusion of the article:
    >>>>>>>>>>>>>>>>>>>>>>>>>
    The MDD tools within this bidirectional environment can then generate production quality C, C++, Java, and Ada source code automatically from the UML models, which can be fed into the IDE's C/C++, Java, and Ada compilers, and object code then transferred to the target. The developer can then take programs running on the target, set breakpoints on the graphics in the modeling environment, and have the program stop at the same point in the IDE's source-level debugger. Working from the other direction, a developer can load and debug the code in the IDE environment and set break points as well.
    >>>>>>>>>>>>>>>>>>>>>>>>
    Maybe the author is overstating the case but the move toward such merged IDE/MDD environments seems to be gaining ground: the one described in this article was developed for use with the open source Eclipse IDE. But I have heard that Wind River is moving in the same direction with the the Tornado IDE it has for both its Linux OSes as well as its Vxworks RTOSes. And Green Hills Software at one point was working with one of the UML providers to create a bidirectional framework between the UML system level environment and its proprietary MULTI IDE for developers using its Integrity, Velocity and micro-Velocity RTOSes.

  60. Re:Programmers could easily do well not knowing UM by MickDownUnder · · Score: 1

    UML does not have a "have a monopoly on inept management". Firstly, UML has nothing to do with management. UML is a development tool, not a management tool. Secondly there are plenty of badly managed companies out there with software development processes that don't include the use of UML. Believe it or not, there are people out there who can and do use UML in a professional, timely, efficient and effective way.

  61. Re: sketching vs. design - the Graphical Fallacy by K.+S.+Kyosuke · · Score: 1

    Alan Perlis: "A picture is worth 10K words - but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures." (More wisdom of Alan Perlis)

    --
    Ezekiel 23:20