Slashdot Mirror


Teach Yourself UML in 24 Hours

Wrinkled Shirt writes: "If you want to be able to work either as or with a systems analyst, you're going to have to speak the same language as everyone else in your team, and in the tech industry that language is increasingly becoming the UML. The Unified Modelling Language provides ways of modelling every sort of system that you can imagine, covering everything from the relationships of your different objects to the dynamics of the system in action to the way it'll look when you physically set it up." He's reviewed below the SAMS-published Teach Yourself UML in 24 Hours; read on below for his reactions to the book, both good and bad. Teach Yourself UML in 24 Hours, 2nd Edition author Joseph Schmuller pages 397 publisher SAMS rating 5.5 reviewer WrinkledShirt ISBN 0-672-32238-2 summary Useful enough as an introductory text, but likely needs companion texts for anyone who wants to design complex systems.

Introduction

The UML was adopted by the OMG (Object Management Group) as their official method of visually representing an object-oriented design, and as such is particularly well-suited to working with CORBA (Common Object Request Broker Architecture). Now, the OMG believes in their acronyms the way the Irish believe in their whiskey, and if you're hoping they'll give you introductory material on how to use the UML without broadening the context to all the other standards the OMG is responsible for, well, good luck. Addison Wesley has an entire series dedicated to the UML and different aspects of it, and O'Reilly's got the requisite Nutshell book, but there's definitely a void for good low-cost beginner texts, and it is this void that Schmuller's book attempts to fill.

Does it succeed? Well, sort of.

The Good

Teach Yourself UML in 24 Hours is a very thorough introduction to the language. The first fifteen chapters alone cover practically every structural and behavioural element, all the important relationships, static diagrams and dynamic diagrams, and even a little object-oriented design theory. As far as computer books go, it's not very expensive at its full price, and is even available at some discount stores. It is also loaded with sample diagrams throughout, and has a large seven-chapter case study going through a sample project design process, terminating with a couple of chapters on miscellaneous applications of the UML.

Understanding the subjective element of design, this book tries to help the reader gain their own personal take on the UML by providing lots of sample exercises to perform, and the sum total is a book that gives the reader a good idea of the effectiveness of the UML as a modelling language. In fact, if I were a systems analyst and I needed to give my team a crash course in the UML before getting them to implement my specs, I could do a lot worse than making them all read this book first.

Unfortunately, here's where the accolades stop. A book that teaches people how to read another person's diagrams written in the UML is one thing, but as an effective reference on how to design using the UML, the book comes up short in a few ways.

The Not-So-Good

Part of the power of the UML is that even though the OMG really needed to it to get their CORBA spec to make sense visually, you can basically use the UML to describe any old sort of system you want. Unfortunately, Schmuller takes a little too much advantage of this, and a disproportionate amount of the examples and diagrams involve physical systems instead of software systems. It's as though software design is a bit of an afterthought, which is fine, but the book could have been richer had it focused more on this aspect of UML implementation rather than, for instance, how to use the UML to model a soda machine.

Another shortcoming is that the book tantalizes us with the odd example proving that part of the power of the UML comes from the flexibility to combine elements from multiple diagrams into a single diagram, and yet these examples are used so sparingly and with no substantive explanation to the methodology involved that you're left with a feeling that even though the UML can do a lot of things, you're not quite sure how to make it do all those things for you.

It's admirable that Schmuller devoted so much time to the case study, and made sure that the scope was broad enough that all of the topics explained to that point got an appearance. However, one of the pitfalls of trying to come up with a case study that outlines a fundamentally subjective process is that some of the design decisions are going to seem arbitrary to some people who don't have a psychic connection to the author. It's not something unique to this book, but this book falls victim to it. Schmuller would have done better to have used those seven chapters to describe two different systems to give a broader idea and more than one context to the process of UML design. He also took a little too much creative license with scripting the hypothetical interview process. A reference book on the UML isn't the best place to try out your best David Mamet impression.

And then there are the really minor problems. Some of the diagrams could use a little cleaning up, and sometimes the basic diagram is represented a little differently in the summary section as it is in the chapter dedicated to it. Some of the more complex diagrams are handled first and the simpler ones later. There's no real explanation that makes sense to a newbie about the difference between an aggregation and a composite. And finally, even though one could argue that learning about the UML itself should be kept as a separate and distinct process from learning about how to program off a UML design, I think such a chapter would have been far more beneficial to a neophyte than the chapter on modelling for embedded systems, which is likely to be the domain of people who are far beyond the level of UML familiarity that this book is going to give you anyway.

Conclusion

Now, even though as individual criticisms these might seem minor, as a whole it adds up to a book that's going to need a couple of companion references for the reader to truly feel ready to start diagramming with the UML in a professional environment. However, as said before, it isn't too expensive and is pretty much alone in the world of introductory manuals to the UML, and even if you're hoping to become a full-fledged analyst you have to learn to crawl before you can learn to walk, and this book will help you do just that. Just don't expect to be running marathons by the end.

Table of Contents
( exploded version here)

Introduction.
Hour 1. Introducing the UML.
Hour 2. Understanding Object-Orientation.
Hour 3. Working with Object-Orientation.
Hour 4. Working with Relationships.
Hour 5. Understanding Aggregations, Composites, Interfaces, and Realizations.
Hour 6. Introducing Use Cases.
Hour 7. Working with Use Case Diagrams.
Hour 8. Working with State Diagrams.
Hour 9. Working with Sequence Diagrams.
Hour 10. Working with Collaboration Diagrams.
Hour 11. Working with Activity Diagrams.
Hour 12. Working with Component Diagrams.
Hour 13. Working with Deployment Diagrams.
Hour 14. Understanding the Foundations of the UML.
Hour 15. Fitting the UML into a Development Process.
Hour 16. Introducing the Case Study.
Hour 17. Performing a Domain Analysis.
Hour 18. Gathering System Requirements.
Hour 19. Developing the Use Cases.
Hour 20. Getting into Interactions and State Changes.
Hour 21. Designing Look, Feel, and Deployment.
Hour 22. Understanding Design Patterns.
Hour 23. Modeling Embedded Systems.
Hour 24. Shaping the Future of the UML.
Appendix A. Quiz Answers.
Appendix B. Modeling Tools for the UML.
Appendix C. A Summary in Pictures.
Index.

Related Links SAMS
Object Management Group
OMG's UML Resource Page
Google Search for Case Tools

You can purchase Teach Yourself UML in 24 Hours at Fatbrain. Want to see your own review here? Read the review guidelines first, then use Slashdot's webform.

262 comments

  1. What about XML ? by forged · · Score: 3, Funny

    The Unified Modelling Language provides ways of modelling every sort of system that you can imagine...

    Isn't this the reason why XML was designed for ? If someone would care explain the difference between the two...

    1. Re:What about XML ? by ergo98 · · Score: 3, Informative

      UML is a Visio-sort of diagramming standard (although now they are formalizing or have formalized a standard file format so different UML formats can actually share diagrams) to convey all manner of software design issues: Usage of a system, sequences, collaboration, etc. Totally and completely different than XML.

    2. Re:What about XML ? by gbvb · · Score: 2, Interesting

      XML is more of a Data description language. UML is more of a Design and prototype description language. XML, You can use it right in your sources while doing data exchange and what have you.. UML, is mostly useful in coming up with that design and how to deploy this stuff etc.
      On a related note, there is an article in a recent Software development magazine on using UML to design XML applications.(I dont have the URL handy.. Sorry).

    3. Re:What about XML ? by schtoo · · Score: 3, Informative


      XML is a way to pass and store data. UML is a way to model systems and interactions.

      XML is to UML what a lumber truck is to a blueprint.

    4. Re:What about XML ? by RazzleFrog · · Score: 3, Informative

      UML is a modeling language. In simple terms, it is like creating a flowchart of system processes and then using something like Rational Rose to create actual code. That is a very simple overview.

      XML is a markup language. Simply again, it is used to allow the easy communication of information between disparate systems.

    5. Re:What about XML ? by beth_linker · · Score: 3, Informative

      XML is used to represent data, while UML is used to represent systems.

      XML is typically used in the implementation of a system, while UML is used to communicate the design of the system (during the design and implementation processes as well as afterwards).

      It's also slightly misleading to call UML a "language" because it consists primarily of visual diagrams drawn according to several standards for notation.

    6. Re:What about XML ? by iguanacharlie · · Score: 1

      XML = Extensible _Markup_ Language. Based on SGML (Standard General Markup Language), it is used for marking up data in a way that clearly indicates the structure of the information. UML is a _Modelling_ Language. Its purpose, essentially, is to describe and specify systems. It provides a way for various participants in a project -- coders, managers, users, etc. -- to be able to communicate about a system being designed. (It's a bit simplistic, but that's the basic idea...)

    7. Re:What about XML ? by spatrick_123 · · Score: 1

      UML (and its associated processes) are used to model requirements and design software systems. It is a very graphical, diagram oriented language, showing the relationship between various software components and how they interact to form a complete system. XML is a markup language, like HTML, SGML, WML or any other *ML.

    8. Re:What about XML ? by jordan_a · · Score: 0, Redundant

      UML is a modeling language while XML is a markup langauge.

      To call UML a langauge is a bit deceptive, it is not a written langauge but rather a visual one. It is a method of using diagrams to show how a system works.

    9. Re:What about XML ? by Anonymous Coward · · Score: 0

      or any other *ML>

      Except, of course, UML which is where the confusion came in originally.

    10. Re:What about XML ? by iguanacharlie · · Score: 1

      Okay -- if I wasn't all psyched about my first-ever Slashdot post, I might have noticed that I needed some HTML tags.

      Here's the readable version: (Feel free to moderate the original down -- is there a "clueless" category?

      XML = Extensible _Markup_ Language. Based on SGML (Standard General Markup Language), it is used for marking up data in a way that clearly indicates the structure of the information.

      UML is a _Modelling_ Language. Its purpose, essentially, is to describe and specify systems. It provides a way for various participants in a project -- coders, managers, users, etc. -- to be able to communicate about a system being designed.

      (It's a bit simplistic, but that's the basic idea...)

    11. Re:What about XML ? by ignantjim · · Score: 1

      Isn't XML more of a lower-level style language? In other words, I would think that UML would be better suited to handle high-level documentation of systems whereas XML is intended to provide documentation of software systems at more of a module level (lower level). Does that make sense or am I way off?

    12. Re:What about XML ? by spatrick_123 · · Score: 1

      Touche - I'm a moron. :-)

    13. Re:What about XML ? by Anonymous Coward · · Score: 0

      Welcome. If you like you can change the style of your post to Plain Old Text at the bottom of the posting screen. You can also set Plain Old Text as your default. I find that if I forget to switch to HTML it still recognizes it as such.

    14. Re:What about XML ? by forged · · Score: 1

      From the various replies to my question, you appear to be are right.

      God it feels good to know that I'm not the only one without a clue here :-)

    15. Re:What about XML ? by Anonymous Coward · · Score: 0

      You aren't too far off. XML describes data which is the core of any system. XML helps you communicate within and between systems.

      UML, on the other hand, models the way a system works. In other words, it is the top level. You can easily use both UML and XML (and Java) in a software project.

    16. Re:What about XML ? by ignantjim · · Score: 1

      Livin' in ignance since '77...

    17. Re:What about XML ? by ergo98 · · Score: 1

      Doh! Of course I meant to say "have formalized a standard file format so different UML applications can actually share diagrams" : As it was (and remains with many tools), every UML application was a silo (or an "island" for those of you for which that metaphor works best) and you either had to recreate the diagram if you changed tools, or forward engineer to an implementation and then reverse engineer back again for a couple of the diagrams.

    18. Re:What about XML ? by kingtonm · · Score: 1

      UML = Modelling the flow through and design of object orientated systems/things (I won't use the word object)

      XML = Is a framework, it's not really a language (I know what you're going to say). Using this framework you can markup your own language subset to transfer or store your specific data in an ordered structure, in such a way that a standard set of tools can be used to read said data.

      and people say I'm just a crazy foreigner....

    19. Re:What about XML ? by Hector73 · · Score: 1

      As everyone else has said, UML is a modeling language and XML is a meta-language standard. Their are proposals out somewhere (OMG? -- can't remember exactly) to have a standard format for describing UML models between applications (for instance, between Rational Rose and Visual Cafe).
      Guess what? The format is in XML.

    20. Re:What about XML ? by nagora · · Score: 2, Troll
      XML is to UML what a lumber truck is to a blueprint.

      But they are both highly over-rated, so they have something in common.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    21. Re:What about XML ? by ergo98 · · Score: 1

      The XML Metadata Interchange (XMI) standard was agreed on in 99, I believe, and allows various UML tools to share diagrams. As you mentioned: It's in XML, though anything could be represented in XML.

    22. Re:What about XML ? by Anonymous Coward · · Score: 0

      The Unified Modelling Language

      Think they got that wrong.. UML stands for Useless Modelling Language, nothing else ! :-)

    23. Re:What about XML ? by Graspee_Leemoor · · Score: 2, Funny

      dude#1: Oh, dude, I so knew this was going to be on the exam but I stayed up late playing rtcw instead of cramming, and there it was: "Compare and contrast XML and UML". What was the answer dude?

      dude#2: While you were playing rtcw, dude, I was inspired to drink 17 cans of jolt and totally learn this question's ass. The answer is "XML and UML are so totally fucking different, it's like untrue".

      dude#1: whoah, so it was like a trick question, dude?

      dude#3: No, dumb-ass dudes, the answer was "Microsoft invented XML".

      dude#4: No way! I put: "Like UML is all boxen and lines and XML is text"

      dude#1: Actually, dude, you could be right there.

      graspee

    24. Re:What about XML ? by cheezit · · Score: 1

      We already know that Slashdot readers don't understand that HTML != XML.

      So if HTML == XML, and UML is like XML, then isn't UML like HTML? And what about HXUTML?

      --
      Premature optimization is the root of all evil
    25. Re:What about XML ? by Anonymous Coward · · Score: 0

      What a friggen crackhead. Next time, PLEASE read the friggen manual BEFORE posting.

    26. Re:What about XML ? by Anonymous Coward · · Score: 1, Funny

      Moderate +5, The Truth

    27. Re:What about XML ? by Anonymous Coward · · Score: 0

      UML = from SGML too. all *MLs are. (HTML, SGML, UML, XML, etc. etc. etc.)

    28. Re:What about XML ? by SurgeMaster · · Score: 1

      I don't know much about UML in particular, but I've found that Microsoft's (evil empire blah blah) Visio is a pretty decent flowcharting program, and it stores the charts in XML format (they're like vector graphics: entirely described by the data; no binary required. :)

      --
      "One empirical experiment is worth a thousand expert opinions." -Bill Nye
    29. Re:What about XML ? by mypalmike · · Score: 1

      UML is not derived from nor directly related to SGML.

      See, for instance:
      http://www.rational.com/uml/gstart/faq.jsp

      Note also that ML, the functional language, is also not SGML-based.

      M.L. Carr, the former Celtics basketball great, was also not derived from SGML.

      > UML = from SGML too. all *MLs are. (HTML,
      > SGML, UML, XML, etc. etc. etc.)

      --
      There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
    30. Re:What about XML ? by frisket · · Score: 0, Troll
      You're way off, I'm afraid.

      XML is a markup language for describing the structure and content of text documents (can also be used for data)...nothing whatever to do with style (that's XSL).

      XML also has nothing to do with software doc specifically, although that's one common use. My project uses it for making electronic editions of ancient Irish manuscript texts.

    31. Re:What about XML ? by Anonymous Coward · · Score: 0

      XML falls short when it actually comes down to being able to model a system. For one, a Truely model based system can be randomized in concordance with all possible actions which can take place in a program. Developing a useable XML document to try and get this type of coverage is impossible past anything bigger than a few dialogs to open or windows to pop up. Where I work we routinely use XML but I ended up having to design something else for complete coverage for our programs. XML is good for documenting and sometime analyzing the program, but overall I would rate it poorly for actually being able to do some of the cool algorithms (Chinese postman, Optimized Random pathing, etc).

    32. Re:What about XML ? by gpinzone · · Score: 1

      Bah. Visio stinks. VisualUML or Togethersoft's Together products are a hundred times better.

  2. UML users, Are there many? by gbvb · · Score: 2, Interesting

    I wonder are there really that many UML users who actually use it for everyday design and deployment requirements? For some reason, It just feels like a language invented to get Rational its share of market. Microsoft did that with VB and C#, Sun did it with Java, and Rational did that with UML so that they can sell more Roses..
    Well, Good for them.

    1. Re:UML users, Are there many? by dthable · · Score: 2, Informative

      At my last job as a C++ system engineer, we were told that everything had to be done via use cases, class diagrams and collabration diagrams. It took months to push changes through the system, but the company was willing to take the expense to produce what they thought was better code.

      My current job is basically me working on some stuff and building libraries along the way. I don't use UML any more but it's a real handy skill to have when I'm trying to explan things to people outside our company.

    2. Re:UML users, Are there many? by SirAnodos · · Score: 2, Insightful

      The last place I worked required us to design in UML first. The only reason for this was because the customers for whom we were writing software required that we impress them with fancy documentation and diagrams.
      I am now working on several projects all by myself. When I am working on something complicated enough where diagramming it out helps me visualize the scope, I find myself using my old shorthand instead of UML, since I am the only one who is looking at it. However, I have found it very useful to know UML when working in teams and they aren't getting what I am saying. If everyone understands UML, then we can communicate. The only other use for it is to impress management or give you some extra interview points.

    3. Re:UML users, Are there many? by akookieone · · Score: 5, Informative

      I've used UML on projects for the last 5 years, and the value increases with team size and system complexity. If you like to do alot of up-front design, refactoring, and use of design patterns before you start coding and debugging, it is very valuable. Especially when you have teams of 50 odd people designing simultaneously - text requirements just aren't as good - you also can't do code generation from text requirements... And Rational is not the only player in town, besides Dia and Argo OSS, TogetherSoft has good products, and so does Tendril (at least for java development).

    4. Re:UML users, Are there many? by GringoGoiano · · Score: 5, Informative


      One of the executives at my company came from Rational. He said Rational never manages to sell their UML stuff into software startups, the place where software is done most quickly and effectively. He said the majority of sales went to IT groups in large companies where less talented people tend to work. The UML lets these companies document a long-lived project at is evolves, and makes sure all development/QA/deployment personnel understand their contribution in relation to that of others.

      For a startup, UML is way too much overhead. If your people can talk, agree on an architecture, and implement a system without all those documents, you're better off.

    5. Re:UML users, Are there many? by Anonymous Coward · · Score: 1, Insightful

      Very true. I work for a "startup" (been around for a few years, but only a small team of programmers) and we hired a project manager who came from a large company. He used the UML extensively to document the system design. He then made the mistake of using these UML diagrams as a major part of his documentation "deliverables" to the client, assuming that a picture is worth a thousand words. They didn't even look at these diagrams which he had invested so much time in, and insisted on written documentation. He was unable to produce alternate documentation to their satisfaction, spent way too much time trying to do so, went WAY over budget (remember, small company, small budget), and in the end, the client was still very dissatisfied with his work, and the company fired him.

      He was a very intelligent, capable project manager (at least at a large company), but the cost of full-blown modelling in a small company with limited resources and limited budget just isn't worth it. Based on my second-hand experience, I'm tempted to say that UML modeling costs MORE on smaller projects / at smaller companies.

      If a visual description is necessary, the next best alternative to the UML is a large whiteboard, some colored markers, and your own imagination. If anyone doesn't get what you are describing visually, you will get immediate feedback, and you won't be as likely to alienate your audience with self-evident-by-virtue-of-being-UML jargon.

    6. Re:UML users, Are there many? by Anonymous Coward · · Score: 0

      You might do better with teams of 50 not-so-odd people.

    7. Re:UML users, Are there many? by frisket · · Score: 1
      I suspect I'm going to have to learn UML for a project where I'll be analysing and then modeling users' expectations of interfaces and their reaction to them (ie click on X and you get Y, are you surprised|disappointed|resigned and why?). I won't be using it to program from (others may do this), more to use as a tool to show why and how...is that in itself a reasonable expectation?

      And no way can I afford Rose...I'll be a *student*. Are there any Open Source implementations?

    8. Re:UML users, Are there many? by Anonymous Coward · · Score: 0

      I consult to various companies from very technology/R&D focused through large IT/business organizations. Along that axis, UML use goes from none/trivial to heavy. The hardcore engineers use class diagrams and have always used state diagrams, but they don't treat UML as biblical literature. The IT folks tend to have less technical background and benefit from a more formalized methodology. I've seen the same correlation with design patterns.

      IT organizations have a long history of seeking the silver bullet and UML (despite its benefits) is another silver-bullet-wannabe.

    9. Re:UML users, Are there many? by LinuxParanoid · · Score: 2

      A quick real-life anecdote to affirm your point.

      When I joined a web startup a couple years ago, the Perl website was way behind schedule. To hedge its bets, which at the time, seemed reasonable, management tried to outsource our website to another development company that had been using Rational, UML and coding in Java for a year or so. Parallel competing teams, essentially. They promised the site'd be done in 6 weeks with 5 people working on it. While I don't think all 5 worked on it solid over that timeframe, it ended up taking them 4 months and two of us slinging perl were in comparable shape in under 2 months, adding marketing's latest feature requests as we went. (The perl team did use flow diagrams; nothing fancy though.) One may debate quality, but the key criteria clear to all involved for success at the time was 'time to market', and the team using Rational ended up late to market, and their work was abandoned as too little too late. It was a learning experience for all involved.

      --LP

    10. Re:UML users, Are there many? by nctysagoon.com · · Score: 1

      Hi all,

      I had to use UML for a software design cours at EPFL
      (Swiss federal Insititue of Technology).
      We where 5 in the project.
      We never finished this stupid project, and we turned
      it to a constructive critic of UML, and this is the point :
      Never try to modelise ALL the stuff with UML, having
      ACM (Analysis class Model) for big structure is fine,
      although a draw with less formalism can do the job,
      but going into every implementation details with UML is useless.
      We also used OCL : the Object Constraint Language, which is absolute evil (and absolute stupidity), and that was catastrophic.
      I think that in vaste project UML can be ok for interfaces
      but NOT for core logic of program.
      If your programers can't do without UML, change your
      programers, because it's that they have turned into bad managers.
      If you have good interfaces and people that know
      their work, you can leave UML, spare a lot of time and money, and be happy.
      Just a last note : we used Together as the UML tool,
      which is the only program that have more bug in itself
      that all Kro$oft programs together...

    11. Re:UML users, Are there many? by StewBis · · Score: 1

      In large organisations; I beleive the use of UML benefits both management/user and the developers themselves.

      Using the Rose UML IDE as an example, coupled with the Rational Soda product ( there are other tools but this is one I have used ) for document generation, the UML Model can be the source of documentation for management, developers working on interlinked components, new developers, etc. All this is provided without the developers having to maintain multiple documenation sets ( i.e. design documents, source code ) because they can all be linked with the IDE. Also developers can use it to convey their library structure, interfaces they expose, class hierachies, etc consistently with other developers. Additionally if full round-trip enginerring is used then the documentation to stay up-to-date even through code revisions.

    12. Re:UML users, Are there many? by Anonymous Coward · · Score: 0

      As an employee of Lockheed-Martin, I can say that one of the largest defense contractors uses UML in many of its projects.

    13. Re:UML users, Are there many? by akookieone · · Score: 1

      Argo and Dia are the two I know that are OSS - I have played with both, but I didn't do enough real work for either one to tell you if either will work for you - Argo seems a little more baked...

  3. Not a Big Fan of Sams by nemui-chan · · Score: 1, Informative

    I personally am not a huge fan of SAM's books. They are more often than not, dry, boring, and difficult to read without taking a nap every 2 or 3 pages. This one could be the exception to the rule, but for some reason, I doubt it. ;)

    1. Re:Not a Big Fan of Sams by Iamthefallen · · Score: 2

      Personally, I like reading books like Sams to get an overview of something new, then I at least have an idea of what it's all about. I can then pick up a real brick and learn in-depth. And, since I have a decent idea of what I can do with it I feel it's easier to learn how and why to do it.

      --
      Wax-Museum Fire Results In Hundreds Of New Danny DeVito Statues
    2. Re:Not a Big Fan of Sams by jackbox · · Score: 1

      I'm thinking of looking into it just for the David Mamet impression. David Mamet's a very good writer.

  4. great by evacuate_the_bull · · Score: 0, Offtopic

    now i can add to my collection of alphabet books on html, xml, dhtml, uml, php, esp and add! woohoo!

    --
    Satanists get good grades too...suspiciously good grades
  5. The problem with UML by NickFusion · · Score: 5, Insightful

    The problem with UML is that it doesn't really help to be pretty good with UML.

    If everyone isn't completely proficient, you're back to square one, ambiguity, miscommunication of ideas, all the stuff that you're trying to avoid by using by UML.

    Having said that, be aware that this the view of a computer artist that does some programming, not a dyed-in-wool enginner.

    --
    What were you expecting?
    1. Re:The problem with UML by dthable · · Score: 2, Insightful

      Anytime an idea needs to leave one person, travel arcoss the room in a dialect and enter a second person there is bound to be some problems. UML trys to avoid those problems by creating a simple language to use. Granted, it takes time to become proficent in all of UML. But UML was designed so it could be slowly adopted. Start off with class diagrams only. Then move into collabration diagrams and then to use cases, etc.

    2. Re:The problem with UML by Hector73 · · Score: 3, Interesting

      The problem with UML is that it doesn't really help to be pretty good with UML.

      If everyone isn't completely proficient, you're back to square one, ambiguity, miscommunication of ideas, all the stuff that you're trying to avoid by using by UML.


      Well said! A couple of year ago, one of my company's customers was on a big UML kick. He decreed that everyone would learn UML and all presentations of software design would occur in UML instead of in PowerPoint slides.

      Great for me! After all, I always wanted an excuse to learn UML.

      However, in the end, it turned out very poorly. Why? Because, the people reviewing our designs that were not employeed or hired by him didn't understand UML. So, we had to duplicate all of our designs! One copy was in Rose ... the other in PowerPoint.

    3. Re:The problem with UML by Andreas+Rueckert · · Score: 1

      I'd rather start with the use cases...

    4. Re:The problem with UML by KenSeymour · · Score: 1

      I would rather start out with sequence diagrams myself.
      These are the ones, in my mind, that are the closest to actual OO code.
      I believe the class definitions a lot more after they have made it through some sequence diagrams without missing methods/Operations.

      Software Development Life Cycle would support starting with use cases. This is based on the
      idea that requirements analysis should precede design.

      I have not yet had the experience of working with business analysts that knew how to do use case analysis.
      Maybe that would change my mind.
      But as an experienced programmer, I mostly like
      UML as a tool to help me think through and
      capture my design.

      YMMV.

      --
      "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
    5. Re:The problem with UML by MSBob · · Score: 2
      It doesn't help to be pretty good with UML because UML is useless. UML just slows down most development efforts because it's too static for a typical software development shop. It extends the feedback cycle between design and implementation and hence slows down the development process. And on the top of that it doesn't add value to the product, just produces more artifacts that need to be kept up to date. UML is business oriented rather than developer oriented and it consistently failed to aid those who actually end up implementing the system with any valuable information.

      Extreme Programming is a methodology that is competitive to the Rational Unified Process BUT unlike Rational folks doesn't advise you to purchase their $10,000 modeling package or a $50,000 training course. It's a down to earth system of how to plan, design and implement a system with maximum predictability and on budget. And all this without the almighty Big Design accompanied by a zillion useless diagrams.

      Go figure who I'm inclined to suspect of trying to sell me snake oil instead of helping coordinate my development process.

      --
      Your pizza just the way you ought to have it.
    6. Re:The problem with UML by csbruce · · Score: 2

      UML is a means for UML weenies to communicate with other UML weenies while leaving most actual implementors out in the cold.

    7. Re:The problem with UML by Hector73 · · Score: 1

      Not if used correctly.

      If none of the implementers understand UML, then it would be stupid to present them with a UML-based design and expect them to understand it.

      If the coders understand UML, then a simple well-documented class diagram combined with a sequence diagram is a great way to communicate a design. But, this is not really any different than the age-old technique of combining a flow chart with a class diagram. Its just using a standard notation.

  6. Good for beginners by Chocky2 · · Score: 4, Informative

    This is an excellent choice for beginners who don't need to do "real" UML development work (eg students), for a more indepth look I'd advocate UML Distilled by Fowler and Scott for a more thorough grounding (and "The Unified Modeling Language User Guide" by Booch and Jacobson for the crunchier details of the language.

    1. Re:Good for beginners by Derkec · · Score: 2


      I have both books as well and think they are excellent. Great reccomendations.

    2. Re:Good for beginners by Doctor+Memory · · Score: 2, Interesting

      I'd advocate UML Distilled by Fowler and Scott

      Hear, hear! UML Distilled was what I used to learn UML in 24 hours!

      --
      Just junk food for thought...
  7. Who uses UML? by johnburton · · Score: 4, Interesting

    As a software developer I know uml reasonably well, and have tried to use it, but I find that I have big problems with it.

    For example I don't find that class diagrams communicate anything that I can't understand better with a description in text, or other methods.

    I don't want to get into what other methods I use here as it's not on topic really, but I *really* want to like uml and find it useful, but beyond quick back-of-envelope class diagrams to sketch out a subsystem I so far have not found it useful.

    Do other people have this problem too? Does anyone actually *use* it in more than a trivial way? Everywhere I've worked, people want to use it, but never quite manage to. This isn't to say that proper design isn't done, just that uml isn't used much.

    Should I just keep at it until it becomes so familiar that I think in UML rather than any oher way?

    --
    Sig is taking a break!
    1. Re:Who uses UML? by tim_maroney · · Score: 5, Insightful

      I don't find that class diagrams communicate anything that I can't understand better with a description in text, or other methods.

      Yep. UML is a way for poor communicators to pretend to design. UML diagrams are notoriously bad at factoring in real-world requirements, exceptions, usage patterns, and user scenarios. In every case I've seen UML used for modeling, it has created systems which looked clean in the diagrams but which failed to function usefully once implemented due to lack of conceptual underpinnings. It will be nice to see this particular documentation fad slip beneath the waves, and people get back to describing what they want to do in thoughtful paragraphs.

      Tim

    2. Re:Who uses UML? by SirSlud · · Score: 2

      I think UML /is/ a nice way to get a quick view of an architecture or system. You know, just to get a flavour or feel of how a given system or software application is broken down into componants, and what the one-to-one/many-to-one relationships are on delegates, factories, etc.

      Basically, if you think in an OO way when you're programming, UML makes sense and can help to give very quick 'summaries' of software systems.

      That being said, I don't think that UMLs role in design and prototyping is as critical as some people make it out to be. I think it's more useful to give a top down view to a guest engineer or someone who did not participate in the design process to start getting an idea of where to muck about in a project when changes or fixes are needed.

      To that end (and I develop CORBA apps), I don't feel I need to be an expert in UML, but I certainly don't have any quams with having to have a casual familiarity with it. That is, I can understand the language, but I don't really feel career-related pressure to speak it.

      --
      "Old man yells at systemd"
    3. Re:Who uses UML? by jpbelang · · Score: 4, Informative

      As a software developer I know uml reasonably well, and have tried to use it, but I find that I have big problems with it.

      You aren't alone. The always entertaining and often right Bertrand Meyer has this to say about UML.

      --
      JP http://www.wearerite.com
    4. Re:Who uses UML? by Simon · · Score: 1
      In every case I've seen UML used for modeling, it has created systems which looked clean in the diagrams but which failed to function usefully once implemented due to lack of conceptual underpinnings.

      On the other hand it's quite possible that the person who designed those systems wasn't very good at OO design and software development. A bad design is a bad design. It doesn't matter if you explain it using UML or plain text.

      Your argument that UML is bad because every system you've seen documented using it was bad doesn't hold up.

      --
      Simon

    5. Re:Who uses UML? by mystery_bowler · · Score: 2

      I, too, am a software developer. Typically, UML is used at two points in my company's development process. Early on, just after the requirements analysis, the software developer (me in this case) sits down with the analysts (which I could be one of on any given project) and designs what will likely be the architecture of the system. That includes mapping out the class relationships as well, all done in UML. These aren't detailed diagrams, as you might imagine. If all we did was hand over the diagrams in that state to some other developer, that other developer wouldn't have a clue what to build. That class relationship/interaction UML is only good from a high-level system design standpoint.

      We'll also use UML largely to represent the workflow or flow of information as we understand it from our analysis. Thinks like "customer enters store, makes order, sales takes money, gives receipt" can be represented pretty easily and clearly.

      We still haven't used UML for anything detailed. Our class documentation is formated more like the class definitions in O'Reilly's "Java In A Nutshell" (I really like that format), and the workflow is detailed more through use case scenarios and more specific flowchart diagrams (i.e. a complete diagram of what happens in that "sales takes money" part of the process).

      In general, we find UML useful for higher-level abstract diagrams. Even our customers, who are usually very non-technical people, understand those diagrams quite easily. For our internal understanding, we use more detailed documentation.

      --

      My sigs always suck.
    6. Re:Who uses UML? by Anonymous Coward · · Score: 0

      (S)He was making an assertion. You may not agree with it, but there is no fault in his/her "reasoning".

    7. Re:Who uses UML? by IndranilB · · Score: 4, Interesting

      If you want to see a good example of UML in practice check out Sun's J2EE specification at http://java.sun.com/j2ee/docs.html .

      There is a ton of documentation there , but they make heavy use of UML which really helps.

      As well as Class Diagrams they have a lot of Sequence Diagrams & State Diagrams.

      These are the diagrams that really add value as they give a dynamic view of the system eg. how EJBs change state over time.

      Much more useful than just a bunch of static Class Diagrams which dont give a sense of how the system actually behaves.

    8. Re:Who uses UML? by Simon · · Score: 1
      (S)He was making an assertion. You may not agree with it, but there is no fault in his/her "reasoning".
      Well, there was an assertion there that's true, but it was quickly supported by some an anecdote (sp?) and some reasoning along the lines of:

      "every system I've seen documented in UML was bad" therefore "UML is bad".

      That is the reasoning I believe is faulty. Clear?

      --
      Simon

    9. Re:Who uses UML? by angel'o'sphere · · Score: 1


      Do other people have this problem too? Does anyone actually *use* it in more than a trivial way?


      I use it.
      And I teach it.
      I'm consultant for OO/UML, Design Patterns, C++ and JAVA.

      I never start a project without sketching the minimal informations I have at the start with UML.

      And elaborating them into code. For me source code and UML is just the same only different visualizations.


      Everywhere I've worked, people want to use it, but never quite manage to. This isn't to say that proper design isn't done, just that uml isn't used much.


      Well,
      so you make a proper design?
      How?
      Are you using graphics? Or only text?

      If you are using graphics you are using free form graphics or well known diagrams not used in the UML?

      Basicly you do what you would do if you where forced to use UML :-) But you prefere to use your own invented graphic descriptions or variants of the diagram types which are used in UML anyway, e.g. Flow Graphs and State Machines.

      So: why don't you use UML?

      He he, I con not get what one ewas saying about startups. In my startup *all* are using UML.

      Without UML you are only half as fast in crafting software ... with UML you are up to 5 times faster. Even more if you are used with it and have the right tools ....

      Regards,
      angel'o'sphere

      P.S. the XML format which is OMGs standard to store and interchange UML is called XMI.
      A good and cheap UML tool (besides the free ones) is MagicDraw -> www.magicdraw.com

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    10. Re:Who uses UML? by Anonymous Coward · · Score: 0

      I think it's great that the biggest UML advocates in this thread can't seem to write a single sentence without committing grammatical or spelling errors. I don't think that's a coincidence.

    11. Re:Who uses UML? by CaseyB · · Score: 3, Interesting
      I'm consultant for OO/UML, Design Patterns, C++ and JAVA.

      Isn't that like being a consultant in wood, nails, and saws, instead of being a carpenter? That whole concept just seems wrongheaded to me. That the technologies and methodologies are the ends in themselves. The goal should be solving problems, not applying specific technology.

      I never start a project without sketching the minimal informations I have at the start with UML. ... And elaborating them into code. For me source code and UML is just the same only different visualizations.

      So, the "minimal information" you have at the start, becomes the foundation of your code. It's insane! But I've seen exactly that application of UML myself, where the quick information-gathering sketches from client meetings are turned into a horribly ugly system design that is generated automagically by Rose.

      Where's the synthesis, that leap from requirements to the elegant architecture that solves the problem? There's a creative element there that I don't think UML provides an opportunity for. The Rational/UML fans seem to think that software development is a purely mechanical process that follows a deterministic path after the "use cases" are input. That's just not the case, not for good software. The best designs often take a completely othogonal approach to what use cases might indicate.

      with UML you are up to 5 times faster

      Heh. Now you just sound like a Rational salesdroid.

    12. Re:Who uses UML? by rmstar · · Score: 1
      LOL what a link, man!

      It seem to be remote cousin of that faked interview with strourstrup that popped up somewhere some years ago...

    13. Re:Who uses UML? by Derkec · · Score: 2

      Where I work, one of those large software / hardware, companies the development team I work with uses some UML. Mostly in the form of large class diagrams which can be hung on the wall. Though, in my more academic major project, uml was pretty much restricted to back of the envelope stuff.

    14. Re:Who uses UML? by irix · · Score: 2

      That is generic rubbish.

      UML diagrams are notoriously bad at factoring in real-world requirements, exceptions, usage patterns, and user scenarios.

      Are you telling me that doing UML diagrams for a particular system really has those problems?

      There is a big difference between UML and the entire Rational Unified process. I have used UML (class diagrams) to design an OO system and then provided sequence diagrams to show someone how to use my API. How is that any better or worse that providing a textual description, from a point of view of real-world requirements, execptions and user scenarios?

      I have news for you. If people can't use UML to do a good description of a system, they can't do it using words or some other technique either. They are simply bad designers.

      --

      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    15. Re:Who uses UML? by schroom5 · · Score: 1

      Just like engineering and architecture. if you have a poor architect, you're going to have a poor desing. For anyone to think differently of software development is foolish. Most people don't UML to its fullest potential and as a result their diagrams and designs aren't good. UML can go all the way from Use cases scenarios to software deployment. I've found its most useful when writing multithreaded programs because you can visualize the when and how information is exchanged between threads.

      The majority of software out there isn't designed very well. I believe this is for two reasons. Schools don't concentrate on teaching students how to design, they teach them how to code. Second there are a lot of managers that architects who shouldn't be designing either so the people that look to them for insight get wrong ideas

      --
      "Have you seen my marbles"
    16. Re:Who uses UML? by Anonymous Coward · · Score: 0

      More importantly, does anyone use it when they don't have to? Would anyone use it voluntarily if it wasn't excusively to pad their resume?

    17. Re:Who uses UML? by Anonymous Coward · · Score: 0

      Asserting that all instances of UML usage observed "were bad" does not lead to the conclusion that UML is bad. Clear?

    18. Re:Who uses UML? by gwayne · · Score: 1, Insightful

      UML is a way for poor communicators to pretend to design.

      I couldn't disagree with you more. Class diagrams reflect only a static view of a system design. There are a whole slew of other modelling constructs that depict the dynamic nature of a software system, including statecharts, activity and interaction diagrams. These can be used to model the potential interactions between components, and use cases for modelling user interaction.

      In every case I've seen UML used for modeling, it has created systems which looked clean in the diagrams but which failed to function usefully once implemented due to lack of conceptual underpinnings.

      The only explanation for this is poor design! Don't blame it on UML. One of the biggest failure points of software projects is failing to adequately document functional and non-functional requirements. You can design/document all you want, but if you don't fulfill the requirements, you are doomed to failure.

    19. Re:Who uses UML? by MarkCC · · Score: 2

      Unfortunately, you're right about UML. In fact, I'd say that you're being too mild. I wouldn't spend much time trying to learn it in any great detail, nor would I spend much work time trying to model a system in UML.

      As an experiment, I tried to describe the design of my current system (basically a CVS replacement) using plain text, UML, and a formal specification language called Z.

      Of the three, the Z had the wonderful property that it made several crucial design errors absolutely crystal clear, and led to fixing the design, and saving months of programming effort.

      The text had the advantage that people could sit down and read it, and get a basic idea of what was going on. It wasn't very precise, and it was ambiguous in places, but it's enough to give people some idea of what was going on.

      The UML was utterly useless. It captured none of the interesting properties of the system. It had no explanatory value. It had no analytical value. It was harder to understand than the text, and carried far less information; and the semantics of UML are so ill-defined that it had absolutely no precision. Even after added some specification clauses uses OCL, it was still an utter waste of time.

      The only UML diagram that I've seen that had any value was a Rose diagram used as an explanatory aid for the DeltaV draft standard. The standard, by necessity, was written in such dense standardese, with so many inter-referrences with other standards, that it was very difficult to comprehend, and the diagram at least gave a canonical view of the basic entities and some notion of what the relationships between them were.

    20. Re:Who uses UML? by crosbie · · Score: 1

      Maybe this is an 'emporer's new clothes' shibboleth kind of thing, i.e. those who believe the 'tongue in cheek' link there ( http://www.eiffel.com/doc/manuals/technology/bmart icles/uml/page.html ), and those who believe the converse, that UML is sound.

      The shibboleth works like this. You read it, and if you laughed at how ridiculous a send-up it is, you are in the UML camp, and if you laughed at how plainly true it is, you are in the "The Emperor's Got No Clothes!" camp.

      Frankly, in my book, the emperor's naked.

      Until programming actually becomes an act of 'semantically arranging diagrams' for want of a better phrase then trying to keep everything in synch manually seems like a nightmare. And I don't think UML with or without computer assistance is quite there yet.

      I'd say do the systems modelling in your head and then put it into diagrams that can be read by people who haven't spent the last 5 years learning UML.

      That said, I reckon there's a big future for someone to create a truly graphical programming language.

    21. Re:Who uses UML? by Stalcair · · Score: 1
      We have tried recently to use UML for an existing project that was horribly managed and implemented. Our reason was to bring order out of chaos, but this time after the fact. That means we still wanted the benefits of having a system out there that we did not have to 'reinvent' simply to have a consistent (within our group) diagram, documentation and representation structure. When it was suggested we use UML, we thought we would try it out.

      Well, after being thoroughly confused many times (I think the Activity diagram was the real bad one), and failing to understand how this could actuall ADD to our productivity (it usually slowed us down) I have to agree with you. I really WANT to like UML. Or rather, I want to have a standardized system of putting the analysis/design portions into form and that can then translate to the different parts of the program (software development, hardware specs, etc.) We will try a different approach later, but for now we had to pass. The fact that it was causing more problems than it solved was the reason for us dropping it, unfortunately.

      Now, having said that, I am fully aware that none of us had any real experience with UML, and that could have been the biggest problem (the learning curve). However, that does lead right back to the purpose of this post... a book aimed at beginners. I think this book would be good, since it is 'cheap' so I think we will give it a try. However, I really wish more would pop up soon.

      --

      I seek not only to follow in the footsteps of the men of old, I seek the things they sought.

    22. Re:Who uses UML? by reasonable · · Score: 1

      Both participants seem to be objecting to a statement of their own making: "a great promise of UML is that any system can be adequately represented by using class diagrams only". UML, and its components, is just another tool to help people to communicate. One definitely can imagine the world where all the information is being exchanged and communicated only via written form of spoken language (the mentioned "thoughtful paragraphs"), but I've seen people who - strangely enough - prefer maps to written directions when getting from place to place; I am not even talking about those who need to capture distilled information about geographical area - it's maps, not words, that serve the purpose best. As far as "factoring in real-world requirements" - I would be glad if someone showed me what tools are excellent - forget that, passably good - no, simply acceptable - at doing that. Yes, a written document might be the best to capture all the intricacies and one-of-a-kind peculiarities, but there is nothing that prevents you from tying that to a UML use case, or doing it the other way around - embedding a few UML diagrams (appropriate to the case, mind you, not a class diagram when you are describing a behaviour!) into your document. In other words: 1) tools still cannot do the thinking for us (...and we really hoped that this time it will actually be the case); 2) do not label UML as crap when too many crappy "analysts" claim that they are UML gurus - laptops did not stop being great invention just because so many idiots are using them! Regards.

    23. Re:Who uses UML? by igrek · · Score: 2

      For me source code and UML is just the same only different visualizations.

      That's exactly what I don't like about UML.
      Using UML for system design, you're forced to describe the end solution almost from the very beginning. Instead of focusing on the requirements and on the goal, you're focusing on the solution and the process. It works for small and simple (academic) projects, but often leads to problems in big real-world systems. Especially when they grow and evolve in time.

      Another problem with UML code mapping is that it works fine with Java, but doesn't work well with other languages, like OO-Perl, LISP or some non-OO languages. UML is not so "U" ML.

    24. Re:Who uses UML? by tim_maroney · · Score: 2

      To respond to some of the comments about my admittedly vague dismissal of UML's value:

      It is my strong impression from seeing projects specified with UML that diagrammatic specification has an inherent tendency to be less thoughtful about aspects of a software system for which there is no built-in diagrammatic representation, and that these "semantic" parts of the design of a software system overwhelm in practice the more constrained parts of a system which can be modeled using such formalisms as sequence diagrams.

      To take one example, in the creation of a music engine at one company, extensive sequence diagrams were created to show the flow of musical data between various processing components. However, the scenarios for building and installing the engine in a variety of contexts, including web plug-ins and embedded device firmware, were nowhere to be found in the specification. Attempts to get the engineers to focus on these broader usage issues got nowhere, because the incredible specificity of the sequence diagrams seemed to imply that all important questions had already been answered. The questions about installation scenario, while critical to the design of the product, seemed fuzzier and less important because there was no way of expressing them in the specificity of UML diagrams -- they involved more free-form issues and text description. UML created a false sense of concreteness that led to neglect of important issues which could only have been adequately addressed in text.

      In another case, a complex nested data structure was to be saved on top of a SQL database. Intricate class diagrams and sequence diagrams for the save procedure were drawn up, but each time a save API was delivered based on these heavily reviewed UML designs, it failed to cover major cases of nesting relationships and had to be reworked from scratch. UML diagrams turned out not to describe the solution at an adequate level of abstraction to deal with the general case of nested saving -- instead, all it could do was break down the problem into some six dozen special cases, rather than proposing general rules. The conceptual questions about what it meant to save a snapshot of a complex data structure in a shared system were never asked and could not be answered at the low level of abstraction provided by UML, and so the design effort for this critical portion of the internal API never succeeded through multiple development cycles.

      Thought is a thing that happens primarily in words. Where it can be formalized into diagrams, it is if often worthwhile to do so. However, given the enormous complexity of software engineering problems, this level of formalism is rarely either attainable or useful. Even if we look at highly formal domains such as science and mathematics, published papers tend to be structured as natural-language essays with inserts of formulas and tables, rather than primarily as mathematics with a smattering of natural language. Software engineering is less formal than science or mathematics, not more. Specification should remain primarily a matter of writing in natural language, with diagrams at key points where they are applicable. The labor-intensiveness and false specificity of UML leads to an approach that is the reverse of this, in which what few words remain are subordinated to elaborate diagrams of marginal value. This creates inferior system designs.

      Tim

    25. Re:Who uses UML? by Lycanthropic+Dreamin · · Score: 1

      I think an earlier poster hit the nail on the head for me. I got UML introduced into the company after too many "psuedo-code specs" kept comming unstuck.

      Eventually it came down to a realisation that a higher-level, more abstract view of the system was needed than just the code-changes if people were to understand what needed to happen.

      For small, trivial changes we default back to simple specs, the overhead isn't worth it in those cases.

      That said, I'm not a real fan of UML. The biggest thing it has going for it is that it's a defacto standard. The worst is that it is a standard constructed by a committee (just how many different ways do you really need to draw a diagram?). Don't get me started on the connection between Class and ER diagrams and how anything but binary relationships really sucks to model.

      As to the comment about text... I'm going to disagree. An example would be reading something that describes the triggers for change of state in in complex life-cycle (say 10ish states, some as sub-states).

      A diagram can impart that kind of knowledege to another in seconds. Text would take minutes if you're on the ball and hours if the coffee isn't doing its trick or you mis-interpret something.

    26. Re:Who uses UML? by irix · · Score: 2

      If you look at the Rational Unified Process, they include textual descriptions as part of a system description, not just UML. But, leaving that aside, who is proposing using UML exclusively here? Any proper specification is going to include textual description as well as diagrams.

      I see 2 arguments going on in these threads:

      1. You can't replace textual descriptions with UML.

      No shit. Nobody sane is advocating this. UML is another tool in your repetoire for communicating a design.

      2. I have seen poor UML designs.

      Again, I have news for you. A designer who produces poor UML designs is also going to produce a poor design when provided a text editor. UML is a tool - it won't magically transform a poor designer into a good one.

      --

      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    27. Re:Who uses UML? by tim_maroney · · Score: 2

      Nobody sane is advocating this.

      And yet it is what is being practiced in the field. There are intrinsic forces involved in UML that lead in this unpleasant direction. You haven't dealt with those factors or with the way that UML-based specification activity tends to drive out text-based specification in practice. I believe I was sufficiently specific in describing some of these factors.

      Tim

    28. Re:Who uses UML? by Anonymous Coward · · Score: 0

      Stupid ass fucking moron.. English is not the only language used on earth. Pick up an atlas once in a while.

    29. Re:Who uses UML? by Anonymous Coward · · Score: 0

      I'm always told by our UML advocates that using UML "WILL" improve our designs. They don't make any comment about the designer being competent or not. So what really matters is how competent the engineer is and has nothing to do with the method used.
      From what I see, the good engineers did good designs in the past without UML, and do it good now with UML. It just seems to take longer with UML from all the playing around in the GUI tools, bleh.
      I just think managers prefer to look at pictures.

    30. Re:Who uses UML? by Anonymous Coward · · Score: 0

      That's not the point...

      Without UML you are only half as fast in crafting software ... with UML you are up to 5 times faster.

      OK so let a particular development speed be x, then without UML you are x/2, and with it you are (up to) 5x. That means with UML you are (up to) 10 times faster than without, not 5 times. And the speed x itself is not defined (why not just let x/2 be x?)..

      It's all very mysterious. I would like to see the evidence of studies to back up the claim of up to 5 or 10 times development speed... and don't forget to study the case where UML is used, but poorly..

      In my view all these "tools" are only as good as the people implementing them. They do not make you produce better output with the same staff. And usually, if the staff are really good, they have already figured out the important essence of what these tools are trying to help you to achieve and are using them right now in their own processes.... in other words, you are either good or you aren't, no acronym (or abbreviation!) on your CV is gonna make any difference to your productivity.

    31. Re:Who uses UML? by Anonymous Coward · · Score: 0

      Shit, if Bertrand Meyer thinks it sucks, it must be good. There's not a bigger blowhard in the whole industry.

    32. Re:Who uses UML? by irix · · Score: 2
      And yet it is what is being practiced in the field.

      In your experience. The way design is practiced in my company doesn't bear this out, and the experience of other friends in the industry doesn't either. I guess we must be immune to these mysterious "intrinsic forces".

      Just becuase you have bad experiences with designers generating UML diagrams in place of a full-featured specification doesn't mean UML is useless. It means you work with designers who are either incompetent or lazy.

      The UML is simply a tool - a way to draw diagrams so everyone can understand them. Go back 15 years, and structured design had a similar set of notations. Heck - look at databases with entity relationship diagrams, which have been around for decades. If your entire database design is an ERD, and this is insufficient, does that mean that ERDs are inherently bad? No - it just means you have an incomplete design.

      --

      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    33. Re:Who uses UML? by gpinzone · · Score: 1

      Using UML for system design, you're forced to describe the end solution almost from the very beginning. Instead of focusing on the requirements and on the goal, you're focusing on the solution and the process.

      Actually, the UML implies a methodology for OO design in general. The class diagram, for example, is generated early on in the process. But the reason for that is that the nouns and verbs used in describing the domain of the problem will be used to create the classes and operations in those classes, respectively. In fact, the author gives a very short example of this starting on page40 of the book. Also keep in mind that the design process isn't a "waterfall." Yes, you may begin the class diagram early on, but you probably won't finish it right away. It's a living document that will be refined as the development process progresses.

      Another problem with UML code mapping is that it works fine with Java, but doesn't work well with other languages, like OO-Perl, LISP or some non-OO languages. UML is not so "U" ML.

      Yeah. The UML uses terminology that is very close to Java. I'd be interested to know how people use the UML in other OO languages. Is there much "shoehorning" done to get it to make sense?

      Things like class diagrams are definitely not going to be very helpful in non-OO projects. However, other diagrams like the state and sequence would still be appropriate for non-OO design.

    34. Re:Who uses UML? by angel'o'sphere · · Score: 1

      LOL, is only what I can say.

      I think you are not reffering to UML but to class diagrams.

      The first UML diagram one should do is a deployment diagram.

      OOPS, never heared that? Well, I'm teaching how to solve problems. I'm not teaching: this is a class diagram and this is a deployment diagram and this is java.

      After you have a deployment diagram its likely best to make a use case diagram.

      Oops again, still no class diagram.

      The minimum informations I had so far and transformed into diagrams are:
      *WHERE* will the software run -> deployment diagram.
      *WHAT* is it, what the software should do, from a user or running organization point of view.

      The HOW is it done comes very late .... -> class diagrams.

      I even prefere often to make activity diagrams far before I propose the first classes.

      So, the "minimal information" you have at the start, becomes the foundation of your code. It's insane! But I've seen exactly that application of UML myself, where the quick information-gathering sketches from client meetings are turned into a horribly ugly system design that is generated automagically by Rose.

      Well, if YOU make an ugly system from that then you probably should learn UML before you judge an UML consutlant as insane.

      As you see I have nothing regarding classes so far. But I allready can now make estimations and some roughly architecture descissions.

      How many (logical) nodes does my deployment diagram show?
      How many (logical) components are at minimum residing on those nodes?
      What does that mean for running the software and their maintanance?

      Looking at the Use Cases and Actors (on the use case diagram), I can predict you how many Software Components you need to design, oops I'm predicting your design, not your code -> still no class diagram.

      Depending wheter you like to use a canonical architecture for components, that means all components have the same mini architecture, you could use design patterns for that, I can predict you the minimum number of "infrastructure" classes.

      LONG before any true business class is even thought about.

      I'm pretty sure that most people not working with UML are just hackers hacking code all day and wasting their time.

      You do not hate UML, you hate structured organized work.

      With a method, BTW its *NOT* a methodology, its a METHOD ....
      Ok. With a method how to use UML and how to apply it right and what to do when in your software developmnet project: you *ARE* up to 5 times faster than just hacking code.

      If you take Rational Rose for that, thats how I interprete your silly:
      Heh. Now you just sound like a Rational salesdroid.

      Then its your own fault that you are doomed ...

      Regards,
      angel'o'sphere

      Sig: I'm tired about the word methodology. The science of comparing and evaluatig methods, is a methodology. Doing something in a determined way is a method. Using UML does not even mean you are using a method. But there are a lot of methods out there: Jacobson, Rumbaugh, Booch, Shlear-Mellow, Coad-Jourdan, Wirfs-Brook. All methods, not methodologies.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    35. Re:Who uses UML? by angel'o'sphere · · Score: 1

      Well,

      the last one who FLAIMED we because I made an answer some posts above got a rating: insightfull :-)

      So I'm very polite I hope now:


      Yep. UML is a way for poor communicators to pretend to design. UML diagrams are notoriously bad at factoring in real-world requirements, exceptions, usage patterns, and user scenarios.


      UML diagrams are notoriously bad at factoring in real-world requirements

      UML is about, and mainly about! factoring real world requirements:
      Use Cases, Actors, Scenarios described in Use Case Diagrams and textual use case descriptions and textual scenario descriptions.
      Also described in activity diagrams graphicaly.

      ... exceptions ....

      Hu hom? So you can not describe how and where exceptions occure (either in working of the user or true program exceptions) by using
      a) a activity diagram
      b) a sequence diagram
      c) a flow diagram
      d) a state chart
      ????

      ... usage patterns ...
      Again: you are not able to describe a usage pattern with a flow chart or activity diagram or a high level sequence diagram?

      .... user scenarios ....
      Again: you are not able to describe a user scenario with a flow chart or activity diagram or a high level sequence diagram?

      OOPS, I'm repeating myself.

      UML has *9* diagrams.

      All for a specific purpose.

      Only *ONE* out of those nine is a class diagram.
      Of course a class diagram does not describe user interaction. (Albeit you could abuse it to do so, or use design patters and annotate the classes with the pattern roles they fullfill. E.G. in a modell view controller pattern you could make explicite what is a view ....)

      Regards,
      angel'o'sphere

      Sig: wondering why I'm answering a 5 Insightfull modded post ....

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    36. Re:Who uses UML? by tim_maroney · · Score: 2

      The use case model in the Rational Unified Process leads to terrible user interface design. This is evident in Rational's own notoriously badly designed products as well as in analyses of the methods by such writers as Constantine and Lockwood. Use cases make design decisions before requirements are gathered; they commit to modal sequences of execution which are in conflict with well-established principles of design; and they have no place for the participation of design specialists.

      Tim

    37. Re:Who uses UML? by angel'o'sphere · · Score: 1

      Thats not true.

      A Use Case comes AFTER requirements are captured not before.

      Making Use Case Diagrams before you have the requirements is possible.

      Descring the Use Cases, how they should work, is impossible.

      Crafting any Classs from a Use Case Diagram is possible, even if you have no in depth requiremnts.

      Crafting an Architecture also is possible.

      User Interface design has absolutely noting to do with Use Cases.

      A Use Case diagram looks just the same regardless wether your sytem is driven by a bunsh of coomand line tools or is a fancy GUI application.

      It looks the same regardless wether you have a dialog driven application or a tools material metaphor application (e.g. drawing editor).

      If you have no other way to capture requirements then Use Cases are the way to capture requiremnts. They are basicly keywords WHAT the appliation needs to support.

      If you make XP Programming you do the same but you suddenly call Use Cases Story Boards.

      The Rational Unified Process literature seems to be written by ghostwriters. There areso many errors and contradictions and even contradictions to early works of Booch, Jacobson and Rumbaugh, its unbelieveable.

      If you like to lear somethign about Use Case analysis then probably Scott Ambler: Advanced Use Cases, might help.

      The best book regarding architecture and Design via Use Case driven approaches is: Jacobson and Griss, Software Reuse.

      Regards,
      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    38. Re:Who uses UML? by tim_maroney · · Score: 2

      Sorry, you're mistaken. Use cases are part of the requirements capturing process in the Rational Unified Process. The problem is that -- as described in great detail at the Constantine and Lockwood essay I pointed you to -- use cases involve making user interface design decisions, especially regarding sequence of actions, but also including presentation of choices and other matters. Since this is the wrong phase of the process to be making detailed design decisions, and the people making the design decisions are marketers and engineers, not designers, the decisions made are usually wrong. These premature user interface design choices then become locked in for the entire project life cycle.

      Your message deals solely with the issue of premature design decisions., You did not engage other equally significant issues: that there is no place for design specialists in the Rational Unified Process, that the notoriously bad design of the Rational tools serves as a (negative) case study in the results of the Rational Unified Process, and that the way that use cases are specified creates user interfaces with a modal order of execution, an approach that violates standards of software design since 1984.

      Tim

    39. Re:Who uses UML? by angel'o'sphere · · Score: 1

      Oh ...

      I did not listen, you are reffering to Use Cases in RUP.

      Sorry, I was reffering to Use Cases in general. Or better: to the pre RUP aera.

      I fully agree that most rational tools are bad designed especialy from the user interface point of view.

      Unfortunatly 90% of the software written is "modal" software.

      Desktop applications only cover 10% of the software in use. And as far as I know only for desktop software, especialy if high creative topics are worked on, non modal software works good. (But thats only my observation, I don't know to much about it, 90% of my software I've written is non modal ... LOL, 99% of the people I teach UML to writes modal software.)

      Regards,
      angel'o'sphere

      Well, I have the RUP book here but I dropped reading as it contradicts in so many points my sence for sound software engineering ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    40. Re:Who uses UML? by angel'o'sphere · · Score: 1

      I just looked up in RUP.

      Can not find anything about: Use Cases require/include User Interface design.

      Probably I'm missunderstanding you.

      I looked at the essay, you pointe to, have not found the time to read it, it redraws incredible slow in acrobat reader.

      But from the capital titles its very interesting, fits into my research! Thanx! A very nice one.

      Especialy including Use Cases into CRC cards and defining/using Use Case Patterns often let my customers disagree with me :-) Now I have some stuff to point them to.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  8. No thanks... by spatrick_123 · · Score: 1

    The Addison Wesley series is so thorough, complete and useful that I don't see how anything other than an extraodinary book could displace any of those volumes. Being as how this is a SAMS 24-hour book, I have a strong hunch it won't be that extraordinary...

    1. Re:No thanks... by forged · · Score: 1

      I pretty much agree on this, I'm no fan of SAMS either. Seems we're not the only ones...

  9. On the whole... by psxndc · · Score: 5, Insightful
    I agree with the reviewer. I have the book and a large amount of it is going on and on about a non-software system. While this is not great for applying the UML to current projects at work, it is _really_ good if I need a quick reference to things like what is the difference between an aggregation (a zoo is still a zoo if it has 1 or more anaimals) and a composition (a table can't be a table without a top and legs) that is easily real world understandable. A better book for reference though is UML Distilled by Addison-Wesley.

    psxndc

    --

    The emacs religion: to be saved, control excess.

    1. Re:On the whole... by Buck2 · · Score: 1

      I thought this was funny.

      There is a funny moderation.

      --

      As my father lik@(munch munch)... ....
  10. UML vs XML by wiredog · · Score: 2
    UML is designed to allow programmers, engineers, and managers to share design information in an object oriented way, and is visual. Think of it as an object oriented flowchart.

    XML is designed to allow systems to share data, and is textual.

  11. Book based on a dare by Codex+The+Sloth · · Score: 1

    I hate the "Learn X in 24 hours" or a day or a week. What's the point? They don't know how fast or slow I read. Are there really people who have to know UML within 24 hours?

    --
    I am not a number! I am a man! And don't you ... oh wait, I'm #93427. Ha ha! In your face #93428!
    1. Re:Book based on a dare by Anonymous Coward · · Score: 0

      "Are there really people who have to know UML within 24 hours? "

      How'bout: You've applied for a position that requires UML knowledge and the interview is in three days. Pick up that book and you have at least some fresh general knowledge about it, so you don't get slammed when they ask you what the hell UML is.

    2. Re:Book based on a dare by -douggy · · Score: 2

      Are there really people who have to know UML within 24 hours?

      I will let you know in 5 weeks when I need to han my UML stuff in for uni project!

  12. UML samples by ergo98 · · Score: 2

    Has anyone seen any good "Getting started with UML" type material on the Web? I'm specifically looking for the type of tutorial that starts with a problem and then goes through the various UML diagrams showing how they apply, finally to a simple system of several components. As it is it's very hard to convey UML information to coworkers because most UML tutorials seems to have a "start with everything" perspective on it. Links would be greatly appreciated.

    1. Re:UML samples by mindas · · Score: 1, Informative

      Following words may be a bit biased since I work for a UML design tool company. This was a disclaimer.
      If you're still here - look at the tutorial [pdf format] of it. This includes several UML examples which may be tried having the tool (this one, or maybe another). Since the tool is
      written in Java, it should work on your platform. And, yes, you'll have to register before downloading
      full-functional demo. I hope, this is the only inconvenience in this case.

    2. Re:UML samples by Andreas+Rueckert · · Score: 1

      Sorry, but I'm only aware of 2 tutorials on UML and they are both available only in German. One is from a school here and the other is from a institute for experimental software engineering.

      The good news is, that several people are working on documentation for ArgoUML now. And this includes a nice manual, mainly written by Jeremy Bennett. Look at the argo-dev mailing list for the latest infos... :-)

    3. Re:UML samples by dkoyanagi · · Score: 2

      Check out the Rational web site. They have tutorials and free downloads.

  13. Teach yourself x in 24 hours by wiredog · · Score: 2
    Riiiiight. May be a decent reference, but learning it? In 24 hours?

    The O'Reilly UML Book is out of print, but fairly good.

    1. Re:Teach yourself x in 24 hours by ergo98 · · Score: 1

      If they mean 24 hours of actual study and practice then I would say that 24 hours is a very fair statement: One could have a pretty good grasp of UML (which itself is simple: It's the application of it that's the most difficult) in 3 work days of doing nothing but UML training.

    2. Re:Teach yourself x in 24 hours by gorf · · Score: 1

      He means in 24 1-hour "lessons", but it sells better that way (except to the incredulous :-)

    3. Re:Teach yourself x in 24 hours by Anonymous Coward · · Score: 0

      12 2 hour classes can teach you a good amount. Not an expert, but certainly enough to at least hold a conversation, or in this case, read a UML diagram..

      CRACKHEAD.

  14. My Favorite interview question by djKing · · Score: 2

    When I give tech interviews, people who say they know UML get asked, so how do you use it? The blank stares I get are a riot.

    "Well it's UML and we uh use it with the UML process." Thank you for playing.

    UML is a great notation, works well with white boards. But for too many people it's just another TLA to check off on their CV.

    -Peace
    Dave

    --
    Free as in "the Truth shall set you..."
    1. Re:My Favorite interview question by SuperKendall · · Score: 2

      I ask that a lot in interviews myself (if they list it on thier resume), and mostly I get the answer that they use it for ad-hoc design sessions... we also use it for some documentation but I'd say UML is probably most widely used for quick communication of design ideas among team members (as you say, good for whiteboards).

      Part of the problem is that in order to really use the full extent of UML everyone else has to know as much UML as you do to be able to understand it (as the goal is communication of ideas and if you don't understand the notation how will you understand the idea?), and even if you start out knowing a lot of UML eventually you end up pretty much knowing the same level of UML as all the people around you due to the "use it or loose it" syndrome.

      It would be interesting to work in a shop where everyone really knew UML well, and see how that changed design or how many people would be required to keep UML knowledge high instead of decaying.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
  15. UML pitfall by Anonymous Coward · · Score: 0, Informative
    Remember this: UML is a notation system. It is not a design methodology. Just as learning English won't teach you how to write novels, learning UML won't teach you how to design systems - OO or otherwise.

    Those who wish to play around with UML might be interested in Argo UML. It is a free Open Source UML modeling system. It has a few shortcomings but it can give you some hands on experience with a pretty good UML CASE tool.

    1. Re:UML pitfall by Anonymous Coward · · Score: 0

      ArgoUML looks pretty cool. Somebody should tell those guys that Java doesn't have multiple inheritance of classes (without use of inner classes) though. Probably a C++ coder came up with the nice java example on examplethis page.

  16. UML Distilled by rmjiv · · Score: 3, Insightful

    The review mentions a void for beginning UML books. I think the void is filled quite well by UML Distilled by Martin Fowler and Kendall Scott. It provides an excellent, concise explanation of what UML is, how to use each UML artifact, and why you should care. Good for the beginner or those with short attention spans.

    --
    She came sliding down the alleyway like butter dripping off of a hot biscuit.
  17. Why learn Esparanto? by decipher_saint · · Score: 1

    In the IT environments that I have been exposed to (Government, private sector, web-based business) EVERYONE models differently and none of the IT managers seem interested in UML. Why you ask? Because they do not have the willingness to modify pre-existing documentation or train the current application developers to use UML.

    I for one am all for the Unified Modelling Language, but if I never use it in my work am I just wasting my time learning it?

    --
    crazy dynamite monkey
  18. A Good UML site by Anonymous Coward · · Score: 0

    There's a fairly good UML site here. They have UML usenet archives, a message board, rational rose tips, etc.

  19. Did it live up to its title? by shepd · · Score: 3, Funny

    Did it teach you UML in 24 hours?

    Enquiring minds want to know!

    --
    If you could be told what you can see or read, then it follows that you could be told what to say or think - BoC
    1. Re:Did it live up to its title? by garoush · · Score: 2

      It would have if he started with: "UML for dummies" -- only than can you see the value in 24 hours.

      --

      Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
  20. XML is a metalanguage; UML is a language by jabbo · · Score: 2

    square != quadrilateral for all values of quadrilateral.

    So while you can take your UML diagrams, feed them to a program like Dia, and have it spit out XML representations of the semantic information in them, you will probably experience much less success feeding the resultant XML code directly to someone familiar with UML in their designing process.

    More seriously, there are lots of languages derived from Latin. By your logic, we should all learn Latin. I did that. I still had to learn Spanish, German, and Italian in order to converse with speakers of those languages. And in fact, XML isn't even as useful as Latin ;-)... (similarly, my favorite screwdriver doubles as a hammer and crowbar, but I own and use the latter tools anyways, because they do a better job)

    If you are planning to represent state machines, object interactions, and other design idioms in a standardized form, UML is the current lingua franca. XML is a useful tool for communicating the semantics of (say) a UML diagram, an interlinked graph of information resources, or purchase orders. Is it a substitute for UML? Well, you try ordering a burrito in Latin in East LA and tell me how far you get.

    --
    Remember that what's inside of you doesn't matter because nobody can see it.
  21. Most useful UML book I have ever found by Frums · · Score: 4, Informative

    UML Distilled by Martin Fowler and Kendall Scott. This very short (185 pages including index) book sums up UML diagrams and the uses of them in the most succinct clear manner I have ever found. It is designed as a reference, but works well as an introduction. It presumes you know object-oriented development, basic Jave/C++ syntax, and whatnot - pretty safe assumptions for someone who needs to learn UML, and a godsend for people tired of having to wade past descriptions of basic concepts in every other book that has been supposedly written for a "Professional" (poke at Wrox is on purpose)

    -Frums

  22. You must be an academic by Anonymous Coward · · Score: 4, Informative

    UML is taught widely in the academic world, but the industry is abandoning most of this type of work. It simply doesn't translate into better products and shorter delivery times.

    For example, apple has just instituted a policy of reducing team size to 14 people or less to eliminate much of the needless overhead associated with formal modeling.

  23. Nice... by broody · · Score: 1

    Now, the OMG believes in their acronyms the way the Irish believe in their whiskey,...

    Sure. Just perpetuate the stereotype of the Irish being drunkards.

    --
    ~~ What's stopping you?
    1. Re:Nice... by Waffle+Iron · · Score: 2
      Sure. Just perpetuate the stereotype of the Irish being drunkards.

      Now you're perpetuating the stereotype that everyone who enjoys whiskey is a drunkard.

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

      >Sure. Just perpetuate the stereotype of the Irish being drunkards

      But they are. Am I missing something?

      -

  24. 21 days, 24 hours... by dze · · Score: 1, Interesting

    One of my personal rules for judging books (admittedly, by the cover) is to avoid books of the "Learn X in 21 days" or "Master Y in 24 hours" variety. I find they break up the content illogically and promote a false concept of what it is to really understand a subject.

    --

    "Luck is the residue of design" -- Branch Rickey
    1. Re:21 days, 24 hours... by SnapShot · · Score: 1

      As I get older, I start to judge books by how thin they are. Who has the time to page through a thousand pages of verbose crap. I gained this bias after building an Access 97 application based on the "Access 97 Bible". 1500 pages!!! Who has the time?

      It sounds like "UML in 24 hrs" (at about 300 pages) would be in my "only if there is nothing shorter" list. Luckily, it looks as if "UML Distilled" comes in under 200 pages so I think I'm going to start there.

      This doesn't, of course, apply to Knuth or any pure reference book.

      --
      Waltz, nymph, for quick jigs vex Bud.
    2. Re:21 days, 24 hours... by stipe42 · · Score: 1
      As I get older, I start to judge books by how thin they are. Who has the time to page through a thousand pages of verbose crap. I gained this bias after building an Access 97 application based on the "Access 97 Bible". 1500 pages!!! Who has the time?

      It really depends on the book. I got the Linux Programming Bible a couple weeks ago and it is great, though weighing in at well over a thousand pages. But to relate it to your point, it's good because it acts like the small books. There's a 150 pages on Shell Programming, then 150 on C, then 150 on Perl, then 150 on C++, etc.

      On the other hand, like you I learned Access 97 from one of those behemoths - I think it was one of the QUE series. That was a highly unproductive nightmare.

      stipe42
      www.pcwatch.com

  25. UML good and bad by f00zbll · · Score: 2, Interesting
    Having used UML at my last two jobs. UML is pretty, but I personally prefer plain old text descriptions. The thing is, UML tends to be used in projects with CTO's or managers who don't understand high, medium or low level view of the architecture. I've seen UML used by technical people to facilitate quick design meetings, but more often it is used to explain technical details to non-technical people. Rational and Togethersoft have some nice tools to generate source from UML diagrams, but it tends to foster laziness.

    In the hands of an experienced programmer it saves a lot of time. In the hands of a junior/mid level developer it tends to foster laziness. CTO's and managers that have good technical skills rarely need an UML diagram. UML is no replacement for good communication skills and tech savy management. A 24hr book is stupid, because you can't teach practicle usage. The only thing it does is put money in the author's pocket. The time spent reading the book would be better spent thinking about why the management doesn't already understand from previous meetings.

    1. Re:UML good and bad by Derkec · · Score: 1

      Many comments here discuss how UML is lacking relative to a good old fashioned text description. I would tend to agree, but there is some truth that a picture is worth a thousand words. It would seem a UMLish diagram complemented by detailed description of how everything should work, might be more useful.

    2. Re:UML good and bad by f00zbll · · Score: 1

      great point, now if only management would use it that way :)

  26. The major tools use UML by wiredog · · Score: 3, Funny

    Rational Rose generates tons of UML diagrams. The way we handle it is to write out our documentation in a text editor, and send it to the Rational guy, who puts it in the model. Then we show the pretty diagrams to the customer.

    1. Re:The major tools use UML by markmoss · · Score: 3, Funny

      [we]write out our documentation in a text editor, and send it to the Rational guy, who puts it in the model. Then we show the pretty diagrams to the customer.

      Do the customers ever look at those diagrams and then come back and ask for changes? For instance, suppose a certain design team 8 years ago had shown UML diagrams to an outsider, and explained, following along it: "Now, to shut down, the user moves the mouse to the Start button..." "Wait a minute, you hit START to STOP???" Think they might have changed that?

      Out where contracts may actually require programmers to produce software to the customer's satisfaction, one thing like this caught early enough to be easily fixed is worth a hell of a lot of diagrams. Imagine a soda machine where you have to press "SELL" to buy...

    2. Re:The major tools use UML by cheezit · · Score: 1

      Jeez, can't we just retire this particular MS zinger? It's ancient and not even very pithy---regular users NEVER have a problem with the start button. Spock might, which could explain why Slashdot users do.

      --
      Premature optimization is the root of all evil
    3. Re:The major tools use UML by markmoss · · Score: 1

      So an illogical user interface is OK because you're used to it? NOT!

      In most embedded systems -- things which are made to be used by anyone at all -- push "start" to stop is utterly unacceptable. And I know UML is beginning to be used in designing embedded systems, for the whole machine, not just the software...

    4. Re:The major tools use UML by vrmlknight · · Score: 1

      well to start the majority of programs to you goto start --> programs so you START processes from the start menu shutdown is a process just like everything else

      --
      This must be Thursday, I never could get the hang of Thursdays.
    5. Re:The major tools use UML by markmoss · · Score: 1

      Go explain that to your grandmother. You will be able to start a new humor site from her responses... Geeks understand, but Win95 and it's successors sure weren't designed for geeks.

      Why didn't they call the button "Menu", because that's what it really is? Because Microsoft never thought beyond the new user's first day!

    6. Re:The major tools use UML by bad-badtz-maru · · Score: 1


      "Now, to shut down, the user moves his hand to the start switch". -- driver's ed. instructor.

      maru

    7. Re:The major tools use UML by tpv · · Score: 1
      Rational Rose generates tons of Page Faults.

      The surest sign that the Rational Unified Process doesn't (automatically) lead to good software is the fact that Rose gets worse and worse with each release.

      Either they're not using the RUP to produce it (in which case, why not?) or they are using RUP, and still produce crap.

      --
      Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
  27. It's not "the UML" by Bob9113 · · Score: 1

    It's not "the NASA", and it's not "the UML". "NASA" is an acronym used to identify the National Air and Space Administration. "UML" is an acronym used to identify the Unified Modelling Language. It does not matter what Booch, Rumbaugh, Jacobson or anyone else says. Learning to master the English language is not a programmers first priority, but this one seems pretty simple to me.

    1. Re:It's not "the UML" by Anonymous Coward · · Score: 0

      Think of it this way. Would you say:

      "Administration just launched a space vehicle."

      or

      "The administration just launched a space vehicle."

      Your analogy only clouds the subject. In referencing the full text of the acronym, it makes using the "the" seem more reasonable, not less.

      This falls into that same sort of quibble that "Attornies General" falls into. Sure that is the correct pluralization, but most laymen look at you stupid.

    2. Re:It's not "the UML" by Anonymous Coward · · Score: 0

      "NASA" is an acronym used to identify the National Air and Space Administration. "UML" is an acronym used to identify the Unified Modelling Language.

      What were you saying? It is either supposed to be their in both cases, or neither. Which is it?

  28. Exam by gorf · · Score: 1

    Weirdly enough I have an exam which is half on UML tomorrow morning. Scary.

    I'd agree mainly with the failures of the book; learning UML wrt. soda machines doesn't really help me see what's going on seeing as I'm supposed to be seeing this from a software engineering viewpoint.

    However, one of the pitfalls of trying to come up with a case study that outlines a fundamentally subjective process is that some of the design decisions are going to seem arbitrary to some people who don't have a psychic connection to the author.

    And I'd agree with that completely; I'm completely unartistic and have difficulty in dealing with anything that's subjective because I find it hard not to be able to gauge my performance. The fact the author didn't point out where he was making these decisions didn't help, because I keep wondering if I'm understanding something wrong because he's decided to do something one particular way; I'm left wondering if the other way is acceptable or completely wrong.

    I also felt like I was being dropped in at the deep end, being shown lots of different types of diagrams with no indication of how they go together until the case study (I presume, as I haven't got that far yet :-)

    Oh well, it was the course-recommended text *sigh*

  29. Applying UML and Patterns by orque · · Score: 5, Informative

    A big problem today is people learning the latest buzzword and perhaps the syntax/semantics behind it, but not knowing when to use it, or more importantly, when *not* to use it.

    I had to buy Applying UML and Patterns by Craig Larman for a software engineering class last semester, and it's very good. Not only does he follow a case study through the whole book (a POS system), but he hacks down people for spending too much time on diagramming. He also suggests "UML Distilled" as a pure reference, mentioned several times in comments above.

    Most importantly, the UML is just a display medium, not a process. Just saying "lets use the UML" isn't going to help anyone. Larman discusses the Unified Process (UP) in depth, which is all about short, time-boxed iterations which *do not slip*. In the UP you push features out of an iteration rather than have it go over deadline.

    If you're considering using the UML at all, get this book. (not to mention it's a great software engineering text in general, teaching many fundamental patterns and principles including many from "Design Patterns" but with Java as an example language)

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

      Just saying "lets use the UML" isn't going to help anyone.

      Yeah, that would be like saying "Let's use English" and pretending that answers all design questions.

    2. Re:Applying UML and Patterns by Anonymous Coward · · Score: 0
      A good starting pointer to UML{Unified Modeling Language} + Use Cases | Patterns | Frameworks, check a UML page at proteomicsSURF.

      This page covers Martin Fowler's 'UML Distilled' as well as The Refactory's Publications on Patterns, Frameworks and Refactoring. And don't forget to follow a link to Tigris's ArgoUML - free UML appz.

    3. Re:Applying UML and Patterns by Anonymous Coward · · Score: 0

      While you are at this UML page, check the 'CBD Component Based Development' page @ proteomicssurf.

  30. Envelopes are the right medium! by dubl-u · · Score: 2

    Like you, I sketch things out as I'm designing them, and then toss the diagrams when I'm done. But mainly, I use UML for communicating with people. When discussing design questions, it's great to be able to go to a whiteboard and sketch things as you talk about them.

    People are much more likely to understand something when you communicate it via multiple modes, so description plus diagram is much better than either one on its own. And using UML rather than some home-grown notation makes it easier to communicate, as you don't have the questions of "What does that arrow mean again?"

    .

    Sure, this is "back-of-envelope" stuff, but just because you erase the diagrams doesn't mean they aren't valuable! The hard part about building software isn't the coding; it's the thinking about what to code.

  31. Use Cases by sql*kitten · · Score: 4, Interesting

    It's as though software design is a bit of an afterthought, which is fine, but the book could have been richer had it focused more on this aspect of UML implementation rather than, for instance, how to use the UML to model a soda machine.

    Well, of course it does. Remember that everything in RUP starts with a Use Cases - something useful that someone will actually do with your system. There is no point in developing software before you get this down. The usual way this is taught is through machines that are well-defined and familiar to the student, for example an ATM or a drinks machine.

    As a UML user, I wish more people in the software industry would think about the what and the who for rather than the how, which is what most programmers are preoccupied with.

    1. Re:Use Cases by tubs · · Score: 1

      I remember, at Uni, we had to do Data Flow Diagrams for a number of case studies, basically there were 4 steps - Current Physical, Current Logical, Required Logical & Required Physical - the idea being after the analysis and modeling the current system, you could then stream line and show the "clients" what you were doing.

      Does UML have any of those types of forms?

      --

      try to make ends meet, you're a slave to money, then you die

    2. Re:Use Cases by cheezit · · Score: 1

      Dja ever notice that certain technologies always get taught using similar examples?
      * OO. Standard example is Shape superclass and Square/Circle/etc subclass. Also Vehicle and Car Truck, which opens up the door to teach composition and aggregation (of Engine and Wheel objects)
      * Use cases. As you say, soda machine is a classic. Also ATM, and I've seen coffee maker, plus alarm clock for event diagrams.
      * Web. Always a shopping cart. ALWAYS.
      * Others?

      --
      Premature optimization is the root of all evil
    3. Re:Use Cases by Anonymous Coward · · Score: 0

      WTF is RUP?

    4. Re:Use Cases by MastahTrollah · · Score: 0
      The Rational Unified Process...

    5. Re:Use Cases by MSBob · · Score: 2
      You don't want to know! If you see this acronym in a job description DON'T APPLY!!!

      Just some decent advice from a fellow programmer.

      --
      Your pizza just the way you ought to have it.
  32. You should know better than that... by Guppy06 · · Score: 1

    "from the that's-one-earth-rotation dept."

    It's about four minutes longer than one earth rotation. Shame on you!

    1. Re:You should know better than that... by Anonymous Coward · · Score: 0

      3 minutes, 55.9 seconds longer, last time I checked.

      Man, I never thought I'd have a reason to pull that little tidbit out of my head.

  33. Class diagrams are the worst part of UML by ry4an · · Score: 2

    I think part of the wide-spread disappointment with UML is the 'UML is class diagrams' mindset. Most people know UML includes other diagrams besides class diagrams, but when they sit down with the intent to use UML to design or document a system, they start chunking out class diagrams, and often at a rediculously fine level of detail.

    The Squence diagrams are my favorites, but I find both the State and Activity diagrams more useful than the class diagrams. I think class diagrams get all the emphasis because you can autogenerate source code from them. Which is a shame since the data layout of a system is seldom the trickiest part.

    1. Re:Class diagrams are the worst part of UML by gpinzone · · Score: 1

      Well, if you generate the class diagrams early on in development, they'll be more of a "time-saver". I've seen people generate the class diagram as they are coding! The whole point of the class diagram is to take the system description and break it down into packages/classes/methods before you start coding.

  34. deja vu by mikec · · Score: 4, Insightful

    Many years ago, using flow charts was a requirement in many software jobs. (For those of you less than 40, a flow chart was a stylized picture of small-scale flow control: little diamonds for "if", square blocks for computations, other funny shapes for IO, etc. All connected by arrows.) Flow charts were pretty useless, but you had to produce them, so we built tools that parsed Fortran77 and generated nice flow charts. No one actually used them, but they looked nice hanging outside your office, especially if you had access to a color flatbed plotter.

    Now, I know that Rational can generate UML from code. Which makes me wonder how often UML is actually used for design and how often it's generated after the fact to make pointy-headed managers happy.

    1. Re:deja vu by Phoukka · · Score: 3, Informative

      Mike, the flip side of your last paragraph is somewhat more useful. I've used TogetherControlCenter to create class diagrams visually. The program generates (in my case, Java) code for each of those classes. Admittedly skeleton code, but it allows me to go from package/class design directly into fulfilling the contract laid down by the design. I've only used the "Community" version, so I have not had access to the other UML diagram types, but (according to the readme and help files) the other diagrams take the classes from the class diagram and add more code based on the other diagrams.

      Bluntly, it is loads faster for me as an "all-in-one" analyst/designer/developer for me to do the design in such a UML diagrammer/code generation tool, then flesh out the rest of the code afterwards. For people who work in separate roles, if the analysts and designers are worth their paycheck as professional communicators, then they should be able to hand a coder a written specification that allows the coder to work just as quickly.

      And, as to your original statement, Rational can indeed generate UML from code -- and then allow the user to manipulate the UML and thus generate new code.

      At the base level, some people work well visually, and some don't. Those who work well visually and understand code and know their tools can use "proper" UML tools to make their lives much, much easier.

    2. Re:deja vu by WasterDave · · Score: 2

      Now, I know that Rational can generate UML from code.

      And, indeed, many moons ago the software company I worked for had need for such a thing. We had built a suite of programs on MFC and it had grown to beyond it's original design - which sucked. The PHB's wanted diagrams so that the code may be "maintainable" and Mr Rational was called in to help.

      The troops arrived, laptops, projectors, suits, the whole team spoke to them for a whole day. We got the product and pointed it at our code and it went completely mad... started running around MFC producing UML diagrams, badly. Anyway, those who have used MFC know that the last thing you want is a class diagram.

      Mr Rational was sent home, tail between legs, and we had to fend off their salesmen's calls for months after.

      Moral of the story? Don't believe the hype.

      Dave

      --
      I write a blog now, you should be afraid.
  35. Use MULTIPLE Diagrams by robbyjo · · Score: 3, Insightful

    Disclaimer: I'm doing researches in UML.

    First of all, it is NOT enough to employ only one diagram of UML. You have to use MULTIPLE diagrams to describe particular traits. So, class diagram must be accompanied by at least one of the behavioral diagrams such as state chart diagrams or collaboration diagrams.

    Read the official UML books and you'll discover that there are three dimensions on the diagrams: structural, behavioral, and architectural. Any sufficiently large project should employ at least one of the diagrams that fall into each of the category to capture its holistic aspect.

    The valid complaint is that the UML diagrams lack of coherence and details. For example: I found out that the three books (UML User Manual, UML Reference Manual, and the official UML Spec) are NOT consistent. Don't flame me on this. If you want to know, just find out about the event handling in state charts. Scutinize them in details. All three doesn't agree each other.

    Lack of details hampers researches in this area. For example in state charts, how would you handle events? They say: Designer should not assume one. How can? The handling could dramatically alter the behavior of the state charts, whether it is buffered, channelled, direct, etc.

    Because there is lack of details and coherence, you will find out that virtually ALL researches that claim using UML doesn't really have 100% UML conformance in it. Everyone assume their own form of UML, especially when there are no governing details.

    --

    --
    Error 500: Internal sig error
    1. Re:Use MULTIPLE Diagrams by Anonymous Coward · · Score: 0

      It's great that the biggest UML advocates in this thread can't seem to write a single sentence without committing grammatical or spelling errors. I don't think that's a coincidence.

    2. Re:Use MULTIPLE Diagrams by Anonymous Coward · · Score: 0

      It probably is a coincidence for those posters whose first language isn't English. You might or might not be able to draw valid inferences about a native-speaker whose writing is poor, but you certainly can't do the same for a non-native-speaker.

  36. UML - Flowchart of the New Millenium! by Dimwit · · Score: 3, Interesting

    Actually, that's a low opinion of it - some things are better represented visually, and object-oriented systems are one of them. Database schemas are another.

    But you run into a problem here, in that, to be really useful, the UML diagram has to be almost as detailed as the code. This is why flowcharts fell out of popularity - they were so intertwined with the code that it took twice as much effort to update the program (one pass for the code, the other for the flowchart.)

    So, UML has it's place at the top of the conceptual stack, but once you start getting to the second or third layers, it's time to just break out the /* */'s.

    --
    ...but it's being eaten...by some...Linux or something...
  37. Not beyond possibility by fireboy1919 · · Score: 2

    That's 24 hour 1 hour periods (a solid 24 hour block), not a day.

    Besides, I've never read a SAMs book that really contained lots of info. I think I read the C book, and the HTML book and absorbed all the knowledge in those books in about a day. Then I moved on to the more complicated stuff, and I had to get another book.

    In addition, UML is for MODELING a system design. Kind of like how flowcharts are for modeling a system design. I just bring this up because I feel that most people are probably familiar with those to some degree. In fact, I'd say that UML is sort of the object-oriented equivalent to flowcharts.

    If you've already worked with imperative programming languages, understanding and writing flowcharts is simple. The same is true here: if you've already implemented all of the OOP concepts, then writing UML is fairly simple. If it wasn't, then we'd need a new modeling language, because the purpose of a modeling language is to be simple to write and read so that the structure of a program is easy to follow.

    Of course, this is my opinion based upon my experience, but at least I can say that there's a lot less to UML than there is to Java, C, C++, perl, Javascript, HTML, Lisp, or VHDL (I suppose LISP is argueable since its got a small orthogonal basis set).

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  38. Sams books by Pinball+Wizard · · Score: 5, Informative
    I work in a bookstore so I pretty much get my pick of any computer books I want. For whatever the reason, publishers are amazingly consisisent in the quality of their books. There are exceptions of course, but you can usually tell the quality of a book by nothing more than looking to see who published it. Addison-Wesley is bar none the finest computer book publisher in existence. For serious study of UML you need to look no further.


    At the bottom end of the food chain when it comes to computer books are anything from Sams, Que, or IDG. These publishers typically rush books out so the books are on the shelf before anything else, and often before the software is even released. They are full of screenshots and typos and often information that is incomplete, leading you to other books if you are looking for answers. Thats not to say they all are like that - I've seen good authors write for Sams, etc., and they do their best to do a good job. Its just the nature of publishing that if you rush your books to the shelf and are long on screenshots and short on editing, well, that comes out in the quality of the book.


    If you need to learn UML(or C++, or Java, or VB or ...) in a weekend to survive at your new job, the Teach Yourself The New Technology Flavor of the Week books are fine. If you are more serious, look at Microsoft or O'reilly for good language/technology specific titles, or even better, get real computer science classics from Addison-Wesley or Prentice Hall. These books will still be on your shelf in ten years and you will still be glad you bought them.

    --

    No, Thursday's out. How about never - is never good for you?

    1. Re:Sams books by skribble · · Score: 1
      At the bottom end of the food chain when it comes to computer books are anything from Sams, Que, or IDG. These publishers typically rush books out so the books are on the shelf before anything else, and often before the software is even released

      Oh my... I'll poke at the fire. What a gross overgeneralization (And for someone who works in a bookstore you are quite misinformed since "IDG" has been "Hungry Minds" for quite some time now).

      Granted each of the above publishers have a tendency to put certain books out quickly (is this really that bad... after all early adopters need something and a book that's just "Good but not great" is much more useful then nothing at all). On the other hand each of the above mentioned publishers also put out a number of unrushed well thought out excellent books too. That is, all of the above publishers generally have multiple audiences which require multiple types of books. (Unlike, say O'Reilly, which has really only found success publishing for one broad audience (intermediate developers) even thought they have tried (Anyone read AOL in a Nutshell?))

      Generally Sams *Teach Yourself* books are good for beginners or people new to some technology (24 Hours more so... 21 Days are often a tiny bit more advanced). Sams also publishes other books which are clearly written for more advanced users. Each type of book serves it's audience (Maybe not you, but someone). Hungry Minds (a.k.a. Wiley... formally IDG) has a similar stratagy too. That thing is bigger publishers have bigger more diverse audiences, and therefore there's a wider range of books and not every book is going to be written for people like you.

      The truth is I would guess that many, many of today's developers and computer professionals started out with a Teach Yourself or Dummies book, that doesn't mean these same people would necessarily find one useful today... people grow, but there are new people interested in learning as well.

      BTW... Another bit of info that an informed person would know... Sams and Que and Addison-Wesley and Prentice Hall (opposite ends accroding to Above posting) are all part of the very same company (Along with a few others!)

      --
      --- Nothing To See Here ---
    2. Re:Sams books by Pinball+Wizard · · Score: 1
      BTW... Another bit of info that an informed person would know... Sams and Que and Addison-Wesley and Prentice Hall


      Well that's just scary. True, but scary. AW and PH have always had my greatest respect and I hope their new higher ups don't start pushing them to rush out books and skimp on quality to make money.


      In my defense, I'm not really a bookseller, I'm a programmer who works in a bookstore. I just went and talked to our computer book buyers and they don't even keep up with who owns who any more, because so many publishers are getting bought out by bigger publishers.


      I stand by my assertion though. As far as quality is concerned, Que and Sams aren't in the same league as Prentice Hall or Addison-Wesley, same company or not.

      --

      No, Thursday's out. How about never - is never good for you?

    3. Re:Sams books by Anonymous Coward · · Score: 0

      At the bottom end of the food chain when it comes to computer books are anything from Sams, Que, or IDG. These publishers typically rush books out so the books are on the shelf before anything else, and often before the software is even released

      I think the original poster was right on the mark here. I wrote a few books for Macmillan (the Sams, Que and New Riders people) & IDG a few years ago and editors at both places were very clear and unapologetic about what they wanted from a book -- first to market on an emerging topic, containing a CD with the book (no matter what crap is actually on it), and long enough (350 or 500) pages to appear substantive. Note the absence of "quality" from this description. Nice, well-meaning editors told me (sometimes with embarassment) that quality was a secondary concern.

      Generally Sams *Teach Yourself* books are good for beginners or people new to some technology (24 Hours more so... 21 Days are often a tiny bit more advanced).

      Bad books are just frustrating for beginners. Without experience, it's hard to guess around typos, glaring omissions and unclear writing.

    4. Re:Sams books by Anonymous Coward · · Score: 0

      Funny how authors (Who are after all 100% resposible for for the content of a book) blame publishers for a bad book. Granted, the publishers should be blamed for contracting the author in the first place.

      I'm sure you as a resposible author agreed to writing schedual and signed the contract. If you had issues with anything why would agree to it. I'm also sure that your editor never said quality was of secondary concern. You probably interpreted it that way though when you were 3 months late and still had 50% of the book to write.

    5. Re:Sams books by keefebert · · Score: 1

      Just because a good product is owned by a company that makes a not-as-good-product doesn't mean the good product will get worse. Look at Ford. They own Jaguar, which is still a very good car. But, they also sell cheaper stuff. The same is true for Porche which has the same parent company as Audi and VW. 3 levels of cars that all have 3 levels of quality. That also holds true for books. That is why I have to use $150 PH books in my University Programming classes instead of the $50 Que books. They are better. But, if I want to learn basic Java outside of class, I am not going to buy a $150 book.

    6. Re:Sams books by Anonymous Coward · · Score: 1, Interesting

      AW has put out some trash books Java Design Patterns by Cooper.

      ORA has put out crap as well, Practical C++ Programming. If you read this and you think you know C++ you are sadly mistaken. Then there's Java and XML and Java Servlet Programming How long did it take ORA to go from first to Second Ed. ?

      The publisher that has surprised me is Wrox, it seemed like thay came out of nowhere and started publishing some good books.

  39. Re:Applying UML and Patterns (POS?) by Arkhan · · Score: 4, Funny
    I had to buy Applying UML and Patterns [amazon.com] by Craig Larman for a software engineering class last semester, and it's very good. Not only does he follow a case study through the whole book (a POS system), but he hacks down people for spending too much time on diagramming.

    Is a case study of a "POS" system really the reference you want to follow??

    Oh, wait... point of ... never mind.

  40. Good UML Alternative for OOP by fireboy1919 · · Score: 4, Interesting

    When UML came out, I thought it was a good idea. After applying it for a while it struck me that I already had a design overview that was showing me the relationships between classes and the like (I started in C++ on OOP): the class definitions!

    Pretty much all object oriented programming languages have these, and I have noted that they make the code a lot easier to follow, especially if you produce automatic documentation from them - they're about as good as UML.

    In addition, you HAVE to do them anyway for your projects to get off the ground, so you don't even risk wasting time creating notes that won't really help you.

    Since I realized that, I started creating every class definition I'm going to use in my code before I wrote out any of the methods, so that I could be sure of all the relationships, just as you are with UML.

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  41. uml stands for. . . by gallzilla · · Score: 1

    UML turns out to be an end in itself, not a means to an end. After you've wasted enough time with it you'll realize that its "Usless Modeling Language."

  42. Can UML be the equivalent of music notation by Anonymous Coward · · Score: 0

    I sometimes think about how difficult it is to explain the concepts behind a software and its implementation to another person in plain english/other language. A similar situation must have been faced by early music composers. Now we have the music notations which has solved the expalnation of most intricate problems in music world.

    Will UML be an equivalent thing for the business of software ? What does it lack now to get to that level ? What is the best method of learning it if you look at it from a different perspective.

  43. Expectations by Shimmer · · Score: 4, Insightful

    Expecting to become an analyst by teaching yourself UML is like expecting to become an author by teaching yourself English.

    Learning UML is a necessary, but not sufficient, step. The important thing to understand is object-oriented analysis. UML is just a tool (and a flaky one in some respects).

    -- Brian

    --
    The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
  44. Understanding UML is one thing, using it ... by smartin · · Score: 2

    Like many other people here i've made many attempts to find a way to integrate UML into my development cycle. I'm a visual person, i want to see things, I want to be able to draw clear pictures of what i'm trying to build. Unfortunately I find this very hard to do, while I understand the symbols and concepts of a class diagram, i still have a hard time figuring out how to draw one that effecively shows information about something that I am trying to design. What someone needs to write is a UML cookbook that take a set of common examples and shows how to created good diagrams to illustrate them.

    --
    The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    1. Re:Understanding UML is one thing, using it ... by Anonymous Coward · · Score: 0

      Have you tried "Java Design" by Peter Coad ? He uses scenarios, object-lifetimes, & a minimalistic UML variation to get the point across very succintly. Essentially, a class diagram is just a good starting point for showing the inheritance hierarchy. What you really need is something that displays objects during their lifetime, from when they come into existence ( constructor, or some factory method invocation ), to when they interact with other objects by sending messages ( invoking methods ), to when they die ( exit a method so object goes out of scope, assign it to null, or call destructor, etc ). "Java Design" handles this using a kind of object interaction diagram that shows object lifetimes as well, & is very simple.

  45. Usefulness of UML by Anonymous Coward · · Score: 5, Interesting

    I see a lot of talk here questioning how many people actually use UML, and how useful is it really?

    Some years ago, my company hired a monkey-nutt of a Systems Architect as he liked to be called. He came in spouting the UML communication hierarchy, half-ass explaining UML as he moved along in the communication of his ideas. We spent about 2 months with the fellow. He accomplished nothing he said he would, and we let him take a hike as he talked the talk but... you know the rest.

    HOWEVER, it piqued my curiosity. I was amazed at how easily communicable his ideas were through this UML thing, even though he failed to complete his ideas or do any work. What he did communicate was clear as a bell and the beginings of the model were impressive. I began reading the Addison-Wesley UML set of books in my spare time. Although I do not use Rationals Rose software which some of you suspect as the driving force behind UML, and I probably never will, I have come to use my basic understanding of UML in almost all the aspects of design and implementation I am responsible for. I don't make any of my people study UML, but I use it, use cases, sequence, prototyping, etc, staying away from acronomic adventures and annally retentive symbols. Everyone seems to understand fluidly, and I believe it has really cut our turnaround time. I feel pretty good about the fact that when I need to make something happen, be it build a new software project from the ground up, fix a discombobulated mess, or bring up a decent server box, I, as well as my employees spend less time back tracking, and are usually done quicker than if we just dived in. The modelling, or process planning as we term around here is absolutely essential to rapid quality.

    A lot of people insist it's something for Rational to sell more software. I must point out that Booch, Jacobsen and Rumbaugh, the fathers of UML, have put together the ideas they developed over many years in their respective fields, *without* using Rose or Rational based software. Rational is the sponsor obviously, the roof it all comes together under, and yes I'm sure it sells their wares, and yes, I'm sure some how in the fine print they wish to take over the world such as MS did with Visual n, but it is a very effective process used independently. After all, it's something you excercise, not the software.

    The problem with the guy who brought it to me was that he was so fascinated with the *idea* of the modeling language, he couldn't get past it, it obfuscated the very purpose of our meetings. The trick is not in the acronyms, how much of a bad ass you are, or how much time you spent learning UML, or how much time you can burn using it. It's simply in using it effectively to reach your goal, which in our case is not the *model*, but the end result.

    ok, scoff at will...

    1. Re:Usefulness of UML by rbeattie · · Score: 2

      As silly as this sounds, I hate UML just because I think the arrows point the wrong way. If an object derives from another object, it should have a an arrow point at it, not an arrow pointing at it's parent. I think down, not up. This little point means that every diagram in UML looks backwards and ugly to me.

      The idea is that UML is not a real "language", but a set of commonly defined pictograms. And I don't like how they are defined. It's like I can't accept that an 'E' faces to the right. But the thing is that I learned letters a long time ago and I don't fight it, UML, however, is just someone else's idea about how to draw a diagram and I don't - and won't - agree with it.

      -Russ

      --
      Me
    2. Re:Usefulness of UML by madmaxx · · Score: 1

      Yes, I've seen the same thing: 'Expert' UML God creates gobs of lofty diagrams - resulting system fails. UML is not the fault though, it is the inability of the designers shining through. A design needs to describe a viable vision of how a software system will solve some particular problem set ... after that communicating it has a purpose.

      The problem (I think) is that UML is applied too often for its own sake (a.k.a. the zealot syndrome). The result is pristine UML that describes an unworkable system. Zealously applying anything is rarely a solution on its own. I've noticed that the same applies to the over-application of OO, Extreme programming, and peanut-butter.

      Remember, balance in all things. There is such a thing as too much - even of the good stuff.

      --
      mx
    3. Re:Usefulness of UML by Anonymous Coward · · Score: 0

      What you are describing is OML, look into it.

    4. Re:Usefulness of UML by mabinogi · · Score: 1

      > I've noticed that the same applies to the over-application of OO, Extreme programming, and peanut-butter.

      No...I'm afraid I can't agree with you here...

      nothing bad can EVER come from over-application of peanut-butter!

      --
      Advanced users are users too!
    5. Re:Usefulness of UML by Anonymous Coward · · Score: 0

      I agree with you on the arrow pointing the wrong way in class diagrams. I think they are very helpful for planning and getting ready to code small projects that I'm working on, especially for getting clear about the large scale picture that might be very vague, but I can never shake the feeling that the arrows point the wrong way. I actually did them the way that was natural in the beginning--the 'wrong' way--before I figured out the correct direction.

  46. Like Han Solo by ClosedSource · · Score: 1

    "The Unified Modelling Language provides ways of modelling every sort of system that you can imagine"

    I don't know, I can imagine quite a bit.

  47. System modeling by markmoss · · Score: 3, Informative

    a disproportionate amount of the examples and diagrams involve physical systems instead of software systems. It's as though software design is a bit of an afterthought, which is fine, but the book could have been richer had it focused more on this aspect of UML implementation rather than, for instance, how to use the UML to model a soda machine.

    Hey, I've got friends who make their living programming the microcontrollers for soda machines, etc. And I'm sure there are many more people doing this sort of programming ("embedded") than hacking OS's, so have some respect.

    Anyway, modeling the whole system is what UML is about. Forget that flipper that drops one can, and the code will take your money and say thank you, but you aren't getting any soda.

    1. Re:System modeling by tim_maroney · · Score: 2

      Forget that flipper that drops one can, and the code will take your money and say thank you, but you aren't getting any soda.

      And who was it that decided that complex software systems are more like soda machines than like novels?

      Tim

  48. Done that... by Jaycatt · · Score: 1

    This book was assigned to us for use in an Applied Software Development class. Never needed to crack it open though, since the instructor didn't refer to it. From what I could tell it would have been a pretty ambitious 24 hours though.

    --
    "Shared pain is lessened; shared joy is increased. Thus we refute entropy" - Spider Robinson
  49. How can UML be considered Universal? by Anonymous Coward · · Score: 0

    How can UML be considered Unviersal when it only supports Object Oriented Design and doesn't support Functional based programming?

  50. Hey, knock it off, UML Works by goblank · · Score: 5, Insightful

    UML is the language, not the essay. If you don't know what you want to say, any language will do - but if you do know what you want to say, at least in Software Design - UML gives you a way of describing it precisely.

    In my current organisation, we took a couple of "difficult" projects, where the customer's needs weren't clear, and converted them over to UML. The results were amazing. In one case, we were able to make the customer gain a new appreciation of the complexity, and could re-negotiate the contract. In another scenario, we saved a huge amount of time in "usability" design, where software features were grouped around business workflows.

    Where it failed - and consistently failed - was in teams where everyone did not switch over to UML (or converted under duress). We had cases where developers would rewrite the explicit instructions of UML into plain English, and loose the level of detail in the design.

    If you want a real example of the power of UML, have a look at Argo UML. The tool really takes UML one step further, allowing you to see the Java code generated, and do full roundtrip in a single editor.

    English is an imprecise language, and is very unsuited for expressing program functionality. It's even worse for documenting requirements. Thats where UML fits in, and in MHO, it does work.

    1. Re:Hey, knock it off, UML Works by frisket · · Score: 1

      On the contrary, in the right hands English is
      an extremely precise language. But programmers and
      systems analysts rarely have sufficient
      command of it, and are better off using UML, from what I have read of it. The fault in documenting requirements lies with the person doing the documenting, not with the language.

  51. Acronym != Abbreviation by Anomalous+Cowbird · · Score: 1

    "Now, the OMG believes in their acronyms the way the Irish believe in their whiskey . . . "

    <rant>
    But UML is not an acronym. Neither is OMG, or TLA, or the myriad other misidentified initials. These are abbreviations. An acronym is an abbreviation which spells, and is pronounced as, a word. If it's not a word, it's not an acronym.

    Use a dictionary, dammit!
    </rant>

    1. Re:Acronym != Abbreviation by adlam.bor · · Score: 0

      "CORBA"? Don't hear many people spelling that one out...

    2. Re:Acronym != Abbreviation by Anomalous+Cowbird · · Score: 1

      "CORBA" qualifies -- it is pronounced as a word. Other common examples are "RADAR" and "LASER".

      "XML", on the other hand, is right out.

    3. Re:Acronym != Abbreviation by adlam.bor · · Score: 0
      "ORB" is another one. "MOF" is a toss-up.

      And I don't think the OMG is responsible for XML, are they?

    4. Re:Acronym != Abbreviation by frisket · · Score: 1
      <Rant>

      This is utter nonsense: a parochial N. American view, not shared by the rest of the world.

      UML is of course an acronym: there is nothing inherent in an acronym which says it has to be pronounceable, it's just what it means: the heads of the names (ie the initial or significant letters).

      Restricting acronyms to those which read as pronounceable words is a mere pettish foolishness dear to those who should know better, who treat it as a shibboleth by which they dare to judge others. It is a misplaced belief perpetuated by several generations of ignorant educators who know no better than to parrot the mistakes of their own tutors.

      Lexicographers are right to record this aberrant and anomalous view of an acronym but this must not be taken as evidence of its truth. Ignore them.

      Web Acronym Database

      </Rant>

    5. Re:Acronym != Abbreviation by gpinzone · · Score: 1

      FYI, the proper weay to refer to it is "the UML."

  52. [OT, but what the ..] OMG and acronyms by kilroy_hau · · Score: 1

    the OMG believes in their acronyms

    Am I the only one that had to re-read the article because the first time I read every OMG as "Oh, My God"?

    --


    Kilroy was here!
  53. You must be an asshole by Anonymous Coward · · Score: 0

    what has uml to do with formal modeling ??

  54. 24 hours eh? by mrroot · · Score: 2

    I wonder if this is by the same author as either of these titles:

    Teach yourself C++ and MFC in 12 minutes

    Teach yourself XML Web Services in 5.7 seconds

    Instant enligtenment. Why sonny, I remember back in the olden days when we had to read and read and read and scour reference manuals just to write a simple hello world program. Thats the way it was and we liked it!

    I can just see it the next time I interview someone for a design role: Well, I haven't actually used UML before, but I bought this book yesterday and ...

    --
    I Heart Sorting Networks
    1. Re:24 hours eh? by john_smallberries · · Score: 1

      If you have 24 hours to spend, why not be a real man and just read the full spec at omg.org? It only 800 pages. ;)

  55. At the risk of sounding like a troll by greygent · · Score: 1

    Beware of people who say "If you want to be any kind of , you MUST learn ".

    These people usually rely on periodicals like Infoworld to "keep up with the industry", "keep up with technology", and generally discern their heads from their asses.

    I'd wager most systems analysts on earth haven't even heard of UML.

  56. Practical UML - UML and Java by jamieo · · Score: 1

    Oracle's JDeveloper 9i has UML Class models that are in sync with your Java src code, change the code, the model changes and v. v.

    http://www.oracle.com/ip/develop/ids/index.html? ja va.html

    Nice.

  57. Obligatory Skepticism by istartedi · · Score: 2

    1. I'm skeptical of anything titled "Teach yourself $language in $time". The smaller the $time, the more skeptical I am. Let's carry this to its logical extreme and publish a book titled: "Teach Yourself Multidimensional Particle Physics Before You Even Buy This Book".

    2. I'm skeptical of any language designed to describe something written in another language. The Tower of Babel ain't gonna be rebuilt anytime soon folks.

    Stuff like UML is perhaps useful when you are working on some huge government project where they spend $10 million on auditing to make sure you don't waste $2 million tax dollars. Other than that, it isn't very useful.

    This is where Open Source has an advantage--there are no audit trails or design documents; just mailing list archives. Now, if someone came up with a smart program for reading such archives that didn't require developers to change their ways of communicating, you might have something. And yes, I understand that many see the lack of design documents and audits in Open Source as a disadvantage but it depends on where you are. A prehensile tail is a big advantage if you are a monkey in a tree. It's a disadvantage in a board meeting.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    1. Re:Obligatory Skepticism by Yekrats · · Score: 3, Interesting
      Stuff like UML is perhaps useful when you are working on some huge government project where they spend $10 million on auditing to make sure you don't waste $2 million tax dollars. Other than that, it isn't very useful.



      Au contraire! I just had a class on UML last semester, and was surprised how useful UML could be. Simple diagrams can be used to show management where you're headed with your ideas. Some of the more complicated diagrams can lay everything out for your code-jockey to do the work. Proper modelling will usually save time and energy on all but the smallest of projects.



      An analogy may be drawn from construction. A simple construction project like a shelf may require no modelling. Even I can eyeball a piece of wood and probably craft a pretty decent shelf. (Can you tell I practically failed wood-shop?) However, more complicated projects like a cabinet would require me to write down how I would construct the thing. How complex does a project have to be before one would want to risk NOT modelling?



      I've actually used UML since I took the class. I've been playing around with making pinball machines in Visual Pinball lately, and found that UML State Charts are perfect for modelling the states of a pinball table. Not exactly a practical application, but still... ;-)



      UML can be a very complicated system, but not all of it is necessary all at once. Probably the 20/80 rule applies to it. Learning 20% of UML, will yield about 80% functionality. A little bit of UML can go a long way. Now that I've taken the class, I can't imagine doing OO design without it.



      UML is worthy to explore, but I'll agree with the poster on one point: I don't think I trust getting info about it in a "Teach Yourself in 24 Hours" book.
      --

      --
      Ceci n'est pas une pipe.
  58. Re:Who uses WORDS? by SilLumTao · · Score: 2, Funny

    sarcasm ON

    Yep. WORDS [are] a way for poor communicators to pretend to design. WORDS are notoriously bad at factoring in real-world requirements, exceptions, usage patterns, and user scenarios. In every case I've seen WORDS used for modeling, [they have] created systems which [sound] clean .. but which failed to function usefully once implemented due to lack of conceptual underpinnings. It will be nice to see this particular documentation fad slip beneath the waves, and people get back to describing what they want to do in thoughtful [pictures].

    sarcasm OFF

    --
    "He was a wise man who invented beer." -- Plato
  59. "Teach yourself in X..." by Dog+and+Pony · · Score: 1

    These books are usually pretty good at what they set out to do, that is trying to cover the basics of any subject from perl to xml to icq(!). The problem with them, and why I don't buy them (anymore) is simple: they never leave the bookshelf after you've read it the first time. Take it from me. They are standing there, gloating. :) They all make worthless references, with a poor chance of finding that fact you needed afterwards. It's the same thing as the "dummies"-books. Really, in them selves, in that small world, they are usually good. It just isn't enough for the second lap.

    Grab some online tutorials, experiment some on your own and if you want to buy books - buy comprehensive references.

  60. UML tools by Animats · · Score: 2
    Just to draw the pretty pictures, not generate code. What's good?

    I tried a UML plug-in for Visio once, but it stopped working at the next upgrade, and since Microsoft bought Visio, that product has become far more complex and expensive. (Visio was originally a useful little tool for drawing diagrams with boxes and lines. It was configurable, so you could write new box types and do UML, flowcharts, org charts, and such.)

    We really need a public format for simple draw programs. That's one big reason why Linux software doesn't have enough pictures.

    1. Re:UML tools by mindas · · Score: 1

      Just to draw the pretty pictures, not generate code. What's good?

      Not so true. The truth is a good design & implementation (search for "code generation"). Sorry, I'm biased.

  61. I've just used a dictionary: by EnglishTim · · Score: 2

    "A word formed from the initial letters of a name, such as WAC for Women's Army Corps, or by combining initial letters or parts of a series of words, such as radar for radio detecting and ranging."

    (The American Heritage® Dictionary of the English Language, Fourth Edition)

    It says nothing about the pronoucability or ease of spelling...

    (Although the examples used can be pronounced)

  62. class diagrams = good all other UML = BADD by Anonymous Coward · · Score: 0

    I DO like class diagrams as a way to visualize how code is structured. For example, I was able to reverse engineer some direct 3D libraries to help me navigate through the bloody mess they give you. But sequence and use-case diagrams are GHETTTO! For god sake just give me a flow chart... they tell the same amount of information and are easier to read!

  63. Scratch that.... by EnglishTim · · Score: 2

    http://webopedia.internet.com/TERM/a/acronym.html

    I should have used this dictionary the first time.

    The unpronounceable version of an Acronym is an 'Initialism'....

  64. What would make a good book? by ctrimble · · Score: 1
    What sort of book on UML would be helpful? A book that describes the UML specification? A book that takes real problems and shows how to use UML to describe them? A book that describes the tools?

    Incidentally, I'm asking in my capacity as the editor for a technical publishing company. I agree that many of the existing books are deficient in one way or another. What sort of book would address these deficiencies?

  65. Re:Applying UML and Patterns (POS?) by Anonymous Coward · · Score: 0

    What would you rather? It was a good book...well written.

  66. Is UML programming language specific? by igrek · · Score: 2

    I know, I know. They say UML is just a modelling language, it's generic, you can extend it, etc.

    However, from my own experience, UML is NOT language-independent. Yes, it fits Java very well. It's OK with C++ (not the templates) and probably with Smalltalk. But it's much more difficult to map some other language ideas into the UML notation. In particular, I've seen unsuccesful attempts to use UML for:
    - database-centric system with majority of logic in SQL code;
    - huge system written in object-oriented Perl (yes, it's possible). Many OOPerl techniques just don't have the corresponding UML vocabulary.

    For an alternative approach to modelling, look at CRC cards. It's simple and effective.

  67. Relationships by athakur999 · · Score: 5, Funny

    Okay, so this book will teach you how to model a relationship. But what I'm really looking for is a book that will teach me how to have a relationship with a model.

    Milla Jovovich would be a nice start...

    --
    "People that quote themselves in their signatures bother me" - athakur999
  68. Alternatives to UML by Random+Bystander · · Score: 1

    Javaworld had an article on OO design recently, outlining alternatives to expensive modelling tools such as UML. Read more here.

    For those that don't feel like reading the article, basically the author found that UML doesn't make life easier all the time, and the tools are painful to use efficiently.

    So he decided to do away with all CASE / Modelling tools and draw things up on a whiteboard, and take photos with a digital camera. Using a software package to make the pictures clearer (correcting lighting, angle etc), the model diagram is available nearly immediately.

    The costs are once-off (most software firms have whiteboards, markers already etc) for a digital camera and the whiteboard photo software. I quite liked the mix of seemingly primitive technology used, and pretty much all costs are once-off. Sure you still have to train them up about understanding some parts of the diagrams, but it would be a lot more intuitive. Training for the software... give them an hour for a slow learner.

  69. A good free UML diagram editor. by seanfuller · · Score: 0

    I use TCM (The Toolkit for Conceptual Modeling). It has UML editors for static structurre diagrams, use-case diagrams, activity diagrams, collaboration diagrams, component diagrams and deployment diagrams, plus a few others that are being implemented. The web address for TCM is www.cs.utwente.nl/~tcm. I don't know too much about UML, but I do enjoy using the diagrams.

    --
    Sean Lane Fuller - The truth is out there!
    1. Re:A good free UML diagram editor. by Anonymous Coward · · Score: 0

      Please tell me about Jesus.

    2. Re:A good free UML diagram editor. by seanfuller · · Score: 0

      Send me an email. I would love to talk to you about him.

      --
      Sean Lane Fuller - The truth is out there!
  70. All the UML you need to know in a Slashdot comment by SimonK · · Score: 2

    The trouble with UML, as several posters have pointed out, is that the semantics of the language are ill-defined. There's no clear guideline as to when to use, for instance, ternary associations, or association classes. Hence, when people do use these things in their diagrams, miscommunications tend to occur.

    I teach introductory OOA&D courses, and as part of those we do an introduction to the part of UML we feel is actually useful. That takes about 2 hours and a couple of exercises.

    Only class diagrams, object diagrams and sequence diagrams are actually useful. You don't need diagrams to communicate use cases properly (unless you're trying to sell case tools), and state diagrams are only useful if you're developing protocol stacks.

    Within class diagrams, only ever use simple associations: you can use diamonds once you can explain to me precisely how composition differs from aggregation. Never try to include all variables and comments in your classes. Always label both ends of the association, and provide both cardinalities. Don't bother with arrows. Never, ever, ever use association classes or ternary associations, unless your group has a really precise definition of them and sticks to it.

  71. [OT] Reference manuals? by cyberkreiger · · Score: 1

    Luxury.
    Of course, we had it tough.

    We had to get into work at 6'o'clock in the morning, drink a cup of cold coffee, filthy cracked cup and all.
    Then we'd write our own reference manuals, just to be able to use vi.
    After that our boss would have us sit in meetings, and thrash us with demands.

    But you know, we were happy in those days, though we we're overworked.

    You try to tell the young people that today, and they won't believe you.

    (With thanks to Monty Python.)

    --
    Stumbling in the dark
    I hear slavering of jaws
    Eaten by a grue.
  72. Is the Validity of UML the Issue ? by loweyson · · Score: 1

    I'd like to just add my 2bits worth in to this discussion; the usefulness of UML and it's advantages/disadvantages are not actually the issue, it doesn't make this book any better or worse. This is a good book, if you would like to learn UML. If I just play devils advocate and say that UML is a good visual representation of a 'System' (software or other) that is non platform or environment specific (i.e. Windows or Unix. C++ or Java) but does lack contraints that would normally apply in a development environment, then maybe it would be worth looking at the future of modelling and tighten the rules, and maybe come up with something like OCL (Object Constraint Language, see link below.) which is an extension to UML that is more capable of modelling a state oriented system (i.e. Most software programs). Object Constraing Language, IBM's Perspective.

  73. Re:Start with... by SlowMovingTarget · · Score: 2, Informative

    Having taught the UML to my development team, I've found it to be more effective to begin with the class diagram. There are several reasons for this.

    The class diagram drives object-orientation home more quickly as you immediately encounter encapsulation and inheritance on this diagram. Class diagrams (interpreted strictly) show what combinations of messages are possible with the current system through dependencies and associations. The OCL enhances the vocabulary of the class diagram to allow business constraints to be modeled as well.

    Learning the class diagram first becomes even more effective when you're teaching the UML in the context of a process or method. For example, I taught my team a hybrid of the RUP and ICONIX processes, which we then used immediately (this is also key). In both those processes (although more so in the RUP) you use sequence diagrams to help find the classes, and to help flesh them out (if you can send it a message you've got a dependency at least...).

    You make a good point about sequence diagrams being more like code (the UML itself is designed to be executable), but most code generators work from the class diagram (again making it more important in fact if not in theory). To represent code you'd often have to create a myriad of sequence diagrams to express all possible combinations of the interactions between a particular set of classes. Sequence diagrams are more useful within the scope of a use case than within the scope of a single class operation.

    Many free software / open source / pseudo-free 'light edition' UML modeling tools sometimes don't even include sequence diagrams, although I'd argue that they are the second most important diagram after the class diagram.

    OTOH, sequence diagrams more effectively convey the intended impact of polymorphism to those less experienced in O-O.

    As to your business analyst woes, I sympathize. I suggest you buy them (or better, have your company expense a copy) of Alistair Cockburn's Writing Effective Use Cases. Good use cases become critical especially if you base the rest of you SDLC from them, as in Use Case Driven Object Modeling with UML by Doug Rosenberg.

  74. A good free UML Reference by MrBlack · · Score: 2

    I've got no love of UML, but when I did have to use it I found the UML specs themselves to be quite good. I used version 1.3 but the latest (1.4) look like they are out. A simple introductory book (like the one by Martin Fowler) and this baby should see you right. It would also be nice if the specs. were better indexed, and more easily searchable.

  75. Meetings and Use Cases by Anonymous Coward · · Score: 0

    One of the initial best parts of the UML was using use-cases. Use-cases helped to cut down on the amount of meetings that would take place during development/coding. Bfore this, just using paragraphs of text to decscribe the requirements, meeting after meeting while coding would take place to "clarify" things which was very disruptive to the project. UML is just a set of tools not a methodology... use those tools if they help you. Don't if they don't.

  76. UML can work. It just isn't a panacea! by burtonator · · Score: 4, Informative

    There are a lot of people here that are criticizing UML.

    It is important to remember that UML is not a panacea! It won't solve all of your problems. However, when combined with other proper design techniques it can be very valuable.

    For example:

    Check out my Reptile docs.

    When combined with regular documentation, and linked to the Javadoc, these UML class diagrams REALLY help to clarify the system to newbies.

    These were generated from source with Jase

    The site was generated with Apache Velocity/Anakia and the Jase diagrams are generated with Ant every time I want to rebuild the site.

    This allows us to produce a site that has up-to-date UML Class diagrams, javadoc, code snippets, etc and these are always up-to-date with the code that is in CVS.

    cool... huh? :)

    This is a good example of how UML can bring a lot to the picture.

  77. Porsche by KlomDark · · Score: 2

    Porsche hasn't made a cool car since they phased out the 924/928/944 type cars. (The sleek style like the Porsche in Rishy Business) Boxters look, well, like a box. The 911's are almost cool, but too Eurotrash looking.

    1. Re:Porsche by keefebert · · Score: 1

      Personally, I agree with you. I don't really like the Porche, but you can't argue with its performance.

  78. Re:UML usage is in transition. by jayfang · · Score: 1
    Rational is aiming at large corporates, for the reasons you mention.

    I have seen high productivity start-ups adopting UML because
    (a) accurate communication with clients is essential
    (b) need max productivity from small staff numbers
    (c) they have top people that can make best OO practices productive.

    This is a market that other CASE vendors are persuing heavily. Different markets, both valid.

    Jayfang
    sorry the dog ate my sig.

  79. Re:Usefulness of UML... same as C++ by jayfang · · Score: 1
    so right!

    I have seen fabulous productive C++ projects.
    I have seen unmitigated disaster C++ projects.

    C++ is not perfect, but it can be a great tool in the hands of the wise.
    I think you can equate the two on that simple level.

    Jayfang
    move along, move along! nothing to see here!

  80. Would you build a house without a blueprint? by winchester · · Score: 1
    A lot of people here critisize either the UML, or the process of designing software before actually building it. My questions to those people are:
    1. Do you understand software design?
    2. Do you understand UML?
    For those of you who answered no to the first question: Think of system design in the same way as an architect who designs a house. Let's be honest, would you build a house without a blueprint? Now think of large software systems. Would you build a large software system without a blueprint?

    That is where UML comes in. UML is a language specification to model complex systems. The idea behind it is to be able to communicate ideas in an unambigueus way. Think of UML as the blueprint for building large software systems.

  81. Free UML tool by Anonymous Coward · · Score: 0

    Poseiden for UML from gentleware is a commercial tool that evolved from ArgoUML. There is a free version (Community Edition) of Poseidon that is very effective for beginning users.

  82. Re:All the UML you need to know in a Slashdot comm by Anonymous Coward · · Score: 0

    Sorry, had to do this . . .
    1) The difference between composition and aggregation is defined in the UML spec. The spec is also relatively accessible and written in an understandable way.
    2) It has been a long time since I wrote protocol stacks, but I use state diagrams all the time - it helps everyone on the team understand when certain behaviors or functions can and cannot occur. And nobody on the last team even knew UML. It didn't matter - I was able to capture my thoughts, validate them, and communicate it to the team. What was complex and hard for people to understand just by talking about it became real and we could move forward. And I had some documentation to boot.
    3) UML does not equal case tool. I draw an oval and a box and a stick figure and tell a customer 'here is what the system should do'. They don't know its UML and I never paid money for Rational Rose. But the system gets done and the users know what they are getting.
    4) Never, ever tell someone to never, ever use some feature of a language (okay, maybe goto). The features are there for a reason. Because one has not taken the time to either understand precisely how it should be used, or educate others on how it is being used or what is meant by a construct is not an argument against its use. It is better to say 'if you have a problem and don't know how to represent something, refer to the spec and learn how it should be done'.
    I am glad I am not in your class.

  83. Re:All the UML you need to know in a Slashdot comm by SimonK · · Score: 2

    1. My arse it is. I have a printed copy of the spec. It takes 3 lever arch files. Its vague, imprecise and cumbersome. If you think the difference between aggregation and composition is clear, go on and explain it. I can find 3 slightly contradictory explanations, all from "official" sources within a few minutes.

    2. Well, bully for you, but the number of possible states of most systems is too big or too small for them to be useful. They're handy if you're writing things that go through small series of intricate state transitions - like network protocols, or maybe session management - but not otherwise. For the vast majority of applications, they're not applicable. Thats why we don't teach them.

    3. But the use case notation is useless. You can show the same thing more clearly as text. Personally, I prefer scenarios for talking to clients anyway. If you can wave diagrams and clients and believe they understand what is going on then you're either very lucky in your clients or deluded. Indeed UML does not imply cases tools. Whiteboards generally work better, but there's stuff in UML - unsurprisingly, given its source - that seems only of use for selling case tools, such as the Use Case notation.

    4. If a feature makes no sense in context, then why not tell people not to use it ? If you use UML as a communications tool with other developers, the most important thing is that everyone has the same understanding. Funny wee diamonds, and wierd associations, generally hinder understanding, and the same concepts can be explained more clearly using the minimal notation and a note.

    You seem to assume a level of conceptual unity in UML that just ain't there. Because it is quite deliberately *not* a methodology, there's no reason to use the tools that you don't find useful, and if you, in turn are teaching other people a way of doing things that you find works, it makes sense to tell them to do the same. Much of UML is just there because someone once invented a methodology that used it. Often 20 years ago. I believe I do understand most of the features, but have found that most people don't, and that those who do "understand" them differently from me.

    I'm not a believer in heavyweigth process, or ornate notation. Clear communication is far more important than precise documentation. In general people have more success, and more fun, using the techniques we teach than they do trying to use the full "power" of UML.

    Simon

  84. Re:All the UML you need to know in a Slashdot comm by Anonymous Coward · · Score: 0

    1. How many official sources are there? I am aware of only one - www.omg.org.

    2. I never implied that I modeled an entire system on a single state transition diagram, or that I would use a state transition diagram on a system that had too few or too simple a set of states and transitions. In fact, I would use a similar rationale for any model or any other piece of documentation - if it isn't useful I wouldn't want to produce it. But when it is important to understand states and transitions, it is nice to have a notation for describing it. And as you are now pointing out, this does not only occur when writing protocol stacks.

    3. To repeat, if it is useless in a given context, then I wouldn't use it. I think we are in agreement on this. So if you are in front of people and need to draw on a whiteboard, what is the problem with using UML use-case notation? Especially if everyone else in the room starts to 'get it' and offers input and feedback so that we have a higher confidence that we all know what is expected? And when I get back to my desk, I can draw the diagram in whatever tool I want, write up my scenarios and my narratives (which, last time I checked, are still English prose, which is a point that seems to be missed in much of this thread) and I have a far higher chance that everyone reading it and looking at the pictures is thinking the same thing. I don't consider that useless.

    4. Agreed. I wouldn't tell someone to use something just for the sake of using it. But I have found more than enough ternary relationships, for example, to know that I am glad I can draw them when they occur, rather than saying 'gee, I never learned that, let me get creative to see if I can morph it into something different'. My point is that one should say, as many foreigners say, 'how do I say this?' Not that I am always pleased with how UML has chosen to address each and every need, but I would rather use it if it has already been defined.

    Finally, I do not understand the confusion over representational language, methodology, and tool. They are related but orthogonal. I have gradually but consistently been adding UML diagrams to my work regardless of methodology or tools. One does not dictate the other. So I still don't understand this belief that UML = heavyweight, or UML = ornate, or a number of other misconceptions about how to use the language to communicate. It is that and only that - a language to be used for the purposes of communication. From that perspective, however, just as with any language, it gives me pause when people say 'I will teach you all you need to know in 2 hours,' instead of saying 'I will teach you enough in 2 hours to get started, but keep in mind that it is only the beginning.'

  85. Re:Start with... by KenSeymour · · Score: 1

    I have to agree with you mostly. My experience
    is that every team that does any OO diagrams does class diagrams.
    You almost don't have to tell people to do it.

    My experience is also that almost no-one does sequence diagrams.
    That could be changing as RUP and Rational Rose or
    similar tools become more widely available.

    I like to make sure that the class diagrams are correct by coming up with a few important scenarios and testing them with sequence diagrams.

    But that is just my own personal perspective.
    I think more in OO code and so I find a combination
    of class and sequence diagrams.
    People fulfilling other roles in software development may find
    other parts of UML and their process
    more usefull.

    I have to admit that I forgot about class depencencies and module dependencies.
    That is additional usefull information that goes
    on the class diagrams.

    Another personal bias/opinionn of mine is that
    automatic code generation is overemphasized.
    If you have good design documentation, writing
    the code is the easiest part of development.
    The coding goes so fast.
    You have to expend a lot of extra effort to get the UML diagrams to generate the code properly.
    You could spend more of a senior developer's time
    that could be better spent helping out less senior developers.

    I did use Rational Rose to generate code for the first several weeks of the development of a DLL.
    I switched to manual coding when it became too difficult to make the code generation work.
    The deciding factor was the inablity to get the
    EXPORT qualifier that the DLLs needed in
    the class definitions.

    But the dependency relations in the class (or was it module) diagrams
    caused the include statements to be inserted automatically.

    Anyway, where I work now, we have no UML tools, and no QA department.
    You just end up with more effort expended elsewhere.

    --
    "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
  86. Re:Start with... by SlowMovingTarget · · Score: 1

    I understand what you mean about most code generators. All of them require you to accept what the designers decided, or code it yourself. I think this will change, though, as a greater understanding of the UML, and more importantly, patterns, comes to the industry.

    One of the three amigos (Jacobson, I think) gave a speech describing what he called "UML all the way down." Basically, he meant that most (if not all) coding would be done at the UML level. I see a handful of tools moving in that direction already. Rose is one, Together is another, although OptimalJ (shameless plug on my part, I'm employed by Compuware) is the only one I've seen that generates a complete J2EE application from a diagram (deployment descriptors, JSP UI and all).

    I'm also with you on the coding becoming the easy part of the process. I've found it to be a challenge explaining to management why we spend so much time in analysis and design. I have to say, though, that it's gotten easier now that we've been through the process a few times, and produced good software and happy users, on time.

    In previous cycles, we've tended to do what diagramming needed to be done; just enough to communicate the design idea to the entire team. From there we went on to contract specification in comment headers, then to code. This has been very effective, as the end result of the design phase is to have the programmers just itching to fill out those signatures and contracts with implementations. The diagrams got us to the point of understanding the final solution well enough to visualize it in our mind. The other upside was that the bulk of the non-pictorial documentation lives with the code.

    The only reason we haven't used code generation so far, is that we've not been working in a language supported by Rose, and OptimalJ has just come on the scene (we intend to use it internally).

    All of that said, there will always be the Steve Gibson's of the world who eschew abstraction and write tight, small, effective assembler... for one platform... and only they can maintain it...

    Anyway, happy coding.