OOAD Object Oriented Principles - Object Oriented Analysis and Design

What are the Principles of Object-Oriented Systems?

Principles of Object-Oriented Systems

Abstract framework of object–oriented systems will depend on the object model and the object-oriented system has two categories of elements

Major Elements – major elements ceases to be object oriented, when a model does not have any one of these elements. Four major elements are

  • Abstraction
  • Encapsulation
  • Modularity
  • Hierarchy

Minor Elements − Minor elements will be useful but not a crucial part of the object model. Three minor elements are

  • Typing
  • Concurrency
  • Persistence


Abstraction is the purposeful suppression or hiding, of some details of a process or artifact, in order to bring out more clearly other aspects, details, or structure.

According to Grady Booch, “An abstraction indicates the important characteristics of an object which differentiates it from all other kinds of objects and to provide crisply defined conceptual boundaries, relative to the perspective of the viewer.”

Example – While designing a class Student attributes enrolment_number, name, course, and address will be included, whereas characteristics like pulse_rate and size_of_shoe will be eliminated as they are not relevant in the concept of the educational institution.


Encapsulation is a language mechanism for restricting access to some of the object's components. It is a language construct to bundle data with the methods operating on that data.


Modularity refers to decomposing a problem (program) into a set of modules for decreasing the complexity of the problem on the whole.

According to Booch “Modularity is the system property which is decomposed into a set of consistent and loosely coupled modules.”

Modularity is mainly associated with encapsulation and it is imagined as a way of mapping encapsulated abstractions into real, physical modules having high cohesion within the modules and their inter–module interaction or coupling is low.


As indicated by Grady Booch's, "Chain of command is the positioning or requesting of deliberation". Through chain of importance, framework will be outlined utilizing the interrelated subsystems with the goal that they can have their own particular subsystems et cetera until the point that the littlest level segments are come to. It makes utilization of the guideline of "separate and overcome". Order permits code reusability.

Two types of hierarchies in OOA are

  • “IS–A” hierarchy − IS–A will define the hierarchical relationship in inheritance. Thus, from a super-class, number of subclasses will be derived which can again have subclasses and so on. For example, when a class rose is derived from a class Flower, we can say that a rose “is–a” flower.
  • “PART–OF” hierarchy − PART–OF will define the hierarchical relationship in aggregation by which a class will be a collection of other classes. For example, flower is is a collection of sepals, petals, stamens and carpel. It can be said that a petal is a “part–of” flower.


Based on the theories of abstract data type, type is a categorization of a set of elements. In OOP, class can be imagined as a type which has properties different from any other types. Typing is the enforcement of the idea that an object is an instance of a single class or type. It also imposes that different object types will not be normally interchanged and they can be interchanged only in a very controlled manner if required.

Typing is of two types

  • Strong Typing – in strong typing, operation on an object will be verified during compilation, as in the programming language Eiffel.
  • Weak Typing – in weak typing, messages can be sent to any class. Operation will be verified only during execution, as in the programming language Smalltalk.


Concurrency in operating systems will help to perform multiple tasks or processes concurrently. When a system has only one single process, then there will be only one a single thread of control. However, many systems will have multiple threads, in which few will be active, few of them will be waiting for CPU, few of them will be suspended and few of them will be terminated. Systems with multiple CPUs naturally allow simultaneous threads of control; but systems that are running on a single CPU make use of suitable algorithms for giving reasonable CPU time to the threads to allow concurrency.

Object-oriented environment will have active and inactive objects. Active objects will have independent threads of control which can execute at the same time as with threads of other objects. Active objects coordinate with one another as well as with purely sequential objects.


Object lives in the memory space and exists for a particular timeframe. In conventional programming, life expectancy of a protest will be the life expectancy of the program execution that made it. In records or databases, protest life expectancy will be longer than the time of the procedure to make a question. This property by which a question keeps on existing even after its maker stops it to exist can be called as constancy.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

Object Oriented Analysis and Design Topics