PREFACE
Thank you for reading this book! If I can answer a question, or for consulting or coaching a team (in O0AD, UML, modeling, iterative and agile methods) please contact me at www.craiglarman.com.
This is a practical introduction to object-oriented analysis and design (00A/D), and to related aspects of iterative development. I am grateful that the previous editions were extremely popular worldwide. I sincerely thank all the readers!
Here is how the book will benefit you. First, the use of object technology is widespread, so mastery of OOA/D 1s critical for you to succeed in the software world.
Second, if you are new to 0OA/D, you’re understandably challenged about how to proceed; this book presents a well-defined iterative roadmap-an agile approach to the Unified Process-so that you can move in a step-by-step process from requirements to code.
Third, the Unified Modeling Language (UML) has emerged as the standard notation for modeling, so it’s useful to be able to apply it skillfully.
Fourth, design patterns communicate the “best practice” idioms 00 design experts apply You will learn to apply design patterns, including the popular “gang-of-four patterns, and the GRASP patterns. Learning and applying patterns will accelerate your mastery of analysis and design.
Fifth, the structure and emphasis in this book are based on years of experience in education and mentoring thousands of people in the art of O0A/D. It reflects that experience by providing a refined, proven, and efficient approach to learning the subject, so your investment in reading and learning is optimized.
Sixth, it exhaustively examines two case studies-to realistically illustrate the entire OOA/D process, and goes deeply into thorny details of the problem.
Seventh, it shows how to map object design artifacts to code in Java. It also introduces test-driven development and refactor.
Eighth, it explains how to design a layered architecture and relate the UI layer to domain and technical services layers.
Finally, it shows you how to design an O0 framework and applies this to the creation of a framework for persistent storage in a database.