I found H.S. Lahman through on-line forums about UML. He struck me from the beginning as having an exceptionally clear and insightful understanding of UML as applied to Object-Orientation. The more I read I came to understand that this razor sharp understanding included all of Object-Oriented Analysis, which is not surprising since he had a long working career of model-based development where one needs clear, unambiguous, and rigorous models to produce the desired working code.
Mr. Lahman has recently published Model-Based Development: Applications from Addison-Wesley (ISBN 978-0321774071).
My review of this book is as follows:
Put simply, this is the best technical book I have read in years. Mr. Lahman's historical perspective in the beginning is insightful and provides context that helps one understand how we have come to where we are and why we do the things we do. This is a man with a razor sharp vision about what is right and wrong in Object Orientation, who will firmly reprimand "Don't Do That!" if one strays into bad practice, but at the same time will encourage the "Grasshopper" who is willing to learn and carefully explains the why behind every rule.
While the focus of the book is model-based development (MDB), the discussion and review of the OO Analysis and Design process is invaluable even for those who plan on doing their own manual detail design and programming because MBD focuses strongly on those parts of UML modeling which are essential to describe the functioning of the target system. I recommend it heartily to anyone who simply wants to learn how to do "good OO" and it is a seminal and essential work for those interested in MBD. Because of the clarity of vision, even one experienced in these areas can profit greatly.
Discussion of principles is strongly supplemented by worked examples at all stages. These examples help immeasurably to give a sense of the process and issues which arise in the "real world", including instructive detours down likely blind alleys to discover how it is that one finds out one has done something wrong and makes it right again.
One principle which is made very strongly in this book is the importance of tying what one does with the objects to entities and relationships in the problem space. While many make the point that objects are intended to correspond to problem space entities, Mr. Lahman keeps tying observations and decisions back to the problem space, making the choice and purpose much more clear.
If you are a novice, read this book to get set on the right path. If you are an old pro, read it for the clarity of exposition and the unified view. If you are somewhere in between, read it to fill in gaps in your understanding and knowledge.
From time to time, I will attach other H.S. Lahman publications available for download.
|Agile Model-based Development||60.07 KB|