Program Polska-Rosja 2014-2020
Program Polska - Rosja 2014-2020 przygotowywany jest przez
współpracujące ze sobą polskie i rosyjskie właściwe instytucje rządowe
(ministerstwa) oraz samorządowe (władze regionalne), zgodnie
z odpowiednimi regulacjami prawnymi obu stron oraz Unii Europejskiej
Głównym celem Programu jest wsparcie obopólnej współpracy
podmiotów z obszaru pogranicza w wymiarze społecznym,
środowiskowym, gospodarczym oraz instytucjonalnym
Program zmierza do rozwoju strefy wspólnej stabilności, bezpieczeństwa
i dobrobytu, jak również zwiększania integracji gospodarczej, społecznej
i współpracy instytucji publicznych
Program Polska-Rosja 2014-2020
Program Polska - Rosja 2014-2020 przygotowywany jest przez
współpracujące ze sobą polskie i rosyjskie właściwe instytucje rządowe
(ministerstwa) oraz samorządowe (władze regionalne), zgodnie
z odpowiednimi regulacjami prawnymi obu stron oraz Unii Europejskiej
Głównym celem Programu jest wsparcie obopólnej współpracy
podmiotów z obszaru pogranicza w wymiarze społecznym,
środowiskowym, gospodarczym oraz instytucjonalnym
Program zmierza do rozwoju strefy wspólnej stabilności, bezpieczeństwa
i dobrobytu, jak również zwiększania integracji gospodarczej, społecznej
i współpracy instytucji publicznych
1. Thi t k hư ng ñ i
tư ng - S d ng
UML (7)
Nguy n Thanh Bình
Khoa Công ngh Thông tin
Trư ng ð i h c Bách khoa
ð i h c ðà N ng
N i dung
Khái ni m cơ b n hư ng ñ i tư ng
Bi u ñ ca s d ng
Thi t k c u trúc tĩnh
Thi t k c u trúc ñ ng
Sinh mã
2
1
2. Hư ng ch c năng
D a vào các ch c năng c a h th ng
H th ng là t p h p các ch c năng
Chia nh các ch c năng và làm m n d n
H th ng g m các h th ng con
Làm ch ñ ph c t p
Các ch c năng trao ñ i v i nhau b ng
truy n tham s ho c d li u (ch ng h n
bi n toàn c c) dùng chung
3
Hư ng ch c năng
Phân c p ch c năng
H th ng
Ch c năng 1 Ch c năng 2
Ch c năng 1.1 Ch c năng 1.2 Ch c năng 2.1 Ch c năng 2.2
4
2
3. Hư ng ch c năng
Ưu ñi m
Phân tích ñư c các ch c năng c a h th ng
ðưa l i k t qu mong ñ i
Như c ñi m
Ch c năng c u trúc
Thay ñ i v ch c năng khó khăn thay ñ i c u trúc
Tính m c a h th ng th p
Khó tái s d ng
Chi phí s a ch a l i l n
5
Hư ng ñ i tư ng
L y ñ i tư ng làm trung tâm
H th ng = t p h p các ñ i tư ng + quan
h gi a các ñ i tư ng
Các ñ i tư ng trao ñ i b ng thông ñi p
(message)
Không s d ng bi n toàn c c
ðóng gói
Th a k
6
3
4. Hư ng ñ i tư ng
Phân bi t
L p trình c u trúc
• Thu t toán + c u trúc d li u = chương
trình
L p trình HðT
• Σñ i tư ng = chương trình
• ñ i tư ng = thu t toán + c u trúc d li u
7
Hư ng ñ i tư ng
Ưu ñi m chính
G n gũi v i th gi i th c
Tái s d ng d dàng
ðóng gói, che d u thông tin làm cho
h th ng tin c y hơn
Th a k làm gi m chi phí, h th ng có
tính m cao hơn
Xây d ng h th ng l n và ph c t p
8
4
5. ð i tư ng
ð i tư ng (object) là khái ni m cho
phép mô t các s v t/th c th trong
th gi i th c
Các ñ i tư ng duy trì các quan h
gi a chúng
Nguy n Văn A là m t ñ i tư ng
9
ð i tư ng
Các tính ch t c a ñ i tư ng
ð i tư ng = tr ng thái + hành vi +
ñ nh danh
• Tr ng thái là các ñ c tính c a ñ i tư ng
t i m t th i ñi m
• Hành vi th hi n các ch c năng c a ñ i
tư ng
• ð nh danh th hi n s t n t i duy nh t
c a ñ i tư ng
10
5
6. ð i tư ng : tr ng thái
Tr ng thái = t p h p các thu c tính
M i thu c tính mô t m t ñ c tính
T i m t th i ñi m c th , các thu c
tính mang các giá tr trong mi n xác
ñ nh
Ví d
• M t chi c xe máy: màu xanh, 110 cm3,
dream, 12000km, ñ ng yên, …
11
ð i tư ng : hành vi
Hành vi = t p h p các phương th c
Phương th c: là m t thao tác ho c
ñư c th c hi n b i chính nó, ho c
th c hi n khi có yêu c u t môi
trư ng (thông ñi p t ñ i tư ng khác)
Hành vi ph thu c vào tr ng thái
Ví d :
• m t xe máy có các hành vi: kh i ñ ng,
ch y, …
12
6
7. Giao ti p gi a các ñ i tư ng
Các ñ i tư ng giao ti p v i nhau
G i thông ñi p (message) cho nhau
Thông ñi p
ð i tư ng A ð i tư ng B
Các lo i thông ñi p
• hàm d ng (constructor)
• hàm h y (destructor)
• hàm ch n l a (get)
• hàm s a ñ i (set)
• các hàm ch c năng khác
13
ð i tư ng
Gi a các ñ i tư ng có m i liên k t
(link) v i nhau
Ví d
Nguy n Văn A H c ð i h c ðà N ng
14
7
8. L p
L p là khái ni m dùng ñ mô t m t
t p h p các ñ i tư ng có cùng m t
c u trúc, cùng hành vi và có cùng
nh ng m i quan h v i các ñ i tư ng
khác
L p = các thu c tính + các phương
th c
15
L p
L p là m t bư c tr u tư ng hóa
Tìm ki m các ñi m gi ng nhau, b qua các
ñi m khác nhau c a ñ i tư ng
Person
Name
Age
changeAge
Tr u tư ng hóa làm gi m ñ ph c t p
16
8
9. L p
Quan h gi a các l p: k t h p
M t k t h p là m t t p h p các m i
liên k t gi a các ñ i tư ng
h c
Sinh viên ð ih c
17
L p & ð i tư ng
ð i tư ng là th hi n (instance) c a l p
Giá tr là th hi n c a thu c tính
Liên k t là th hi n c a k t h p
L p ð i tư ng
Thu c tính Giá tr
K th p Liên k t
18
9
10. Các tính ch t c a HðT
Tính ñóng gói (encapsulation)
d li u + x lý d li u = ñ i tư ng
thu c tính + phương th c = l p
Ưu ñi m
H n ch nh hư ng khi có s thay ñ i c p
nh t
Ngăn c n s truy c p thông tin t bên ngoài
Che d u thông tin
19
Các tính ch t c a HðT
Tính th a k (inheritance)
M t l p ñư c xây d ng t m t ho c nhi u
l p khác b ng vi c chia s các thu c tính và
phương th c
L p con th a k các thu c tính và phương
th c t l p cha
T ng quát hóa/chuyên bi t hóa
• T ng quát hóa (generalization): ñ t các tính ch t
chung c a các l p khác nhau vào m t l p cha
• Chuyên bi t hóa (specialization): t o ra m t l p
con có các tính ch t riêng t l p cha
20
10
11. Các tính ch t c a HðT
ðơn th a k : m t l p con ch th a k t m t l p cha duy
nh t
XeÔtô
Chuyên bi t hóa
T ng quát hóa
XeKhách XeT i
L p tr u tư ng hay l p chung: XeÔtô
L p c th hay l p chuyên bi t: XeKhách
L p chuyên bi t có th thay th l p chung trong t t c
các ng d ng. Ví d : Ôtô t i là m t ôtô.
21
Các tính ch t c a HðT
ða th a k : m t l p con th a k t
nhi u l p cha khác nhau
Person
Personnel Student
Reseacher Teacher
Phd candidate
22
11
12. Các tính ch t c a HðT
ða th a k
ð ng ñ tên các thu c tính
X Y
a a
Z
ac aX
ac aY
ða th a k không ñư c ch p nh n b i m t
s ngôn ng : Java
23
Các tính ch t c a HðT
Ưu ñi m c a th a k
Phân lo i các l p: các l p ñư c phân
lo i, s p x p theo m t th b c ñ d
qu n lí
Xây d ng các l p: các l p con ñư c
xây d ng t các l p cha
Ti t ki m th i gian xây d ng, tránh
l p l i thông tin
24
12
13. Các tính ch t c a HðT
Tính ña hình (polymorphism): c a phương th c, t c
là kh năng các phương th c khác nhau ñư c th c
hi n ñ tr l i cùng m t yêu c u
M i l p con th a k ñ c t các phương th c t l p
cha, và các phương th c này có th ñư c s a ñ i
trong l p con ñ th c hi n các ch c năng riêng
trong l p ñó
M t phương th c (cùng m t tên phương th c) có
nhi u d ng (ñ nh nghĩa) khác nhau trong các l p
khác nhau
25
Các tính ch t c a HðT
Ví d tính ña hình
ðaGiác
dienTich()
HìnhVuông HìnhTamGiác
dienTich() dienTich()
26
13
14. N i dung
Khái ni m cơ b n hư ng ñ i tư ng
Bi u ñ ca s d ng
Thi t k c u trúc tĩnh
Thi t k c u trúc ñ ng
Sinh mã
27
Ca s d ng (Use case)
Bư c ñ u tiên c a phân tích yêu c u
là xác ñ nh các ca s d ng c a h
th ng
M t ca s d ng là m t tương tác
gi a h th ng và môi trư ng
T p h p các ca s d ng là mô t toàn
b h th ng c n xây d ng
28
14
15. Ca s d ng
Ví d : phát tri n m t ph n m m th o
văn b n
Các ca s d ng có th :
Nh p văn b n m i
S a văn b n ñã t n t i
T om cl c
Chép ño n văn b n
…
29
Ca s d ng
M t ca s d ng tương ng v i m t ch c
năng c a h th ng dư i góc nhìn c a
ngư i s d ng
M t ca s d ng có th l n ho c nh
M t ca s d ng ch ra làm th nào m t m c
tiêu c a ngư i s d ng ñư c th a mãn
b i h th ng
30
15
16. Ca s d ng
C n phân bi t các m c tiêu c a ngư i s d ng và
các tương tác c a h v i h th ng
M c tiêu: cái mà ngư i s d ng mong ñ i
Tương tác: k thu t cho phép ñáp ng m c tiêu
Ví d
M c tiêu: có ñư c m t văn b n trình bày ñ p
Tương tác: ch n ñ nh d ng trang, ch n font ch , ñ nh
nghĩa các ki u tiêu ñ (heading), …
Th c t , chúng ta xác ñ nh các m c tiêu trư c, sau
ñó ch n t p h p các tương tác ñáp ng các m c
tiêu ñó
31
Ca s d ng
Ví d : c n xây d ng m t h th ng ATM cho phép rút
ti n
Có th có vài tương tác chung trong m t k ch b n sau:
ðưa th vào
Nh p mã PIN
Ch n s ti n rút
Kh ng ñ nh s ti n rút
L y th ra
L y ti n
L y phi u rút ti n
Các tương tác trên có là các ca s d ng không ?
32
16
17. Ca s d ng
Câu tr l i: không.
T i sao ?
Vì ch ng h n “Nh p mã PIN” không ñáp ng m t m c
tiêu nào c a ngư i s d ng.
M c tiêu c a ngư i s d ng là “Rút ti n”, v y ñó nên
là m t ca s d ng.
33
Tác nhân (Actor)
Tác nhân ñóng vai trò m t ngư i s d ng ho c m t
th c th bên ngoài tương tác v i h th ng
Ví d : C n phát tri n h th ng tính ti n siêu th
Các tác nhân có th là: Khách hàng, Ngư i bán hàng,
Ngư i qu n lý, Kho hàng
C n phân bi t: tác nhân (actor) và ngư i s d ng
(user)
Nhi u ngư i s d ng có th tương ng m t tác nhân:
nhi u ngư i bán hàng khác nhau ñóng cùng vai trò
ñ i v i h th ng
M t ngư i s d ng có th tương ng v i nhi u tác
nhân khác nhau: cùng m t ngư i có th ñ ng th i
ñóng hai vai trò là ngư i bán hàng và ngư i qu n lý
34
17
18. Tác nhân
Tác nhân không nh t thi t luôn luôn là
con ngư i
Tác nhân có th là môi trư ng, h
th ng khác, th c th bên ngoài tương
tác v i h th ng
Ví d
Kho hàng là có th m t cơ s d li u
35
ð c t ca s d ng
ð c t ñi n hình c a m t ca s d ng:
Ca s d ng: tên ca s d ng thư ng b t ñ u b i m t
ñ ng t
Các tác nhân: danh sách các tác nhân liên quan
Mô t : tóm t t các x lý c n th c hi n
Ví d
Ca s d ng: Mua hàng
Các tác nhân: Khách hàng, Ngư i bán hàng
Mô t : M t khách hàng sau khi ñã ch n các m t hàng,
mang gi hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n
các m t hàng, thông báo t ng s ti n, thu ti n và tr ti n
còn l i cho khách hàng. Khách hàng mang hàng ñi.
36
18
19. ð c t ca s d ng
ð c t ca s d ng có th thêm:
Tham chi u (reference) ñ n m c liên quan trong ñ c t yêu c u
ði u ki n trư c và ñi u ki n sau khi th c hi n ca s d ng
Ví d
Ca s d ng: Mua hàng
Các tác nhân: Khách hàng, Ngư i bán hàng
Tham chi u: R1.2, R2.3
ði u ki n trư c: Ngư i bán hàng ñã ñăng nh p thành công.
ði u ki n sau: Các m t hàng bán ñã ñư c ghi nh n và ñã ghi
nh n thanh toán ti n.
Mô t : M t khách hàng sau khi ñã ch n các m t hàng, mang gi
hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n các m t hàng,
thông báo t ng s ti n, thu ti n và tr ti n còn l i cho khách hàng.
Khách hàng mang hàng ñi.
37
ð c t ca s d ng
Ngoài ra, ñ i v i m i ca s d ng ta có th xây d ng
m t k ch b n (scenario) hành ñ ng mô t các s
ki n x y ra
K ch b n: g m các s ki n chính và các s ki n
ngo i l
Các s ki n chia làm hai lu ng
Lu ng tương ng v i các tác nhân
Lu ng tương ng v i h th ng
38
19
20. ð c t ca s d ng
Các s ki n chính
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
1. M t khách hàng ñưa
hàng ñã ch n mua ñ n qu y
tính ti n.
2. Ngư i bán hàng ghi nh n 3. Xác ñ nh m t hàng, hi n th
t ng m t hàng. các thông tin và giá m t hàng.
N u m t m t hàng có s S này ñư c hi n th .
lư ng nhi u hơn m t thì
ngư i bán hàng có th nh p
vào m t s .
39
ð c t ca s d ng
Các s ki n chính (ti p)
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
4. Sau khi ñã ghi nh n t t 5. Tính và hi n th t ng s
c các m t hàng, ngư i bán ti n.
hàng báo hi u k t thúc vi c
ghi nh n hàng.
6. Ngư i bán hàng thông
báo t ng s ti n ph i tr cho
khách hàng.
7. Khách hàng tr ti n cho
ngư i bán hàng.
40
20
21. ð c t ca s d ng
Các s ki n chính (ti p)
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
8. Ngư i bán hàng nh p s 9. Hi n th ti n dư và in phi u
ti n khách hàng tr . bán hàng
10. Ngư i bán hàng xác 11. Ghi nh n phiên bán hàng.
nh n s tr ti n, l y ti n dư
tr cho khách hàng và ñưa
cho khách hàng phi u bán
hàng.
12. Khách hàng r i qu y
thu ti n v i túi hàng
41
ð c t ca s d ng
Các s ki n ph
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
3. S xác nh n m t hàng
không ñúng. Hi n th l i.
7. Khách hàng không có ñ
ti n. Ngư i bán hàng h y
b vi c bán.
Lưu ý: ñ nh d ng ñ c t các ca s d ng không c n
thi t ph i ch t ch .
42
21
22. Ca s d ng giai ño n
Elaboration
Xác ñ nh càng nhi u ca s d ng m t cách có th
Không ñi vào quá chi ti t, nh m gi m ñ ph c t p
M t mô t ng n g n v m i ca s d ng là ñ , có
th b qua ph n k ch b n, tham chi u ñ n ñ c t
yêu c u, ñi u ki n trư c và ñi u ki n sau.
B o ñ m r ng các ca s d ng bao quát h t các yêu
c u c a h th ng
43
Bi u ñ ca s d ng
Bi u ñ ca s d ng mô t quan h gi a các
tác nhân và các ca s d ng c a m t h
th ng.
Kí hi u
Use case
Tác nhân K t h p ch s
tham gia c a tác
nhân vào ca s d ng Gi i h n c a
h th ng
44
22
23. Bi u ñ ca s d ng
Ví d
Ghi nh n
Mua hàng
Ngư i bán hàng
Tr hàng
Khách hàng
Ngư i qu n lý Kh i ñ ng
45
Bi u ñ ca s d ng
Các tác nhân có th có quan h th a
k
Ví d
Khách hàng
Cá nhân Công ty
46
23
24. Quan h m r ng
Có th x y ra trư ng h p: m t ca s d ng
tương t v i m t ca s d ng khác, tuy
nhiên nó g m thêm m t s hành ñ ng
Ví d
Ca s d ng: Mua hàng b ng th tín d ng
Các tác nhân: Khách hàng, Ngư i bán hàng
Mô t : M t khách hàng sau khi ñã ch n các m t
hàng, mang gi hàng ñ n qu y thu ti n. Ngư i bán
hàng ghi nh n các m t hàng, thông báo t ng s ti n.
Khách hàng ñưa th vào máy và nh p mã PIN. Khách
hàng nh n phi u bán hàng và mang hàng ñi.
47
Quan h m r ng
Ca s d ng này là m t bi n th c a ca s
d ng “mua hàng”, tuy nhiên thêm vào các
hành ñ ng liên quan ñ n tr ti n b ng th
Ca s d ng “mua hàng b ng th tín d ng”
là m t s m r ng c a ca s d ng “mua
hàng”
48
24
25. Quan h m r ng
Kí hi u
Mua hàng << extends >> Mua hàng b ng th
Quan h m
r ng
N u m t ca s d ng k t h p v i m t tác
nhân, thì t t c các ca s d ng m r ng
ñ u k t h p v i tác nhân ñó
49
Quan h s d ng
Trư ng h p nhi u ca s d ng chia s cùng m t dãy
các hành ñ ng. N u ph n chung là quan tr ng và
hư ng t i m t m c tiêu rõ ràng, như th ta có th xây
d ng m t ca s d ng riêng
Ví d : chúng ta mu n ch p nh n mua hàng tr ti n
m t l n và mua hàng tr góp
Hai ca s d ng “mua hàng tr ti n m t l n” và “mua
hàng tr góp” th c hi n m t dãy các hành ñ ng mà có
th ñư c mô t b i ca s d ng “ghi nh n các m t
hàng”
50
25
26. Quan h s d ng
ð c t c a ca s d ng “ghi nh n các m t
hàng”
Ca s d ng: ghi nh n các m t hàng
Các tác nhân: ngư i bán hàng, khách hàng
Mô t : Khách hàng mang các m t hàng ñ n
qu y tính ti n. Ngư i bán hàng ghi nh n các
m t hàng và thông báo t ng s ti n ph i tr .
51
Quan h s d ng
Kí hi u
Mua hàng tr
<< use >>
m tl n
Ghi nh n
<< use >> các m t hàng
Mua hàng tr góp
Quan h s
d ng
Ngư c v i quan h m r ng, các ca s d ng trong quan h s d ng không
nh t thi t k t h p v i cùng tác nhân.
52
26
27. Cách xác ñ nh các ca s
d ng
Phương pháp ph ng v n
Khó khăn, vì hai ngư i khác nhau ñư c
ph ng v n có th ñưa ra ý ki n khác nhau
Phương pháp h i th o (workshop)
T p h p t t c nh ng ai liên quan ñ n h
th ng ñ th o lu n: các nhà tin h c và khách
hàng (ngư i s d ng)
M i ngư i ñ u ñưa ra ý ki n
53
Cách xác ñ nh các ca s
d ng
Cách ti n hành h i th o
Li t kê t t c các tác nhân có th
Li t kê t t c các ca s d ng có th
Phân tích, bi n ch ng m i ca s d ng
b ng cách vi t ra m t mô t ñơn gi n
Mô hình hóa các ca s d ng và tác
nhân
54
27
28. Cách xác ñ nh các ca s
d ng
Khuy n khích
Không nên c g ng tìm m i ca s
d ng,
• Trong quá trình phát tri n các ca s d ng
s l di n d n
N u không th bi n ch ng cho m t ca
s d ng
• Có th ñó không ph i là ca s d ng
55
S p x p các ca s d ng
Khi t t c các ca s d ng ñã ñư c xác ñ nh
Ti n trình phát tri n g m nhi u bư c l p
M i bư c l p th c hi n thi t k , mã hóa và
ki m th ch m t vài ca s d ng
Làm sao chia các ca s d ng vào các bư c
l p?
56
28
29. S p x p các ca s d ng
L p1 L p2 L p3 …
A B D
C
Các ca s d ng
57
S p x p các ca s d ng
Các ca s d ng nên ñư c th c hi n trư c
Các ca s d ng ch a các r i ro/nguy cơ
Các ca s d ng ki n trúc chính
Các ca s d ng ñòi h i nghiên c u m i,
công ngh m i
Các ca s d ng mà khách hàng quan tâm
hơn
58
29
30. Bài t p 1
Máy rút ti n ATM có các ch c năng chính như sau:
C p phát ti n cho nh ng ai có th ngân hàng (cho
phép rút m t s lư ng ti n b i h th ng thông tin c a
ngân hàng) và nh ng ai có th VISA (cho phép t xa
b i h th ng VISA)
Cho xem ki m tra s ti n tài kho n và b ti n vào tài
kho n b ng ti n m t ho c ngân phi u ñ i v i nh ng
ai có th ngân hàng
T t c các giao tác ñ u ñư c ki m tra an toàn
Ki m tra mã PIN
Mã PIN nh p sai 3 l n thì th s b “nu t”
C n ph i thư ng xuyên n p ti n vào máy, l y ngân phi u và
các th b nu t ra
Xác ñ nh các tác nhân, các ca s d ng và v bi u ñ ca s
59
d ng
Bài t p 1
Các tác nhân
Ngư i có th ngân hàng (bankcard)
Ngư i có th VISA (VISAcard)
Ngư i v n hành máy (operator)
H th ng VISA (VISA)
H th ng thông tin ngân hàng (bank)
60
30
31. Bài t p 1
Các ca s d ng
Rút ti n v i th ngân hàng (withdraw by bankcard)
Rút ti n v i th VISA (withdraw by VISAcard)
Ki m tra mã PIN (identify)
Xem s ti n còn trong tài kho n (balance)
B ti n vào tài kho n b ng ngân phi u ho c ti n m t
(deposit)
N p ti n vào máy (put money)
L y th b nu t trong máy (get cards)
L y ngân phi u trong máy (get cheques)
61
Bài t p 1
withdraw with VISA card
VISAcard VISA
withdraw with bank card
balance
bankcard bank
deposit
<<include>>
<<extend>> identify
deposit by cheque deposit by cash
62
31
32. Bài t p 1
put cash
get cards
operator
get cheques
63
Bài t p 2
Qu n lý ñào t o nhân viên: M t công ty mu n mô t b ng UML
vi c ñào t o nhân viên ñ tin h c hóa m t s công vi c. Vi c ñào
t o ñư c b t ñ u khi ngư i qu n lý ñào t o nh n ñư c yêu c u
ñào t o c a m t nhân viên. Nhân viên này có th xem danh m c
các chuyên ñ ñào t o c a các ñơn v ñào t o ký k t v i công ty.
Yêu c u c a nhân viên ñư c xem xét b i ngư i qu n lý ñào t o và
ngư i qu n lý s tr l i là ch p nh n hay t ch i ñ ngh ñó. Trong
trư ng h p ch p nh n, ngư i qu n lý s xác ñ nh chuyên ñ phù
h p trong danh m c các chuyên ñ , sau ñó g i cho nhân viên n i
dung c a chuyên ñ và danh sách các khóa ñào t o. Nhân viên s
ch n khóa ñào t o và ngư i qu n lý s ñăng ký khóa h c v i ñơn
v ñào t o cho nhân viên. Trong trư ng h p mu n h y b ñăng ký
khóa ñào t o, nhân viên ph i thông báo s m cho ngư i qu n lý
bi t ñ ngư i qu n lý th c hi n h y b . Cu i khóa ñào t o, nhân
viên chuy n phi u ñánh giá k t qu h c v cho công ty. Ngư i
qu n lý s ki m tra hóa ñơn thanh toán ti n c a ñơn v ñào t o.
Xây d ng bi u ñ ca s d ng.
64
32
33. N i dung
Khái ni m cơ b n hư ng ñ i tư ng
Bi u ñ ca s d ng
Thi t k c u trúc tĩnh
Thi t k c u trúc ñ ng
Sinh mã
65
C u trúc tĩnh
Mô hình khái ni m
Bi u ñ l p
Bi u ñ ñ i tư ng
66
33
34. Mô hình khái ni m
Xác ñ nh các “khái ni m” quan tr ng trong h th ng
Mô hình khái ni m (conceptual model) mô t các khái
ni m trong các quan h c a chúng
UML không cung c p mô hình khái ni m, tuy nhiên
cung c p kí hi u và cú pháp ñ bi u di n mô hình ñó
chính là bi u ñ l p
giai ño n này, mô hình khái ni m còn ñư c g i bi u
ñ l p phân tích (analysis class diagram) – lưu ý, khác
v i bi u ñ l p thi t k (design class diagram)
Ngoài ra, mô hình khái ni m cũng còn ñư c g i là mô
hình lĩnh v c (domain model)
67
Mô hình khái ni m
Mô hình khái ni m g m:
Các khái ni m c a lĩnh v c nghiên c u
Các thu c tính và các thao tác c a các
khái ni m này
Các quan h c a các khái ni m này
M t khái ni m là bi u di n m c cao (tr u
tư ng) v m t s v t
M t khái ni m là m t ph n t c a lĩnh v c
nghiên c u, ch không ph i m t ph n t
c a ph n m m hay h th ng
68
34
35. Mô hình khái ni m
Trong mô hình khái ni m, chúng ta s n m b t các khái
ni m nh n bi t b i khách hàng
Ví d các khái ni m ñúng: khái ni m g n li n v i v n ñ
Thang máy trong h th ng ñi u khi n thang máy
Vé máy bay trong h th ng ñ t vé máy may
ð t hàng trong h th ng mua bán hàng qua m ng
Ví d t i v khái ni m: khái ni m g n li n v i gi i pháp
DanhSachKhachHang – b ng các khách hàng
EventTrigger – ti n trình th c hi n duy t h th ng 10 phút
m tl n
69
Mô hình khái ni m
Làm sao bi t ñư c m t khái ni m là ñúng
hay không?
Nguyên t c: “N u khách hàng không hi u
khái ni m, r t có th ñó không ph i là
khái ni m”
Mô hình khái ni m s ñư c chuy n d n
sang bi u ñ l p thi t k trong giai ño n
xây d ng
70
35
36. Xác ñ nh các khái ni m
ð xác ñ nh các khái ni m, d a vào
ñ c t yêu c u, mà c th hơn là d a
vào các ca s d ng
Ví d : ca s d ng “mua hàng”
Các khái ni m có th : KháchHàng,
Ngư iBánHàng, TínhTi n, MuaHàng,
M tHàng, …
71
Xác ñ nh các khái ni m
M ts ng c viên c a khái ni m t ñ c t
ho c ca s d ng:
Các ñ i tư ng v t lý (xe ôtô)
Các v trí, ñ a ñi m (nhà ga)
Các giao tác (thanh toán)
Các vai trò c a con ngư i (ngư i bán)
Các h th ng khác bên ngoài (cơ s d li u t xa)
Danh t tr u tư ng (s khát, ăn u ng)
Các t ch c (ñ i h c)
Các s ki n (c p c u)
Nguyên t c/chính sách
72
36
37. Xác ñ nh các khái ni m
Cách khác ñ xác ñ nh các khái ni m
Các danh t và c m danh t trong ñ c t yêu c u
ho c ñ c t ca s d ng có th là các khái ni m
D a vào hi u bi t và kinh nghi m lo i b các danh t
và c m danh t không là các khái ni m
Ví d : d a vào k ch b n ca s d ng “mua hàng”
G ch chân các danh t và c m danh t
73
Xác ñ nh các khái ni m
Ví d
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
1. M t khách hàng ñưa
hàng ñã ch n mua ñ n qu y
tính ti n.
2. Ngư i bán hàng ghi nh n 3. Xác ñ nh m t hàng, hi n th
t ng m t hàng. các thông tin và giá m t hàng.
N u m t m t hàng có s S này ñư c hi n th .
lư ng nhi u hơn m t thì
ngư i bán hàng có th nh p
vào m t s .
74
37
38. Xác ñ nh các khái ni m
Ví d
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
4. Sau khi ñã ghi nh n t t 5. Tính và hi n th t ng s
c các m t hàng, ngư i bán ti n.
hàng báo hi u k t thúc vi c
ghi nh n hàng.
6. Ngư i bán hàng thông
báo t ng s ti n ph i tr cho
khách hàng.
7. Khách hàng tr ti n cho
ngư i bán hàng.
75
Xác ñ nh các khái ni m
Ví d
Hành ñ ng c a tác nhân Hành ñ ng c a h th ng
8. Ngư i bán hàng nh p s 9. Hi n th ti n dư và in phi u
ti n khách hàng tr . bán hàng
10. Ngư i bán hàng xác 11. Ghi nh n phiên bán hàng.
nh n s tr ti n, l y ti n dư
tr cho khách hàng và ñưa
cho khách hàng phi u bán
hàng.
12. Khách hàng r i qu y
thu ti n v i túi hàng
76
38
39. Xác ñ nh các khái ni m
Phân bi t gi a khái ni m (concept) và thu c tính (attribut)
N u m t ph n t c a lĩnh v c nghiên c u không là m t con
s ho c m t chu i kí t thì có th ñó là m t khái ni m
Ví d : C n xây d ng ph n m m qu n lý các chuy n bay.
ðích c a m t chuy n bay là thu c tính c a m t chuy n bay
hay là m t khái ni m khác ?
Tr l i: ñích m t chuy n bay là m t sân bay, không ph i là
m t con s hay văn b n, ñó là m t khái ni m
77
Xác ñ nh các khái ni m
L p “MôT ”
L p MôT là l p ch a thông tin mô t các
ñ i tư ng khác
• Ví d : L p M tHàng ch a các thông tin v M t
Hàng
M tHàng
mãMH
tênMH: text
giá
s Xêri
màuS c
Phương án 1 (chưa t t)
78
39
40. Xác ñ nh các khái ni m
L p “MôT ”
M tHàng MôT M tHàng
ðư c mô t 1
* mãMH
s Xêri tênMH: text
màuS c giá
Phương án 2 (t t hơn)
79
Xác ñ nh các khái ni m
L p “MôT ”
Khi nào s d ng l p “MôT ”
• Khi c n gi m b t s dư th a, trùng l p thông tin
• Khi c n mô t v ñ i tư ng ñ c l p v i các ñ i
tư ng c th
• Khi c n c n duy trì thông tin v ñ i tư ng cho dù
các ñ i tư ng c th b xóa
80
40
41. Xác ñ nh các khái ni m
L p “MôT ”
Ví d : trong lĩnh v c hàng không, c n mô t
quan h gi a các chuy n bay và các sân
bay
Chuy nBay SânBay
Bay ñ n 1
ngày * tên
gi
s Hi u
Phương án 1
81
Xác ñ nh các khái ni m
L p “MôT ”
MôT Chuy nBay SânBay
Bay ñ n 1
* tên
s Hi u
1
*
Chuy nBay Phương án 2
ngày
gi
82
41
42. Bi u di n khái ni m
S d ng kí hi u c a bi u ñ l p
Môt M tHàng Khái ni m
Các thu c tính
Các thao tác
(chưa xét ñ n
giai ño n này)
83
Thu c tính
Các thu c tính (attribut) c a m t khái ni m bi u di n
d li u c n thi t cho các th hi n (instance) c a khái
ni m
Ví d
Môt M tHàng Khái ni m
mã
Các thu c tính
tên: text
Ki u (không b t bu c)
84
42
43. Thu c tính
M t thu c tính ch ñ i di n cho các d li u liên quan
ñ n khái ni m s h u thu c tính ñó
Ví d
Ngư iBánHàng
tên
Sai s Qu y
Ngư iBánHàng Qu y
ðúng tên s
85
Thu c tính
Cách xác ñ nh các thu c tính
Các con s và chu i kí t là các thu c tính
N u m t tính ch t c a m t khái ni m không
th làm ñư c ñi u gì thì r t có th ñó là
thu c tính
N u nghi ng m t thu c tính là khái ni m, thì
ñơn gi n hãy coi ñó là khái ni m
• Ví d : lương là thu c tính hay khái ni m so v i
khái ni m công nhân ?
• N u nghi ng ñó là khái ni m thì coi như lương và
công nhân là hai khái ni m tách r i
86
43
44. Thao tác
Khái ni m có th có các thao tác (operation)
Thao tác c a khái ni m chính là kh năng
th c hi n c a m t th hi n c a khái ni m
Ví d
M tHàngBán Khái ni m
ngày
Các thu c tính
gi B tð u: Time
t ngTi n(): Integer Thao tác
87
Thao tác
giai ño n elaboration, mô hình khái ni m
có th không nh t thi t ph i mô t các
thao tác c a khái ni m
Giai ño n construction s th c hi n công
vi c này m t cách chi ti t và ñ y ñ
88
44
45. K th p
K t h p (association) bi u di n quan h gi a các th
hi n c a các khái ni m
Ví d : k t h p ch a gi a khái ni m c a hàng và khái
ni m m t hàng
Kí hi u
C aHàng Ch a > M tHàng
K th p
89
K th p
Có th t n t i k t h p c a nhi u hơn hai khái ni m
Ví d
Profession
function
Person work employ Company
90
45
46. K th p
B i s (multiplicity) c a vai trò ch ra s th hi n có
th c a quan h tham gia vào quan h
Các b i s có th
1: ch ñúng m t
1..*: t m t ñ n nhi u
*: t 0 ñ n nhi u
m..n: t m ñ n n
Ví d
1 Ch a > *
C aHàng M tHàng
91
H n ch k t h p
(qualificator)
Gi m s th hi n tham gia vào m t k t h p
Kí hi u
A key B
qualificator
M i th hi n A v i giá tr key xác ñ nh m t t p con các
th hi n B tham gia vào k t h p
92
46
47. H n ch k t h p
(qualificator)
Ví d
Phân bi t các sinh viên h c t i m t ñ i h c d a vào
mã s sinh viên
ð iH c No sinh viên SinhViên
Phân bi t các m t hàng thu c vào m t danh m c m t
hàng d a vào mã s m t hàng
DanhM cM tHàng ID M tHàng
93
Chuyên bi t hóa
M t khái ni m có th v cơ b n gi ng v i m t khái
ni m khác, ch có m t vài s khác nhau trên m t s
tính ch t (thu c tính, thao tác, các k t h p)
Khái ni m th nh t ñư c g i là chuyên bi t hóa
(specialization) c a khái ni m th hai
Khái ni m th nh t ñư c g i là khái ni m chuyên bi t
hóa (specialized concept), khái ni m th hai ñư c g i
là khái ni m chung (general concept)
94
47
48. Chuyên bi t hóa
Kí hi u
general concept
specialized concept specialized concept
95
Th a k
Khái ni m chuyên bi t hóa th a k (inheritance) t t c
các tính ch t c a c a khái ni m chung. Các tính ch t
này bao g m:
Các thu c tính
Các thao tác
Các k t h p v i khái ni m khác
96
48
49. Th a k
Ví d
ThanhToán 1 thanh toán > 1 PhiênBánHàng
t ng: Integer
ThanhToánB ngTi nM t ThanhToánB ngTh
Các khái ni m “ThanhToánB ngTi nM t” và
“ThanhToánB ngTh ” ñ u có thu c tính “t ng” và k t
h p “thanh toán” v i khái ni m “PhiênBánHàng”
97
Khái ni m tr u tư ng
Tương t như l p, khái ni m tr u tư ng không có các
th hi n
ThanhToán 1 thanh toán > 1 PhiênBánHàng
Khái ni m tr u tư ng
ñư c vi t in nghiêng t ng: Integer
ThanhToánB ngTi nM t ThanhToánB ngTh
Lưu ý, trong tài li u vi t tay có th vi t {abstract} dư i
tên khái ni m tr u tư ng
98
49
50. Quan h h p thành và quan
h k tt p
Quan h h p thành (composition) và quan h k t
t p (agregation) là hai k t h p ñ c bi t ch s s
h u
Quan h h p thành: m t khái ni m thành ph n ch
thu c vào m t khái ni m toàn ph n
ToànPh n M tPh n
Quan h k t t p: m t khái ni m thành ph n có th
thu c vào nhi u khái ni m toàn ph n
ToànPh n M tPh n
99
Quan h h p thành và quan
h k tt p
3 1
Point
Ví d
Triangle Circle
1 Style 1 radius
color
isFilled
M t th hi n c a “Point” không th ñ ng th i thu c
vào m t th hi n c a “Triangle” và m t th hi n c a
“Circle”
100
50
51. Quan h h p thành và quan
h k tt p
Quan h h p thành nh n m nh s s h u: n u khái
ni m toàn ph n b h y b thì khái ni m thành ph n
cũng b h y b theo
Trong trư ng h p, th t c a các khái ni m thành
ph n là quan tr ng, thì thêm vào k t h p ñi u ki n
{ordered}
Ví d
{ordered}
Polygon 3..*
Point
101
Khái ni m k t h p
Có th mô t các tính ch t c a m t k t h p
gi a hai khái ni m b i m t khái ni m k t
h p (association concept)
Ví d
work employ
Person 1..* * Company
Employment
Khái ni m k t h p
begin, end: Date
102
51
52. Bài t p 1
Xây d ng mô hình khái ni m c a h
th ng/ph n m m bán hàng t i siêu th
Ph n m m bán hàng s d ng t i siêu th
nh m giúp ghi nh n ho t ñ ng bán hàng, x
lý các thanh toán v i khách hàng. Ph n
m m ñư c s d ng b i ngư i bán hàng và
ñư c qu n lý b i ngư i qu n lý siêu th .
Ph n m m nh m t ñ ng hóa công vi c c a
ngư i bán hàng t i qu y thu ti n.
103
Bài t p 1
1
DongHang * MatHang * MoTaMatHang
1
1..* * *
1 1 1
1..* 1 * 1
PhienBanHang CuaHang DanhMucMatHang
1 1 1 1..*
* 1
1 1..* HeThongBanHang
1 1 1
QuayTinhTien
ThanhToan KháchHàng 1
1
1
NguoiQuanLy
Ngư iBán
NhânViên
104
52
53. Bài t p 2
Qu n lý ñào t o trung tâm tin h c: M t công ty mu n mô t
b ng UML vi c ñào t o nhân viên ñ tin h c hóa m t s công vi c.
Vi c ñào t o ñư c b t ñ u khi ngư i qu n lý ñào t o nh n ñư c
yêu c u ñào t o c a m t nhân viên. Nhân viên này có th xem
danh m c các chuyên ñ ñào t o c a các ñơn v ñào t o ký k t v i
công ty. Yêu c u c a nhân viên ñư c xem xét b i ngư i qu n lý
ñào t o và ngư i qu n lý s tr l i là ch p nh n hay t ch i ñ
ngh ñó. Trong trư ng h p ch p nh n, ngư i qu n lý s xác ñ nh
chuyên ñ phù h p trong danh m c các chuyên ñ , sau ñó g i cho
nhân viên n i dung c a chuyên ñ và danh sách các khóa ñào t o.
Nhân viên s ch n khóa ñào t o và ngư i qu n lý s ñăng ký khóa
h c v i ñơn v ñào t o cho nhân viên. Trong trư ng h p mu n h y
b ñăng ký khóa ñào t o, nhân viên ph i thông báo s m cho ngư i
qu n lý bi t ñ ngư i qu n lý th c hi n h y b . Cu i khóa ñào t o,
nhân viên chuy n phi u ñánh giá k t qu h c v cho công ty.
Ngư i qu n lý s ki m tra hóa ñơn thanh toán ti n c a ñơn v ñào
t o.
Xây d ng bi u mô hình khái ni m.
105
Bi u ñ l p
Bi u ñ l p ñ nh nghĩa:
Các l p (class)
• Các thu c tính (attribut) c a l p: các
bi n và ki u c a chúng
• Các thao tác (operation) c a l p: các
phương th c (method), các tham ñ i và
có th giá tr tr v
Các quan h gi a các l p
106
53
54. Bi u ñ l p
Bi u ñ l p có cùng quy t c cú pháp v i mô hình khái
ni m
Th c ra, mô hình khái ni m s d ng các cú pháp c a
bi u ñ l p trong UML
T t c các kí hi u và quy t c (ñã trình bày) ñ i v i
mô hình khái ni m ñ u ñư c s d ng ñ xây
d ng bi u ñ l p
Bi u ñ l p ñư c xây d ng d a trên mô hình khái
ni m
Các l p có th ch y u là các khái ni m ho c các
thành ph n khác
Bi u ñ l p s là n n t ng cho bư c mã hóa
107
Bi u ñ l p
ð i v i bi u ñ l p, m i thu c tính hay m i phương
th c có th có thêm m c kh ki n – kh năng nhìn
th y (visibility)
Kí hi u
“–” m c riêng (priviate), thu c tính hay phương th c
ch ñư c nhìn th y b i ñ i tư ng c a l p ñó
“#” m c b o v (protected), thu c tính hay phương
th c ch ñư c nhìn th y b i ñ i tư ng c a l p ñó và
ñ i tư ng c a các l p th a k l p ñó
“+” m c chung (public), thu c tính hay phương th c
ch ñư c nhìn th y b i ñ i tư ng c a t t c các l p
108
54
55. Bi u ñ l p
Ví d Tên l p
Shape
Thu c tính
– origin : Point
+ setOrigin(p : Point) Phương th c
+ getOrigin() : Point)
+ move(p : Point)
+ resize(s : Scale)
+ display()
# pointInShape(p : Point) : Boolean
109
Bi u ñ l p
Thu c tính d n xu t (derived attribut) là các thu c tính
c a bi u ñ l p mà có th suy ra t các thu c tính
khác.
Kí hi u: thu c tính d n xu t b t ñ u b i “/”, m t ràng
bu c có th ñi kèm ñ gi i thích s d n xu t
Ví d
Person
Ràng bu c
name Thu c tính d n xu t
birthDate
{age = CurrentDate – birthDate} / age
110
55
56. Bi u ñ l p
Các quan h gi a các l p
Quan h k t h p (association)
Quan h chuyên bi t hóa/t ng quát hóa
(specialization/generalization)
Quan h h p thành (composition)
Quan h k t t p (agregation)
Quan h ph thu c (dependence)
111
Bi u ñ l p
Quan h k t h p (association) Quan h k t h p
1 Ch a > * M tHàng
Qu yHàng
Quan h chuyên bi t hóa/t ng quát hóa
(specialization/generalization)
NhânViên Quan h t ng quát hóa
Ngư iBánHàng Ngư iQu nLý
112
56
57. Bi u ñ l p
Quan h k t t p (agregation)
Quan h
0..*
Company * Person
Quan h h p thành (composition)
Quan h
1
DanhM cM tHàng * M tHàng
113
Bi u ñ l p
Quan h ph thu c (dependence): mô t
m t l p ph thu c vào l p khác
Ví d
Quan h ph th c
Circle Point
center : Point
114
57
58. Bi u ñ l p
Ví d : chuy n ñ i mô hình khái ni m
thành bi u ñ l p
Gi s mô hình khái ni m
ThanhToán 1 thanh toán > 1 PhiênBánHàng
ThanhToánB ngTi nM t ThanhToánB ngTh
115
Bi u ñ l p
Chi ti t các thu c tính
ThanhToán 1 thanh toán > 1 PhiênBánHàng
t ng : Integer
ThanhToánB ngTi nM t ThanhToánB ngTh
116
58
59. Bi u ñ l p
Chi ti t các phương th c
ThanhToán 1 thanh toán > 1 PhiênBánHàng
t ng : Integer tínhT ng() : Integer
ThanhToánB ngTi nM t ThanhToánB ngTh
nh nTi n() tr VàoTh ()
117
Bi u ñ l p
Xác ñ nh các m c kh ki n
ThanhToán 1 thanh toán > 1 PhiênBánHàng
# t ng : Integer + tínhT ng() : Integer
ThanhToánB ngTi nM t ThanhToánB ngTh
+ nh nTi n() + tr VàoTh ()
118
59
60. N i dung
Khái ni m cơ b n hư ng ñ i tư ng
Bi u ñ ca s d ng
Thi t k c u trúc tĩnh
Thi t k c u trúc ñ ng
Sinh mã
119
C u trúc ñ ng
Bi u ñ tương tác
Bi u ñ tu n t
Bi u ñ c ng tác
120
60
61. Bi u ñ tương tác
Bi u ñ tương tác mô t hành vi c a h th ng
M i bi u ñ tương tác tương ng m t tác v ñư c
th c hi n b i m t s các ñ i tư ng
Bi u ñ tương tác xây d ng d a trên n n t ng c a
bi u ñ ho t ñ ng và bi u ñ tr ng thái
Bi u ñ tương tác mô t các hành ñ ng c a các ñ i
tư ng ñ th c hi n m t tác v . Các hành ñ ng c a
ñ i tư ng bao g m:
g i các thông ñi p (message) gi a các ñ i tư ng
t o (create) và h y (destroy) các ñ i tư ng
121
Bi u ñ tu n t
Bi u ñ tu n t (sequence diagram) bi u
di n s tương tác gi a các ñ i tư ng b ng
vi c nh n m nh th t trao ñ i thông ñi p
gi a các ñ i tư ng
Bi u ñ tu n t g m:
các ñ i tư ng
các thông ñi p trao ñ i gi a các ñ i tư ng
122
61
62. Bi u ñ tu n t
M i ñ i tư ng có m t ñư ng sinh t n (lifeline) bi u di n
th i gian t n t i c a nó.
Kí hi u ð i tư ng
object object:Class :Class
ðư ng sinh t n
123
Bi u ñ tu n t
Th i gian ho t ñ ng (activation) là
th i gian mà ñ i tư ng ñang th c
hi n m t thao tác
Kí hi u
object
Th i gian ho t ñ ng
124
62
63. Bi u ñ tu n t
M t thông ñi p ñ c t trao ñ i gi a
các ñ i tư ng
Các lo i thông ñi p
G i (call)
Tr v (return)
G i (send)
T o (create)
H y (destroy)
125
Bi u ñ tu n t
Thông ñi p g i g i m t phương th c/thao tác trên ñ i tư ng
ð i tư ng g i ph i ñ i thông ñi p ñư c th c hi n k t thúc
m i có th th c hi n công vi c khác (thông ñi p ñ ng b )
M t ñ i tư ng có th g i thông ñi p cho chính nó
Kí hi u
object A object B object
message()
G i thông ñi p g i G i cho chính nó
126
63
64. Bi u ñ tu n t
Thông ñi p tr v tr v m t giá tr
cho ñ i tư ng g i
Kí hi u
Object A Object B
message()
value
Thông ñi p tr v
127
Bi u ñ tu n t
Thông ñi p g i g i m t tín hi u ñ n m t ñ i tư ng
Khác v i thông ñi p g i, khi ñ i tương g i thông ñi p
g i nó không ch ñ i, mà ti p t c th c hi n công vi c
khác (thông ñi p không ñ ng b )
Kí hi u
object A object B
message()
Thông ñi p g i
128
64
65. Bi u ñ tu n t
Thông ñi p t o g i phương th c t o m t ñ i tư ng
Thông ñi p h y g i phương th c h y m t ñ i tư ng
Kí hi u
Thông ñi p t o
object A
<<create>>
object B
<<destroy>>
Thông ñi p h y
129
Bi u ñ tu n t
Ví d
public class A
{
:A private B objB;
public void msg1()
{
msg1 <<create>> objB = new B();
:B
objB.msg2();
msg2 objB.msg3();
}
}
msg3
public class B
{
…
public void msg2() { … }
public void msg3() { … }
}
130
65
66. Bi u ñ tu n t
M t thông ñi p có th ñư c g i l p
nhi u l n
Kí hi u G i l p thông ñi p 10 l n
object A object B
*[1..10]message()
for(i = 1; i<= 10; i++)
{
objectB.message()
}
131
Bi u ñ tu n t
M t thông ñi p có th ñư c g i l p
nhi u l n ph thu c vào m t ñi u ki n
Kí hi u G i l p thông ñi p trong khi C ñúng
object A object B
*[C]message()
while(C)
{
objectB.message()
}
132
66
67. Bi u ñ tu n t
M t thông ñi p có th ñư c g i ph
thu c vào ñi u ki n r nhánh
Kí hi u
object A object B object C
[C]message()
if(C)
objectB.message();
else [not C]message()
objectC.message();
133
Bi u ñ tu n t
M t thông ñi p có th ñư c g i ñ
quy
Kí hi u
Thông ñi p ñ quy
:BinaryTree
print()
print()
134
67
68. Bi u ñ tu n t
Ví d
:TàiLi u :MáyFax :Dâyði nTho i
g i()
nh cMáy()
âmM i
b mS (s )
ñãK tN i ñãK tN i
g i(trang)
chuy n(trang)
135
Bi u ñ tu n t
Ví d
:Ngư iBán :MáyTínhTi n :PhiênBánHàng
thanhToán(s Ti n)
thanhToán(s Ti n) <<create>> :ThanhToán
thanhToán(s Ti n)
ti nDư
ti nDư
tr Ti nDư() <<destroy>>
136
68
69. Bi u ñ tu n t
Gi a bi u ñ tương tác và bi u ñ l p và có m i quan
h ch t ch v i nhau
Ví d
MáyTínhTi n PhiênBánHàng
m ThanhToán() thanhToán()
:MáyTínhTi n :PhiênBánHàng
m ThanhToán(s Ti n) thanhToán(s Ti n)
137
Bi u ñ c ng tác
Bi u ñ c ng tác (collaboration diagram) mô t s
tương tác gi a các ñ i tư ng b ng vi c nh n m nh
c u trúc k t h p gi a các ñ i tư ng và nh ng thông
ñi p trao ñ i gi a chúng
Bi u ñ c ng tác là s m r ng c a bi u ñ ñ i tư ng
Bi u ñ c ng tác ch ra
th t g i các thông ñi p: m i thông ñi p ñư c gán
m t s tu n t
ñi u ki n g i các thông ñi p
138
69
70. Bi u ñ c ng tác
C u trúc thông ñi p ñư c mô t d ng t ng quát như sau:
precondition / condition sequence * *|| iteration : result := message(parameters)
“precondition /”: danh sách s tu n t c a các thông ñi p trư c
thông ñi p c n g i. Thông ñi p ch ñư c g i ñi khi t t c các thông
ñi p trư c nó ñã ñư c g i ñi.
“condition”: thông ñi p ch ñư c g i ñi khi ñi u ki n ñư c th a
mãn.
“sequence”: s tu n t c a thông ñi p c n g i. Ví d , vi c g i
thông ñi p 1.3.5 theo sau vi c g i thông ñi p 1.3.4, c hai thông
ñi p này n m trong lu ng 1.3.
“*”: ch ra thông ñi p ñư c g i ñi nhi u l n m t cách tu n t .
“*||”: ch ra thông ñi p ñư c g i ñi nhi u l n m t cách ñ ng th i.
“iteration”: ch ra s l n g i thông ñi p m t cách tu n t ho c ñ ng
th i
“result”: ch ra giá tr tr v c a thông ñi p.
“message”: tên thông ñi p
“parameters”: danh sách các tham s c a thông ñi p.
139
Bi u ñ c ng tác
Ví d
4 : hello() : thông ñi p có s tu n t là 4.
[time = 12h] 1 : lunch() : thông ñi p này ch
ñư c g i ñi n u là lúc 12h.
1.3.5 * call() : thông ñi p này ñư c g i ñi
nhi u l n.
3 / *|| [i:= 1..5] 1.2 : close() : thông ñi p này
ñư c g i ñi năm l n m t cách ñ ng th i và
sau thông ñi p s 3.
1.2, 2.3 / [t < 10] 3.1 name = getName() :
thông ñi p này ñư c g i ñi sau các thông
ñi p 1.2, 2.3 và v i ñi u ki n t<10.
140
70
71. Bi u ñ c ng tác
Ví d bi u ñ c ng tác
:Ngư iBán :ThanhToán
1 : thanhToán(s Ti n)
1.1.1 : <<create>>
2 : tr Ti nDư()
1.1.3 : ti nDư() 1.1.2 : thanhToán(s Ti n)
1.1.4 : <<desstroy>>
1.2 ti nDư()
:H Th ng :PhiênBánHàng
1.1 : thanhToán(s Ti n)
141
Bi u ñ tương tác
Bài t p 1: Máy rút ti n ATM
Xây d ng bi u ñ tu n t cho ca s d ng
rút ti n trong trư ng h p thành công
Xây d ng bi u ñ tu n t cho ca s d ng
xem s ti n dư trong tài kho n
142
71
72. N i dung
Khái ni m cơ b n hư ng ñ i tư ng
Bi u ñ ca s d ng
Thi t k c u trúc tĩnh
Thi t k c u trúc ñ ng
Sinh mã
143
Sinh mã
Chuy n các mô hình thi t k sang mã chương trình
(C++, Java, …)
Mã chương trình hư ng ñ i tư ng
ð nh nghĩa các l p và giao di n
ð nh nghĩa các phương th c
Các bi u ñ l p s ñư c chuy n sang mã
chương trình ñ nh nghĩa các l p tương ng
Các bi u ñ tương tác s ñư c chuy n thành mã
chương trình ñ nh nghĩa các phương th c
Các bi u ñ khác s h tr cho quá trình mã hóa
144
72
73. Sinh mã
Ví d : bi u ñ l p
orderListe OneOrder contains >
1..* *
− quantity: Integer
1 1
ListOfOrders AirPlane
+ subtotal() : double
− datePlaced − price : float
− clientID
+ total() : double + getPrice() : float
145
Sinh mã
Mã l p OneOrder
public class OneOrder
OneOrder
{
public double subtotal()
− quantity: Integer {
}
+ subtotal() : double private int quantity;
}
146
73
74. Sinh mã
Mã l p OneOrder
OneOrder contains >
public class OneOrder
* {
− quantity: Integer public double subtotal()
1
{
AirPlane
}
+ subtotal() : double
− price : float private int quantity;
private AirPlane airPlane;
}
+ getPrice() : float
147
Sinh mã
Mã l p ListOfOrders
orderListe OneOrder
1..* public class ListOfOrder
{
− quantity: Integer public double total()
1
{
ListOfOrders
}
+ subtotal() : double
− datePlaced private Date datePlaced;
private int clientID;
− clientID private Vector orderList;
}
+ total() : double
148
74
75. Sinh mã
Bi u ñ c ng tác th c hi n phương th c
total()
1 : total() 2 : *[for each] subtotal()
:ListOfOrders :OneOrder
3 : getPrice()
:AirPlane
149
Sinh mã
Mã phương th c total()
1 : total() 2 : *[for each] subtotal()
:ListOfOrders :OneOrder
3 : getPrice()
public double total()
{
} :AirPlane
150
75
76. Sinh mã
Mã phương th c total()
1 : total() 2 : *[for each] subtotal()
:ListOfOrders :OneOrder
public double total() 3 : getPrice()
{
double sum = 0;
for (int i=0; i<orderList.size(); i++)
sum += orderList.elementAt(i).subtotal();
return sum; :AirPlane
}
151
Sinh mã
Mã phương th c subTotal()
1 : total() 2 : *[for each] subtotal()
:ListOfOrders :OneOrder
public double subtotal() 3 : getPrice()
{
return (quantity * airplane.getPrice());
}
:AirPlane
152
76
77. Sinh mã
Mã phương th c getPrice()
1 : total() 2 : *[for each] subtotal()
:ListOfOrders :OneOrder
public float getPrice() 3 : getPrice()
{
return price;
}
:AirPlane
153
Công c
Ph n m m Rational Rose, Poisedon
for UML, Umbrello
Thi t k các bi u ñ UML
Sinh mã chương trình
• C++
• Java
• VB
• Ada
154
77