Basic Concepts of OO

Download Report

Transcript Basic Concepts of OO

Basic Concepts of
Object Orientation
Object-Oriented Analysis
CIM2566
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 objectorientation 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).
Prepared by: Bavy LI
Basic Concepts of OO
2
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
Prepared by: Bavy LI
are the advantages/disadvantages of TDD?
Basic Concepts of OO
3
Why does “Organization” need
Object-Orientation?

Organizationally, OO provides a superior means
of:
 Problem/Business Analysis and Requirements
 Better Software Development/Modern programming
practice
 Superior Software Engineering Metrics
 Web Presence and Utilization
 Software Reuse
 Software Use
 Enterprise Engineering
Prepared by: Bavy LI
Basic Concepts of OO
4
Terminology – 1

OOA – Object Oriented Analysis
 analyzing
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
Prepared by: Bavy LI
Basic Concepts of OO
5
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
Prepared by: Bavy LI
Basic Concepts of OO
6
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
Prepared by: Bavy LI
Basic Concepts of OO
7
What are the Primary ObjectOriented 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 writeonce/run anywhere capability.
EJB 2.0 is the new standard for the J2EE, or
Java 2 Platform, Enterprise Edition
Prepared by: Bavy LI
Basic Concepts of OO
8
What are the Primary ObjectOriented Methodologies Today?

The Unified Modeling Language, or UML,
has become the industry standard design
and analysis notation, which lends itself to
a methodology.
Prepared by: Bavy LI
Basic Concepts of OO
9
What are the Benefits Of ObjectOrientation?

Reuse, quality, an emphasis on modeling the
real 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.
Prepared by: Bavy LI
Basic Concepts of OO
10
Big Three (and a half)

The three and a half key ingredients of
OOP are
 Encapsulation,
 Inheritance,
 Polymorphism,
and
 Message Passing
Prepared by: Bavy LI
Basic Concepts of OO
11
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
Prepared by: Bavy LI
Basic Concepts of OO
12
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".
Prepared by: Bavy LI
Basic Concepts of OO
13
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."
Prepared by: Bavy LI
Basic Concepts of OO
14
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.
Prepared by: Bavy LI
Basic Concepts of OO
15