By: David Intersimone
Abstract: Life is like a box of chocolates.
Life is like a box of chocolates
My kids gave me a box of chocolates (See's Famous Old Time Candies) for Fathers Day. I spent part of my sunday eating chocolates and watching one of my favorite movies, Forrest Gump with Tom Hanks. I'm sure most of you remember the famous Gump phrase, "Life is like a box of chocolates. You never know what you're gonna get." I sometimes feel this way when thinking about the future of development tools.
The first development tools were command line compilers, programmer's editors and make files (solid chocolates). Then came the integrated development environments that combined the tools together (chocolate and caramels). Next came the stand along and integrated debuggers (chocolate with caramel and nuts). I don't know of any developer today who can live without a debugger, do you? Are there any other indispensable tools that all programmers must have?
In short order, error detection and analysis tools are becoming a required part of every programmer's tool set.
Looking in the box at all those sweet objects (wondering which one to chose, in what order, and what I would find inside), made me think how great it would be to have an cool analysis and design tool for devouring a box of chocolates. To successfully build object-oriented systems developers need a tool that helps you design, implement, redesign and document your projects. Object-Oriented Analysis and Design has been around since the early 1980's and has gone through (at least) three generations of improvements.
First Generation - OOA/D Methodology
Books and seminars appeared from some of the top OOP practitioners showing other developers how to successfully build systems using analysis and design methodologies. The most popular of the first generation methodologies were the Booch (Grady Booch - Rational Software), OMT: Object Modeling Technique (Jim Rumbaugh et al - General Electric Research and Development) and Use Cases (Ivar Jacobsen - Objectory). Unfortunately for developers, there was little or no tool support for these early methodologies forcing programmers to use paper, paint programs and CAD tools.
Anyone still have their Booch cloud plastic template?
Third Generation - Unified Modeling Language
Could there be one modeling language that we could all use? Could the top methodologists agree to put their best ideas together? Weren't most of the methodologies starting to look the same anyway? A good answer to all of these questions is the new Unified Modeling Language (UML) being defined by the methodologists at Rational Software. UML is a third generation methodology that covers specification, notation and documentation for object-oriented application development. The modeling language is a combination of Booch, OMT, and Objectory as well as the work by Peter Coad, Ward Cunningham, Rebecca Wirfs-Brock, Ed Yourdon and many other renowned methodologists. At OOPSLA '95 in Austin Texas, Jim Rumbaugh introduced a hit song about the Unified Method "Both Sides Now (with apologies to Joni Mitchell)." A choice stanza from the song includes:
It's the clouds' delusions I appallI really can't stand clouds at all.
If you are interested in the Unified Modeling Language check out the Rational Software Object Technology page. This is a major advancement for all OO developers - one modeling language, one notation, one vocabulary.
The next required tool for every developers toolbox is a round trip engineering object modeling tool that supports the Unified Modeling Language (white and milk chocolate with caramel, nuts, cherries, coconut, sprinkles and toffee).
Next year for Father's Day I hope I get an even larger box of chocolates!
(My dentist, Glen, needs the money.)
PS: My apologies for not taking a Sip last week.
Server Response from: ETNASC01