
Wikipedia's view of object analysis and design methods pre- and post- UML
In my previous post, I explored whether standardizing on UML killed modeling innovation. At the time of UML’s inception, object technology was in its heyday, and distributed object systems using CORBA technology were gaining in popularity. Java was 2 years old, C++ adoption was growing rapidly, and Smalltalk, after some enterprise development adoption, was in steep decline. The world was rife with object-oriented analysis and design methods, ad-hoc notations, and competing object analysis and design techniques.
The creation of UML (the Unified Modeling Language) was motivated by a desire to standardize both how to express models of object-oriented software systems and processes for creating them. CASE (Computer-Aided Software Engineering) tool vendors (Rational being a major player) sought to solidify their marketing position by dominating both the software development tool and methodology markets. It was in their best interests to have the industry consolidate on a single way of working that was optimized for their toolchain.

Booch, Rumbaugh, and Jacobson (named the “three amigos” by industry pundits) and their Rational colleagues embarked on an effort to standardize object modeling techniques and integrate their collective work. Eventually, their respective object analysis and design methods merged into a single Rational Unified Process, which used UML as its standard notation. The backcover of The Unified Software Development Process tells all: “This landmark book provides a thorough overview of the Unified Process for software development, with a practical focus on modeling using the Unified Modeling Language (UML). The Unified Process goes beyond mere object-oriented analysis and design to spell out a proven family of techniques that supports the complete software development life cycle. The result is a component-based process that is use-case driven, architecture-centric, iterative, and incremental.”
In 2000, Rational continued to expand their market, acquiring ObjecTime Ltd, a Canadian company focused on real-time object modeling techniques and tools. In 2003, IBM, who knew a good thing when it saw it, cornered the design tool and methodology market by acquiring Rational in 2003. Shortly thereafter, Jacobson left to form his own company, and Rumbaugh retired. Booch, still with IBM, is an IBM Fellow and Chief Scientist of Software Engineering.
Over a period of a few short years UML became the de facto standard for expressing object-oriented software models and RUP (the Rational Unified Process) became the market leading object-oriented development process.
It is important to remember that there were other CASE tool vendors. I’ll mention just one: TogetherSoft, co-founded in 1999, by Peter Coad. They had a nifty tool which supported roundtrip engineering in Java. Coad also edited a series of books on object design, patterns and modeling. Borland acquired TogetherSoft in 2003 and Coad left within a year to pursue non-software interests.
Before UML, there were several well-known object-oriented analysis and design methods, each with their unique slant on what was important. After UML, the world hunkered down, accepting UML as a preferred “language” for communicating software designs, and many authors jumped on the UML bandwagon. Here’s a rough timeline showing when popular books promoting various flavors of object design and analysis methods came on the scene. When found, I have provided links to books available through the Internet Archive. Unfortunately, I did not find all books in the Internet Archive. A few are only available for borrowing for those with print disabilities. However, they can still be browsed online.
1988
Object Oriented Systems Analysis: Modeling the World in Data, by Sally Shlaer and Stephen Mellor
1990
Object-Oriented Software Construction, by Bertrand Meyer
Designing Object-Oriented Software, by Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener
1991
Object oriented design with applications, by Grady Booch
Object-Oriented Analysis, by Peter Coad and Ed Yourdon
Object-Oriented Design, by Peter Coad and Ed Yourdon.
Object-Oriented Modeling and Design, by James Rumbaugh
1992
Object Behavior Analysis
Goldberg and Rubin didn’t publish a book but they did write an article for the Communications of the ACM and built an analysis tool used for a short while by some of our ParcPlace-Digitalk customers., by Adele Goldberg and Kenneth Rubin
Object-oriented Software Engineering: A Use Case Driven Approach, by Ivar Jacobson
Object lifecycles: modeling the world in states by Sally Shlaer
1993
Object-Oriented Programming, by Peter Coad and Jill Nicola
Principles of Object-Oriented Analysis and Design, by James Martin and James Odell
Object-oriented Analysis and Design, by James Martin and James Odell
1994
Object-Oriented Analysis and Design With Applications, by Grady Booch
Object-Oriented Development: The Fusion Method, by Derek Coleman and colleagues
Designing Object Systems: Object-Oriented Modelling with Syntropy, by Steve Cook and John Daniels
Seamless Object-Oriented Software Architecture: Analysis and Design of Reliable Systems, by Kim Waldén and Jean-Marc Nerson
1995
Succeeding With Objects: Decision Frameworks for Project Management, by Adele Goldberg and Kenneth Rubin
What Every Programmer Should Know About Object-Oriented Design, by Meilir Page-Jones
1996
The object primer: the application developer's guide to object-orientation, by Scott Ambler
Object-Oriented Methods: Pragmatic Considerations, by James Martin and James Odell
Working with Objects: the OOram Software Engineering Method, by Trygve Reenskaug
In 1997, not surprisingly, UML started appearing in titles.
1997
Object Models: Strategies, Patterns, and Applications, by Peter Coad, Mark Mayfield, and David North
UML Distilled: Applying the Standard Object Modeling Language, by Martin Fowler
Object-Oriented Methods: A Foundation, UML Edition, by James Martin and James Odell
1998
The Rational Unified Process: An Introduction, by Philippe Kruchten
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, by Craig Larman
Advanced Object-Oriented Analysis and Design Using UML, by James Odell
1999
Java Modeling In Color With UML: Enterprise Components and Process, by Peter Coad, Jeff de Luca, and Eric Lefebvre
Objects, Components, and Frameworks with UML: the Catalysis Approach, by Desmond D'Souza and Alan Wills
The Unified Software Development Process, by Ivar Jacobson, Grady Booch and James Rumbaugh
The Unified Modeling Language Reference Model, by James Rumbaugh, Ivar Jacobson, and Grady Booch
2000
Fundamentals of Object-Oriented Design in UML, by Meilir Page-Jones
2001
The Object Primer: The Application Developer's Guide to Object Orientation and the UML, by Scott Ambler
2002
Executable UML: A Foundation for Model-Driven Architecture by Stephen Mellor and Marc Balcer
2003
The Elements of UML Style, by Scott Ambler
The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP, by Per Kroll and Philippe Kruchten
Object Design: Roles, Responsibilities, and Collaborations, by Rebecca Wirfs-Brock and Alan McKean
Domain-Driven Design: Tackling Complexity in the Heart of Software, by Eric Evans
In the early 2000s numerous books were also published on application development and design using Java and C++.
I left ParcPlace-Digitalk in late 1997, to start my own training and consulting company. Object Design: Roles, Responsibilities, and Collaborations (2003), collected the wisdom we’d gleaned from years of working with clients designing and implementing object-oriented systems in Smalltalk and Java. Of course, there were UML diagrams in my book! But the main focus was Responsibility-Driven Design principles and techniques, and practical ways to increase reliability and design flexibility.