Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

15
Basic Concepts of Object Orien tation Object-Oriented Analysis CIM2566 Bavy LI

Transcript of Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

Page 1: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

Basic Concepts of Object Orientation

Object-Oriented AnalysisCIM2566Bavy LI

Page 2: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy 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).

Page 3: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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?

Page 4: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 5: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 6: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 7: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 8: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 9: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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.

Page 10: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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.

Page 11: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 12: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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

Page 13: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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".

Page 14: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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."

Page 15: Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.

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.