Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Teach Yourself UML in 24 Hours

Posted by timothy on Tue Jan 15, 2002 11:15 AM
from the that's-one-earth-rotation dept.
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.

This discussion has been archived. No new comments can be posted.
Teach Yourself UML in 24 Hours | Log In/Create an Account | Top | 262 comments (Spill at 50!) | Index Only | Search Discussion
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • What about XML ? (Score:3, Funny)

    by forged (206127) <soltesz@nOspam.gmail.com> on Tuesday January 15 2002, @11:20AM (#2842387) Homepage Journal

    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...

  • UML users, Are there many? by gbvb (Score:2) Tuesday January 15 2002, @11:21AM
    • Re:UML users, Are there many? by dthable (Score:2) Tuesday January 15 2002, @11:31AM
    • Re:UML users, Are there many? by SirAnodos (Score:2) Tuesday January 15 2002, @11:43AM
    • Re:UML users, Are there many? (Score:5, Informative)

      by akookieone (530708) <andrew@beginsCOW ... minus herbivore> on Tuesday January 15 2002, @11:49AM (#2842595) Homepage
      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).
      [ Parent ]
    • Re:UML users, Are there many? (Score:5, Informative)

      by GringoGoiano (176551) on Tuesday January 15 2002, @12:12PM (#2842755)

      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.
      [ Parent ]
    • 2 replies beneath your current threshold.
  • Not a Big Fan of Sams by nemui-chan (Score:1) Tuesday January 15 2002, @11:21AM
  • The problem with UML (Score:5, Insightful)

    by NickFusion (456530) on Tuesday January 15 2002, @11:23AM (#2842411) Homepage
    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.
  • Good for beginners (Score:4, Informative)

    by Chocky2 (99588) <c@llum.org> on Tuesday January 15 2002, @11:23AM (#2842412)
    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.
  • Who uses UML? (Score:4, Interesting)

    by johnburton (21870) <johnb@jbmail.com> on Tuesday January 15 2002, @11:23AM (#2842415) Homepage
    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?
    • Re:Who uses UML? (Score:5, Insightful)

      by tim_maroney (239442) on Tuesday January 15 2002, @11:32AM (#2842484) Homepage
      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
      [ Parent ]
    • Re:Who uses UML? by SirSlud (Score:2) Tuesday January 15 2002, @11:46AM
    • Envelopes are the right medium! by dubl-u (Score:2) Tuesday January 15 2002, @11:47AM
    • Re:Who uses UML? (Score:4, Informative)

      by jpbelang (79439) on Tuesday January 15 2002, @11:49AM (#2842596) Journal
      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 [eiffel.com] to say about UML.
      [ Parent ]
    • Class diagrams are the worst part of UML by ry4an (Score:2) Tuesday January 15 2002, @11:54AM
    • Use MULTIPLE Diagrams by robbyjo (Score:3) Tuesday January 15 2002, @11:58AM
      • 1 reply beneath your current threshold.
    • Re:Who uses UML? by mystery_bowler (Score:2) Tuesday January 15 2002, @12:04PM
    • Re:Who uses UML? (Score:4, Interesting)

      by IndranilB (323511) on Tuesday January 15 2002, @12:20PM (#2842835)
      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.
      [ Parent ]
    • Re:Who uses UML? by angel'o'sphere (Score:1) Tuesday January 15 2002, @12:39PM
    • Re:Who uses UML? by Derkec (Score:2) Tuesday January 15 2002, @02:12PM
    • Re:Who uses UML? by schroom5 (Score:1) Tuesday January 15 2002, @02:25PM
    • Re:Who uses UML? by MarkCC (Score:2) Tuesday January 15 2002, @02:59PM
    • Re:Who uses UML? by Stalcair (Score:1) Tuesday January 15 2002, @03:13PM
    • Re:Who uses UML? by Lycanthropic Dreamin (Score:1) Tuesday January 15 2002, @05:42PM
    • 1 reply beneath your current threshold.
  • No thanks... by spatrick_123 (Score:1) Tuesday January 15 2002, @11:24AM
  • On the whole... (Score:5, Insightful)

    by psxndc (105904) on Tuesday January 15 2002, @11:26AM (#2842434) Journal
    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 [aw.com] by Addison-Wesley.

    psxndc

  • UML samples by ergo98 (Score:2) Tuesday January 15 2002, @11:28AM
    • Re:UML samples by mindas (Score:1) Tuesday January 15 2002, @12:00PM
    • Re:UML samples by Andreas Rueckert (Score:1) Tuesday January 15 2002, @12:17PM
    • Re:UML samples by dkoyanagi (Score:2) Tuesday January 15 2002, @12:34PM
  • Teach yourself x in 24 hours by wiredog (Score:2) Tuesday January 15 2002, @11:29AM
  • My Favorite interview question by djKing (Score:2) Tuesday January 15 2002, @11:29AM
  • UML Distilled (Score:3, Insightful)

    by rmjiv (462990) on Tuesday January 15 2002, @11:31AM (#2842477) Homepage
    The review mentions a void for beginning UML books. I think the void is filled quite well by UML Distilled by Martin Fowler [martinfowler.com] 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.
  • Why learn Esparanto? by decipher_saint (Score:1) Tuesday January 15 2002, @11:33AM
  • Did it live up to its title? (Score:3, Funny)

    by shepd (155729) <slashdot@org.gmail@com> on Tuesday January 15 2002, @11:35AM (#2842516) Homepage Journal
    Did it teach you UML in 24 hours?

    Enquiring minds want to know!
  • by Frums (112820) on Tuesday January 15 2002, @11:37AM (#2842529) Homepage Journal

    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

  • You must be an academic (Score:4, Informative)

    by Anonymous Coward on Tuesday January 15 2002, @11:38AM (#2842534)
    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.
    • 1 reply beneath your current threshold.
  • Nice... by broody (Score:1) Tuesday January 15 2002, @11:39AM
  • 21 days, 24 hours... by dze (Score:1) Tuesday January 15 2002, @11:41AM
  • UML good and bad by f00zbll (Score:2) Tuesday January 15 2002, @11:42AM
  • It's not "the UML" by Bob9113 (Score:1) Tuesday January 15 2002, @11:45AM
  • Exam by gorf (Score:1) Tuesday January 15 2002, @11:46AM
  • Applying UML and Patterns (Score:5, Informative)

    by orque (516523) on Tuesday January 15 2002, @11:47AM (#2842584) Homepage

    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 [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. 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)

    • by Arkhan (240130) on Tuesday January 15 2002, @12:07PM (#2842708)
      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.

      [ Parent ]
      • 1 reply beneath your current threshold.
    • 2 replies beneath your current threshold.
  • Use Cases (Score:4, Interesting)

    by sql*kitten (1359) on Tuesday January 15 2002, @11:51AM (#2842610)
    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.
    • Re:Use Cases by tubs (Score:1) Tuesday January 15 2002, @12:22PM
    • Re:Use Cases by cheezit (Score:1) Tuesday January 15 2002, @02:28PM
    • Re:Use Cases by MSBob (Score:2) Tuesday January 15 2002, @06:47PM
    • 1 reply beneath your current threshold.
  • You should know better than that... by Guppy06 (Score:1) Tuesday January 15 2002, @11:54AM
    • 1 reply beneath your current threshold.
  • deja vu (Score:4, Insightful)

    by mikec (7785) on Tuesday January 15 2002, @11:56AM (#2842642)
    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.
    • Re:deja vu by Phoukka (Score:3) Tuesday January 15 2002, @12:17PM
    • Re:deja vu by WasterDave (Score:2) Tuesday January 15 2002, @03:31PM
  • UML - Flowchart of the New Millenium! (Score:3, Interesting)

    by Dimwit (36756) on Tuesday January 15 2002, @12:00PM (#2842660) Homepage
    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.
  • Sams books (Score:5, Informative)

    by Pinball Wizard (161942) on Tuesday January 15 2002, @12:05PM (#2842695) Homepage Journal
    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.

    • Re:Sams books by skribble (Score:1) Tuesday January 15 2002, @01:49PM
      • Re:Sams books by Pinball Wizard (Score:1) Tuesday January 15 2002, @03:14PM
        • Re:Sams books by keefebert (Score:1) Tuesday January 15 2002, @06:41PM
          • Porsche by KlomDark (Score:2) Wednesday January 16 2002, @02:34AM
            • Re:Porsche by keefebert (Score:1) Wednesday January 16 2002, @04:45PM
      • 1 reply beneath your current threshold.
    • Re:Sams books by Anonymous Coward (Score:1) Wednesday January 16 2002, @03:53AM
  • Good UML Alternative for OOP (Score:4, Interesting)

    by fireboy1919 (257783) <rustyp@@@freeshell...org> on Tuesday January 15 2002, @12:13PM (#2842761) Homepage Journal
    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.
  • uml stands for. . . by gallzilla (Score:1) Tuesday January 15 2002, @12:22PM
  • Expectations (Score:4, Insightful)

    by Shimmer (3036) <brianberns@gmail.com> on Tuesday January 15 2002, @12:26PM (#2842903) Homepage Journal
    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
  • Understanding UML is one thing, using it ... by smartin (Score:2) Tuesday January 15 2002, @12:28PM
    • 1 reply beneath your current threshold.
  • Usefulness of UML (Score:5, Interesting)

    by Anonymous Coward on Tuesday January 15 2002, @12:29PM (#2842939)
    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...
  • Like Han Solo by ClosedSource (Score:1) Tuesday January 15 2002, @12:29PM
  • System modeling (Score:3, Informative)

    by markmoss (301064) on Tuesday January 15 2002, @12:35PM (#2842998)
    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.
  • Done that... by Jaycatt (Score:1) Tuesday January 15 2002, @12:37PM
  • Hey, knock it off, UML Works (Score:5, Insightful)

    by goblank (466519) on Tuesday January 15 2002, @12:56PM (#2843179)

    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 [tigris.org]. 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.

  • Acronym != Abbreviation by Anomalous Cowbird (Score:1) Tuesday January 15 2002, @12:59PM
  • 24 hours eh? by mrroot (Score:2) Tuesday January 15 2002, @01:08PM
  • At the risk of sounding like a troll by greygent (Score:1) Tuesday January 15 2002, @01:12PM
  • Practical UML - UML and Java by jamieo (Score:1) Tuesday January 15 2002, @01:23PM
  • Obligatory Skepticism by istartedi (Score:2) Tuesday January 15 2002, @01:50PM
  • "Teach yourself in X..." by Dog and Pony (Score:1) Tuesday January 15 2002, @02:04PM
  • UML tools by Animats (Score:2) Tuesday January 15 2002, @02:09PM
    • Re:UML tools by mindas (Score:1) Tuesday January 15 2002, @05:07PM
  • What would make a good book? by ctrimble (Score:1) Tuesday January 15 2002, @02:56PM
  • Is UML programming language specific? by igrek (Score:2) Tuesday January 15 2002, @03:14PM
  • Relationships (Score:5, Funny)

    by athakur999 (44340) on Tuesday January 15 2002, @03:18PM (#2844325) Homepage Journal
    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...
  • Alternatives to UML by Random Bystander (Score:1) Tuesday January 15 2002, @04:00PM
  • All the UML you need to know in a Slashdot comment by SimonK (Score:2) Tuesday January 15 2002, @05:14PM
  • Is the Validity of UML the Issue ? by loweyson (Score:1) Tuesday January 15 2002, @05:58PM
  • A good free UML Reference by MrBlack (Score:2) Tuesday January 15 2002, @06:25PM
  • by burtonator (70115) on Tuesday January 15 2002, @07:30PM (#2845977)
    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 [openprivacy.org] 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 [yi.org]

    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.
  • Would you build a house without a blueprint? by winchester (Score:1) Wednesday January 16 2002, @08:01AM
  • 15 replies beneath your current threshold.