Chap 1. Introduction
description
Transcript of Chap 1. Introduction
Chap 1. IntroductionChap 1. Introduction
서울대학교 컴퓨터공학부객체지향시스템 연구실
SNU OOPLSA LAB
교수 김형주
OBJECT-ORIENTATION by Khoshafian and Abnous
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
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
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
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 !
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
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.
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
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
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
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)
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
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.
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
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
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.
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
Object Orientation SNU, OOPSLA Lab 18
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
RequirementsRequirements
AnalysisAnalysis
DesignDesign
ProgrammingProgramming
IntegrationIntegration
TestingTesting
Waterfall Model
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
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
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.
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
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
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
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
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
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)
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)
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
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
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
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
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”
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
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
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.
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
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..)
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
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 체재
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
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
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,...
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)
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