Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development is a software development book published by Prentice Hall in 2004. The current third edition is in its 14th print, dated January 2011.
Amazingly, most of the content inside this book is still very much applicable and relevant till this day in the world of software development. Of course, much of it has been updated to reflect the current software development scene, hence the ‘Third Edition’.
The author, Craig Larman is known throughout the worldwide software community as an expert and coach in OOA/D and design patterns, agile/iterative methods, an agile approach to the Unified Process (UP), and modeling with the UML. This is evident from the number of books written on Agile Development and this book, Applying UML and Patterns is among the most popular text worldwide for software development.
As Craig has turned out to be an ardent advocator of Agile, it is not surprising to see the book being updated with a lot of Agile related content.
For those who are not practicing Agile development yet, this book provides a high level understanding of the iterative development methodology and agile project management, probably helping you to switch from the conventional waterfall lifecycle development methodology. Using/being Agile has a lot of benefits especially in the software development world were changes is constant and changes very quickly.
Agile practitioners on the other hand will get to learn how to apply modelling in a Agile way.
As UML is the core part of this book, so do expect heavy reading and visualizations of software systems in diagrams. You will get to learn how to model systems with examples targeted for a point of sales system (POS), and a monopoly game.
All UML diagrams such as package diagrams, use case diagrams, activity diagrams, state machine diagrams, system sequence diagrams, class diagrams, interaction diagrams are all well covered. The examples accompanying each diagram are also explained very well, allowing even a typical programmer to understand clearly what the author tries to convey.
Patterns are used very commonly in Object-Oriented Analysis and Design. Software design patterns help Object-Oriented programming to solve common programming pitfalls and inefficiency so that a programming problem can be designed with the best possible solution that could scale, and be reused.
The Gang of Four, or GoF consists of four authors for the book Design Patterns: Elements of Reusable Object-Oriented Software, where design patterns first came into popularity.
While this book does not touch on all the design patterns written by the GoF, it provides a high level introduction on the GoF patterns.
Craig however, delves more into the GRASP concept. The different patterns and principles used in GRASP are: Controller, Creator, Indirection, Information Expert, High Cohesion, Low Coupling, Polymorphism, Protected Variations, and Pure Fabrication.
Oh yes, it’s THAT thick. Over 600 pages of text and diagrams weighing 3.6 pounds or 1.6 kilograms! Talk about heavy programming stuff (pun intended).
All in all, this book is a very comprehensive guide for starters in the world of programming who also wants to build better and proper software.
Not only that, this book also acts as a good companion to intermediate software developers or architects in designing software solutions to problems.