Oct 10 2008
Some facts about stable systems and OO design
I am going through the book named “The Object-Oriented Thought Process (3rd Edition) (Developer’s Library) by Matt Weisfeld”. I got some interesting facts in the chapter 9 “Creating Objects” of this book which I want to share. Being a software developer, we know that we always want to create a stable system. The 1962 article titled “The Architecture of Complexity” by Nobel Prize winner Herbert Simon noted some quite interesting characteristics of the stable systems:
- Stable systems have hierarchy. Each system is built from a sub-system and each sub-system is still built from another sub-system forming basis for functional decomposition. This approach has been used in structural approach also.
- Stable system is nearly decomposable.
- Stable system evolves from the the simple sub-system that have worked.
- Stable systems are always composed of only few different kinds of sub-systems
Another fact I want to share is about the design decision that is required to be made. We know that a system needs to be loosely coupled and highly cohesive. But what should we do for achieving this? Three points have been proposed by the author:
- Which objects collaborate with each other?
- How many objects participate in each collaboration? (This represents cardinality)
- Is the relationship mandatory or optional?
I really recommend this book to any developer who wants to enhance his/her knowledge about the object oriented development.



Add New Comment
Thanks. Your comment is awaiting approval by a moderator.
Do you already have an account? Log in and claim this comment.
Add New Comment
Trackbacks
(Trackback URL)