Prajwal Tuladhar’s Blog
 
programming, life and some random thoughts

Oct 10 2008

Some facts about stable systems and OO design

Published by Prajwal Tuladhar under Patterns, Programming

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.


Comments

RSS Feed
Subscribe by email
Follow me @ Twitter