Chương 4
Chương
4
Ph há h ớ đối
Ph
ương p
há
p
h
ư
ớ
ng
đối
tượng trong công nghệ
phần mềm
UML/NN 1
Nội dung
Phương pháp hướng đối tượng?
Các khái niệm cơ bản
UML/NN 2
Tổng quát về hướng đối tượng
Phương pháp lập trình hướng đối tượng giới thiệu một
quan điểmlậptrìnhkháchẳnsovớitrường phái cổ
quan
điểm
lập
trình
khác
hẳn
so
với
trường
phái
cổ
điển (có cấu trúc)
Bắt đầu hình thành vào những năm cuối của thập niên
60 đế 1990 bắt đầ hổ biế tôhiệ hầ
60
,
đế
n
1990
bắt
đầ
u p
hổ
biế
n
t
ron
g
c
ô
n
g
n
ghiệ
p p
hầ
n
mềm
Ngôn ngữ hướng đốitượng
Ngôn
ngữ
hướng
đối
tượng
Smalltalk, Eiffel
Object Pascal, C+, Java, C#,…
Hình thành phương pháp phân tích/thiếtkế hướng đối
Hình
thành
phương
pháp
phân
tích/thiết
kế
hướng
đối
tượng
Hi
ệ
n na
y
có m
ộ
t
q
ui trình
p
hát triển
p
hần mềm h
ợp
UML/NN 3
ệ y ộ qp p ợp
nhất UP dựa trên UML
Sự khác biệt
Account
ithd
amount
amount
message
StructuredStructured
aNo
balance
Account
w
ithd
raw
message
withdrawal
message
ER DFD with Data Store Structure Chart
hh
:
MyAccount
withdraw
(
X
)
MyAccount::
aNo= 101
Objects
OO approac
h
OO approac
h
:
MyAccount
()
balance=500
balance( )
withdraw( )
Objects
UML/NN 4
withdraw(
)
Đặc trưng cơ bản
Tính đóng gói (encapsulation): che dấu mọi chi
tiếthiệnthựcbêntrongđốitượng
tiết
hiện
thực
bên
trong
đối
tượng
.
Æ Tính độc lập cao giữa các đối tượng (tính kết dính thấp)
Tính
p
hân lo
ạ
i
(
classification
)
:
g
om nhóm các
p ạ ()
g
đối tượn
g
có cùn
g
cấu trúc và hành vi vào cùn
g
một lớp
Tí h ộ (ti)
1 đốitượ óthể
Tí
n
h
gộ
p
(
a
gg
re
g
a
ti
on
)
:
1
đối
tượ
n
g
c
ó
thể
chứa nhiều đối tượng khác tạo nên mối quan hệ
bao gộpmộtcáchđệ qui giữacácđốitượng
bao
gộp
một
cách
đệ
qui
giữa
các
đối
tượng
Tính thừa kế (inheritance): phân biệt tổng quát
hóa và chuyên biệt hóa các đối tượng
UML/NN 5
Nguyên lý cơ bản
Obj t O i t ti
Obj
ec
t O
r
i
en
t
a
ti
on
t
ion
o
n
y
t
y
apsula
t
b
stracti
o
ierarch
y
o
dulari
t
Enc
A
b
H
M
o
UML/NN 6
Abstraction?
Salesperson
Not saying
Which
sales
p
erson
p
– just a
salesperson
in general!!!
Product
Customer
Product
MCli
UML/NN 7
M
anages
C
omp
l
ex
i
ty
Encapsulation?
Che dấu việc thực thi
Clients depend on interface
How does an object encapsulate?
I R ili
What does it encapsulate?
UML/NN 8
I
mproves
R
es
ili
ency
Modularity?
Order
Entry
Order Processing
System
Order
System
Fulfillment
Billing
UML/NN 9
Manages Complexity
Hierarchy?
Increasing
abstraction
Asset
abstraction
RealEstate
BankAccount
Security
Savings
Checking
Stock
Bond
Decreasin
g
Savings
Checking
Stock
Bond
Elements at the same level of the hierarchy
UML/NN 10
g
abstraction
Elements
at
the
same
level
of
the
hierarchy
should be at the same level of abstraction
Các khái niệm cơ bản
Object
Cl
Cl
ass
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
UML/NN 11
Object?
Thực thể vật lý
T
hực thể khái niệm
T
h
ự
c thể
p
hần mềm…
ự p
Chemical Process
Truck
Linked List
UML/NN 12
Object
An object is a concept, abstraction, or thing
ith h b d i d i f
w
ith
s
h
arp
b
oun
d
ar
i
es an
d
mean
i
n
g
f
or an
application
An ob
j
ect is somethin
g
that has:
State
Behavior
Identit
y
y
UML/NN 13
Biểu diễn đối tượng
: Professor
a + b = 10
ProfessorClark
Class Name Only
Professor Clark
ProfessorClark :
Professor
Object Name Only
Class and Object Name
UML/NN 14
Class
and
Object
Name
Các khái niệm cơ bản
Object
Cl
Cl
ass
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships (trình bày ở chương sau)
UML/NN 15
Class?
A class is a description of a group of objects
ith ti ( tt ib t )
w
ith
common proper
ti
es
(
a
tt
r
ib
u
t
es
)
,
behavior (operations), relationships, and
ti
seman
ti
cs
An object is an instance (thể hiện) of a class
A class is an abstraction in that it:
Nhấn mạnh đến nhữn
g
đặc tính chun
g
g g
Bỏ qua những đặc tính riêng biệt
UML/NN 16
OO Principle: Abstraction
Lớp khóa học
Class
Course
Properties
Name
Behavior
Add a student
a + b = 10
Location
Days offered
Credit hours
Start time
Delete a student
Get course roster
Determine if it is full
Start
time
End time
UML/NN 17
Biểu diễn lớp
Professor
a + b = 10
Professor Clark
Professor
name
empID
Class Name
Attributes (ct)
empID
create( )
save( )
delete( )
Operations (hv)
UML/NN 18
delete(
)
change( )
Lớp các đối tượng
UML/NN 19
Class và Object
Class là một định nghĩa cho một đối tượng
Lớp xác định cấu trúc và hành vi của đối tượng thuộc lớp
Một mẫu (template)
Obj t đ ợ hó l ithà h hữ lớ
Ob
j
ects
Class
Obj
ec
t
s
đ
u
ợ
c n
hó
m
l
ạ
i
thà
n
h
n
hữ
n
g
lớ
p
j
Professor
Professor Smith Professor Mellon
UML/NN 20
Professor Jones
Các khái niệm cơ bản
Object
Cl
Cl
ass
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
UML/NN 21
Attribute?
Class
Object
:CourseOffering
b 101
Attribute
Attribute Value
num
b
er =
101
startTime = 900
endTime = 1100
CourseOffering
number
:CourseOffering
number
=
104
number
startTime
endTime
number
104
startTime = 1300
endTime = 1500
UML/NN 22
Các khái niệm cơ bản
Object
Cl
Cl
ass
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
UML/NN 23
Operation?
CourseOffering
addStudent
Class
addStudent
deleteStudent
getStartTime
getEndTime
Operation
UML/NN 24
Các khái niệm cơ bản
Object
Cl
Cl
ass
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
UML/NN 25