Aggregation is the relationship between the whole and a part. We can
add/subtract some properties in the part (slave) side. It won’t affect the whole
Best example is Car, which contains the wheels and some extra parts. Even though
the parts are not there we can call it as car.
But, in the case of containment the whole part is affected when the part within
that got affected. The human body is an apt example for this relationship. When
the whole body dies the parts (heart etc) are died.
& non-persistent objects?
Persistent refers to an object’s ability to transcend time or space. A
persistent object stores/saves its state in a permanent storage system with
out losing the information represented by the object.
A non-persistent object is said to be transient or ephemeral. By default
objects are considered as non-persistent.
List out some of the
Object Oriented Development (OOD) (Booch 1991,1994).
Object Oriented Analysis and Design (OOA/D) (Coad and Yourdon 1991).
Object Modeling Techniques (OMT) (Rumbaugh 1991).
Object Oriented Software Engineering (Objectory) (Jacobson 1992).
Object Oriented Analysis (OOA) (Shlaer and Mellor 1992).
The Fusion Method (Coleman 1991).
When does a name clash
A name clash occurs when a name is defined in more than one place. For
example., two different class libraries could give two different classes the
same name. If you try to use many class libraries at the same time, there is
a fair chance that you will be unable to compile or link the program because
of name clashes.
Object Oriented :
Essentials and History
An object-oriented programming language (also called an OO language) is one
that allows or encourages, to some degree, object-oriented programming
Simula (1967) is generally accepted as the first language to have the
primary features of an object-oriented language. It was created for making
simulation programs, in which what came to be called objects were the most
important information representation. Smalltalk (1972 to 1980) is arguably
the canonical example, and the one with which much of the theory of
object-oriented programming was developed.
OO languages can be grouped into several broad classes, determined by the
extent to which they support all features and functionality of
object-orientation and objects: classes, methods, polymorphism, inheritance,
* Languages called “pure” OO languages, because everything in them is
treated consistently as an object, from primitives such as characters and
punctuation, all the way up to whole classes, prototypes, blocks, modules,
etc. They were designed specifically to facilitate, even enforce, OO
methods. Examples: Smalltalk, Eiffel, Ruby.
* Languages designed mainly for OO programming, but with some procedural
elements. Examples: Java, Python.
* Languages that are historically procedural languages, but have been
extended with some OO features. Examples: C++, Fortran 2003, Perl.
* Languages with most of the features of objects (classes, methods,
inheritance, reusability), but in a distinctly original, even elegant, form.
Examples: Oberon, and successor Oberon-2.
* Languages with abstract data type support, but not all features of
object-orientation, sometimes called object-based languages. Examples:
Modula-2 (with excellent encapsulation and information hiding), Pliant.
Inheritance and polymorphism are usually used to reduce code bloat.
Abstraction and encapsulation are used to increase code clarity, quite
independent of the other two traits.
Page Numbers : 1