OOPM Programming Languages and Oo Model.pptx
OOPM Programming Languages and Oo Model.pptx
•Typing
•Concurrency
•Persistence
Abstraction
• Abstraction is one of the key concepts of object-oriented
programming (OOP) languages. Its main goal is to handle complexity
by hiding unnecessary details from the user. That enables the user to
implement more complex logic on top of the provided abstraction
without understanding or even thinking about all the hidden
complexity.
• That’s a very generic concept that’s not limited to object-oriented
programming. You can find it everywhere in the real world.
• Grady Booch has defined abstraction as follows −
• “An abstraction denotes the essential characteristics of an object that
distinguish it from all other kinds of objects and thus provide crisply
defined conceptual boundaries, relative to the perspective of the
viewer.”
• Example − When a class Student is designed, the attributes
enrolment number, name, course, and address are included while
characteristics like pulse_rate and size_of_shoe are eliminated, since
they are irrelevant in the perspective of the educational institution.
Encapsulation
• Encapsulation is the process of binding both attributes and methods
together within a class. Through encapsulation, the internal details of
a class can be hidden from outside. The class has methods that
provide user interfaces by which the services provided by the class
may be used.
Modularity
•Modularity is the process of decomposing a problem
(program) into a set of modules so as to reduce the overall
complexity of the problem.
•Booch has defined modularity as −
•“Modularity is the property of a system that has been
decomposed into a set of cohesive and loosely coupled
modules”
Hierarchy
• In Grady Booch’s words, “Hierarchy is the ranking or ordering of
abstraction”. Through hierarchy, a system can be made up of
interrelated subsystems, which can have their own subsystems and so
on until the smallest level components are reached. It uses the
principle of “divide and conquer”. Hierarchy allows code reusability.