CH NG 4 : MƠ HÌNH HĨA USE CASE
6.7. Bi u$ tr"ng thái (State Diagram)
Bi u tr ng thái n"m b"t vòng i c a các i t ng, các h th ng con (Subsystem) và các h th ng. Chúng cho ta bi t các tr ng thái mà m t i t ng có th có và các s ki n (các thơng i p nh n c, các kho ng th i gian ã qua i, các l.i x y ra, các i u ki n c th a mãn) s& nh h ng n nh ng tr ng thái ó nh th nào d#c theo ti n trình th i gian. Bi u tr ng thái có th ính kèm v i t!t c các l p có nh ng tr ng thái c nh n di n rõ ràng và có l i ng x ph c t p. Bi u tr ng thái xác nh ng x và miêu t nó s& khác bi t ra sao ph thu c vào tr ng thái, ngồi ra nó c'ng cịn miêu t rõ nh ng s ki n nào s& thay i tr ng thái c a các i t ng c a m t l p.
6.7.1. Tr ng thái và s bi n i tr ng thái (State transition)
T!t c các i t ng u có tr ng thái; tr ng thái là m t k t qu c a các ho t ng tr c ó ã c i t ng th c hi n và nó th ng c xác nh qua giá tr c a các thu c tính c'ng nh các n i k t c a i t ng v i các i t ng khác. M t l p có th có m t thu c tính c bi t xác nh tr ng thái, ho c tr ng thái c'ng có th c xác nh qua giá tr c a các thu c tính “bình th ng" trong i t ng. Ví d v các tr ng thái c a i t ng:
Hóa n ( i t ng) ã c tr ti n (tr ng thái). Chi c xe ô tô ( i t ng) ang ng yên (tr ng thái).
ng c ( i t ng) ang ch y (tr ng thái).
Kate ( i t ng) ã l!y ch ng (tr ng thái).
M t i t ng s& thay i tr ng thái khi có m t vi c nào ó x y ra, th c g#i là s ki n; ví d có ai ó tr ti n cho hóa n, b t ng c xe ô tô hay là l!y ch ng l!y v . Khía c nh ng có hai chi u khơng gian: t ng tác và s bi n i tr ng thái n i b . T ng tác miêu t l i ng x i ngo i c a các i t ng và ch* ra i t ng này s& t ng tác v i các i t ng khác ra sao (qua vi c g i thông i p, n i k t ho c ch!m d t n i k t). S bi n i tr ng thái n i b miêu t m t i t ng s& thay i các tr ng thái ra sao – ví d giá tr các thu c tính n i b c a nó s& thay i nh th nào. Bi u tr ng thái c s d ng miêu t vi c b n thân i t ng ph n ng ra sao tr c các s ki n và chúng thay i các tr ng thái n i b c a chúng nh th nào, ví d , m t hóa n s& chuy n t tr ng thái ch a tr ti n sang tr ng thái ã tr ti n khi có ai ó tr ti n cho nó. Khi m t hóa n c t o ra, u tiên nó b c vào tr ng thái ch a c tr ti n.
6.7.2. Bi u tr ng thái
Bi u tr ng thái th hi n nh ng khía c nh mà ta quan tâm t i khi xem xét tr ng thái c a m t i t ng:
Tr ng thái ban u M t s tr ng thái gi a
M t ho c nhi u tr ng thái k t thúc S bi n i gi a các tr ng thái
Nh ng s ki n gây nên s bi n i t m t tr ng thái này sang tr ng thái khác
Hình sau s& ch* ra các kí hi u UML th hi n tr ng thái b"t u và tr ng thái k t thúc, s ki n c'ng nh các tr ng thái c a m t i t ng.
Hình 6.6- Các ký hi u UML th hi n b"t u, k t thúc, s ki n và tr ng thái c a m t i t ng.
Hình 6.7- Bi u tr ng thái th c hi n hố n.
Hình 6.8- Các ng(n Tên, Bi n tr ng thái và hành ng
Ph n th nh!t ch* ra tên c a tr ng thái, ví d nh ch , ã c tr ti n hay ang chuy n ng. Ph n th hai (không b"t bu c) dành cho các bi n tr ng thái. ây là nh ng thu c tính c a l p c th hi n qua bi u tr ng thái; nhi u khi các bi n t m th i c'ng t ra r!t h u d ng trong tr ng thái, ví d nh các lo i bi n m (counter). Ph n th ba (không b"t bu c) là ph n dành cho ho t ng, n i các s ki n và các hành ng có th c li t kê. Có ba lo i s ki n chu$n hóa có th c s d ng cho ph n hành
ng: entry ( i vào), exit ( i ra), và do (th c hi n). Lo i s ki n i vào c s d ng xác nh các
hành ng kh i nh p tr ng thái, ví d gán giá tr cho m t thu c tính ho c g i i m t thơng i p. S ki n i ra có th c s d ng xác nh hành ng khi r i b tr ng thái. S ki n th c hi n c s d ng xác nh hành ng c n ph i c th c hi n trong tr ng thái, ví d nh g i m t thông i p, ch , hay tính tốn. Ba lo i s ki n chu$n này không th c s d ng cho các m c ích khác.
M t s bi n i tr ng thái th ng có m t s ki n i kèm v i nó, nh ng khơng b"t bu c. N u có m t s ki n i kèm, s thay i tr ng thái s& c th c hi n khi s ki n kia x y ra. M t hành ng lo i th c hi n trong tr ng thái có th là m t q trình ang ti p di n (ví d ch , i u khi n các th t c,...) ph i
c th c hi n trong khi i t ng v n nguyên trong tr ng thái này. M t hành ng th c hi n có th
b ng"t b i các s ki n t ngồi, có ngh+a là m t s ki n ki n gây nên m t s bi n i tr ng thái có th ng ng ng"t m t hành ng th c hi n mang tính n i b ang ti p di n.
Trong tr ng h p m t s bi n i tr ng thái khơng có s ki n i kèm thì tr ng thái s& thay i khi hành ng n i b trong tr ng thái ã c th c hi n xong (hành ng n i b ki u i vào, i ra, th c hi n hay các hành ng do ng i s d ng nh ngh+a). Theo ó, khi t!t c các hành ng thu c tr ng thái ã
c th c hi n xong, m t s thay i tr ng thái s& t ng x y ra mà khơng c n s ki n t ngồi.
Hình 6.9- Bi n i tr ng thái khơng có s ki n t ngồi. S thay i tr ng thái x y ra khi các ho t
ng trong m.i tr ng thái c th c hi n xong.
6.7.3. Nh#n bi t tr ng thái và s ki n
Quá trình phát hi n s ki n và tr ng thái v m t b n ch!t bao g m vi c h i m t s các câu h i thích h p:
M t i t ng có th có nh ng tr ng thái nào?: Hãy li t kê ra t!t c nh ng tr ng thái mà m t i t ng có th có trong vịng i c a nó.
Nh ng s ki n nào có th x y ra?: B i s ki n gây ra vi c thay i tr ng thái nên nh n ra các s ki n là m t b c quan tr#ng nh n di n tr ng thái.
Tr ng thái m i s& là gì?: Sau khi nh n di n s ki n, hãy xác nh tr ng thái khi s ki n này x y ra và tr ng thái sau khi s ki n này x y ra.
Có nh ng th t c nào s& c th c thi?: Hãy ý n các th t c nh h ng n tr ng thái c a m t i t ng.
Chu.i t ng tác gi a các i t ng là gì?: T ng tác gi a các i t ng c'ng có th nh h ng n tr ng thái c a i t ng.
Qui nh nào s& c áp d ng cho các ph n ng c a các i t ng v i nhau?: Các qui nh ki m t a ph n ng i v i m t s ki n s& xác nh rõ h n các tr ng thái.
Nh ng s ki n và s chuy n t i nào là không th x y ra?: Nhi u khi có m t s s ki n ho c s thay i tr ng thái khơng th x y ra. Ví d nh bán m t chi c ô tô ã c bán r i.
Cái gì khi n cho m t i t ng c t o ra?: i t ng c t o ra tr l i cho m t s ki n. Ví d nh m t sinh viên ghi danh cho m t khóa h#c.
Cái gì khi n cho m t i t ng b h y?: i t ng s& b h y i khi chúng không c c n t i n a. Ví d khi m t sinh viên k t thúc m t khóa h#c.
Cái gì khi n cho i t ng c n ph i c tái phân lo i (reclassfied)?: Nh ng lo i s ki n nh m t nhân viên c t(ng ch c thành nhà qu n tr s& khi n cho ng tác tái phân lo i c a nhân viên ó c th c hi n.
6.7.4. M t s l i mách b o cho vi c t o d ng bi u tr ng thái
Chuy n bi u tu n t thành bi u tr ng thái. Xác nh các vòng l p (loop)
B sung thêm các i u ki n biên và các i u ki n c bi t Tr n l n các c nh k ch khác vào trong bi u tr ng thái.
M t khi mơ hình ã c t o nên, hãy nêu ra các câu h i và ki m tra xem mơ hình có kh n(ng cung c!p t!t c các câu tr l i. Qui trình sau ây c n ph i c nh"c l i cho m.i i t ng.
a) Chuy n bi u $ tu n t* thành bi u $ tr"ng thái
Hãy dõi theo m t chu.i các s ki n c miêu t trong bi u , chu.i này ph i mang tính tiêu bi u cho các t ng tác trong h th ng. Hãy quan sát các s ki n nh h ng n
i t ng mà ta ang nghiên c u.
Hãy s"p x p các s ki n thành m t ng d n, dán nhãn input (ho c entry) và output (exit) cho các s ki n. Kho ng cách gi a hai s ki n này s& là m t tr ng thái.
N u c nh k ch có th c nh"c i nh"c l i r!t nhi u l n (vô gi i h n), hãy n i ng d n t tr ng thái cu i cùng n tr ng thái u tiên.
Bi u sau ây ch* ra bi u tr ng thái c a m t l p máy ATM, c chi t su!t t bi u tu n t ho c bi u c ng tác ã c trình bày trong các ph n tr c.
Hình 6.10- Chuy n m t bi u tu n t sang bi u tr ng thái
b) Nh n ra các vòng l-p (loop)
M t chu.i s ki n có th c nh"c i nh"c l i vơ s l n c g#i là vịng l p (loop).
Hình 6.11- Bi u l p
Chú ý:
Trong m t vòng l p, chu.i các s ki n c nh"c i nh"c l i c n ph i ng nh!t v i nhau. N u có m t chu.i các s ki n khác chu.i khác thì tr ng h p ó khơng có vịng l p.
Lý t ng nh!t là m t tr ng thái trong vịng l p s& có s ki n k t thúc. ây là y u t quan tr#ng, n u khơng thì vịng l p s& không bao gi k t thúc.
c) B sung thêm các i u ki n biên và các i u ki n -c bi t
Sau khi ã hoàn t!t bi u tr ng thái cho m#i i t ng c n thi t trong h th ng, ã n lúc chúng ta c n ki m tra, i ch ng chúng v i i u ki n biên và các i u ki n c bi t khác, nh ng i u ki n r!t có th ã ch a c quan tâm trong th i gian t o d ng bi u tr ng thái. i u ki n biên là nh ng i u ki n thao tác trên giá tr , ây là nh ng giá tr n%m bên ranh gi i c a m t i u ki n quy t nh v tr ng thái c a i t ng, ví d nh quy nh v k0 h n c a m t tài kho n là 30 ngày thì ngày th 31
i v i tài kho n này s& là m t i u ki n biên. Các i u ki n c bi t là nh ng i u ki n ngo i l , ví d ngày th 30 c a tháng 2 n(m 2000 (n u có m t i u ki n th t s nh v y t n t i ngoài i th c).
d) Tr'n l n các c nh k1ch khác vào trong bi u $ tr"ng thái
M t khi bi u tr ng thái cho m t i t ng ã s2n sàng, chúng ta c n ph i tr n nh ng chu.i s ki n có nh h ng n i t ng này vào trong bi u tr ng thái. i u này có ngh+a là chúng ta c n ph i quan sát các hi u ng gián ti p c a các s ki n khác i v i i t ng ang là ch chính c a bi u tr ng thái. ây là vi c quan tr#ng, b i các i t ng trong m t h th ng t ng tác v i nhau và vì các i t ng khác c'ng có kh n(ng gây nên s ki n cho m t i t ng nh tr c, nên l i ng x này c'ng c n ph i c th hi n trong bi u tr ng thái.
i m b"t u cho công vi c này là:
7n nh m t i m b"t u chung cho t!t c các chu.i s ki n b sung.
Xác nh i m n i các ng x b"t u khác bi t v i nh ng ng x ã c mơ hình hóa trong bi u tr ng thái.
B sung thêm s các bi n i m i t tr ng thái này, trong t cách m t ng d n thay th . C n ý n nh ng ng d n có v/ ngồi ng nh!t nh ng th t ra có khác bi t trong m t tình hu ng nh!t nh nào ó.
Hãy chú ý n các s ki n x y ra trong nh ng tình hu ng b!t ti n. M.i s ki n do khách hàng hay ng i s d ng gây nên u có th sa vào tr ng thái c a các s ki n b!t ti n. H th ng không n"m quy n i u khi n i v i ng i s d ng và ng i s d ng có th quy t nh làm n y ra m t s ki n t i m t th i i m ti n l i i v i anh ta. Ví d nh khách hàng có th quy t nh k t thúc tr c k0 h n m t tài kho n u t .
M t tr ng h p khác c'ng c n ph i c x lý là s ki n do ng i s d ng gây nên khơng th x y ra. Có m t lo t các lý do (ng i s d ng thi u t p trung, bu n n n, l ãng...) khi n cho s ki n lo i này không x y ra. C tr ng h p này c'ng ph i c x lý th!u áo. Ví d m t khách hàng th!t b i trong vi c báo cho nhà b(ng bi t nh ng m nh l nh c a anh ta v k0 h n c a tài kho n, m t t!m séc c vi t ra nh ng l i khơng có kh n(ng gi i t a m c ti n c n thi t.
Nhìn theo ph ng di n các bi u tr ng thái nh là m t thành ph n c a mơ hình ng, c n chú ý nh ng i m sau:
Bi u tr ng thái ch* c n c t o d ng nên cho các l p i t ng có ng x ng quan tr#ng.
Hãy th$m tra bi u tr ng thái theo khía c nh tính nh!t quán i v i nh ng s ki n dùng chung cho tồn b mơ hình ng c úng "n.
Dùng các tr ng h p s d ng h. tr cho quá trình t o d ng bi u tr ng thái. Khi nh ngh+a m t tr ng thái, hãy ch* ý n nh ng thu c tính liên quan.