CHƯƠNG 8:
CHƯƠNG 8:
Hiên th c ho a Use Case ̣́ ự
Hiên th c ho a Use Case ̣́ ự
(Realization Use Case)
(Realization Use Case)
PTTKHT bang UML - BM HTTT 1
Nôi dung ̣
Nôi dung ̣
PTTKHT bang UML - BM HTTT 2
Hiên th c ho a use casẹ́ ự
Mô hi nh domain va hiên th c ho a UC̀ ̀ ̣́ ự
L p y niêm va l p thiê t kế ́ ̀ ́ ́ ́ơ ̣ ơ
Nhiêm vu va methoḍ̀ ̣
Nhiêm vu va l c đô t ng ta c̀ ̀ ̣́ ̣ ượ ươ
Case study 1: Hê thô ng POṢ́
◦ Thiê t kê đô i t ng makeNewSalé ́ ́ ượ
◦ Thiê t kê đô i t ng enterIteḿ ́ ́ ượ
◦ Thiê t kê đô i t ng endSalé ́ ́ ượ
◦ Thiê t kê đô i t ng makePayment́ ́ ́ ượ
◦ Thiê t kê đô i t ng StartUṕ ́ ́ ượ
Hiên th c ho a UĆ̣ ự
Hiên th c ho a UĆ̣ ự
UC realization
UC realization
Hiên th c ho a UC co nghi a la mô ta ́ ́ ̃ ̣̀ ự ̉
la m thê na o đê 1 use case đ c hiên ̀ ́ ̀ ̉ ượ ̣
th c ho a trong mô hi nh thiê t kê theo ́ ̀ ́ ́ự
nghi a la ca c đô i t ng công ta c nhau. ̃ ̀ ́ ́ ́ượ ̣
Chi nh xa c h n, ng i thiê t kê co thê ́ ́ ̀ ́ ́ ́ơ ươ ̉
mô ta viêc thiê t kê cua môt hay nhiê u ́ ́ ̀̉ ̣ ̉ ̣
scenario cua use case, mô i thiê t kê na y ̃ ́ ́ ̀̉
đ c goi la hiên th c ho a use case. ̀ ́ượ ̣ ̣ ự
PTTKHT bang UML - BM HTTT 3
Hiên th c ho a UĆ̣ ự
Hiên th c ho a UĆ̣ ự
Viêc hiên th c ho a use case đ c du ng ́ ̣̀ ̣ ự ượ
đê kê t nô i gi a ca c yêu câ u đ c ́ ́ ̃ ́ ̀̉ ư ượ
biêu diê n b i use case v i viêc thiê t kê ̃ ́ ́ ́̉ ở ơ ̣
ca c đô i t ng thoa ma n ca c yêu câ u ́ ́ ̃ ́ ̀ượ ̉
đo . ́
L c đô t ng ta c nh môt ngôn ng ̀ ́ ̃ượ ươ ư ̣ ư
thông dung đê minh hoa viêc hiên th c ̣ ̉ ̣ ̣ ̣ ự
hoa use casé
PTTKHT bang UML - BM HTTT 4
Mô hi nh Domain va hiên th c ho a ̀ ̀ ̣́ ự
Mô hi nh Domain va hiên th c ho a ̀ ̀ ̣́ ự
UC
UC
Môt sô đô i t ng phâ n mê m ́ ́ ̀ ̣̀ ượ
(software objects ) t ng ta c v i nhau ́ ́ươ ơ
thông qua ca c thông điêp trong l c đô ́ ̣̀ ượ
t ng ta c đ c ru t ra t mô hi nh ́ ́ ̀ ̀ươ ượ ư
domain, chăng han nh l p y niêm Sale ́ ́̉ ̣ ư ơ ̣
đ c lâ y theo l p thiê t kê Sale. ́ ́ ́ ́ượ ơ
Viêc chon đê đăt nhiêm vu thi ch h p ̣́ ̣ ̉ ̣ ̣ ̣ ợ
va o ca c l p môt phâ n d a theo thông ̀ ́ ́ ̀ơ ̣ ự
tin trong mô hi nh domain.̀
PTTKHT bang UML - BM HTTT 5
Mô hi nh Domain va hiên th c ho a ̀ ̀ ̣́ ự
Mô hi nh Domain va hiên th c ho a ̀ ̀ ̣́ ự
UC
UC
Co thê mô hi nh domain hiên tai ch a ́ ̀̉ ̣ ̣ ư
đâ y đu, vâ n co n lô i va sai so t. ̀ ̃ ̀ ̃ ̀ ́̉
Ca c l p y niêm m i se đ c kha m ́ ́ ́ ́ ̃ ́ơ ̣ ơ ượ
pha trong lu c hiên th c ho a use case. ́ ́ ̣́ ự
PTTKHT bang UML - BM HTTT 6
L p y niêm va l p thiê t kế ́ ̀ ́ ́ ́ơ ̣ ơ
L p y niêm va l p thiê t kế ́ ̀ ́ ́ ́ơ ̣ ơ
(Conceptual class and design class)
(Conceptual class and design class)
Mô hi nh Domain không mô ta l p thiê t kê ̀ ́ ́ ́̉ ơ
nh ng đ c du ng la m c s đê suy ra ca c l p ̀ ̀ ́ ́ư ượ ơ ở ̉ ơ
thiê t kê . ́ ́
Trong lu c ve l c đô t ng ta c, nha pha t ́ ̃ ̀ ́ ̀ ́ượ ươ
triên co thê d a va o mô hi nh domain đê đăt ́ ̀ ̀̉ ̉ ự ̉ ̣
tên l p thiê t kê , nh đo thu hep khoang ca ch ́ ́ ́ ̀ ́ ́ơ ơ ̣ ̉
gi a phâ n mê m va ca c kha i niêm thê gi i ̃ ̀ ̀ ̀ ́ ́ ́ ́ư ̣ ơ
th c. ự
Ca c l p thiê t kê trong mô hi nh thiê t kê ́ ́ ́ ́ ̀ ́ ́ơ
không nhâ t thiê t buôc phai tru ng tên hoa n ́ ́ ̀ ̣̀ ̉
toa n v i ca c l p trong mô hi nh domain. ̀ ́ ́ ́ ̀ơ ơ
PTTKHT bang UML - BM HTTT 7
L p y niêm va l p thiê t kế ́ ̀ ́ ́ ́ơ ̣ ơ
L p y niêm va l p thiê t kế ́ ̀ ́ ́ ́ơ ̣ ơ
PTTKHT bang UML - BM HTTT 8
Thiê t kê đô i t nǵ ́ ́ ượ
Thiê t kê đô i t nǵ ́ ́ ượ
Hai ki n th c c b n c n ph i có đ ế ứ ơ ả ầ ả ể
thi t k đ i t ng là:ế ế ố ượ
◦
Các nguyên t c gán trách nhi m cho đ i ắ ệ ố
t ng (GRASP)ượ
◦
Các m u thi t k (design pattern)ẫ ế ế
Thiê t kê đô i t ng co nghi a la phai ́ ́ ́ ́ ̃ ̀ượ ̉
quyê t đinh xem method na y nên thuôc ́ ̣̀ ̣
l p na o, đô i t ng kia nên t ng ta c ́ ̀ ́ ́ơ ượ ươ
ra sao.
PTTKHT bang UML - BM HTTT 9
Nhiêm vu va methoḍ̀ ̣
Nhiêm vu va methoḍ̀ ̣
UML đinh nghi a nhiêm vu (responsibility) ̣̃ ̣ ̣
la “ a contract or obligation of a ̀
classifier”.
Nhiêm vu co liên quan đê n nh ng bôn ́ ́ ̣̃ ̣ ư ̉
phân cua 1 đô i t ng na o đo thông qua ́ ̀ ̣́ ̉ ượ
ha nh vi cua no . Nhiêm vu cua môt đô i ̀ ́ ́̉ ̣ ̣ ̉ ̣
t ng bao gô m hai loai:̀ượ ̣
◦
Doing (la m)̀
◦
Knowing(biê t)́
PTTKHT bang UML - BM HTTT 10
Nhiêm vu va methoḍ̀ ̣
Nhiêm vu va methoḍ̀ ̣
Doing (la m)̀
◦
La m 1 ca i gi đo cho chi nh đô i t ng nh ̀ ́ ̀ ́ ́ ́ ượ ư
tao 1 đô i t ng kha c hay th c hiên ti nh ́ ́ ̣́ ượ ự ̣
toa ń
◦
Kh i đâ u 1 ha nh đông cua 1 đô i t ng ̀ ̀ ́ở ̣ ̉ ượ
kha ć
◦
Kiêm soa t va điê u phô i hoat đông ca c đô i ́ ̀ ̀ ́ ́ ́̉ ̣ ̣
t ng kha ćượ
Knowing(biê t):́
◦
Biê t d liêu na o đo ng go i riênǵ ̃ ̀ ́ ́ư ̣
◦
Biê t đô i t ng na o co liên quan đê ń ́ ̀ ́ ́ượ
◦
Biê t nh ng gi co thê suy diê n hay ti nh ́ ̃ ̀ ́ ̃ ́ư ̉
toa n đ ć ượ
PTTKHT bang UML - BM HTTT 11
Nhiêm vu va methoḍ̀ ̣
Nhiêm vu va methoḍ̀ ̣
Tra ch nhiêm se đ c ga n cho ca c l p ́ ̃ ́ ́ ̣́ ượ ơ
cua đô i t ng trong lu c thiê t kê đô i ́ ́ ́ ́ ́̉ ượ
t ng.ượ
Vi du đô i t ng Sale co nhiêm vu tao ́ ́ ̣́ ượ ̣ ̣ ̣
ra đô i t ng SalesLineItems (nhiêm vu ́ ượ ̣ ̣
doing) hay đô i t ng Sale co nhiêm vu ́ ́ượ ̣ ̣
cho biê t tông tri gia ba n (nhiêm vu ́ ́ ́̉ ̣ ̣ ̣
knowing).
PTTKHT bang UML - BM HTTT 12
Câ p đô cua nhiêm vú ̣ ̉ ̣ ̣
Câ p đô cua nhiêm vú ̣ ̉ ̣ ̣
Viêc chuyên giao nhiêm vu va o ca c l p ̀ ́ ̣́ ̉ ̣ ̣ ơ
phu thuôc va o câ p đô cua nhiêm vu ̀ ̣́ ̣ ̣ ̉ ̣ ̣
(granularity of the responsibility).
Vi du: nhiêm vu “provide access to ́ ̣ ̣ ̣
relational DB” co thê liên quan đê n ́ ́̉
ha ng ta ca c l p va ha ng trăm method ̀ ́ ́ ́ ̀ ̀ơ
trong 1 hê thô ng con. Trong khi đo ́ ̣́
nhiêm vu “create a Sale” co thê chi liên ̣́ ̣ ̉ ̉
quan đê n 1 va i method ma thôi.́ ̀ ̀
PTTKHT bang UML - BM HTTT 13
Th c thi nhiêm vuự ̣ ̣
Th c thi nhiêm vuự ̣ ̣
Nhiêm vu đ c th c thi thông qua hoăc ̣ ̣ ượ ự ̣
chi bă ng 1 method riêng le hoăc do ̀̉ ̉ ̣
nhiê u method va đô i t ng cu ng công ̀ ̀ ́ ̀ượ ̣
ta c.́
Vi du, l p Sale co môt method tên ́ ́ ̣́ ơ ̣
getTotal cho biê t tông tri gia ; đê hoa n ́ ́ ̀̉ ̣ ̉
tha nh nhiêm vu na y, Sale câ n công ta c ̀ ̀ ̀ ̣́ ̣ ̣
v i 1 sô đô i t ng kha c chăng han no ́ ́ ́ ́ ́ơ ượ ̉ ̣
se g i thông ba o agetSubtotal đê n mô i ̃ ́ ́ ̃ử
đô i t ng SalesLineItem đê nhân đ c ́ ượ ̉ ̣ ượ
tông con cua mô i măt ha ng ba n đ c.̃ ̀ ́̉ ̉ ̣ ượ
PTTKHT bang UML - BM HTTT 14
Nhiêm vu va l c đô t ng ta c̀ ̀ ̣́ ̣ ượ ươ
Nhiêm vu va l c đô t ng ta c̀ ̀ ̣́ ̣ ượ ươ
(Responsibilities and interaction diagrams)
(Responsibilities and interaction diagrams)
Viêc ga n nhiêm vu th ng đ c th c ́ ̣̀ ̣ ̣ ươ ượ ự
hiên ̣ trong lu c tao l c đô t ng ta c ́ ̀ ̣́ ượ ươ
thông qua viêc chon thông ba o gi g i ́ ̣̀ ̣ ử
cho đô i t nǵ ượ
PTTKHT bang UML - BM HTTT 15
Nhiêm vu va l c đô t ng ta c̀ ̀ ̣́ ̣ ượ ươ
Nhiêm vu va l c đô t ng ta c̀ ̀ ̣́ ̣ ượ ươ
(Responsibilities and interaction diagrams)
(Responsibilities and interaction diagrams)
Đô i t ng Sale đu c ga n nhiêm vu tao ́ ́ượ ợ ̣ ̣ ̣
đô i t ng Payment khi co thông ba o ́ ́ ́ượ
makePayment va method th c thi t ng ̀ ự ươ
ng la makePayment.́ ̀ư
PTTKHT bang UML - BM HTTT 16
Case study 1
Case study 1
T l c đô tuâ n t cua kich ban chi nh ̀ ̀ ̀ ́ư ượ ự ̉ ̣ ̉
UC “Process Sale” tao ca c l p class ́ ̣́ ơ
thiê t kế ́
PTTKHT bang UML - BM HTTT 17
Thiê t kê đô i t ng ́ ́ ́ ượ
Thiê t kê đô i t ng ́ ́ ́ ượ
“makeNewSale”
“makeNewSale”
Thao ta c hê thô ng “makeNewSale” xay ́ ̣́ ̉
ra khi thâu ngân bă t đâ u môt lâ n ba n ́ ̀ ̀ ̣́
ha ng m i (new sale) khi kha ch ha ng ̀ ́ ́ ̀ơ
mang đê n ca c đô vât đa chon mua.́ ́ ̀ ̣̃ ̣
Không co điê u kiên tiên quyê t ́ ̀ ̣́
Kê t qua cua thao ta c :́ ́̉ ̉
◦
Môt điên hi nh Sale s đu c tao rạ̀ ̉ ợ ̣
◦
s đ c kê t h p v i Registeŕ ́ượ ợ ơ
◦
Ca c thuôc ti nh cua s đu c kh i đâ u ́ ́ ̣̀ ̉ ợ ở
PTTKHT bang UML - BM HTTT 18
Thiê t kê đô i t ng ́ ́ ́ ượ
Thiê t kê đô i t ng ́ ́ ́ ượ
“makeNewSale”
“makeNewSale”
Thiê t kê đâ u tiên la câ n chon l p ́ ́ ̀ ̀ ̀ ̣́ ơ Controller
cho thông ba o hê thô ng “makeNewSale” ́ ̣́
Theo mâ u Controller thi co 2 ng viên:̃ ̀ ́ ́ư
Nên chon l p Register vi hê thô ng không co ́ ̀ ́ ̣́ ơ ̣
qua nhiê u thao ta ć ̀ ́
PTTKHT bang UML - BM HTTT 19
Để biểu diễn cả hệ thống, thiêt bị,
hay 1 hệ thống con
Register, POSSystem
Để biểu diễn đối tượng nhận
(receiver) hay quản lý (handler)
toàn bộ sự kiện hệ thống của kịch
bản use case
ProcessSaleHandler,
ProcessSaleSession
Thiê t kê đô i t ng ́ ́ ́ ượ
Thiê t kê đô i t ng ́ ́ ́ ượ
“makeNewSale”
“makeNewSale”
Nh vây co nghi a la trong l c đô ́ ̃ ̀ ̀ư ̣ ượ
t ng ta c se co môt thông điêp ́ ̃ ́ươ ̣ ̣
makeNewSale đ c g i đê n đô i t ng ́ ́ượ ử ươ
phâ n mê m Register̀ ̀
PTTKHT bang UML - BM HTTT 20
Thiê t kê đô i t ng ́ ́ ́ ượ
Thiê t kê đô i t ng ́ ́ ́ ượ
“makeNewSale
“makeNewSale
Đô i t ng Sale câ n phai đ c tao, va ́ ̀ ̀ươ ̉ ượ ̣
theo Creator nên ga n tra ch nhiêm tao ́ ́ ̣ ̣
l p Sale na y cho l p na o ma co kha ́ ̀ ́ ̀ ̀ ́ơ ơ ̉
năng tâp h p, ch a va l u tr lai ca c ́ ̀ ̃ ̣́ ợ ư ư ư ̣
đô i t ng đ c tao ra. ́ ượ ượ ̣
Theo mô hi nh nghiêp vu thi thâ y ră ng ̀ ̀ ́ ̣̀ ̣
Register co thê l u tr đu c Sale, vi vây ́ ̃ ̀̉ ư ư ợ ̣
Register la môt ng viên (candidate) ̀ ̣́ ư
thi ch h p đê tao Sale. ́ ợ ̉ ̣
PTTKHT bang UML - BM HTTT 21
Thiê t kê đô i t ng ́ ́ ́ ượ
Thiê t kê đô i t ng ́ ́ ́ ượ
“makeNewSale
“makeNewSale
Khi Sale đ c tao ra, thi phai tao 1 tâp ̀ượ ̣ ̉ ̣ ̣
h p rô ng đê ch a tâ t ca ca c điên hi nh ̃ ́ ́ ́ ̀ợ ̉ ư ̉ ̉
cua SaleLineItem se lâ n l t đ c thêm ̃ ̀̉ ượ ượ
va o. Tâp h p na y phai đ c ch a va duy ̀ ̀ ́ ̣̀ ợ ̉ ượ ư
tri b i điên hi nh Sale, điê u na y cu ng co ̀ ̀ ̀ ̀ ̃ ́ở ̉
nghi a la Sale la ng viên tô t nhâ t đê ̃ ̀ ̀ ́ ́ ́ư ̉
tao tâp h p na y. ̣̀ ̣ ợ
Register se tao Sale va Sale se tao 1 tâp ̃ ̀ ̣̃ ̣ ̣
h p rô ng dang biêu t ng đa đô i t ng̃ ́ợ ̣ ̉ ượ ượ
PTTKHT bang UML - BM HTTT 22
PTTKHT bang UML - BM HTTT 23
Thiê t kê đô i t ng enterIteḿ ́ ́ ượ
Thiê t kê đô i t ng enterIteḿ ́ ́ ượ
Thao ta c hê thô ng ́ ̣́
enterItem xay ra khi ̉
thâu ngân đ a va o ma ha ng va sô ̀ ̃ ̀ ̀ ́ư
l ngượ
Không co điê u kiên tiên quyê t́ ̀ ̣́
Kê t qua cua thao ta c (postcondition):́ ́̉ ̉
◦
Điên hi nh SalesLineltem co tên ̀ ́̉ sli đ c tao ượ ̣
◦
sli đa kê t h p v i Sale hiên ha nh ̃ ́ ́ ̀ợ ơ ̣
◦
sli.quantity đa ch a sô l ng̃ ́ ́ư ượ
◦
Sli đa kê t h p v i ProductSpecification, d a ̃ ́ ́ợ ơ ự
va o so tru ng ma ha ng itemID̀ ̀ ̃ ̀
PTTKHT bang UML - BM HTTT 24
Thiê t kê đô i t ng enterIteḿ ́ ́ ượ
Thiê t kê đô i t ng enterIteḿ ́ ́ ượ
Chon l p Controlleṛ́ ơ : giô ng nh s kiên ́ ư ự ̣
makeNewSale, l p Register vâ n tiê p tuc ́ ̃ ́ơ ̣
đ c chon.ượ ̣
Đê hiên thi mô ta va gia ca ha ng ho a?̀ ́ ̀ ́̉ ̉ ̣ ̉ ̉
◦
Theo nguyên tă c phân chia Model- View, đô i ́ ́
t ng non-GUI không co nhiêm vu gi liên ́ ̀ượ ̣ ̣
quan đê n output. Do đo tuy UC co đê câp ́ ́ ́ ̀ ̣
đê n mô ta va gia nh ng se bi bo qua không ́ ̀ ́ ̃̉ ư ̣ ̉
xe t đê n tai th i điêm na y.́ ́ ̀ ̣̀ ơ ̉
PTTKHT bang UML - BM HTTT 25