Post on 17-Jan-2016
Basic Concepts of Object Orientation
Object-Oriented AnalysisCIM2566Bavy LI
Basic Concepts of OO 2Prepared by: Bavy LI
What is Object-Orientation?
Object-orientation is the use of objects and classes in analysis, design, and programming.
The use of objects distinguishes object-orientation from other techniques such as traditional structured methods (process-based:
data and function are separate) knowledge based systems (logic programming:
Prolog) mathematical methods (functional programming:
Scheme).
Basic Concepts of OO 3Prepared by: Bavy LI
Why did OO Arise?
Modeling in analysis and software design and languages for programming originally focused on process. But many results indicated the process approach was problematic and led to the software crisis.
Hierarchical Functional Decomposition Top-Down Design (TDD)
What are the advantages/disadvantages of TDD?
Basic Concepts of OO 4Prepared by: Bavy LI
Why does “Organization” need Object-Orientation? Organizationally, OO provides a superior means
of: Problem/Business Analysis and Requirements Better Software Development/Modern programming p
ractice Superior Software Engineering Metrics Web Presence and Utilization Software Reuse Software Use Enterprise Engineering
Basic Concepts of OO 5Prepared by: Bavy LI
Terminology – 1
OOA – Object Oriented Analysisanalyzing your problem by decomposition into
objects OOD – Object Oriented Design
designing your code into objects OOP – Object Oriented Programming
programming using the concepts of object orientation
Basic Concepts of OO 6Prepared by: Bavy LI
Terminology – 2
Class a design (like a blueprint for a house) of an object that
contains data and methods Object
an instance (like a particular house with a street address) of a class with a unique identity
Abstraction only exposing the important, relevant qualities of an
object or system
Basic Concepts of OO 7Prepared by: Bavy LI
Terminology – 3
Attribute a named property of an object capable of holding
state, as similar as instance variables or data members
Method an operation on an object, also called a function or
operation
Basic Concepts of OO 8Prepared by: Bavy LI
What are the Primary Object-Oriented Languages Today? C++ added classes to C as early as 1985
A hybrid object-oriented languages with powerful features including multiple inheritance, exceptions, templates, operator overloading …etc
Java was created as a simplification of C++ that could run on any machine, providing a write-once/run anywhere capability.
EJB 2.0 is the new standard for the J2EE, or Java 2 Platform, Enterprise Edition
Basic Concepts of OO 9Prepared by: Bavy LI
What are the Primary Object-Oriented Methodologies Today? The Unified Modeling Language, or UML,
has become the industry standard design and analysis notation, which lends itself to a methodology.
Basic Concepts of OO 10Prepared by: Bavy LI
What are the Benefits Of Object-Orientation? Reuse, quality, an emphasis on modeling the re
al world, a consistent OOA/OOD/OOP package, naturalness (our "object concept"), resistance to change, encapsulation and abstraction, and etc.
On resistance to change, system objects change infrequently while processes and procedures (top-down) are frequently changed.
Basic Concepts of OO 11Prepared by: Bavy LI
Big Three (and a half)
The three and a half key ingredients of OOP are Encapsulation, Inheritance, Polymorphism, and Message Passing
Basic Concepts of OO 12Prepared by: Bavy LI
Encapsulation
hides implementation, shows only interface
"Encapsulation is the process of hiding all of the details of an object that do not contribute to its essential characteristics." – Booch
Basic Concepts of OO 13Prepared by: Bavy LI
Inheritance
IS A relationship
A new class can be created by "Inheriting" from another class or multiple classes.
The new class inherits methods and data members of the "parent" class.
This is also called "extending" the base class, or "sub-classing".
Basic Concepts of OO 14Prepared by: Bavy LI
Message Passing
a message is an invocation of a method on an object
"an object-oriented program is a bunch of objects laying around sending messages to one another."
Basic Concepts of OO 15Prepared by: Bavy LI
Polymorphism
the ability to hide many different implementations behind a single interface. When objects respond differently to the same message this is a form of Polymorphism.