A revision of a "classic", ground-breaking, best-seller that set the standards for Object-Oriented Modeling and Design provides a proven software development process for using the most important concepts and notation of UML.
Includes iterative development with use cases, activity models, and sequence diagrams for a more robust process. One of the seminal professional tutorial/reference works that helped to set the standard practices for Object-Oriented Design, Modeling and Implementation.
Two of the leading authorities in the field, Mike Blaha, and Jim Rumbaugh, have thoroughly revised the book to provide a quintessential reference to UML 2.0 and its application for practical, usable state of the art Object-Oriented strategies in the design and implementation of complex object-oriented software systems.
In a sense, Jim Rumbaugh and Mike Blaha are two of the "founding fathers" of UML. They invented UML, the basis for UML, along with Booch notation. Their first edition was crucial to the development and adoption of Object-Oriented methods when they were in their infancy.
Review By: Stuart Margach 02/27/2006
The principal parts of "Object-Oriented Modeling and Design with UML" are based on the core phases of software development lifecycle concepts. Little attention is paid to the code that delivers a desired solution. This approach properly attends to presentation, business logic, database management, functionality, and features to be deployed--instead of being occupied with implementation demands. The authors emphasize preliminary investigation, analysis, and modeling; they also offer an effective framework and understanding of the data structure, critical functionality, and optimal features.
This book adheres to a clear and distinctive pattern, from outlining inception constructs to final-stage deliverables for the realization of application conception, build, and implementation. The authors advocate an iterative approach for designing, building, and implementing software, whereby an evolving pattern is established and maintained throughout the entire life cycle in order to bring about the successful delivery of supplementary capabilities in a constructive and organized fashion.
Other important aspects of object-oriented development referenced in this book include the class model technique, its merits, and utility. The leading attribute associated with class modeling is an object defined as "a concept, abstraction, or thing with identity and meaning for an application." Additionally, there are definitive parts devoted to UML notation and a series of useful scenarios to aid in the understanding and application of object-oriented design and development principles for general software applications.
While the authors explore UML notation constructs, emphasizing on class, state, and interaction models, the first half of this book, the latter chapters provide helpful information on what methods or mechanisms from a processing profile can be employed to create those models. The authors delve into the implementation of planning and software engineering to support a holistic strategy for developing effective applications in the last portion of the book.
This book is for subject matter experts and computer science students. The practical nature of the book also extends into the domain of database design principles. It could be recommended as a beneficial aid for database analysts, who could take advantage of the object-oriented modeling concepts for such areas as relational database design and development. There is also adequate reference material and informative exercises to assist graduates with principles and guidelines for software engineering and object-oriented technology.
The authors generally adhere to universally recognized methods of modeling and design, but they promote the creation and application of object-oriented aspects in real world situations rather than relying on theoretical scenarios. They also highlight essential properties of object-oriented concepts with step-by-step methodology of software development, from problem definition to analysis, design and build constructs, and implementation of object-oriented designs. There are many practical and effective exercises that reinforce corresponding concepts and help readers apply their new knowledge toward real situations.