Java Modeling In Color With UML 59
Java Modeling in Color with UML | |
author | Peter Coad, Eric Lefebvre, and Jeff De Luca |
pages | 218 |
publisher | Prentice Hall |
rating | Far belo |
reviewer | Jason Bennett |
ISBN | 0-13-011510-X |
summary | Peter Coad's attempt to integrate another dimension to modeling |
Background
Back in my wild college days (ok, so maybe they weren't that wild ...), my introduction to object-think and object-speak came through two main conduits: Smalltalk, and Peter Coad. His Object-Oriented Programming helped teach me how to think natively in objects, and gave me my share of vending-machine problems. When I learned that he had come out with a new book, I knew I had to get it and see how his views had developed in the era of Java and UML. This was not what I had in mind.The Scenario
This book is mainly divided into three parts. Part one is composed of chapter 1, where the authors describe the concept of modeling with color. It's an excellent idea, really, color coding class design to distinguish the parts the objects play. Color coding has the advantage of adding another dimension of information to a diagram without clogging the diagram with more words. The chapter also includes a discussion of the "domain-neutral component," the fitting together of archetypes into standard patterns. This is the basis for part two, comprised of chapters 2-5. Part two is basically a series of object models strung together with a bit of text to describe each of them. Various views of the model, including UML activity diagrams, are shown. Finally, part three is composed of chapter 6, where the authors describe the concept of Feature-Driven Development, that is developing software in narrow slivers, thus maximizing deliverables and customer satisfaction.
What's Bad?
A dangerous question to ask about this book. I approached this book looking for something that would teach me about patterns, what they do, some examples, and ways to use them in my work. What I got was a pattern dictionary with no instruction in their use. Since I get paid to design and write Java, and since I have some formal training in OO, I like to think that I have some sort of clue about this stuff. Unfortunately, this book still didn't make any sense to me, and still didn't seem useful at all. Why do I want 20 pages of manufacturing models? How did they come about? Why would I want to do it that way? How else could I do it? What the heck is going on with this model? It's like trying to expand your vocabulary by reading the dictionary, with no example sentences to guide you.
The other parts are mildly interesting, but not special in and of themselves. The color idea is nice, if you design like Coad. If you don't, I have to wonder how usful they would be. Feature-driven development has been expressed in other ways before, but this book does not address a major problem with the concept: how can you develop narrowly when you need a broad backing for the application? In other words, it's all well and good to get one feature out at a time, but if you have to write half the middle-tier and all the back-end for that one feature, have you really bought yourself anything? I don't mean to settle the debate here, only point out that an entire book could be written on that concept (and in the case of Extreme Programming, has been), and one chapter does not do it justice. In many ways, it seems tacked on.
What's Good?
Well, as I said, the first and last chapters have some promise. If you read the comments on Fatbrain and Amazon, the opinions seem to be strongly divided. People either love or hate this book. If you need these models, and can intuit a lot from the diagrams, this book could be very useful to you. If you're anything less than an expert, though, I doubt what you will be able to get much from this book.
So What's In It For Me?
I'm currently ordering Applying UML and Patterns, as that has been highly recommended to me as an intro patterns book. I'll let you know how that turns out. I do believe in the pattern concept, as that is exactly how the other engineering disciplines work. I truly hope we can make it work for software engineering.
Table of Contents
- Preface
- About the Authors
- Archetypes, Color, and the Domain-Neutral Component
- Make of Buy
- Sell
- Relate
- Coordinate and Support
- Feature-Driven Development
- Appendix A: Archetypes in Color
- Appendix B: Modeling Tips
- Appendix C: Notation
- Index
This book is available at Fatbrain.
Re:I Know This is Off-Topic As Hell... (Score:1)
Not free per se, but part of the bundle and intended to replace their, um, "Java" implementation.
Re:Reviewer lacked the required background (Score:2)
Gamma, Vlissides, Johnson and Helm
The book is called Design Patterns : Elements of Reusable Object-Oriented Software [aw.com].
Coad (Score:2)
The main question is (Score:1)
If the reviewer hasn't read the GoF this is the place to start when we're talking patterns. Every book like this should be jugded against the GoF 'bible'. In my opinion.
Re:Unfair review? (Score:3)
Chapter 1 is the concept he's describing, modeling in color. Coad defines four archetypes, and associates a color with each. He gives examples of how to classify your classes according to these archetypes, and works into thinking in terms of them. He then introduces another abstraction, the "domain-neutral component," which is a large diagram template which can be customized to fit your particular situation(s). I had a bit more of an issue with this one. It seems useful, but I'm not sure that it doesn't stunt your thinking.
Chapters 2-5 are examples, in gory detail. He and his coauthors have defined 61! different domain-neutral components (which I honestly would call domain specializations of his overall Domain-Neutral Component). It's a catalogue, with fair descriptions, but I wouldn't put this into the category of Design Patterns, quite... I'm really not sure how to classify these things. (Have to think about that some more.) If you're familiar with OO, reading through this will educate you on the thought processes used to generate these things, and if you happen to have a problem that has pieces that fall into these 61 bins, you're set!
Chapter 6 is a departure. Feature-Driven Development is a "how to build what you've designed" process, and really doesn't fit the tone of the rest of the book. I found it useful (as I've posted elsewhere), but it's a jarring departure from the monotony of reading the catalogue of components. Well worth reading on its own - but not worth the cost of the book.
Appendices have large (readable) versions of the archetypes, and modeling tops.
Now - a bonus tip from Me to You. Go to Coad's company's web site ( Togethersoft [togethersoft.com] ) and download their modeling tool (IMHO, beats the tar out of Rational Rose). Then, ask them nicely for a 30-day evaluation license, and do their tutorials. The tool does these components, and GOF Patterns, and lots of other fun things, and has a tutorial and examples of the Modeling in Color (although not Feature-Driven Development) from much of the book. Save your cash and do it in software :-).
not profound (Score:2)
I think the academic pressure to create something novel is what has fueled this UML-addon nonsense, things like JUML and others.
-ryan
"Any way you look at it, all the information that a person accumulates in a lifetime is just a drop in the bucket."
Re:No rating inflation here (Score:1)
--
Marc A. Lepage (aka SEGV)
Here's what UML in Color is about... (Score:3)
UML in Color is about the four archetypes of classes. These archetypes are Moment-Itervals (Something happening in time), Person/Place/Thing (Something in space), Role (an iteraction between a M-I and a PPT, and Description (meta data on a group of PPT objects).
The color helps to distinguish between each of the various archetypes (Pink for MI, Green for PPT, Yellow for Roles, and Blue for Descriptions). With the colors, UML diagrams become much more readable. Normally you end up with a backbone of pink MIs, representing the transactions that the system has to perform. The handfull of PPT objects interact along the way via the yellow Roles they can fulfill. Blues pop up when there are several PPTs that share the same characteristics. It works remarkably well.
While I found that the subject of the book (the archetypes and using color to represent them) very enlightening, the presentation was poor. The whole book comes accross as two or three magazine articles mashed together with a catalog of class diagrams. The most important information in the book is in the first chapter or two. Coad had posted most of it on the web at one point, I don't know if they are still there. Try at http://www.togethersoft.com
There does seem to be a paradigm switch involved. I found the technique immediately helpful. Others have a much harder time seeing how the archetypes are applicable to their problems (sometimes it is not). If you are an Object-Oriented designer, read the first chapter and file it away into your set of techniques. You can never have too many tools.
gwonkRe:Favorite design books (Score:1)
Re:This book goes best w/"Java Design" (Score:1)
Re:in color? (Score:1)
Applying UML and Patterns (Score:1)
I personally think the GOF book is a great introduction to patterns, but maybe the non-catalog text is too short
Re:XP RULEZ!!!! (Score:1)
The day we will understand is the day a mindless idiots like you do actually produce the unit tests, the documentation and the clean refactoring in your code, instead of just hacking together a big lump of unreadable crap and claiming you are doing XP when in fact you're far from it.
Does that answer your question?
Re:Experiences with UML (Score:2)
There's an AC post attached to mine that should really have been moderated up, pointing out that Christopher Alexander (on whose architecture work Design Patterns are based) made a distinction between formal and functional description, where the formal description describes what was done, and the functional description says why. I think this is important here: UML is a formal description. It needs to be accompanied by functional description to make useful sense.
Re:Maybe this book will help also... (Score:1)
http://www.objectsbydesign.com/books/applying_uml
This book teaches how to use UML as part of a coherent object-oriented process .
Where'd it go? (Score:1)
--
Give us our karma back! Punish Karma Whores through meta-mod!
Slashdot should do an "Ask Peter Coad anything" (Score:4)
Slashdot should conduct an "Ask Peter Coad anything" interview and give him the chance to clarify stuff in his book.
Interesting idea, but how practical is it? (Score:3)
Also, since most IT development people are male, we have a much higher percentage of color-blind people amongst us than the general population. I personally know three other developers just in my circle of peers who are completely, if not partially color-blind.
It's fine if you can read and understand a diagramming method, but what about the person who ineviably must follow in your footsteps? We ought to try to always consider the person following in our footsteps, because most of the time, we are following someone else ourselves.
I saw this written somewhere: "I always try to write my code as if the guy who has to maintain it is a psychotic axe-murderer who has my name and address." - the same approach should be taken to documentation.
--
Re:in color? (Score:1)
Case in point, "colour" vs "color".
Nothing to do with the flood at all.
Re:in color? (Score:1)
Rich
Favorite design books (Score:3)
For UML, I prefer the UML Modeling Language User Guide by Booch, Rumbaugh, and Jacobson (Addison Wesley). More than other references, this book stresses constructs that you are likely to use most often.
The ideas in "Refactoring" by Fowler (Addison Wesley) seem almost entirely self-evident. Nevertheless, by reading this book, I improved my coding habits immediately. This book shows how to evolve a design as you code.
GOF Patterns (Score:1)
I have yet to see an "Intro to UML and Patterns" book that I liked... any suggestions?
Re:I Know This is Off-Topic As Hell... (Score:1)
(Note to moderators: yes, this is offtopic to the article - but it's ontopic in the thread. Read posts' threads before marking posts as "offtopic.")
Re:Favorite design books (Score:1)
I must be doing something right - I have all of those books except "Refactoring" on my bookshelf now (and it's been in my group's reference section).
Re:Fascists (Score:1)
1. The post isn't worth a moderation point.
2. The moderators don't want to waste a point on this comment (see above) because it's a privilage to be honored a moderator and they want to use their moderation points on posts really worth a damn.
3. It's really a terrible comment to expect awarded a point.
So what is color modeling? (Score:2)
I have my crayons right here with my UML diagrams. Should I just start slapping colors around everywhere, or is there a sort of a systematic way of adding colors?
Are different patterns displayed in different colors? Different class types? What?
Re:Coad (Score:1)
I know, I know: "You get what you pay for" and "A craftsman doesn't scrimp on his tools", etc but still...$7200 for "Together Control Center" and something like $5400 for the next step down?
I always know I'm not going to be thrilled with the price of a tool when I can't find it listed on the website. Do they think I'll be so impressed by the download that I won't care when I find out what it costs? Or that if I knew up front, I wouldn't download it (maybe there's some truth to that one).
Re:This book goes best w/"Java Design" (Score:2)
I own this book, and I was honestly disappointed. I'd like to see this combined with "Java Design" and given some more fundamentals-of-OO/UML, maybe a sprinkling of component-based architecture, and then I think he'd have a heck of a book. On its own - it's thin.
An older methodology (Score:1)
Maybe you should consider adopting the oldest and most successful engineering methodology: mathematics.
See, for example, Bird & de Moor's Algebra of Programming [amazon.com] for a programming-oriented text, and Lawvere & Schanuel's Conceptual Mathematics: A First Introduction to Categories [amazon.com] for a very readable introduction to basic modern algebra (all you need to know for the latter is high-school mathematics).
Re:So what is color modeling? (Score:1)
Maintainable code (Score:2)
My first out-of-college job was writing Ada on an Air Force contract, where the requirement was to write code that could be maintained by airmen with a 7th grade reading level. Ever tried to describe generics to someone at the 7th grade reading level? How about nexted SQL selects? Some parts of our software had three and four times the lines of comments as lines of code (plus all the USAF's required MIL-STD 2167A documentation).
Maybe this book will help also... (Score:1)
why this book is a bad thing (Score:3)
Instead of it, we have now a "yet another book about the UML" syndrome, and it is worse: It was easy to say: "I'm using the foo methodology" (Booch, OMT, Objectory, Coad&Yourdon, Shlaer&Mellor, Martin&Odell...). It is now very difficult to explain: "I'm using the UML notation (as the UML is only a notation and not a method[ology]) with the foo development process (Coad's Feature Driven Process, Rational "Unified" Process, CISI Process...)".
The main problem is: each author uses the UML notation in his own way, especially the methodologists who jumped lately in the UML bandwagon. They cannot agree even on the use of the core concepts of the UML.
Fortunately, the Software Process Engineering Management [omg.org] Request For Proposition of the OMG and the UML Profiles mechanisms (see this OMG white paper [omg.org] ) should address this concern: It should allow to describe a development process in a little more rigorous way than the current informality and to precise the particular usage of each construct of the UML notation (or extensions of this core notation) in the context of a given development process.
A book exposing Coad's point of view on the UML will be a "good thing"(tm) only when we'll have such conceptual tools at our disposal. Before this moment, it only adds to the confusion of the newcomers to the UML.
Concerning the patterns, I think that the "Design Patterns" book (ISBN: 0-201-63361-2) of the so-called "Gang of Four" (Gamma, Helm, Johnson & Vlissides) is still the best book about patterns you can read. Each pattern is described by an OMT class diagram and C++ code but the translation into UML and Java is mostly straightforward.Good Books (was Re:why this book is a bad thing) (Score:1)
I usually recommend the two hand-in-hand. You can never read enough good stuff about patterns, they're the point of OO.
White paper on UML in Color (Score:1)
Here's a white paper which summarizes the UML color modelling ideas, complete with some colored UML diagrams: Developing a UI Design from a UML Color Model [uidesign.net]
Re:in color? (Score:1)
Rich
No rating inflation here (Score:2)
Christopher A. Bohn
Reviewer lacked the required background (Score:2)
The splintering of reviews on Amazon further reflects this required background. See the reviews of Coad's Java Design on Amazon for a further example of a mis-marketed book.
Re:in color? (Score:1)
in color? (Score:1)
FatPhil
[0] And stuck in the Pre-Noahian Era
[1] Red-Green Anomolous Dichromat, to be specific
Re:No rating inflation here (Score:1)
This book goes best w/"Java Design" (Score:3)
"Java Design" has the added advantage of some very amusing diagrams.
Re:To all of you who say that painting is art... (Score:1)
Re:No rating inflation here (Score:1)
Reading about a book you shouldn't buy is of serious value for the following reasons:
1) Either you will agree with the review and possibly save some money by not buying the book or disagree with the reviewer and discard his/her other book reviews. In either case you learn something about the reviewer which might be helpful later on.
2) If you need a book on a subject and there isn't a well trumpeted best book for the subject (like UNIX Network Programming by Stevens), removing the bad books from the list of books on the subject makes finding a book that suits your purposes easier.
3) Some of these books on programming are just plain crap and for the cost of many books (usually between $30 - $60 (O'Reilly being an exception - their books are usually less expensive)), we deserve more for our money. Who knows, maybe publishers will learn to put out better books.
4) Finally, knowledge is never wasted.
Color-Coded Code (Score:2)
Re:I Know This is Off-Topic As Hell... (Score:1)
I don't know about take off, but if they include it free with Visual Studio which I believe they plan to do, I'd be tempted to give it a try to build some simple dev tools I've wanted. They don't give away VB or I'd probably write it in that. Not that I have any love for either of these languages, but for free (gratis) I'll use 'em...
Re:in color? (Score:2)
I thought you were subtracting arrays.
Re:Reviewer lacked the required background (Score:1)
Re:Reviewer lacked the required background (Score:1)
Re:Reviewer lacked the required background (Score:1)
The GOF book is THE pattern book. Everything else doesn't come even close.
</rant>
Seriously, I think it's the best intro pattern book out there. Check it out.
--
Re:Slashdot should do an "Ask Peter Coad anything" (Score:1)
Unfair review? (Score:2)
However I think it would have been more interesting to read a review by someone that is knowledgeable about UML modelling and patterns. I got the feeling that there was some bitterness behind the review which made it less objective than they usually are.
I haven't read the book however, so I will not comment on it. Furthermore I found the UML Modelling book I have read (Using UML, Perdita Stevens, R. Pooley.) incredibly dull, although the concept is neat.
Re:Experiences with UML (Score:1)
This is true, and they never meant to be sufficient by themselves either. All models need a verbal explanation as well. But in some cases it's easier to explain things when you can display a model of what you're trying to explain.
Models themselves aren't sufficient and a purely verbal explanation can sometimes be very hard to grok if you don't have the visualization. Remember that a picture can tell more than a thousand words. Verbal explanation combined with UML models (and that means you use different views to your model, not just the plain ole class diagram) can make the specs sometimes almost bearable to read.
Re:Experiences with UML (Score:3)
When most people talk about using the UML, they are referring to a class diagram. That, in itself, only begins to describe the project: it is enough for someone to go code up the data and members of the various classes, and not much more.
However, if you use the sequence, interaction, instance, and use cases, you get more brushstrokes on the canvas, and the thing actually begins looking like a real project.
I guess the idea I'm trying to get at is that each diagram attempts to communicate a different relationship. Some overlap, but for the most part it's true.
Some examples:
Dont underestimate the use of pictures. If they are truly worth a thousand words apiece, then imagine how much happier someone is going to be to look at the diagrams instead of reading ream upon ream of dry detail-filled dead tree pieces.
Even so, UML won't present a complete view of the project -- and people won't understand it just by looking at the "pretty pictures." However, if it manages to clearly convey even 80% of the scope of the project (which I feel is an attainable goal given intelligent application of the UML), just think about how many fewer questions you'll have to answer later.
-f
IMHO, IANAL, and all the standard disclaimers.
Color UML (Score:2)
UML is a way to obtain an overview of a system. A few pages of UML are useful. If you're accumulating binders full of UML diagrams, it's probably not doing much for you.
Java Design Patterns (Score:1)
Experiences with UML (Score:3)
At best these kinds of diagrams and things are an aid to communication, but they are not a substitute for it, and they certainly are not a substitute for design. There seems to be quite a common belief that the existence of UML diagrams somehow implies that the design they represent is well thought through, or even coherent. It does not.
Slashdot Bug (Score:1)
Sorry for posting this article here. There's something wrong with Slashdot. I did make a reply on the Java article, not on the security.
Re:Reviewer lacked the required background (Score:1)
Refrag