Finding
Paper
Abstract
I picked up this book because I am always interested in learning about new software design methodologies. I learned Structured design by analyzing PL/1 code and Object-oriented design by creating Smalltalk and Java applications. This book was my first introduction to Model-Based development. Fundamentally, Model-based development (MBD) is not much different than an object-oriented (OO) approach. In MBD the focus is on large-scale re-use instead of object re-use. In MBD a deep understanding of the customer's domain is essential in producing a design which will stand the test of time. The developer should look for modeling invariants, groups that are stable in the customer's problem space. The software structure should model the customer's infrastructure. Instead of finding a generalized structure which works across many different domains the goal is to find structures relative to the customer's space being analyzed. Design for re-use during the evolution of an organization rather than re-use among different organizations. Another difference between Object-oriented design and Model-Based development is how they handle implementation hiding. MBD is more restrictive in the accessibility of subsystems than OO applications. I like how MBD approaches this better than OO design. I agree with the author that subsystems should be hidden from one another and only interact through well-defined interfaces. When I develop software I don't like passing around handlers all over my application. This is one part of the book where I think the author really hits it on the nose. Code should reduce dependencies instead of adding them through implementation hiding. What I enjoyed about this book is that it is not trying to sell the reader on only Model-Based development. Instead the book discusses the thought processes behind software design. There is a lot of theory and not a lot of code. For me this was the only negative aspect of the book. I like to see code accompany the discussion about design. It allows me to apply a new design methodology faster when I can see how it is used in a programming language. Although, the vast UML examples allow the reader to quickly take any Object-oriented language and apply the design principles described in the book. The book is divided into three parts. The first part discusses the history of object-oriented design principles. There is a Pet Care center example which really highlights the use of MBD and how to identify subsystems. This example helps build …
Authors
W. Ra
Journal
ACM SIGSOFT Softw. Eng. Notes