Applying UML and Patterns is a great introduction to object oriented software design and architecture. It covers a broad amount of topics in-depth by using a practical example.
By the end of the book, you’ll be able to create and design complex systems in a robust and maintanable way.
It is ideal for CS students, Software engineers and future software architects.
Applying UML and Patterns is certainly geared towards people with some software development experience that are able to read code. It features a great deal of UML diagrams and source code in Java to explain the concepts and show practical solutions to problems.
The diagrams are introduced and explained, but it assumes that you can read and write some code.
I initially read the book as part of a software engineering course during my bachelor’s degree and think it’s perfect for that kind of course. But that doesn’t mean that it will be hard for people that don’t study. If you had some experience with coding then this book is for you.
It is written in an iterative manner and the author tries to let the readers come to the conclusions instead of spoon-feeding them and letting them memorize it. You really get the concepts after reading the book.
The text around the code and figures is written fluently and goes well with them.
The book is praised as the best introduction to object-oriented software design and architecture. And as such it’s filled with a bunch of topics related to software design.
It follows the creation of a payment terminal in Java and shows how to solve typical problems with OO designs and architecture. Additionally it covers Requirements Engineering, Use Case design, UML and the UP methodology.
UP in short is kind of a transition between waterfall and agile, where you have iterations, but also different phases.
To teach you UP and how software gradually grows the book is written in UP.
What I mean by that is that you follow the creation of the payment terminal using the UP method. The first chapters focus on the initial phases of UP and show you how to create a domain model, gather requirements and turn them into UML artefacts.
Later on, it uses those artefacts and iterates over the design to show improvements or additions for new use cases.
Lessons from applying UML and patterns
This book covers a lot of lessons that are useful for (OO) Programming:
- How to gather requirements and turn them into UML artefacts
- UML diagrams (different types like class diagrams, message and sequence diagrams and more)
- Object-Oriented Software Designs
- How to use UML and Design Patterns to develop quality software
- Design robust and maintainable object systems
- Follow a roadmap through requirements, analysis, design, and coding
- Use UML to illustrate analysis and design models
- Improve designs by applying software design patterns and GRASP
- Translating UML to code
- How to design a layered architecture
- How to design a framework
If you’re interested in this book, consider buying it on Amazon through my affiliate link.
If you’re interested in the topic, but don’t want to buy a book right away, I’d recommend you to read my article about design patterns.