Gói1
+Lp1 +Lp2
+Lp3
“import”
+Lp4
Gói2
-a1
a2
+a3
#a4
III.2.4 Thuc tính (attribute):
Các thuc tính biu din các d liu được bao gói trong các đối tượng ca lp
đang xét.
Mt thuc tính có th được khi to lúc khai báo. Ng pháp đầy đủ ca thuc
tính như sau:
<mc độ hin th> [/] <tên thuc tính>: <kiu> [‘[’<bn s>] ’]’ [=<tr khi to>]
trong dó:
<mc độ hin th>: dùng các t khóa public, private, protected hoc các du
tương ng
<kiu>: kiu d liu cơ s hoc tên lp
<bn s>: các ch s ti thiu và ti đa cho mt mng ca kiu va nói trên
<tr khi to>: phi có kiu tương ng vi kiu nói trên.
III.2.4.1 Thuc tính ca lp:
Thông thường, mt thuc tính s có các tr khác nhau các đối tượng khác
nhau ca lp đó. Tuy nhiên, tn ti nhng thuc tính có tr duy nht cho tt c các đối
tượng ca lp đó. Các đối tượng truy xut được thuc tính đó, nhưng không được s
hu mt bn sao ca nó.
Đó chính là thuc tính tĩnh mà trong Java và C++ dùng t khóa static đứng
trước tên ca nó. Trong UML, thuc tính ca lp được gch dưới.
Ví d: giá tr PI=3.14 ca lp Math trong Java luôn không đổi đối vi bt k
đối tượng nào ca lp Math.
III.2.4.2 Thuc tính do suy din (derived attribute):
Thuc tính do suy din là thuc tính có được do s suy din, tính toán t các
thuc tính khác. Nó được s dng như mt thuc tính thc th, nhưng được tính toán
qua mt phương thc.
Thuc tính do suy din được đánh du bi du “/’ (slash) đứng trước.
Ví d:
/tri_gia: integer;
4
III.2.5 Phương thc (method):
Hành vi ca mt đối tượng được mô hình hóa bng mt tp các phương thc.
Người ta phân bit đặc t (specification, header) ca phương thc vi cài đặt
(implementation) ca nó. Tương ng vi mi đặc t, có th có nhiu cài đặt, nhưng
vi mi cài đặt ch tương ng vi mt đặc t duy nht.
Đặc t còn được gi là “operation”, còn cài đặt c th được gi là “method”.
III.3 GIAO DIN (INTERFACE):
Giao din cũng ging như lp, nhưng không có đặc t cho mt cu trúc bên
trong, cũng như các gii thut thc hin cho các phương thc. Giao din có th mô t
chính xác điu kin và kết qu vic kích hat nó.
Ngược vi lp, giao din không có th hin. Để được s dng, nó thường phi
được thc hin bi mt lp.
Mt giao din có th được chuyên bit hóa hoc tng quát hóa bi mt giao
din khác.
Cách biu din giao din và mi liên h vi lp:
III.4 QUAN H GIA CÁC LP:
III.4.1 Liên kết (association):
Mt liên kết biu din mi liên h ng nghĩa bn vng gia 2 lp.
Ký hiu:
Các thành phn đầy đủ ca mt liên kết gm có:
A B
TenLop
TenLop
TenGiaoDien
tên liên kết bn s bn s
“interface”
TenGiaoDien
vai trò vai trò
Mũi tên để ch ý nghĩa chính xác ca tên liên kết t lp bên trái sang lp bên
phi. “Vai trò” phía mt lp dùng để ch vai trò ca lp đó trong liên kết đối vi lp
kia.
Vai trò, mũi tên có th được b qua.
5
Nếu mun biu din s thông thương t mt lp sang lp khác b cm ta dùng
du tréo phía lp đó trên đường ni.
Ví d:
Trong ví d này, s thông thương ch có chiu duy nht t lp “Hình đa giác”
sang lp “Đim”.
III.4.2 Tính bi (multiplicity) :
2 đầu mi liên kết, phi có ch s để biu din tính bi ca liên kết, chính
xác hơn là bn s (cardinality) ca mi lp tham gia vào liên kết.
Chú ý: bn s ca mt lp đầu này ca liên kết được ký hiu lp đầu kia
ca liên kết.
Ví d:
Ng nghĩa: 1 môn được dy bi ít nht 1 giáo viên và nhiu nht 4 giáo viên,
trong khi 1 giáo viên ch dy 1 môn duy nht.
III.4.3 Liên kết có ràng buc (association with constraint):
Vic thêm vào ràng buc cho mt hoc nhiu liên kết mang li nhiu thông tin
hơn vì nó cho phép mô t chính xác hơn tm nh hưởng và chiu ca lien kết. Các
ràng buc dược đặt trong du móc “{}” và có th biu diên bng bt k ngôn ng nào.
Tuy nhiên, ngôn ng OCL ( Object Constraint Language) được ưa chung hơn.
Ví d:
III.4.4 Lp-liên kết (association class) :
Khi phân tích, ta thy có nhng thuc tính không th đặt vào được trong lp
thun túy nào, mà ph thuc đồng thi vào nhiu lp ni nhau qua mt liên kết. Vì
trong phân tích h thng hướng đối tượng, ch có lp mi có th cha được thuc tính
nên liên kết này tr thành mt lp, gi là lp-liên kết.
Ví d: các lp “Co_chuyen_mon”, “Co_ngoai_ngu” và “Xin_tuyen” trong sơ
đồ sau:
Môn GViên
1
1..4
Môn GViên
1..
*dy
1..
*
được định nghĩa bi
*
3..
*
Hình đa giác Đim
#đ
nh
được định nghĩa bi
#đ
nh
{ordered}
*
3..
*Đim Hình đa giác
6
1..* co_CM
0..*
- ma_CM
- ten_CM
+ Chuyen_mon
- ma_CM
- ten_CM
1..*
0..* co_NN
- ma_NN
- ten_NN
+ Ngoai_ngu
- ma_NN
- ten_NN
1
0..*
xin_tuyen
1
0..1
duoc_nhan
+ stt_VT
- dien_giai
+ Vi_tri
+ stt_VT
- dien_giai
+ stt
- ho
- ten
- nam_sinh
+ xin_TD
+ hien_thi
+ duoc_nhan
- duoc_danh_gia
+ Nguoi xin viec
+ stt
- ho
- ten
- nam_sinh
+ xin_TD
+ hien_thi
+ duoc_nhan
- duoc_danh_gia
- danh_gia
+ Xin_tuyen
- danh_gia
- trinh_do
+ Co_chuyen_mon
- trinh_do
- trinh_do
+ Co_ngoai_ngu
- trinh_do
III.4.5 Liên kết do suy din:
Liên kết do suy din là liên kết được đặt điu kin hoc được suy din t ít
nht mt liên kết khác. Mc dù nó to ra s dư tha, nhưng thc tế li có ích nếu phi
s dng nhiu liên kết mi có được kết qu như mong mun.
Ký hiu: có du slash (“/”) trước tên liên kết.
Ví d 1: liên kết “có th” trong sơ đồ v th ATM dưới đây (du “/” được thay
bi t khóa “derived” do phn mm không cho phép )
1
0..*
<< derived >>
co the
0..*
1
co TK
- ma KH
- ho KH
- ten KH
- dia chi KH
+ Khach hang
- ma KH
- ho KH
- ten KH
- dia chi KH
0..*
1
cua TK
- so TK
- ngay tao
- so du
+ Tai khoan
- so TK
- ngay tao
- so du
- ma the
- ngay tao
- so du
+ The ATM
- ma the
- ngay tao
- so du
Ví d 2: liên kết “mua” là liên kết suy din và cn thiết duy trì khi cn biết
thường xuyên khách hàng mua hàng gì bng mi liên kết trc tiếp thay vì phi qua 2
liên kết “mua món” và “gm”.
7
0..*
1..*
mua
0..*
1
mua mon
- ma_KH
- hoten_KH
+ Khach hang
- ma_KH
- hoten_KH
1
1..* gom
- ma_hg
+ ten_hg
+ dvt
+ Hang
- ma_hg
+ ten_hg
+ dvt
+ stt
+ don gia
+ Mon hang cu the
+ stt
+ don gia
III.4.6 Liên kết có thm định (qualified association):
đôi khi mt lp này có tác động đến lp khác liên kết vi nó, đòi hi liên
kết phi có mt s thm định (qualification) để tránh mô hình hóa không chính xác.
S thm định này biu hin bng cách cho thêm:
- mt ch s vào liên kết
- hoc mt lp vào lp ban đầu
Ví d 1: mt đối tong ca lp Object được tham chiếu bi mt ch s duy
nht trong mt đối tượng ca lp Vector.
1
Vector Object
1
indice: inte
g
e
r
Object Vector
*
1
Ví d 2: Do ngân hàng có nhiu hot động khác không liên quan đến khách
hàng trong ng cnh đang xét, và ta mun gii hn mi quan h gia khách hàng và
ngân hàng ch là thông qua các tài khon: ta thêm vào mt lp “Tài khan” trong lp
“Ngân hàng”:
0..2 *Khách hàng
#Tài khan
Ngân hàng
III.4.7 Liên kết nhiu chiu:
Trong UML, ít khi dùng liên kết nhiu chiu, mà thường gii hn 2 chiu,
đôi khi 3 chiu. Lý do là vì để xác định bn s ca mi lp khá khó khăn.
Thường thì các liên kết nhiu chiu được chuyn sang dùng lp-liên kết, hoc
nhiu liên kết 2 chiu.
Ví d: V thi khóa biu dy hc, có nhiu cách mô hình hóa:
Cách 1: Dùng liên kết nhiu chiu ni vi tt c các lp liên quan:
8