Upload
idana
View
47
Download
0
Embed Size (px)
DESCRIPTION
OBJECT-ORIENTATION by Khoshafian and Abnous. Chap 1. Introduction. 서울대학교 컴퓨터공학부 Internet Data Base 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
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
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
4
The SW Development Effort
Size or Functionality Size or Functionality
Effort: Labor-Months Effort: Labor-Months
Conventional OO Technology
5
Object-Oriented Software
• Can model problems better.• Is more understandable.• Is more repairable.• Is more reusable.
Productivity !Quality !
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
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.
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
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
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
11
PLPL
DBDB
UIUI
ObjectOrientation
ObjectOrientation
user requirements
Object Orientation everywhere
AI
SE
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
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.
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
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
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.
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
18
Object-Oriented Analysis and Design
RequirementsRequirements
AnalysisAnalysis
DesignDesign
ProgrammingProgramming
IntegrationIntegration
TestingTestingWaterfall Model
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
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
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.
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
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
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
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
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
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)
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)
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
30
Coming Soon!
From C to C++
From C++ to Java
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
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
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
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.
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
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..)
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
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 체재
39
Coming Soon!
Object-Orientation in Oracle 11
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
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, ...
42
Coming Soon!
Object-Orientation in Graphics and GUI
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