Professional Documents
Culture Documents
Vu Van Phong
Vu Van Phong
THEO UML
( ây là tài li u s u t m, t ng h p)
1
M CL C
CH NG 1: T NG QUAN V PHÂN TÍCH THI T K H TH NG .......................................................................... 6
1.1. D n nh p ....................................................................................................................................................................... 6
1.1.1. Tính tr c quan ................................................................................................................................................... 6
1.1.2. Mô hình tr u t ng ........................................................................................................................................... 6
1.1.3. Mô hình hóa tr c quan ...................................................................................................................................... 6
1.2. Mô t chu trình phát tri n ph n m m ........................................................................................................................ 7
1.2.1. Software Development – m t bài toán ph c t p ............................................................................................... 7
1.2.2. Chu Trình Phát Tri n Ph n M m (Software Development Life Cycle) ............................................................ 8
1.2.3. Các giai o n c a Chu Trình Phát Tri n Ph n M m ......................................................................................... 9
1.3. Ph ng pháp h ng ch c n ng và ph ng pháp h ng i t ng ...................................................................... 13
1.4. u i m c a mô hình h ng i t ng ................................................................................................................... 13
1.4.1. Tính tái s d ng (Reusable) ............................................................................................................................ 13
1.4.2. Các giai o n c a chu trình phát tri n ph n m m v i mô hình h ng i t ng ........................................... 14
1.5. Ph n câu h i ............................................................................................................................................................... 16
CH NG 2: NGÔN NG MÔ HÌNH HÓA TH NG NH T LÀ GÌ? ........................................................................... 17
2.1. Gi i thi u UML .......................................................................................................................................................... 17
2.1.1. Mô hình hóa h th ng ph n m m .................................................................................................................... 17
2.1.2. Tr c khi UML ra i ..................................................................................................................................... 18
2.1.3. S ra i c a UML.......................................................................................................................................... 18
2.1.4. UML (Unifield Modeling Language) .............................................................................................................. 19
2.1.5. Ph ng pháp và các ngôn ng mô hình hoá.................................................................................................... 19
2.2. UML trong phân tích thi!t k! h th ng .................................................................................................................... 19
2.3. UML và các giai o"n phát tri n h th ng ............................................................................................................... 20
2.4. Ph n câu h i ............................................................................................................................................................... 21
CH NG 3: KHÁI QUÁT V UML ................................................................................................................................. 22
3.1. UML và các giai o"n c a chu trình phát tri n ph n m m .................................................................................... 22
3.1.1. Giai o n nghiên c u s b ............................................................................................................................. 22
3.1.2. Giai o n phân tích ......................................................................................................................................... 22
3.1.3. Giai o n thi t k ............................................................................................................................................ 22
3.1.4. Giai o n xây d ng ......................................................................................................................................... 22
3.1.5. Th nghi m ..................................................................................................................................................... 23
3.2. Các thành ph n c a ngôn ng# UML ........................................................................................................................ 23
3.3. H ng nhìn (View)..................................................................................................................................................... 23
3.3.1. H ng nhìn Use case (Use case View) ........................................................................................................... 25
3.3.2. H ng nhìn logic (Logical View) ................................................................................................................... 25
3.3.3. H ng nhìn thành ph n (Component View) ................................................................................................... 25
3.3.4. H ng nhìn song song (Concurrency View) ................................................................................................... 26
3.3.5. H ng nhìn tri n khai (Deployment View) .................................................................................................... 26
3.4. Bi u $ (diagram) ....................................................................................................................................................... 26
3.4.1. Bi u Use case (Use Case Diagram) ............................................................................................................ 26
3.4.2. Bi u l p (Class Diagram) ........................................................................................................................... 27
3.4.3. Bi u it ng (Object Diagram) ............................................................................................................... 28
3.4.4. Bi u tr ng thái (State Diagram).................................................................................................................. 28
2
3.4.5. Bi u trình t (Sequence Diagram) .............................................................................................................. 29
3.4.6. Bi u c ng tác (Collaboration Diagram) ..................................................................................................... 29
3.4.7. Bi u ho t ng (Activity Diagram) ............................................................................................................ 30
3.4.8. Bi u thành ph n (Component Diagram)..................................................................................................... 30
3.4.9. Bi u tri n khai (Deployment Diagram) ...................................................................................................... 31
3.5. Ph n t% mô hình (model element) ............................................................................................................................. 32
3.6. C ch! chung (General Mechanism) ........................................................................................................................ 33
3.6.1. Trang trí (Adornment) ..................................................................................................................................... 33
3.6.2. Ghi chú (Note)................................................................................................................................................. 34
3.6.3. c t (Specification) ...................................................................................................................................... 34
3.7. M& r'ng UML ............................................................................................................................................................ 35
3.7.1. Khuôn m u (Stereotype) ................................................................................................................................. 35
3.7.2. Giá tr ính kèm (Tagged Value) .................................................................................................................... 36
3.7.3. H n ch (Constraint) ....................................................................................................................................... 36
3.8. Mô hình hóa v i UML ............................................................................................................................................... 37
3.9. Công c( (Tool) ............................................................................................................................................................ 40
3.10. Tóm t)t v UML ....................................................................................................................................................... 41
3.11. Ph n câu h i ............................................................................................................................................................. 42
CH NG 4: MÔ HÌNH HÓA USE CASE ........................................................................................................................ 43
4.1. Gi i thi u Use Case .................................................................................................................................................... 43
4.2. M't s ví d( Use Case ................................................................................................................................................ 44
4.3. S* c n thi!t ph i có Use Case .................................................................................................................................... 44
4.4. Mô hình hóa Use Case................................................................................................................................................ 45
4.5. Bi u $ Use Case ........................................................................................................................................................ 46
4.5.1. H th ng .......................................................................................................................................................... 47
4.5.2. Tác nhân .......................................................................................................................................................... 48
4.5.3. Tìm tác nhân .................................................................................................................................................... 49
4.5.4. Bi u di n tác nhân trong ngôn ng UML ........................................................................................................ 49
4.5.5. Use Case .......................................................................................................................................................... 50
4.5.6. Tìm Use Case .................................................................................................................................................. 51
4.5.7. Ví d tìm Use Case ......................................................................................................................................... 52
4.6. Các bi!n th (Variations) trong m't Use Case ......................................................................................................... 53
4.7. Quan h gi#a các Use Case ........................................................................................................................................ 54
4.7.1. Quan h m r ng ............................................................................................................................................. 54
4.7.2. Quan h s d ng .............................................................................................................................................. 55
4.7.3. Quan h chung nhóm ...................................................................................................................................... 56
4.8. Miêu t Use Case ........................................................................................................................................................ 57
4.9. Th% Use Case .............................................................................................................................................................. 60
4.10. Th*c hi n các Use Case ........................................................................................................................................... 61
4.11. Tóm t)t v Use Case ................................................................................................................................................. 63
4.12. Ph n câu h i ............................................................................................................................................................. 63
CH NG 5 : MÔ HÌNH I T +NG ............................................................................................................................. 65
5.1. L p, i t ng và quan h – các thành ph n c b n c a mô hình ........................................................................ 65
5.1.1. it ng (Object) .......................................................................................................................................... 65
5.1.2. Tr ng thái, ng x và nh n di n c a it ng ............................................................................................... 65
5.1.3. L p (Class) ...................................................................................................................................................... 66
3
5.1.4. Bi u l p (Class diagram) ............................................................................................................................ 67
5.2. Tìm l p ........................................................................................................................................................................ 68
5.2.1. Phân tích ph m vi bài toán tìm l p ............................................................................................................. 69
5.2.2. Các l p ng c viên ........................................................................................................................................ 72
5.2.3. Lo i b các l p ng c viên không thích h p ................................................................................................. 73
5.3. L p và i t ng trong UML.................................................................................................................................... 74
5.3.1. Tên l p (class name) ....................................................................................................................................... 74
5.3.2. Thu c tính (attribute) ...................................................................................................................................... 74
5.3.3. Ph ng th c (method)..................................................................................................................................... 75
5.3.4. Kí hi u i t ng ............................................................................................................................................ 76
5.4. Quan h gi#a các l p.................................................................................................................................................. 77
5.5. Liên h (Association) .................................................................................................................................................. 78
5.5.1. Vai trò trong liên h ........................................................................................................................................ 78
5.5.2. Liên h m t chi u (Uni-Directional Association) ........................................................................................... 79
5.5.3. S l ng (Cardinality) trong liên h ................................................................................................................ 79
5.5.4. Phát hi n liên h .............................................................................................................................................. 80
5.5.5. X lý các liên h không c n thi t .................................................................................................................... 80
5.5.6. Nâng c!p các m i liên h ................................................................................................................................ 81
5.6. Quan h k!t t p (Aggregation).................................................................................................................................. 85
5.6.1. Khái ni m k t t p ............................................................................................................................................ 85
5.6.2. Kí hi u k t t p ................................................................................................................................................. 86
5.6.3. K t t p và liên h ............................................................................................................................................. 87
5.7. Khái quát hóa và chuyên bi t hóa (Generalization & Specialization) ................................................................... 87
5.7.1. Kí hi u khái quát hóa và chuyên bi t hóa........................................................................................................ 88
5.7.2. Y u t phân bi t (Discriminatior) ................................................................................................................... 89
5.8. Quan h ph( thu'c và nâng c,p (Dependency & Refinement) .............................................................................. 92
5.9. Nâng c,p mô hình qua các vòng l-p k! ti!p ............................................................................................................. 94
5.10. Ch,t l ng mô hình ................................................................................................................................................. 95
5.10.1. Th nào là m t mô hình t t?.......................................................................................................................... 96
5.10.2. Ta có th giao ti p v i mô hình? ................................................................................................................... 96
5.10.3. Mô hình có phù h p v i m c ích c a nó không? ........................................................................................ 96
5.10.4. N"m b"t nh ng i m tr#ng y u ..................................................................................................................... 97
5.10.5. Ph i h p các mô hình .................................................................................................................................... 97
5.10.6. ph c t p c a mô hình .............................................................................................................................. 97
5.11. Tóm t)t v mô hình i t ng ................................................................................................................................. 97
5.12. Ph n câu h i ............................................................................................................................................................. 98
CH NG 6 : MÔ HÌNH HÓA .NG ............................................................................................................................. 100
6.1. S* c n thi!t có mô hình 'ng (Dynamic Model).................................................................................................... 100
6.2. Các thành ph n c a mô hình 'ng ......................................................................................................................... 100
6.3. u i m c a mô hình 'ng ..................................................................................................................................... 102
6.4. S* ki n và thông i p (Event & Message).............................................................................................................. 103
6.4.1. S ki n (Event) ............................................................................................................................................. 103
6.4.2. Thông i p (Message) ................................................................................................................................... 105
6.5. Bi u $ tu n t* (Sequence Diagram) ...................................................................................................................... 106
6.6. Bi u $ c'ng tác (Collaboration Diagram) ............................................................................................................ 108
4
6.7. Bi u $ tr"ng thái (State Diagram)......................................................................................................................... 109
6.7.1. Tr ng thái và s bi n i tr ng thái (State transition) ................................................................................... 109
6.7.2. Bi u tr ng thái .......................................................................................................................................... 110
6.7.3. Nh n bi t tr ng thái và s ki n ...................................................................................................................... 111
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 ............................................................................ 112
6.8. Bi u $ ho"t 'ng (Activity Diagram) .................................................................................................................... 114
6.9. Vòng /i i t ng (Object Lifecycle) ................................................................................................................... 117
6.9.1. Vòng i sinh ra và ch t i ........................................................................................................................... 118
6.9.2. Vòng i l p .................................................................................................................................................. 118
6.10. Xem xét l"i mô hình 'ng ...................................................................................................................................... 118
6.10.1. Th$m v!n bi u tr ng thái ........................................................................................................................ 118
6.10.2. Ph i h p s ki n .......................................................................................................................................... 119
6.10.3. Bao gi thì s d ng bi u nào .................................................................................................................. 119
6.10.4. L p con và bi u tr ng thái ...................................................................................................................... 120
6.11. Ph i h p mô hình i t ng và mô hình 'ng .................................................................................................... 120
6.12. Tóm t)t v mô hình 'ng ....................................................................................................................................... 121
6.13. Ph n câu h i ........................................................................................................................................................... 121
5
CH NG 1: T NG QUAN V PHÂN TÍCH THI T K H TH NG
1.1. D n nh p
1.1.2. Mô hình tr u t ng
Tr c ây, có m t th i gian dài, ngành công nghi p chúng ta ã ph i nói t i m t "Cu c kh ng ho ng
ph n m m". Các cu c tranh lu n u d a trên th c t là ch)ng nh ng nhi u án ph n m m không th
s n sinh ra nh ng h th ng tho mãn òi h i và nhu c u c a khách hàng, mà còn v t quá ngân sách và
th i h n. Các công ngh m i nh l p trình h ng i t ng, l p trình tr c quan c'ng nh các môi
tr ng phát tri n tiên ti n có giúp chúng ta nâng cao n(ng su!t lao ng, nh ng trong nhi u tr ng
h p, chúng ch* h ng t i t ng th!p nh!t c a vi c phát tri n ph n m m: ph n vi t l nh (coding). M t
trong nh ng v!n chính c a ngành phát tri n ph n m m th i nay là có nhi u án b"t tay vào l p
trình quá s m và t p trung quá nhi u vào vi c vi t code. Lý do m t ph n là do ban qu n tr thi u hi u
bi t v quy trình phát tri n ph n m m và h# n y lo âu khi th!y i quân l p trình c a h# không vi t
code. Và b n thân các l p trình viên c'ng c m th!y an tâm h n khi h# ng i vi t code - v n là tác v mà
h# quen thu c! – h n là khi xây d ng các mô hình tr u t ng cho h th ng mà h# ph i t o nên.
7
Hi u không úng nh ng gì ng i dùng c n
Không th thích ng cho phù h p v i nh ng thay i v yêu c u i v i h th ng
Các Module không kh p v i nhau
Ph n m m khó b o trì và nâng c!p, m r ng
Phát hi n tr các l. h ng c a d án
Ch!t l ng ph n m m kém
Hi u n(ng c a ph n m m th!p
Các thành viên trong nhóm không bi t c ai ã thay i cái gì, khi nào, âu, t i sao
ph i thay i.
8
V,n
a) Nghiên c u s b':
Câu h i quan tr#ng nh!t khi phát tri n m t h th ng hoàn toàn không ph i câu h i mang tính ph ng
pháp lu n. Mà c'ng ch)ng ph i câu h i v k, thu t. Nó là m t câu h i d ng nh có v/ n gi n,
9
nh ng th t ra c bi t khó tr l i: “ ây có úng là m t h th ng th c hi n không?” áng bu n là
chính câu h i này trong th c t th ng ch)ng h c t ra và l i càng không c tr l i. M c dù
vi c l m l n v ph ng pháp hay quy t nh sai l m v k, thu t c'ng có th d n t i th!t b i, nh ng
th ng thì d án có th c c u vãn n u có y tài nguyên cùng s c g"ng quên mình c a các
nhân viên tài gi i. Nh ng s& ch)ng m t ai và m t i u gì c u vãn cho m t h th ng ph n m m hoàn
toàn ch)ng c c n t i ho c c g"ng t ng hóa m t quy trình l m l c.
Tr c khi b"t tay vào m t d án, b n ph i có m t ý t ng cho nó. Ý t ng này i song song v i vi c
n"m b"t các yêu c u và xu!t hi n trong giai o n kh i u. Nó hoàn t!t m t phát bi u: "H th ng mà
chúng ta mong mu n s& làm c nh ng vi c nh sau ....". Trong su t giai o n này, chúng ta t o nên
m t b c tranh v ý t ng ó, r!t nhi u gi thuy t s& c công nh n hay lo i b . Các ho t ng trong
th i gian này th ng bao g m thu th p các ý t ng, nh n bi t r i ro, nh n bi t các giao di n bên ngoài,
nh n bi t các các ch c n(ng chính mà h th ng c n cung c!p, và có th t o m t vài nguyên m u dùng
“minh ch ng các khái ni m c a h th ng”. Ý t ng có th n t nhi u ngu n khác nhau: khách
hàng, chuyên gia l+nh v c, các nhà phát tri n khác, chuyên gia v k, ngh , các b n nghiên c u tính kh
thi c'ng nh vi c xem xét các h th ng khác ang t n t i. M t khía c nh c n nh"c t i là code vi t trong
th i k0 này th ng s& b "b i”, b i chúng c vi t nh%m m c ích th$m tra hay tr giúp các gi
thuy t khác nhau, ch ch a ph i th code c vi t theo k t qu phân tích và thi t k th!u áo.
Trong giai #an nghiên c u s b , nhóm phát tri n h th ng c n xem xét các yêu c u c a doanh nghi p
(c n dùng h th ng), nh ng ngu n tài nguyên có th s d ng, công ngh c'ng nh c ng ng ng i
dùng cùng các ý t ng c a h# i v i h th ng m i. Có th th c hi n th o lu n, nghiên c u, xem xét
khía c nh th ng m i, phân tích kh n(ng l i-l., phân tích các tr ng h p s d ng và t o các nguyên
m u xây d ng nên m t khái ni m cho h th ng ích cùng v i các m c ích, quy n u tiên và ph m
vi c a nó.
Th ng trong giai o n này ng i ta c'ng ti n hành t o m t phiên b n thô c a l ch trình và k ho ch
s d ng tài nguyên.
M t giai o n nghiên c u s b thích áng s& l p nên t p h p các yêu c u (dù m c khái quát cao)
i v i m t h th ng kh thi và c mong mu n, k c v ph ng di n k, thu t l n xã h i. M t giai
o n nghiên c u s b không c th c hi n tho áng s& d n t i các h th ng không c mong
mu n, "t ti n, b!t kh thi và c nh ngh+a l m l c – nh ng h th ng th ng ch)ng c hoàn t!t
hay s d ng.
K t qu c a giai o n nghiên c u s b là Báo Cáo K t Qu Nghiên C u Tính Kh Thi. Khi h th ng
t ng lai c ch!p nh n d a trên b n báo cáo này c'ng là lúc giai o n Phân tích b"t u.
10
Nh ng m c tiêu c th c a giai o n phân tích là:
Xác nh h th ng c n ph i làm gì.
Nghiên c u th!u áo t!t c các ch c n(ng c n cung c!p và nh ng y u t liên quan
Xây d ng m t mô hình nêu b t b n ch!t v!n t m th ng nhìn có th c (trong i
s ng th c).
Trao nh ngh+a v!n cho chuyên gia l+nh v c nh n s ánh giá, góp ý.
K t qu c a giai o n phân tích là b n c T Yêu C u (Requirements Specifications).
c) Thi!t k! h th ng:
Sau giai o n phân tích, khi các yêu c u c th i v i h th ng ã c xác nh, giai o n ti p theo
là thi t k cho các yêu c u m i. Công tác thi t k xoay quanh câu h i chính: H th ng làm cách nào
th a mãn các yêu c u ã c nêu trong c T Yêu C u?
M t s các công vi c th ng c th c hi n trong giai o n thi t k :
Nh n bi t form nh p li u tùy theo các thành ph n d li u c n nh p.
Nh n bi t reports và nh ng output mà h th ng m i ph i s n sinh
Thi t k forms (v& trên gi!y hay máy tính, s d ng công c thi t k )
Nh n bi t các thành ph n d li u và b ng t o database
1 c tính các th t c gi i thích quá trình x lý t input n output.
K t qu giai o n thi t k là c T Thi t K (Design Specifications). B n c T Thi t K Chi Ti t
s& c chuy n sang cho các l p trình viên th c hi n giai o n xây d ng ph n m m.
d) Xây d*ng ph n m m:
ây là giai o n vi t l nh (code) th c s , t o h th ng. T ng ng i vi t code th c hi n nh ng yêu c u
ã c nhà thi t k nh s2n. C'ng chính ng i vi t code ch u trách nhi m vi t tài li u liên quan n
ch ng trình, gi i thích th t c (procedure) mà anh ta t o nên c vi t nh th nào và lý do cho vi c
này.
m b o ch ng trình c vi t nên ph i tho mãn m#i yêu c u có ghi tr c trong b n cT
Thi t K Chi Ti t, ng i vi t code c'ng ng th i ph i ti n hành th nghi m ph n ch ng trình c a
mình. Ph n th nghi m trong giai o n này có th c chia thành hai b c chính:
+ Th% nghi m n v1: Ng i vi t code ch y th các ph n ch ng trình c a mình v i d li u
gi (test/dummy data). Vi c này c th c hi n theo m t k ho ch th , c'ng do chính ng i
vi t code so n ra. M c ích chính trong giai o n th này là xem ch ng trình có cho ra nh ng
k t qu mong i. Giai o n th nghi m n v nhi u khi c g#i là "Th h p tr"ng" (White
Box Testing).
+ Th% nghi m n v1 'c l p: Công vi c này do m t thành viên khác trong nhóm m trách.
C n ch#n ng i không có liên quan tr c ti p n vi c vi t code c a n v ch ng trình c n th
11
nghi m m b o tính “ c l p”. Công vi c th t này c'ng c th c hi n d a trên k
ho ch th do ng i vi t code so n nên.
12
1.3. Ph ng pháp h ng ch c n ng và ph ng pháp h ng it ng
1.3.1. Ph ng pháp h ng ch c n ng
ây là l i ti p c n truy n th ng c a ngành Công ngh ph n m m. Theo l i ti p c n này, chúng ta quan
tâm ch y u t i nh ng thông tin mà h th ng s& gi gìn. Chúng ta h i ng i dùng xem h# s& c n nh ng
thông tin nào, r i chúng ta thi t k ngân hàng d li u ch a nh ng thông tin ó, cung c!p Forms
nh p thông tin và in báo cáo trình bày các thông tin. Nói m t cách khác, chúng ta t p trung vào
thông tin và không m!y ý n nh ng gì có th x y ra v i nh ng h th ng ó và cách ho t ng ( ng
x ) c a h th ng là ra sao. ây là l i ti m c n xoay quanh d li u và ã c áp d ng t o nên hàng
ngàn h th ng trong su t nhi u n(m tr i.
L i ti p c n xoay quanh d li u là ph ng pháp t t cho vi c thi t k ngân hàng d li u và n"m b"t
thông tin, nh ng n u áp d ng cho vi c thi t k ng d ng l i có th khi n phát sinh nhi u khó kh(n. M t
trong nh ng thách th c l n là yêu c u i v i các h th ng th ng xuyên thay i. M t h th ng xoay
quanh d li u có th d dàng x lý vi c thay i ngân hàng d li u, nh ng l i khó th c thi nh ng thay
i trong nguyên t"c nghi p v hay cách ho t ng c a h th ng.
Ph ng pháp h ng i t ng ã c phát tri n tr l i cho v!n ó. V i l i ti p c n h ng i
t ng, chúng ta t p trung vào c hai m t c a v!n : thông tin và cách ho t ng.
1.3.2. Ph ng pháp h ng it ng
H ng i t ng là thu t ng thông d ng hi n th i c a ngành công nghi p ph n m m. Các công ty
ang nhanh chóng tìm cách áp d ng và tích h p công ngh m i này vào các ng d ng c a h#. Th t s
là a ph n các ng d ng hi n th i u mang tính h ng i t ng. Nh ng h ng i t ng có ngh+a là
gì?
L i ti p c n h ng i t ng là m t l i t duy v v!n theo l i ánh x các thành ph n trong bài toán
vào các i t ng ngoài i th c. V i l i ti p c n này, chúng ta chia ng d ng thành các thành ph n
nh , g#i là các i t ng, chúng t ng i c l p v i nhau. Sau ó ta có th xây d ng ng d ng b%ng
cách ch"p các i t ng ó l i v i nhau. Hãy ngh+ n trò ch i xây lâu ài b%ng các m u g.. B c u
tiên là t o hay mua m t vài lo i m u g. c(n b n, t ó t o nên các kh i xây d ng c(n b n c a mình.
M t khi ã có các kh i xây d ng ó, b n có th ch"p ráp chúng l i v i nhau t o lâu ài. T ng t
nh v y m t khi ã xây d ng m t s i t ng c(n b n trong th gi i máy tính, b n có th ch"p chúng
l i v i nhau t o ng d ng c a mình.
Xin l!y m t ví d n gi n: v!n rút ti n m t t i nhà b(ng. Các “m u g.“ thành ph n ây s& là ánh
x c a các i t ng ngoài i th c nh tài kho n, nhân viên, khách hàng, …Và ng d ng s& c s&
c nh n di n c'ng nh gi i áp xoay quanh các i t ng ó.
1.4. u i m c a mô hình h ng it ng
13
hàng/ng i dùng, nhà phân tích, nhà thi t k , nhà phát tri n, chuyên gia l+nh v c, chuyên gia k, thu t,
... nên l i ti p c n này khi n cho vi c giao ti p gi a h# v i nhau c d dàng h n.
M t trong nh ng u i m quan tr#ng b c nh!t c a ph ng pháp phân tích và thi t k h ng i t ng
là tính tái s d ng: b n có th t o các thành ph n ( i t ng) m t l n và dùng chúng nhi u l n sau ó.
Gi ng nh vi c b n có th tái s d ng các kh i xây d ng (hay b n sao c a nó ) trong m t toà lâu ài,
m t ngôi nhà , m t con tàu v' tr , b n c'ng có th tái s d ng các thành ph n ( i t ng) c(n b n
trong các thi t k h ng i t ng c'ng nh code c a m t h th ng k toán, h th ng ki m kê, ho c
m t h th ng t hàng.
Vì các i t ng ã c th nghi m k, càng trong l n dùng tr c ó, nên kh n(ng tái s d ng i
t ng có tác d ng gi m thi u l.i và các khó kh(n trong vi c b o trì, giúp t(ng t c thi t k và phát
tri n ph n m m.
Ph ng pháp h ng i t ng giúp chúng ta x lý các v!n ph c t p trong phát tri n ph n m m và
t o ra các th h ph n m m có kh n(ng thích ng và b n ch"c.
14
Khách hàng vi t phi u t xe
Khách hàng tr ti n xe
Xe ô tô c giao n cho khách hàng
i v i ví d nhà b(ng l/, giai o n OOA s& nh n bi t c các th c th nh :
Lo i tài kho n: ATM (rút ti n t ng), Savings (ti t ki m), Current (bình th ng),
Fixed ( u t ), ...
Khách hàng
Nhân viên
Phòng máy tính.
T ng tác và quan h gi a các it ng trên:
M t khách hàng m i m m t tài kho n ti t ki m
Chuy n ti n t tài kho n ti t ki m sang tài kho n ut
Chuy n ti n t tài kho n ti t ki m sang tài kho n ATM
Xin chú ý là ây, nh ã nói, ta chú ý n c hai khía c nh: thông tin và cách ho t ng c a h th ng
(t c là nh ng gì có th x y ra v i nh ng thông tin ó).
L i phân tích b%ng ki u ánh x " i th c” vào máy tính nh th th t s là u i m l n c a ph ng
pháp h ng i t ng.
Thi!t k! h ng it ng (Object Oriented Design - OOD):
Là giai o n t ch c ch ng trình thành các t p h p i t ng c ng tác, m.i i t ng trong ó là th c
th c a m t l p. Các l p là thành viên c a m t cây c!u trúc v i m i quan h th a k .
M c ích c a giai o n OOD là t o thi t k d a trên k t qu c a giai o n OOA, d a trên nh ng quy
nh phi ch c n(ng, nh ng yêu c u v môi tr ng, nh ng yêu c u v kh n(ng th c thi, .... OOD t p
trung vào vi c c i thi n k t qu c a OOA, t i u hóa gi i pháp ã c cung c!p trong khi v n m
b o tho mãn t!t c các yêu c u ã c xác l p.
Trong giai o n OOD, nhà thi t k nh ngh+a các ch c n(ng, th t c (operations), thu c tính
(attributes) c'ng nh m i quan h c a m t hay nhi u l p (class) và quy t nh chúng c n ph i c
i u ch*nh sao cho phù h p v i môi tr ng phát tri n. ây c'ng là giai o n thi t k ngân hàng d
li u và áp d ng các k, thu t tiêu chu$n hóa.
V cu i giai o n OOD, nhà thi t k a ra m t lo t các bi u (diagram) khác nhau. Các bi u này
có th c chia thành hai nhóm chính là T+nh và ng. Các bi u t+nh bi u th các l p và i t ng,
trong khi bi u ng bi u th t ng tác gi a các l p và ph ng th c ho t ng chính xác c a chúng.
Các l p ó sau này có th c nhóm thành các gói (Packages) t c là các n v thành ph n nh h n
c a ng d ng.
15
Giai o n xây d ng ph n m m có th c th c hi n s d ng k, thu t l p trình h ng i t ng. ó là
ph ng th c th c hi n thi t k h ng i t ng qua vi c s d ng m t ngôn ng l p trình có h. tr các
tính n(ng h ng i t ng. M t vài ngôn ng h ng i t ng th ng c nh"c t i là C++ và Java.
K t qu chung cu c c a giai o n này là m t lo t các code ch y c, nó ch* c a vào s d ng
sau khi ã tr i qua nhi u vòng quay c a nhi u b c th nghi m khác nhau.
1.5. Ph n câu h i
H i: M t s t p h p d li u ph c t p nh!t nh khi c trình bày b%ng th s& truy n t i n
ng i #c nhi u thông tin h n so v i các d li u thô?
áp: úng
H i: Mô hình giúp chúng ta t ch c, trình bày tr c quan, th!u hi u và t o nên các h th ng ph c t p.
áp: úng
H i: 1u i m l n nh!t c a mô hình h ng it ng là tính tái s d ng (Reusable)?
áp: úng.
16
CH NG 2: NGÔN NG MÔ HÌNH HÓA TH NG NH T LÀ GÌ?
17
Ch* rõ c!u trúc ho c ng x c a h th ng.
T o m t khuôn m u h ng d n nhà phát tri n trong su t quá trình xây d ng h th ng.
Ghi l i các quy t nh c a nhà phát tri n s d ng sau này.
2.1.3. S ra i c a UML
Trong b i c nh trên, ng i ta nh n th!y c n thi t ph i cung c!p m t ph ng pháp ti m c n c chu$n
hoá và th ng nh!t cho vi c mô hình hoá h ng i t ng. Yêu c u c th là a ra m t t p h p chu$n
hoá các ký hi u (Notation) và các bi u (Diagram) n"m b"t các quy t nh v m t thi t k m t
cách rõ ràng, rành m ch. ã có ba công trình tiên phong nh"m t i m c tiêu ó, chúng c th c hi n
d i s lãnh o c a James Rumbaugh, Grady Booch và Ivar Jacobson. Chính nh ng c g"ng này d n
n k t qu là xây d ng c m t Ngôn Ng Mô Hình Hoá Th ng Nh!t (Unifield Modeling Language
– UML).
UML là m t ngôn ng mô hình hoá th ng nh!t có ph n chính bao g m nh ng ký hi u hình h#c, c
các ph ng pháp h ng i t ng s d ng th hi n và miêu t các thi t k c a m t h th ng. Nó là
m t ngôn ng c t , tr c quan hoá, xây d ng và làm s u li u cho nhi u khía c nh khác nhau c a
m t h th ng có n ng ph n m m cao. UML có th c s d ng làm công c giao ti p gi a ng i
dùng, nhà phân tích, nhà thi t k và nhà phát tri n ph n m m.
18
Trong quá trình phát tri n có nhi u công ty ã h. tr và khuy n khích phát tri n UML có th k t i nh
: Hewlett Packard, Microsoft, Oracle, IBM, Unisys.
19
H th ng k2 thu t (Technical System): X lý và i u khi n các thi t b k, thu t nh vi n
thông, h th ng quân s , hay các quá trình công nghi p. ây là lo i thi t b ph i x lý các giao
ti p c bi t , không có ph n m m chu$n và th ng là các h th ng th i gian th c (real time).
H th ng nhúng (Embeded System): Th c hi n trên ph n c ng g"n vào các thi t b nh i n
tho i di ng, i u khi n xe h i, … i u này c th c hi n b%ng vi c l p trình m c th!p v i
h. tr th i gian th c. Nh ng h th ng này th ng không có các thi t b nh màn hình +a c ng,
…
H th ng phân b ( Distributed System): c phân b trên m t s máy cho phép truy n d
li u t n i này n n i khác m t cách d dàng. Chúng òi h i các c ch liên l c ng b
m b o toàn v-n d li u và th ng c xây d ng trên m t s các k, thu t i t ng nh
CORBA, COM/DCOM, hay Java Beans/RMI.
H th ng Giao d1ch (Business System): Mô t m c ích, tài nguyên (con ng i, máy tính,
…), các quy t"c (lu t pháp, chi n thu t kinh doanh, c ch , …), và công vi c ho t ng kinh
doanh.
Ph n m m h th ng (System Software): nh ngh+a c s h t ng k, thu t cho ph n m m
khác s d ng, ch)ng h n nh h i u hành, c s d li u, giao di n ng i s d ng.
20
Acceptance testing: Ki m tra tính ch!p nh n c c a h th ng, th ng c
th c hi n b i khách hàng, vi c ki m tra này th c hi n t ng t nh ki m tra h
th ng.
2.4. Ph n câu h i
H i: UML (Unifield Modeling Language) là gì?
21
CH NG 3: KHÁI QUÁT V UML
22
vàng a ra nh ng k t lu n v vi c vi t code có th s& thành m t tr ng i cho vi c t o ra các mô hình
chính xác và n gi n. Giai o n xây d ng là m t giai o n riêng bi t, n i các mô hình c chuy n
thành code.
3.1.5. Th nghi m
Nh ã trình bày trong ph n Chu Trình Phát Tri n Ph n M m, m t h th ng ph n m m th ng c
th nghi m qua nhi u giai o n và v i nhi u nhóm th nghi m khác nhau. Các nhóm s d ng nhi u
lo i bi u UML khác nhau làm n n t ng cho công vi c c a mình: Th nghi m n v s d ng bi u
l p (class diagram) và c t l p, th nghi m tích h p th ng s d ng bi u thành ph n
(component diagram) và bi u c ng tác (collaboration diagram), và giai o n th nghi m h th ng s
d ng bi u Use case (use case diagram) m b o h th ng có ph ng th c ho t ng úng nh ã
c nh ngh+a t ban u trong các bi u này.
23
ph i c miêu t v i m t lo t các khía c nh khác nhau: V m t ch c n(ng (c!u trúc t+nh c a nó c'ng
nh các t ng tác ng), v m t phi ch c n(ng (yêu c u v th i gian, v áng tin c y, v quá trình
th c thi, v.v. và v.v.) c'ng nh v khía c nh t ch c (t ch c làm vi c, ánh x nó vào các code module,
...). Vì v y m t h th ng th ng c miêu t trong m t lo t các h ng nhìn khác nhau, m.i h ng
nhìn s& th hi n m t b c nh ánh x c a toàn b h th ng và ch* ra m t khía c nh riêng c a h th ng.
24
Ngoài các h ng nhìn k trên, ngành công nghi p ph n m m còn s d ng c các h ng nhìn khác, ví
d h ng nhìn t+nh- ng, h ng nhìn logic-v t lý, quy trình nghi p v (workflow) và các h ng nhìn
khác. UML không yêu c u chúng ta ph i s d ng các h ng nhìn này, nh ng ây c'ng chính là nh ng
h ng nhìn mà các nhà thi t k c a UML ã ngh+ t i, nên có kh n(ng nhi u công c s& d a trên các
h ng nhìn ó.
25
3.3.4. H ng nhìn song song (Concurrency View)
H ng nhìn song song nh"m t i s chia h th ng thành các qui trình (process) và các b x lý
(processor). Khía c nh này, v n là m t thu c tính phi ch c n(ng c a h th ng, cho phép chúng ta s
d ng m t cách h u hi u các ngu n tài nguyên, th c thi song song, c'ng nh x lý các s ki n không
ng b t môi tr ng. Bên c nh vi c chia h th ng thành các ti u trình có th c th c thi song
song, h ng nhìn này c'ng ph i quan tâm n v!n giao ti p và ng b hóa các ti u trình ó.
H ng nhìn song song giành cho nhà phát tri n và ng i tích h p h th ng, nó bao g m các bi u
ng (tr ng thái, trình t , t ng tác và ho t ng) cùng các bi u th c thi (bi u thành ph n và
bi u tri n khai).
3.4. Bi u $ (diagram)
Bi u là các hình v& bao g m các ký hi u ph n t mô hình hóa c s"p x p minh h#a m t thành
ph n c th hay m t khía c nh c th c a h th ng. M t mô hình h th ng th ng có nhi u lo i bi u
, m.i lo i có nhi u bi u khác nhau. M t bi u là m t thành ph n c a m t h ng nhìn c th ; và
khi c v& ra, nó th ng th ng c'ng c x p vào m t h ng nhìn. M t khác, m t s lo i bi u
có th là thành ph n c a nhi u h ng nhìn khác nhau, tùy thu c vào n i dung c a bi u .
Ph n sau miêu t các khái ni m c(n b n n%m %ng sau m.i lo i bi u . T!t c các chi ti t v bi u ,
ng c nh c a chúng, ý ngh+a chính xác c a chúng và s t ng tác gi a chúng v i nhau c miêu t
chi ti t trong các ch ng sau (mô hình i t ng – mô hình ng). Các bi u l!y làm ví d ây
c l!y ra t nhi u lo i h th ng khác nhau ch* ra nét phong phú và kh n(ng áp d ng r ng kh"p
c a ULM.
26
Hình 3.2- Bi u use case c a m t công ty b o hi m
27
3.4.3. Bi u it ng (Object Diagram)
Bi u i t ng không quan tr#ng b%ng bi u l p, chúng có th c s d ng ví d hóa m t
bi u l p ph c t p, ch* ra v i nh ng th c th c th và nh ng m i quan h nh th thì b c tranh toàn
c nh s& ra sao. M t bi u i t ng th ng th ng c s d ng làm m t thành ph n c a m t bi u
c ng tác (collaboration), ch* ra l i ng x ng gi a m t lo t các i t ng.
Hình 3.4 - Bi u l p và bi u it ng th hi n c a l p
28
3.4.5. Bi u trình t (Sequence Diagram)
M t bi u trình t ch* ra m t c ng tác ng gi a m t lo t các i t ng (xem hình 3.6). Khía c nh
quan tr#ng c a bi u này là ch* ra trình t các thông i p (message) c g i gi a các i t ng. Nó
c'ng ch* ra trình t t ng tác gi a các i t ng, i u s& x y ra t i m t th i i m c th nào ó trong
trình t th c thi c a h th ng. Các bi u trình t ch a m t lo t các i t ng c bi u di n b%ng
các ng th)ng ng. Tr c th i gian có h ng t trên xu ng d i trong bi u , và bi u ch* ra s
trao i thông i p gi a các i t ng khi th i gian trôi qua. Các thông i p c bi u di n b%ng các
ng g ch ngang g"n li n v i m'i tên (bi u th thông i p) n i li n gi a nh ng ng th)ng ng th
hi n i t ng. Tr c th i gian cùng nh ng l i nh n xét khác th ng s& c a vào ph n l c a bi u
.
29
Hình 3.7 - M t bi u công tác c a m t printer server
30
mà nó thi hành, nh th có ngh+a là nó t o ra m t ánh x t h ng nhìn logic vào h ng nhìn thành
ph n. Bi u thành ph n c'ng ch* ra nh ng s ph thu c gi a các thành ph n v i nhau, tr giúp cho
công vi c phân tích hi u ng mà m t thành ph n c thay i s& gây ra i v i các thành ph n khác.
Thành ph n c'ng có th c miêu t v i b!t k0 lo i giao di n nào mà chúng b c l , ví d nh giao
di n OLE/COM; và chúng có th c nhóm góp l i v i nhau thành t ng gói (package). Bi u thành
ph n c s d ng trong công vi c l p trình c th (xem hình 3.9).
31
Hình 3.10 - M t bi u tri n khai ch* ra ki n trúc v t lý c a h th ng
32
• N i k t (Association) : n i các ph n t và các th c th n i (link).
33
Hình 3.13 - Phân bi t gi a l p và it ng b%ng trang trí
3.6.3. c t (Specification)
Các ph n t mô hình có thu c tính (Property) ch a các giá tr d li u v ph n t này. M t thu c tính
c nh ngh+a v i m t tên và m t giá tr ính kèm (tagged value), th ng chúng trong m t d ng
thông tin c xác nh tr c, ví d nh s nguyên hay chu.i kí t . Có m t lo t thu c tính ã c
nh ngh+a tr c, ví d nh tài li u (docement), trách nhi m (Responsibility), s tr ng t n
(Persistence) và tính song song (Conccurency).
Thu c tính c s d ng thêm các c t b sung v m t ph n t , nh ng thông tin bình th ng ra
không c th hi n trong bi u . Ví d tiêu bi u là m t l p s& c miêu t b%ng m t tài li u v(n
b n nh!t nh, cung c!p nhi u thông tin h n v trách nhi m c'ng nh kh n(ng c a l p này. Lo i c t
này bình th ng ra không c ch* ra trong các bi u , nh ng th ng thì trong a ph n các công c
mô hình hóa chúng s& có th c truy c p qua hành ng nh!p nút vào m t ph n t nào ó, hi u qu
là m t c a s ch a c t v i t!t c các thu c tính s& c ch* ra (Hình 3.15).
34
Hình 3.15- M t c a s c t th hi n các c tính c a class
35
Nh ã nói, khuôn m u là m t c ch m r ng xu!t s"c, là m t c ch ng(n cho ngôn ng UML không
tr nên quá ph c t p, m c dù v n cho phép th c hi n s m r ng và s a i c n thi t. a ph n các
ph n t mô hình m i mà b n c n n u có m t khuôn m u n n t ng trong ngôn ng UML. M t
khuôn m u sau ó có th c s d ng c ng thêm các ng ngh+a c n thi t, nh%m m c ích nh
ngh+a nên các ph n t mô hình còn thi u.
3.7.3. H n ch (Constraint)
M t s h n ch là m t s gi i h n v s s d ng ho c ý ngh+a c a m t ph n t . S h n ch ho c s&
c khai báo trong công c và c s d ng nhi u l n trong r!t nhi u bi u khác nhau, hay c
nh ngh+a và s d ng trong ch* m t bi u , theo nh nhu c u.
Hình 3.18 ch* ra m i quan h n i k t gi a nhóm các công dân l n tu i và l p con ng i, ch* ra r%ng
nhóm công dân có th có nhi u ng i liên quan. M c dù v y, miêu t r%ng ch* nh ng ng i nào l n
h n 60 tu i m i có th tham gia vào nhóm này, ng i ta nh ngh+a m t s h n ch , h n h-p tiêu chu$n
tham gia i v i ch* nh ng ng i nào mà thu c tính tu i tác có giá tr l n h n 60. nh ngh+a này s&
h n ch s l ng nh ng ng i c s d ng trong m i quan h . N u không có nó, ng i ta r!t d hi u
l m khi di n t bi u . Trong tr ng h p t i t , nó có th d n n s th c thi sai trái c a h th ng.
36
Trong tr ng h p này, h n ch c nh ngh+a và ng d ng tr c ti p trong chính bi u mà nó c
c n t i. Nh ng nhìn chung thì h n ch c'ng có th c nh ngh+a v i tên cùng l i c t riêng, ví d
nh : "công dân già" và "ng i có tu i l n h n 60", và h n ch này s& c s d ng trong nhi u bi u
khác nhau. UML có ch a m t lo t các h n ch c nh ngh+a s2n, chúng c miêu t chi ti t trong
các ch ng sau.
37
B n thân ngôn ng UML không ph thu c vào giai o n, có ngh+a là c'ng nh ng nguyên t"c ngôn ng
ó và c'ng nh ng bi u ó c s d ng mô hình hóa nh ng s vi c khác nhau trong nh ng giai
o n khác nhau. Nhà thi t k n"m quy n quy t nh xem m t mô hình s& ph i thay i nh%m t c
nh ng m c ích nào và bao trùm nh ng ph m vi nào. Ngôn ng mô hình hóa ch* cung c!p kh n(ng
t o ra các mô hình trong m t phong cách m r ng và nh!t quán.
Khi mô hình hóa b%ng ngôn ng UML, toàn b công vi c c n ph i c th c hi n theo m t ph ng
pháp hay m t qui trình, xác nh rõ nh ng b c công vi c nào ph i c ti n hành và chúng ph i c
th c thi ra sao. M t qui trình nh v y th ng s& chia công vi c ra thành các vòng l p k ti p, m.i vòng
l p bao g m các công vi c: phân tích yêu c u/ phân tích/ thi t k / th c hi n/ tri n khai. M c dù v y,
c'ng có m t quy trình nh h n c p t i n i dung c a vi c mô hình hóa. Bình th ng ra, khi s n xu!t
m t mô hình ho c s n xu!t ch* m t bi u duy nh!t, công vi c s& b"t u b%ng vi c thu th p m t
nhóm thích h p các cá nhân khác nhau, trình bày v!n và m c tiêu; h# c ng tác cho m t giai o n h i
th o khoa h#c và phác th o, trao i nh ng sáng ki n và ý t ng v mô hình có th . Công c cs
d ng trong giai o n này là h t s c khác bi t và mang tính ng u h ng - th ng là gi!y dán post it hay
b ng tr"ng. Công vi c c quy t nh ch ng nào nh ng ng i tham gia có c m giác h# ã có c
m t n n t ng th c ti n cho m t mô hình (gi ng nh m t tiêu ). K t qu sau ó s& c a vào m t
công c , mô hình tiêu c t ch c, và sau ó m t bi u th c s s& c t o d ng nên, phù h p
v i nh ng quy nh c a ngôn ng mô hình hóa. Sau ó, mô hình c chi ti t hóa qua nh ng công vi c
mang tính vòng l p, càng ngày càng có nhi u chi ti t v gi i pháp c phát hi n, c d li u hóa và
c b sung. Khi ã có nhi u thông tin h n c thu th p v v!n c'ng nh gi i pháp c a nó, tiêu
ban u d n d n tr thành m t l i chu$n oán cho m t mô hình có kh n(ng s d ng. Khi mô hình
ã g n hoàn thi n, m t s tích h p và th$m nh s& c th c hi n, d n t i vi c mô hình ho c bi u
s& c tích h p v i nh ng mô hình và bi u khác trong cùng d án m b o s nh!t quán. Mô
hình sau ó c'ng c ki m tra l i ch"c ch"n nó ang gi i quy t úng v!n c n gi i quy t (hình
3.20).
38
Hình 3.20 - M t ti n trình cho công vi c mô hình hoá th c t
Cu i cùng, mô hình s& c th c thi và tri n khai thành m t lo t các nguyên m u (prototype), nguyên
m u này s& c ki m tra tìm khi m khuy t. Các khi m khuy t bao g m k c các ch c n(ng còn
thi u, s th c hi n t i t hay phí s n xu!t và phát tri n quá cao. Nh ng khi m khuy t th ng s& ép nhà
phát tri n rà i rà l i công vi c c a mình kh"c ph c chúng. N u v!n là quá l n, nhà phát tri n có
th s& i ng c l i t!t c các b c công vi c c a mình cho t i t n giai o n s phác u tiên. N u các
v!n này không l n, nhà phát tri n có l& ch* c n thay i m t vài thành ph n trong t ch c ho c c
t c a mô hình. Xin nh r%ng b c t o nguyên m u không th c th c hi n ngay l p t c sau khi
hoàn t!t bi u ; nó ch* nên c th c hi n khi ã có m t s l ng l n các bi u liên quan. Nguyên
m u sau này có th c v t i, có th c t o d ng nên ch* nh%m m c ích ki m tra, ho c là n u
b c t o nguyên m u này thành công, nó s& tr thành m t vòng l p trong quy trình phát tri n th t s .
39
3.9. Công c( (Tool)
S d ng m t ngôn ng mô hình hóa ph c t p và r ng m nh UML c n thi t s tr giúp c a công c .
M c dù phác th o u tiên c a m t mô hình có th c th c hi n b%ng b ng tr"ng cùng gi!y và m c,
nh ng công vi c b o trì, ng b hóa và m b o s nh!t quán trong m t lo t các bi u khác nhau
th ng l i không th tr thành kh thi n u không có công c .
Th tr ng công c mô hình hóa ã d ng trong m c s kh i su t m t th i gian dài k t khi xu!t
hi n ý t ng u tiên v các ch ng trình tr giúp cho vi c t o ch ng trình. R!t nhi u công c trong
th c t ch* thông minh h n các ch ng trình v& m t chút, s d ng m t vài quy ch ki m tra tính nh!t
quán ho c m t vài ki n th c v ph ng pháp và ngôn ng mô hình hóa. M c dù ã có m t vài b c
ti n nh!t nh và nhi u công c hôm nay ã t i g n sáng ki n kh i th y kia nhi u h n (Rational Rose),
nh ng th tr ng v n còn không ít công c ch a c g#t gi'a, v n còn ch a l.i ho c nh ng nét k0
qu c, k c nh ng v!n n gi n nh copy và dán. Nh ng công c này còn h n ch ph ng di n
r%ng t!t c b#n chúng u có ngôn ng mô hình hóa riêng, hay ít nh!t thì c'ng có nh ng nh ngh+a
riêng c a chúng v ngôn ng này.
Cùng v i s ra i c a ngôn ng UML, các nhà cung c!p công c mô hình hóa gi ây có th dành
nhi u th i gian h n cho vi c nâng c!p công c , b i h# không c n ph i d n tâm d n s c cho vi c nh
ngh+a các ph ng pháp m i c'ng nh các ngôn ng m i.
M t công c mô hình hóa h ên i c n ph i cung c!p các ch c n(ng sau:
V bi u : c n ph i t o i u ki n d dàng v& ra các bi u trong ngôn ng mô hình hóa.
Công c c n ph i kh n(ng thông minh hi u m c ích c a các bi u và bi t c nh ng
ng ngh+a c'ng nh các quy t"c n gi n, nó có th c nh báo ho c ng(n ch n vi c s
d ng không thích h p các ph n t mô hình.
Ho t ng nh m t nhà kho (Repository): công c c n ph i h. tr m t nhà kho trung tâm
t!t c các thông tin v mô hình c l u tr trong cùng m t ch.. N u ví d tên c a m t l p
b thay i trong m t bi u , thì s thay i này c n ph i x y ra trong t!t c các bi u khác
có s d ng l p này.
H tr nh h ng (Navigation): công c c n ph i t o i u ki n d dàng cho ng i s d ng
nh h ng và chuy n d ch trong mô hình theo dõi m t ph n t t bi u này sang bi u
khác, ho c m r ng l i miêu t c a m t ph n t .
H tr nhi u ng i s d ng (multiuser support): Công c c n h. tr cho nhi u ng i s
d ng, và t o i u ki n cho h# cùng làm vi c v i m t mô hình mà không ng(n ch n ho c qu!y
phá l n nhau.
T ng t o code (code generate): m t công c cao c!p c n ph i có kh n(ng t o ra code,
n i t!t c các thông tin trong mô hình c chuy n t i thành các khung code (code skeletons),
c s d ng làm n n t ng cho giai o n xây d ng ch ng trình.
Tái t o mô hình (Reserve engineer): M t công c cao c!p c n ph i có kh n(ng #c nh ng
thành ph n code ang t n t i và t ó s n xu!t ra mô hình. T ó suy ra, m t mô hình có th
c làm t nh ng dòng code ã t n t i; ho c m t nhà phát tri n có th d dàng chuy n i
chuy n v gi a công vi c mô hình hóa và công vi c l p trình.
Tích h p v i các công c khác: m t công c c n ph i có kh n(ng tích h p v i nh ng công
c khác, v i c vi c phát tri n môi tr ng, ví d nh các trình so n th o (editor), ch ng trình
40
d ch (compiler), ch ng trình tìm l.i (debugger) c'ng nh các công c c a doanh nghi p khác
nh công c qu n tr c!u hình, h th ng theo dõi các phiên b n.
Bao quát mô hình t t c các m c tr u t ng hóa khác nhau: công c c n ph i d
chuy n t i t l i miêu t c!p tr u t ng hóa cao nh!t c a h th ng (t c là d ng m t l ng
các gói khác nhau) i xu ng cho t i c!p c a nh ng dòng code th t s . Sau ó, truy xu!t
nh ng dòng l nh code cho m t th t c c th nào ó trong m t l p nào ó, b n có th ch* c n
nh!p chu t vào tên c a th t c ó trong m t bi u .
Trao i mô hình: M t mô hình hay m t bi u c a m t mô hình nào ó c n ph i có kh
n(ng c xu!t ra t m t công c này r i nh p vào m t công c khác, gi ng nh nh ng dòng
l nh code c s n sinh trong m t công c này có th c s d ng trong m t công c khác.
Nguyên t"c trao i ó c n ph i c áp d ng cho các mô hình trong m t ngôn ng mô hình
hóa c nh ngh+a chính xác.
41
3.11. Ph n câu h i
H i: UML có công c nào giúp n"m b"t các yêu c u c a khách hàng (ng i s d ng)?
áp: Bi u l p và ct l p
H i: UML có công c nào ph c v cho giai o n th nghi m h th ng (System Testing)?
áp: úng
42
CH NG 4: MÔ HÌNH HÓA USE CASE
43
Khách hàng giao ti p v i h th ng (nhà b(ng) cho các ho t ng s d ng d ch v nh
m tài kho n, g i ti n vào, rút ti n m t, …
Quá trình t ng tác gi a ng i s d ng và h th ng trong m.i m t tình hu ng k trên s& khác nhau và
ph thu c vào ch c n(ng mà ng i s d ng mu n th c thi cùng h th ng.
Nhóm phát tri n h th ng c n ph i xây d ng nên m t k ch b n nêu b t s t ng tác c n thi t gi a
ng i s d ng và h th ng trong m.i kh n(ng ho t ng. Ví d nh k ch b n cho s t ng tác gi a
nhân viên thu ngân và h th ng c a b ph n ti t ki m trong su t ti n trình c a m t giao d ch. M t k ch
b n khác ví d là chu.i t ng tác x y ra gi a b ph n ti t ki m và b ph n u t trong m t giao d ch
chuy n ti n.
Nhìn chung, có th coi m t Use case nh là t p h p c a m t lo t các c nh k ch v vi c s d ng h
th ng. M.i c nh k ch mô t m t chu.i các s ki n. M.i m t chu.i này s& c kích ho t b i m t ng i
nào ó, m t h th ng khác hay là m t ph n trang thi t b nào ó, ho c là m t chu.i th i gian. Nh ng
th c th kích ho t nên các chu.i s ki n nh th c g#i là các Tác Nhân (Actor). K t qu c a chu.i
này ph i có giá tr s d ng i v i ho c là tác nhân ã gây nên nó ho c là m t tác nhân khác.
44
4.4. Mô hình hóa Use Case
Tr ng h p s d ng là m t k, thu t mô hình hóa c s d ng mô t m t h th ng m i s& ph i làm
gì ho c m t h th ng ang t n t i làm gì. M t mô hình Use Case c xây d ng qua m t quá trình
mang tính vòng l p (interative), trong ó nh ng cu c h i th o bàn lu n gi a nhóm phát tri n h th ng
và khách hàng (ho c/và ng i s d ng cu i) s& d n t i m t c t yêu c u c t!t c m#i ng i ch!p
nh n. Ng i cha tinh th n c a mô hình hóa Use Case là Ivar Jacobson, ông ã t o nên k, thu t mô hình
hóa d a trên nh ng kinh nghi m thu th p c trong quá trình t o h th ng AXE c a hãng Erisson.
Use Case ã nh n c m t s quan tâm c bi t l n lao t phía c ng ng h ng i t ng và ã tác
ng lên r!t nhi u ph ng pháp h ng i t ng khác nhau.
Nh ng thành ph n quan tr#ng nh!t c a m t mô hình Use Case là Use Case, tác nhân và h th ng. Ranh
gi i c a h th ng c nh ngh+a qua ch c n(ng t ng th mà h th ng s& th c thi. Ch c n(ng t ng th
c th hi n qua m t lo t các Use Case và m.i m t Use Case c t m t ch c n(ng tr#n v-n, có ngh+a
là Use Case ph i th c thi toàn b ch c n(ng ó, t s ki n c kích ho t u tiên b i m t tác nhân
ngo i c nh cho t i khi ch c n(ng òi h i c th c hi n hoàn t!t. M t Use Case luôn luôn ph i cung
c!p m t giá tr nào ó cho m t tác nhân, giá tr này là nh ng gì mà tác nhân mong mu n t phía h
th ng. Tác nhân là b!t k0 m t th c th ngo i c nh nào mong mu n t ng tác v i h th ng. Th ng
th ng, ó là m t ng i s d ng c a h th ng, nh ng nhi u khi c'ng có th là m t h th ng khác ho c
là m t d ng máy móc thi t b ph n c ng nào ó c n t ng tác v i h th ng.
Trong k, thu t mô hình hóa Use Case, h th ng s& có hình d ng c a m t "h p en" và cung c!p các
Use Case. H th ng làm i u ó nh th nào, các Use Case c th c thi ra sao, ó là nh ng khía c nh
ch a c c p t i trong giai o n này. Trong th c t , n u mô hình hóa Use Case c th c hi n
trong nh ng giai o n u c a d án thì th ng nhà phát tri n s& không bi t Use Case sau này s& c
th c thi (t c là bi n thành nh ng dòng code th t s ) nh th nào.
M c tiêu chính y u i v i các Use Case là:
quy t nh và mô t các yêu c u v m t ch c n(ng c a h th ng, ây là k t qu rút
ra t s th a thu n gi a khách hàng (và/ho c ng i s d ng cu i) và nhóm phát tri n
ph n m m.
t o nên m t l i mô t rõ ràng và nh!t quán v vi c h th ng c n ph i làm gì, làm
sao mô hình có th c s d ng nh!t quán su t toàn b quá trình phát tri n, cs
d ng làm công c giao ti p cho t!t c nh ng ng i phát tri n nên các yêu c u này, và
t o nên m t n n t ng cho vi c t o nên các mô hình thi t k cung c!p các ch c n(ng
c yêu c u.
t o nên m t n n t ng cho các b c th nghi m h th ng, m b o h th ng th a
mãn úng nh ng yêu c u do ng i s d ng a ra. Trong th c t th ng là tr l i
câu h i: Li u h th ng cu i cùng có th c hi n nh ng ch c n(ng mà kh i u khách
hàng ã ngh ?
cung c!p kh n(ng theo dõi các yêu c u v m t ch c n(ng c chuy n thành các
l p c th c'ng nh các th t c c th trong h th ng.
n gi n hóa vi c thay i và m r ng h th ng qua vi c thay i và m r ng mô
hình Use Case, sau ó ch* theo dõi riêng nh ng Use Case ã b thay i cùng nh ng
hi u ng c a chúng trong thi t k h th ng và xây d ng h th ng.
45
Nh ng công vi c c th c n thi t t o nên m t mô hình Use Case bao g m:
1. nh ngh+a h th ng (xác nh ph m vi h th ng)
2. Tìm ra các tác nhân c'ng nh các Use Case
3. Mô t Use Case
4. nh ngh+a m i quan h gi a các Use Case
5. Ki m tra và phê chu$n mô hình.
ây là m t công vi c mang tính t ng tác r!t cao, bao g m nh ng cu c th o lu n v i khách hàng và
nh ng ng i i di n cho các lo i tác nhân. Mô hình Use Case bao g m các bi u Use Case ch* ra
các tác nhân, Use Case và m i quan h c a chúng v i nhau. Các bi u này cho ta m t cái nhìn t ng
th v mô hình, nh ng nh ng l i mô t th c s c a t ng Use Case th ng l i là v(n b n. Vì các mô
hình tr c quan không th cung c!p t!t c các thông tin c n thi t, nên c n thi t ph i dùng c hai k, thu t
trình bày ó.
Có r!t nhi u ng i quan tâm n vi c s d ng các mô hình Use Case. Khách hàng (và/ho c ng i s
d ng cu i) quan tâm n chúng vì mô hình Use Case c t ch c n(ng c a h th ng và mô t xem h
th ng có th và s& c s d ng ra sao. Các Use Case vì v y ph i c mô t trong nh ng thu t ng và
ngôn ng c a khách hàng/ng i s d ng.
Nhà phát tri n c n n các mô hình Use Case hi u h th ng c n ph i làm gì, và qua ó có cm t
n n t ng cho nh ng công vi c t ng lai (các mô hình khác, các c!u trúc thi t k và vi c th c thi xây
d ng h th ng b%ng code).
Các nhóm chuyên gia th nghi m tích h p và th nghi m h th ng c n n Use Case th nghi m và
ki m tra xem h th ng có m b o s& th c hi n úng ch c n(ng ã c c t trong giai o n u.
Và cu i cùng, b!t k0 ng i nào liên quan n nh ng ho t ng liên k t n ch c n(ng c a h th ng
u có th quan tâm n các mô hình Use Case; ví d nh các nhóm ti p th , bán hàng, h. tr khách
hàng và các nhóm so n th o tài li u.
Mô hình Use Case mô t h ng nhìn Use Case c a h th ng. H ng nhìn này là r!t quan tr#ng, b i nó
nh h ng n t!t c các h ng nhìn khác c a h th ng. C c!u trúc logic l n c!u trúc physic u ch u
nh h ng t các Use Case, b i ch c n(ng c c t trong mô hình này chính là nh ng ch c n(ng
c th c thi trong các c!u trúc kia. M c ích cu i cùng là thi t k ra m t gi i pháp th a mãn các yêu
c u ó.
Mô hình hóa các Use Case ch)ng ph i ch* c dùng n"m b"t các yêu c u c a h th ng m i; nó
c'ng còn c s d ng h. tr cho vi c phát tri n m t phiên b n m i c a h th ng. Khi phát tri n
m t phiên b n m i c a h th ng ang t n t i, ng i ta s& b sung thêm các ch c n(ng m i vào mô hình
Use Case ã có b%ng cách thêm vào các tác nhân m i c'ng nh các Use Case m i, ho c là thay i c
t c a các Use Case ã có. Khi b sung thêm vào mô hình Use Case ang t n t i, hãy chú ý không
b ra b!t k0 m t ch c n(ng nào v n còn c c n t i.
46
ph n t mô hình bi u th h th ng, tác nhân c'ng nh Use Case và ch* ra các m i quan h gi a các Use
Case.
L i mô t n i dung Use Case th ng c cung c!p d i d ng v(n b n. Trong UML, l i mô t ó
c coi là thu c tính "v(n b n" (document) c a Use Case. L i mô t này bao ch a nh ng thông tin
quan tr#ng, nh ngh+a các yêu c u và ch c n(ng c th . Thay cho vi c mô t Use Case b%ng v(n b n,
b n c'ng có th v& m t bi u ho t ng (activity diagram). M c d u v y, nên nh r%ng m t Use Case
c n ph i c mô t sao cho d hi u và d giao ti p i v i ng i s d ng, mà nh ng c!u trúc ph c t p
nh m t bi u ho t ng có th gây c m giác xa l i v i nh ng ng i không quen s d ng.
Tóm t"t: M t bi u Use Case th hi n:
H th ng
Tác nhân và
Use Case.
Ví d bi u Use Case trong UML:
4.5.1. H th ng
Vì h th ng là m t thành ph n c a mô hình Use Case nên ranh gi i c a h th ng mà ta mu n phát tri n
c n ph i c nh ngh+a rõ ràng. Xin nh r%ng m t h th ng không ph i bao gi c'ng nh!t thi t là m t
h th ng ph n m m; nó có th là m t chi c máy, ho c là m t doanh nghi p. nh ngh+a các ranh gi i
và trách nhi m c a h th ng không ph i bao gi c'ng là vi c d dàng, b i không ph i bao gi ng i ta
c'ng rõ ràng nhìn ra tác v nào có kh n(ng ct ng hóa t t nh!t h th ng này và tác v nào thì
t t nh!t nên th c hi n th công ho c dành cho các h th ng khác. M t khía c nh khác c n chú ý là h
th ng c n ph i l n t i m c nào trong phiên b n u tiên c a nó. C g"ng t i a cho phiên b n u
tiên c a h th ng th ng là cách mà ng i ta hay th c hi n, th nh ng nh ng m c tiêu quá t m nh
v y có th khi n cho h th ng tr nên quá l n và th i gian cung c!p h th ng quá lâu. M t sáng ki n
t t h n là xác nh n cho rõ các ch c n(ng c(n b n và t p trung vào vi c nh ngh+a m t ki n trúc h
47
th ng thích h p, rõ ràng, có n n t ng r ng m nhi u ch c n(ng h n có th c b sung vào h
th ng này trong các phiên b n sau.
Y u t quan tr#ng là b n ph i t o d ng c m t b n catalog c a các khái ni m (các th c th ) trung
tâm cùng v i các thu t ng và nh ngh+a thích h p trong nh ng giai o n u c a th i k0 phân tích.
ây ch a ph i mô hình ph m vi i t ng, mà úng h n là m t c g"ng mô t các thu t ng c a h
th ng ho c doanh nghi p mà chúng ta c n mô hình hóa. Các thu t ng sau ó s& c dùng mô t
Use Case. Ph ng th c c th c a catalog này có th r!t khác nhau; nó có th là m t mô hình khái
ni m ch* ra các m i quan h n gi n ho c ch* là m t v(n b n ch a các thu t ng cùng l i mô t v"n
t"t nh ng thu t ng này trong th gi i th c.
48
Tác nhân còn có th c nh ngh+a theo d ng tác nhân ch ng (active actor) hay tác nhân th ng
(passive actor). M t tác nhân ch ng là tác nhân gây ra Use Case, trong khi tác nhân th ng không
bao gi gây ra Use Case mà ch* tham gia vào m t ho c là nhi u Use Case.
49
(method) c'ng nh m t thu c tính tài li u (document) mô t tác nhân ó. M t l p tác nhân có m t bi u
t ng chu$n hóa, bi u t ng "hình nhân":
50
4.5.6. Tìm Use Case
Quá trình tìm các Use Case b"t u v i các tác nhân ã c xác nh ph n tr c. i v i m.i tác
nhân, hãy h i các câu h i sau:
a. Tác nhân này c n nh ng ch c n(ng nào t h th ng? Hành ng chính c a tác nhân là gì ?.
Ví d cho m t giao d ch rút ti n bên máy ATM trong m t nhà b(ng l/, các hành ng
chính c a khách hàng (tác nhân) có th là :
út th/ vào máy ATM
Nh p password
Nh p lo i chuy n d ch
Nh p s ti n m t mu n rút ra
Yêu c u v lo i ti n
Nh t ti n ra t máy
Rút th/ và t in k t qu giao d ch
b. Tác nhân có c n ph i #c, ph i t o, ph i h y b , ph i s a ch a, hay là l u tr m t lo i thông
tin nào ó trong h th ng?
Ví d :
Nhân viên nhà b(ng li u có quy n truy xu!t hay thay i m c ti n lãi?
Khách hàng có th thay i password c a mình.
c. Tác nhân có c n ph i báo cho h th ng bi t v nh ng s ki n nào ó? Nh ng s ki n nh th
s& i di n cho nh ng ch c n(ng nào?
Ví d :
Khách hàng k t thúc tài kho n, nhân viên cung c!p nh ng thông tin này cho h
th ng.
Có m t ch ng trình u t m i, các chi ti t c a ch ng trình này s& ph i c
nhân viên nhà b(ng nh p vào h th ng.
d. H th ng có c n ph i thông báo cho Actor v nh ng thay i b!t ng trong n i b h th ng?
Trong tài kho n còn quá ít ti n.
Ba k0 liên ti p ti n l ng ch a v tài kho n.
e. Công vi c hàng ngày c a tác nhân có th c n gi n hóa ho c h u hi u hóa qua các ch c
n(ng m i trong h th ng (th ng ây là nh ng ch c n(ng tiêu bi u ch a ct ng hóa
trong h th ng)?
f. Các câu h i khác:
51
Use Case có th c gây ra b i các s ki n nào khác?
Ví d :
S ki n th i gian: Cu i tháng, h t h n ut .
S ki n bình th ng c a h th ng: T ng chuy n ti n theo các l nh xác nh
tr c.
Các s ki n b!t bình th ng: H p ng u t k t thúc tr c th i h n.
H th ng c n nh ng thông tin u vào/ u ra nào? Nh ng thông tin u vào/ u ra ó
t âu t i và s& i âu?
Khó kh(n và thi u h t chính trong h th ng hi n th i n%m âu (th công /t ng
hóa)?
i v i nhóm câu h i cu i không có ngh+a là Use Case ây không có tác nhân, mà tác nhân s& c
nh n ra ch* khi chúng ta nh n di n ra các Use Case này và sau ó xác nh tác nhân d a trên c s là
Use Case. Xin nh"c l i, m t Use Case bao gi c'ng ph i c liên k t v i ít nh!t m t tác nhân.
52
Hình 4.3 – Các Use case trong h th ng ATM
Use Case g i ti n vào và rút ti n ra ph thu c vào Use Case th c hi n các chuy n d ch trong n i b h
th ng, vi c th c hi n này v ph n nó l i ph thu c vào ch c n(ng in ra các công vi c ã c th c
hi n. Ki m tra m c ti n trong tài kho n là m t Use Case c l p, không ph thu c vào các Use Case
khác.
53
M c ti n trong tài kho n không ti n hành giao d ch
Password không úng
ATM b ngh&n th/
Hình sau nêu b t dòng hành ng chính và nh ng dòng hành ng thay th c'ng nh s khác bi t c a
chúng i v i ti n trình mong i c a Use Case.
4.7.1. Quan h m r ng
Nhi u khi trong quá trình phát tri n Use Case, ng i ta th!y m t s Use Case ã t n t i cung c!p m t
ph n nh ng ch c n(ng c n thi t cho m t Use Case m i. Trong m t tr ng h p nh v y, có th nh
54
ngh+a m t Use Case m i là Use Case c' c ng thêm m t ph n m i. M t Use Case nh v y c g#i là
m t Use Case m r ng (Extended Use Case ). Trong quan h m r ng, Use Case g c (Base Use Case )
c dùng m r ng ph i là m t Use Case hoàn thi n. Use Case m r ng không nh!t thi t ph i s
d ng toàn b hành vi c a Use Case g c.
Bi u sau ch* ra Use Case “Ký h p ng mua ô tô” là Use Case m r ng c a "Ký h p ng b o
hi m”.
4.7.2. Quan h s d ng
Khi m t nhóm các Use Case cùng chung m t hành vi nào ó thì hành vi này có th c tách riêng ra
thành m t Use Case riêng bi t và nó có th c s d ng b i các Use Case kia, m t m i quan h nh
v y c g#i là quan h s d ng. Trong quan h s d ng, ph i s d ng toàn b Use Case khái quát
hóa, nói m t cách khác, ta có m t Use Case này s d ng toàn b m t Use Case khác. Các hành ng
trong Use Case khái quát hóa không c n ph i c s d ng trong cùng m t ti n trình. Chúng có th
c tr n l n v i các hành ng x y ra trong Use Case chuyên bi t hóa.
55
Quan h s d ng gi a các Use Case c bi u th b%ng o n th)ng v i hình tam giác r.ng tr v phía
Use Case c s d ng, i kèm v i stereotype <<uses>>.
56
4.8. Miêu t Use Case
Nh ã trình bày, l i miêu t m t Use Case th ng c th c hi n trong v(n b n. ây là l i c t n
gi n và nh!t quán v vi c các tác nhân và các Use Case (h th ng) t ng tác v i nhau ra sao. Nó t p
trung vào ng x i ngo i c a h th ng và không c p t i vi c th c hi n n i b bên trong h th ng.
Ngôn ng và các thu t ng c s d ng trong l i miêu t chính là ngôn ng và các thu t ng cs
d ng b i khách hàng/ng i dùng.
V(n b n miêu t c n ph i bao g m nh ng i m sau:
M c ích c a Use Case: M c ích chung cu c c a Use Case là gì? Cái gì c n ph i
c t t i? Use Case nói chung u mang tính h ng m c ích và m c ích c a m.i
Use Case c n ph i rõ ràng.
Use Case c kh i ch y nh th nào: Tác nhân nào gây ra s th c hi n Use Case này?
Trong hoàn c nh nào?
Chu.i các thông i p gi a tác nhân và Use Case: Use Case và các tác nhân trao i
thông i p hay s ki n nào thông báo l n cho nhau, c p nh t ho c nh n thông tin và
giúp 4 nhau quy t nh? Y u t nào s& miêu t dòng ch y chính c a các thông i p
gi a h th ng và tác nhân, và nh ng th c th nào trong h th ng c s d ng ho c là
b thay i?
Dòng ch y thay th trong m t Use Case: M t Use Case có th có nh ng dòng th c thi
thay th tùy thu c vào i u ki n. Hãy nh"c n các y u t này, nh ng chú ý ng miêu
t chúng quá chi ti t n m c chúng có th “che khu!t“ dòng ch y chính c a các ho t
ng trong tr ng h p c(n b n. Nh ng ng tác x lý l.i c bi t s& c miêu t thành
các Use Case khác.
Use Case s& k t thúc v i m t giá tr i v i tác nhân nh th nào: Hãy miêu t khi nào
Use Case c coi là ã k t thúc, và lo i giá tr mà nó cung c!p n tác nhân.
Hãy nh r%ng l i miêu t này s& xác nh nh ng gì c th c thi có liên quan n tác nhân bên ngoài,
ch không ph i nh ng s vi c c th c hi n bên trong h th ng. V(n b n ph i rõ ràng, nh!t quán,
khi n cho khách hàng có th d dàng hi u và th$m tra chúng ( r i ng ý r%ng nó i di n cho nh ng
gì mà anh/cô ta mu n t phía h th ng). Tránh dùng nh ng câu v(n ph c t p, khó di n gi i và d hi u
l m.
M t Use Case c'ng có th c miêu t qua m t bi u ho t ng. Bi u ho t ng này ch* ra chu.i
các hành ng, th t c a chúng, các quy t nh ch#n l a xác nh xem hành ng nào sau ó s&
c th c hi n.
b sung cho l i miêu t m t Use Case, ng i ta th ng a ra m t lo t các c nh k ch c th
minh h#a i u gì s& x y ra m t khi Use Case này c th c th hóa. L i miêu t c nh k ch minh h#a
m t tr ng h p c bi t, khi c tác nhân l n Use Case u c coi là m t th c th c th . Khách hàng
có th d dàng hi u h n toàn b m t Use Case ph c t p n u có nh ng c nh k ch c miêu t th c ti n
h n, minh h#a l i l i ng x và ph ng th c ho t ng c a h th ng. Nh ng xin nh r%ng, m t l i
miêu t c nh k ch ch* là m t s b sung ch không ph i là ng c viên thay th cho l i miêu t Use
Case.
Sau khi các Use Case ã c miêu t , m t ho t ng và m t công vi c c bi t c n ph i th c hi n là
th$m tra xem các m i quan h ( ã c p t i trong ph n 2.7) có c nh n di n không. Tr c khi t!t c
57
các Use Case c miêu t , nhà phát tri n ch a th có c nh ng ki n th c hoàn t!t và t ng th
xác nh các m i quan h thích h p, th nghi m làm theo ph ng th c ó có th s& d n n m t tình
hu ng nguy hi m. Trong th i gian th c hi n công vi c này, hãy tr l i các câu h i sau:
T!t c các tác nhân liên quan n m t Use Case có m i liên k t giao ti p v i Use Case
ó không?
Có t n t i nh ng s t ng t gi a m t lo t các tác nhân minh h#a m t vai trò chung và
nhóm này li u có th c miêu t là m t l p tác nhân c(n b n (base class)?
Có t n t i nh ng s t ng t gi a m t lo t các Use Case, minh h#a m t dòng ch y
hành ng chung? N u có, li u i u này có th c miêu t là m t m i quan h s
d ng n v i m t Use Case khác?
Có t n t i nh ng tr ng h p c bi t c a m t Use Case có th c miêu t là m t m i
quan h m r ng?
Có t n t i m t tác nhân nào hay m t Use Case nào không có m i liên k t giao ti p?
N u có, ch"c ch"n ây ã có chuy n l m l c, sai trái: T i sao l i xu!t hi n tác nhân
này?
Có l i yêu c u nào v ch c n(ng ã c xác nh, nh ng l i không c b!t k0 m t
Use Case nào x lý? N u th , hãy t o m t Use Case cho yêu c u ó.
-c t Use Case:
Chi ti!t tài kho n: // tên Use Case
S Use Case: UCSEC35
Miêu t ng)n: // miêu t ng n g n Use Case
Use Case "chi ti t tài kho n" cho phép nhân viên nhà b(ng xem các chi ti t c a m t tài kho n mà anh ta
nh tìm hi u.
Dòng ch y các s* ki n: // dòng logic chung
Nhân viên ch#n Chi Ti t Tài Kho n trên menu. M t con ng khác ch* ra các thông tin chi ti t c a
tài kho n là g#i t Màn Hình Tóm T"t Thông Tin V Tài Kho n (xem Use Case s UCSEC99).
Dòng hành 'ng chính: // dòng logic chi ti t.
M.i khách hàng s& có m t s nh danh g#i là CustomerId. M t khách hàng có th có nhi u tài kho n.
Sau khi nhân viên nh p CustomerId vào h th ng, màn hình ph i in ra t!t c nh ng tài kho n thu c v
khách hàng này và thu c v nhà b(ng ABC, r i rác t i t!t c các chi nhánh. Khi ch#n ti p lo i tài kho n
và s tài kho n, các chi ti t c a tài kho n mong mu n s& c in ra.
58
Lo i tài kho n ti t ki m: N u lo i tài kho n c ch#n là tài kho n ti t ki m, thì theo Use Case s
UCSEC45, các chi ti t sau ây s& c in ra:
M c ti n hi n có
Các t sec ch a thanh toán
L ng ti n tín d ng c phép
L ng ti n lãi cho t i ngày hôm nay
L ng ti n t i thi u c n ph i có trong tài kho n
Lo i tài kho n u t : N u lo i tài kho n c ch#n là lo i u t , thì theo Use Case s UCSEC46, các
chi ti t sau ây s& c in ra.
H n ut
S ti n ut
Ngày ut
L ng ti n cu i h n
Ngày cu i h n
T3 l l i
Dòng hành 'ng thay th!: // chu i logic thay th
Không tìm th!y chi ti t: Khi ch#n m t s tài kho n không thích h p (không có tài kho n t ng ng) dù
vì lý do ch c n(ng hay k, thu t, theo Use Case s UCSEC12, h th ng s& a ra m t màn hình báo l.i.
i u ki n thoát: // Use Case k t thúc nh th nào?
Nút Thoát: Khi ch#n nút thoát, ng i s d ng s& quay tr l i màn hình chính.
Nút Xem Thêm: Khi ch#n nút này, ng i s d ng s& c yêu c u ch#n lo i tài kho n t m t danh
sách xu ng.
Nút Xem Giao D ch: Khi ch#n nút này, ng i s d ng s& c chuy n sang màn hình "Giao d ch" và
theo Use Case s UCSEC91, màn hình s& ch* ra nh ng giao d ch ã x y ra i v i tài kho n, bên c nh
nh ng chi ti t chính c a tài kho n.
Nút Yêu C u In K t Qu : Khi ch#n ph n th c n này, k t qu giao d ch theo Use Case s UCSEC70
s& c in ra m t máy in a ph ng n i tr c ti p v i máy tính c a nhân viên.
Các yêu c u -c bi t: // các yêu c u c bi t
Theo Use Case s UCSEC110, h th ng có kh n(ng in lên màn hình b%ng nh ng ngôn ng khác. Ch c
n(ng này s& c kích ho t khi ng i s d ng ch#n m c Ngo i Ng trên menu.
i u ki n tr c ó: // i u x y ra tr c khi Use Case c th c hi n
59
B o an: Ng i s d ng (nhân viên ti p khách) c cung c!p m t s nh danh riêng bi t truy nh p
vào h th ng.
D ch chuy n: Ng i s d ng ch* n c màn hình Chi Ti t Tài Kho n sau khi ã truy nh p thành
công và Identify thành công.
i u ki n sau ó: // i u gì x y ra sau khi Use Case c th c hi n?
H th ng s& không l u tr l i b!t k0 m t thông tin nào liên quan t i khách hàng lên +a c ng c c b .
60
h# bi t c làm cách nào có th a ra nh ng l i miêu t Use Case rõ ràng h n, minh b ch h n, và
ch* ra nh ng i m còn thi u. M t khi vai trò c a t!t c các tác nhân ã c di n và th c thi, và t!t c
các Use Case ã c th c thi theo ki u này, ó là th i i m mà ng i ta nói m t quá trình th nghi m
c a mô hình Use Case ã hoàn t!t.
61
M i quan h gi a m t Use Case và s th c thi nó theo khái ni m c ng tác c ch* ra ho c qua m t
m i quan h nâng cao (refinement relationship) – bi u th b%ng o n th)ng ch!m ch!m v i m'i tên - - -
-> hay m t hyperlink ng m trong m t công c nào ó. M t hyperlink trong m t công c s& t o i u
ki n chuy n t vi c quan sát m t Use Case trong m t bi u Use Case sang ngay s c ng tác th c thi
Use Case ó. Các hyperlink c'ng c s d ng chuy n t Use Case này sang m t c nh k ch
(th ng là m t mô hình ng – bi u ho t ng, bi u chu.i hay bi u c ng tác) miêu t m t s
th c hi n c th nào ó c a Use Case.
Phân b trách nhi m cho các l p m t cách thành công là m t tác v òi h i kinh nghi m. C'ng gi ng
nh m#i công o n h ng i t ng khác, công vi c này mang tính vòng l p (iterative). Nhà phát tri n
th nghi m v i nhi u s phân b trách nhi m khác nhau và d n d n nâng c!p chúng trong gi i pháp
c a mình cho t i khi t o ra c m t mô hình th c hi n ch c n(ng ó, ng th i l i m c n(ng
ng cho phép ti n hành các s thay i trong t ng lai.
Jacobson s d ng ph ng pháp nh ngh+a ba lo i i t ng c(n b n (có ngh+a là ba lo i l p): các i
t ng biên (boundary objects) , i t ng ch* huy (control objects) và i t ng th c th (entity
objects). i v i m.i Use Case, các l#ai i t ng này c s d ng miêu t m t s c ng tác th c
thi Use Case. Trách nhi m c a các lo i i t ng k trên nh sau:
i t ng th c th : lo i i t ng này i di n cho các th c th c a bài toán n%m trong
ph m vi mà h th ng x lý. Th ng chúng mang tính th ng, theo khái ni m là chúng không
t gây nên các t ng tác i v i chúng. Trong m t h th ng thông tin, các i t ng th c th
th ng mang tính tr ng t n (persistent) và c l u tr trong m t h ngân hàng d li u. Các
i t ng th c th th ng tham gia vào nhi u Use Case khác nhau.
i t ng biên: lo i i t ng này n%m g n ng ranh gi i c a h th ng (m c dù v n n%m
bên trong h th ng). Chúng t ng tác v i các tác nhân n%m bên ngoài h th ng và nh n thông
i p c'ng nh g i thông i p n các lo i i t ng khác n%m bên trong h th ng.
i t ng ch" huy: lo i i t ng này ch* huy s t ng tác gi a các nhóm i t ng. M t
i t ng nh th có th óng vai trò "b ph n i u khi n” cho toàn b m t Use Case hoàn t!t,
hay nó có th th c thi m t chu.i hành ng chung c a nhi u Use Case. Th ng thì m t i
t ng nh v y ch* t n t i trong quá trình th c thi Use Case.
Ba lo i i t ng này có ba kí hi u khác nhau và có th c s d ng khi v& các lo i bi u miêu t
c ng tác ho c bi u l p. Sau khi ã nh ngh+a nhi u lo i i t ng khác nhau và xác nh n các c ng
tác, ng i ta có th công i tìm s t ng t gi a chúng m t s l p có th c s d ng trong m t
lo t các Use Case khác nhau. S d ng các Use Case theo ph ng th c này ta có th t o nên n n t ng
cho vi c phân tích và thi t k h th ng; qui trình phát tri n c Ivar Jacobson g#i là "Qui Trình Phát
Tri n Theo Use Case" (Use case – driven).
Nhìn chung có nhi u ph ng pháp khác nhau phân b trách nhi m t Use Case v cho các l p. Có
ph ng pháp ngh u tiên ph i ti n hành phân tích ph m vi bài toán, ch* ra t!t c các l p th c th
(thu c ph m vi bài toán) v i m i quan h c a chúng v i nhau. Sau ó nhà phát tri n s& phân tích t ng
Use Case và phân b trách nhi m cho các l p trong mô hình phân tích (analysis model), nhi u khi s&
thay i chúng ho c b sung thêm các l p m i. M t ph ng pháp khác l i ngh là nên l!y các Use
Case làm n n t ng tìm các l p, làm sao trong quá trình phân b trách nhi m thì mô hình phân tích
c a ph m vi bài toán s& t ng b c t ng b c c thi t l p.
M t i m quan tr#ng c n ph i nh"c l i là công vi c ây mang tính vòng l p. Khi phân b trách nhi m
cho các l p, ta có th phát hi n ra s thi u ng b ho c l.i trong các bi u l p và qua ó, d n n
62
vi c s a ch a trong bi u l p. Nh ng l p m i s& c nh n d ng và tìm ra nh%m m c ích h. tr
cho các Use Case. Trong m t s tr ng h p, th m chí có th x y ra chuy n ph i thay i ho c s a ch a
c bi u Use Case vì khi hi u h th ng m t cách sâu s"c h n, nhà phát tri n s& nh n ra r%ng có m t
Use Case nào ó ã không c miêu t chính xác và úng "n. Các Use Case giúp chúng ta t p trung
vào khía c nh ch c n(ng c a h th ng, làm sao ph i m b o cho nó c miêu t chính xác và c
xây d ng chính xác trong h th ng. M t trong nh ng v!n x y ra v i nhi u ph ng pháp h ng i
t ng mà không s d ng n khái ni m Use Case là chúng t p trung quá nhi u vào c!u trúc t+nh c a
các l p và các i t ng (nhi u khi ng i ta g#i là ph ng pháp mô hình hóa khái ni m – conceptual
modeling) nh ng l i b qua các khía c nh ch c n(ng và khía c nh ng c a h th ng.
4.12. Ph n câu h i
H i: M t tác nhân (Actor) trong m t Use Case luôn là m t con ng i
áp: úng
H i: M.i h th ng ch* có m t Use Case?
áp: Sai
63
H i: Bi u Use case mô t ch c n(ng h th ng?
áp: úng
64
CH NG 5 : MÔ HÌNH I T +NG
5.1.1. it ng (Object)
M t i t ng là m t s t ng tr ng cho m t th c th , ho c là th c th t n t i trong th gi i i th c
ho c th c th mang tính khái ni m. M t i t ng có th t ng tr ng cho cái gì ó c th , ví d nh
m t chi c xe ô tô ch hàng c a b n ho c chi c máy tính c a tôi, ho c t ng tr ng cho m t khái ni m ví
d nh m t quy trình hóa h#c, m t giao d ch trong nhà b(ng, m t l i t hàng, nh ng thông tin trong
quá trình s d ng tín d ng c a khách hàng hay m t t3 l ti n l i.
C'ng có nh ng i t ng (ví d nh các i t ng th c thi m t trong h th ng ph n m m) không th t
s t n t i ngoài th gi i th c, nh ng là k t qu d n xu!t t quá trình nghiên c u c!u trúc và ng x
c a các i t ng ngoài th gi i th c. Nh ng i t ng ó, dù là b%ng cách này hay cách khác, u
liên quan n quan ni m c a chúng ta v th gi i th c.
M t i t ng là m t khái ni m, m t s tr u t ng hóa, ho c là m t v t v i ranh gi i và ý ngh+a
c nh ngh+a rõ ràng cho m t ng d ng nào ó. M.i i t ng trong m t h th ng u có ba c
tính: tr ng thái, ng x và s nh n di n.
65
2 là hai i t ng trong h th ng ghi danh tr ng h#c. M c dù c hai u thu c lo i b ng ghi danh, m.i
khóa h#c v n có s nh n d ng duy nh!t c a mình.
5.1.3. L p (Class)
M t l p là m t l i miêu t c a m t nhóm các i t ng có chung thu c tính, chung ph ng th c ( ng
x ), chung các m i quan h v i các i t ng khác và chung ng ngh+a (semantic). Nói nh th có
ngh+a l p là m t khuôn m u t o ra i t ng. M.i i t ng là m t th c th c a m t l p nào ó và
m t i t ng không th là k t qu th c th hóa c a nhi u h n m t l p. Chúng ta s d ng khái ni m
l p bàn lu n v các h th ng và phân lo i các i t ng mà chúng ta ã nh n d ng ra trong th
gi i th c.
M t l p t t s& n"m b"t m t và ch* m t s tr u t ng hóa - nó ph i có m t ch chính. Ví d , m t l p
v a có kh n(ng gi t!t c các thông tin v m t sinh viên và thông tin v t!t c nh ng l p h#c mà
ng i sinh viên ó ã tr i qua trong nhi u n(m tr c không ph i là m t l p t t, b i nó không có ch
chính. L p này c n ph i c chia ra làm hai l p liên quan n nhau: l p sinh viên và l p l ch s c a
sinh viên.
66
Ví d v các l p trong doanh nghi p và các h th ng thông tin:
Khách hàng
B n th ng thuy t
Hóa n
Món n
Tài s n
B n công b giá c phi u
Các l p trong m t h th ng k, thu t th ng bao g m các it ng k, thu t, ví d nh máy móc c
s d ng trong h th ng:
Sensor
Màn hình
I/O card
ng c
Nút b!m
L p i u khi n
Các h th ng ph n m m th ng có các l p i di n cho các th c th ph n m m trong m t h i u
hành:
File
Ch ng trình ch y c
Trang thi t b
Icon
C as
Thanh kéo
67
các l p, nh ng bên c nh ó còn có m t bi n t!u h i khác i m t chút ch* ra các it ng th t s là các
th c th c a các l p này (bi u i t ng).
5.2. Tìm l p
H u nh không có m t công th c chung cho vi c phát hi n ra các l p. i tìm các l p là m t công vi c
òi h i trí sáng t o và c n ph i c th c thi v i s tr giúp c a chuyên gia ng d ng. Vì qui trình
phân tích và thi t k mang tính vòng l p, nên danh sách các l p s& thay i theo th i gian. T p h p ban
u c a các l p tìm ra ch a ch"c ã là t p h p cu i cùng c a các l p sau này s& c th c thi và bi n
i thành code. Vì th , th ng ng i ta hay s d ng n khái ni m các l p ng c viên (Candidate
Class) miêu t t p h p nh ng l p u tiên c tìm ra cho h th ng.
Nh ã nói trong ph n 2.10 (Th c hi n Tr ng h p s d ng), tr ng h p s d ng là nh ng l i miêu t
ch c n(ng c a h th ng, còn trách nhi m th c thi thu c v các i t ng c ng tác th c thi ch c n(ng
ó. Nói m t cách khác, chúng ta i tìm các l p là ti n t i tìm gi i pháp cung c!p nh ng ng x
h ng ngo i ã c xác nh trong các tr ng h p s d ng.
Có nhi u ph ng pháp khác nhau th c hi n công vi c ó. Có ph ng pháp ngh ti n hành phân
tích ph m vi bài toán, ch* ra t!t c các l p th c th (thu c ph m vi bài toán) v i m i quan h c a chúng
v i nhau. Sau ó nhà phát tri n s& phân tích t ng tr ng h p s d ng và phân b trách nhi m cho các
l p trong mô hình phân tích (analysis model), nhi u khi s& thay i chúng ho c b sung thêm các l p
m i. Có ph ng pháp ngh nên l!y các tr ng h p s d ng làm n n t ng tìm các l p, làm sao
trong quá trình phân b trách nhi m thì mô hình phân tích c a ph m vi bài toán s& t ng b c t ng b c
c thi t l p.
68
5.2.1. Phân tích ph m vi bài toán tìm l p
Quá trình phân tích ph m vi bài toán th ng c b"t u v i các khái ni m then ch t (Key
Abstraction), m t công c th ng c s d ng nh n di n và l#c ra các l p ng c viên (Candidate
class).
a) Khái ni m then ch t:
Hãy l!y ví d m t nhà b(ng ABC, i u u tiên ta ngh+ t i là gì? Ti n! Bên c nh ó, ABC còn ph i có
nh ng th c th liên quan t i ti n nh sau:
Khách hàng
S n ph$m (các tài kho n c coi là các s n ph$m c a m t nhà b(ng)
L cl ng nhân viên
Ban qu n tr nhà b(ng
Phòng máy tính trong nhà b(ng
Nh ng th c th này c g#i là các khái ni m then ch t cho nh ng gì mà nhà b(ng có th có. Khái
ni m then ch t ho c mang tính c!u trúc (structural) ho c mang tính ch c n(ng (functional). Th c th
mang tính c!u trúc là nh ng th c th v t lý t ng tác v i nhà b(ng, ví d khách hàng. Th c th mang
tính ch c n(ng là nh ng ch c n(ng mà nhà b(ng ph i th c hi n, ví d duy trì m t tài kho n ho c
chuy n ti n t tài kho n này sang tài kho n khác. Khái ni m then ch t là các th c th ta ý n u
tiên. Chúng r!t quan tr#ng vì giúp ta:
nh ngh+a ranh gi i c a v!n
Nh!n m nh n các th c th có liên quan n thi t k c a h th ng
Lo i b th c th n%m ngoài ph m vi h th ng
Các khái ni m then ch t th ng s& tr thành các l p trong mô hình phân tích
M t khái ni m then ch t tóm l i là m t l p hay i t ng thu c chuyên ngành c a ph m vi bài toán.
Khi trình bày v i ng i s d ng, chúng có m t ánh x 1-1 gi a v i nh ng th c th liên quan t i ng i
s d ng nh hóa n, sec, gi!y ngh rút ti n, s ti t ki m, th/ rút ti n t ng, nhân viên thu ngân,
nhân viên nhà b(ng, các phòng ban,….
b) Nh n d"ng l p và it ng:
N"m v ng khái ni m l p, chúng ta có th t ng i d dàng tìm th!y các l p và i t ng trong ph m
vi v!n . M t nguyên t"c thô s th ng c áp d ng là danh t4 trong các l i phát bi u bài toán
th ng là các ng c viên chuy n thành l p và i t ng.
M t s g i ý th c t cho vi c tìm l p trong ph m vi v!n :
B c u tiên là c n ph i t p trung nghiên c u k,:
Các danh t trong nh ng l i phát bi u bài toán
Ki n th c chuyên ngành thu c ph m vi bài toán
Các Tr ng h p s d ng
Ví d trong l i phát bi u "Có m t s tài kho n mang l i ti n lãi", ta th!y có hai danh t là tài kho n và
ti n lãi. Chúng có th là các l p ti m n(ng cho mô hình nhà b(ng l/.
Th hai, chúng ta c n chú ý n các nhóm v t th trong h th ng hi n th i nh :
Các th c th v t lý c a h th ng: nh ng v t th t ng tác v i h th ng, ví d khách
hàng.
Các v t th h u hình: các v t th v t lý mà ta có th nhìn và s th!y. Ví d nh công c
giao thông, sách v , m t con ng i, m t ngôi nhà,…. Trong m t nhà b(ng ABC, ó có
th là t p sec, phi u ngh rút ti n, s ti t ki m, các lo i Form c n thi t.
70
Các s ki n (Events): M t chi c xe b h ng, m t cái c a c m ra. Trong m t nhà
b(ng là s áo h n m t tài kho n u t , hi n t ng rút quá nhi u ti n m t trong m t tài
kho n bình th ng.
Các vai trò (Role): Ví d nh m-, khách hàng, ng i bán hàng, …. Trong m t nhà b(ng,
vai trò có th là nhân viên, nhà qu n tr , khách hàng, ...
Các s t ng tác (Interactions): Ví d vi c bán hàng là m t chu.i t ng tác bao g m
khách hàng, ng i bán hàng và s n ph$m. Trong m t nhà b(ng, vi c m m t tài kho n
m i s& yêu c u m t chu.i t ng tác gi a nhân viên và khách hàng.
V trí (Location): M t v t nào ó ho c m t ng i nào ó c gán cho m t v trí nào
ó. Ví d : Ôtô i v i nhà xe. Trong m t nhà b(ng ta có th th!y nhân viên thu ngân
luôn ng c a s c a mình.
n v t ch c (Organisation Unit): Ví d các phòng ban, phòng tr ng bày s n ph$m,
các b ph n. Trong m t nhà b(ng có th có b ph n tài kho n bình th ng, b ph n tài
kho n ti t ki m, b ph n tài kho n u t .
Bên c nh ó, còn nhi u câu h i khác giúp ta nh n d ng l p. Ví d nh :
Ta có thông tin c n c l u tr ho c c n c phân tích không? N u có thông tin c n
ph i c l u tr , bi n i, phân tích ho c x lý trong m t ph ng th c nào ó thì ch"c
ch"n ó s& là ng c viên cho l p. Nh ng thông tin này có th là m t khái ni m luôn
c n ph i c ghi trong h th ng ho c là s ki n, giao d ch x y ra t i m t th i i m c
th nào ó.
Ta có các h th ng ngo i vi không? N u có, th ng chúng c'ng áng c quan tâm t i
khi t o d ng mô hình. Các h th ng bên ngoài có th c coi là các l p ch a h th ng
c a chúng ta ho c t ng tác v i h th ng c a chúng ta.
Chúng ta có các m u, th vi n l p , thành ph n và nh ng th khác không? N u chúng ta
có m u, th vi n, thành ph n t các d án tr c (xin c c a các b n ng nghi p,
mua c t các nhà cung c!p) thì chúng th ng c'ng s& ch a các ng c viên l p.
Có thi t b ngo i vi mà h th ng c a chúng ta c n x lý không? M.i thi t b k, thu t
c n i v i h th ng c a chúng ta th ng s& tr thành ng c viên cho l p x lý lo i
thi t b ngo i vi này.
Chúng ta có ph n công vi c t ch c không? Miêu t m t n v t ch c là công vi c
c th c hi n v i các l p, c bi t là trong các mô hình doanh nghi p.
c) T ng k!t v các ngu$n thông tin cho vi c tìm l p:
Nhìn chung, các ngu n thông tin chính c n c bi t chú ý khi tìm l p là :
Các l i phát bi u yêu c u
Các Tr ng h p s d ng
S tr giúp c a các chuyên gia ng d ng
Nghiên c u h th ng hi n th i
71
Lo t các l p u tiên c nh n d ng qua ây th ng c g#i là các l p ng c viên (Candidate
Class). Ngoài ra, nghiên c u nh ng h th ng t ng t c'ng có th s& mang l i cho ta các l p ng c
viên khác:
Khi nghiên c u h th ng hi n th i, hãy ý n các danh t và các khái ni m then ch t nh n ra l p
ng c viên. Không nên a các l p ã c nh n di n m t l n n a vào mô hình ch* b i vì chúng c
nh"c l i âu ó theo m t tên g#i khác. Ví d , m t h th ng nhà b(ng có th coi cùng m t khách hàng
v i nhi u v trí khác nhau là nhi u khách hàng khác nhau. C n chú ý khi phân tích nh ng l i miêu t
nh th tránh d n n s trùng l p trong quá trình nh n di n l p.
Có nhi u ngu n thông tin mà nhà thi t k c n ph i chú ý t i khi thi t k l p và ch* khi làm nh v y, ta
m i có th tin ch"c v kh n(ng t o d ng m t mô hình t t. Hình sau t ng k t các ngu n thông tin k
trên.
73
M t l p không cung c!p ng x c n thi t ho c thu c tính c n thi t có th s& là l p
không c n thi t. Nhi u khi, có th có m t l p ch)ng cung c!p m t thu c tính ho c ng
x nào mà ch* nh ngh+a m t t p h p các m i quan h . Nh ng l p nh th c n ph i
c nghiên c u k, xác nh s liên quan v i h th ng. Ví d m t khách hàng có th
c nh ngh+a là khách hàng quan tr#ng hay khách hàng bình th ng tùy theo m i
quan h mà anh ta có v i nhà b(ng trong t cách ch nhân tài kho n.
T!t c nh ng công c xây d ng (Implementation constructs) ví d nh stack, arrays,
link lists, … c n ph i c a ra kh i mô hình phân tích. Chúng s& c dùng t i trong
giai o n xây d ng ph n m m.
M t l p có tên mang tính ng t có th n gi n ch* là m t hàm ch không ph i là m t
l p. Ví d "rút ti n" không c n ph i c coi là m t l p, nó có th là ch c n(ng c a m t
l p.
L p ch* có m t hàm ho c ch* là s miêu t vi c th c hi n m t ch c n(ng nào ó có th
n gi n ch* là m t hàm, ho c quá trình tr u t ng hóa d li u (data abstraction) ây
ch a c th c hi n y .
L p không có hàm là m t thi u sót trong mô hình. V!n hàm thành ph n (ph ng
th c) c a l p này ch a c suy ngh+ th!u áo.
74
L u ý: M#i c i m c a m t th c th là nh ng thông tin c n l u tr u có th chuy n thành thu c
tính c a l p miêu t lo i th c th ó.
5.3.3. Ph ng th c (method)
Ph ng th c nh ngh+a các ho t ng mà l p có th th c hi n. T!t c các i t ng ct ot m t
l p s& có chung thu c tính và ph ng th c. Ph ng th c c s d ng x lý thay i các thu c tính
c'ng nh th c hi n các công vi c khác. Ph ng th c th ng c g#i là các hàm (function), nh ng
chúng n%m trong m t l p và ch* có th c áp d ng cho các i t ng c a l p này. M t ph ng th c
c miêu t qua tên, giá tr tr v và danh sách c a 0 cho t i nhi u tham s . Lúc thi hành, ph ng
th c c g#i kèm theo m t i t ng c a l p. Vì nhóm các ph ng th c miêu t nh ng d ch v mà
l p có th cung c!p nên chúng c coi là giao di n c a l p này. Gi ng nh thu c tính, ph ng th c
c'ng có tính trông th!y c nh công c ng, riêng và b o v .
75
Hình 5.8- M t l p g m các thu c tính v i gía tr m c nhiên và thu c tính ph m vi l p
5.3.4. Kí hi u it ng
it ng là th c th c a các l p nên kí hi u dùng cho it ng c'ng là kí hi u dùng cho l p.
Hình 5.10-Ký hi u it ng
Hình trên c #c nh sau: CAH là i t ng c a l p AccountHolder. Các thu c tính c gán giá
tr , ây là các giá tr khi l p c th c th hóa. Chú ý r%ng kí hi u i t ng không ch a ph n ph ng
th c.
76
Hình 5.11- Các d!u hi u hành ng
77
S ph thu c là m t m i quan h gi a các y u t , g m m t y u mang tính c l p và m t y u t mang
tính ph thu c. M t s thay i trong y u t c l p s& nh h ng n y u t ph thu c.
M t s nâng c!p là m i quan h gi a hai l i miêu t c a cùng m t s v t, nh ng nh ng m c tr u
t ng hóa khác nhau.
78
• Tên vai trò ph i miêu t c ch c n(ng mà l p này m nh n trong quan h , t c
c n ph i là các khái ni m l!y ra t ph m vi v!n , gi ng nh tên các l p.
79
Hình 5.17- M t s l p tiêu bi u
Hình trên là ví d cho m t bi u l p tiêu bi u. Bi u gi i thích r%ng b ph n d ch v tài kho n ti t
ki m c a m t nhà b(ng có th có nhi u tài kho n ti t ki m nh ng t!t c nh ng tài kho n này u thu c
v b ph n ó. M t tài kho n ti t ki m v ph n nó l i có th có nhi u tài li u, nh ng nh ng tài li u này
ch* thu c v m t tài kho n ti t ki m mà thôi. M t tài kho n ti t ki m có th thu c v t 1 cho t i nhi u
nh!t là 3 khách hàng. M.i khách hàng có th có nhi u h n m t tài kho n.
80
b lo i tr ho c các liên h không liên quan n h th ng. Có nh ng liên h c t o ra nh%m m c ích
t(ng hi u qu . Nh ng liên h nh th là ví d tiêu ti u c a các chi ti t th c thi và không liên quan t i
giai o n này.
C n chú ý phân bi t gi a hành ng và m i liên h . Ng i ta th ng có xu h ng miêu t hành ng
nh là liên h , b i c liên h l n hành ng u c d n xu!t t nh ng c m t mang tính ng t
trong b n miêu t yêu c u. Các hành ng ã c th hi n sai thành liên h c'ng c n ph i c lo i
b . Khi làm vi c này, có th áp d ng m t nguyên t"c: liên h là n i k t mang tính t+nh gi a các i
t ng, trong khi hành ng ch* là thao tác x y ra m t l n. Hành ng vì v y nên c coi là Ph ng
th c i v i m t i t ng ch không ph i quan h gi a các l p.
Ví d v i "Ban qu n tr nhà b(ng u i vi c m t nhân viên", ng t “ u i vi c” th hi n hành ng.
Trong khi ó v i “M t nhân viên làm vi c cho hãng" thì ng t “làm vi c" miêu t liên h gi a hai
l p nhân viên và hãng.
Trong khi c g"ng lo i b các liên h d th a, b n s& th!y có m t s liên h d th a ã "l/n vào" mô
hình c a chúng ta trong giai o n thi t k . Hình sau ch* ra m t s lo i liên h d th a c n c bi t chú
tr#ng.
81
M t liên h c h n nh liên h hai l p và m t y u t h n nh (Qualifier) v i nhau. Y u t h n nh
là m t thu c tính h n ch s l ng thành ph n tham gia trong m t m i liên h . Có th h n nh các m i
liên h m t-t i nhi u và nhi u-t i-nhi u. Y u t h n nh giúp phân bi t trong nhóm i t ng c a u
nhi u c a liên h .
Ví d m t th m c có nhi u t p tin.M t t p tin ch* thu c v m t th m c mà thôi. Trong m t th m c
xác nh, tên c a t p tin s& xác nh duy nh!t t p tin mang tên ó. Th m c và T p tin là hai l p, và tên
t ptin ây óng vai trò y u t h n nh. M t th m c và m t tên t p tin xác nh m t t p tin. Y u t
h n nh ây ã chuy n m t m i liên h m t-t i-nhi u thành liên h m t-t i-m t.
82
Hình 5.21- M t liên h OR mà bi u th ch* m t liên h là h p l t i m.i th i i m
83
Hình 5.23- Liên h Tam nguyên
Bi u trên c #c nh sau: M t khách hàng có th quan h v i b ph n u t và m t b ph n u
t có th có m t ho c nhi u khách hàng. M t gi!y ch ng nh n tài kho n u t s& xu!t hi n qua quan
h gi a khách hàng và b ph n u t .
84
g) Liên h quy (Recursive Association):
Có th liên k t m t l p v i b n thân nó trong m t m i liên h . M i liên h ây v n th hi n m t s
liên quan ng ngh+a, nh ng các i t ng c n i k t u thu c chung m t l p. M t liên h c a m t
l p v i chính b n thân nó c g#i là m t liên h quy, và là n n t ng cho r!t nhi u mô hình ph c
t p, s d ng ví d miêu t các c!u trúc s n ph$m. Hình 5.25 ch* ra m t ví d c a liên h quy và
hình 5.26 là m t bi u i t ng cho bi u l p trong hình 5.25.
85
Quá trình ghép các b ph n l i v i nhau t o nên th c th c n thi t c g#i là s k t t p. Trong quá
trình tìm l p, k t t p s& c chú ý t i khi g p các lo i ng t “ c t o b i", "g m có", …. Quan h
k t t p không có tên riêng. Tên ng m ch a trong nó là "bao g m các thành ph n".
5.6.2. Kí hi u k t t#p
Kí hi u UML cho k t t p là ng th)ng v i hình thoi (diamond) t sát l p bi u th s k t t p (t ng
th ).
M t l p tài kho n c t o b i các l p chi ti t v khách hàng, các l nh giao d ch i v i tài kho n
c'ng nh các quy nh c a nhà b(ng.
Quan h trên có th c trình bày nh sau:
86
Trong tr ng h p tài kho n k trên, m t trong các b ph n c a nó là các chi ti t v khách hàng. Các chi
ti t v khách hàng l i bao g m danh sách ch tài kho n, danh sách a ch*, các quy nh v k0 h n c'ng
nh các chi ti t khác khi m tài kho n.
87
Hình 7.1- Chuyên bi t hoá (Specialization)
Trong hình trên, tài kho n là khái ni m chung c a các lo i tài kho n khác nhau và ch a nh ng c t
c n thi t cho t!t c các lo i tài kho n. Ví d nh nó có th ch a s tài kho n và tên ch tài kho n. Ta có
th có hai lo i tài kho n c bi t suy ra t d ng tài kho n chung này, m t lo i mang tính k0 h n và m t
lo i mang tính giao d ch. Y u t chia cách hai l p này v i nhau là các quy nh chuyên ngành hay úng
h n là ph ng th c ho t ng c a hai lo i tài kho n.
T ng t nh v y, tài kho n u t trung h n và dài h n l i là nh ng khái ni m chuyên bi t c a khái
ni m tài kho n có k0 h n. M t khác, tài kho n bình th ng và tài kho n ti t ki m là nh ng tr ng h p
c bi t c a lo i tài kho n giao d ch.
Lo i c!u trúc l p nh th c g#i là m t c!u trúc hình cây ho c c!u trúc phân c!p. Khi chúng ta d ch
chuy n t i m xu!t phát c a cây xu ng d i, chúng ta s& g p các khái ni m càng ngày càng c
chuyên bi t hóa nhi u h n. Theo con ng i t tài kho n n tài kho n ti t ki m, ta s& ph i i qua
l p tài kho n giao d ch. L p này ti p t c phân lo i các l p chuyên bi t hóa cao h n, tùy thu c vào ch c
n(ng c a chúng.
88
Quá trình b"t u v i m t l p khái quát s n xu!t ra các l p mang tính chuyên bi t cao h n c g#i
là quá trình chuyên bi t hoá (Specialization)
Chuyên bi t hóa: là quá trình tinh ch m t l p thành nh ng l p chuyên bi t h n. Chuyên bi t hóa b
sung thêm chi ti t và c t cho l p k t qu . L p mang tính khái quát c g#i là l p cha (superclass),
k t qu chuyên bi t hóa là vi c t o ra các l p con (Subclass).
M t khác, n u chúng ta i d#c c!u trúc cây t d i lên, ta s& g p các l p ngày càng mang tính khái quát
cao h n - Ví d t l p tài kho n ti t ki m lên t i l p tài kho n. Con ng b"t u t m t l p chuyên
bi t và khi n nó ngày càng mang tính khái quát cao h n c g#i là quá trình khái quát hóa
(Generalization). L p chuyên bi t ây c g#i là l p con, trong ví d trên là tài kho n ti t ki m,
trong khi l p khái quát k t qu c g#i là l p cha.
Chuyên bi t hóa và khái quát hóa là hai con ng khác nhau xem xét cùng m t m i quan h .
M t l p là l p con c a m t l p này có th óng vài trò là m t l p cha c a l p khác.
89
M c d u v y, m b o cho m t mô hình c nh ngh+a rõ ràng, trình bày y u t phân bi t v n
luôn là công vi c nên th c hi n.
a) L p tr4u t ng:
Quan sát c!u trúc trong hình trên, ta th!y l p tài kho n s& không bao gi c th c th hóa, có ngh+a là
h th ng s& không bao gi t o ra các i t ng thu c l p này. Nguyên nhân là vì l p tài kho n mang
tính khái quát cao n m c vi c kh i t o l p này s& không có m t ý ngh+a nào áng k . L p tài
kho n m c dù v y v n óng m t vai trò quan tr#ng trong vi c khái quát hóa các thu c tính s& cc n
n trong các l p d n xu!t t nó. Nh ng lo i l p nh th c dùng cung c!p m t cây c!u trúc l p
và không có s t n t i y ý ngh+a trong m t mô hình th t s ngoài i, chúng c g#i là l p tr4u
tr ng (abstract class).
b) T"o l p tr4u t ng:
Các l p tr u tr ng là k t qu c a quá trình khái quát hóa. Hãy quan sát ví d c!u trúc l p sau ây.
L p tài kho n ng u cây c!u trúc và c g#i là l p c(n b n. L p c(n b n c a m t cây c!u trúc
ch a nh ng thu c tính ã c khái quát hóa và có th c áp d ng cho m#i l p d n xu!t t nó.
Trong quá trình khái quát hóa, các thu c tính c dùng chung trong các l p chuyên bi t c a lên
l p cha. L p cha v cu i c t o b i các thu c tính chung c a t!t c các l p d n xu!t t nó. Nh ng
l p cha d ng nh v y trong r!t nhi u tr ng h p s& mang tính khái quát tuy t i và s& không theo
u i m c ích kh i t o, chúng có l i ng x gi ng nh m t thùng ch a (container) cho t!t c các thu c
tính chung c a các l p d n xu!t. Nh ng l p nh th trong tr ng h p chung th ng là k t qu ánh x
c a nh ng danh t tr u t ng, là h qu c a ph ng pháp s d ng các danh t nh n di n l p .
Hình 7.4- T o l p tr u t ng
Bi u trên cho ta m t ví d v khái quát hóa và các thu c tính chung, nó ch* ra nhi u l p chuyên bi t.
Chú ý r%ng c theo m.i m c chuyên bi t hóa l i có thêm các thu c tính c b sung thêm cho các
l p, khi n chúng mang tính chuyên bi t cao h n so v i các l p cha m c tr u t ng bên trên. Ví d
l p tài kho n có thu c tính là s tài kho n và tên khách hàng. ây là nh ng thu c tính h t s c chung
chung. T!t c các l p d n xu!t t nó, dù là tr c ti p hay gián ti p ( các m c tr u t ng th!p h n
n a), u có quy n s d ng các thu c tính ó c a l p tài kho n. Các l p tài kho n có k0 h n và tài
90
kho n giao d ch là hai l p chuyên bi t d n xu!t t l p tài kho n. Chúng có nh ng thu c tính chuyên
bi t riêng c a chúng - ví d m c th i gian (duration) i v i l p tài kho n có k0 h n và m c ti n t i
thi u i v i l p tài kho n giao d ch – bên c nh hai thu c tính s tài kho n và tên khách hàng mà
chúng th a k t l p tài kho n. C'ng t ng t nh th v i tài kho n u t ng"n h n và tài kho n u
t trung h n là các lo i l p thu c tài kho n có k0 h n, tài kho n ti t ki m và tài kho n bình th ng là
các lo i l p thu c l p tài kho n giao d ch.
c) L p c( th (concrete class):
L p c th là nh ng l p có th th c th hóa. Nh ã nói t tr c, các l p c th khi th c th hóa c
g#i là các i t ng. Trong ví d trên, các l p tài kho n u t ng"n h n và tài kho n u t dài h n có
th c th c th hóa thành i t ng. T ng t i v i tài kho n ti t ki m và tài kho n bình th ng.
91
Hình 7.5- Phát tri n h th ng l p (1)
Th ng x y ra tr ng h p t!t c các l p con cùng tham gia vào m t liên h ho c k t t p. Trong tr ng
h p này nên t o l p cha nh ngh+a liên h /k t t p ó. Hình sau gi i thích thêm i m này:
92
c các tr ng h p trên u có m t s ph thu c c a m t l p này vào m t l p kia, m c dù chúng không
có liên h rõ ràng v i nhau.
Quan h ph thu c c th hi n b%ng ng th)ng g ch r i (dashed line) v i m'i tên (và có th thêm
m t nhãn) gi a các ph n t mô hình. N u s d ng nhãn thì nó s& là m t khuôn m u (stereotype), xác
nh lo i ph thu c. Hình sau ch* ra m t s ph thu c d ng "friend", có ngh+a r%ng m t ph n t mô
hình nh n c quy n truy c p c bi t t i c!u trúc n i b c a ph n t th hai (th m chí t i c nh ng
ph n mang tính nhìn th!y là private).
93
5.9. Nâng c,p mô hình qua các vòng l-p k! ti!p
Cho t i th i i m này, chúng ta i qua các b c công vi c phân tích c(n b n và t o nên phiên b n u
tiên c a mô hình i t ng. Mô hình này c n ph i c l!y làm m c tiêu cho các vòng l p nâng c!p
ti p theo.
Công vi c nâng c!p có th c th c hi n b%ng cách a mô hình qua t!t c các giai o n phát tri n
mô hình i t ng m t l n n a. L n này, nh ng ki n th c thu c trong vòng phát tri n u s& t ra
r!t h u d ng. Khi nâng c!p mô hình c n chú ý n các b c sau:
a) Nghiên c u các l p tìm các thu c tính và th t c không ng d ng (dissimilar). N u có, x/ l p
thành các thành ph n t o tính ng nh!t (harmony) trong l p . Ví d v i m t l p m nh n hai vai
trò khác nhau, hãy x/ l p thành các l p k t qu v i nh ng th t c c xác nh rõ ràng.
b) N u phát hi n th!y m t ch c n(ng không h ng t i m t l p ích nào thì ó là tri u ch ng thi u l p.
Hãy b sung l p thi u và a th t c k trên vào l p ó.
c) Khái quát hóa là còn ch a n u có các liên h trùng l p (nhi u liên h cùng nh ngh+a m t
quan h ). Trong tr ng h p này, c n t o l p cha k t h p các m i liên h ó.
d) N u m t vai trò mang m t ý ngh+a c bi t quan tr#ng i v i h th ng thì th ng nó c n m t l p
riêng. M t l a ch#n khác là bi n liên h nh ngh+a vai trò này thành m t l p liên h .
e) N u m t l p thi u c thu c tính l n th t c và / ho c liên h thì r!t có th ây là m t l p không c n
thi t. Hãy lo i b nh ng l p ó n u có th .
f) Hãy rà sát toàn b h th ng tìm nh ng vai trò gi a các l p còn ch a c th hi n. N u có, ây là
tri u ch ng thi u liên h .
g) N u có m t liên h gi a các i t ng nh ng l i ch)ng c th t c nào s d ng t i thì r!t có th
ây là m t liên h không c n thi t. Ví d ta ã xác nh m t liên h gi a nhân viên thu ngân và khách
hàng nh ng l i không có th t c nào c nh ngh+a gi a hai ng i. Trong tr ng h p này, r!t có th
liên h ó là không c n thi t.
94
C n gi cho mô hình it ng c n gi n:
Hãy kháng c l i xu h ng t o ra các mô hình ph c t p, chúng ch* mang l i s nh m l n,
b i r i. Trong vòng u c a quy trình mô hình hóa i t ng, hãy xác nh các m i liên h
c(n b n và g t ra ngoài các chi ti t, vi c xem xét t i các s l ng thành ph n tham gia
(Cardinality) trong quan h c dành cho giai o n sau; r!t có th là vòng th hai. T t
nh!t là các chi ti t ph n ánh s l ng các thành ph n tham gian trong quan h ch* cb
sung thêm vào trong vòng th hai ho c vòng th ba c a công vi c mô hình hóa i t ng.
Th ng th ng, ng i ta th!y nh ng phiên b n u tiên c a mô hình th ng ch* ch a các
m i liên h v i s l ng là t 0-t i-0; 0-t i-1, 1- t i-1; 1-t i-nhi u.
Nên s d ng các m i liên h h n nh b!t c khi nào có th .
Tránh khái quát hóa quá nhi u. Th ng ch* nên h n ch ba t ng khái quát.
Hãy nghiên c u th t k, các m i liên h 1-t i-nhi u. Chúng th ng có th c chuy n
thành các quan h 1-t i-0 ho c 1-t i-1.
T!t c các mô hình c n ph i c l!y làm i t ng cho vi c ti p t c nâng c!p. N u
không th c hi n nh ng vòng nâng c!p sau ó, r!t có th mô hình c a chúng ta s& thi u hoàn
ch*nh.
ng tác cho nh ng ng i khác xem xét l i mô hình là r!t quan tr#ng. Th ng s
liên quan quá c n k v i mô hình s& khi n chúng ta mù lòa, không nh n nh ng ra khi m
khuy t c a nó. M t cái nhìn vô t trong tr ng h p này là r!t c n thi t.
Không nên mô hình hóa các m i liên h thành thu c tính. N u i u này x y ra, ta
th ng có th nh n th!y qua tri u ch ng là mô hình thi u liên h . Thêm vào ó, ã có lúc ta
b qua s c n thi t c a m t y u t h n nh.
Vi c vi t tài li u cho mô hình là vô cùng quan tr#ng. Các tài li u c n ph i n"m b"t th!u áo nh ng
nguyên nhân n%m %ng sau mô hình và trình bày chúng chính xác nh có th .
95
maketing nh"m t i nh ng khách hàng không có tài kho n trong nhà b(ng ch* b i vì h# không có a
ch*.
Vì v y, m t trong nh ng khía c nh c a ch!t l ng mô hình là tính thích h p c a mô hình ó. M t mô
hình thích h p ph i n"m b"t các khía c nh quan tr#ng c a i t ng nghiên c u. Nh ng khía c nh khác
trong vi c ánh giá ch!t l ng là mô hình ph i d giao ti p, ph i có m t m c tiêu c th , d b o qu n,
mang tính v ng b n và có kh n(ng tích h p. Nhi u mô hình c a cùng m t h th ng nh ng có các m c
ích khác nhau (ho c là h ng nhìn khác nhau) ph i có kh n(ng tích h p c v i nhau.
Dù là s d ng ph ng pháp nào ho c ngôn ng mô hình hóa nào, ta v n còn ph i i m t v i các v!n
khác. Khi t o d ng mô hình, chúng ta tr thành m t ph n c a doanh ngh êp, có ngh+a là chúng ta
c n ph i quan sát hi u ng s can thi p c a chúng ta vào doanh nghi p. Y u t quan tr#ng là c n ph i
x lý t!t c các khía c nh c a s can thi p ó ví d nh v chính sách, v(n hóa, c!u trúc xã h i và n(ng
su!t. N u không làm c i u này, r!t có th ta không có kh n(ng phát hi n và n"m b"t t!t c nh ng
òi h i c n thi t t phía khách hàng (c n chú ý r%ng nh ng phát bi u yêu c u c a ra không ph i
bao gi c'ng chính xác là nh ng gì khách hàng th c s c n). Hãy c bi t chú ý n các v!n v i
chính sách n i b , các m u hình xã h i, các c!u trúc không chính th c và các th l c bao quanh khách
hàng.
96
phê duy t nó. N u không có m c ích rõ ràng, chúng ta ví d r!t có th s& th$m tra m t mô hình hình
phân tích nh th nó là m t mô hình thi t k .
5.10.6. ph c t p c a mô hình
Ngay c khi các mô hình c a chúng ta d dàng giao ti p, có m t m c ích rõ ràng, n"m b"t c nh ng
i m tr#ng y u trong ph m vi v!n và có th c ph i h p v i nhau, ta v n có th g p khó kh(n n u
mô hình quá ph c t p. Nh ng mô hình c c k0 ph c t p s& khó nghiên c u, khó th$m tra, khó phê duy t
và khó b o trì. Sáng ki n t t là hãy b"t u v i m t mô hình n gi n, và sau ó chi ti t hóa nhi u h n
b%ng cách s d ng vi c ph i h p mô hình. N u b n ch!t ph m vi v!n c a chúng ta là ph c t p, hãy
x/ mô hình thành nhi u mô hình khác nhau (s d ng các ti u mô hình – t c là các gói) và c g"ng
qui trình này có th ki m soát c tình hu ng.
97
Khi chúng ta mô hình hóa, chúng ta s d ng m t ngôn ng mô hình hóa ví d nh UML, cung c!p cho
chúng ta ng pháp và ng ngh+a t o d ng mô hình. Ngôn ng mô hình hóa m c dù v y không th
cho chúng ta bi t li u chúng ta ã t o ra m t mô hình t t hay không. Ch!t l ng mô hình c n ph i c
chú ý riêng bi t, i u ó có ngh+a là t!t c các mô hình c n ph i có m t m c ích rõ ràng và chính xác
và chúng ph i n"m b"t c b n ch!t c a i t ng nghiên c u. T!t c các mô hình c n ph i c làm
sao d giao ti p, d th$m tra, phê duy t và b o trì.
UML cung c!p mô hình t+nh, ng và theo ch c n(ng. Mô hình t+nh c th hi n qua các bi u l p,
bao g m các l p và m i quan h gi a chúng. Quan h có th là liên h , khái quát hoá, ph thu c ho c
là nâng c!p. M t m i quan h liên h là m t s n i k t gi a các l p, có ngh+a là s n i k t gi a các i
t ng c a các l p này. Khái quát hóa là quan h gi a m t ph n t mang tính khái quát h n và m t
ph n t mang tính chuyên bi t h n. Ph n t mang tính chuyên bi t h n có th ch* ch a các thông tin b
sung. M t th c th (m t i t ng là m t th c th c a m t l p) c a ph n t chuyên bi t h n có th
c s d ng b!t c n i nào mà th c th c a ph n t khái quát h n c cho phép. Ph thu c là m i
quan h gi a hai ph n t , m t mang tính c l p và m t mang tính ph thu c. M.i thay i trong ph n
t c l p s& gây tác ng n ph n t ph thu c. M t quan h nâng c!p là m t quan h gi a hai l i
miêu t c a cùng m t th nh ng nh ng m c tr u t ng khác nhau.
5.12. Ph n câu h i
H i: Khi t o d ng mô hình, c n s d ng các khái ni m c a chính ph m vi v!n mô hình d hi u
và d giao ti p.
áp: úng
H i: Các l p ch* th hi n c!u trúc thông tin?
áp: sai, các l p không ph i ch* th hi n c!u trúc thông tin mà còn mô t c hành vi.
H i: Các khái ni m then ch t th ng s& tr thành các l p trong mô hình phân tích?
áp: úng
H i: Th ng các danh t trong các l i phát bi u bài toán s& là ng c viên chuy n thành l p và i
t ng?
áp: úng
H i: Quan h k t h p (Association) gi a các l p nh ngh+a các m i liên quan có th t n t i gi a các
i t ng?
áp: úng, ví d m t m i quan h k t h p là m t s n i k t gi a các l p, có ngh+a là s n i k t gi a
các i t ng c a các l p này.
H i: K t t p bi u th r%ng quan h gi a các l p d a trên n n t ng c a nguyên t"c "m t t ng th c
t o thành b i các b ph n"
áp: úng, nó c s d ng khi chúng ta mu n t o nên m t th c th m i b%ng cách t p h p các th c
th t n t i v i nhau
H i: Khái quát hoá c s d ng t o các l p con?
98
áp: Sai, khái quát hoá là quá trình b"t u t m t l p chuyên bi t và khi n nó ngày càng mang tính
khái quát cao h n (l p cha)
H i: Chuyên bi t hoá b sung thêm chi ti t và c t cho l p k t q a?
áp: úng, chuyên bi t hoá là quá trình tinh ch m t l p thành nh ng l p chuyên bi t h n (l p con)
99
CH NG 6 : MÔ HÌNH HÓA .NG
100
Bi u $ tu n t*: miêu t các i t ng t ng tác và giao ti p v i nhau ra sao. Tiêu i m
trong các bi u tu n t là th i gian. Các bi u tu n t ch* ra chu.i c a các thông i p c
g i và nh n gi a m t nhóm các i t ng, nh%m m c ích th c hi n m t s ch c n(ng.
Bi u $ c'ng tác: c'ng miêu t các i t ng t ng tác v i nhau ra sao, nh ng tr#ng i m
trong m t bi u c ng tác là s ki n. T p trung vào s ki n có ngh+a là chú ý c bi t n m i
quan h (n i k t) gi a các i t ng, và vì th mà ph i th hi n chúng m t cách rõ ràng trong
bi u .
Bi u $ ho"t 'ng: là m t con ng khác ch* ra t ng tác, nh ng chúng t p trung vào
công vi c. Khi các i t ng t ng tác v i nhau, các i t ng c'ng th c hi n các tác v , t c là
các ho t ng. Nh ng ho t ng này cùng th t c a chúng c miêu t trong bi u ho t
ng.
Vì bi u tu n t , bi u c ng tác l n bi u ho t ng u ch* ra t ng tác nên th ng b n s& ph i
ch#n nên s d ng bi u nào khi l p tài li u cho m t t ng tác. Quy t nh c a b n s& ph thu c vào
vi c khía c nh nào c coi là quan tr#ng nh!t.
Ngoài c!u trúc t+nh và ng x ng, h ng nhìn ch c n(ng c'ng có th c s d ng miêu t h
th ng. H ng nhìn ch c n(ng th hi n các ch c n(ng mà h th ng s& cung c!p. Tr ng h p s d ng
chính là các l i miêu t h th ng theo ch c n(ng; chúng miêu t các tác nhân có th s d ng h th ng
ra sao. Nh ã c p t tr c, tr ng h p s d ng bình th ng ra c mô hình hóa trong nh ng giai
o n u tiên c a quá trình phân tích, nh%m m c ích miêu t xem tác nhân có th mu n s d ng h
th ng nh th nào. Mô hình tr ng h p s d ng ch* nên n"m b"t duy nh!t khía c nh tác nhân s d ng
h th ng, không nên c p khía c nh h th ng c xây d ng bên trong ra sao. L p và các t ng tác
trong h th ng th c hi n tr ng h p s d ng. T ng tác c miêu t b i các bi u tu n t , bi u
c ng tác và ho c/và bi u ho t ng, t c là có m t s n i k t gi a h ng nhìn ch c n(ng và h ng
nhìn ng c a h th ng. Các l p c s d ng trong vi c th c thi các tr ng h p s d ng c mô
hình hóa và miêu t qua các bi u l p và bi u tr ng thái (m t bi u tr ng thái s& c ính kèm
cho m t l p, m t h th ng con ho c là m t h th ng). Tr ng h p s d ng và các m i quan h c a
chúng n t ng tác ã c miêu t trong ch ng 3 (tr ng h p s d ng).
Nhìn chung, m t mô hình ng miêu t n(m khía c nh c(n b n khác nhau:
101
Ngoài ra, m t mô hình ng c'ng còn c s d ng xác nh các nguyên t"c chuyên ngành
(business rule) c n ph i c áp d ng trong mô hình. Nó c'ng c s d ng !n nh xem các
nguyên t"c ó c a vào nh ng v trí nào trong mô hình.
M t vài ví d cho nh ng nguyên t"c chuyên ngành c n ph i c th hi n trong mô hình ng:
M t khách hàng không c quy n rút ti n ra n u không có m c ti n trong tài
kho n.
Nh ng món ti n u t có k0 h n không th chuy n sang m t tên khác tr c khi áo
h n.
Gi i h n cao nh!t trong m t l n rút ti n ra b%ng th/ ATM là 500 USD.
102
Song song v i quá trình ch c a khách hàng, gi!y yêu c u rút ti n c a anh ta tr i qua
nhi u giai o n trong n i b nhà b(ng.
Ch ký c a khách hàng trên gi!y yêu c u rút ti n c th$m tra.
Gi!y yêu c u c xem xét v ph ng di n s tài kho n và m c ti n trong tài kho n.
N u m t trong hai i u ki n trên không c th a mãn, quá trình rút ti n m t s& b
ch n l i ho c là c s a i và ti p t c.
Khi c hai i u ki n nêu trên c th a mãn, gi!y yêu c u rút ti n m t s& c a n
cho nhân viên ng i bên casse, n i khách hàng s& c g#i t i tu n t d theo s th/
x p hàng.
Nhân viên bên casse a ti n m t cho khách hàng.
L i ng x trong vi c rút ti n m t là mang tính ng. Su t quá trình rút ti n m t, t ng tác và trình t
c a quá trình ph thu c vào m t s các i u ki n xác nh. Lo i ng x này không th c th hi n
qua mô hình i t ng, ây là tr ng h p ta c n n mô hình ng.
Mô hình ng c'ng t ra h u d ng trong tr ng h p có nh ng trang thi t b tr i qua tu n t các b c
trong m t vòng l p và ti n trình ph thu c vào m t s i u ki n nh!t nh. Ví d m t i t ng mô
hình hóa l i ng x c a m t máy rút ti n m t t ng (ATM). Máy ATM l n l t i qua các b c c a
m t vòng l p mang tính th t c (ch c n(ng), b"t u t vi c m t th/ ATM c út vào trong máy, x
lý các yêu c u do khách hàng a ra, d ng l i và ch yêu c u giao d ch khác, r i sau ó quay tr l i
tr ng thái ban u ( ng yên) sau khi th/ ATM ã c rút ra ngoài.
6.4.1. S ki n (Event)
M t trong nh ng thành ph n quan tr#ng b c nh!t c a m t it ng là s ki n. M t s ki n là m t s
kích thích cg it i t ng này sang i t ng khác.
M t s ki n là m t vi c s& x y ra và có th gây ra m t hành ng nào ó. Ví d nh khi b n b!m lên
nút Play trên máy CD-Player, nó s& b"t u ch i nh c (gi s r%ng CD-Player có i n, trong máy có +a
103
CD và nói chung là dàn CD-Player ho t ng t t). S ki n ây là b n nh!n lên nút Play, và hành
ng ây là b"t u ch i nh c. N u có m t s n i k t c nh ngh+a rõ ràng gi a s ki n và hành
ng, ng i ta g#i nó là quan h nhân qu (Causality). Trong công ngh ph n m m, chúng ta th ng
ch* mô hình hóa các h th ng mang tính nhân qu , n i s ki n và hành ng c n i k t v i nhau.
M t ph n ví d c a quan h nhân qu : b n lái xe trên xa l v i t c quá nhanh, c nh sát ng(n xe l i.
ây không ph i là nhân qu b i hành ng ng(n b n l i c a c nh sát không ch"c ch"n bao gi c'ng
x y ra; vì th mà không có m t s n i k t c nh ngh+a rõ ràng gi a s ki n (lái xe quá nhanh) và
hành ng (ng(n xe). Trong mô hình hóa, v y là ta quan tâm n s ki n theo ngh+a là b!t k0 hành
ng nào khi n h th ng ph n ng theo m t cách nào ó.
Quan sát ví d m t nhà b(ng l/, ta có m t vài ví d v s ki n nh sau:
i n m t t gi!y yêu c u rút ti n.
S áo h n m t tài kho n u t có k0 h n.
K t thúc m t h p ng tr c k0 h n.
i n m t gi!y yêu c u m tài kho n.
UML bi t n t!t c b n lo i s ki n:
M t i u ki n tr thành c th a mãn (tr thành úng)
Nh n c m t tín hi u ngo i t m t it ng khác
Nh n c m t l i g#i th t c t m t it ng khác (hay t chính it ng ó).
M t kho ng th i gian xác nh tr c trôi qua.
Xin chú ý r%ng c các l.i x y ra c'ng là s ki n và có th mang tính h u d ng r!t l n i v i mô hình.
a) S ki n c l#p và s ki n ph thu c:
Các s ki n có th mang tính c l p hay liên quan n nhau. Có m t s s ki n, theo b n ch!t, ph i i
tr c ho c là x y ra sau các s ki n khác. Ví d :
i n các chi ti t trong m t t yêu c u rút ti n m t s& d n t i vi c nh n c m t s th/
x p hàng.
S áo h n c a m t tài kho n u t có k0 h n s& d n n ng tác gia h n ho c rút
ti n m t.
i n các chi ti t trong m t gi!y yêu c u m tài kho n s& d n t i vi c ph i n p m t
kho n ti n t i thi u (theo quy nh) vào tài kho n.
Các s ki n c l p là nh ng s ki n không c n i k t v i nhau trong b!t k0 m t ph ng di n nào.
Ví d :
Rút ti n m t và a ti n vào tài kho n là các s ki n c l p v i nhau.
M m t tài kho n u t có k0 h n và m m t tài kho n giao d ch là c l p v i nhau.
104
K t thúc tr c k0 h n m t tài kho n u t và vi c m m t tài kho n u t có k0 h n
khác là c l p v i nhau.
Các s ki n c l p còn có th c g#i là các s ki n song song hay ng th i. B i chúng không ph
thu c vào nhau, nên các s ki n này có th x y ra t i cùng m t th i i m.
Trong nhi u tr ng h p, m t s ki n riêng l/ trong ph m vi v!n s& c chuy n t i thành nhi u s
ki n trong h th ng. Ví d : a gi!y yêu c u rút ti n m t cho nhân viên phát th/ x p hàng s& có k t qu
là m t lo t các s ki n n i ti p.
Có nh ng tình hu ng n i m t s ki n riêng l/ s& c nh n b i nhi u i t ng khác nhau và khi n
cho chúng ph n ng thích h p. Ví d nh m t l i ngh ng(n m t t séc có th ng th i cg i
n cho nhân viên thu ngân và nhân viên ki m tra séc.
c) S* ki n và l p s* ki n:
L p s ki n i v i s ki n c'ng nh l p iv i it ng bình th ng. L i nh ngh+a xác nh m t
lo i s ki n c g#i là m t l p s ki n.
L p s ki n ngoài ra còn có th c phân lo i:
Các tín hi u n gi n: L p s ki n trong tr ng h p này s& c th c th hóa ch* ra m t s
ki n ho c là m t tín hi u c a m t s ki n.
Các s ki n chuy n t i d li u: th ng thì m t s ki n có kh n(ng và chuy n t i d li u. T!t
c các s ki n c n ph i "bi t n” các i t ng s& nh n c s ki n này. Thông tin v ng i
nh n s ki n c g#i là thông tin nh n di n. Nói m t cách khác, y u t nh n di n xác nh các
i t ng s& nh n s ki n. Bên c nh ó, còn có th có các d li u b sung thu c v các i
t ng khác, không nh!t thi t ph i là i t ng g i hay nh n s ki n.
V m t nguyên t"c, các s ki n thu c d ng phát tin (Broadcast) s& c truy n n cho t!t c các i
t ng. N u s ki n này là không quan tr#ng i v i i t ng nào ó trong tr ng thái hi n th i c a nó
thì i t ng s& b qua s ki n.
105
i u th ng x y ra trong các h th ng th i gian th c. Thông i p c th hi n trong t!t c các lo i
bi u ng (tu n t , c ng tác, ho t ng và tr ng thái) theo ý ngh+a là s giao ti p gi a các i
t ng. M t thông i p c v& là m t c th)ng v i m'i tên n i gi a i t ng g i và i t ng
nh n thông i p. Lo i m'i tên s& ch* rõ lo i thông i p.
Hình 6.3 ch* rõ các lo i thông i p c s d ng trong UML.
107
ATM g i s ti n c n rút n cho tài kho n
i t ng tài kho n tr s ti n ó vào m c ti n trong tài kho n. T i th i i m này,
chúng ta th!y có m t m'i tên quay tr l i ch* vào i t ng tài kho n. Ý ngh+a c a nó là
i t ng tài kho n x lý yêu c u này trong n i b i t ng và không g i s ki n ó ra
ngoài.
it ng tài kho n tr v m c ti n m i trong tài kho n cho máy ATM.
i t ng ATM tr v m c ti n m i trong tài kho n cho khách hàng và d+ nhiên, c
l ng ti n khách hàng ã yêu c u c rút.
i t ng tài kho n ch* b"t u c sinh ra khi i t ng ATM c n t i nó ki m tra mã s và i
t ng tài kho n ti p t c s ng cho t i khi giao d ch c hoàn t!t. Sau ó, nó ch t i. B i khách hàng
có th mu n ti p t c th c hi n các giao d ch khác nên i t ng khách hàng và i t ng máy ATM
v n ti p t c t n t i, i u này c ch* ra qua vi c các ng i i t ng c kéo v t quá ng
th)ng th hi n s ki n cu i cùng trong chu.i t ng tác.
Lo i t ng tác này là r!t h u d ng trong m t h th ng có m t s l ng nh các i t ng v i m t s
l ng l n các s ki n x y ra gi a chúng. M c dù v y, khi s l ng các i t ng trong m t h th ng
t(ng lên thì mô hình này s& không còn m!y thích h p.
có th v& bi u tu n t , u tiên hãy xác nh các it ng liên quan và th hi n các s ki n x y
ra gi a chúng.
Khi v& bi u tu n t , c n chú ý:
S ki n c bi u di n b%ng các ng th)ng n%m ngang.
it ng b%ng các ng n%m d#c.
Th i gian c th hi n b%ng ng th)ng n%m d#c b"t u t trên bi u . i u ó
có ngh+a là các s ki n c n ph i c th hi n theo úng th t mà chúng x y ra, v& t
trên xu ng d i.
108
Hình cung bên l p tài kho n bi u th r%ng hàm ComputeNetBalance() c g#i trong n i b l p tài
kho n và nó x lý c c b . Th ng thì nó s& là m t th t c riêng (private) c a l p.
109
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.
110
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 cs
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 toá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 quá 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 ngoà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 ngoài.
111
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 it 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.
112
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.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.
113
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).
114
tr ng h p s d ng ho c trong m t i t ng. Bi u ho t ng là m t bi n th c a bi u tr ng thái
và có m t m c tiêu t ng i khác, ó là n"m b"t hành ng (công vi c và nh ng ho t ng ph i c
th c hi n) c'ng nh k t qu c a chúng theo s bi n i tr ng thái. Các tr ng thái trong bi u ho t
ng ( c g#i là các tr ng thái hành ng) s& chuy n sang giai o n k ti p khi hành ng trong tr ng
thái này ã c th c hi n xong (mà không xác nh b!t k0 m t s ki n nào theo nh n i dung c a
bi u tr ng thái). M t s i m phân bi t khác gi a bi u ho t ng và bi u tr ng thái là các
hành ng c a nó c nh v trong các lu ng (swimlane). M t lu ng s& gom nhóm các ho t ng,
chú ý t i khái ni m ng i ch u trách nhi m cho chúng ho c chúng n%m âu trong m t t ch c. M t
bi u ho t ng là m t ph ng pháp b sung cho vi c miêu t t ng tác, i kèm v i trách nhi m th
hi n rõ các hành ng x y ra nh th nào, chúng làm gì (thay i tr ng thái i t ng), chúng x y ra
khi nào (chu.i hành ng), và chúng x y ra âu (lu ng hành ng).
Bi u ho t ng có th c s d ng cho nhi u m c ích khác nhau, ví d nh :
n"m b"t công vi c (hành ng) s& ph i c th c thi khi m t th t c c th c
hi n. ây là tác d ng th ng g p nh!t và quan tr#ng nh!t c a bi u ho t ng.
n"m b"t công vi c n i b trong m t it ng.
ch* ra m t nhóm hành ng liên quan có th c th c thi ra sao, và chúng s& nh
h ng n nh ng i t ng n%m xung quanh chúng nh th nào.
ch* ra m t tr ng h p s d ng có th c th c th hóa nh th nào, theo khái ni m
hành ng và các s bi n i tr ng thái c a i t ng.
ch* ra m t doanh nghi p ho t ng nh th nào theo các khái ni m công nhân (tác
nhân), qui trình nghi p v (workflow), ho c t ch c và i t ng (các khía c nh v t lý
c'ng nh tri th c c s d ng trong doanh nghi p).
Bi u ho t ng có th c coi là m t lo i Flow chart. i m khác bi t là Flow Chart bình th ng ra
ch* c áp d ng i v i các qui trình tu n t , bi u ho t ng có th x lý c các các qui trình song
song.
115
Hình 6.12- Khi m t ng i g#i tác v PrintAllCustomer (trong l p
CustomerWindow), các hành ng kh i ng. hành ng u tiên là hi n
m t h p thông báo lên màn hình; hành ng th hai là t o m t t p tin
postscript; hành ng th ba là g i file postscript n máy in; và hành
ng th t là xóa h p thông báo trên màn hình. Các hành ng c
chuy n ti p t ng; chúng x y ra ngay khi hành ng trong giai o n
ngu n c th c hi n.
Các s thay i có th c b o v b i các i u ki n canh gi (Guard-condition), các i u ki n
này ph i c th a mãn thì s thay i m i n ra. M t ký hi u hình thoi c s d ng th
hi n m t quy t nh. Ký hi u quy t nh có th có m t ho c nhi u s thay i i vào và m t
ho c nhi u s thay i i ra c dán nhãn i kèm các i u ki n b o v . Bình th ng ra, m t
trong s các s thay i i ra bao gi c'ng c th a mãn (là úng). M t s thay i c chia
thành hai hay nhi u s thay i khác s& d n n các hành ng x y ra song song. Các hành
ng c th c hi n ng th i, m c dù chúng c'ng có th c th c hi n l n l t t ng cái m t.
Y u t quan tr#ng ây là t!t c các thay i ng th i ph i c th c hi n tr c khi chúng
c th ng nh!t l i v i nhau (n u có). M t ng th)ng n%m ngang k/ m (còn c g#i là
thanh ng h hóa – Synchronisation Bar) ch* r%ng m t s thay i c chia thành nhi u
nhánh khác nhau và ch* ra m t s chia s/ thành các hành ng song song. C'ng ng th)ng ó
c s d ng ch* ra s th ng nh!t các nhánh.
Kí hi u UML cho các thành ph n c n b n c a bi u $ ho"t 'ng:
Ho t ng (Activity): là m t qui trình c nh ngh+a rõ ràng, có th c th c thi qua
m t hàm ho c m t nhóm i t ng. Ho t ng c th hi n b%ng hình ch nh t bo
tròn c nh.
Thanh ng b hóa (Synchronisation bar): chúng cho phép ta m ra ho c là óng l i
các nhánh ch y song song n i b trong ti n trình.
116
i u ki n canh gi (Guard Condition): các bi u th c logic có giá tr ho c úng ho c
sai. i u ki n canh gi c th hi n trong ngo c vuông, ví d :
[Customer existing].
i m quy t nh (Decision Point): c s d ng ch* ra các s thay i kh thi. Kí
hi u là hình thoi.
Hình sau ây miêu t m t o n bi u ho t ng c a máy ATM. Sau khi th/ c a vào
máy, ta th!y có ba ho t ng song song:
Xác nh n th/
Xác nh n mã s PIN
Xác nh n s ti n yêu c u c rút
Ch* khi s d ng bi u ho t ng, các ho t ng song song nh v y m i có th c miêu t .
M.i m t ho t ng xác nh n b n thân nó c'ng ã có th là m t quá trình riêng bi t.
117
6.9.1. Vòng i sinh ra và ch t i
Trong m t vòng i sinh ra r i ch t i:
S& có m t hay nhi u tr ng thái n i it ng b"t u t n t i. Nh ng tr ng thái này c
g#i là tr ng thái t o ra i t ng.
S& có m t hay nhi u tr ng thái óng t cách là i m k t thúc cho vòng ic am t i
t ng. Nh ng tr ng thái này c g#i là tr ng thái k t thúc.
Có hai lo i tr ng thái k t thúc. M t d ng tr ng thái k t thúc là lo i n i i t ng b h y và không ti p
t c t n t i n a. Lo i th hai là d ng tr ng thái k t thúc mà sau ó i t ng s& c l u tr l i ho c
chuy n sang tr ng thái im l ng. i t ng ti p t c t n t i nh ng không ti p t c th hi n ng x ng.
Sau tr ng thái kh i t o và tr c tr ng thái k t thúc, i t ng có th i qua m t ho c là nhi u tr ng thái
trung gian. T i m.i m t th i i m, i t ng ph i m t tr ng thái hi n th i.
Không có m t i m nào sau tr ng thái kh i t o và tr c tr ng thái k t thúc mà it ng l i không có
tr ng thái.
Ví d cho it ng có vòng i sinh ra và ch t i: khách hàng, tài kho n.
6.9.2. Vòng il p
Khác v i tr ng h p sinh ra và ch t i, trong vòng i vòng l p:
it ng c coi là ã luôn luôn t n t i ây và s& còn mãi mãi ti p t c t n t i.
Không có tr ng thái kh i t o c'ng không có tr ng thái k t thúc.
M c dù th t ra i t ng ã c t o ra t i m t th i i m nào ó và c'ng s& th t s b h y di t t i m t
th i i m nào ó, nh ng nó v n c coi là luôn luôn t n t i và có m t. Th ng thì nh ng i t ng t
ra có m t vòng i vòng l p s& c t o ra t i th i i m cài t h th ng và s& ch t i khi h th ng k t
thúc.
M t i t ng v i vòng i vòng l p s& có m t ho c là nhi u tr ng thái "ng yên". ó là nh ng tr ng
thái n i i t ng n%m ch m t s ki n x y ra. Bên c nh ó, i t ng c'ng luôn luôn tr ng thái hi n
th i.
Ví d cho it ng có vòng i l p l i: máy rút ti n t ng (ATM), nhân viên thu ngân.
118
Ph n quan tr#ng nh!t trong mô hình này là bi u tr ng thái. Hãy tìm câu tr l i cho m t lo t các câu
h i xác nh xem bi u tr ng thái ã úng "n và có m t m c chi ti t thích h p hay ch a.
Công vi c này c n nh"m t i hai m c ích:
Ki m tra tính tr#n v-n c a mô hình
m b o m#i i u ki n gây l.i ã c x lý
Trong giai o n này, có th s& có các c nh k ch (scenario) m i xu!t hi n và gia nh p ph m vi quan sát
c a chúng ta, n u tr c ó có m t s tr ng thái ch a c x lý. Nh ng tình hu ng lo i này là lo i v!n
có th c gi i quy t, song có th né tránh qua vi c xác nh th t y các s ki n và tr ng thái.
6.10.2. Ph i h p s ki n
B c cu i cùng là m t vòng ki m tra b sung nh%m m b o tính úng "n c a mô hình ng:
Ki m tra m b o m.i thông i p u có i t ng g i và i t ng nh n. Trong
m t s tr ng h p, s li u chính xác c a nh ng i t ng nh n s ki n có th không
c bi t t i, nh ng chúng ta ph i m b o r%ng chúng ta bi t nh ng l p nào s& x lý
nh ng s ki n này.
Hãy nghiên c u mô hình theo khía c nh tr ng thái, tìm ra nh ng tr ng thái không có
tr ng thái d n tr c và không có tr ng thái ti p theo. Nh ng tr ng thái thái này r!t có th
là tr ng thái kh i u ho c tr ng thái k t thúc. M c dù v y, n u tr ng thái ó không
thu c v m t trong hai lo i tr ng thái kia, r!t có th ây là m t tri u ch ng cho th!y mô
hình còn thi u i u gì ó.
Nhìn chung, t!t c các tr ng thái th ng u có tr ng thái d n tr c và tr ng thái ti p
sau.
Hãy l n theo h êu ng c a các s ki n i vào (entry) m b o là chúng t ng thích
v i các tr ng h p s d ng n i chúng xu!t phát. làm i u này, hãy l n theo m t s
ki n t m t i t ng này n i t ng khác, ki m tra xem m.i s ki n có phù h p v i
tr ng h p s d ng hay không. Trong tr ng h p có mâu thu n, hãy s a l i bi u
tr ng thái ho c tr ng h p s d ng m b o s nh!t quán.
Ki m tra l i nh ng l.i ng b , có th chúng là k t qu c a m t s ki n không ch i.
119
Bi u ho t ng c s d ng th hi n l i ng x xuyên su t nhi u tr ng h p s d ng ho c các
ti u trình x y ra song song c a m t l n th c thi.
Bi u thành ph n và bi u tri n khai c s d ng ch* ra m i quan h v t lý gi a ph n m m và
các thành ph n ph n c ng trong h th ng.
120
M c dù v y, trong mô hình ng, s khác bi t trong ng x ng s& c mô hình hóa
thành các tr ng thái khác nhau c a cùng m t l p.
6.13. Ph n câu h i
H i: Th nào là m t vòng l p?
áp: úng
H i: Các s ki n c l p c'ng có th là các s ki n song song
áp: úng
H i: M t it ng không nh!t thi t ph i có tr ng thái.
121
áp: Sai, m#i it ng u có tr ng thái
H i: M t l p có th có tr ng thái ban u và tr ng thái k t thúc.
122