Object Orientation: A Way of Thought, A Way of Life
The Ongoing Search for a Unified Theory
It was the Greeks who codified the two dimensional space in Euclid’s presentation of Geometry and the Arabs who invented Algebra, the basic mathematics of abstraction. Sir Isaac Newton defined the Calculus of motion in three-space and Einstein defined time as the fourth dimension that he used to unify his three forces: the Strong Force, the Weak Force and the Electromagnetic Force. Einstein died before he could come up with a theory that would integrate Gravity into the other three forces.. It was his greatest disappointment: that he was not able to produce a unified theory to explain the universe.
Since Einstein’s death there have been further advances in quantum mechanics to provide a ‘Unified Theory’. There is no widespread agreement at this time whether any of these approaches will be successful. It’s hard to prove theories as grand as this. But all of these postulates involve visualizing the problem from higher dimensions, very similar to the way that Einstein enlisted time as an additional dimension to explain the universe.
The Importance of Higher Dimensions
It is this very expansion of our dimensional view that I wish to discuss now. To begin with, it is impossible to represent accurately on paper or on a blackboard any more than two dimensions at a time. That’s because these media are themselves only two-dimensional. One can certainly indicate three dimensions, but only in a suggestive fashion. The difficulty lies in the fact that this is a multi-dimensional world, and modeling it requires a higher technology and insight than we natively possess.
So to compensate, we attempt to portray multidimensional subjects in two dimensions but in a suggestive fashion to indicate the different views. Our great artists painted portraits and scenes on two-dimensional canvasses, but used perspectives, shadows and facial expressions to convey a mood and a sense of history. Our database designers create two-dimensional tables, but link them on key fields to enable our rendering facilities in three or four dimensions- a piece at a time using the power of query language. More sophisticated applications have variable tables with fields and properties to be created by the user. There are tables with column names in them and code to implement those individual names to make these programs fit all large enterprises.
Juxtaposed to the concept of dimensions is the equally important concept of ‘perspective’. Consider, for a moment a military metaphor. Consider the private’s view of the war – from the trench. The solider can’t see much but just to the top of the next ridge, which is his job to take. But he can’t see any further because of his position. He is an expert at maintaining his weapon and has good skills in hand-to-hand combat. He moves on his feet. On the other hand,the sergeant commands a tank. He moves at 40 mph and has a broader perspective of the battle. The sergeant’s hand-to-hand skills may be a little rusty, but he is an expert mechanic- anything that goes wrong with his tank he can fix. Meanwhile, the General, sits in front of a console and keeps an eye on the battle play out on his computer monitor. He has a view of the entire theater input from AWACs planes and predator drones, as well as telecommunications input from his junior officers on the ground. He’s a big picture guy fighting the war from the perspective of a higher dimension. All of these perspectives are necessary for a successful prosecution of the battle, even though they all are different.
Now consider the perspective of the President. His view is functional, not operational. He directs the war from the perspective of overall political goals – both within his country and outside. He is concerned with funding the war, popular opinion and support for the war at home, as well as getting re-elected and serving the nation’s interests in the longer term. His perspective is also extremely important to the battle, but in a very different way.
Functional versus Operational view
The Analogy of Abstract Thought
One might be forgiven for asking the purpose of introducing military and political matters and pictures of a dog into a discussion of object orientation and its application to computer programming and business issues. The idea is to show that these seemingly different topics of conducting a war with various players the feeding and care of my dog and this business of programming business systems have commonality in their abstraction.
If one visualizes any system from a large perspective, one gains dimensional knowledge and understanding from that perspective. I If one forms a habit of doing this, many complicFebruary 11, 2008y complicated issues would resemble situations that have already been encountered and dispatched. The higher dimensional the view is, the more analogs one would find.
Understanding commonality and exceptions
Professional musicians are an excellent example of this. A concert pianist will typically be able to play from memory hundreds of pages of music in an evening. Has he memorized every note, every fingering? No. - He has memorized a limited number of patterns followed by a musical narrative of the recitation of these patterns in a logical order. The fingering is a product of a habit that is developed by playing having encountered thousands of similar patterns in different keys over the years.
The music memorization analogy is a good example. Some of these patterns will have slight differences from others of the same pattern. It might be in a different key, or played with a different dynamic. All the artist needs to do is to categorize that pattern and note the differences. Some of these patterns are a page or so in length, so memorizing it and noting minor differences when it is repeated will save a lot of time and effort. Some patterns are only a few measures long, but repeated many times during the piece.
The basic principal in abstraction is finding patterns and commonality between different items and actions. Sometimes this is done by observing how they are made, how they behave, how they are motivated, what they can do and what their purpose is. Don’t get bogged down with minor differences- treat them as exceptions, or implementation differences. Perhaps those differences can be explained by interaction with other items, as we will soon see. Look for functional equivalence.
Objects versus Processes
Objects are the nouns in any system. Some are represented as constraints and some as actors in the system as process is played out. Process is the interaction of the object actors in planned way in a variety of conditions to achieve a desired goal.
Tutorials : Object Orientation
- This link provides information on Object Orientation tutorials.
Books on Object Orientation
- This link provides list of all those books that deal with object orientation.
Book- Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and the Unified Process
- This link provides a link to the comprehensive book on object oriented analysis.