View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Living in an OO world

I love C. I really do. Unfortunately, weíre living in an Object Oriented world where it is but ënaturalí to model systems that incorporate all those wonderful buzzwords such as encapsulation and reusability.

Relevant quotes

"Ecosystems consist of populations with complex internal dynamics which interact with each other. The rules of interaction are determined by the properties of the populations."

"Object-Oriented simulation models consist of objects with complex internal dynamics which interact with each other. The rules of interaction are determined by the properties of the objects."

"Procedural simulation models are lists of instructions describing how variables change with timeî

OO stuff is catching on really quick amongst the community of biological scientists. The following basic features of a OO model and corresponding biological models may help to demonstrate why.

Classes and Objects


A class is defined as a template. It specifies the manner in which an object will behave and what attributes it will have.
In biology, a class of Mammals has certain defining characteristics such as the possession of mammary glands, body hair, the amniotic fluid and certain behavior such as reproduction by sexual means. This would imply that any specific instance of the class Mammal will exhibit the above behavior and have the above attributes e.g an orangutan.
This instance of the class is nothing but an ëobjectí.

Inheritance


In OO speak, inheritance refers to the passing of structure and behavior from some objects to the other.
There is a vivid biological analogy - the natural inheritance of traits from parents by the offspring in the form of genes. Children (sub-classes) inherit certain traits such as color of the eyes. They may also override certain behavior such as control over temper. Sometimes, they demonstrate extension by implementing previously undefined behavior such as tap-dancing skills.
One may argue that in programming OO, changes to the parent class are seen by the sub-class. The childbirth analogy is effective so long as the child object is still within the bounds of the mother class womb. For instance, if she contracted AIDS, so would the child.

Encapsulation


Encapsulation implies that objects have their own data and behaviors and no other objects can access that data without the objectís permission.
Every living being is like a simulation running independent of one another. If this were not the case, only one person would be able to perform one task at a time (assuming the world were a light-weight process for sake of simplicity), and a scheduler would be required to dequeue desired processes (people) that want to perform a function such as sleep, eat etc. This way it is simultaneously possible for one orangutan instantiating the class Mammal to eat a banana, while another instance (orangutan) swings from branch to branch, without causing the first to drop the banana to free its hands.

Maintainability


OO systems are more reusable. This can be attributed to the fact that the entire simulation is broken up into individual pieces that are not inter-dependent. So if one portion gets corrupted, only that one has to be replaced.
Consider cells in the human body. Groups of cells form a tissue, groups of tissues form an organ (Note the hasA relationships). If one cell dies, that is not going to cause the entire organ to collapse.

Division of labor


While defining OO systems, different classes act as templates for different set of tasks. For instance a Timer class would keep track of time and update its instanes.
In biological cells, different groups of cells perform specialized functions such as protection, storage etc. This is more efficient, and to support this fact, as species eveole, they develop cells that are further specialized in task performance.

Reusability


Certain patterns are mere interfaces for different types of implementations e.g. the concept of having skeletal joints is manifested in different forms such as the ball and socket joint in the knew and the hip girdle.
Over the course of evolution, some of these interfaces can be reused to create a mutated adaptation having similar ideas behind it.


Conclusion


Object orietend techniques can work very well with RealWorld (tm) systems, so long as the features are mapped in the right perspective.


Team Memebers

-Abhishek Suthan (gte659h)
-Divya Narayanan (gte643h)


Links to this Page