Introduction to Object-Oriented Technology
-
Components of Object-Oriented Technology
-
Different Kinds of Programming and Design Philosophy
-
Object-Oriented Programming Languages
-
Object-Oriented Analysis and Design Methods
1. Components of Object-Oriented Technology
-
Object-oriented programming languages and environments
-
Object-oriented analysis and design methods
1.1 Object-oriented programming languages and environments
-
First object-oriented language, Simula at 1967
-
Proved by Smalltalk at 1976s
-
C++, Effiel, Common Lisp, Object-Pascal, ... appeared at late 1970s
-
Object-oriented orogramming environments matured at 1980s
-
user interface (1980s) : WIMP, Dynabook, Apple Lisa and Macintosh, Window
systems, …
-
Java appeared at 1995
1.2 Object-oriented analysis and design methods
-
Programming environments only do not make good systems
-
A lot of bject-oriented analysis and design methods
appeared at late 1980s and early 1990s
-
UML recognized by OMG as standard at Nov. 1997
1.3 Methods
-
Components of a method
-
a modeling language or notation
-
a process
-
guidelines
-
applying examples of typical problems
-
Well-known methods
-
structured analysis and design methods
-
Shlaer and Mellor's books on OOA&D
-
Coad and Yourdon's books on OOA
-
Booch method
-
Rumbaugh's OMT
-
Jacobson's OOSE
-
Wirfs-Brock, Beck and Cunningham's CRC
-
...
2. Different Kinds of Programming and Design Philosophy
2.1 Process-oriented (or function-oriented) concepts
-
emphasizing on processes or functions
-
viewing a system as a process or function and then decompose the function
into sub-functions, …
-
data management is weak and underestimated
-
problems
2.2 Data-oriented concepts
-
emphasizing on data analysis
-
starting the system analysis process from data analysis
-
very weak in processing considerations
-
the results of these two kinds of analysis cannot be easily combined
2.3 Objec-oriented concepts
-
Object (instance) : member data + methods (operations)
-
Class (object type) : the definition of objects
-
The construct of an object-oriented system - classes
-
The operation of an object-oriented system
-
objects
-
invoking a method
-
message and message passing
-
Balancing data and process
2.4 Properties of object-oriented technology
-
Class => abstraction
-
Encapsulation => data hiding
-
Inheritance => reuse
-
Dynamic binding => polymorphism=>flexible
-
Software reuse
-
Object-based languages versus object-oriented languages
3. Object-Oriented Programming Languages
3.1 Smalltalk
-
Developed by Xerox Palo Alto Research Center.
-
A purely object-oriented language and environment, i.e., anything is an
object
-
Powerful in graphical user interface construction
-
The first language that sucessfully demonstrates the power of object-oriented
concept
3.2 C++
-
Deveopled by Bjarne Stroustrup at Bell Lab.
-
Extending from C with object-oriented concept
-
Widely used in many applications' and systems' developments
3.3 Java
-
History of Java
-
Green project funded by Sun for intelligent consumer electronic devices
-
announced at May 23, 1995
-
experiences from CE
-
so many kinds of machines, portability
-
simple
-
no hard disk => network download
-
security
-
The properties of Java
-
A simple, object-oriented, distributed, interpreted,
robust, secure, architecture-neutral, portable, high
performance, multithreaded, dynamic language -- commented by Sun
-
"Write once, run anywhere"
-
Why Java
-
object-oriented
-
subset of C++
-
hot language on internet
4. Object-Oriented Analysis and Design Methods
4.1 So many methods appeared since late 1980s
-
the method's scene was pretty split and competitive
-
all the methods were very similar
-
they, however, contained a number of often annoying minor differences among
them
-
therefore, a basic concepts would appear in very different notations
4.2 Unified Modelling Language
-
OOPSLA’94
-
Rational Software
-
UML by Booch, Rumbaugh, and Jacobson
-
a modeling language but not a method
-
current status
-
accepted by OMG as a standard
object-oriented modelling language at Nov. 1997
-
already become a starndard modeling language just as DFD notation in traditionaly
structured analysis
-
wide industry support
-
version 1.3
-
related books
-
Booch - User Guide
-
Rumbaugh - Reference Manual
-
Jacobson - Development Process
-
...
-
tool support
4.3 Developing Process
-
UML is just a standard modelling language, one may employ any kind
of developing process
-
Use case driven developing process is the most frequently used one
-
Use case driven process first realized by Jacobson
-
Rose Objectory process
Reference:
(Source: http://cgi.omg.org/news/pr99/UML_2001_CACM_Oct99_p29-Kobryn.pdf)
--------------------------------------------------------------------------------
本文版權為 許銀雄(Yin-Hsong Hsu) 所有, Copyright (C) 2000
作者: 銘傳大學 資訊工程研究所許銀雄
在保持全文完整 (含本段註腳) 的前提下,
歡迎複製及散佈本網頁