45
Chap 1. Introduction Chap 1. Introduction 서서서서서 서서서서서서 서서서서서서서 서서서 SNU OOPLSA LAB 서서 서서서 OBJECT-ORIENTATION by Khoshafian and Abnous

Chap 1. Introduction

  • Upload
    berget

  • View
    59

  • Download
    0

Embed Size (px)

DESCRIPTION

OBJECT-ORIENTATION by Khoshafian and Abnous. Chap 1. Introduction. 서울대학교 컴퓨터공학부 객체지향시스템 연구실 SNU OOPLSA LAB 교수 김형주. Contents. 1. Introduction to Object Orientation Object Orientation for All Users What is Object Orientation? PLs, DBs, and UIs 2. History and Evolution - PowerPoint PPT Presentation

Citation preview

Page 1: Chap 1. Introduction

Chap 1. IntroductionChap 1. Introduction

서울대학교 컴퓨터공학부객체지향시스템 연구실

SNU OOPLSA LAB

교수 김형주

OBJECT-ORIENTATION by Khoshafian and Abnous

Page 2: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 2

ContentsContents

1. Introduction to Object Orientation Object Orientation for All Users What is Object Orientation? PLs, DBs, and UIs

2. History and Evolution The Evolution of Object Orientation in PLs The Evolution of Object-Oriented DBs The Evolution of Object Orientation in UIs

Page 3: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 3

1. Intro to Object Orientation1. Intro to Object Orientation

OO provides better paradigms and tools Modeling the real world Interacting easily with a computer Constructing reusable SW components and easily

extensible libraries of SW modules Easily modifying and extending implementations of

components

Page 4: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 4

The SW development effortThe SW development effort

Size or Functionality Size or Functionality

Effort: Labor-Months Effort: Labor-Months

Conventional OO Technology

Page 5: Chap 1. Introduction

SNU OOPSLA Lab. SNU, OOPSLA Lab 5

Object-Oriented SoftwareObject-Oriented Software

• Can model problems better.• Is more understandable.• Is more repairable.• Is more reusable.

Productivity !Quality !

Page 6: Chap 1. Introduction

SNU OOPSLA Lab. SNU, OOPSLA Lab 6

Object-Oriented Programming LanguagesObject-Oriented Programming Languages

Some Example

Smalltalk, C++, Java, Eiffel, Objective-C, Simula,Object Pascal, Turbo Pascal, CLOS, Actor

Self, Emerald, Oberon, COB, Trellis/Owl, Beta,Flavors, Modula-3, POOL, Hybrid, ABCL

Ada 9X, PL/X, Object COBOL, ORYX, OO CHILL

Page 7: Chap 1. Introduction

SNU OOPSLA Lab. SNU, OOPSLA Lab 7

Object-Oriented ParadigmObject-Oriented Paradigm

ComputationComputation

ProgrammingProgramming

Computation is viewed as message passing among a collection of self-contained, autonomous objects

Programming is a process of defining objects and message.Objects are classified according to their behaviors. ExistingObject definitions may be reused when new objects are defined.

Page 8: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 8

Object Orientation for All Users(1)Object Orientation for All Users(1)

End users Executives, secretaries, ATM users Friendlier user interfaces Multimedia data support Plug-and-use/plug-and-play Example: PowerPoint and Web, Web browser

and Email

Page 9: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 9

Object Orientation for All Users(2)Object Orientation for All Users(2)

Customized application developers Application programmers, consultants Easier-to-use tools Object-oriented hypermedia tools Object-oriented DB design tools Example: Rational Rose, Oracle’s Developer 2000,

Powerbuilder, Java Visual Cafe

Page 10: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 10

Object Orientation for All Users(3)Object Orientation for All Users(3)

Independent software vendors SW developers: DBMS, O/S, Intranet Power user group Enhanced engineering and configuration m

anagement tools Build complex systems rapidly Example: Apache web server, Nacho OS K

ernel, MySQL DBMS

Page 11: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 11

PLPL

DBDB

UIUI

ObjectOrientation

ObjectOrientation

user requirements

Object Orientation for All Users(4)Object Orientation for All Users(4)

Page 12: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 12

What Is Object Orientation?What Is Object Orientation?

Software modeling and development (engineering) disciplines that make it easy to construct complex systems from individual components

Provide better concepts and tools to model and represent the real world -> modeling

Provide better methodologies to construct complex SW systems out of modularized reusable SW units -> development

Page 13: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 13

Abstract Data Abstract Data Types(ADTs)Types(ADTs)

ADTs extend the notion of a data type through hiding the implementation of the user-defined operations associated with the data type.

All manipulations of instances of the data type are done exclusively through operations associated with the data type.

Page 14: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 14

Object1

M4

M1 M2

M3

M2

M1

M4

M3Object

2

Object3

M2

M3

M1

M4

message 1

message 3

message 2

Message Passing Paradigm

Page 15: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 15

Base Model: 4 cylinder engine vanilla chassis standard interior

Base Model: 4 cylinder engine vanilla chassis standard interior

InheritanceInheritance

Inheriting behavior enables code sharing among software modules.

Inheriting representation enables structure sharing among data objects.

Ford MustangFord Mustang

Base Model + luxury interior

Base Model + luxury interior

Mustang LX: better interior v6 or v8 engine

Mustang LX: better interior v6 or v8 engine

Mustang GT: sport suspension sport v8 engine special body work

Mustang GT: sport suspension sport v8 engine special body work

specialization

Page 16: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 16

Object IdentityObject Identity

Object identity distinguishes each object from all others.

With object identity, objects can contain or refer to other objects.

Object identity organizes objects of object space. ADT and inheritance organizes the classes of

objects.

Page 17: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 17

Tim-rec-object: oid1Tim-rec-object: oid1 Terry-rec-object: oid2Terry-rec-object: oid2

TimTim TerryTerry

3434 3535

$1,000,000$1,000,000ToyToy

Name Name

AgeAge

Department Department

Partner

Partner

BudgetDept Name

Toy-dept-rec-object: oid3

Page 18: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 18

Object-Oriented Analysis and DesignObject-Oriented Analysis and Design

RequirementsRequirements

AnalysisAnalysis

DesignDesign

ProgrammingProgramming

IntegrationIntegration

TestingTesting

Waterfall Model

Page 19: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 19

Object-Oriented AnalysisObject-Oriented Analysis

Provide a detailed description of a system Identify WHAT

Identify objects, classes, operations Identify object relationships, object interations

Build real-world models using OO view of the world

Goals of OOA understand the problem domain increase correctness, consistency, completeness

Page 20: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 20

Object-Oriented DesignObject-Oriented Design

Provide the blueprint for implementation Specify HOWSpecify HOW

Specify class definitions, class categoriesSpecify class definitions, class categories Specify subsystems, system architecturesSpecify subsystems, system architectures

OOA + Implementation details

Goals of OO Design Optimize maintainability, reusability, enhancebility

and reliability

Page 21: Chap 1. Introduction

SNU OOPSLA Lab. SNU, OOPSLA Lab 21

What is Object-Oriented Programming ?What is Object-Oriented Programming ?

A programming style which relies on the notion of object, class and inheritance.

Peter Wegner in “Dimensions of OOPLs”

Object Class Inheritance

Object-Oriented ProgrammingObject-Oriented Programming

Many varying definitions exist as will be seen later.

Page 22: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 22

2. History and Evolution2. History and Evolution

The Evolution of Object Orientation in Programming Language

The Evolution of Object-Oriented Databases

The Evolution of Object Orientation in User Interfaces

Page 23: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 23

2.1 The Evolution of OO in PL(1)2.1 The Evolution of OO in PL(1)

Assemblers(mid 1950s): IBM 650, IBM 704 FORTRAN(mid 1950s)

The first milestone of high-level language PL/1, COBOL(late 1950s) Algol(1960)

Block structure => encapsulation Algol60(Randll and Russell): Begin-End blocks

Page 24: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 24

TheThe EvolutionEvolution of OO in PL(2) of OO in PL(2)

Simula-67 (Dahl and Nygaard 1966) Introduced the concepts of an object Intended as a simulation language Incorporated the notion of classes Supported class inheritance Laid the foundation of OO language A “strongly typed” language

Page 25: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 25

The Evolution of OO in PL(3)The Evolution of OO in PL(3)

LISP (MaCarthy 1965) Functional programming language The language of choice for many AI applications

Data abstraction (Parnas,1972) Grouping of structure and operations Information hiding Alphard (1976), CLU (1977)

Ada (late 1970, DoD) The most important PL supporting ADT

Page 26: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 26

The Evolution of OO in PL(4)The Evolution of OO in PL(4)

Smalltalk(XEROX PARC 1970-1980) One of the most influential OO language Not just a language

A programming environment A menu-based interactive user-interface An initial class hierarchy

Not a typed language Everything is an object

Page 27: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 27

The Evolution of OO in PL(5)The Evolution of OO in PL(5)

Another thing: Concurrency Modeling concurrent processes of objec

ts Actor (Hewitt 1977) ABCL/1 (Yonezawa 1990) Concurrnt C++ (Gehani 1988) Eiffel II (Camerol 1993)

Page 28: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 28

The Evolution of OO in PL(6)The Evolution of OO in PL(6)

The strategic direction of object-oriented PL development Extensions, dialects, and versions of Smalltalk

Smalltalk/V, Smalltalk80

Object-oriented extensions of conventional PLs C++, Objective-C, Object-Pascal,

Strongly typed object-oriented languages Eiffel, Trellis/Owl

Object-oriented extensions of LISP CommonLoops, Common Lisp Object System(CLOS)

Page 29: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 29

The Evolution of OO in PL(7)The Evolution of OO in PL(7)

1970s Structured programming

1980s The decade that launched the OO era

1990s The decade of the proliferation of OO languages

and technologies: C++ and relatives

2000s Moving toward Internet and Web Technology

Page 30: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 30

2.2 The Evolution of OODB2.2 The Evolution of OODB

OO Concepts + DB functionalities RDB Model + OO Features -> OR-DBMS

System/R Engineering Extension (IBM SanJose) PostGres(UC Berkley)

OO Languages + DB capabilities providing class hierarchies for persistent DB

OODB standard: ODMG 1993

Page 31: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 31

Network and Hierarchical Models(1)Network and Hierarchical Models(1)

File management systems

In the 1950s and 1960s Data definition products CODASYL-DBTG

COBOL + DB DDL, DML -> foundation for network DBMS

Page 32: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 32

Network and Hierarchical Models(2)Network and Hierarchical Models(2)

Network data model record types and one-to-many relationships A record type is involved in more than one

relationship

Hierarchical data model A tree-structured hierarchical relationship among

record types A record type is involved in only one relationship

Page 33: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 33

Network and Hierarchical Models(3)Network and Hierarchical Models(3)

Both the hierarchical and network data models were primarily navigational

start from “parent” or “owner” record navigate through “get next,” “get first,” or

“get last”

Page 34: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 34

Network and Hierarchical Models(4)Network and Hierarchical Models(4)

Do not have physical data independence

The owner-member relationship(for the network model) or parent-child relationship(for the hierarchical model) was explicitly stored in the DB records.

User’s view is dependent on physical storage

Page 35: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 35

The Relational Model(1)The Relational Model(1)

In the early 1970s, by Ted Codd SQL(Structure Query Language)

Declarative Specify what is to be accessed from DBs

Based on relational algebra and first-order predicate calculus

Simple and elegant

Page 36: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 36

The Relational Model(2)The Relational Model(2)

Early Relational DB System System/R(IBM), INGRES(U.C. Berkeley)

SQL standard SQL92, SQL3

Major vendor DEC, Informix, Oracle, Sybase, etc.

Page 37: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 37

Semantic and Functional Data ModelsSemantic and Functional Data Models

Semantic data model(early 1980) Motivation: Model the real world as closely as

possible ER data model

Functional data model(early 1980) Data manipulation capability Attributes are treated as functions Values are retrieved through applying functions to

entities

Page 38: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 38

Extended and Object-Relational ModelsExtended and Object-Relational Models

Extended(or object) relational model(mid 1980) Incorporated some object-oriented features as incr

emental extension to relational systems

Illustra, UniSQL, Matisse

SQL3 (ISO-ANSI, 1993) SQL + OO(ADT,inheritance..)

Page 39: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 39

Nested Relational and Complex Object ModelsNested Relational and Complex Object Models

Nested relational model Have a relation valued attribute

Complex object model More general Arbitrary composition hierarchies with sets and tup

les tree structured object spaces

Page 40: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 40

DBMS Market TrendDBMS Market Trend

1990 이후 OODBMS 와 ORDBMS 등장 OODBMS: Versant, Object Store, Objectivity ORDBMS: Illustra, UniSQL, Mattisse 3 Big RDBMS: Oracle, Informix, Sybase

1997 년 Major Big 3 의 ORDBMS 출시 2000 년 이후 : Internet and Web 지원 ORD

BMS 체재

Page 41: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 41

2.3 The Evolution of OO in User Interfaces(1)2.3 The Evolution of OO in User Interfaces(1)

Means of communicating with the computer in early computer systems

Batch system: Paper tapes, cards, and batch jobs Time-sharing system: CRT terminals Command-driven user interface

Users had to memorize commands and options

Page 42: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 42

The Evolution of OO in User Interfaces(2)The Evolution of OO in User Interfaces(2)

Graphical User Interface

In early 1970s -> mouse Menubar, pulldown menu, dialog box Desktop metaphor and direct manipulation

End user data object (ex. icon) data + procedure required to modify it

Automatizing user-interface design Class hierarchy + new screen object design

Page 43: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 43

The evolution of OO in User Interfaces(3)The evolution of OO in User Interfaces(3)

The concept of Metaphor Alan Kay: Smalltalk User Interface The physical mthaphor is a way of saying that th

e visual displays of a computer system should present the images of real physical objects with some degree of abstraction

Ex. Wastebasket icon, folder icon,...

Page 44: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 44

References(1)References(1)

Randell, b., and Russel, L.(1964) ALGOL 60 Implementation

Dahl and Nygaard(1966) Simula - an Alogol-based simulation language. CACM, 9

Goldberg and Robson(1983) Smalltalk-80: The Language and its Implementation

Shipman(1981) The functional data model and the data language DAPLEX, ACM TODS, 6(1)

Page 45: Chap 1. Introduction

Object Orientation SNU, OOPSLA Lab 45

References(2)References(2)

Keene(1988), Object-Oriented Programming In COMMONLISP

Astrahan(1976), System-R: A relational approach to data management, ACM TODS, 1(2)

Stonebraker(1976), The design and implementation of INGRES, ACM TODS, 1