Confusions in Object Paradigm

One stubborn confusion or fuzziness around OO is the separation between paradigm and OO programming languages. I like to emphasize with this post the fact that the paradigm is a separate issue from programming languages. On the other hand the fact is that the analytical paradigm was born through the OO programming languages.

This is why I created an “almost” axiomatic definition for the abstract OO modeling.

Axiomatic definition of Object Model

Object Axiom

We call object anything past or present unique in the universe. Object is an abstraction of some corresponding reality (it is the reflection of something real in our mind  ). There are at least two big subcategories of this uniqueness. They are tangible things and events.  Uniqueness includes and thus implies a lifespan. This means every object is born and dies. In the case of an event the birth is the start of even and the death is the end time of event. Examples of events could be for instance a lecture or a car accident.  Every object must have a structure (at least one attribute) and it have to have at least one behavior (in languages a method). So universe consists of objects  and only objects1

Object Structure Axiom

Object is described by its attributes and services. Attributes gives an object physical structure and dimensions. Attributes can be primitive, composed or object reference.

Attribute Axiom

Attributes can be atomic (synonym for primitive) or composed. Composed attributes looks like object. They can have their own attributes and services, but they cannot have identity –because they are not objects. An example of composed type of attribute is Date type.

Service Axiom

Objects have behavior. The behavior consists of set of services that the object can perform. Services are named.  Services are actions that act upon the objects own attributes. Service is the only way to change the state of an object and it can return an object or an attribute. Every object has a set of  services -at least one.

Relation Axiom

Objects can have association (reference) to other singular objects or object groups. This means that corresponding objects see each other and thus can send messages to each other. On other type of relationship is generalization-specialization relation. When two objects are in this kind of relationship they can share common behavior (ie. services)

Collaboration  Axiom

Objects can form collaborative sets, where execution of task can be distributed to the objects in the set. Collaborations are always materialized by sending and receiving messages. These messages initiate a service within the receiving object.  Collaboration diagram describes such collaboration.

Class Axiom

A class is a defined abstraction of a set of  similar object. The class is a biggest common denominator of the corresponding set.  Objects that are classified to same class share the same attribute types and same services but they normally have also other attributes and services. In this way class is a simplification (abstraction) of those real objects.  A class diagram describes the static structure of the domain. Class diagram has symbols for classes, attribute types and services. In the diagram association and specialization-generalization are shown as lines.

Model  Axiom

Object model gives a simplification of reality. Object model is strait forward and easy to understand presentation of the corresponding reality and a chosen aspect. An object model consists of class model and a few most significant collaboration models. These models can be illustrated by class and collaboration diagrams.