Chương 5
Chương
5
Biể đồ lớ àbiể
Biể
u
đồ
lớ
p v
à
biể
u
đồ
đố
i
tượ
n
g
đồ đố tượ g
UML/NN 1
Nội dung
Biểu diễn Lớp và đối tượng
ễ
Biểu di
ễ
n quan hệ (relationship)
Xâ
y
d
ự
n
g
Mô hình
y ự g
Phát mã
UML/NN 2
9 Biểu đồ
1. Biểu đồ Use case (Use Case Diagram)
Biể đồ lớ (Cl Di )
2.
Biể
u
đồ
lớ
p
(Cl
ass
Di
a
g
ram
)
3. Biểu đồ đối tượng (Object Diagram)
ể
4. Bi
ể
u đồ trạn
g
thái (State Dia
g
ram)
5. Biểu đồ trình t
ự
(
Se
q
uence Dia
g
ram
)
ự (q g )
6. Biểu đồ cộng tác (Collaboration Diagram)
7.
Biểu đồ hoạt động (Activity Diagram)
7.
Biểu
đồ
hoạt
động
(Activity
Diagram)
8. Biểu đồ thành phần (Component Diagram)
9
Biểu đồ triển khai (Deployment Diagram)
UML/NN 3
9
.
Biểu
đồ
triển
khai
(Deployment
Diagram)
Biểu đồ lớp và đối tượng
UML/NN 4
Class và Object
Account
aNo
Name of
Class
Class
variable
aNo
balance
dayLimit
= 200
soFa
r
Data
Declaration
variable
SamAcc
::
balance(?)
balance( )
withdraw( )
Methods
Definition
SamAcc
::
aNo=101
balance=500
soFar=100
withdraw(X)
SamAcc::Account
Name of
Object
MicAcc::Account
Name of
instances
aNo = 101
balance = 500
soFar=100
Object
Data Values
aNo = 105
balance = 600
soFar
=
200
Object
Data Values
5
soFar 200
Data
Values
Lớp và đối tượng
Một đối tượng biểu diễn cho một thực thể có thể là
thựcthể vậtlý kháiniệm hay là phầnmềm
thực
thể
vật
lý
,
khái
niệm
hay
là
phần
mềm
…
Một đối tượng là một khái niệm, sự trừu tượng hay
mộtvậtmàcóranhgiớirõràng vàcónghĩarõrệt
một
vật
mà
có
ranh
giới
rõ
ràng
,
và
có
nghĩa
rõ
rệt
cho một ứng dụng
Mộtlớplàmộtmôtả cho một nhóm các đốitượng
Một
lớp
là
một
mô
tả
cho
một
nhóm
các
đối
tượng
có chung thuộc tính, ứng xử, mối quan hệ và ngữ
n
g
hĩa
(
semantic
)
.
g ()
Lớp là một khuôn mẫu để tạo ra đối tượng
Mỗi đốitượng trong mộthệ thống đềucóbađặc
UML/NN 6
Mỗi
đối
tượng
trong
một
hệ
thống
đều
có
ba
đặc
tính: trạng thái, ứng xử và danh định.
Trạng thái (state)
Trạng thái của một đối tượng là một trong
hữ tì h t à đốitượ óthể tồ t i
n
hữ
n
g
tì
n
h
t
rạn
g
m
à
đối
tượ
n
g
c
ó
thể
tồ
n
t
ạ
i
trong môi trường.
T
rạn
g
thái của một đối tượn
g
thườn
g
sẽ thay
đổi theo thời gian, trạng thái của đối tượng
ể
thườn
g
được được
g
ắn với thời đi
ể
m.
T
r
ạ
n
g
thái của m
ộ
t đối tư
ợ
n
g
đư
ợ
c xác đ
ị
nh
ạ g ộ ợ g ợ ị
qua một tập các thuộc tính, và mối quan hệ
với các đối tư
ợ
n
g
khác.
UML/NN 7
ợ g
Hành vi (Behaviour) và Danh định (Identity)
Hành vi xác định một hoạt động của một đối
tượ (th đổit thái th thờii )
tượ
n
g
(th
ay
đổi
t
rạn
g
thái
th
eo
thời
gi
an
)
nhằm đáp ứng các yêu cầu từ các đối tượng
khá ó tiê biể hhữ ìàđối
khá
c, n
ó
tiê
u
biể
u c
h
o n
hữ
n
g
gì
m
à
đối
tượng này có thể làm
ể
Danh định dùn
g
đ
ể
phân biệt
g
iữa các đối
tượng ngay cả khi nó có cùng trạng thái và
g
iá trị các thuộc tính
UML/NN 8
Biểu tượng lớp – đối tượng
Một biểu tượng lớp là một hình chữ nhật với 3 phần
Mộtbiể đồ lớ iê tả h ớ hì tĩ h ủ ột
Một
biể
u
đồ
lớ
p m
iê
u
tả
h
ư
ớ
n
g
n
hì
n
tĩ
n
h
c
ủ
a m
ột
hệ thống bằng các khái niệm lớp và mối quan hệ
giữa chúng với nhau
giữa
chúng
với
nhau
Đối tượng biểu diễn bằng một hình chữ nhật với
tên gạch dưới
tên
gạch
dưới
UML/NN 9
Tên lớp và thuộc tính
Tên lớp (class name): Hầu như tên lớp trùng
ớitê đốitượ thế iớithự àóbiể
v
ới
tê
n
đối
tượ
n
g
thế
giới
thự
c m
à
n
ó
biể
u
diễn
T
huộc tính (attribute):
Thuộc tính miêu tả những đặc trưng của đối
tượn
g
Giá trị của thuộc tính thường là những dạng dữ
liệu đơn
g
iản được đa phần các n
g
ôn n
g
ữ lập
trình hỗ trợ như Integer, Boolean, Floats, Char…
UML/NN 10
…Thuộc tính
Nếu thuộc tính có tính khả kiến là công cộng (public +),
thìnócóthể được nhìn thấyvàsử dụng ngoài lớp đó
thì
nó
có
thể
được
nhìn
thấy
và
sử
dụng
ngoài
lớp
đó
Nếu thuộc tính có tính khả kiến là riêng (private -), bạn
sẽ không thể truy cập nó từ bên ngoài lớp đó
Nếu thuộc tính có tính khả kiến là bảo vệ (protected #)
thì cũng giống như thuộc tính có tính khả kiến là riêng
nhưng là công cộng đốivớicáclớpcon
nhưng
là
công
cộng
đối
với
các
lớp
con
UML/NN 11
Phương thức (method)
Phương thức được sử dụng để xử lý thay đổi
các thuộctínhcũng như thựchiệncáccông
các
thuộc
tính
cũng
như
thực
hiện
các
công
việc khác
Dấutương tự như thuộctính
Dấu
tương
tự
như
thuộc
tính
UML/NN 12
Nội dung
Biểu diễn Lớp và đối tượng
ễ
Biểu di
ễ
n quan h
ệ
(relationship)
Xâ
y
d
ự
n
g
Mô hình
y ự g
Phát mã
UML/NN 13
Quan hệ (relationship)
Kết hợp (Association)
Kếttậ (ti)
Kết
tậ
p
(
a
gg
re
g
a
ti
on
)
Composition (kết cấu)
Phụ thuộc (Dependency)
Chuyên biệt và tổng quát hóa
(S i li i /G li i )
(S
pec
i
a
li
zat
i
on
/G
enera
li
zat
i
on
)
UML/NN 14
Kết hợp (Association)
Association Name
Professor Universit
y
Works for
Role Names
Professor UniversityClass
Employer
Employee
UML/NN 15
Những ràng buộc của kết hợp
Một kết hợp phải có một tên đặt bên trên hay kề
với đường liên hệ
với
đường
liên
hệ
Tên của kết hợp phải phản ảnh nội dung, là cụm
động từ tên có thể bỏ qua đặcbiệt khi tên vai trò
động
từ
,
tên
có
thể
bỏ
qua
đặc
biệt
khi
tên
vai
trò
của nó được dùng, tránh dùng tên không cộng
t
h
ê
m
t
h
ô
n
g
t
in
tê tôgt
Mỗi đầu của kết hợp là một vai trò (role) chỉ ra vai
trò của lớ
p
tron
g
kết h
ợp,
tên vai trò
p
hải là du
y
pg ợp, p y
nhất ứng với một lớp, tên vai trò phải là một danh
từ đặt cuối đường kết hợp
UML/NN 16
Chọn một tron
g
hai: tên kết hợp hay tên vai trò
Kết hợp đệ qui
Tên vai trò là bắt buộc
UML/NN 17
Bản số (Multiplicity)
Xác định bao nhiêu đối tượng tham gia kết
hợ
hợ
p
One or more
UML/NN 18
Chiều (Navigation)
Multiplicity
Student Schedule
0 *1
Navigation
UML/NN 19
Lớp kết hợp (Association class)
1 * 0 *
account
card
dateIncluded
UsedFor
account
Association
class
dateIncluded
class
0 * 1 *
student
course
grade
student
course
No Name
20
Kết tập (aggregation)
Kết tập là quan hệ giữa toàn bộ và bộ phận
Một đốitượ đượ t từ hữ đốitượ khá ó tí h
Một
đối
tượ
ng
đượ
c
t
ạo
từ
n
hữ
ng
đối
tượ
ng
khá
c c
ó
tí
n
h
vật lý
Một đốitượng là tậphợpcủanhững đốitượng khác có
Một
đối
tượng
là
tập
hợp
của
những
đối
tượng
khác
có
tính logic
Một đối tượng chứa những đối tượng khác có tính vật lý
Stude
n
t
Sc
h
edu
l
e
Whole
Part
UML/NN 21
Stude t
Sc edu e
Aggregation
Composition (kết cấu)
Kết cấu là một dạng của kết tập, thời gian sống của
đốitượng bộ phận không vượtquáthờigiansống
đối
tượng
bộ
phận
không
vượt
quá
thời
gian
sống
của đối tượng toàn bộ
Khi toàn bộ bị xóa thì bộ phậncũng bị xóa
Khi
toàn
bộ
bị
xóa
thì
bộ
phận
cũng
bị
xóa
Bộ phận có thể bị xóa trước khi toàn bộ bị xóa
St d t
Shdl
Whole
Part
St
u
d
en
t
S
c
h
e
d
u
l
e
Aggregation
UML/NN 22
Aggregation
Aggregation và composition
UML/NN 23
Phụ thuộc (Dependency)
Một biến đổi trên một thành phần sẽ gây ra sự biến
đổitrongthànhphầnkhác
đổi
trong
thành
phần
khác
Client Supplier
Class
Component
Package
Client
Supplier
Dependency
relationship
ClientPackage SupplierPackage
relationship
Dependency
UML/NN 24
relationship
Specialization/Generalization
Chuyên biệt hóa(/tổng quát hóa): là quá trình
tinh chế mộtlớp thành những lớp chuyên biệthơn
tinh
chế
một
lớp
thành
những
lớp
chuyên
biệt
hơn
.
Chuyên biệt hóa bổ sung thêm chi tiết và đặc tả
cho lớp kết quả. Lớp mang tính khái quát được gọi
là
lớ h( l )
kế ả hêbiệ hó
là
lớ
p c
h
a
(
superc
l
ass
)
,
kế
t qu
ả
c
h
uy
ê
n
biệ
t
hó
a
là việc tạo ra các lớp con (Subclass).
Tổng quát hóa và chuyên biệt liên quan tới
Thừa
Tổng
quát
hóa
và
chuyên
biệt
liên
quan
tới
Thừa
kế (Inheritance)
Lớ
p
con thừa kế attributes, o
p
erations, và relationshi
p
s
p pp
Lớp con có thể:
Cộng thêm attributes, operations, relationships
Xá định l itá đượ thừ kế (tion!)
UML/NN 25
Xá
c
định
l
ạ
i
tá
c vụ
đượ
c
thừ
a
kế
(
cau
tion!)