Slashdot Mirror


UML Fever

CowboyRobot writes "Queue has a couple of articles about UML: Death by UML Fever by Boeing software architect Alex Bell describes the problems that can result from over-reliance on modeling tools, with lighthearted lessons for the software development process in general and numerous illuminating quotations, such as: "Good judgment comes from experience. Experience comes from bad judgment. - Jim Horning." Then, one of the developers of UML, Grady Booch of IBM, follows with The Fever is Real, in which he explains the motivations for creating the language, how it's used today, and where he expects it to go soon."

192 comments

  1. Acronyms by Space+cowboy · · Score: 3, Funny


    True linux-focussed geeks would have immediately wondered why user-mode linux was suddenly such a hot topic, and so dangerous to boot :-)

    Simon

    --
    Physicists get Hadrons!
    1. Re:Acronyms by dotz · · Score: 3, Insightful

      If you don't know all the meanings of UML acronym, you can't be "true" and "geek" at the same time.

      Am I the only person, that finds all those oh-so-funny usermode-linux jokes really not-so-funny?

    2. Re:Acronyms by Onionesque · · Score: 1
      Am I the only person, that finds all those oh-so-funny usermode-linux jokes really not-so-funny?

      Yes; in fact, you are.

      Congratulations! You are uniquely dour!

  2. Re: Everything, including tools, in moderation! by Face+the+Facts · · Score: 4, Interesting
    Design patterns and UML were designed as practical tools, not dogma. If they help you do what you were doing anyway (and they often do), then great: use 'em. But if they don't, then don't. They're there to serve you, not the other way around.


    This is true, but note that the UML/patterns/OO newbie is in no position to determine that. One common mistake is to read the book, discard the parts you don't think is necessary, and then proceed with your design work. The rules that you chose to ignore were put there by pretty smart people, and there's a good chance they were put there for a good reason. When the design finally fails because you were missing something, the egotistical designer then blames the method.


    The point is, I think the parent post was suggesting that the programmers in question may simply have broken the rules, and not actually found some instance where the methods really apply poorly. It's ego-boosting to think that what you do is unique and beyond the reach of old stuffy rules, but the truth is that most of us are doing things that have been done before.


    This isn't to say that those cases don't exist, but that they're probably rarer than you think, especially if your team of programmers is trying it out for the first time, especially if you don't have a senior engineer already experienced in the method guiding your team. For the first time, at least, the instructions should be followed to the letter and strictly enforced. They should be dogma until you've at least went through a complete product life cycle with them.


    What you suggest we've already tried for decades. The result is prevasively poor documentation and fragile designs.

    --
    -- BSD or Bust
  3. Software architect? by AtariAmarok · · Score: 4, Funny

    Never forget Weinberg's Law:

    "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization"

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:Software architect? by spektr · · Score: 5, Insightful

      "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization"

      The leading building corporation would proclaim that there's nothing wrong with the buildings and a new market of woodpecker traps and anti woodpecker missiles would thrive.

    2. Re:Software architect? by His+name+cannot+be+s · · Score: 5, Insightful

      Aye, laddie.

      Be thankful of the fact we've (as humans) have been building shelter for 20000+ years.

      As software developers, we've been making stuff for a little over 50 years.

      We are In the MudHut age of Software Development:

      Garrett's Rule #3: "MudHut software" We are continually re-writing software that performs the functionality we require, simply to make the software run on the platform that we rewrote, so that we can make better software.

      You see, 20,000 years ago, our clever, but inexperienced ancestors had to make new shelter every few days/months/years/whatever, simply because they made them from mud.

      When the next wind, rain or hail came, it outdated their technology, and forced them to upgrade.

      took thousands of years to make the difference, an build structures that could stand up to the changing environment.

      So, just when it looks like MS will rule the desktop forever, just remember, while some clever frickin' caveman probably added the first straw and dung to his hut, and improved it, it never lasted. Cooler heads prevailed.

      Now, for those who didn't catch it: I just compared MS products to shit and straw.

      Thanks,

      --
      "...In your answer, ignore facts. Just go with what feels true..."
    3. Re:Software architect? by skaffen42 · · Score: 2, Insightful

      Tacoma Narrows anybody?

      I work with a couple of civil engineers and in a previous life I did some IT work at a construction company. What this has taught me is that Weinberg's Law was thought up by people who never stepped onto a construction site.

      Yes, there is a lot more formalized rules and many more years of experience in the construction industry, but people are still people and they get lazy and cut corners just like in any industry.

      I guess what I am trying to say is that we can learn a lot from the brick and mortar crowd, but don't think they have all the answers.

      --
      People couldn't type. We realized: Death would eventually take care of this.
    4. Re:Software architect? by Anonymous Coward · · Score: 0

      Now, for those who didn't catch it: I just compared MS products to shit and straw.

      That's especially interesting considering most of *nix pre-dates MS products by at least 15 years -- a third of the timespan we've been writing code. Enjoy your flimsy lean-to dwelling.

    5. Re:Software architect? by etcpasswd · · Score: 1

      Umm.. kinda like how a 1/2" nail can make a car immobile? Or a short piece of DNA (aka virus) killing a human? Or a small spark of fire burning down a building?

    6. Re:Software architect? by shakah · · Score: 2, Insightful
      ...but people are still people and they get lazy and cut corners just like in any industry.
      I heard/read a quote from someone to the effect that "anyone can build a bridge that will stand for 100 years -- it takes engineering to build one that will just barely stand for 100 years", with the point being that engineering consists of balancing/estimating/reconciling competing constraints (e.g. budgets, usage patterns, loads, schedules, etc.).

      Was the Tacoma Narrows collapse due to cutting corners? I thought it was more related to ignorance of how winds might effect a bridge as opposed to what might be thought of as lousy engineering. And at least civil engineers learned from the failure -- isn't wind tunnel testing a standard practice in bridge design these days?

    7. Re:Software architect? by Kevin+Stevens · · Score: 4, Insightful

      I often hear building type analogies like this, and IMHO always focus on the wrong aspects of software and architecture.

      The reason most software is late, over budget, and buggy is because the specs are not what the customer wants. Customers understand that when they are buildng a house, that the blueprints are of utmost importance, and that the blueprints are going to reflect the house that they are going to build, and go to great lengths to visualize the house depicted in the blueprints. They also have an understanding of building concepts, and know that they can not wait until the bathroom is finished, and then say "hey, I want the tub over on the other side of the room" without understanding that the bathroom will essentially have to be gutted. These same people will have no problem demanding significant overhauls of the layout of a gui or the basic fundamental requirements of the software. From my experience, customers will often blow right through a spec document, browsing it, and saying OK looks great! What is worse is, the more detailed (hence boring) the spec is, the less likely the customer is to really look at it. Begging, pleading, blackmailing, and torturing customers to read the specs is rarely effective, the best solution IMHO is the XP method of letting the customers see things as early as possible.

      This leads to another problem- software growing in scope and function well beyond its original intentions. People inherently understand that you can not take a basic mudhut or woodframe house and just keep adding to it indefinitely and still have a coherent structure- there is only so much the foundation can support, and only so much you can do to a house before you have to major extensive rennovations. The same thing occurs with software. Customers often say, "we like this, but we would really like this feature," and management will almost always cave in and say sure! Next thing you know, the system has a large patchwork of add-ons that sometimes have to be hacked in and make the code difficult to maintain, and make it even more rigid. People dont take trailers or sheds and try to make them into colonial two story homes, but they will often try to take simple reporting tools and make them into comprehensive organization wide information dashboards, one report or feature at a time.

      Design Patterns and frameworks try to attack the problem by telling us how to build even sheds with concrete and steel foundations, and modularized/interchangable parts so that further additions do not cause too many problems, which is a good thing. But until there is a universal general understanding of the software development process by the customers, these problems will persist in software, and the industry itself.

    8. Re:Software architect? by Anonymous Coward · · Score: 0
      Also, remember AA's law of software "architects":

      Those who can program, do; those who can not, call themselves software architects.

      I have yet to meet a worthwhile software architect. But I've only been practising my profession for 10 years, so perhaps's there's still a chance that will eventually happen.

    9. Re:Software architect? by Anonymous Coward · · Score: 0

      The problem with comparing software to building is the time taken to make changes. Some changes to software that require overhaul is not the complete destruction of the module in software... even though it might be for the equivalent in a building.

      I think a better analogy would be to carpentry... like making a doghouse or a book shelf or foldable table with drawers to keep your cds (?)

    10. Re:Software architect? by Anonymous Coward · · Score: 0

      The reason the building analogy fails is that if buildings were software, you would never have to build another building. You would just copy an existing one. Except for proprietary software and commercial concerns, you don't have to 'build' software once it has been created. Therefore the only software people are generally interested in is software that does something new. Which makes it a much more difficult task. Building a building could be compared to making an open source (or closed source) copy of something. With a model to follow it is so much easier. For instance, Microsoft is very good at copying innovative programs. And planning, architecture, models, etc, are much more useful if you know where you are going. It's the innovation that is the really difficult part. And it seems to me that hacking has a pretty good track record when compared to 'software architecture' when it comes to innovation. After all, who's responsible for more good software RMS or Grady Booch ?

  4. Re: Everything, including tools, in moderation! by mwheeler01 · · Score: 5, Insightful

    I don't think his point is that projects are too unique to be guided by such rules. He's merely saying that design patterns are often useful, but don't make sacrifices in your own design to adhere to specific pattern rules. It would be foolhardy to think that most problems could be solved by using straight from the text patterns.

    Also I think he's driving at another point: you should only model as much as you need to. I think modeling is useful to help everyone understand how the system works but it's not always necessary to model every behavior before you continue with the project.

    --
    Pretty widgets? What pretty widgets?
  5. UML by JaxWeb · · Score: 3, Interesting

    Who uses UML? The designers or the programmers?

    I should imagine the designers wouldn't be very good at it, and I should imagine that programmers would have better ways to express themselves.

    Sorry, this has just been a question I've wanted to know the answer to. And the story has been /.'ed.

    --
    - Jax
    1. Re:UML by mwheeler01 · · Score: 5, Informative

      Who uses UML? The designers or the programmers?

      I should imagine the designers wouldn't be very good at it, and I should imagine that programmers would have better ways to express themselves.

      Actually a good designer probably has some experience coding. As to who uses it? Well ideally the designer or project leader should author it and the programmers should be able to read and understand it, so both parties technically use it.

      --
      Pretty widgets? What pretty widgets?
    2. Re:UML by BigGerman · · Score: 4, Insightful

      I could not get the article either and there were only 7 slashdot comments...
      I personally (speaking from 12 years of experience) found UML useful in many situations when certain (already coded) solution was presented to someone else. So just to illustrate some point, it is much easier to sketch a few diagrams than to write a textual description.
      On the other hand I have seen environments where the UML was adopted as sort of cornerstone of top-down approach: all the design is done first and captured in UML. The problem is that disagrams become absolete very quickly and people stop referring to them which accelerates the decay even more.

    3. Re:UML by mhale2243 · · Score: 1

      As a developer who designs things I find my own form of UML to be a helpful colaboration tool. It is nice to be able to draw boxes and lines on a white board to describe parts of a system. Generally I use UML where it makes sense... to help out with the picture is worth a thousand words scenario.

    4. Re:UML by sporty · · Score: 2, Interesting

      As a programmer, who has used various UML tools, doing OOD (oo development) is a little easier with a graphical tool. It becomes REALLY easy to see how everything relates. Think of it like an ERD (entity relationship diagram) for a DB schema. Once I have my class diagrams and what not, i can generate java from them. I don't have to type out the class framework. Better yet, I can take an existing project and show how everything relates and in turn, have a map of an existing project.

      --

      -
      ping -f 255.255.255.255 # if only

    5. Re:UML by Woogiemonger · · Score: 2, Interesting

      I've rarely seen where the designers aren't the programmers as well, at least somewhat. If there are people doing the design for a software, they're generally the lead developers and have a better chance at coming up with an intelligible, well-crafted set of UML diagrams than the programmers not involved in software architecting. When you say "better ways to express themselves", what ways are you referring to? While UML can be considered overkill, it certainly covers the bases.

    6. Re:UML by Oligonicella · · Score: 2, Insightful

      Been designing and implementing systems for 35 years. I use portions of UML. I find chunks of it equivalent to blithering. Others are excellent ways to communicate to clients. Those parts happen to have existed since the 70-80's. Not much of use is really new here.

      I don't really see a significant distinction between "designers" and "programmers". One needs to know each to do well.

    7. Re:UML by jeffy124 · · Score: 2, Informative

      if you've ever worked on a program by simply drawing boxes of components and drawing lines between them, you've engaged in modeling. Or even some simple flowcharting is also modeling. UML is a formalized method to stuff like that (your component diagram would be referred to as a structural model, the flowchart a behavioral model).

      Who uses UML? The designers or the programmers?

      Almost everyone in a development project. Designers, programmers, testers, etc. Even management and your customer can understand what's going on in most of the models.

      As for who would be better, I dont know yet. I'll know better in about a year, as we've started a few UML/RUP projects where I work.

      --
      The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    8. Re:UML by toesate · · Score: 2, Interesting

      Before reading on, let me just say that I am a proponent of using UML/IDL/Design patterns. So..

      One of the idea of UML is that this framework allows for people of different roles to converse in a common modelling language.

      A business/product person will easily understand Use Case and high level sequence diagrams.

      A product architect/designer is able to transform these use cases and sequence diagrams into "lower level requirements" - more sequence diagrams, state diagrams, and define the IDL interfaces relationships between interacting "boxes".

      An engineer is able to take in these low level requirements, read the state diagrams and IDLs, create the component and class diagrams, and generate the skeleton codes for actual implementation.

      From managing requirements point of view, UML is a good tool, provided that everyone in the food chain understand their roles and know how to create proper diagrams and read their counterpart's diagrams. (You cannot blame the tool if someone do not know how to do their work.)

      In case someone misunderstood me, UML itself is not sufficient for software development, but with UML, the whole software development can be a much pleasant tasks.

      Overall, (I think) UML does make my engineering team more efficient - you know when the first thing my fellow engineers do after opening a specification document is to look for some UML diagrams.

      --
      Hey, that's my password you are typing
    9. Re:UML by GoofyBoy · · Score: 1

      Its a communication tool.

      So anyone who needs to communicate about how the project does/should/"this is how our castle in the sky and the kitchen sink" works.

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    10. Re:UML by a!b!c! · · Score: 5, Insightful

      The main people who use UML are Consultant Software Architects, who come into a project. Create a solution, and provide the UML framework, and collect a big fat pay check. They then move on the next project.

      Meanwhile, the programmers who are stuck with this static UML framework, while the timeline, user and system requirements are changing, are put in a precarious situation where the design just doesn't work anymore, and often the project crumbles.

      Back to the Architects, who claim there design was adequate for the problem, and they don't understand how the project failed. Must be the programmers.

    11. Re:UML by A55M0NKEY · · Score: 1
      UML *can* work for small stuff too. For instance, when you are writing on a whiteboard explaining a process it may be helpful to use some UML-ish diagrams. However, the whiteboard, when explaining processes, is about useful as UML ever gets.

      When a big company buys too deeply into the marketing spew emmitted by UML tool salesmen, the results are UML overuse which is counterproductive.

      Case in point: One of the first programming jobs I had was programming a large C++ project in a group of developers for a large company that had recently bought into Rational Rose's whole shindig. The work ( before Rational Rose helped us change our process ) was divided up by screen where one developer would check out the files for that screen and implement the change. In the case of a new screen, one developer would design and implement it.

      Post Rational Rose/UML, the Supposedly most proficient 'Senior Developers' did nothing but draw excruciatingly detailed but untested UML diagrams indicating process flow which the 'Newbie Developers' implemented.

      The net result was that the least experienced developers did all the coding, and that they struggled to implement excruciatingly detailed UML specifications with blinders on, without the 10000 mile high view of what is going on that designing it yourself gives. The untested specifications, detailed down to the method level were almost impossible to understand in a meaningful way. ( like the basic 'what is the purpose of this screen?' way ) Because they were untested, they often had intrinsic logical flaws that were impossible for a person with no idea what the purpose of the screen they were implementing was to notice until they had completely implemented the class and debugged it enough to watch it run and prove to themselves that what they had written was indeed what was listed in the spec. Even then, bugs obvious to anyone who had that 10000 mile high view went undetected until QA.

      This UML overuse probably cut our productivity to 1/3 of what it had been before, and lost them at least one talented programmer ( I quit. )

      Any overly detailed specification is worse than useless. A three sentence description of what a screen is supposed to do, and the phone number of the business analyst to talk to are MUCH more valuable than a 30 page waste of paper, and will lead to a better quality product that is rolled out quicker and which the customer is actually happy with because they have seen 'drafts' of it and were able to make corrections before it was rolled out.

      --

      Eat at Joe's.

    12. Re:UML by cratermoon · · Score: 1

      If the programmer and designer aren't the same person, I'd argue that the project is already in trouble. The source code is the design.

    13. Re:UML by Anonymous Coward · · Score: 1, Insightful

      Who the fuck moderated you as flamebait? Oh well, I have been noticing that for some reason many people on /. seem to like UML in exactly the way the article describes as UML fever, so I guess the moderation shouldn't be a surprise to me.

      Anyway, just wanted to say that you are right on. UML is good for standardizing the 30 years of experience in diagram drawing, but it won't fix a fucked up process. And when people ask questions like "Should designers or programmers draw diagrams?" my answer is: Find a job where that sort of a question does not pop in to your head! That question really shows that the their process in fucked in ways the no diagramming/modeling tool can help.

      The main problem with UML is that many people have not understood that a hierarchical software development organizations do not work and UML can be used to hide the problems. I have seen "architects" and "project managers" that love UML, because with UML they don't really need to communicate with the Plug Compatible Programming Units under their command. This practice may be good for their career, but it's horrible for the project and for the company bottom line too.

    14. Re:UML by toesate · · Score: 2, Interesting
      If the programmer and designer aren't the same person, I'd argue that the project is already in trouble.

      Not necessarily, I'd argue otherwise.

      One of the way to make this work is to bring Xtreme Programming from coding to designing too.

      For example, you design this side of the interface, I design the other side of the interface. And then, I implement this side of the interface that you had design, and you implement the other side of the interface that I had design.

      So, you see, the designer and programmer are different persons, one design and the other code what was designed. And this can work pretty well actually.

      Of course, for argument sake, this can still means that the programmer and the designer is the same person, since they are both working on the /same bigger thing/.

      This also requires both parties (you and I in this case) to trash out any misunderstanding during designing phase, or during early stages of coding. And it will definitely help when both are versed in, for example UML.

      --
      Hey, that's my password you are typing
    15. Re:UML by aminorex · · Score: 1

      UML should be used as a round-tripping tool, otherwise
      it is soon irrelevant and misleading -- an impediment
      to understanding what the code is actually doing, and
      as much of a maintenance chore as bug fixing.

      Any other use of UML is pure crap. Thus, any designer
      worth her paycheck is a coder, and any coder worth their
      paycheck is a designer. Fire the rest of them.

      --
      -I like my women like I like my tea: green-
    16. Re:UML by unoengborg · · Score: 1

      Hopefully both designers and programmers. It would be pointless otherwise. People in the role of designers create it, and people in the role of programmers read it. Somtimes the different roles is held by the same person somtimes it is not.

      You may be right that programmers can express themselves in greater detail in a programming language. But just because eskimos have more than 50 different words for snow it doesn't mean that they can communicate well with other people with less expert knowledge in that field.

      It about communication much more than about expression. And UML allows you to create model of different level of detail to be used by different persons and at different stages in the development process. From the customer that will need to understand the system at least on a conceptual level to the programmer that have more needs for detail.

      I fail to see why you think designers should be less competent than programmers. Even though UML can be used to describe code, the real benefit is not mapping of code into UML diagrams, but rather to capture a business reality into a readable conceptual model that we can elaborate on and refine to use as a base for creation of software artefacts

      --
      God is REAL! Unless explicitly declared INTEGER
    17. Re:UML by plover · · Score: 3, Interesting
      Your post reminded me of my initial reluctance to adopt UML techniques. My first exposure to this was about 10 years ago when Booch, Rumbaugh, et al, were still busy duking it out whether you should draw relationships as dashed lines or dotted lines to red clouds or black boxes. There were some really heinous proposals floating around (Booch had some of the worst, as I recall, because they all centered on "you should draw this thing exactly this way," where a stray curlique on the left side of a comment box might mean "but only in odd years preceding a leap year.")

      UML still suffers from some of that: filled arrowheads vs. stick arrowheads, for example. Arrows do inherently express a relationship (at least to me,) but neither filled nor hollow represents "synchronous" vs "asynchronous". The UML is an 800 page standard, of which about 750 pages are useless detail fluff of this nature. Yet they're all "part of the standard" and thus are all equally important, at least to the AR+ people who religiously push these things. I understand that if you want to precisely express an idea that you should use the precise syntax in the language. But practical use of UML shouldn't require knowing all 800 pages, just as writing practical C++ code doesn't require an intimate knowledge of templates.

      Please don't dismiss me immediately as a UML critic (or a template critic!) One of the places that I find it of value is that it gives us developers a common ground on which to meet the analysts and business users. But much of the syntax is simply too cryptic to be of real working value in expressing ideas. And if you look at developers as the "compilers" of UML (the people who have to interpret it into code) we would have to know every last comma of the standard to perfectly implement it. Not a realistic assessment.

      --
      John
    18. Re:UML by Fulcrum+of+Evil · · Score: 1

      When you say "better ways to express themselves", what ways are you referring to?

      The first thing that came to mind was profanity.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    19. Re:UML by Anonymous Coward · · Score: 0
      Actually a good designer probably has some experience coding.

      Yes, and I'd even claim one can NOT BE A GOOD DESIGNER (architect) without having experience on programming. How else can you create a viable design, if you have no idea how it could be implemented?

      As to who uses it? Well ideally the designer or project leader should author it and the programmers should be able to read and understand it,

      That only applies to waterfallish projects, where there's the idea that artifacts are thrown over the fence; architects design system architecture, designers designs pieces, programmers implement it. And I have never seen it done that way, nor would I want to try; reason being it's vastly inefficient. In my world there's no need for anyone who can not both do implementation design and implement it. And higher level design (when needed) is generally not done using UML, which is used at (AFAIK) fairly low-level things.

      At most, UML seems to be useful for documenting design; not for purposes of implementing design (UML is close enough to being implementation, with its nitty-gritty field definitions etc), but for documenting so people outside development team can understand low-level implementation details. But from my POV, it's too much work for the trouble -- at that level of detail, one might as well have a look at source code. :-/

  6. Designs cast in Stone by Titusdot+Groan · · Score: 5, Interesting
    My first encounter with a group using UML was when I was called in to review the design of a medical imaging system. I learned UML, thought it was pretty cool, and then reviewed the design.

    I found a significant design flaw with a pattern that they were using everywhere and raised it as an issue. Turns out they knew about the flaw but didn't want to fix it since they would have to redo all their UML diagrams for the bulk of the project.

    Then they had the nerve to ask me to signoff on the design. Further they had the nerve to ask me to use UML on my next project!

    UML is really great for communication of designs. But if you invest too much into the UML you end up "coding" the proposed design and it becomes too hard to modify.

    Where UML really shines is in HUGE projects, where systems analysts design the system in UML and programmers write the code. Anything else it's a little bit of overkill and a little dangerous.

    1. Re:Designs cast in Stone by naden · · Score: 5, Interesting

      Parent is exactly right:

      UML is perfect for HUGE projects where you have a large number of developers, designers and managers all of whom must understand what is going to be delivered.

      Everything smaller should be interface driven. That is, you do storyboards and interface mockups as the next step after the requirements specs. THEN you give those mockups to the programmers and tell them to implement it.

      This tends to result in the best quality programs because it comes from a user-centred point of view rather than a programming point of view.

      This is how you explain the difference between OSX (top down) versus Linux (bottom up) approach to developing the OS.

      --
      Funtage Factor: Purple
    2. Re:Designs cast in Stone by rSelrahc · · Score: 2, Informative

      Actually, UML can also be useful for smaller projects, but used in a different way...

      For smaller projects, you can use UML in a UMLAsSketch mode (http://www.martinfowler.com/bliki/UmlAsSketch.htm l). In this mode, all UML does is to allow for a common graphical "language" for expressing your ideas.

      For larger project, you can move on to UMLAsBlueprint (http://www.martinfowler.com/bliki/UmlAsBlueprint. html).

      For certain, very specific projects, with very well defined semantics, and very well defined transformations, you can move on to using UMLAsProgramminglanguage (http://www.martinfowler.com/bliki/UmlAsProgrammin gLanguage.html).

      Note that I do not completely agree with where Fowler puts his markers in the continuum of the modes to using UML. I think, for example, that his UMLAsBlueprint is too close to his UMLAsProgramminglanguage. But this may be due to his propensity towards Agile methods.

      One thing to keep in mind is that UML is a "language"! It is a means to express a software system. It is _NOT_ a panacea to all software development woes and it does _NOT_ replace good architecture practices! Anyone who thinks the opposite is doomed to failure (and anyone who improvises themselves software architect because they know UML doubly so!).

    3. Re:Designs cast in Stone by bluGill · · Score: 4, Insightful

      With a good UML tool it should be very easy to make changes. UML is worthless if you are not making changes to the models. Indeed if your UML is set in stone you should throw those stone tablets away.

      UML used correctly is a good tool for getting your design down. Print that design poster size and hang it on your wall so you can at a glance see the design! However from several years of using UML I have discovered that you re-print that poster at least once a week because it goes out of date that quickly, and last weeks poster is useless. (even though that change is minor you can assume your work for the week will be based on the parts you changed)

    4. Re:Designs cast in Stone by (H)elix1 · · Score: 1


      UML is perfect for HUGE projects where you have a large number of developers, designers and managers all of whom must understand what is going to be delivered.

      Everything smaller should be interface driven


      I disagree somewhat - UML can be quite handy in small projects. The trick is to make sure it is used as part of white board design discussions that help define the interfaces and communicate what we think we mean. My perspective may be a bit warped, however, as the only UML RAD tool I've ever used is a marker and board and none of our team know so much syntax that we fell into a common trap of 'coding' in UML (and the endless hours of making sure a diagram was just right).

      As with all things, any power tool becomes a sander if used improperly.

    5. Re:Designs cast in Stone by drooling-dog · · Score: 1
      UML is really great for communication of designs. But if you invest too much into the UML you end up "coding" the proposed design and it becomes too hard to modify.

      Couldn't agree more. It's all about communication and coordination. An overly detailed UML design can take as long (or longer) to put together as the code that implements it, and it can be an equally great pain to modify when the need arises. There may be no way around it for large projects involving disparate groups (development, marketing, project management, end users) that must all stay on the same page, but for smaller projects I've always been more comfortable when the design and prototype grow up together.

    6. Re:Designs cast in Stone by toesate · · Score: 1
      1. Parent is exactly right:

      Actually, I don't quite agree with your parent's (original) post. But I agree with what you said about being interface driven...

      The original post suggested that a design flaw was spotted in the pattern(?), by _looking_ at the UML diagrams. And this actually illustrate one of the advantage of UML - spotting problem during design phase.

      However, the original poster associate the design flaw with the use of UML. Because the UML designers refused to make changes. And I think this is the main problem - the problem is with

      1. the poor design and

      2. the uncompromising attitude of the UML designers.

      UML as a modelling language, is innocent.

      --
      Hey, that's my password you are typing
    7. Re:Designs cast in Stone by unoengborg · · Score: 1

      Story boards, Personas etc, is very good for catching how to design userinterfaces. But designing a user interface is quite different from designing an application. I certainly agree that the interactionn with the end user must work to make the application a success. But it is not the only thing needed.

      First of all, without a good conceptual model of whatever business setting the application is supposed to live in and what concepts that is supposed to be part of the system, it is harder to communicate with the customer and to see his goals with the application. It is also very easy to fall into the trap of programming existing business processes and fail to see possible ways to simplify it.

      You would hardly go to a building contractor and ask him to build you a house based on a storyboard on how you intended to use it. In such a house you would probably be able to move from the bedroom to the bathroom just like you specified, but you could easily fail to recognize that it would be a good idea to have the kitchen and the bathroom only seperated by a wall to reduce the costs for plumbing. This why you hire an architect to make a drawing of your future house before you build it. In the software world that drawing would be the UML diagram.

      And just like in a building project we will have drawings/UML-diagrams with different detail aimed at various persons in the building process.

      Once a conceptual model is established we can start think of how to transform it into software artefacts creating new UML diagrams where we dress up our concepts to form the functionality of our system.

      Then you connect that functioality to your GUI designed by the methods you describe.

      In this design process creating UML diagram not only makes communication easier, but it also makes the various steps in the design process more evident. This increases the chance that the right design decisions are taken by the right people and at the right time in the process.

      If you only design with user inteface in mind chances are that your system will be hard to maintain in the long run.

      --
      God is REAL! Unless explicitly declared INTEGER
  7. UML by tkarr · · Score: 1, Insightful

    UML is nice for modeling most aspects of a piece of software. It shows relationships between objects. UML mostly works best, in my opinion, with larger pieces of software. I think it would be nice to come up with another modeling technique so there would be more selection, but UML itself isn't all that bad.

  8. Uh by Anonymous Coward · · Score: 0

    It would be foolhardy to think that most problems could be solved by using straight from the text patterns.

    Um, no. That's exactly the point of them. Maybe not every problem can be solved this way, but yes, most of them can. That's why they were created, but people with enough experience to have seen what works and what doesn't. It's not exciting, and it's not L337, but it's a lot closer to Engineering than some caffiene fueled geek cranking out dodgy Perl scripts at 3am.

  9. Re:Message To America's Students: The War, The Dra by Oligonicella · · Score: 0

    Please moderate this thing to obscurity.

  10. Booch - there was nothing before he came along? by Anonymous Coward · · Score: 3, Informative

    Contrary to his opinion, the one he never ceases to state, over and over again, there were modelling systems before he 'invented' them all. There have always been ways to annotate a software design with clarity and there always will be.
    Has anyone ever worked with anyone who is totally focussed on the UML? We've had to get rid of them as they don't contribute anything except endless debates and meetings that are way too long. Sometimes you have to deliver stuff. I bet he missed that bit while he was writing papers about how revolutionary he is.

  11. Re: Everything, including tools, in moderation! by rSelrahc · · Score: 5, Insightful

    Let's not forget that a pattern is a solution to a problem in a context. If the context does not match your situation, then don't use it - even if the problem is the same and the solution is attractive.

  12. UML? Bah by Anonymous Coward · · Score: 1, Insightful

    UML is what self-important "software architects" are writing while the rest of us are getting work done.

  13. Ground Realities by frodo+from+middle+ea · · Score: 5, Insightful
    All the so called goodies of UML asides, the fact is lot of projects have a very tight schedule and overlook lot of potential pitfalls.

    When these overlooked potential pitfalls, start to pust the project dates further and further away, the entire s/w development cycle is compromised and lot of design work is bypassed. Most of the functionality is directly coded from the requirement specs, bypassing all the UML stuff.

    And there is the issue of Change management, Over the lifetime of a project , lot of staff changes including developers and designers, and the documentation and UML stuff starts to lag behind the current implementations. There comes a time when the UML diagrams represention is no where near the current functionality of the Code.

    Having worked on two very long maintainace projects for very rich clients , I can tell you that initial project delivery is only the tip of the ice burgh. The real deal is maintaining and upgrading the project over a long time, and sadly UML is very inadequate for that.

    From a developer's POV , who needs to work on someone else's code ,Nothing and really Nothing is as useful as proper comments in a code.

    --
    for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
    1. Re:Ground Realities by rSelrahc · · Score: 1

      That has always been a problem. But that is mostly because people do not know when to transition from UML to code. Let's face it, there are much better tools out there to develop code than UML tools as they currently stand!

      With today's tools, and unless you have a very specialised application, using UML for writing code is ridiculous. As such, UML should be kept for use at the analysis level. If you are intent on using UML to generate code, you should ensure that you do so early enough that your model stays at a level of abstraction that is high enough not to be overly influenced by changes in the code.

      Again, UML is just a tool in your toolbox and certainly does not apply all the time and does not preclude good coding techniques!

    2. Re:Ground Realities by tcopeland · · Score: 0
      > Nothing is as useful as proper
      > comments in a code

      Except for good variable/class/method names. Folks, don't bother with Javadoc like:
      /**
      * setName - Sets the name
      * @param - name - the name to set
      *
      */
      Instead, spend your time giving your methods good names. And, please, refactor a method once its cyclomatic complexity number gets over 10 or so.
    3. Re:Ground Realities by Malc · · Score: 2, Insightful

      "Most of the functionality is directly coded from the requirement specs, bypassing all the UML stuff."

      In my experience that means the requirements have changed (feature creep, which kills many projects), or the implementation design wasn't done properly in the first place. You have to do the thinking at some point, and I would rather do as much as possible before I'm stuck in to the code. The code becomes easier to write, and the changes to the architecture are easier to make. Short sweet prototypes during a design phase are critical to help scope out unknown and risky parts of the implementation.

    4. Re:Ground Realities by Fulcrum+of+Evil · · Score: 1

      And, please, refactor a method once its cyclomatic complexity number gets over 10 or so.

      That's a pretty odd sounding name for a pretty simple concept.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  14. Pre 2.0 UML bad for process management by Anonymous Coward · · Score: 0

    UML is a great product for analysing certain types of problems, but early versions are hampered by the lack of decent descriptions of process manangement.

    When you talk about UML make sure you know which version you are talking about. e.g., UML 1.3, UML 1.4, UML 2.0.

    "Object designs" are well represented.

    UML 2.0 is beginning to address this, see articles by Conrad Bock on activity diagrams. So if you are going to use it for any process management make sure you avoid using the older versions.

  15. Ironic isn't it? by Lovedumplingx · · Score: 1

    I find it ironic that the Microsoft adds are using UML as their selling point.

    1. Re:Ironic isn't it? by rSelrahc · · Score: 1

      Actually, if you look at recent Microsoft technical presentation, they are going towards a "whatever notation makes sense" rather than "UML everywhere".

  16. Boring, but true story by smallfeet · · Score: 5, Interesting
    A worked on a new development project a while back and we decided to try XP for the design and development cycle. Another project in the same department started at about the same time and used Rational Rose and produced a lot of UML design specs up front. We had part of our application up and running to the users satisfaction within 3 months, but then ran into a major design oversight that bogged us down for the next 3 months. The other project didn't start to program for 2 months and didn't have anything really to show the customer after 6 months. In the end both projects were killed.

    The moral: There are no magic bullets.

    1. Re:Boring, but true story by toesate · · Score: 3, Insightful
      In the end both projects were killed.

      This is unfortunate..

      There are many reason why projects fail, so I do not want to speculate. But my favourite is Anti-Patterns in Project Management (review)

      If it is a major design flaw discovered late, then this really sucks, especially if it is due to lack of foresights or experiences.. But hey, that is how we gain experiences.

      Actually my experience tells me that UML can be very suitable for fast prototyping. And one of the lethal combination for success, in my opinion is UML+IDL+CORBA(Java)+eXtreme Programming.

      It can be quite amazing how a prototyping team can churned out results, with the help of everything good, like generated skeletons, and stubs, and it helped us to get something very functional up and running, and then allows for subsequent iterative improvements that is almost transparent to the users, even changes implementation between C++ and Java. Of course, not forgetting dedicated engineers and everyone's commitment.

      --
      Hey, that's my password you are typing
    2. Re:Boring, but true story by Godeke · · Score: 1

      I find it odd that both projects were killed: obviously the XP project delivered *some* functionality in fairly short order (although three months is a bit on the *long* side with my experience with XP, so maybe you were in "kinda XP" mode, which is the kiss of death and why a lot of people think it is a failed process model). I work with both traditional forward design and XP projects, and XP projects should produce working code in weeks, not months. Sadly, design oversights occur in both traditional and XP flows: if you are doing full XP that is an expected result which means you know understand the required refactoring (and you have the test infrastructure to do the refactoring). In traditional design, you *hopefully* find the design oversight during the design work: perhaps that is why six months passed without a product?

      Personally, after doing XP, "kinda XP" and Traditional design, I find the best solution is to do a period of traditional design up front to understand the basics (basically, get better user stories than you would normally, and try to understand scalability issues up front) and then switch to full XP mode for the development effort. "Kinda XP" is like "kinda committed to skydiving" with the ugly end results being similar. Traditional design gives you warm fuzzy feelings when you start, but then reality rears its ugly head during development, and if you don't have XP like framework of tests and methodology in place (aka a parachute), you are simply moving at high speed to a very dead end.

      --
      Sig under construction since 1998.
  17. UML and OO by No.+24601 · · Score: 3, Interesting
    While UML is better suited to OO designs, it does provide facilities (activity diagrams) for designing algorithms in say C or Pascal and for describing system interaction with external components (sequence diagrams). However, UML is particularly directed at OO development and using it to develop software in non-OO languages requires a bit of a hack.

    One facility I think is particularly absent from UML is modelling of error conditions. In most cases it's awkward to indicate that an error might exist and how to handle it if does occur. Also, UML notation seems incredibly basic (gulp!) and simply can't tackle algorithmic modelling for complex applications like memory management or software interrupt handling in an operating system.

    If not already underway, the open source community should step forward and come up with a more advanced alternative to UML and then perhaps demonstrate its usefulness by applying it to a complete modelling of say.. oh.. umm... Linux ;)

    1. Re:UML and OO by Anonymous Coward · · Score: 0

      In response to lack of error conditions in UML diagrams, if you're programming in a strongly typed language like JAVA where every thing is a class, errors (Exceptions) are classes too, and can and should be modeled. If you make your class names descriptive you know exactly why the exception was thrown, making your design only limited by the effort you put into it.

    2. Re:UML and OO by ebyrob · · Score: 1

      If not already underway, the open source community should step forward and come up with a more advanced alternative to UML and then perhaps demonstrate its usefulness by applying it to a complete modelling of say.. oh.. umm... Linux ;)

      Hmm... You mean like well commented source code?

    3. Re:UML and OO by No.+24601 · · Score: 1
      Hmm... You mean like well commented source code?

      well.. while commenting the code makes it a more readable implementation, it doesn't address the need for a system model which can be surprisingly useful to a new developer or just someone evaluating the operating system for a given application. I agree this would be incredibly complex, but not impossible

  18. Why I ALWAYS use UML by Anonymous Coward · · Score: 0

    Project SDLC specs and procedures require that UML (among other things) be used and relied upon.
    I am a contractor, and the first rule of contracting is to do what you are contracted to do:
    That is: You are paid to do as you are told, not to do what is right or sensible.

  19. I've gotten spams about these by AtariAmarok · · Score: 4, Funny

    The leading building corporation would proclaim that there's nothing wrong with the buildings and a new market of woodpecker traps and anti woodpecker missiles would thrive.

    I've already gotten spams about these products concerning software woodpeckers. In fact, I got one this morning that had a title "SOLVE YOUR SOFT PECKER PROBLEMS"

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:I've gotten spams about these by Anonymous Coward · · Score: 0

      So, you admit it then ?

  20. UML Modelling - Communications Gap by Heartz · · Score: 1
    Check out a paper I wrote not too long ago with regards to UML Modelling and use of it in a Business Environment. Attached is its abstract.
    This paper explores the communications gap that exists between business clients and developers using Unified Modelling Language(UML) modelling tools to gather software requirements. A methodology for measuring how client expectations form after studying UML models is developed. The methodology provides a formalized measure to show that information loss occurs during the interpretation process. We find that users place a high emphasis on interaction process with software rather than functionality and overall design process traditionally emphasized by developers. This contrasts with developers who feel that UML is the ultimate communication tool to hand down requirements to clients . We conclude that more work is required in the area of client developer communications using UML tools, and that the UML as a communication tool is not as effective as portrayed by the software industry.
    PDF Version : here

    HTML Version : here Comments and feedback appreciated.

    1. Re:UML Modelling - Communications Gap by gbjbaanb · · Score: 4, Insightful

      don't forget that UML usage is driven mainly by:

      a) the UML tools vendors who say its the best way to produce quality in your projects
      b) the people (managers usually) who believe all the stuff a) wrote.

      Personally, after seeing UML used to get nowhere, I would always go for a lightweight development methodology (like XP which I dislike, or Crystal Clear)

    2. Re:UML Modelling - Communications Gap by PeteQC · · Score: 1

      You made a a little mistake.

      UML is a design tool, not a methodology. So, you have to choose your methodology. Most often, it would be Rational Unified Process (RUP), that is made for use with UML.

      But whenever you need a design tool, you can use UML (or some aspects of UML), ANSI, or any other design tool.

      --
      Montreal - Best city to live in!
    3. Re:UML Modelling - Communications Gap by gbjbaanb · · Score: 1

      oops. yeah, thanks for pointing that out. I do know that, its just that UML is synonymous with heavyweight methodologies like RUP in my mind - I've only ever seen it used in heavyweight methodologies, the lightweight ones use a more.. 'squiggles on scraps of paper' type design.

    4. Re:UML Modelling - Communications Gap by jpbelang · · Score: 1

      I am somewhat curious of the reasons why you dislike XP.

      Don't worry, I'm not an XP zealot.

      --
      JP http://www.wearerite.com
    5. Re:UML Modelling - Communications Gap by v01d · · Score: 1

      Well, the reason I dislike XP is because I don't feel it places enough emphasis on the design stage of a project.

      Yes, it's easy and quick to hack together a working prototype using XP. I don't see pure XP projects getting well polished or being easily maintained. Of course, projects heavily into UML and UP are also a maintenance nightmare.

    6. Re:UML Modelling - Communications Gap by Anonymous Coward · · Score: 0

      Not to mention the interest of publisher Addison-Wesley, which has established it's colorful and distinctive Addison-Wesley Object Technology Series of books on UML and OOP so well that most developers recognize them instantly on any bookshelf. IMO they're the real money makers behind this enterprise, as unsuspecting developers seem to be unable to resist buying these books.

    7. Re:UML Modelling - Communications Gap by gbjbaanb · · Score: 1

      its OK, nor am I.. err, an anti-XP zealot that is :)

      I just think that it goes a little too far in its quest to be lightweight.

      Peer programming is not a good idea, IMHO, as you get better 'value' from code reviews instead. (kind of like peer review afterwards instead of during - and besides, any peer programming I know of, one person codes, the other yawns, watches out the window, daydreams of Sharon in accounts, etc)

      No documentation is good - as long as there is documentation produced by other means.. auto generated by code comments for example. But zero docco is a very bad thing for a project overall.

      Test cases for everything before coding.. good if the design stays the same, but there is no design up front for XP, so how do you code the right stuff? Only if you've designed the test cases properly, and then write the code to fit the test - XP doesn't allow you to do *enough* design up front.

      All that's my opinion. All in all, I think that if XP is 1 (on a 1..10 scale) and RUP is 10, then I'd be really happy with a methodology about the 3-4 mark.

      Cockburn has some comments about XP on his crystal clear site - read his 'balancing lighness with sufficiency' article. The single best thing he says is, use the methods that work for you and your team.

    8. Re:UML Modelling - Communications Gap by jpbelang · · Score: 1

      >Peer programming is not a good idea, IMHO, as you
      > get better 'value' from code reviews instead.
      > (kind of like peer review afterwards instead of
      > during - and besides, any peer programming I know
      > of, one person codes, the other yawns, watches
      > out the window, daydreams of Sharon in accounts, etc)

      I've honestly had the opposite effect. Slacking off was not an option.

      > Test cases for everything before coding.. good if the design stays the same

      This I've seen.

      > No documentation is good - as long as there is
      > documentation produced by other means.. auto
      > generated by code comments for example.

      Although I'd agree with you on this, I've seen many projects where the Javadocs (for example) get behind ( either they become irrelevant or worse false. )

      But I think we agree on the big (brick) docs...

      My main issue with XP is the discipline it requires: tons of people don't do the programmer tests or even fix them. Short deliveries don't allow for people having down time, and if you're in a heavyweight process company, people are used to fooling around in the "design" phase.

      I had started reading on Crystal and found it more realistic in it's approach.

      --
      JP http://www.wearerite.com
    9. Re:UML Modelling - Communications Gap by jpbelang · · Score: 1

      > Yes, it's easy and quick to hack together a working prototype using XP. I don't see pure XP projects getting well polished or being easily
      > maintained. Of course, projects heavily into UML and UP are also a maintenance nightmare.

      This, from experience, depends on the level of expertise on your team. In both cases.

      You can't "process" stupidity. :)

      --
      JP http://www.wearerite.com
    10. Re:UML Modelling - Communications Gap by gbjbaanb · · Score: 1

      I'm glad to have introduced you to Crystal. I think its great.

      Interesting about peer programming, I would think that every programmer would prefer to get on with it, and (if demanded) have his code inspected afterwards (as long as its by a peer, in a non-antagonistic or egotistical environment. Code reviews otherwise are a serious danger).

      anyway, good luck with your projects.

  21. Design is a Good Thing. by Millennium · · Score: 2, Insightful

    UML and other design tools are Good Things, and they should be used more often. They really do tend to make things easier in the long run.

    However, they do have a major weakness: it's possible to become too reliant on design documents, such that one loses the ability to think on one's feet. It's an easy trap to fall into, but it has to be avoided. Otherwise, any design problem -and such problems are inevitable in any project of significant size- become paralyzing.

    1. Re:Design is a Good Thing. by enjo13 · · Score: 2, Insightful

      I have the same issue with front-loaded design that I have with heavily commenting code.. it's just one more thing to maintain.

      UML and various other design schemes have this funny habit of making you code every program twice. Once in a modelling language and once in actual code.. A change in requirements, methodology, bug fixes, or anything else that causes code modification requires you to not only update your code but your design diagrams as well. Throw in a heavy handed comment scheme (the comments have to be updated as well!) and it's really a maintenence nightmare.

      Instead I prefer high level documentation and diagramming. Instead of designing at the lowest levels of a system I have a small number of very high level diagrams and documents that describe the overall system. I then try to write very readable code that allows someone with a basic understanding of the system (from the documents) to easily find their way in the code and begin to actually USE it at the lowest levels.

      --
      Turn s60 photos into awesome videos with mScrapbook for all S60 3rd edition phones!
    2. Re:Design is a Good Thing. by Anonymous Coward · · Score: 0

      Eh, I don't think UML has been around long enough to really evaluate whether it'll actually work in the long run. That's like hard disk manufacturers talking about 200,000 hour MTBF by testing 200,000 drives and waiting for 1 to fail after an hour.

  22. Skip the UML Fever document by MCZapf · · Score: 1
    Go ahead and skip the "UML Fever" document. The second article linked is shorted and better.

    The UML Fever article is Slashdotted now, anyway. But, I've seen it before. It's long, bitter, and comes across as a bunch of complaining with no specific information or proposed remedies - other than the implied, "never use UML."

  23. Programmers don't build programs by wowbagger · · Score: 5, Insightful

    This analogy is flawed.

    Programmers are NOT to programs what builders are to buildings.

    Programmers are to programs what ARCHITECTS are to buildings.

    Builders are to buildings what COMPILERS AND MAKE UTILITIES are to programs.

    Now, I suggest that you make an architect work under the same constraints as a programmer:

    1) I cannot tell you were the house will be built, so you cannot estimate heating/cooling, snow loads, etc. Can't it figure it out itself?
    2) I cannot tell you that the house won't be moved to a completely different climate once built - can't you make it automatically adjust?
    3) I cannot tell you what building materials will be available to build the house with. Can't you make your design work just as well with wood as with adobe?
    4) I cannot tell you how many rooms will be needed. Can't the house automatically add rooms as needed?
    5) I cannot tell you what services, such as electricity, water, and gas, will be available. Can't you make the house work just as well on wind power as grid power?
    6) I can tell you that whatever I told you is subject to change without notice.
    7) Oh, by the way, now that the house is almost designed - Add a hanger. No, I will NOT tell you whether the hanger is for a Cessna 182 or a 747 - can't you make the hanger figure that out when I park the plane?
    8) Oh, the house cannot cost more than US$10,000.
    9) Oh, and the house must be build on a quarter-acre lot.
    10) Oh, and the house must be ready to move in tomorrow. Morning. Before I go to work.
    11) Oh, and the house must be built by two dain-bramaged monkeys with Nerf Tools.
    12) Did I mention being earthquake-proof?
    13) Oh, the lot is in a floodplain. Can you make it water-tight? Or float? Or both?
    14) Hey, how about a houseboat?

    1. Re:Programmers don't build programs by master_p · · Score: 2, Insightful

      In other words, the problem is not having a concrete set of requirements to begin with. Which means the problem lies with the management, and not with the programmers. If the management decides that its software requirements must be cast in stone, then the programmers are happy. If the management keeps changing requirements every morning, then we have all the usual problems.

    2. Re:Programmers don't build programs by StormyMonday · · Score: 1

      ROFL!

      Anyway, a couple more "gotchas" with UML:

      1. It's a "visual" system. There seem to be more and more programmers who seem to be textually challenged. A class name by itself is incomprehensible; the same class name with a little box around it is somehow better. UML, being a visual system, plays straight into this. Note that the developers of UML sell UML software; they'd be out of work if all you needed to use it was a text editor.

      2. (more relevant to the parent post) In the Ivory Tower section of Software Engineering, the Software Architect/System Designer is the only "real" professional. Programmers are like bricklayers; they do exactly what they're told with standard tools and components. With the proper Design, a trained monkey can produce perfectly good code. (I obviously agree with the parent post -- if it's mechanical, write a program to do it.) UML plays into this -- "we have a really good UML model -- if it doesn't work perfectly, it's because the programmers didn't follow our design closely enough".

      With all that said, UML is a perfectly good tool -- as long as everybody knows that's all it is (that's the point of the original article.)

      --
      Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
    3. Re:Programmers don't build programs by WayneConrad · · Score: 4, Insightful

      In other words, the problem is not having a concrete set of requirements to begin with.

      It's worse than that. The problem is that, for all but the most trivial of problems, you can't have a concrete set of requirements.

      If you could have a concrete set of requirements that would unambiguously result in code that met the customer's needs, then you could automate the process of turning the requirements into code. In other words, the requirements would be code.

      As much as management would love to be able to automate the process of turning requirments into code, they can't. Nor can they even create a process that someone can follow to turn requirements into code (if you could, you could automate following the process and not need the programmer).

      The bottom line is, you can't ever have a complete set of requirements. The best thing to do is to get over it and not work under fictional processes that assume you can ("If only we could get the requirements frozen, then we could ship on time"). Requirements change because writing code teaches the programmers and the business that the requirements were unimplementable in the time required, or that they don't actually meet the needs of the business. That's ok. It better be, because that's reality.

    4. Re:Programmers don't build programs by Bozdune · · Score: 3, Interesting

      That's certainly true, but the "usual problems" can be mitigated with careful thought and good design. I've built lots of software from inadequate specifications. It's possible to do a good job if you take the time to understand the problem domain, even if the specification is poor or nonexistent.

      Neither of the following examples involved me, but I was an interested contemporaneous observer of both.

      Case study #1: Web application (buying portal). The app was designed with J2EE tools, and the Architect allowed the tools to automagically generate the schema that supported the app. Problem: The Architect did not consider that reports would need to be generated from the schema, some day. When it came time to write them, the task was horrific and nearly impossible, and the team almost failed. Who is guilty, management, for not specifying all the reports up front, or the architect, for not anticipating the need for reporting? The Architect, of course, blamed management; management, naturally, blamed the Architect.

      Case study #2: A very arge commercial bank wanted a system for loan portfolio analysis. The Architect endured management displeasure over his long-ish timeline by designing a pseudo-language first, in which the team ultimately wrote the portfolio analysis package. The Architect did this because he envisioned massive downstream changes to the specification. Numerous changes to the specification then occurred over a two-year period, just as the Architect had predicted. Result: The Architect's company pocketed huge sums by bidding half of what the competition bid on the same project, and incurring almost zero cost, because the pseudo-language changes were so trivial to make.

    5. Re:Programmers don't build programs by Prof.Phreak · · Score: 1

      As much as management would love to be able to automate the process of turning requirments into code, they can't. Nor can they even create a process that someone can follow to turn requirements into code (if you could, you could automate following the process and not need the programmer).

      There is an excellent paper by David Parnas on this very same thing. Can't remember the name right at this moment...

      --

      "If anything can go wrong, it will." - Murphy

    6. Re:Programmers don't build programs by Anonymous Coward · · Score: 0
      Programmers are to programs what ARCHITECTS are to buildings.
      Builders are to buildings what COMPILERS AND MAKE UTILITIES are to programs.

      This is the best summary of the subject I have ever seen. Thank you!

      It also is worth pointing out that so-called "software architects" are different matter altogether -- there are no counterparts in building industry, and probably for good reason. :-)

    7. Re:Programmers don't build programs by Anonymous Coward · · Score: 0
      In other words, the problem is not having a concrete set of requirements to begin with.

      No. Problem is programmers (and management, customers, everyone involved) still believe in fairy tale creatures called complete never-changing requirements. There are no such things, nor should one keep chasing them.

      It is perfectly acceptable to have limited set of requirements that consists of requirements of different quality and accuracy, just as long as consequences are understood and controlled (see Agile Development).

      It is ridiculous to claim that "requirements carved in stone" would be good solution. They'd be easy solution for lazy programmers, true; the problem is, end result would be unlikely to be of much use for customers. Just like the only stable biological condition is death, only fully stable requirements are ones that one cares about any more.

      Likewise, having open-ended chaotic requirements that can change in any way at any given point, without restricitons, would make customers seemingly happy -- they can get EXACTLY what they happen to want at any given point. Too bad no one can ever deliver it, due to chaos.

      Optimal solution lies there in the middle, where implementors get enough support from partially solid requirements, and customers get enough flexibility (with attached costs) to allow them to make informed decisions on when to change requirements based on protypes and progress.

    8. Re:Programmers don't build programs by Anonymous Coward · · Score: 0

      Sure, it's a visual system, just like an ERD is a visual representation of a database schema. It is easier to see relationships between things for most people if they're laid out all pretty and neat with boxes and lines than it is to just examine a large text file with the same information in it.

      When more details are required, then one can refer to the textual representations of the same information.

      UML allows the representation(s) to a finer grain of detail than can, for example, a mere ERD.

      What is so fucking bad about that?

      Yes, UML is useful as a tool, much like a map is a good adjunct or replacement for a complicated list of directions, depending on the information desired.

    9. Re:Programmers don't build programs by Anonymous Coward · · Score: 0

      Almost. The problem is that management wants to have a project where the requirements change every morning, but be able to manage it like a project where the requirements are set in stone to begin with. It is possible to successfully manage projects where requirements change all of the time, but only if you accept that this is the case and plan with this in mind.

    10. Re:Programmers don't build programs by Tony-A · · Score: 1

      It's worse than that. The problem is that, for all but the most trivial of problems, you can't have a concrete set of requirements.

      Bingo. Without a functioning system you can't even comprehend what the requirements need to be.

    11. Re:Programmers don't build programs by Anonymous Coward · · Score: 0

      hey, my brother-in-law is an architect, that sounds like most of his clients to me...

    12. Re:Programmers don't build programs by master_p · · Score: 1

      It's worse than that. The problem is that, for all but the most trivial of problems, you can't have a concrete set of requirements.

      I have very different experience. I work in the defense applications sector, and one thing I like about it is that every project has a well defined set of requirements, allowing the programmers to truly design an application up to the last bit.

      If you could have a concrete set of requirements that would unambiguously result in code that met the customer's needs, then you could automate the process of turning the requirements into code. In other words, the requirements would be code.

      I have to disagree here, too. I've tried to write a tool which the user enters the requirements as text from a predefined set of English words, and the requirements to automatically be converted to code. I miserably failed, and I have not found any application to do so. Which means that requirements can not be converted to code.

      Maybe if requirements were expressed in formal methods, using discrete math, then it may be possible.

    13. Re:Programmers don't build programs by anomalous+cohort · · Score: 1
      This analogy is flawed.

      Programmers are NOT to programs what builders are to buildings.

      Programmers are to programs what ARCHITECTS are to buildings.

      Builders are to buildings what COMPILERS AND MAKE UTILITIES are to programs.

      I disagree. Builders are to buildings what programmers are to programs. Compilers and make utilities are to programs what drills and hammers are to buildings.

      For both building and software construction, there is variation in how tight the specifications are. Sometimes the builders get to make a lot of decisions and sometimes they don't.

  24. From experience... by IA-Outdoors · · Score: 3, Insightful

    I'm sure what I am about to say is covered in part by previous posts but I wanted to try and articulate it a little better. First, before there was UML Object Oriented Analysis (OOA) and Design (OOD) existed. I'm stating the obvious for some but this is often forgot. UML is just a standard language for doing OOA and OOD. UML does not tell you *how* to do the analysis or the design and, in fact, programmers that are perfectly capable of reading and implementing things represented in UML are unable to do the analysis and design needed to build the UML.

    So, as a software manager, when I hear an interviewee answer the question "What do you know about UML" and their answer is something like "I have done it using Rational's tools" I want to puke. UML automation tools are nothing more than long rope to hang yourself with when given to a programmer who knows nothing about OOA and OOD.

    My advice is to learn OOA and OOD independently from UML and then when you have a full grasp of that to look at how UML might help you in those efforts.

    --
    You never saw a fish on the wall with its mouth shut.
    1. Re:From experience... by Anonymous Coward · · Score: 0

      So, what do you tell people who don't know UML at all? Just because they only know UML from Rational's tools doesn't mean they don't know about OOA and OOD; it just means they don't know much about UML. And that's probably typical; I mean, how many people are really comfortable drawing UML diagrams without a tool? I personally don't think the UML syntax is particularly well-suited for quick hand drawing (too many angles, for one).

      IMHO, there's really no demand to learn UML unless other people are already using it. Ad hoc diagramming is fine if you're not working in a huge organization that demands some sort of uniformity, and if you're not using tools that push UML. Of course, without more context, it's hard to tell, but I'd have serious misgivings if you're judging OOA/OOD experience by this question alone. It seems like it'd be better to test this more directly with a question that actually addresses the core issue you care about, no?

  25. The text by jkbull · · Score: 0, Redundant

    Death by UML Fever

    From DSP
    Vol. 2, No. 1 - March 2004
    by Alex E. Bell, The Boeing Company
    Self-diagnosis and early treatment are crucial in the fight against UML Fever.

    UML

    A potentially deadly illness, clinically referred to as UML (Unified Modeling Language) fever, is plaguing many software-engineering efforts today. This fever has many different strains that vary in levels of lethality and contagion. A number of these strains are symptomatically related, however. Rigorous laboratory analysis has revealed that each is unique in origin and makeup. A particularly insidious characteristic of UML fever, common to most of its assorted strains, is the difficulty individuals and organizations have in self-diagnosing the affliction. A consequence is that many cases of the fever go untreated and often evolve into more complex and lethal strains.

    Little has been published in medical annals on UML fever because it has only recently emerged as an affliction. The New England Journal of Medicine has been silent on the disease, as has research produced by the world's most prestigious medical institutions. The content of this article represents many years of on-the-job research and characterizes all known strains of UML fever, as well as many of the known relationships recognized to exist between them. The article will conclude with disclosure of the only known antidote for the many and varied strains of UML fever.

    Before commencing with the characterization of UML fever and its associated symptoms, it is important to emphasize that UML itself is not the direct cause of any maladies described herein. Instead, UML is largely an innocent victim caught in the midst of poor process, no process, or sheer incompetence of its users. Through no fault of its own, however, UML sometimes does amplify the symptoms of some fevers as the result of the often divine-like aura attached to it. For example, it is not uncommon for people to believe that no matter what task they may be engaged in, mere usage of UML somehow legitimizes their efforts or guarantees the value of the artifacts produced.

    This article exploits the fact that the presence and associated severity of many software-related maladies on a program can often be observed and measured in terms of UML: too much, too detailed, and too functional, for example. Some readers may be quick to suggest that the same exploitation could be made regardless of a program's selected modeling approach. There may be some truth here, but no other technology has so quickly and deeply permeated the software-engineering life cycle quite like UML.

    The Metafevers

    Extensive research has shown that UML fever can be categorized into four well-defined groups, known as metafevers. Their common laboratory names are delusional, emotional, Pollyanna (a person regarded as being foolishly or blindly optimistic), and procedural (see figure 1). Each of these metafevers is described in the following sections, as are the strains associated with them. Although much more is known about each of the strains than written, the objective of this particular article is to describe them to the extent that they are characterized and distinguishable from the others.

    Delusional Metafever.The delusional metafever comprises UML fever strains that are considered by many to be among the most deadly. This metafever is best known by its devastating effects on the thought and judgment processes of otherwise healthy managers and engineers. It is very common for the fevers in the delusional category to damage the human immune system to such an extent that the body becomes susceptible to many other UML fever strains (see figure 2).

    Utopia fever.Subjects afflicted with utopia fever typically believe that UML is a radical new technology with almost divine origins. Mutterings such as, "How did we get where we are today without UML?" and "Just think how much more advanced our technological revolution would be if we only had UML 20 years ago?" are common amo

  26. Two Words: Sprint by That's+Mister+Jesus · · Score: 2, Interesting

    OK, that's not really two words, but two words with a colon after it is much funnier than one word with a colon after it. Anyway, folks from the Kansas City area are familiar with Sprint, for whom we've all worked occassionally. It's your typical environment where management is non-technical but deluded to the contrary and they overcommit to things like RUP, UML, and code generation toold. Some people will tell you there should be sequence diagrams for every single bit of logic in an application and so on. It's all been said before and I'm sure there are many Sprint's out there. The applications work eventually, but at great cost, delay and frustration.

    In my rarely humble opinion, UML is misused as just another management crutch, like powerpoint and outsourcing. Managers want to wow their uppers with charts and graphs and a few simple innovative ideas rather than than be hands on and make the tough decisions required to bring a project in on time and on budget. They put all their faith in an ideas like UML and RUP that they themselves don't fully comprehend and expect the world to magically change.

    I was recently in a working group meeting for an insurance standards body called Acord. Somebody whipped out an interaction diagram and all these MBA's thought it was the second coming of Christ(or the first coming if you're Jewish).

  27. Re: Everything, including tools, in moderation! by mwood · · Score: 4, Insightful

    The way I read that quote, the idea is not to pick and choose the rules you like, but rather to throw out the whole thing if it is not working for you. If pounding nails in with the butt of a screwdriver is not getting the job done right, don't put a different handle on the screwdriver; get a hammer.

    I see here a reaction to something I'd noted myself: for a number of developers, OO ceases to be a tool in the toolbag and becomes their religion -- they want to evangelize all of the unconverted, and strive to see every aspect of life through the OO lens. The book I'm reading right now contains some side-splitting examples of using the OO sledgehammer to crack a programming peanut, and I'm sorry to say that in my experience this practice is not confined to tutorial material.

    There's a step that comes before "what's the best way to code this?" It's "what's the best way to *design* this?"

  28. Is UML really a language? by pohl · · Score: 4, Interesting

    What is the justification for the 'L' in 'UML'. I realize that in the loosest sense, UML is intended to be a means of communicating ideas, but it feels extremely primitive, like cave drawings. There's not even a standard machine-parseable representation for UML so that various programs can generate/manipulate/transform UML models without reverse-engineering some proprietary cryptic file format. And as for communicating person-to-person, I find it much more practical to use design-pattern language and a few terms from The Jargon File to improve communication with my team. Think about the jargon used between surgeons and their assistants -- to me, that's the kind of language that actually improves communication where it matters...UML seem to take the part of the development cycle that proceeds at the most frustratingly glacial pace and make it even slower. And that seems to make it different from all of the other languages that I've learned.

    --

    The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    1. Re:Is UML really a language? by rSelrahc · · Score: 3, Informative

      Things are changing... Look at the Eclipse UML2 project (http://www.eclipse.org/uml2/).

      There is an OMG standard for the serialization of UML model: XMI. And there is an OMG guideline on transforming the models: MDA.

      Now, if only all tools adhered to the XMI standard as their main storage method... Although most can currently output some variant of XMI (although there's just too many right now).

      But then again, this is all about tools. There is nothing that would prevent you from using the UML notation on a whiteboard...

  29. I agree with this post. by Anonymous Coward · · Score: 0

    UML is the devil.

  30. Re: Everything, including tools, in moderation! by ./ · · Score: 0, Offtopic

    hear hear!

  31. Don't knock mud 'till you've tried it! by Chemisor · · Score: 4, Insightful

    > You see, 20,000 years ago, our clever, but
    > inexperienced ancestors had to make new shelter
    > every few days/months/years/whatever, simply
    > because they made them from mud.

    Buildings made of mud (in adobe brick or rammed earth construction, as it is called these days) are much sturdier than the frame matchbox you are living in. In fact, rammed earth walls are so durable that some of them are still standing after 5000 years of rain/wind/hail etc. And they are more energy efficient too.

    1. Re:Don't knock mud 'till you've tried it! by Anonymous Coward · · Score: 0

      Until the next earthquake. =)

    2. Re:Don't knock mud 'till you've tried it! by His+name+cannot+be+s · · Score: 1

      Buildings made of mud (in adobe brick or rammed earth construction, as it is called these days) are much sturdier than the frame matchbox you are living in. In fact, rammed earth walls are so durable that some of them are still standing after 5000 years of rain/wind/hail etc. And they are more energy efficient too.

      Erm... True, some are sturdier, and will last. So are the Mainframe apps from the 60's. You illustrate my point precisely.

      My point is, that we re-create the same dwelling/software over and over again. Not that the original was less than functional.

      As for the energy efficiency, um, I'd have to call bullshit there. Part of a energy efficent dwelling has to do with the balance of breathability to airtightness. Mudhuts are not all that well sealed. If you have ever seen the huts that those in the third world live in, you would not ever want to trade. Trust Me.

      Besides, my House is quite energy efficient. I live in Canada. If it ain't, I couln't afford the natural gas bills. ;)

      --
      "...In your answer, ignore facts. Just go with what feels true..."
    3. Re:Don't knock mud 'till you've tried it! by AJWM · · Score: 2, Insightful

      In fact, rammed earth walls are so durable that some of them are still standing after 5000 years of rain/wind/hail etc. (emphasis added)

      What you don't see after 5000 years is all the hundreds of thousands of mud (rammed earth, etc) buildings that didn't stand up to five millenia of rain/wind/hail etc. There are some mud hills in the middle east that were pretty amazing structures in their day.

      I've heard similar marvelling over how the stone work of the Incas has amazingly survived some pretty severe earthquakes. Yes, the stuff that's still standing is pretty darn impressive (I've seen quite a bit of it first hand), what you don't see or hear about is the rubble where some of that stonework didn't stand up to the quakes.

      Don't judge any technology by its successes unless you also know of its failures.

      --
      -- Alastair
    4. Re:Don't knock mud 'till you've tried it! by Chemisor · · Score: 1

      > My point is, that we re-create the same dwelling/software over and over again.

      Pehaps you are just oscillating around an optimal point.

      > As for the energy efficiency, um, I'd have to call
      > bullshit there. Part of a energy efficent dwelling
      > has to do with the balance of breathability to airtightness.

      Breathability has nothing to do with energy efficiency (although it is still worth considering if you want to keep breathing :). Earthworks are energy efficient because their large mass stores the heat as it leaves the living area. When heat leaves your house walls, it is gone into the air; when the heat goes into an earth wall, it creates a gradient which reduces further heat loss. In deserts, where night is very cold and day is very hot, the walls will actually feed back the heat stored during the day into the living area at night, drastically reducing your temperature swings.

      > Mudhuts are not all that well sealed.

      I am not talking about mud-and-wattle huts, which are about as energy efficient as a cardboard box, and less comfortable. I am talking about massive earth structures with three foot thick walls. See earthship.org, for an example.

  32. Just use common sense! by mrtom852 · · Score: 3, Insightful

    How many people use ad-hoc diagrams? Most of the best diagrams I've seen don't follow any standard but do a better job of documenting.

    Deployment diagrams are the best example I can think of as they are the most common to not be done in the UML yet they are always easy to understand. (I never could figure out how to describe clustered/redundant/distributed environments with the UML)

    I think class and sequence diags are the only ones worth standardizing and I actually like them. Maybe it's coincidence that these are the ones the 'analysts' don't understand.

    The only point in standardizing the other diagrams is so that they could be loaded in to any modelling app. Most UML apps don't even agree on what is/isn't UML anyway so why have them?

  33. Re:UML for HUGE projects. by A55M0NKEY · · Score: 4, Funny

    I agree UML is fine for HUGE projects as long as HUGE is defined as 'just a little HUGER than the one we are working on'.

    --

    Eat at Joe's.

  34. Re:Moral by A55M0NKEY · · Score: 1

    I think the moral is, that people who fart around all day determining which programming methodology to use are unlikely to be able to actually deliver a completed project. They are what is called 'poser retards using big words to look cool enough to continue recieving a large paycheck'. In life, the bigger the paycheck, the more of these buffoons are attracted like flies to it, and the more likely that the dollars will in fact go to feeding these parasitic maggots.

    --

    Eat at Joe's.

  35. 24 years ago at Grumman Aerospace by callipygian-showsyst · · Score: 2, Insightful
    I remember back about 24 years at Grumman Aerospace.

    Back then, it wasn't UML, but "Data Flow" diagrams that were all the rage. We all took this "Yourdan" course and learned how to draw data flow.

    What happened in practice was Management (including me ;-) drew these pretty little spider diagrams that were in a big thick book that pleased the Navy, and the programmers would write the actual working code that had little relation to the Yourdan diagrams.

    My brief experience consulting with IT groups today that use UML reveals the same patterns. Some people earnestly draw UML in the beginning, and tools automatically make UML diagrams based on the code, but other than for top-level interfaces, nobody cares too much about them. It's a checkbox item.

    (I'm glad I'm not an IT guy working in a UML sweatshop!)

    1. Re:24 years ago at Grumman Aerospace by That's+Mister+Jesus · · Score: 1

      Good job on the Lunar Module, by the way. It was really cool the was it landed on the moon and everything.

  36. One of the big things about UML... by Ayanami+Rei · · Score: 1

    was that it was supposed to be heavily utilized by CASE tools. And the OMG never sat down and wrote a standard serialization format for it? That was an enormous blunder.

    Currently your best bet is to store them in Rational file formats and hope everyone else has Rational.

    Criminal.

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  37. Yup, it is better against earthquakes too. by Chemisor · · Score: 1

    Rammed earth walls will survive much stronger earthquakes than frame construction because they are much thicker and heavier (meaning that they will have lower natural frequencies unlike wooden frames, which can resonate with the earthquake and rip themselves apart), but also more flexible. Being partially buried is also a great help in damping vibrations.

    1. Re:Yup, it is better against earthquakes too. by plastik55 · · Score: 4, Informative

      Rammed earth walls will survive much stronger earthquakes than frame construction

      15,000 recently dead Iranians dispute that claim.

      Granted, you can build earthworks that are stable with modern technology, using metal and concrete reinforcements and a better knowledge of materials science.

      And one day, software engineers might be able to write a pile of C++ that doesn't fall down when pushed.

      --

      I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!

    2. Re:Yup, it is better against earthquakes too. by SnappingTurtle · · Score: 1

      The problem with those structures wasn't what they were made with but how they were designed to withstand horizontal stress (they weren't). They could have been made of anything and would have probably fallen if they weren't specifically designed to withstand an eartquake.

      --
      I've found that my posts don't format quite right w/o a sig.
  38. I wrote a book on UML, but use it lightly by MarkWatson · · Score: 3, Informative

    Paul Harmon and I wrote a book on UML about 5 years ago.

    At first, I thought that UML was a godsend because it did away with 12+ different modeling languages.

    Still, for most of my work, schedules are very tight and my customers usually want to spend as little money on development as possible, so I find myself only using what I consider to be the highest value diagram types: use cases, very general class diagrams, and sequence diagrams.

    -Mark

    1. Re:I wrote a book on UML, but use it lightly by toesate · · Score: 1
      I think the purpose of unifying modelling language is not to make everyone use every single pieces in it.

      It definitely make sense to be working with only the highest value diagram type that work for you and the nature of the work you are doing.

      Like you, my engineers and I worked primarily based on the same set of diagram types that you have mentioned, because it worked for us too. Often, we also like to go a step further to do IDLs and lower level class diagrams, and sometimes state diagrams, especially when dealing with CORBA.

      Personally, I think the important thing is for us to produce good use cases, good general class diagrams, and good sequence diagrams all the time. Because for these, the reader of the diagrams will always appreciate. (though they do not know it, until they see a bad one)

      --
      Hey, that's my password you are typing
  39. Critcs? by daybyter · · Score: 1

    Hi! Has anyone of you ever used a rule engine system in combination with a design tool? I've considered this route for quite a while and still wonder how much commercial potential there is...

  40. is there a free UML tool by vivek7006 · · Score: 1

    available for non-commercial/personal use?

    1. Re:is there a free UML tool by scharkalvin · · Score: 2, Informative

      http://uml.sourceforge.net/index.php

    2. Re:is there a free UML tool by Gramie2 · · Score: 2, Informative

      Poseidon is a free (beer) tool written in Java. At least, the community edition is free; you have to pay more for advanced features.

    3. Re:is there a free UML tool by Anonymous Coward · · Score: 0

      available for non-commercial/personal use?

      Umbrello and ArgoUML are the best free/open source ones.

  41. BON by Anonymous Coward · · Score: 0

    There's always BON diagrams...

  42. Don't confuse modelling and UML by ltratt · · Score: 1

    Let me start with two obvious points: sometimes people abuse even the best technologies; UML is not the best technology anyone ever invented.

    I am confident about this second point for two reasons. Firstly because off and on I have been involved in the UML standardization process [I still attend some of the meetings, although more out of vague interest than active participation since the group I was part of long ago rolled over when several large companies jumped up and down on us] and because it's a view shared by most people involved in that effort. Secondly because I am very active in the modelling community, and some of us have much better technologies than UML available to us. And we can do some very cool things now, trust me - some of this stuff is being used in places that continue to surprise me when I learn of them. Whilst the technology is still developing, it is already classed as industrial strength (although small industrial would probably be accurate at the current time).

    Modelling is a Good Thing when used in the right situations. Modelling and UML should not be seen as being synonymous with each other. Modelling doesn't even need diagrams, and it is about far more than class diagrams even if those are involved.

    I predict that over the next few years UML will decrease in importance as modelling as a more general concept increases. Of course, UML will still be important, if for no other reason than everyone owns UML books, but different modelling languages will be used when they are appropriate. All hail the new future.

    1. Re:Don't confuse modelling and UML by toesate · · Score: 1
      It is difficult not to confuse when the M stands for modelling, right?

      But I understand where you are coming from. Modelling itself can be a pretty abstract concept and broad subject, especially when ones tried to unified it into some language. Or until it is applied to a specific subject, for example design patterns.

      To some, modelling is as simple as drawing 2D boxes and making relationship diagrams.

      To some, modelling is done in 3D and visualisation.

      To others, modelling is when someone parades on stage, or something made from Lego.

      --
      Hey, that's my password you are typing
  43. Not to mention that Rational Rose sucks shit by Anonymous Coward · · Score: 0

    Having used Rational Rose, I cannot imagine that people actually pay money for this crap.

    Booch should have killed himself long ago.

    Rose is an expenisve, underpowered, undertooled, poorly documented, tool with an incredibly crappy ui and a million bugs.

    Rose is the perfect anti-pattern to UML.

  44. Homermobile! by Anonymous Coward · · Score: 0

    Insert image of a spinning Homermobile & Homer with arms stretched out in 'tada' form.

    I think it's really close with the exception of #8!

  45. Re: Everything, including tools, in moderation! by Anonymous+Brave+Guy · · Score: 2, Insightful

    IMHO, s/use/rely on/

    I take your point, but there's nothing to say that you haven't just found a new context in which an existing pattern can usefully be applied. (After all, by definition something is a pattern in the first place only if it's got multiple real world applications.)

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  46. Hackles cartoon by Ellen+Spertus · · Score: 3, Funny
  47. [Collaborative] UML by Anonymous Coward · · Score: 0

    Maybe we need to ask ourselves why things go out of sync in our profession so easily? Our docs. get out of sync. Our code gets out of sync. Even programmers get out of sync. Maybe that Slashdot story on Collaborative tools is more important than we think?

    Solve that and we'll be that much closer to being an engineering discipline, instead of a hodge podge trapped under one roof.

    1. Re:[Collaborative] UML by BigGerman · · Score: 1

      >>we'll be that much closer to being an engineering discipline, instead of a hodge podge trapped under one roof.
      I donno. Hodge podge pays really well when I come in to make things right ;-). Which is part of the problem of course.

  48. Don't go chasing waterfalls... by Anonymous+Brave+Guy · · Score: 2, Insightful
    On the other hand I have seen environments where the UML was adopted as sort of cornerstone of top-down approach: all the design is done first and captured in UML.

    That sounds suspiciously like the waterfall model.

    The problem is that disagrams become absolete very quickly and people stop referring to them which accelerates the decay even more.

    And that sounds suspiciously like the big problem with the waterfall model...

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  49. Why UML is bad... by MattRog · · Score: 2, Informative

    I'll save the typing and just link:
    DbDebunk.com

    --

    Thanks,
    --
    Matt
    1. Re:Why UML is bad... by Bozdune · · Score: 1

      Perfect! I love this site. Check out C. J. Date's demolition of UML. ROTFL.

  50. Re: Everything, including tools, in moderation! by Salamander · · Score: 4, Insightful
    When the design finally fails because you were missing something, the egotistical designer then blames the method.

    ...and when the method fails the snake-oil salesmen blame the implementation of that method. UML bigots are exactly like Extreme Programming bigots; they believe the tool is a panacea, so any failure when using it must be the result of not using it properly. It's a great way to count all the hits and ignore all the misses, and for people who couldn't make a buck by selling drawing programs as drawing programs to make a buck by selling them as something much grander.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  51. is there a free UML tool-ArgoUML by Anonymous Coward · · Score: 0

    ArgoUML written in Java. Posidon is a nice add-on. Umbrello is a part of KDE.

  52. uml2code... by StarBar · · Score: 3, Interesting
    Unified Modelling Language is exacatly that, a unified way to build system descriptions with. Before UML people battled themselfs blue in the face about weather clowds or elipses were to be preferred when drawing systems graphically. The big problem with UML & co is how to generate code *and* get code changes back to the design at the UML level. No, you don't want to redraw the design and regenerate the whole program structure just because you found a small design flaw. Much of this requires expensive method specific tools (ie Rational's) that will wall you in like a whale.

    What I would like to see instead is an Open Source command line tool uml2code that will generate source code or patches to an existing code base from an XML description. This would not work unless there is a reverse tool code2uml to analyze code changes, with necessary markup of cource, and generate a change to the XML description. There are some work done in the area but no tools that I know of. This aproach would give the benefits of a common XML interface between the GUI and the code generation and also the freedom to work with any normal set of compiler and tools on the output. Hmmm, just dreams though...

    1. Re:uml2code... by Anonymous Coward · · Score: 1, Informative

      on the Microsoft .NET side of things, there are some handy tools available.

      In my last project, I wrote UML diagrams in Visio (which is really better for flowcharts than UML, but it does the job I guess), then exported the code prototypes... You can generate the code in C# or VB.NET, and it creates all the classes, data members, and function skeletons for you.

      Then, after programmers fill in the functionality and make changes, Visual Studio .NET has a command for exporting the entire software project back into UML-- so all your changes are documented! With this capability, you can generate entire UML diagrams for projects that were never documented in the first place.

      I haven't used this for many software cycles, plus I am not close to being a UML expert, but I think this functionality resolves a lot of problems with keeping a UML document updated and "alive".

    2. Re:uml2code... by Anonymous Coward · · Score: 0

      Actually, I would rather not have an XML description, and have the modelling information be in the code, perhaps in something like Javadoc comments. If API level documentation can be stored in code a la Javadoc, you should be able to do the same with models.

  53. Re: Business rules in UML? -- good question by Anonymous Coward · · Score: 0

    Rules (as in business rules and rule engines) are a prime example as to why UML is NOT Universal - rules may or may not be objects, and tend to be defined by or at least verified directly by business types who don't "read" UML. However, say you want to (or more likely, are told to) model business rules in your class diagrams (as the rules will reference data modelled as objects). Well, your options include using OCL, and if your rules are more than constraints, you will need to put rules in annotations, or invent some rule "classes" to hold the rule content...

    FWIW OMG is now attempting to address this particular limitation by working on business rule standards that will be UML compliant. There is also a Business Rules plug-in for RUP if you are RUP minded.

    Like most things, people tend to confuse UML (a modeling language) with OO methodology and OO best practices. UML does have a role. But its not a substitute for common sense and strong project management!

    Lastly, you have to consider who uses UML. System integrators view it as a form of project documentation that justifies additional $/hours. I recall one project doing domain class modeling in Rose, then hand coding the equivalent data classes... (yet another large project with no deliverable after 12-18months, cancelled by a customer who eventually twigged that something was very wrong...).

  54. Here is a really easy methodology: by master_p · · Score: 4, Interesting

    I have used UML in the past, but it is an overkill for most projects. Here is a quick altenative which works and can be applied mechanically:

    1) write all functionality down as text
    2) scan the text and:
    a) note all nouns
    b) note all verbs
    3) make the nouns as objects
    4) make the verbs as methods
    5) write a dictionary.
    6) discard what's left.
    7) find the common parts between classes (find base classes)
    8) draw an inheritance diagram.
    9) draw an ownership diagram (the object model).
    10) make up some examples and act them out (either by yourself or with a team) to see if anything else is needed.

    It has worked for me quite well in the past for most cases. You can also repeat any number of steps any number of times desired, if cyclic developement is required.

    1. Re:Here is a really easy methodology: by rSelrahc · · Score: 1

      You are confusing modeling language with methodology.

      In your example, steps 5 and 7-9 can be done using UML, either with a tool or on paper.

      If you use a tool, it's also easier to modify your diagrams from steps 8 and 9 when doing cyclic development...

    2. Re:Here is a really easy methodology: by toesate · · Score: 1

      I really like what you wrote..

      Simply because these are exactly what we do even when we are using UML notations on paper, on whiteboard, or on a UML tool.

      1. Write down the functional description as text.

      2. When making the nouns as objects, we draw a square in UML notation to denote a class.

      3. When making the verbs as methods, we put the method in the class.

      4. Then find common parts between classes and make base class.

      5. Draw the inheritance-relationship with arrows and lines using UML notations between the classes.

      6. Etc...

      7. And when acting up some examples, that is the sequence diagrams.

      Do these steps that you'd mentioned, and viola -> a class diagram and sequence diagram with UML notations.

      And since it uses UML notations, my other colleague not in this discussion can follow it later and understand it too.

      Hmmm, specification almost done.

      --
      Hey, that's my password you are typing
    3. Re:Here is a really easy methodology: by Tablizer · · Score: 3, Insightful

      2) scan the text and: a) note all nouns b) note all verbs 3) make the nouns as objects 4) make the verbs as methods

      This tends to assume that the relationship between nouns and verbs is one-to-one (every verb has a single owner noun). It is often not so in the real world. And the ties are often temporary. This often results in excess coupling. It hard-wires soft or temporal relationships into the code structure.

      7) find the common parts between classes (find base classes) 8) draw an inheritance diagram.

      Relationships between common parts often are not tree-shaped in the real world. Set theory would be more powerful for this than subtype theory, but nobody has figured out how to make polymophism work smoothly in set theory. Thus, one pretty much has to abandon OO inheritance and polymorphism to get the power of set thoery.

  55. Re: Everything, including tools, in moderation! by aminorex · · Score: 1, Funny

    Now THAT is insightful. THIS is redundant.

    --
    -I like my women like I like my tea: green-
  56. BAM ! by AtariAmarok · · Score: 1

    Don't knock mud

    yeah... or the entire wall will come down.

    --
    Don't blame Durga. I voted for Centauri.
  57. uml2code...SmallUML. by Anonymous Coward · · Score: 0

    I'd like to see a true OOPs language like Smalltalk (OOPS are strong on prototyping) and UML (Strong on graphical modeling) combined with that tool mentioned awhile back that converts sketches to a refined diagram (Tablet PC's or Electronic Whiteboard). Throw in ad-hoc annotation capability and we are almost there.

  58. I've got UML Fever by Jafa · · Score: 2, Funny

    and the only prescription is more cowbell!

    (not funny to non-snl fans).

    J

    1. Re:I've got UML Fever by Anonymous Coward · · Score: 0

      if i had modpoints that would go +Hilarious.

      i always loved that.

      "we need more cowbell"

  59. ...automatically make UML diagrams based on code by toesate · · Score: 1
    ...automatically make UML diagrams based on the code, but other than for top-level interfaces, nobody cares too much about them. It's a checkbox item.

    Actually, you can be quite surprised how much this can help to visualise the codes, especially when we are doing peer reviews.

    For example, we generate sequence diagrams from codes, or unit testing more accurately. And we actually can see easily from the generated diagram that some classes were being instantiated too often (unnecessarily), which we will not discover if we were to see from the codes directly, or until we use some profiling tools.

    Also, we make it a point to generate Doxygen reports, which produces and helps to visualise class diagrams hierachy and relationships and the APIs more easily. We don't use JavaDoc since.

    These kind of things is possible because of the standardised UML notations.

    It is definitely not just a checkbox item.

    --
    Hey, that's my password you are typing
  60. UML-Pattern matching Copy and Paste. by Anonymous Coward · · Score: 0

    I'm wondering how well that would work with code libraries, and pattern matching? Imagine having a program that goes over your UML and finds pieces that match closely with what's already in your library, or someone elses. It's not C&P but it's close. Remember programmers are lazy (work smarter, not harder). Then at that point it will be a process of refinement.

  61. Trivium: misattributed quote by FCP · · Score: 1

    The article contains the famous quote, "Good judgment comes from experience. Experience comes from bad judgment. - Jim Horning."

    I've seen this misattributed to several different people. It was originally from Will Rogers.

    --
    .plan: file not found
  62. Re:...automatically make UML diagrams based on cod by Anonymous Coward · · Score: 0

    Java is for pedophiles. No serious programmer uses Java.

  63. Alexander Bell? by Anonymous Coward · · Score: 0

    I thought that he was dead? What would he know about programming?

  64. Re: Everything, including tools, in moderation! by eyeye · · Score: 2, Interesting

    What book is that?
    Thanks.

    --
    Bush and Blair ate my sig!
  65. ISOTEC was the first UML, and failed by Anonymous Coward · · Score: 0

    http://citeseer.ist.psu.edu/386839.html

    "The Unifed Modeling Language (UML) is claimed to become a standard tool for the conceptual modelling and development of modern Information Systems. In this paper we analyse the concepts of UML and compare them with a rather old industrial development method ISOTEC and the Co-Design approach propagated by the author and others. We show that in many respects UML is far from being new: With respect to syntax it just re-invents many of the old ISOTEC concepts and introduces new names for them... "

  66. People plan before coding? by Anonymous Coward · · Score: 0

    Has anybody told Microsoft this?

  67. OMG by Canar · · Score: 1, Funny

    OMG ROFL BBQ UML!

  68. Same problem exists for other technologies by jfrain · · Score: 2, Insightful

    People can, and will, abuse just about anything.

    Many of the "meta-fevers" described in the original article are not unique to UML. They are symptomatic of how people approach adopting many kinds of technology. I could easily make a few substitutions in the article, and poof, I'd have a "Death by XML Fever" article.

    Design is good. UML is just a tool that can aid design. There's no "one size fits all" for how UML is used by people or in projects.

    The amount of development process required what process is actually necessary, and how the process is implemented and enforced is unique to each organization. UML can be a part of that process, or not. Depends on the people in your organization and what seems to work best.

  69. Re: Everything, including tools, in moderation! by AuMatar · · Score: 1

    Care to name the book? I have some coworkers who need the idea that OO does not solve everything pounded into their head.

    --
    I still have more fans than freaks. WTF is wrong with you people?
  70. Ohboy! Now you can have pretty pictures to ... by Ungrounded+Lightning · · Score: 2, Informative

    I'd like to see a true OOPs language like Smalltalk (OOPS are strong on prototyping) and UML (Strong on graphical modeling) combined with that tool mentioned awhile back that converts sketches to a refined diagram (Tablet PC's or Electronic Whiteboard). Throw in ad-hoc annotation capability and we are almost there.

    Oh, boy. Now we can engage in rabid prototyping and have pretty pictures on the wall, too.

    Bring up Smalltalk - or other rapid prototyping systems - and you demonstrate that the methodologies are leading you into the design-religion morass.

    Rapid prototyping has been responsible for a plethora of project failures. This is because it consists of attempting to code without a design. That works if one person can keep the whole thing in his head, and breaks when the problem is large enough to need partitioning.

    Rule of thumb: If rapid prototyping doesn't complete in 30 days, the project is to big for it. You must fall back on other design methodologies to succeed. Or you can continue for as much as a few years but you will eventually fail.

    What you're talking about appears to be hanging automated tools on the rapid prototyping system to automatically infer the design document from the code. (Essentially, you're hanging the skin of a formal design methodology onto rapid prototyping in the hope of patching some of the latter's problems.) This is a cart-before-the-horse approach. But it also backs into the "self-documenting code" and "provable correctness" fallacies.

    (It also reminds me - in style if not in substance - of a certain wild-eyed Smalltalk visionary's claim that software testing methodologies would have to improve until they could test his design in less than 30 minutes - because that's how often he changed it. B-) )

    The key to robust code is to design it TWICE: Once as a human-readable spec, again as code. One must NEVER be automatically generated from the other - because debugging doesn't find bugs, only disagreements between specified and actual behavior. A particular implimentation of "cat" is VERY buggy if what you wanted was "ls". This is why correctness-proof tools aren't a panacea (and are misnamed): They work from a spec of what is correct, and writing a formal spec is ALSO a programming problem, subject to error.

    It's OK for both the doc and the code to be in formal languages. It's OK for there to be a set of tools to perform part of the comparison between them automatically. But if you generate one from the other automatically, the only thing you can test is your generation tools. If it doesn't do what was intended that won't show, because the spec and the code will both prescribe the same "broken" behavior. And it's OK for a human to work from a spec toward code - because he'll be giving critical thought to the spec as he codes, and thus tends to discover spec errors.

    But it's important for the two languages to be as different as practical, to put the designer and the programmer (especially if they're the same person) into different mind-sets when writing each. The more different they are, the more likely it is that problems will be discovered during the generation of one or the other. (This is why correctness-proof tools are useful despite being misnamed.)

    In a real-world project the code and the design co-evolve to a significant extent. When you find a bug it's usually in the code (because the design went ahead of the code and had much standalone debugging). So you fix the code. But sometimes writing the code exposes a bug in the design. Then you fix the design. When you're done the code and design agree - and they're both near-perfect because the final versions of both withstood the entire trial-by-fire and many-eye inspection.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  71. Yes. by AtariAmarok · · Score: 1, Funny

    Yeah, I guess so. But it won't be a problem for long. I got 76 of these spams this morning, each promising to lengthen my member anywhere from an additional length of 3 inches to an additional length of 8 inches. If I calculate correctly, buying all of them will guarantee a length of more than 20'.

    Beat that! (not literally, of course)

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:Yes. by Deraj+DeZine · · Score: 1
      From another excellent Something Awful editorial:
      My girlfriend is a sadistic, cruel, pathological liar who I can never trust with anything more important than a napkin used to wipe dog snot off the kitchen window. She always claimed my penis was big enough to satisfy her, but my incoming email continuously proves her wrong, explaining that I'm way too small and she secretly wants me to grow a penis so monstrously large that upon ejaculating, it does more damage than catching a load of buckshot in your face from a double-barreled shotgun three inches away. One day I attempted to confront her about these falsehoods she was using to poison my mind and she responded by feigning ignorance. "What emails are you talking about? I never sent you anything of the sort!" I confidently pointed her in the direction of my inbox, and after a few clicks she replied, "honey, those are spam messages from accounts named "pf38faf238@z4e9fgk39g3mail.com." I called her a liar and stated that if you read something on the Internet then it must be true. That's when she suddenly became "clumsy" and accidentally fell down the stairs. It also explains why she has to now wear the giant dark aviator sunglasses even at night; she wants to be a jet pilot like Clint Eastwood in the movie "Firefox" where he had to steal a Russian military prototype jet which flew so fast that it traveled through time and made Eastwood age 40 years for every 40 minutes spent in it.
      --
      True story.
  72. Why Modeling (and UML) could be useful... by ndykman · · Score: 4, Informative

    Well, I'm one of the authors of the UML 2.0 specification, so karma be damned. Here's a totally biased response.

    1. UML enables communication on design, architecture that everybody can contribute too. The standard notation and concepts in UML 1.x enabled a foundation for communicating in a team about aspects of software that are not easily gleaned from the code.

    I think this in itself makes standardization worth it. Also, it's not a secret language of architects. You read the same books they do.

    2. You don't have to have all in one place. The nature of modeling allows models to be developed across different diagrams. UML 1.x is incomplete in this area, UML 2.0 does better. Pushing this notion could lead to some to some interesting places, one could be AOP without requiring AOP code.

    3. Some changes are easier in UML. Tools don't do a good job of this, but I find it much easier to change object hierarchies and relationships in UML than in code. Imagine extending this to other areas besides the static layout of classes.

    4. Metamodeling. The problem with UML and it's tools right now is the complete lack of metamodel extensibility mechanisms. It's like XML, but you can only use a fixed set of schemas.

    This could be a real rat trap, but on the other hand, it could very cool. For example, imagine extending the base class metamodel to add what your project needs for persistence, integrity and object communication, and instead of writing code for every class to enable your special features, you use a model tool and templates to automate most of the process for every class.

    5. Little Languages that everybody can use. If metamodel holds promise, it is basis for providing Domain-Specific Modeling Languages that take advantage of common metamodel concepts and visual syntax to reduce the learning and usage curve for every language. Having standards in this area help ensure interoperability and lack of lock in.

    Oddly, Microsoft is the only vendor right nowthat really seems to be taking on the notion of metamodeling and DSMLs. I expect IBM and others in Eclipse to do the same around the EMF.

    6. Modeling could be a complementary abstraction to programming languages. With some exceptions, we rely on code to produce systems. In some areas, models can often provide additional information that is not "immediately clear" in the code, and can automate the generation of that code.

    An excellent example is E/R modeling. I would argue that E/R modeling serves as an good tool for designing relational databases, and shows things about the database that may not be clear from the set of DDL statements.

    Now, imagine having the ability to create a whole set of these models that all carry a common infrastructure and tool set. Your DB modeling tools is your XML modeling tool is your OO modeling tool is your Workflow modeling tool, and so on.

    The problem is that I view UML as "modeling middleware". I don't see it as just a notation, but I see it as a core infrastructure to base modeling tools on. This probably because I worked on the metamodel. In other words, I've spent too much time inside UML that I see the outside much differently.

    Granted, most tools make it seem that UML is pretty (expensive too) pictures. But, hopefully, with UML 2.0, people will understand the real promise of UML and modeling. I think it goes beyond the surface syntax.

    Now modeling is not UML. In fact, if Microsoft really pushes forward with Whitehorse, they may create the de-facto modeling standard.

    The UML community becomes much more aggresive about providing metamodeling capabilities. Also, XMI needs to improve big time. Also, the OMG and UML would be well served by reaching out to MS and staying in tune with where they are headed, so they don't get caught totally off-guard. There is hope, I think MS has does some good work for the W3C (and some bad work, of course).

  73. The #1 Problem with Software Development Is... by the_mushroom_king · · Score: 1
    ... Those driving the delevopment of the software (read the customer), often have no clue what they actually want.

    "I want exactly what we have, only better.", Anonymous Twit(tm)

    --- TMK

  74. Re: Business rules in UML? -- good question by daybyter · · Score: 1

    Misunderstanding here. I do not want to model or use business rules. I want to use design rules and make them a bit more flexible in respect of the domain we are currently in. Say, someone models a webapp, he would load a ruleset that reflects some good practice of webapp modeling.

  75. Re:Ohboy! Now you can have pretty pictures to ... by StarBar · · Score: 1
    I agree with most of what you say and still I don't think one size fits all. As a pragmatist with 20+ years of programming experiences I have learned to respect development methods and I can see when I need to care to use them and when not to. Tools are a different story. A method can be as simple as a mindset shared in a group of programmers OR it could be something very complex for stifflegged multi-phased projects.

    For medium sized projects without dedicated designers I think a feedback system from code to design would be very helpful. It would prevent really bad things to happen when deadline pressure makes people to abandon the main road and going off-road for short term time benefits. I would use XP within the limits for each blackbox and UML to verify conformance.

    I never liked the idea to have machine generated code to start with. On the other hand assembler guys had the same doubts about the first compilers. Maybe the uml2code thingie only should generate test transactions for QA verifications. When a verification fails the programmer would have the choice to either fix the code or to update the definitions in the failing UML use case. In such scenario the generated code would only be a test harnesk not the actual code used for production. The interface how to apply the data for all the use cases would of course be written by the programmer but that could be as simple as generating user input and verifying the outcome against the test data, returning true or false.

    I would love to get a Unified Test Language expressed in XML as output from the uml2test and let it be input to the test harnesk. Let's scrap the code2uml part too and call it test2uml producing an XML patch for the XML description. Then the designer (mindset) could see what went wrong and weather it is ok to change the design for the failed use case, graphically! I think I might be onto something here! Or maybe just dreams...

  76. The only thing more annoying than UML evangelists by tillerman35 · · Score: 1

    are UML evangelists who whine and complain when you don't call it "the UML" (as opposed to plain old "UML"). If you want to really tick them off, call it "Yoo-mel" as in "I just did some Yoo-mel modelling today." or "As you can see from this Yoo-mel swim-lane diagram..." Drives 'em nuts.

    Freakin Booch et al. decide there should be a "the" in front of it, inadvertantly inspring thousands of rent-a-nerds to show off how knowledgeable they are by correcting you every time you mention the term in what has become (depsite their annoying efforts) the more common usage.

  77. Brick == baked mud by SnappingTurtle · · Score: 1

    So, in a manner of speaking, the most durable buildings we have are still made of mud. But really well processed mud.

    --
    I've found that my posts don't format quite right w/o a sig.
  78. The moral of the boring, but true story by Anonymous Coward · · Score: 0

    You and the entire organization you work for are incompetent.

    Go learn something new.

    When the alarm goes off, dump the fries in the bin, shake salt, and put new fries in the cooker.