1 chap 1. introduction 서울대학교 컴퓨터공학부 internet data base lab 교수 김형주...

43
1 Chap 1. Introduction 서서서서서 서서서서서서 Internet Data Base LAB 서서 서서서 OBJECT-ORIENTATION by Khoshafian and Abnous

Upload: scot-boone

Post on 17-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

1

Chap 1. Introduction

서울대학교 컴퓨터공학부 Internet Data Base LAB

교수 김형주

OBJECT-ORIENTATION by Khoshafian and Abnous

Page 2: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

2

Contents

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

3

1. Introduction to Object Orientation

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

extensible libraries of SW modules Easily modifying and extending implementations of

components

3 focuses in the beginning of the textbook Abstract Data Type, Inheritance, Object Identity

Page 4: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

4

The SW Development Effort

Size or Functionality Size or Functionality

Effort: Labor-Months Effort: Labor-Months

Conventional OO Technology

Page 5: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

5

Object-Oriented Software

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

Productivity !Quality !

Page 6: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

6

Object-Oriented Programming Languages

Some Examples

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

7

Object-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. Existing object definitions may be reused when new objects are defined.

Page 8: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

8

Object Orientation for All Users (1)

End users Executives, secretaries, ATM users Friendlier user interfaces through OO Multimedia data support through OO Plug-and-Use / Plug-and-Play through OO Example: PowerPoint and Web, Web browser and

Email

Page 9: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

9

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, Powerbuild

er, Java Visual Cafe

Page 10: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

10

Object Orientation for All Users (3)

Independent software vendors SW developers: DBMS, O/S, Intranet Power user group Enhanced engineering and configuration management tools Build complex systems rapidly Example: Apache web server, Nacho OS Kernel, MySQL DBMS

Page 11: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

11

PLPL

DBDB

UIUI

ObjectOrientation

ObjectOrientation

user requirements

Object Orientation everywhere

AI

SE

Page 12: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

12

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

13

Abstract Data 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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

15

Base Model: 4 cylinder engine vanilla chassis standard interior

Base Model: 4 cylinder engine vanilla chassis standard interior

Inheritance

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

16

Object 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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

18

Object-Oriented Analysis and Design

RequirementsRequirements

AnalysisAnalysis

DesignDesign

ProgrammingProgramming

IntegrationIntegration

TestingTestingWaterfall Model

Page 19: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

19

Object-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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

20

Object-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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

21

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

22

2. 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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

23

2.1 The Evolution of OO in PL (1)

Assemblers (early 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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

24

The Evolution of OO in PL (2)

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

Page 25: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

25

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

26

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

27

The Evolution of OO in PL (5)

Primary Concern: Concurrency Concurrent OOPL Modeling concurrent processes of objects

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

Page 28: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

28

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

29

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 Java

2000s Moving toward Internet and Web Technology Yes, unquestionably Java

Page 30: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

30

Coming Soon!

From C to C++

From C++ to Java

Page 31: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

31

2.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 32: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

32

The 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

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: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

33

The Network and Hierarchical Models (2)

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”

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 34: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

34

The Relational Model

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 Early Relational DB System

System/R (IBM), INGRES (U.C. Berkeley) SQL standard

SQL92, SQL3 Major vendor

DEC, Informix, Oracle, Sybase, etc.

Page 35: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

35

The Semantic 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 36: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

36

The Extended and Object-Relational Models

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

sion to relational systems

Illustra, UniSQL, Matisse

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

Page 37: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

37

The Nested Relational and Complex Object Models

Nested relational model Have a relation valued attribute

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

tree structured object spaces

Page 38: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

38

DBMS 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 출시 Even small guys proposed ORDBMSs

2000 년 이후 : Internet and Web 지원 ORDBMS 체재

Page 39: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

39

Coming Soon!

Object-Orientation in Oracle 11

Page 40: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

40

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 41: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

41

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

The concept of Metaphor Alan Kay: Smalltalk User Interface The physical metaphor is a way of saying that the visual displays of a

computer system should present the images of real physical objects with some degree of abstraction

UI should have the physical metaphor paradigm Ex. Wastebasket icon, folder icon, ...

Page 42: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

42

Coming Soon!

Object-Orientation in Graphics and GUI

Page 43: 1 Chap 1. Introduction 서울대학교 컴퓨터공학부 Internet Data Base LAB 교수 김형주 OBJECT-ORIENTATION by Khoshafian and Abnous

43

References

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)

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