Tài liệu thiết kế hướng đối tượng sử dụng UML
Trang 6th ự 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, …
Trang 7Giao 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
Trang 8changeAge
Trang 10Ng ă n c ả n s ự truy c ậ p thông tin t ừ bên ngoài
Che d ấ u thông tin
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ấ
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
Trang 11ðơn thừa kế: một lớp con chỉthừa kếtừmột lớp cha duy
nhất
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ả
Trang 12Ya
Trang 13cha, 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
Trang 16C ầ 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
Trang 17tiê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
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
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ý
Trang 18Tá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
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
Trang 19ðặ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 ầ
ð 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
Trang 20Số này ñược hiển thị.
Hành ñộng của tác nhân Hành ñộng của hệ thống
Trang 21thu tiền với túi hàng
9.Hiển thị tiền dư và in phiếubán hàng
Hành ñộng của tác nhân Hành ñộng của hệ thống
Lưu ý: ñịnh dạng ñặc tả các ca sử dụng không cần
thiết phải chặt chẽ.
Trang 22th ể 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 ả ñả m r ằ ng các ca s ử d ụ ng bao quát h ế t các yêu
hệ thống
Trang 24Mô 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
Trang 26Ghi nhậncác mặt hàng
<< use >>
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
Trang 28Ti ế 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?
Trang 30Bà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ủ
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ế ñố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à
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)
Trang 31Bà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)
Trang 32Quả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 ạ ñượ c b ắ t ñầ u khi ng ườ i qu ả n lý ñ ào t ạ o nh ậ ñượ c yêu c ầ
ñ à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 ế ñ á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 ủ ñơ n v ị ñ ào t ạ o.
Xây d ự ng bi ể ñồ ca s ử d ng.
Trang 34Xá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ñ ạn này, mô hình khái niệm cònñược gọi biể
ñồlớp phân tích (analysis class diagram) – lưu ý, khác
với biể ñồ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ô
Trang 35Thang 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
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
Trang 36Cá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
Trang 37Dự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
Số này ñược hiển thị
Trang 38Hành ñộng của tác nhân Hành ñộng của hệ thống
thu tiền với túi hàng
9.Hiển thị tiền dư và in phiếubán hàng
11 Ghi nhận phiên bán hàng
Hành ñộng của tác nhân Hành ñộng của hệ thống
Trang 39Phâ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
Phương án 1 (chưa tốt)
Trang 40* ðược mô tả 1
80
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
Trang 41L ớ 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
ngày
giờ
*
1
Trang 42Các thuộc tính (attribut) của một khái niệm biểu diễ
dữliệu cần thiết cho các thểhiện (instance) của khái
Trang 43N ế 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
Trang 44Ở 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 ñủ
Trang 46Mỗ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
B
A key
qualificator
Trang 47MặtHàng DanhMụcMặtHàng ID
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)
Trang 49Lư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
ñược viết in nghiêng
Trang 50radius
1 3
1 1
Trang 51Trong 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ệ
Employment
begin, end: Date
Khái niệm kết hợp
Trang 52* 1 * 1
1 1 1
NhânViên
MatHang
QuayTinhTien 1
*
HeThongBanHang
1 1 *
1 1 *
Trang 53Bà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 ạ ñượ c b ắ t ñầ u khi ng ườ i qu ả n lý ñ ào t ạ o nh ậ ñượ c
yêu c ầ ñ à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 ế ñ á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 ủ ñơ n v ị ñ ào
Trang 55/ age
Thuộc tính dẫn xuất
{age = CurrentDate – birthDate}
Ràng buộc
Trang 56Quan hệ kết hợp
NgườiQuảnLýNgườiBánHàng
Quan hệ tổng quát hóaNhânViên
Trang 57Quan hệ phụ thộc
center : Point
Trang 61Bi ể ñồ t ươ ng tác mô t ả hành vi củ a h ệ th ố ng
M ỗ i bi ể ñồ 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 ể ñồ t ươ ng tác xây d ự ng d ự a trên n ề n t ả ng c ủ
bi ể ñồ ho ạ t ñộ ng và bi ể u ñồ tr ạ ng thái
Bi ể ñồ 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 ủ
ñố 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
Trang 63Thô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
Trang 65Bi ể 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
private B objB;
public void msg1() {
objB = new B();
objB.msg2();
objB.msg3();
} } public class B {
…
public void msg2() { … } public void msg3() { … }
}
Trang 70C ấ u trúc thông ñ i ệ ñượ 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
“ * ”: 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 ệ
“ parameters ”: danh sách các tham s ố c ủ a thông ñ i ệ p.
Trang 72Cá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 ể ñồ khác s ẽ h tr ợ cho quá trình mã hóa
Trang 73−price : float+ getPrice() : float
}
Trang 74private AirPlane airPlane;
*1contains >
private int clientID;
private Vector orderList;
1
1 *
orderListe
Trang 75}
Trang 76return (quantity * airplane.getPrice());
}
Trang 77Ph ầ n m ề m Rational Rose, Poisedon
for UML, Umbrello