TweetFollow Us on Twitter

Feb 00 Bookshelf

Volume Number: 16 (2000)
Issue Number: 2
Column Tag: Programmer's Bookshelf

UML Distilled

By Paul E. Sevinç, Switzerland

A Brief Guide to the Standard Object Modeling Language

About the UML

Before I talk about Martin Fowler's and Kendall Scott's UML Distilled: A Brief Guide to the Standard Object Modeling Language [Fowler with Scott 2000], let me tell you a tiny bit about the Unified Modeling Language (UML) and its history.

Basically, software development consists of three iterated steps: analysis, design, and implementation. While you might invent your own programming language for the implementation, most of us use a mainstream language like C++ or Java. Among other reasons, this allows many developers to read and understand our source code - at least locally. To get the big picture (i.e., the architecture) of a non-trivial software system, they probably need to see the diagrams and other figures we sketched during the analysis and design phases. What the graphical and textual elements in these figures mean (abstract class, is-a relationship, method invocation, etc.) is defined by a modeling language - again, this might be an invention of your own.

In the mid-nineties, several popular modeling languages existed. Grady Booch and James Rumbaugh decided to end -i.e., win- this "method war" by merging their methods. (A method consists of a modeling language and a process. A process suggests how to proceed with development.) And so, in 1995, they published the Unified Method. Ivar Jacobson then joined Booch and Rumbaugh at Rational Software to include his method as well. Because Booch, Jacobson, and Rumbaugh (also know as The Three Amigos) worked for the same company, the Object Management Group (OMG) formed a task force to standardize a non-proprietary method. One of the proposals submitted to the task force was Rational's UML. (Its process is the Rational Unified Process [RUP] and is more or less independent of the modeling language.) The OMG adopted this proposal with modifications, and at the time of this writing, version 1.3 is the OMG UML standard [OMG 1999].

For more on the history of the UML as well as on its future, see [Kobryn 1999]. Books about the UML and the RUP by The Three Amigos are [Booch et al. 1999], [Jacobson et al. 1999], and [Rumbaugh et al. 1999].

UML Distilled

This review is based on the first printing of the second edition of UML Distilled. I have to mention this because Martin Fowler not only updates the book between editions but also between printings. (If you're wondering why I don't mention Kendall Scott: I'm not really sure. In the book it says Fowler with Scott and not Fowler and Scott, Scott's name is printed smaller than Fowler's, and the text is written in the first person.)

UML Distilled encompasses eleven chapters, two appendices, a bibliography, and an index. That said, let's discuss the book chapter by chapter.

Chapter 1, Introduction, is -oh wonder of wonders- the introductory chapter. Fowler first defines the terms method language and process and recaps the UML's history. (Sounds a lot like my introduction so far, doesn't it? Well, guess where I stole it from!) He then defines the terms notation and meta-model and talks about when and how to use the UML and other object-oriented techniques. The definitions are important of course, but as valuable is that Fowler shares his vast experience with the reader both in this chapter and all the others.

Chapter 2, An Outline Development Process, is not about the RUP. However, what Fowler discusses in this chapter is -according to him- consistent with the RUP. On about 20 pages he treats four development phases called inception, elaboration, construction, and transition which together encompass his "lightweight, low-ceremony process". How useful this chapter is depends on your experience and what your next projects are. If you're new to (object-oriented) programming, I think you shouldn't read this chapter yet; try first to develop an approach that works for you while your code is not supposed to be reused. If you already have gained some programming experience with or without a formal process, the level of detail in this chapter is just perfect. More experienced programmers probably want to quickly read this chapter and then move on to the RUP.

Chapter 3, Use Cases, is the first chapter that actually discusses UML elements. Fowler gives examples of both a textual use case and a use-case diagram. I would have liked him to better explain the so-called extend relationship. But the other explanations are clear despite being short, too. After reading this 9-page chapter, I was able to use use cases right away.

Chapter 4, Class Diagrams: The Essentials, and chapter 6, Class Diagrams: Advanced Concepts, are complementary. While I understand Fowler's decision to treat class diagrams in two chapters in order not to overwhelm the reader, there are a few things (e.g., abstract classes) I would have put in chapter 4 instead of chapter 6. But that's the only thing I can reproach these chapters with. Together, chapters 4 & 6 comprise about a fourth of the book. (I'm not sure I want to know what they would look like unfiltered...) Covered is everything I would have thought of and more: subclasses, visibility, templates, interfaces, etc.

Chapter 5, Interaction Diagrams, is about sequence and collaboration diagrams. These diagrams visualize basic interactions between objects: method invocations (synchronously or asynchronously) and object creation & deletion. Fowler devotes about as much space to the five figures as to the text that describes them. Most of the figures throughout the book contain two types of elements by the way: actual UML elements and descriptive elements (i.e., arrows with a label) which Fowler added and which are easily recognized as such.

Chapter 7, Packages and Collaborations, is somewhat confusing. It explains really well what packages are, but in the section on collaborations, Fowler should have better explained the relation between collaborations, collaboration diagrams, and interaction diagrams. For once, the distillation left back too little.

Chapter 8, State Diagrams, might cause some readers to experience a déjà vu as UML's state diagrams are based on David Harel's statecharts. But even if you haven't heard about statecharts before, you won't have any problem understanding Fowler's explanations.

Chapter 9, Activity Diagrams, describes activity diagrams in more detail than they warrent in this short book. - At least that's what Fowler thinks. I find that the level of detail and the length of the chapter are just fine. There's no real reason to remove anything from this chapter even if other authors start writing about activity diagrams.

Chapter 10, Physical Diagrams, is a very short and very easy to understand chapter. It introduces deployment diagrams which show the physical relationship among hardware and software components. And it introduces component diagrams that show components and their relationships. Actually, it introduces both types of diagram at pretty much the same time. And the only figure in this chapter combines them as well.

Chapter 11, UML and Programming, features an example software project. Fowler uses class, object, and sequence diagrams as well as Java code snippets to illustrate it. The good news it: the example is not trivial. The bad news is: programming beginners may have a hard time understanding it. Note that additional information about this example can be found on Fowler's home page [URL].

Conclusion

There is seldomly so much consensus about something IT-related as there is for the UML. Both the industry and academia are rapidly adopting it and -in my opinion- so should you.

A nice feature of UML Distilled are the sidebars. They briefly introduce software engineering tools and techniques such as patterns, CRC cards, and design by contract. I also appreciated Fowler's pointers to other sources of information.

While there are certainly several good books about the UML, you cannot go wrong with UML Distilled. It is very concise without being superficial or difficult to understand. And even though it is only intended to be an introductory textbook, I also use it as a reference book.

References

  • [Booch et al. 1999] BOOCH, Grady, RUMBAUGH, James, JACOBSON, Ivar. - The Unified Modeling Language User Guide, Addison-Wesley, 1999.
  • [Fowler with Scott 2000] FOWLER, Martin, SCOTT, Kendall. - UML Distilled: A Brief Guide to the Standard Object Modeling Language, Addison-Wesley, 2000.
  • [Jacobson et al. 1999] JACOBSON, Ivar, BOOCH, Grady, RUMBAUGH, James. - The Unified Software Development Process, Addison-Wesley, 1999.
  • [Kobryn 1999] KOBRYN, Cris. - UML 2001: A Standardization Odyssey, pp. 29-37 in: Communications of the ACM, Volume 42, Number 10, October 1999.
  • [OMG] Object Management Group. - OMG Unified Modeling Language Specification, Object Management Group, June 1999. Available at <http://www.rational.com/uml/index.jtpml>.
  • [Rumbaugh et al. 1999] RUMBAUGH, James, JACOBSON, Ivar, BOOCH, Grady. - The Unified Modeling Language Reference Manual, Addison-Wesley, 1999.
  • <http://ourworld.compuserve.com/homepages/Martin_Fowler>.

Paul is an EE student at the Swiss Federal Institute of Technology Zurich (ETHZ) who has no idea what he should tell you about him this month. He welcomes suggestions at psevinc@ee.ethz.ch.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Monolingual 1.6.4 - Remove unwanted OS X...
Monolingual is a program for removing unnecesary language resources from OS X, in order to reclaim several hundred megabytes of disk space. If you use your computer in only one (human) language, you... Read more
CleanApp 5.0 - Application deinstaller a...
CleanApp is an application deinstaller and archiver.... Your hard drive gets fuller day by day, but do you know why? CleanApp 5 provides you with insights how to reclaim disk space. There are... Read more
Fantastical 2.0 - Create calendar events...
Fantastical is the Mac calendar you'll actually enjoy using. Creating an event with Fantastical is quick, easy, and fun: Open Fantastical with a single click or keystroke Type in your event details... Read more
Cocktail 8.2 - General maintenance and o...
Cocktail is a general purpose utility for OS X that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Direct Mail 4.0.4 - Create and send grea...
Direct Mail is an easy-to-use, fully-featured email marketing app purpose-built for OS X. It lets you create and send great looking email campaigns. Start your newsletter by selecting from a gallery... Read more
jAlbum Pro 12.6 - Organize your digital...
jAlbum Pro has all the features you love in jAlbum, but comes with a commercial license. With jAlbum, you can create gorgeous custom photo galleries for the Web without writing a line of code!... Read more
jAlbum 12.6 - Create custom photo galler...
With jAlbum, you can create gorgeous custom photo galleries for the Web without writing a line of code! Beginner-friendly, with pro results Simply drag and drop photos into groups, choose a design... Read more
Lyn 1.5.9 - Lightweight image browser an...
Lyn is a lightweight and fast image browser and viewer designed for photographers, graphic artists and Web designers. Featuring an extremely versatile and aesthetically pleasing interface, it... Read more
Sublime Text 3080 - Sophisticated text e...
Sublime Text is a sophisticated text editor for code, markup, and prose. You'll love the slick user interface, extraordinary features, and amazing performance. Goto Anything. Use Goto Anything to... Read more
WALTR 1.0.11 - Drag-and-drop any media f...
WALTR is designed to make it easy to upload and convert any music or video file to an iPad or iPhone format for native playback. It supports a huge variety of media file types, including MP3, MP4,... Read more

MLB Manager 2015 (Games)
MLB Manager 2015 5.0.14 Device: iOS Universal Category: Games Price: $4.99, Version: 5.0.14 (iTunes) Description: Guide your favorite MLB franchise to glory! MLB Manager 2015, officially licensed by MLB.com and based on the award-... | Read more »
Breath of Light (Games)
Breath of Light 1.0.1421 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.1421 (iTunes) Description: Hold a quiet moment. Breath of Light is a meditative and beautiful puzzle game with a hypnotic soundtrack by... | Read more »
WWE WrestleMania Tags into the App Store
Are You ready to rumble? The official WWE WrestleMania app, by World Wrestling Entertainment, is now available. Now you can get all your WrestleMania info in one place before anyone else. The app offers details on superstar signings, interactive... | Read more »
Bio Inc's New Expansion is Infectin...
Bio Inc., by DryGin Studios, is the real time strategy game where you infect a human body with the worst virus your evil brain can design. Recently, the game was updated to add a whole lot of new features. Now you can play the new “Lethal”... | Read more »
The Monocular Minion is Here! Despicable...
Despicable Me: Minion Rush, by Gameloft, is introducing a new runner to the mix in their latest update. Now you can play as Carl, the prankster minion. Carl has a few new abilities to play with, including running at a higher speed from the start.... | Read more »
Dungeon of Madness (Games)
Dungeon of Madness 1.0.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.0 (iTunes) Description: Dungeon of Madness is an action game where you rotate tiles to create our own route. Help the hero by connecting the... | Read more »
Filters for iPhone (Photography)
Filters for iPhone 1.0 Device: iOS iPhone Category: Photography Price: $.99, Version: 1.0 (iTunes) Description: | Read more »
Jump'N'Shoot Attack (Games)
Jump'N'Shoot Attack 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: A mobile game for gamers! Join Louise Lightfoot, the legendary "Master of Jumping and Shooting", on her mission to save... | Read more »
Space Bounties Inc. (Games)
Space Bounties Inc. 1.4 Device: iOS Universal Category: Games Price: $1.99, Version: 1.4 (iTunes) Description: SuperGameDroid: 4/5 "Satisfying futuristic RPG combat, high replay value, and a heavy dose of nostalgia make Space... | Read more »
Gamebook: Pocket RPG (Games)
Gamebook: Pocket RPG 1.0.11 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.11 (iTunes) Description: Walk into the Land of Lanthir Lamath ruled by wicked skeletons and fight for your life in a thrilling adventure.... | Read more »

Price Scanner via MacPrices.net

Logitech Says MX Master Is Its Most Advanced...
Logitech’s new MX Master Wireless Mouse incorporates the best of Logitech’s many computer mouse innovations into a striking hand-sculpted design. The company claims that the MX Master creates a new... Read more
Save up to $300 on a new Mac, $30 on an iPad,...
Purchase a new Mac or iPad at The Apple Store for Education and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free,... Read more
Apple refurbished 2014 MacBook Airs available...
The Apple Store lowered prices on Apple Certified Refurbished 2014 MacBook Airs recently, with models now available starting at $679. An Apple one-year warranty is included with each MacBook, and... Read more
Mac Notebook Evolution; A Desktop Replacement...
More often than not right from the beginning, Apple’s Macs have tended to skew toward small. The original Macs were called “compacts,”, and notwithstanding a few exceptions like the honking Big Mac... Read more
13-inch 1.4GHz/128GB MacBook Air (Apple refur...
The Apple Store has Apple Certified Refurbished 2014 13″ 1.4GHz/128GB MacBook Airs available for $759 including free shipping plus Apple’s standard one-year warranty. Their price is $240 off original... Read more
YEP! Alternative Browser for iOS Now Supports...
Pfaeffikon, Switzerland based Power App AG has announced the release of an update to their Yep! Web Browser (v1.3.0) for iOS8 iPhone and iPad. Yep! hit the App Store shortly after the release of iOS... Read more
15-inch Retina MacBook Pros on sale for up to...
B&H Photo has the new 2014 15″ Retina MacBook Pros on sale for up to $250 off MSRP for a limited time. Shipping is free, and B&H charges NY sales tax only: - 15″ 2.2GHz Retina MacBook Pro: $... Read more
Clearance 13-inch Retina MacBook Pros availab...
B&H Photo has leftover 2014 13″ Retina MacBook Pros on sale for up to $250 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.6GHz/128GB Retina MacBook Pro: $1098... Read more
Clearance 2014 MacBook Airs on sale for up to...
B&H Photo has MacBook Airs on sale for up to $180 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 11″ 128GB MacBook Air: $789.99 110 off original MSRP - 11″ 256GB... Read more
Apple refurbished Time Capsules available for...
The Apple Store has certified refurbished Time Capsules available for $100 off MSRP. Apple’s one-year warranty is included with each Time Capsule, and shipping is free: - 2TB Time Capsule: $199, $100... Read more

Jobs Board

*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - D...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Systems Engineer - Pre Sales, Educat...
…is responsible for proactively providing technical expertise to drive sales of Apple solutions into assigned accounts. The SE architects, validates, and assists in Read more
Sr. Technical Services Consultant, *Apple*...
**Job Summary** Apple Professional Services (APS) has an opening for a senior technical position that contributes to Apple 's efforts for strategic and transactional Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.