Preface
Thank you for reading this book! If I can answer a question, or for consulting or coaching a team (in OOA/D, UML, modeling, iterative and agile methods) please contact me at www.craiglarman.comThis is a practical introduction to object-oriented analysis and design (OOA/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 is critical for you to succeed in the software world.design well Second , if you are new to OOA/D, you're understandably challenged about how to proceed; this book presents a well-defined iterative roadmapan agile approach to the Unified Processso that you can move in a step-by-step process from requirements to code.learn a process roadmap 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.learn UML for modeling Fourth , design patterns communicate the "best practice" idioms OO 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.learn design patterns 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 OOA/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.learn from experience Sixth , it exhaustively examines two case studiesto realistically illustrate the entire OOA/D process, and goes deeply into thorny details of the problem.learn from a realistic study Seventh , it shows how to map object design artifacts to code in Java. It also introduces test-driven development and refactor.design to code, with TDD & refactoring Eighth , it explains how to design a layered architecture and relate the UI layer to domain and technical services layers.layered architecture Finally , it shows you how to design an OO framework and applies this to the creation of a framework for persistent storage in a database.design frameworks