You are on page 1of 122

TÀI LI U MÔN H C PHÂN TÍCH VÀ THI T K HTTT

THEO UML
( ây là tài li u s u t m, t ng h p)

GI NG VIÊN PH TRÁCH: NGUY N CC NG

GI NG VIÊN: TÔN TH T HOÀ AN – D NG KI U HOA


(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.1. Tính tr c quan


Chúng ta có th th!y r%ng: "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ô". V i ph n m m c'ng v y, khi
ngành Công nghi p c a chúng ta ngày càng phát tri n, các h th ng s& tr nên ph c t p h n. Kh n(ng
n"m b"t và ki m soát s ph c t p ó c a chúng ta i kèm v i kh n(ng trình bày h th ng m t cách
toàn di n - m t s trình bày v t ra ngoài gi i h n c a nh ng dòng l nh thô. S thành công trên th
tr ng c a nh ng ngôn ng nh Visual Basic và ph n giao di n tr c quan c a C++, Java ã cho th!y
s trình bày tr c quan mang tính c t y u i v i quá trình phát tri n các h th ng ph c t 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.

1.1.3. Mô hình hóa tr c quan


Mô hình hoá tr c quan là m t ph ng th c t duy v v!n s d ng các mô hình c t ch c xoay
quanh các khái ni m i th c. Mô hình giúp chúng ta hi u v!n , giao ti p v i m#i ng i có liên quan
n d án (khách hàng, chuyên gia l+nh v c thu c án, nhà phân tích, nhà thi t k , …). Mô hình r!t
h u d ng trong vi c mô hình hoá doanh nghi p, so n th o tài li u, thi t k ch ng trình c'ng nh ngân
hàng d li u. Mô hình giúp hi u các òi h i c a h th ng t t h n, t o các thi t k rõ ràng h n và xây
d ng nên các h th ng d b o trì h n.
Mô hình là k t qu c a s tr u t ng hóa nh%m miêu t các thành ph n c t y u c a m t v!n hay m t
c!u trúc ph c t p qua vi c l#c b t các chi ti t không quan tr#ng và làm cho v!n tr thành d hi u
h n. Tr u t ng hóa là m t n(ng l c c(n b n c a con ng i, cho phép chúng ta gi i quy t các v!n
ph c t p. Các k, s , ngh s+ và th th công ã xây d ng mô hình t hàng ngàn n(m nay th
nghi m thi t k tr c khi th c hi n. Phát tri n ph n m m c'ng không là ngo i l . xây d ng các h
th ng ph c t p, nhà phát tri n ph i tr u t ng hóa nhi u h ng nhìn khác nhau c a h th ng, s d ng
ký hi u chính xác xây d ng mô hình, ki m tra xem mô hình có th a mãn các òi h i c a h th ng,
và d n d n b sung thêm chi ti t chuy n các mô hình thành th c hi n.
Chúng ta xây d ng mô hình cho các h th ng ph c t p b i chúng ta không th hi u th!u áo nh ng h
th ng nh th trong tr ng thái toàn v-n c a chúng. Kh n(ng th!u hi u và n"m b"t tính ph c t p c a
6
con ng i là có h n. i u này ta có th th!y rõ trong ví d c a ngành xây d ng. N u b n mu n t o m t
túp l u góc v n, b n có th b"t tay vào xây ngay. N u b n xây m t ngôi nhà, có l& b n s& c n t i
b n v&, nh ng n u b n mu n xây m t toà nhà ch#c tr i thì ch"c ch"n b n không th không c n b n v&.
Th gi i ph n m m c a chúng ta c'ng th . Ch* t p trung vào các dòng code hay th m chí c phân tích
Forms trong Visual Basic ch)ng cung c!p m t cái nhìn toàn c c v vi c phát tri n án. Xây d ng mô
hình cho phép nhà thi t k t p trung vào b c tranh l n v s t ng tác gi a các thành ph n trong án,
tránh b sa l y vào nh ng chi ti t riêng bi t c a t ng thành ph n.
M t môi tr ng kinh doanh mang tính c nh tranh gay g"t và luôn luôn thay i d n n tính ph c t p
ngày càng t(ng cao, và tính ph c t p này t ra nh ng thách th c c tr ng cho các nhà phát tri n h
th ng. 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.
Chúng giúp chúng ta áp ng các thách th c c a vi c phát tri n ph n m m, hôm nay c'ng nh ngày
mai.

1.2. Mô t chu trình phát tri n ph n m m

1.2.1. Software Development – m t bài toán ph c t p


Kinh nghi m c a nhi u nhà thi t k và phát tri n cho th!y phát tri n ph n m m là m t bài toán ph c
t p. Xin nêu m t s các lý do th ng ck n:
Nh ng ng i phát tri n ph n m m r!t khó hi u cho úng nh ng gì ng i dùng c n
Yêu c u c a ng i dùng th ng thay i trong th i gian phát tri n.
Yêu c u th ng c miêu t b%ng v(n b n, dài dòng, khó hi u, nhi u khi th m chí
mâu thu n.
i quân phát tri n ph n m m, v n là ng i "ngoài cu c", r!t khó nh n th c th!u áo
các m i quan h ti m $n và ph c t p c n c th hi n chính xác trong các ng d ng
l n.
Kh n(ng n"m b"t các d li u ph c t p c a con ng i (t i cùng m t th i i m) là có
h n.
Khó nh l ng chính xác hi u su!t c a thành ph$m và th a mãn chính xác s mong
ch t phía ng i dùng.
Ch#n l a ph n c ng và ph n m m thích h p cho gi i pháp là m t trong nh ng thách
th c l n i v i Designer.
Ph n m m ngoài ra c n có kh n(ng thích ng và m r ng. Ph n m m c thi t k t t là ph n m m
ng v ng tr c nh ng bi n i trong môi tr ng, dù t phía c ng ng ng i dùng hay t phía công
ngh . Ví d ph n m m ã c phát tri n cho m t nhà b(ng c n có kh n(ng tái s d ng cho m t nhà
b(ng khác v i r!t ít s a i ho c hoàn toàn không c n s a i. Ph n m m tho mãn các yêu c u ó
c coi là ph n m m có kh n(ng thích ng.
M t ph n m m có kh n(ng m r ng là ph n m m c thi t k sao cho d phát tri n theo yêu c u c a
ng i dùng mà không c n s a ch a nhi u.
Chính vì v y, m t s các khi m khuy t th ng g p trong phát tri n ph n m m là:

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.

1.2.2. Chu Trình Phát Tri n Ph n M m (Software Development Life Cycle)


Vì phát tri n ph n m m là m t bài toán khó, nên có l& tr c h t ta c n i m qua m t s các công vi c
c(n b n c a quá trình này. Th ng ng i ta hay t p h p chúng theo ti n trình th i gian m t cách t ng
i, xoay quanh chu trình c a m t ph n m m, d n t i k t q a khái ni m Chu Trình Phát Tri n Ph n
M m (Software Development Life Cycle - SDLC) nh sau:
Chu Trình Phát Tri n Ph n M m là m t chu.i các ho t ng c a nhà phân tích (Analyst), nhà thi t k
(Designer), ng i phát tri n (Developer) và ng i dùng (User) phát tri n và th c hi n m t h th ng
thông tin. Nh ng ho t ng này c th c hi n trong nhi u giai #an khác nhau.
Nhà phân tích (Analyst): là ng i nghiên c u yêu c u c a khách hàng/ng i dùng nh
ngh+a m t ph m vi bài toán, nh n d ng nhu c u c a m t t ch c, xác nh xem nhân l c,
ph ng pháp và công ngh máy tính có th làm sao c i thi n m t cách t t nh!t công tác c a
t ch c này.
Nhà thi!t k! (Designer): thi t k h th ng theo h ng c!u trúc c a database, screens, forms
và reports – quy t nh các yêu c u v ph n c ng và ph n m m cho h th ng c n c phát
tri n.
Chuyên gia l0nh v*c (Domain Experts): là nh ng ng i hi u th c ch!t v!n cùng t!t c
nh ng s ph c t p c a h th ng c n tin h#c hoá. H# không nh!t thi t ph i là nhà l p trình,
nh ng h# có th giúp nhà l p trình hi u yêu c u t ra i v i h th ng c n phát tri n. Quá trình
phát tri n ph n m m s& có r!t nhi u thu n l i n u i ng' làm ph n m m có c s tr giúp
c a h#.
L p trình viên (Programmer): là nh ng ng i d a trên các phân tích và thi t k vi t
ch ng trình (coding) cho h th ng b%ng ngôn ng l p trình ã c th ng nh!t.
Ng /i dùng (User): là it ng ph c v c a h th ng c n c phát tri n.
cho rõ h n, xin l!y ví d v m t v!n n gi n sau:
Ng i bình th ng chúng ta khi nhìn m t chi c xe ô tô th ng s& có m t b c tranh t bên ngoài nh
sau:

8
V,n

Hình 1.1: Nhìn v!n ô tô c a ng i bình th ng


Chuyên gia l+nh v c s& giúp nhà phân tích "trình bày l i" v!n nh sau:

Hình 1.2: Nhìn v!n ô tô c a chuyên gia phân tích


Chính vì s tr giúp c a chuyên gia l+nh v c có th óng vai trò r!t quan tr#ng nên trong nh ng giai
o n u c a quá trình phát tri n ph n m m, k t qu phân tích nên c th hi n sao cho d hi u i
v i các chuyên gia l+nh v c. ây c'ng là môt trong r!t nhi u lý do khi n cho ph ng pháp h ng i
t ng c nhi u ng i h ng ng.

1.2.3. Các giai o n c a Chu Trình Phát Tri n Ph n M m


Chu trình c a m t ph n m m có th c chia thành các giai o n nh sau:
Nghiên c u s b (Preliminary Investigation hay còn g#i là Feasibility Study)
Phân tích yêu c u (Analysis)
Thi t k h th ng (Design of the System)
Xây d ng ph n m m (Software Construction)
Th nghi m h th ng (System Testing)
Th c hi n, tri n khai (System Implementation)
B o trì, nâng c!p (System Maintenance)

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.

b) Phân tích yêu c u:


Sau khi ã xem xét v tính kh thi c a h th ng c'ng nh t o l p m t b c tranh s b c a d án, chúng
ta b c sang giai o n th ng c coi là quan tr#ng nh!t trong các công vi c l p trình: hi u h th ng
c n xây d ng. Ng i th c hi n công vi c này là nhà phân tích.
Quá trình phân tích nhìn chung là h qu c a vi c tr l i câu h i "H th ng c n ph i làm gì?". Quá
trình phân tích bao g m vi c nghiên c u chi ti t h th ng doanh nghi p hi n th i, tìm cho ra nguyên lý
ho t ng c a nó và nh ng v trí có th c nâng cao, c i thi n. Bên c nh ó là vi c nghiên c u xem
xét các ch c n(ng mà h th ng c n cung c!p và các m i quan h c a chúng, bên trong c'ng nh v i
phía ngoài h th ng. Trong toàn b giai o n này, nhà phân tích và ng i dùng c n c ng tác m t thi t
v i nhau xác nh các yêu c u i v i h th ng, t c là các tính n(ng m i c n ph i c a vào h
th ng.

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.

e) Th% nghi m h th ng:


Sau khi các th t c ã c th nghi m riêng, c n ph i th nghi m toàn b h th ng. M#i th t c c
tích h p và ch y th , ki m tra xem m#i chi ti t ghi trong c T Yêu C u và nh ng mong ch c a
ng i dùng có c tho mãn. D li u th c n c ch#n l#c c bi t, k t qu c n c phân tích
phát hi n m#i l ch l c so v i mong ch .

f) Th*c hi n, tri n khai:


Trong giai o n này, h th ng v a phát tri n s& c tri n khai sao cho phía ng i dùng. Tr c khi
ng i dùng th t s b"t tay vào s d ng h th ng, nhóm các nhà phát tri n c n t o các file d li u c n
thi t c'ng nh hu!n luy n cho ng i dùng, m b o h th ng c s d ng h u hi u nh!t.

g) B o trì, nâng c,p:


Tùy theo các bi n i trong môi tr ng s d ng, h th ng có th tr nên l.i th i hay c n ph i cs a
i nâng c!p s d ng có hi u qu . Ho t ng b o trì h th ng có th r!t khác bi t tùy theo m c
s a i và nâng c!p c n thi t.

S $ t ng quát các giai o"n c a Chu Trình Phát Tri n Ph n M m:

Hình 1.3: S t ng quát các giai o n c a Chu Trình Phát Tri n Ph n M m

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

1.4.1. Tính tái s d ng (Reusable)


Ph ng pháp phân tích và thi t k h ng i t ng th c hi n theo các thu t ng và khái ni m c a
ph m vi l+nh v c ng d ng (t c là c a doanh nghi p hay n v mà h th ng t ng lai c n ph c v ),
nên nó t o s ti p c n t ng ng gi a h th ng và v!n th c ngoài i. Trong ví d bán xe ô tô, m#i
giai o n phân tích thi t k và th c hi n u xoay quanh các khái ni m nh khách hàng, nhân viên bán
hàng, xe ô tô, … Vì quá trình phát tri n ph n m m ng th i là quá trình c ng tác c a khách

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.

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 it ng


Phân tích h ng it ng (Object Oriented Analysis - OOA):
Là giai #an phát tri n m t mô hình chính xác và súc tích c a v!n , có thành ph n là các it ng
và khái ni m i th c, d hi u i v i ng i s d ng.
Trong giai o n OOA, v!n c trình bày b%ng các thu t ng t ng ng v i các i t ng có th c.
Thêm vào ó, h th ng c n ph i c nh ngh+a sao cho ng i không chuyên Tin h#c có th d dàng
hi u c.
D a trên m t v!n có s2n, nhà phân tích c n ánh x các i t ng hay th c th có th c nh khách
hàng, ô tô, ng i bán hàng, … vào thi t k t o ra c b n thi t k g n c n v i tình hu ng th c. Mô
hình thi t k s& ch a các th c th trong m t v!n có th c và gi nguyên các m u hình v c!u trúc,
quan h c'ng nh hành vi c a chúng. Nói m t cách khác, s d ng ph ng pháp h ng i t ng chúng
ta có th mô hình hóa các th c th thu c m t v!n có th c mà v n gi c c!u trúc, quan h c'ng
nh hành vi c a chúng.
i v i ví d m t phòng bán ô tô, giai o n OOA s& nh n bi t c các th c th nh :
Khách hàng
Ng i bán hàng
Phi u t hàng
Phi u (hoá n) thanh toán
Xe ô tô
T ng tác và quan h gi a các it ng trên là:
Ng i bán hàng d n khách hàng tham quan phòng tr ng bày xe.
Khách hàng ch#n m t chi c xe

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.

L p trình h ng it ng (Object Oriented Programming - OOP):

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Ì?

2.1. Gi i thi u UML

2.1.1. Mô hình hóa h th ng ph n m m


Nh ã trình bày ph n tr c, m c tiêu c a giai o n phân tích h th ng là s n xu!t ra m t mô hình
t ng th c a h th ng c n xây d ng. Mô hình này c n ph i c trình bày theo h ng nhìn (View) c a
khách hàng hay ng i s d ng và làm sao h# hi u c. Mô hình này c'ng có th c s d ng
xác nh các yêu c u c a ng i dùng i v i h th ng và qua ó giúp chúng ta ánh giá tính kh thi
c a d án.
T m quan tr#ng c a mô hình ã c l+nh h i m t cách th!u áo trong h u nh t!t c các ngành khoa
h#c k, thu t t nhi u th k3 nay. B!t k0 âu, khi mu n xây d ng m t v t th nào ó, u tiên ng i
ta ã t o nên các b n v& quy t nh c ngo i hình l n ph ng th c ho t ng c a nó. Ch)ng h n các
b n v& k, thu t th ng g p là m t d ng mô hình quen thu c. Mô hình nhìn chung là m t cách mô t
c a m t v t th nào ó. V t ó có th t n t i trong m t s giai o n nh!t nh, dù ó là giai o n thi t
k hay giai o n xây d ng ho c ch* là m t k ho ch. Nhà thi t k c n ph i t o ra các mô hình mô t t!t
c các khía c nh khác nhau c a s n ph$m. Ngoài ra, m t mô hình có th c chia thành nhi u h ng
nhìn, m.i h ng nhìn trong s chúng s& mô t m t khía c nh riêng bi t c a s n ph$m hay h th ng c n
c xây d ng. M t mô hình c'ng có th c xây d ng trong nhi u giai o n và m.i giai o n, mô
hình s& c b sung thêm m t s chi ti t nh!t nh.
Mô hình th ng c mô t trong ngôn ng tr c quan, i u ó có ngh+a là a ph n các thông tin c
th hi n b%ng các ký hi u h#a và các k t n i gi a chúng, ch* khi c n thi t m t s thông tin m i c
bi u di n d ng v(n b n; Theo úng nh câu ng n ng "M t b c tranh nói nhi u h n c ngàn t ". T o
mô hình cho các h th ng ph n m m tr c khi th c s xây d ng nên chúng, ã tr thành m t chu$n
m c trong vi c phát tri n ph n m m và c ch!p nh n trong c ng ng làm ph n m m gi ng nh
trong b!t k0 m t ngành khoa h#c k, thu t nào khác. Vi c bi u di n mô hình ph i thoã mãn các y u t
sau:
Chính xác (accurate): Mô t úng h th ng c n xây d ng.
ng nh!t (consistent): Các view khác nhau không c mâu thu$n v i nhau.
Có th hi u c (understandable): Cho nh ng ng i xây d ng l n s d ng
D thay i (changeable)
D dàng liên l c v i các mô hình khác.
Có th nói thêm r%ng mô hình là m t s n gi n hoá hi n th c. Mô hình c xây d ng nên chúng
ta d dàng hi u và hi u t t h n h th ng c n xây d ng. T o mô hình s& giúp cho chúng ta hi u th!u áo
m t h th ng ph c t p trong s toàn th c a nó.
Nói tóm l i, mô hình hóa m t h th ng nh%m m c ích:
Hình dung m t h th ng theo th c t hay theo mong mu n c a chúng ta .

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.2. Tr c khi UML ra i


u nh ng n(m 1980, ngành công ngh ph n m m ch* có duy nh!t m t ngôn ng h ng i t ng là
Simula. Sang n a sau c a th p k3 1980, các ngôn ng h ng i t ng nh Smalltalk và C++ xu!t
hi n. Cùng v i chúng, n y sinh nhu c u mô hình hoá các h th ng ph n m m theo h ng i t ng. Và
m t vài trong s nh ng ngôn ng mô hình hoá xu!t hi n nh ng n(m u th p k3 90 c nhi u ng i
dùng là:
Grady Booch’s Booch Modeling Methodology
James Rambaugh’s Object Modeling Technique – OMT
Ivar Jacobson’s OOSE Methodology
Hewlett- Packard’s Fusion
Coad and Yordon’s OOA and OOD
M.i ph ng pháp lu n và ngôn ng trên u có h th ng ký hi u riêng, ph ng pháp x lý riêng và
công c h. tr riêng, khi n n y ra cu c tranh lu n ph ng pháp nào là t t nh!t. ây là cu c tranh lu n
khó có câu tr l i, b i t!t c các ph ng pháp trên u có nh ng i m m nh và i m y u riêng. Vì th ,
các nhà phát tri n ph n m m nhi u kinh nghi m th ng s d ng ph i h p các i m m nh c a m.i
ph ng pháp cho ng d ng c a mình. Trong th c t , s khác bi t gi a các ph ng pháp ó h u nh
không áng k và theo cùng ti n trình th i gian, t!t c nh ng ph ng pháp trên ã ti m c n l i và b
sung l n cho nhau. Chính hi n th c này ã c nh ng ng i tiên phong trong l+nh v c mô hình hoá
h ng i t ng nh n ra và h# quy t nh ng i l i cùng nhau tích h p nh ng i m m nh c a m.i
ph ng pháp và a ra m t mô hình th ng nh!t cho l+nh v c công ngh ph n m m.

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.

2.1.4. UML (Unifield Modeling Language)


Ngôn ng mô hình hóa th ng nh!t (Unifield Modeling Language – UML) là m t ngôn ng bi u di n
mô hình theo h ng i t ng c xây d ng b i ba tác gi trên v i ch ích là:
Mô hình hoá các h th ng s d ng các khái ni m h ng it ng.
Thi t l p m t k t n i t nh n th c c a con ng i n các s ki n c n mô hình hoá.
Gi i quy t v!n v m c th a k trong các h th ng ph c t p, có nhi u ràng bu c
khác nhau.
T o m t ngôn ng mô hình hoá có th s d ng c b i ng i và máy.

2.1.5. Ph ng pháp và các ngôn ng mô hình hoá


Ph ng pháp hay ph ng th c (method) là m t cách tr c ti p c!u trúc hoá s suy ngh+ và hành ng
c a con ng i. Ph ng pháp cho ng i s d ng bi t ph i làm gì, làm nh th nào, khi nào và t i sao
(m c ích c a hành ng). Ph ng pháp ch a các mô hình (model), các mô hình c dùng mô t
nh ng gì s d ng cho vi c truy n t k t qu trong quá trình s d ng ph ng pháp. i m khác nhau
chính gi a m t ph ng pháp và m t ngôn ng mô hình hoá (modeling language) là ngôn ng mô hình
hoá không có m t ti n trình (process) hay các câu l nh (instruction) mô t nh ng công vi c ng i s
d ng c n làm.
M t mô hình c bi u di n theo m t ngôn ng mô hình hoá. Ngôn ng mô hình hoá bao g m các ký
hi u – nh ng bi u t ng c dùng trong mô hình – và m t t p các quy t"c ch* cách s d ng chúng.
Các quy t"c này bao g m:
Syntactic (Cú pháp): cho bi t hình d ng các bi u t ng và cách k t h p chúng trong
ngôn ng .
Semantic (Ng ngh+a): cho bi t ý ngh+a c a m.i bi u t ng, chúng c hi u th nào
khi n%m trong ho c không n%m trong ng c nh c a các bi u t ng khác.
Pragmatic : nh ngh+a ý ngh+a c a bi u t ng sao cho m c ích c a mô hình c
th hi n và m#i ng i có th hi u c.

2.2. UML trong phân tích thi!t k! h th ng


UML có th c s d ng trong nhi u giai o n, t phát tri n, thi t k cho t i th c hi n và b o trì. Vì
m c ích chính c a ngôn ng này là dùng các bi u h ng i t ng mô t h th ng nên mi n
ng d ng c a UML bao g m nhi u lo i h th ng khác nhau nh :
H th ng th ng tin (Information System): C!t gi , l!y, bi n i bi u di n thông tin cho
ng i s d ng. X lý nh ng kho ng d li u l n có các quan h ph c t p , mà chúng cl u
tr trong các c s d li u quan h hay h ng i t ng .

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.

2.3. UML và các giai o"n phát tri n h th ng


Preliminary Investigation: use cases th hi n các yêu c u c a ng i dùng. Ph n miêu t use
case xác nh các yêu c u, ph n diagram th hi n m i quan h và giao ti p v i h th ng.
Analysis: M c ích chính c a giai #an này là tr u t ng hóa và tìm hi u các c c!u có
trong ph m vi bài toán. Class diagrams trên bình di n tr u t ng hóa các th c th ngoài i
th c c s d ng làm rõ s t n t i c'ng nh m i quan h c a chúng. Ch* nh ng l p (class)
n%m trong ph m vi bài toán m i áng quan tâm.
Design: K t qu ph n analysis c phát tri n thành gi i pháp k, thu t. Các l p c mô
hình hóa chi ti t cung c!p h t ng k, thu t nh giao di n, n n t ng cho database, … K t qu
ph n Design là các c t chi ti t cho giai o n xây d ng ph n m m.
Development: Mô hình Design c chuy n thành code. Programmer s d ng các UML
diagrams trong giai o n Design hi u v!n và t o code.
Testing: S d ng các UML diagrams trong các giai o n tr c. Có 4 hình th c ki m tra h
th ng:
Unit testing (class diagrams & class specifications) : ki m tra t ng n th ,
c dùng ki m tra các l p hay các nhóm n th .
Integration testing (integration diagrams & collaboration diagrams) : ki m tra
tích h p là ki m tra k t h p các component v i các l p xem chúng ho t ng
v i nhau có úng không.
System testing (use-case diagrams) : ki m tra xem h th ng có áp ng c
ch c n(ng mà ng i s d ng yêu c u hay khô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ì?

áp: Ngôn ng mô hình hóa th ng nh!t – UML là m t ngôn ng bi u di n mô hình theo


h ng i t ng.
H i: i m khác nhau c b n gi a ph ng pháp (method) và m t ngôn ng mô hình hoá (modeling
language) là gì?

áp: i m khác nhau c b n gi a m t ph ng pháp và m t ngôn ng mô hình hoá là ngôn


ng mô hình hoá không có m t ti n trình (process) hay các câu l nh (instruction) mô t nh ng
công vi c ng i s d ng c n làm mà nó bao g m các ký hi u – nh ng bi u t ng c dùng
trong mô hình – và m t t p các quy t"c ch* cách s d ng chúng.

21
CH NG 3: KHÁI QUÁT V UML

3.1. UML và các giai o"n c a chu trình phát tri n ph n m m

3.1.1. Giai o n nghiên c u s b


UML a ra khái ni m Use Case n"m b"t các yêu c u c a khách hàng (ng i s d ng). UML s
d ng bi u Use case (Use Case Diagram) nêu b t m i quan h c'ng nh s giao ti p v i h th ng.
Qua ph ng pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm n h th ng s&
c mô hình hóa song song v i ch c n(ng mà h# òi h i t phía h th ng (t c là Use case). Các tác
nhân và các Use case c mô hình hóa cùng các m i quan h và c miêu t trong bi u Use case
c a UML. M.i m t Use case c mô t trong tài li u, và nó s& c t các yêu c u c a khách hàng:
Anh ta hay ch ta ch i i u gì phía h th ng mà không h ý n vi c ch c n(ng này s& c
th c thi ra sao.

3.1.2. Giai o n phân tích


Giai o n phân tích quan tâm n quá trình tr u t ng hóa u tiên (các l p và các i t ng) c'ng
nh c ch hi n h u trong ph m vi v!n . Sau khi nhà phân tích ã nh n bi t c các l p thành ph n
c a mô hình c'ng nh m i quan h gi a chúng v i nhau, các l p cùng các m i quan h ó s& c
miêu t b%ng công c bi u l p (class diagram) c a UML. S c ng tác gi a các l p nh%m th c hi n
các Use case c'ng s& c miêu t nh vào các mô hình ng (dynamic models) c a UML. Trong giai
o n phân tích, ch* duy nh!t các l p có t n t i trong ph m vi v!n (các khái ni m i th c) là c
mô hình hóa. Các l p k, thu t nh ngh+a chi ti t c'ng nh gi i pháp trong h th ng ph n m m, ví d
nh các l p cho giao di n ng i dùng, cho ngân hàng d li u, cho s giao ti p, trùng h p, v.v..., ch a
ph i là m i quan tâm c a giai o n này.

3.1.3. Giai o n thi t k


Trong giai o n này, k t qu c a giai o n phân tích s& c m r ng thành m t gi i pháp k, thu t.
Các l p m i s& c b sung t o thành m t h t ng c s k, thu t: Giao di n ng i dùng, các ch c
n(ng l u tr các i t ng trong ngân hàng d li u, giao ti p v i các h th ng khác, giao di n v i
các thi t b ngo i vi và các máy móc khác trong h th ng, .... Các l p thu c ph m vi v!n có t giai
o n phân tích s& c "nhúng" vào h t ng c s k, thu t này, t o ra kh n(ng thay i trong c hai
ph ng di n: Ph m vi v!n và h t ng c s . Giai o n thi t k s& a ra k t qu là b n c t chi ti t
cho giai o n xây d ng h th ng.

3.1.4. Giai o n xây d ng


Trong giai o n xây d ng (giai o n l p trình), các l p c a giai o n thi t k s& c bi n thành nh ng
dòng code c th trong m t ngôn ng l p trình h ng i t ng c th (không nên dùng m t ngôn ng
l p trình h ng ch c n(ng!). Ph thu c vào kh n(ng c a ngôn ng c s d ng, ây có th là m t
công vi c khó kh(n hay d dàng. Khi t o ra các mô hình phân tích và thi t k trong UML, t t nh!t nên
c g"ng né tránh vi c ngay l p t c bi n i các mô hình này thành các dòng code. Trong nh ng giai
o n tr c, mô hình c s d ng d hi u, d giao ti p và t o nên c!u trúc c a h th ng; vì v y, v i

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.

3.2. Các thành ph n c a ngôn ng# UML


Ngôn ng UML bao g m m t lo t các ph n t h#a (graphic element) có th c k p h p v i nhau
t o ra các bi u . B i ây là m t ngôn ng , nên UML c'ng có các nguyên t"c k t h p các ph n
t ó.
M t s nh ng thành ph n ch y u c a ngôn ng UML:
H ng nhìn (view): H ng nhìn ch* ra nh ng khía c nh khác nhau c a h th ng c n ph i
c mô hình hóa. M t h ng nhìn không ph i là m t b n v&, mà là m t s tr u t ng hóa bao
g m m t lo t các bi u khác nhau. Ch* qua vi c nh ngh+a c a m t lo t các h ng nhìn khác
nhau, m.i h ng nhìn ch* ra m t khía c nh riêng bi t c a h th ng, ng i ta m i có th t o
d ng nên m t b c tranh hoàn thi n v h th ng. C'ng chính các h ng nhìn này n i k t ngôn
ng mô hình hóa v i quy trình c ch#n cho giai o n phát tri n.
Bi u (diagram): Bi u là các hình v& miêu t n i dung trong m t h ng nhìn. UML có
t!t c 9 lo i bi u khác nhau c s d ng trong nh ng s k t h p khác nhau cung c!p t!t
c các h ng nhìn c a m t h th ng.
Ph n t mô hình hóa (model element): Các khái ni m c s d ng trong các bi u c
g#i là các ph n t mô hình, th hi n các khái ni m h ng i t ng quen thu c. Ví d nh l p,
i t ng, thông i p c'ng nh các quan h gi a các khái ni m này, bao g m c liên k t, ph
thu c, khái quát hóa. M t ph n t mô hình th ng c s d ng trong nhi u bi u khác nhau,
nh ng nó luôn luôn có ch* m t ý ngh+a và m t kí hi u.
C ch chung: C ch chung cung c!p thêm nh ng l i nh n xét b sung, các thông tin c'ng
nh các quy t"c ng pháp chung v m t ph n t mô hình; chúng còn cung c!p thêm các c ch
có th m r ng ngôn ng UML cho phù h p v i m t ph ng pháp xác nh (m t quy trình,
m t t ch c ho c m t ng i dùng).

3.3. H ng nhìn (View)


Mô hình hóa m t h th ng ph c t p là m t vi c làm khó kh(n. Lý t ng nh!t là toàn b h th ng c
miêu t ch* trong m t b n v&, m t b n v& nh ngh+a m t cách rõ ràng và m ch l c toàn b h th ng,
m t b n v& ngoài ra l i còn d giao ti p và d hi u. M c dù v y, th ng thì ây là chuy n b!t kh thi.
M t b n v& không th n"m b"t t!t c các thông tin c n thi t miêu t m t h th ng. M t h th ng c n

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.

Hình 3.1- Các View trong UML


M.i m t h ng nhìn c miêu t trong m t lo t các bi u , ch a ng các thông tin nêu b t khía
c nh c bi t ó c a h th ng. Trong th c t khi phân tích và thi t k r!t d x y ra s trùng l p thông
tin, cho nên m t bi u trên th t t có th là thành ph n c a nhi u h ng nhìn khác nhau. Khi nhìn h
th ng t nhi u h ng nhìn khác nhau, t i m t th i i m có th ng i ta ch* t p trung vào m t khía c nh
c a h th ng. M t bi u trong m t h ng nhìn c th nào ó c n ph i n gi n t o i u
ki n giao ti p d dàng, dính li n v i các bi u khác c'ng nh các h ng nhìn khác, làm sao cho
b c tranh toàn c nh c a h th ng c miêu t b%ng s k t h p t!t c các thông tin t t!t c các h ng
nhìn. M t bi u ch a các kí hi u hình h#c mô t các ph n t mô hình c a h th ng. UML có t!t c
các h ng nhìn sau:
H ng nhìn Use case (use case view) : ây là h ng nhìn ch* ra khía c nh ch c n(ng c a m t
h th ng, nhìn t h ng tác nhân bên ngoài.
H ng nhìn logic (logical view): ch* ra ch c n(ng s& c thi t k bên trong h th ng nh th
nào, qua các khái ni m v c!u trúc t+nh c'ng nh ng x ng c a h th ng.
H ng nhìn thành ph n (component view): ch* ra khía c nh t ch c c a các thành ph n code.
H ng nhìn song song (concurrency view): ch* ra s t n t i song song/ trùng h p trong h
th ng, h ng n v!n giao ti p và ng b hóa trong h th ng.
H ng nhìn tri n khai (deployment view): ch* ra khía c nh tri n khai h th ng vào các ki n
trúc v t lý (các máy tính hay trang thi t b c coi là tr m công tác).
Khi b n ch#n công c v& bi u , hãy ch#n công c nào t o i u ki n d dàng chuy n t h ng nhìn
này sang h ng nhìn khác. Ngoài ra, cho m c ích quan sát m t ch c n(ng s& c thi t k nh th
nào, công c này c'ng ph i t o i u ki n d dàng cho b n chuy n sang h ng nhìn Use case ( xem
ch c n(ng này c miêu t nh th nào t phía tác nhân), ho c chuy n sang h ng nhìn tri n khai (
xem ch c n(ng này s& c phân b ra sao trong c!u trúc v t lý - Nói m t cách khác là nó có th n%m
trong máy tính nào).

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 ó.

3.3.1. H ng nhìn Use case (Use case View)


H ng nhìn Use case miêu t ch c n(ng c a h th ng s& ph i cung c!p do c tác nhân t bên ngoài
mong i. Tác nhân là th c th t ng tác v i h th ng; ó có th là m t ng i s d ng ho c là m t h
th ng khác. H ng nhìn Use case là h ng nhìn dành cho khách hàng, nhà thi t k , nhà phát tri n và
ng i th nghi m; nó c miêu t qua các bi u Use case (use case diagram) và th*nh tho ng c'ng
bao g m c các bi u ho t ng (activity diagram). Cách s d ng h th ng nhìn chung s& c miêu
t qua m t lo t các Use case trong h ng nhìn Use case, n i m.i m t Use case là m t l i miêu t mang
tính c thù cho m t tính n(ng c a h th ng (có ngh+a là m t ch c n(ng c mong i).
H ng nhìn Use case mang tính trung tâm, b i nó t ra n i dung thúc $y s phát tri n các h ng
nhìn khác. M c tiêu chung c a h th ng là cung c!p các ch c n(ng miêu t trong h ng nhìn này –
cùng v i m t vài các thu c tính mang tính phi ch c n(ng khác – vì th h ng nhìn này có nh h ng
n t!t c các h ng nhìn khác. H ng nhìn này c'ng c s d ng th$m tra (verify) h th ng qua
vi c th nghi m xem h ng nhìn Use case có úng v i mong i c a khách hàng (H i: " ây có ph i là
th b n mu n") c'ng nh có úng v i h th ng v a c hoàn thành (H i: "H th ng có ho t ng
nh ã c t ?”).

3.3.2. H ng nhìn logic (Logical View)


H ng nhìn logic miêu t ph ng th c mà các ch c n(ng c a h th ng s& c cung c!p. Ch y u nó
c s d ng cho các nhà thi t k và nhà phát tri n. Ng c l i v i h ng nhìn Use case, h ng nhìn
logic nhìn vào phía bên trong c a h th ng. Nó miêu t k c c!u trúc t+nh (l p, i t ng, và quan h )
c'ng nh s t ng tác ng s& x y ra khi các i t ng g i thông i p cho nhau cung c!p ch c
n(ng ã nh s2n. H ng nhìn logic nh ngh+a các thu c tính nh tr ng t n (persistency) ho c song
song (concurrency), c'ng nh các giao di n c'ng nh c!u trúc n i t i c a các l p.
C!u trúc t+nh c miêu t b%ng các bi u l p (class diagram) và bi u i t ng (object diagram).
Quá trình mô hình hóa ng c miêu t trong các bi u tr ng thái (state diagram), bi u trình t
(sequence diagram), bi u t ng tác (collaboration diagram) và bi u ho t ng (activity diagram).

3.3.3. H ng nhìn thành ph n (Component View)


Là m t l i miêu t c a vi c th c thi các modul c'ng nh s ph thu c gi a chúng v i nhau. Nó th ng
c s d ng cho nhà phát tri n và th ng bao g m nhi u bi u thành ph n. Thành ph n ây là các
modul l nh thu c nhi u lo i khác nhau, s& c ch* ra trong bi u cùng v i c!u trúc c'ng nh s ph
thu c c a chúng. Các thông tin b sung v các thành ph n, ví d nh v trí c a tài nguyên (trách nhi m
i v i m t thành ph n), ho c các thông tin qu n tr khác, ví d nh m t b n báo cáo v ti n trình c a
công vi c c'ng có th c b sung vào ây.

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.3.5. H ng nhìn tri n khai (Deployment View)


Cu i cùng, h ng nhìn tri n khai ch* cho chúng ta s tri n khai v m t v t lý c a h th ng, ví d
nh các máy tính c'ng nh các máy móc và s liên k t gi a chúng v i nhau. H ng nhìn tri n khai
giành cho các nhà phát tri n, ng i tích h p c'ng nh ng i th nghi m h th ng và c th hi n
b%ng các bi u tri n khai. H ng nhìn này c'ng bao g m s ánh x các thành ph n c a h th ng vào
c!u trúc v t lý; ví d nh ch ng trình nào hay i t ng nào s& c th c thi trên máy tính nào.

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.

3.4.1. Bi u Use case (Use Case Diagram)


M t bi u Use case ch* ra m t s l ng các tác nhân ngo i c nh và m i liên k t c a chúng i v i
Use case mà h th ng cung c!p (nhìn hình 3.2). M t Use case là m t l i miêu t c a m t ch c n(ng mà
h th ng cung c!p. L i miêu t Use case th ng là m t v(n b n tài li u, nh ng kèm theo ó c'ng có
th là m t bi u ho t ng. Các Use case c miêu t duy nh!t theo h ng nhìn t ngoài vào c a
các tác nhân (hành vi c a h th ng theo nh s mong i c a ng i s d ng), không miêu t ch c n(ng
c cung c!p s& ho t ng n i b bên trong h th ng ra sao. Các Use case nh ngh+a các yêu c u v
m t ch c n(ng i v i h th ng. Các bi u Use case s& c miêu t chi ti t h n trong ch ng 4
(Use case).

26
Hình 3.2- Bi u use case c a m t công ty b o hi m

3.4.2. Bi u l p (Class Diagram)


M t bi u l p ch* ra c!u trúc t+nh c a các l p trong h th ng (nhìn hình 3.3). Các l p là i di n cho
các “v t” c x lý trong h th ng. Các l p có th quan h v i nhau trong nhi u d ng th c: liên k t
(associated - c n i k t v i nhau), ph thu c (dependent - m t l p này ph thu c vào l p khác),
chuyên bi t hóa (specialized - m t l p này là m t k t qu chuyên bi t hóa c a l p khác), hay óng gói (
packaged - h p v i nhau thành m t n v ). T!t c các m i quan h ó u c th hi n trong bi u
l p, i kèm v i c!u trúc bên trong c a các l p theo khái ni m thu c tính (attribute) và th t c
(operation). Bi u c coi là bi u t+nh theo ph ng di n c!u trúc c miêu t ây có hi u l c
t i b!t k0 th i i m nào trong toàn b vòng i h th ng.
M t h th ng th ng s& có m t lo t các bi u l p – ch)ng ph i bao gi t!t c các bi u l p này
c'ng c nh p vào m t bi u l p t ng th duy nh!t – và m t l p có th tham gia vào nhi u bi u
l p. Bi u l p c miêu t chi ti t trong ch ng sau.

Hình 3.3 - Bi u l p cho m t giao d ch Tài chính

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

3.4.4. Bi u tr ng thái (State Diagram)


M t bi u tr ng thái th ng là m t s b sung cho l i miêu t m t l p. Nó ch* ra t!t c các tr ng thái
mà i t ng c a l p này có th có, và nh ng s ki n (event) nào s& gây ra s thay i tr ng thái (hình
3.5). M t s ki n có th x y ra khi m t i t ng t g i thông i p n cho nó - ví d nh thông
báo r%ng m t kho ng th i gian c xác nh ã qua i – hay là m t s i u ki n nào ó ã c th a
mãn. M t s thay i tr ng thái c g#i là m t s chuy n i tr ng thái (State Transition). M t
chuy n i tr ng thái c'ng có th có m t hành ng liên quan, xác nh i u gì ph i c th c hi n khi
s chuy n i tr ng thái này di n ra.
Bi u tr ng thái không c v& cho t!t c các l p, mà ch* riêng cho nh ng l p có m t s l ng các
tr ng thái c nh ngh+a rõ ràng và hành vi c a l p b nh h ng và thay i qua các tr ng thái khác
nhau. Bi u tr ng thái c'ng có th c v& cho h th ng t ng th . Bi u tr ng thái c miêu t chi
ti t h n trong ch ng sau (Mô hình ng).

Hình 3.5- M t ví d v bi u tr ng thái

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
.

Hình 3.6 - M t bi u trình t cho Print Server

3.4.6. Bi u c ng tác (Collaboration Diagram)


M t bi u c ng tác ch* ra m t s c ng tác ng, c'ng gi ng nh m t bi u trình t . Th ng ng i
ta s& ch#n ho c dùng bi u trình t ho c dùng bi u c ng tác. Bên c nh vi c th hi n s trao i
thông i p ( c g#i là t ng tác), bi u c ng tác ch* ra các i t ng và quan h c a chúng (nhi u
khi c g#i là ng c nh). Vi c nên s d ng bi u trình t hay bi u c ng tác th ng s& c
quy t nh theo nguyên t"c chung sau: N u th i gian hay trình t là y u t quan tr#ng nh!t c n ph i
nh!n m nh thì hãy ch#n bi u trình t ; n u ng c nh là y u t quan tr#ng h n, hãy ch#n bi u c ng
tác. Trình t t ng tác gi a các i t ng c th hi n trong c hai lo i bi u này.
Bi u c ng tác c v& theo d ng m t bi u i t ng, n i m t lo t các i t ng c ch* ra
cùng v i m i quan h gi a chúng v i nhau (s d ng nh ng ký hi u nh trong bi u l p/ bi u i
t ng). Các m'i tên c v& gi a các i t ng ch* ra dòng ch y thông i p gi a các i t ng.
Các thông i p th ng c ính kèm theo các nhãn (label), m t trong nh ng ch c n(ng c a nhãn là
ch* ra th t mà các thông i p c g i i. Nó c'ng có th ch* ra các i u ki n, ch* ra nh ng giá tr
c tr v , v.v... Khi ã làm quen v i cách vi t nhãn, m t nhà phát tri n có th #c bi u c ng tác
và tuân th theo dòng th c thi c'ng nh s trao i thông i p. M t bi u c ng tác c'ng có th ch a
c các i t ng tích c c (active objects), ho t ng song song v i các i t ng tích c c khác (hình
3.7). Bi u c ng tác c miêu t chi ti t trong ch ng sau.

29
Hình 3.7 - M t bi u công tác c a m t printer server

3.4.7. Bi u ho t ng (Activity Diagram)


M t bi u ho t ng ch* ra m t trình t l n l t c a các ho t ng (activity) (hình 3.8). Bi u ho t
ng th ng c s d ng miêu t các ho t ng c th c hi n trong m t th t c, m c dù nó c'ng
có th c s d ng miêu t các dòng ch y ho t ng khác, ví d nh trong m t Use case hay trong
m t trình t t ng tác. Bi u ho t ng bao g m các tr ng thái hành ng, ch a c t c a m t ho t
ng c n ph i c th c hi n (m t hành ng - action). M t tr ng thái hành ng s& qua i khi hành
ng c th c hi n xong (khác v i bi u tr ng thái: m t tr ng thái ch* chuy n sang tr ng thái khác
sau khi ã x y ra m t s ki n rõ ràng !). Dòng i u khi n ây ch y gi a các tr ng thái hành ng liên
k t v i nhau. Bi u còn có th ch* ra các quy t nh, các i u ki n, c'ng nh ph n th c thi song song
c a các tr ng thái hành ng. Bi u ngoài ra còn có th ch a các lo i c t cho các thông i p c
g i i ho c c nh n v , trong t cách là thành ph n c a hành ng c th c hi n.

Hình 3.8 - M t bi u ho t ng cho m t printer server

3.4.8. Bi u thành ph n (Component Diagram)


M t bi u thành ph n ch* ra c!u trúc v t lý c a các dòng l nh (code) theo khái ni m thành ph n code.
M t thành ph n code có th là m t t p tin source code, m t thành ph n nh phân (binary) hay m t
thành ph n th c thi c (executable). M t thành ph n ch a các thông tin v các l p logic ho c các l p

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).

Hình 3.9 - M t bi u thành ph n ch* ra s ph thu c gi a các thành ph n mã

3.4.9. Bi u tri n khai (Deployment Diagram)


Bi u tri n khai ch* ra ki n trúc v t lý c a ph n c ng c'ng nh ph n m m trong h th ng. B n có th
ch* ra t ng máy tính c th và t ng trang thi t b c th (node) i kèm s n i k t gi a chúng v i nhau,
b n c'ng có th ch* ra lo i c a các m i n i k t ó. Bên trong các nút m ng (node), các thành ph n th c
thi c c'ng nh các i t ng s& c xác nh v trí ch* ra nh ng ph n m m nào s& c th c thi
t i nh ng nút m ng nào. B n c'ng có th ch* ra s ph thu c gi a các thành ph n.
Bi u tri n khai ch* ra h ng nhìn tri n khai, miêu t ki n trúc v t lý th t s c a h th ng. ây là
m t h ng nhìn r!t xa l i miêu t duy ch c n(ng c a h ng nhìn Use case. M c dù v y, trong m t mô
hình t t, ng i ta có th ch* t!t c nh ng con ng d n t m t nút m ng trong m t ki n trúc v t lý cho
t i nh ng thành ph n c a nó, cho t i l p mà nó th c thi, cho t i nh ng t ng tác mà các i t ng c a
l p này tham gia r i cu i cùng, ti n t i m t Use case. R!t nhi u h ng nhìn khác nhau c a h th ng
c s d ng ng th i t o ra m t l i miêu t th!u áo i v i h th ng trong s t ng th c a nó.

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

3.5. Ph n t% mô hình (model element)


Các khái ni m c s d ng trong các bi u c g#i là các ph n t mô hình (model element). M t
ph n t mô hình c nh ngh+a v i ng ngh+a (semantic), ó là m t nh ngh+a v b n ch!t ph n t
hay là m t xác nh ý ngh+a chính xác xem nó s& th hi n i u gì trong nh ng l i kh)ng nh rõ ràng.
M.i ph n t mô hình còn có m t s miêu t tr c quan, m t ký hi u hình h#c c s d ng miêu t
ph n t này trong bi u . M t ph n t có th t n t i trong nhi u d ng bi u khác nhau, nh ng c'ng
có nh ng nguyên t"c xác nh lo i ph n t nào có th c ch* ra trong lo i bi u nào. M t vài ví d
cho ph n t vô hình là l p, i t ng, tr ng thái, nút m ng, gói, thành ph n (hình 3.11).

Hình 3.11- Các thành ph n mô hình th ng dùng


Hình 3.12 ch* ra m t vài ví d c a m i quan h , ây c'ng là m t d ng ph n t mô hình, chúng cs
d ng n i các ph n t mô hình khác v i nhau. M t vài lo i quan h áng chú ý:

32
• N i k t (Association) : n i các ph n t và các th c th n i (link).

• Khái quát hóa (Generalization): còn c g#i là tính th a k , có ý ngh+a r%ng m t


ph n t này có th là m t s chuyên bi t hóa c a m t ph n t khác.

• S ph thu c (Dependency): ch* ra r%ng m t ph n t này ph thu c trong m t ph ng


th c nào ó vào m t ph n t khác.

• K t t p (Aggregation): M t d ng c a n i k t, trong ó m t ph n t này ch a các ph n


t khác.
Ngoài ra còn có các ph n t mô hình khác nh thông i p (Message), hành ng (action) và khuôn
m u (stereotype). T!t c các ph n t mô hình, ý ngh+a c a chúng c'ng nh nh ng ng d ng u c
gi i thích k, l 4ng h n trong các ch ng sau.

Hình 3.12 – các ví d v vài lo i quan h

3.6. C ch! chung (General Mechanism)


UML th hi n m t s các c ch chung trong t!t c các bi u nh%m m c ích cung c!p thêm các
thông tin b sung, th ng ây là nh ng thông tin không th c th hi n qua các ch c n(ng và kh
n(ng c b n c a các ph n t mô hình.

3.6.1. Trang trí (Adornment)


Các s trang trí tr c quan có th c s d ng kèm thêm vào các ph n t mô hình trong bi u . ng
tác trang trí b sung thêm ng ngh+a cho ph n t . M t ví d là k, thu t c s d ng phân bi t m t
lo i th c th (l p) và m t th c th . Khi th hi n m t lo i, tên ph n t s& c in m. Khi c'ng chính
ph n t ó th hi n ch* m t th c th c a lo i này, tên ph n t s& c g ch d i và có th c coi là
c tên c a th c th l n tên c a lo i ó. M t hình ch nh t th hi n l p v i tên c in m s& th hi n
m t l p và tên c g ch d i s& th hi n m t i t ng, ây là m t ví d tiêu bi u c a adornment.
C'ng nguyên t"c ó c áp d ng cho các nút m ng, khi ký hi u nút c in m là th hi n m t lo i
nút, ví d nh máy in (Printer), khi ký hi u c g ch d i là th hi n m t th c th c a l p nút m ng
này ví d John’s HP 5MP-printer. Các ki u trang trí khác là các l i c t v s l ng trong quan h
(multiplicity), n i s l ng là m t s hay m t kho ng s ch* ra bao nhiêu th c th c a các lo i th c th
c n i v i nhau s& có th tham gia trong m t quan h . Kí hi u trang trí c vi t g n ph n t mô
hình c mà nó b sung thông tin (hình 3.13).

33
Hình 3.13 - Phân bi t gi a l p và it ng b%ng trang trí

3.6.2. Ghi chú (Note)


Cho dù m t ngôn ng mô hình hóa có c m r ng n bao nhiêu ch(ng n a, nó c'ng không th nh
ngh+a t!t c m#i vi c. Nh%m t o i u ki n b sung thêm cho m t mô hình nh ng thông tin không th
c th hi n b%ng ph n t mô hình, UML cung c!p kh n(ng kèm theo l i ghi chú. M t l i ghi chú có
th c b!t k0 n i nào trong b!t k0 bi u nào, và nó có th ch a b!t k0 lo i thông tin nào. D ng
thông tin c a b n thân nó là chu.i ký t (string), không c UML di n gi i. L i ghi chú th ng i
kèm theo m t s các ph n t mô hình trong bi u , c n i b%ng m t ng ch!m ch!m, ch* ra ph n
t mô hình nào c chi ti t hóa ho c c gi i thích (hình 3.14).
M t l i ghi chú th ng ch a l i nh n xét ho c các câu h i c a nhà t o mô hình, ví d l i nh"c nh c n
ph i x lý v!n nào ó trong th i gian sau này. L i ghi chú c'ng có th ch a các thông tin d ng
khuôn m u (stereotype).

Hình 3.14 - M t ví d v ghi chú

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

3.7. M& r'ng UML


UML có th c m r ng ho c có th c s a i phù h p v i m t ph ng pháp c bi t, m t t
ch c c th hay m t ng i dùng c th . Chúng ta s& bàn lu n s qua n ba c ch m r ng UML:
khuôn m u (stereotype), giá tr ính kèm (tagged value) và h n ch (constraint).

3.7.1. Khuôn m u (Stereotype)


C ch m r ng khuôn m u nh ngh+a m t lo i ph n t mô hình m i d a trên m t ph n t mô hình ã
t n t i. Khuôn m u có th c coi là "t ng t " nh m t ph n t ã có s2n, c ng thêm ph n quy nh
ng ngh+a (semantic) riêng bi t không có trong ph n t g c kia. Khuôn m u c a m t ph n t có th
c s d ng trong cùng tình hu ng nh ph n t c(n b n. Khuôn m u d a trên t!t c các lo i ph n t
mô hình s2n có - l p, nút m ng, thành ph n, c'ng nh các m i quan h nh liên k t, khái quát hóa, s
ph thu c. Ngôn ng UML có ch a m t s l ng l n các khuôn m u c nh ngh+a s2n và chúng
c s d ng s a i các ph n t mô hình s2n có, thay cho vi c ph i nh ngh+a hoàn toàn m i. C
ch này giúp gìn gi tính n gi n c a n n t ng ngôn ng UML.
Khuôn m u c miêu t qua vi c a tên c a chúng vào trong m t c p ký t ngo c nh#n <<>>, theo
nh trong hình 3.16. Ký t ngo c nh#n này c g#i là guillements. Khuôn m u c'ng có th có kí hi u
hình h#c riêng. M t ph n t c a m t lo i khuôn m u c th có th c th hi n b i tên khuôn m u i
kèm ký hi u hình h#c mô t ph n t c(n b n, hay là s k t h p c a c hai y u t này. B!t k0 khi nào
m t ph n t mô hình c n i k t v i m t tên ho c kí hi u khuôn m u, ta s& #c " ây là m t lo i ph n
t thu c lo i khuôn m u...". Ví d , m t l p v i <<Window>> s& c g#i là "m t l p trong d ng
khuôn m u c a s ", ý ngh+a c a nó là m t d ng l p c a s . Nh ng thu c tính c th mà m t l p c a s
c n ph i có s& c nh ngh+a khi khuôn m u này c nh ngh+a.

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.

Hình 3.16- Customer là m t l p khuôn m u <<Actor>>

3.7.2. Giá tr ính kèm (Tagged Value)


Nh ã nói, các ph n t mô hình có th có các thu c tính ch a m t c p tên-giá tr v b n thân chúng
(hình 3.17). Các thu c tính này c'ng còn c g#i là các gía tr ính kèm. UML có ch a m t lo t các
thu c tính c nh ngh+a tr c, nh ng k c ng i s d ng c'ng có th nh ngh+a ra các thu c tính
m i ch a các thông tin b sung v các ph n t mô hình. M#i hình d ng thông tin u có th c
ính kèm vào ph n t : các thông tin chuyên bi t v ph ng pháp, các thông tin c a nhà qu n tr v ti n
trình mô hình hóa, các thông tin c s d ng b i các công c khác, ví d nh các công c t o code,
hay b!t k0 m t lo i thông tin nào mà ng i s d ng mu n ính kèm vào ph n t mô hình.

Hình 3.17 - M t ví d v Tagged Value

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.

Hình 3.18- M t ràng bu c h n ch it ng Person góp ph n vào quan h k t h p

3.8. Mô hình hóa v i UML


Khi xây d ng h th ng v i UML, ng i ta không ch* xây d ng duy nh!t m t mô hình. S& có nhi u mô
hình khác nhau trong nh ng giai o n phát tri n khác nhau, nh"m n các m c ích khác nhau. Trong
giai o n phân tích, m c ích c a mô hình là n"m b"t t!t c các yêu c u i v i h th ng và mô hình
hóa n n t ng bao g m các l p và các c ng tác " i th c". Trong giai o n thi t k , m c ích c a mô
hình là m r ng mô hình phân tích, t o thành m t gi i pháp k, thu t kh thi, có chú ý n môi tr ng
c a công vi c xây d ng (vi t code). Trong giai o n xây d ng code, mô hình chính là nh ng dòng code
ngu n th t s , c vi t nên và c d ch thành các ch ng trình. Và cu i cùng, trong giai o n tri n
khai, m t l i miêu t s& gi i thích h th ng c n c tri n khai ra sao trong ki n trúc v t lý. Kh n(ng
theo dõi xuyên su t nhi u giai o n và nhi u mô hình khác nhau c m b o qua các thu c tính ho c
các m i quan h nâng cao (refinement).
M c dù ó là các mô hình khác nhau, nh ng chúng u c xây d ng nên m r ng n i dung c a
các mô hình giai o n tr c. Chính vì th , t!t c các mô hình u c n ph i c gìn gi t t ng i
ta có th d dàng i ng c l i, m r ng ra hay tái thi t l p mô hình phân tích kh i u và r i d n d n
t ng b c a các s thay i vào mô hình thi t k c'ng nh các mô hình xây d ng (hình 3.19).

Hình 3.19- M t h th ng c mô t trong nhi u mô hình

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.

3.10. Tóm t)t v UML


UML t ch c m t mô hình thành m t lo t các h ng nhìn, th hi n các khía c nh khác nhau c a h
th ng. Ch* khi k t h p t!t c các h ng nhìn l i v i nhau, ng i ta m i co c m t b c tranh tr#n v-n
v h th ng. M t h ng nhìn không ph i là m t hình v&, n i dung c a nó c miêu t qua các bi u
, ây là nh ng hình v& ch a ng các ph n t mô hình hóa. M t bi u bình th ng ch* trình bày
m t ph n n i dung c a m t h ng nhìn, và m t h ng nhìn c nh ngh+a v i r!t nhi u bi u . M t
bi u ch a các ph n t mô hình, ví d nh l p, i t ng, nút m ng, thành ph n và nh ng m i quan
h nh n i k t, khái quát hóa, ph thu c. Các ph n t này có ý ngh+a (semantic) và các ký hi u hình
h#c.
Các lo i bi u trong UML là: bi u l p, bi u i t ng, bi u Use case, bi u tr ng thái,
bi u trình t , bi u c ng tác, bi u hành ng, bi u thành ph n và bi u tri n khai. M c
ích c a các lo i bi u c'ng nh quy t"c v& chúng s& c miêu t chi ti t trong ch ng sau.
UML có m t s c ch chung b sung thông tin không th c th hi n trong quá trình v& bi u .
Nh ng thông tin này bao g m ví d nh ng thành ph n trang trí, các l i ghi chú có th ch a b!t k0 lo i
thông tin nào c'ng nh các thu c tính c t . Ngoài ra còn có các c ch m r ng, bao g m giá tr ính
kèm, h n ch i v i ph n t , và khuôn m u, nh ngh+a m t lo i ph n t mô hình m i d a trên m t
ph n t s2n có.
M t h th ng s& c miêu t trong nhi u lo i mô hình khác nhau, m.i lo i mô hình nh%m m t m c
ích khác nhau. Mô hình phân tích miêu t nh ng yêu c u v m t ch c n(ng và mô hình hóa các l p
ngoài i th c. Mô hình thi t k chuy n t i k t qu phân tích thành m t gi i pháp k, thu t, theo khái
ni m c a m t thi t k ph n m m ho t ng hoàn ch*nh. Mô hình xây d ng code th hi n h th ng qua
vi c th o ch ng cho nó trong m t ngôn ng l p trình h ng i t ng. Và cu i cùng, mô hình tri n
khai nh v ch ng trình v a c t o nên trong m t ki n trúc v t lý bao g m các máy tính và các
trang thi t b . Công vi c c làm theo nhi u vòng l p khác nhau ch không ph i ch* là m t chu.i th c
hi n m t l n.
s d ng UML m t cách nghiêm ch*nh cho m t d án có th t ngoài i, b n c n công c . M t công
c tân ti n có kh n(ng cho ng i dùng v& bi u , tr t!t c các thông tin vào m t kho chung, cho
phép d dàng d ch chuy n gi a các h ng nhìn và bi u khác nhau trong mô hình, t o báo cáo và tài
li u, t o khung code t mô hình, #c nh ng dòng code s2n có r i s n sinh ra mô hình t ó, và d dàng
tích h p v i các công c phát tri n khá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: Use Case


H i: M t bi u trong UML có bao ch a các h ng nhìn khác nhau.

áp: Sai, m t h ng nhìn bao g m m t lo i các bi u khác nhau


H i: Hãy li t kê các thành ph n ch y u c a ngôn ng UML

áp: H ng nhìn( View), Bi u (Diagram), Ph n t mô hình, C ch chung.


H i: UML có công c nào ph c v cho giai o n th nghi m n v (Unit Testing)?

á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: Use case Diagram


H i: UML t o n n t ng cho vi c giao ti p gi a khách hàng, nhà phân tích, nhà thi t k và l p trình
viên.

áp: úng

42
CH NG 4: MÔ HÌNH HÓA USE CASE

4.1. Gi i thi u Use Case


Trong giai o n phân tích, ng i s d ng c ng tác cùng nhóm phát tri n ph n m m t o nên m t t h p
thông tin quan tr#ng v yêu c u i v i h th ng. Không ch* là ng i cung c!p thông tin, b n thân
ng i s d ng còn là m t thành ph n h t s c quan tr#ng trong b c tranh toàn c nh ó và nhóm phát
tri n c n ph i ch* ra c ph ng th c ho t ng c a h th ng t ng lai theo h ng nhìn c a ng i s
d ng. Hi u c i m quan tr#ng này là chìa khóa t o d ng c nh ng h th ng v a tho mãn các
yêu c u t ra v a d dàng s d ng, th m chí t o ni m vui thích trong s d ng.
Nh v y công c giúp ta mô hình hoá h th ng t h ng nhìn c a ng i s d ng g#i là Use Case. Và
tr l i rõ h n v Use Case ta xét m t tr ng h p sau:
Gi s tôi quy t nh mua m t chi c máy fax m i. Khi n c a hàng máy v(n phòng, tôi m i nh n ra là
ph i ch#n l a trong m t danh sách máy móc r!t phong phú. Lo i máy nào s& c ch#n ây? Tôi t h i
th t chính xác mình mu n làm gì v i chi c máy fax s& mua? Tôi mu n có nh ng tính n(ng nào? Tôi
mu n dùng b%ng gi!y th ng hay gi!y thermal ? Tôi mu n copy b%ng cái máy ó? Tôi mu n n i nó
v i máy tính c a mình? Tôi mu n dùng nó v a làm máy fax v a làm scanner? Tôi có c n ph i g i fax
th t nhanh n m c c n m t ch c n(ng ch#n s t(ng t c? Li u tôi có mu n s d ng máy fax này
phân bi t gi a m t cú i n tho i g#i t i và m t b n fax g i t i ?.
T!t c chúng ta u tr i qua nh ng kinh nghi m nh v y khi quy t nh mua m t món hàng nào ó
không ph i vì ni m vui b c phát. Vi c chúng ta s& làm trong nh ng tr ng h p nh v y là m t d ng
phân tích Use Case: Chúng ta t h i mình s& s d ng s n ph$m (hay h th ng) s"p b"t ta b ra m t
kho n ti n áng k ó ra sao? Tr l i xong câu h i trên ta m i có kh n(ng ch#n ra s n ph$m tho mãn
nh ng òi h i c a mình. i u quan tr#ng ây là ph i bi t nh ng òi h i ó là gì.
Lo i quy trình này óng vai trò r!t quan tr#ng i v i giai o n phân tích c a m t nhóm phát tri n h
th ng. Ng i dùng mu n s d ng h th ng t ng lai, h th ng mà b n s"p thi t k và xây d ng, nh
th nào?
Use Case là m t công c tr giúp cho công vi c c a nhà phân tích cùng ng i s d ng quy t nh tính
n(ng c a h th ng. M t t p h p các Use Case s& làm n i b t m t h th ng theo ph ng di n nh ng
ng i dùng nh làm gì v i h th ng này.
làm rõ h n, ta hãy xét m t ví d nhà b(ng l/. H th ng t ng lai trong tr ng h p này s& só nhi u
ng i s d ng, m.i ng i s& giao ti p v i h th ng cho m t m c ích khác bi t:
Qu n tr gia s d ng h th ng cho m c ích th ng kê
Nhân viên ti p khách s d ng h th ng th c hi n các d ch v ph c v khách hàng.
Nhân viên phòng u t s d ng h th ng th c hi n các giao d ch liên quan n u
t .
Nhân viên th$m tra ch ký s d ng h th ng cho m c ích xác nh n ch ký và b o trì
thông tin liên quan n khách hàng.

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.

4.2. M't s ví d( Use Case


Trong ví d nhà b(ng l/ trên, m t s nh ng Use Case d th!y nh!t là:
M t khách hàng m m t tài kho n m i.
Phòng u t tính toán ti n lãi cho các tài kho n ut .
M t ch ng trình ut m i c a vào áp d ng.
Yêu c u chuy n ti n c a khách hàng c th c hi n.
Chuy n ti n theo k0 h n t m t tài kho n u t sang m t tài kho n ti t ki m.

4.3. S* c n thi!t ph i có Use Case


Use Case là m t công c xu!t s"c khuy n khích nh ng ng i dùng ti m n(ng nói v h th ng t
h ng nhìn c a h#. i v i ng i dùng, ch)ng ph i bao gi vi c th hi n và mô t nh ng ý nh trong
vi c s d ng h th ng c'ng là chuy n d dàng. M t hi n th c có th t là ng i s d ng th ng bi t
nhi u h n nh ng gì mà h# có th di n t ra: Công c Use Case s& giúp cho nhóm phát tri n b/ gãy "l p
b(ng" ó, ngoài ra m t s trình bày tr c quan c'ng cho phép b n k t h p các bi u Use Case v i các
lo i bi u khác.
Sáng ki n ch o là lôi cu n c ng i dùng tham gia vào nh ng giai o n u tiên c a quá trình
phân tích và thi t k h th ng. Vi c này s& nâng cao xác su!t cho vi c h th ng chung cu c tr thành
m t công c quen thu c i v i các ng i dùng mà nó d nh s& tr giúp – thay vì là m t t p h p khó
hi u và r i r"m c a các khái ni m máy tính mà ng i dùng trong gi i doanh th ng có c m giác không
bao gi hi u c và không th làm vi c cùng.
Công tác lôi kéo ng i s d ng tham gia tích c c vào quá trình phân tích là n n t ng quan tr#ng cho
vi c t o d ng m t mô hình "thành công", m t mô hình d c ng i s d ng hi u và ch!p nh n sau
khi ã th$m xác các nhi m v c(n b n. Ngoài ra, Use Case còn giúp nhóm phát tri n quy t nh các l p
mà h th ng ph i tri n khai.

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.

4.5. Bi u $ Use Case


Use Case c mô t trong ngôn ng UML qua bi u Use Case (Use Case Diagram), và m t mô hình
Use Case có th c chia thành m t s l ng l n các bi u nh th . M t bi u Use Case ch a các

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:

Hình 4.1- M t ví d bi u Use case trong UML


Trong ó :
H th ng c th hi n qua hình ch nh t v i tên h th ng bên trên
Tác nhân c th hi n qua kí hi u hình nhân
Use Case c th hi n qua hình ellipse

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.

4.5.2. Tác nhân


M t tác nhân là m t ng i ho c m t v t nào ó t ng tác v i h th ng, s d ng h th ng. Trong khái
ni m "t ng tác v i h th ng", ý chúng ta mu n nói r%ng tác nhân s& g i thông i p n h th ng ho c
là nh n thông i p xu!t phát t h th ng, ho c là thay i các thông tin cùng v i h th ng. Nói m t
cách ng"n g#n, tác nhân th c hi n các Use Case. Thêm m t i u n a, m t tác nhân có th là ng i mà
c'ng có th là m t h th ng khác (ví d nh là m t chi c máy tính khác c n i k t v i h th ng c a
chúng ta ho c m t lo i trang thi t b ph n c ng nào ó t ng tác v i h th ng).
M t tác nhân là m t d ng th c th (m t l p), ch không ph i m t th c th . Tác nhân mô t và i di n
cho m t vai trò, ch không ph i là m t ng i s d ng th t s và c th c a h th ng. N u m t anh
chàng John nào ó mu n mua h p ng b o hi m t m t hãng b o hi m, thì vai trò c a anh ta s& là
ng i mua h p ng b o hi m, và ây m i là th mà chúng ta mu n mô hình hóa, ch không ph i b n
thân anh chàng John. Trong s th c, m t con ng i c th có th óng vai trò làm nhi u tác nhân trong
m t h th ng: m t nhân viên ngân hàng ng th i c'ng có th là khách hàng c a chính ngân hàng ó.
M t khác, s l ng các vai trò mà m t con ng i c th c phép m trách trong m t h th ng c'ng
có th b h n ch , ví d cùng m t ng i không c phép v a so n hóa n v a phê duy t hóa n ó.
M t tác nhân s& có m t tên, và cái tên này c n ph i ph n ánh l i vai trò c a tác nhân. Cái tên ó không
c ph n ánh l i m t th c th riêng bi t c a m t tác nhân, mà c'ng không ph n ánh ch c n(ng c a tác
nhân ó.
M t tác nhân giao ti p v i h th ng b%ng cách g i ho c là nh n thông i p, gi ng nh khái ni m chúng
ta ã quen bi t trong l p trình h ng i t ng. M t Use Case bao gi c'ng c kích ho t b i m t tác
nhân g i thông i p n cho nó. Khi m t Use Case c th c hi n, Use Case có th g i thông i p n
m t hay là nhi u tác nhân. Nh ng thông i p này c'ng có th n v i các tác nhân khác, bên c nh
chính tác nhân ã kích ho t và gây ra Use Case.
Tác nhân c'ng có th c x p lo i. M t tác nhân chính (Primary Actor) là tác nhân s d ng nh ng
ch c n(ng c(n b n c a h th ng, t c là các ch c n(ng chính. Ví d , trong m t h th ng b o hi m, m t
tác nhân c(n b n có th là tác nhân x lý vi c ghi danh và qu n lý các h p ng b o hi m. M t tác
nhân ph (secondary actor) là tác nhân s d ng các ch c n ng ph c a h th ng, ví d nh các ch c
n(ng b o trì h th ng nh qu n tr ngân hàng d li u, giao ti p, back-up và các tác v qu n tr khác.
M t ví d cho tác nhân ph có th là nhà qu n tr ho c là m t nhân viên s d ng ch c n(ng trong h
th ng rút ra các thông tin th ng kê v doanh nghi p. C hai lo i tác nhân này u c mô hình hóa
m b o mô t y các ch c n(ng c a h th ng, m c dù các ch c n(ng chính m i th t s n%m
trong m i quan tâm ch y u c a khách hàng.

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.

4.5.3. Tìm tác nhân


Khi nh n di n tác nhân, có ngh+a là chúng ta l#c ra các th c th áng quan tâm theo khía c nh s d ng
và t ng tác v i h th ng. Sau ó chúng ta có th th t mình vào v trí c a tác nhân c g"ng nh n
ra các yêu c u và òi h i c a tác nhân i v i h th ng và xác nh tác nhân c n nh ng Use Case nào.
Có th nh n di n ra các tác nhân qua vi c tr l i m t s các câu h i nh sau:
Ai s& s d ng nh ng ch c n(ng chính c a h th ng (tác nhân chính)?
Ai s& c n s h. tr c a h th ng th c hi n nh ng tác v hàng ngày c a h#?
Ai s& c n b o trì, qu n tr và m b o cho h th ng ho t ng (tác nhân ph )?
H th ng s& ph i x lý và làm vi c v i nh ng trang thi t b ph n c ng nào?
H th ng c n ph i t ng tác v i các h th ng khác nào? Nhóm các h th ng này c
chia ra làm hai nhóm, nhóm kích ho t cho m i quan h v i h th ng, và nhóm mà h
th ng c n ph i xây d ng c a chúng ta s& thi t l p quan h . Khái ni m h th ng bao g m
c các h th ng máy tính khác c'ng nh các ng d ng khác trong chính chi c máy tính
mà h th ng này s& ho t ng.
Ai hay cái gì quan tâm n k t qu (giá tr ) mà h th ng s& s n sinh ra?
Khi i tìm nh ng ng i s d ng h th ng, ng quan sát nh ng ng i ang ng i tr c màn hình máy
tính. Nên nh r%ng, ng i s d ng có th là b!t k0 ng i nào hay b!t k0 v t nào t ng tác ho c tr c
ti p ho c gián ti p v i h th ng và s d ng các d ch v c a h th ng này t n m t k t qu nào
ó. ng quên r%ng mô hình hóa Use Case c th c hi n mô hình hóa m t doanh nghi p, vì th
tác nhân th ng th ng là khách hàng c a doanh nghi p ó. T ó suy ra h# không ph i là ng i s
d ng theo ngh+a n gi n và tr c ti p là ng i ng i tr c màn hình máy tính và thao tác v i máy tính.
có th nh n d ng c t t nhi u tác nhân khác nhau, hãy ti n hành nghiên c u nh ng ng i s
d ng c a h th ng hi n th i (m t h th ng th công ho c m t h th ng ang t n t i), h i xem h# óng
nh ng vai trò nào khi th c thi công vi c hàng ngày c a h# v i h th ng. C'ng ng i s d ng ó có th
th c thi nhi u vai trò khác nhau t i nhi u th i i m khác nhau, tùy thu c vào vi c ch c n(ng nào trong
h th ng ang c s d ng.
Xin nh"c l i, m t tác nhân là m t vai trò (m t l p), ch không ph i m t th c th riêng l/. M c dù v y,
khi cung c!p ví d là m t vài các th c th c a m t tác nhân, b n có th m b o r%ng tác nhân ó th t
s t n t i. M t tác nhân ph i có m t s liên k t (Association) nào ó v i m t ho c là nhi u Use Case.
M c dù có nh ng tác nhân có th không kích ho t nên m t Use Case nào, nh ng tác nhân ó s& giao
ti p ít nh!t v i m t Use Case t i m t th i i m nào ó. C n ph i t tên cho tác nhân làm sao tên
ph n ánh úng vai trò c a tác nhân ó trong h th ng.

4.5.4. Bi u di!n tác nhân trong ngôn ng UML


Tác nhân trong UML là m t l p v i bi t ng "Actor" (Tác nhân) và tên c a l p này là tên c a tác nhân
(ph n ánh vai trò c a tác nhân). M t l p tác nhân có th v a có thu c tính (attribute) l n hành vi

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":

Hình 4.2- bi u t ng tác nhân trong UML

4.5.5. Use Case


M t Use Case là i di n cho m t ch c n(ng nguyên v-n mà m t tác nhân nh n c. M t Use Case
trong ngôn ng UML c nh ngh+a là m t t p h p c a các chu.i hành ng mà m t h th ng th c
hi n t o ra m t k t qu có th quan sát c, t c là m t giá tr n v i m t tác nhân c th . Nh ng
hành ng này có th bao g m vi c giao ti p v i m t lo t các tác nhân c'ng nh th c hi n tính toán và
công vi c n i b bên trong h th ng.
Các tính ch!t tiêu bi u c a m t Use Case là:
M t Use Case bao gi c'ng c gây ra b i m t tác nhân, c th c hi n nhân danh
m t tác nhân nào ó. Tác nhân ph i ra l nh cho h th ng th c hi n Use Case ó, dù
là tr c ti p hay gián ti p. Hi m khi có tác nhân không liên quan n vi c gây ra m t Use
Case nào ó.
M t Use Case ph i cung c!p m t giá tr cho m t tác nhân. Giá tr ó không ph i bao
gi c'ng c n thi t ph i n i tr i ra ngoài, nh ng luôn ph i c th!y rõ.
M t Use Case là ph i hoàn t!t. M t trong nh ng l.i th ng g p là s/ chia m t Use
Case thành các Use Case nh h n, và các Use Case này th c thi l n nhau gi ng nh vi c
g#i hàm cho m t ngôn ng l p trình. M t Use Case s& không c coi là hoàn t!t ch ng
nào mà giá tr cu i cùng c a nó ch a c s n sinh ra, th m chí ngay c khi ã x$y ra
nhi u ng tác giao ti p (ví d nh i tho i v i ng i s d ng).
Use Case c n i v i tác nhân qua liên k t (association). ng liên k t ch* ra nh ng tác nhân nào
giao ti p v i Use Case nào. M i liên k t bình th ng ra là m t m i quan h 1-1 và không có h ng.
i u ó mu n nói lên r%ng m t th c th c a l p tác nhân s& giao ti p v i m t th c th c a m t Use
Case và c hai có th giao ti p v i nhau trong c hai chi u. M t Use Case s& c t tên theo m t th c
th mà Use Case s& th c hi n, ví d nh ký h p ng b o hi m, c p nh t danh sách, v.v…, và th ng
là m t c m t h n là ch* m t t riêng l/.
M t Use Case là m t l p, ch không ph i m t th c th . Nó mô t tr#n v-n m t ch c n(ng, k c các
gi i pháp b sung và thay th có th có, các l.i có th x y ra c'ng nh nh ng ngo i l có th x y ra
trong quá trình th c thi. M t k t qu c a s th c th hóa m t Use Case c g#i là m t c nh k ch
(scenario) và nó i di n cho m t s s d ng c th c a h th ng (m t ng d n th c thi riêng bi t
qua h th ng). Ví d m t c nh k ch c a Use Case "Ký h p ng b o hi m" có th là "John liên h v i
h th ng qua i n tho i r i sau ó ký h p ng b o hi m ô tô cho chi c xe Toyota Carolla mà anh ta
v a mua."

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.

4.5.7. Ví d tìm Use Case


Nhà b(ng ABC a ra các yêu c u sau:
M t khách hàng có th mu n g i ti n vào, rút ti n ra ho c n gi n ki m tra l i s ti n
trong tài kho n c a anh ta qua máy t ng rút ti n (ATM). Khi a ti n vào ho c rút
ti n ra, c n ph i ghi ra gi!y k t qu nh ng chuy n d ch ã th c hi n và trao t gi!y này
cho khách hàng.
Quan sát các ch c n(ng c(n b n và các thành ph n tham gia, ta th!y có hai tác nhân d nh n ra nh!t là
khách hàng và nhân viên thu ngân.
Qua ó, có th nhân d ng các Use Case sau:
G i ti n vào.
Rút ti n ra.
Ki m tra m c ti n trong tài kho n
Th c hi n các chuy n d ch n i b h th ng
In k t qu các chuy n d ch ã th c hi 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.

4.6. Các bi!n th (Variations) trong m't Use Case


M.i Use Case s& có m t dòng hành ng chính (Basic Course). ó là ti n trình bình th ng hay ti n
trình mong i i v i Use Case này.
Ngoài ra, có th còn có m t hay nhi u dòng hành ng thay th (Alternative) khác. Chúng có th c
chia làm hai nhóm chính:
Thay th bình th ng (Normal Alternative)
i u ki n gây l.i (Error Condidtions)
Nh ng gì mang tính bình th ng h n trong Use Case c g#i là Thay th bình th ng.
Có th miêu t các dòng hành ng thay th b%ng t ng (xem ph n tài li u Use Case ).
Ví d m t khách hàng có th ch#n các lo i giao d ch sau c a ATM:
G i ti n vào
Rút ti n ra
Ki m tra m c ti n trong tài kho n
ây là nh ng ví d cho các dòng hành ng thay th bình th ng.
i u ki n gây l.i i di n cho nh ng b c ti n hành b!t bình th ng trong m t Use Case. C n ph i
tính tr c n nh ng i u ki n gây l.i ó, ví d :

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.

Hình 4.4 – Các ti n trình trong h th ng ATM

4.7. Quan h gi#a các Use Case


Có ba lo i quan h Use Case: Quan h m r ng, quan h s d ng và quan h t o nhóm. Quan h m
r ng và quan h s d ng là hai d ng khác nhau c a tính th a k . Quan h t o nhóm là m t ph ng cách
t nhi u Use Case chung v i nhau vào trong m t gói.

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”.

Hình 4.5 - Quan h m r ng gi a các Use Case


Quan h m r 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 dùng m r ng, i kèm v i stereotype <<extends>>.

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.

Hình 4.6 - Quan h s d ng gi a các Use Case

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>>.

4.7.3. Quan h chung nhóm


Khi m t s các Use Case cùng x lý các ch c n(ng t ng t ho c có th liên quan n nhau theo m t
ph ng th c nào ó, ng i ta th ng nhóm chúng l i v i nhau. Nhóm các Use Case c th c hi n
b%ng khái ni m "Gói" (Package) c a UML. Gói không cung c!p giá tr gia t(ng cho thi t k .
Ví d : t!t c các Use Case có liên quan n s t ng tác gi a khách hàng và nhân viên thu ngân s&
c nhóm thành "Package Khách hàng- N/v thu ngân"

Hình 4.7 – Package c a UML


Tóm t"t v Use Case v i máy ATM trong ngân hàng l/:
Cho t i nay chúng ta ã xác nh c m t vài Use Case, phân tích dòng hành ng chính c'ng nh
các dòng hành ng thay th , c'ng nh rút ra các m i quan h gi a chúng. Bi u sau t ng h p nh ng
thông tin ã thu th p c v nhóm các Use Case c(n b n c a m t h th ng ATM.

Hình 4.8 - Bi u m t s Use Case trong h th ng ATM

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 ó.

V(n b n miêu t m t Use Case n gi n:


Ví d Use Case "Cung C!p Thông Tin V M t Tài Kho n T i Nhà B(ng ABC”: Sau khi phân tích h
th ng, ta nh n th!y c n có m t Use Case in lên màn hình c a nhân viên nhà b(ng t!t c nh ng chi
ti t v m t tài kho n c a m t khách hàng.

-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 .

4.9. Th% Use Case


M t trong các m c ích chính c a Use Case là th nghi m (testing). Có hai lo i th nghi m khác nhau
c th c hi n ây: ki m tra (verification) và phê duy t xác nh n (validation). Ki m tra m b o là
h th ng ã c phát tri n úng "n và phù h p v i các c t ã c t o ra. Phê duy t xác nh n
m b o r%ng h th ng s& c phát tri n chính là th mà khách hàng ho c ng i s d ng cu i th t s
c n n.
Công vi c phê duy t xác nh n c th c hi n k tr c giai o n phát tri n. Ngay khi m t mô hình
Use Case c hoàn t!t (hay th m chí có th ang trong giai o n phát tri n), mô hình này ph i c
trình bày và th o lu n v i khách hàng c'ng nh ng i s d ng. H# c n ph i xác nh n r%ng mô hình
này là úng "n, hoàn t!t và th a mãn s mong i c a h# i v i h th ng; c bi t là ph ng cách
mà h th ng cung c!p ch c n(ng cho h#. làm i u ó, nhà phát tri n ph i m b o r%ng khách hàng
th t s hi u c mô hình và ý ngh+a c a chúng, tránh tr ng h p t o ra nh ng th không th ch!p
nh n n i. Trong giai o n này, rõ ràng là các câu h i và các ý t ng s& xu!t hi n và chúng c n ph i
c b sung thêm vào mô hình Use Case tr c khi n giai o n phê duy t chung cu c. Giai o n xác
nh n c'ng có th c th c hi n trong th i k0 th nghi m h th ng, nh ng i m y u c a ph ng th c
làm này là n u h th ng không th a mãn nh ng yêu c u c th c a ng i s d ng thì toàn b d án r!t
có th s& ph i làm l i t u.
Ki m tra h th ng là m b o nó ho t ng úng nh c t . i u này không th c th c hi n
tr c khi ã có nh ng thành ph n c a h th ng c t o ra. Ch* sau ó ng i ta m i có th th xem h
th ng có ho t ng úng nh c t mà ng i s d ng ã a ra, r%ng các Use Case th c hi n úng
theo nh nh ng l i ã miêu t trong mô hình, r%ng chúng ho t ng theo úng ph ng th c ã c
miêu t trong v(n b n miêu t Use Case.

i b' d3c Use Case.


M t trong nh ng k, thu t h u d ng c dùng trong c giai o n nh ngh+a l n th nghi m Use Case
g#i là " i B D#c Use Case”. Theo k, thu t này, nhi u ng i khác nhau trong nhóm làm mô hình s&
óng vai các tác nhân c'ng nh h th ng trong m t Use Case c th . Ng i m nh n vai tác nhân s&
b"t u b%ng vi c nói ra tác nhân làm gì v i h th ng. K t qu c a công vi c này là h th ng s& kh i
ch y m t Use Case c th c b"t u t hành ng trên. Ng i óng vai h th ng sau ó s& nói anh
ta làm gì khi Use Case c th c hi n. Nhà phát tri n ng ngoài trò ch i di n k ch s& ghi chép và tìm
cách phát hi n ra các i m y u trong các Use Case c miêu t b%ng các di n viên. Trong tr ng h p
c thù, b n s& tìm th!y r%ng có m t vài chu.i hành ng b sung không c miêu t c'ng nh m t
vài hành ng không c miêu t v i y chi ti t.
Các "di n viên" càng hi u th!u áo khía c nh s d ng c a h th ng bao nhiêu thì công vi c th Use
Case s& càng hi u qu b!y nhiêu. Vi c thay i các di n viên óng nh ng vai trò khác nhau s& d n
t i nh ng thay i trong miêu t và h ng nhìn, cung c!p d li u u vào cho các nhà t o mô hình

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.

4.10. Th*c hi n các Use Case


Use Case là nh ng l i miêu t c l p v i s th c thi các ch c n(ng c a h th ng. i u ó có ngh+a là
Use Case s& c th c hi n (th c th hóa) trong h th ng, v y nên trách nhi m th c thi các hành
ng c miêu t trong tài li u Use Case u c phân b v cho các i t ng c ng tác th c thi
ch c n(ng ó.
Các nguyên t"c c a UML cho vi c th c hi n các Use Case là: M t Use Case s& c th c hi n trong
m t s c ng tác (collaboration): M t s c ng tác ch* ra m t gi i pháp (ph thu c vào s th c thi n i
b ) c a m t Use Case s d ng các khái ni m l p/ i t ng và m i quan h gi a chúng i v i nhau
(g#i là ng c nh – context c a s c ng tác) c'ng nh s t ng tác gi a chúng t t i ch c n(ng
mong mu n (g#i là chu.i t ng tác c a s c ng tác). Kí hi u cho s c ng tác là m t hình ellipse có
ch a tên c a s c ng tác ó.
M t s c ng tác c trình bày trong UML qua m t lo t các bi u ch* ra c ng c nh l n chu.i
t ng tác gi a các thành ph n tham gia: thành ph n tham gia trong m t s c ng tác là m t lo t các l p
(và trong m t th c th c ng tác: các i t ng). Các bi u s d ng ây là bi u c ng tác, bi u
chu.i và bi u ho t ng. C n ph i s d ng lo i bi u nào t o ra m t b c tranh bao quát v s
c ng tác là quy t nh tùy thu c vào t ng tr ng h p c th . Trong m t vài tr ng h p, ch* m t bi u
c ng tác ã có th là ; nh ng trong các tr ng h p khác, ng i ta nh!t thi t c n t i s k t h p c a
nhi u lo i bi u khác nhau.
M t c nh k ch (Scenario) là m t th c th (instance) c a m t Use Case hay là m t s c ng tác: m t
c nh k ch là m t chu.i th c thi c th (m t dòng ch y c th c a các s ki n) trình bày m t s th c th
hóa c a m t Use Case (t c là m t l n s d ng h th ng). Khi m t c nh k ch c quan sát trong t
cách m t Use Case, ng i ta ch* miêu t nh ng ng x bên ngoài h ng v phía tác nhân. Khi quan sát
m t c nh k ch trong t cách là m t th c th c a s c ng tác, ng i ta s& miêu t c s th c thi n i t i
(các dòng l nh code) c a các l p tham gia ây, thu t toán c'ng nh th t c c a chúng cùng s giao
ti p gi a chúng v i nhau.
Tác v th c hi n m t Use Case là chuy n các b c và hành ng khác nhau trong l i miêu t Use Case
thành l p (Class), th t c trong nh ng l p này c'ng nh quan h gi a chúng v i nhau. Nó c miêu
t là ng tác phân b trách nhi m c a m.i b c i trong Use Case vào các l p tham gia s c ng tác
th c hi n Use Case ó. T i giai o n này, ng i ta ph i tìm ra m t gi i pháp cung c!p nh ng hành vi
h ng ngo i ã c xác nh c a Use Case; nó c miêu t trong nh ng thu t ng c a m t s c ng
tác n i b trong h th ng.
M.i b c hành ng trong Use Case s& c chuy n thành th t c (operation) trong các l p tham gia.
M t b c trong Use Case s& c chuy n thành m t lo t các th t c t i nhi u l p; r!t hi m khi x y ra
ánh x 1-1 gi a các hành ng trong Use Case và các th t c c th c thi trong t ng tác gi a các i
t ng c a các l p tham gia. C'ng xin nh r%ng m t l p có th tham gia nhi u Use Case khác nhau và
trách nhi m cao nh!t c a l p n%m chính trong vi c k t t p t!t c các vai trò mà l p này m nh n trong
các Use Case khác nhau.

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.11. Tóm t)t v Use Case


Mô hình Use Case là m t k, thu t c s d ng miêu t nh ng yêu c u mang tính ch c n(ng c a
m t h th ng. Use Case c miêu t qua các khái ni m tác nhân bên ngoài, Use Case và h th ng. Tác
nhân t ng tr ng cho m t vai trò và m t th c th bên ngoài ví d nh m t ng i dùng, m t b ph n
ph n c ng ho c m t h th ng khác t ng tác v i h th ng. Tác nhân gây ra và giao ti p v i các Use
Case, trong khi m t Use Case là m t t p h p c a các chu.i hành ng c th c hi n trong h th ng.
M t Use Case ph i cung c!p m t giá tr c n h ng t i nào ó cho tác nhân, và bình th ng nó c
miêu t b%ng v(n b n. Tác nhân và Use Case là các l p. M t tác nhân c liên k t v i m t ho c nhi u
Use Case qua m i liên k t (Association) và c tác nhân l n Use Case u có th có m i quan h khái
quát hóa, m i quan h này miêu t nh ng ng x chung trong các l p cha, s& c th a k b i m t
ho c nhi u l p con. M t mô hình Use Case c miêu t b%ng m t hay nhi u bi u tr ng h p thu c
ngôn ng UML.
Use Case c th c hi n qua các s c ng tác. M t s c ng tác là m t l i miêu t m t ng c nh, ch* ra
các l p/ i t ng và m i quan h c a chúng và m t t ng tác ch* ra các l p/ i t ng ó t ng tác
v i nhau ra sao th c hi n m t ch c n(ng c th . M t s c ng tác c miêu t b%ng bi u ho t
ng, bi u c ng tác và bi u chu.i. Khi m t Use Case c th c hi n, trách nhi m cho m.i b c
hành ng trong Use Case c n ph i c phân b cho các l p tham gia s c ng tác ó, th ng là qua
vi c xác nh các th t c c a các l p này, i song song v i ph ng th c mà chúng t ng tác v i nhau.
M t c nh k ch là m t th c th c a m t Use Case, hay m t s c ng tác, ch* ra m t chu.i th c thi c th .
Vì th , m t c nh k ch là m t s minh h#a hay là m t ví d c a m t Use Case hay là m t s c ng tác.
Khi c nh k ch c ch* ra trong t cách m t th c th c a m t Use Case, ch* duy nh!t s t ng tác gi a
Use Case và tác nhân ngo i lai s& c miêu t , nh ng khi c nh k ch c quan sát và c ch* ra theo
h ng là m t th c th c a m t s c ng tác, thì s t ng tác gi a các l p/ i t ng phía bên trong h
th ng c'ng s& c miêu t .

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: Sai, tác nhân là m t ng i ho c m t v t nào ó t ng tác v i h th ng.


H i: H th ng khác c'ng có th óng vai trò tác nhân trong m t Use Case?

á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. L p, it ng và quan h – các thành ph n c b n c a mô hình


Trong mô hình hóa h ng i t ng, nh ng ph n t c!u thành c(n b n nh!t c a mô hình là l p, i
t ng và m i quan h gi a chúng v i nhau. L p và i t ng s& mô hình hóa nh ng gì có trong h
th ng mà chúng ta mu n miêu t , các m i quan h s& bi u th c!u trúc. ng tác phân l p
(classification) ã c s d ng t hàng ngàn n(m nay n gi n hóa vi c miêu t các h th ng ph c
t p. Khi loài ng i bi t n vi c l p trình h ng i t ng xây d ng các h th ng ph n m m thì l p
và các m i quan h c a chúng c chuy n thành các dòng code c th .

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.

5.1.2. Tr ng thái, ng x và nh#n di n c a it ng


Tr ng thái (state) c a m t i t ng là m t trong nh ng hoàn c nh n i i t ng có th t n t i. Tr ng
thái c a m t i t ng th ng s& thay i theo th i gian, và nó c nh ngh+a qua m t t h p các
thu c tính, v i giá tr c a các thu c tính này c'ng nh m i quan h mà i t ng có th có v i các i
t ng khác. Ví d m t danh sách ghi danh cho m t l p h#c trong h th ng tr ng h#c có th có hai
tr ng thái: tr ng thái óng và tr ng thái m . N u danh sách sinh viên ghi danh cho l p h#c này còn nh
h n s t i a cho phép (ví d là 10), thì tr ng thái c a b ng ghi danh này là m . M t khi ã 10 sinh
viên ghi danh cho l p, danh sách s& chuy n sang tr ng thái óng.
ng x (Behaviour) xác nh m t i t ng s& ph n ng nh th nào tr c nh ng yêu c u t các i
t ng khác, nó tiêu bi u cho nh ng gì mà i t ng này có th làm. 5ng x c th c thi qua lo t các
Ph ng th c (operation) c a i t ng. Trong ví d tr ng i h#c, m t i t ng b ng ghi danh l p
h#c có th có ng x là b sung thêm m t sinh viên hay xóa i tên c a m t sinh viên khi sinh viên (ng
ký h#c hay bãi b (ng ký.
S nh n di n (Identity) m b o r%ng m.i i t ng là duy nh!t – dù tr ng thái c a nó có th gi ng v i
tr ng thái c a các i t ng khác. Ví d , khóa h#c i s 101 ch ng 1 và khóa h#c i s 101 ch ng

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.

Hình 5.1- M.i th c th trong mô hình trên là m t l p


Khi t o d ng mô hình c'ng nh th t s xây d ng các h th ng doanh nghi p, các h th ng thông tin,
máy móc ho c các l#ai h th ng khác, chúng ta c n s d ng các khái ni m c a chính ph m vi v!n
khi n cho mô hình d hi u và d giao ti p h n. N u chúng ta xây d ng h th ng cho m t công ty b o
hi m, mô hình c n ph i d a trên các khái ni m c a ngành b o hi m. N u chúng ta xây d ng m t h
th ng cho quân i, thì các khái ni m c a th gi i quân s c n ph i c s d ng khi mô hình hóa h
th ng. M t h th ng d a trên các khái ni m chính c a m t ngành doanh nghi p nào ó có th d c
thi t k l i cho phù h p v i nh ng qui ch , chi n l c và qui nh m i, b i chúng ta ch* c n cân b%ng
và kh"c ph c s chênh l ch gi a công vi c c' và công vi c m i. Khi các mô hình c xây d ng d a
trên các khái ni m l!y ra t cu c i th c và d a trên các khái ni m thu c ph m vi v!n , h ng i
t ng s& là m t ph ng pháp r!t thích h p b i n n t ng c a ph ng pháp h ng i t ng là các l p,
i t ng và m i quan h gi a chúng.
M t l p là l i miêu t cho m t d ng i t ng trong b!t k0 m t h th ng nào ó – h th ng thông tin,
h th ng k, thu t, h th ng nhúng th i gian th c, h th ng phân tán, h th ng ph n m m và h th ng
doanh th ng. Các v t d ng (artifact) trong m t doanh nghi p, nh ng thông tin c n c l u tr , phân
tích ho c các vai trò mà m t tác nhân m nh n trong m t doanh nghi p th ng s& tr thành các l p
trong các h th ng doanh nghi p và h th ng thông tin.

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

5.1.4. Bi u l p (Class diagram)


M t bi u l p là m t d ng mô hình t+nh. M t bi u l p miêu t h ng nhìn t+nh c a m t h th ng
b%ng các khái ni m l p và m i quan h gi a chúng v i nhau. M c dù nó c'ng có nh ng nét t ng t
v i m t mô hình d li u, nh ng nên nh r%ng các l p không ph i ch* th hi n c!u trúc thông tin mà còn
miêu t c hình vi. M t trong các m c ích c a bi u l p là t o n n t ng cho các bi u khác, th
hi n các khía c nh khác c a h th ng (ví d nh tr ng thái c a i t ng hay c ng tác ng gi a các
i t ng, c ch* ra trong các bi u ng). M t l p trong m t bi u l p có th c th c thi tr c
ti p trong m t ngôn ng h ng i t ng có h. tr tr c ti p khái ni m l p. M t bi u l p ch* ch* ra

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).

Hình 5.2-Mô hình l p trong UML

Hình 5.3- M t l p c th v i các thu c tính


t o m t bi u l p, u tiên ta ph i nh n di n và miêu t các l p. M t khi ã có m t s l ng các
l p, ta s& xét n quan h gi a các l p ó v i nhau.

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,….

M c ' tr4u t ng:


Khi phân tích ph m vi bài toán, c n chú ý r%ng m c tr u t ng c a các khái ni m then ch t là r!t
quan tr#ng, b i m c tr u t ng quá cao hay quá th!p u r!t d gây nh m l n.
M c tr u t ng quá cao d n t i nh ng nh ngh+a quá khái quát v m t th c th , t o nên m t cái nhìn
v+ mô và th ng không nh"m vào m t m c tiêu c th . Ví d trong m t nhà b(ng, ta không th ch#n
khái ni m then ch t là "ng i", b i nó s& d n n l i miêu t : "M t ng i n nhà b(ng g i ti n
vào, và s ti n ó c m t ng i khác ti p nh n." – trong khi m t yêu c u quan tr#ng ây là ph i
phân bi t gi a nhân viên v i khách hàng vì ch c n(ng c a h# là khác h)n nhau.
T ng t nh v y, m c tr u t ng quá th!p c'ng d gây hi u l m, b i nh ng thông tin quá v n v t
ch a thích h p v i th i i m này. Ví d nh ng quy t nh d ng:
69
Form m tài kho n òi h i t!t c 15 Entry.
Nh ng d li u trên Form này u ph i c c(n ph i.
Không có nhi u ch. ghi a ch* c a khách hàng trên Form.
nên c dành cho các giai o n sau.

Vài i m c n chú ý v khái ni m then ch t:


Nh ng th c th xu!t hi n u tiên trong óc não chúng ta là nh ng th c th d có kh n(ng tr thành
khái ni m then ch t cho m t v!n nh tr c.
M.i l n tìm th!y m t khái ni m then ch t m i, c n xem xét nó theo cách nhìn c a v!n , có th h i
các câu h i sau :
Nh ng ch c n(ng nào có th c th c hi n i v i th c th này?
i u gì khi n nh ng th c th lo i này c t o ra?
N u không có câu tr l i thích h p, c n ph i suy ngh+ l i v th c th ó.
M.i khái ni m then ch t m i c n ph i c t tên cho thích h p, miêu t úng ch c n(ng c a khái
ni m.

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.

Hình 5.4 - Ngu n thông tin h. tr tìm l p


Các tr ng h p s d ng là ngu n t t nh!t cho vi c nh n di n l p và i t ng. C n nghiên c u k, các
Tr ng h p s d ng tìm các thu c tính (attribute) báo tr c s t n t i c a i t ng ho c l p ti m
n(ng. Ví d n u Tr ng h p s d ng yêu c u ph i a vào m t s tài kho n (account-number) thì i u
này tr t i s t n t i c a m t i t ng tài kho n.
M t ngu n khác nh n ra l p/ i t ng là các Input và Output c a h th ng. N u Input bao g m tên
khách hàng thì ây là tín hi u cho bi t s t n t i c a m t i t ng khách hàng, b i nó là m t attribute
c a khách hàng.
Nói chuy n v i ng i s d ng c'ng g i m n các khái ni m then ch t. Th ng thì ng i s d ng
miêu t h th ng theo l i c n ph i a vào nh ng gì và mong ch k t qu gì. Thông tin a vào và k t
qu theo l i miêu t c a ng i s d ng c n ph i c t p h p l i v i nhau nh n d ng khái ni m then
ch t.

5.2.2. Các l p ng c viên


Theo các b c k trên trong ph n u giai o n phân tích, ta ã miêu t c m t s l p khác nhau.
Nh ng l p này c g#i là các l p ng c viên, chúng th hi n nh ng l p có kh n(ng t n t i trong
m t h th ng cho tr c. M c dù v y, ây v n có th ch a ph i là k t qu chung cu c, m t s l p ng
c viên có th s& b lo i b trong các b c sau vì không thích h p.
Giai o n u khi nh ngh+a các l p ng c viên, ta ch a nên c g"ng thanh l#c các l p, hãy t p trung
cáo m c tiêu nghiên c u bao quát và toàn di n t nhi u ngu n thông tin khác nhau không b sót
nhi u khía c nh c n x lý.
Ví d trong nhà m t b(ng l/, các l p ng c viên có th là:
72
Khách hàng
Các lo i tài kho n khác nhau
Sec, s ti t ki m, n, ….
Phi u yêu c u m tài kho n m i
Th/ ATM
B n in thông tin v tài kho n
Gi!y ch ng nh n tài kho n ut
Th/ x p hàng (Token), s th t
Nhân viên
Nhân viên thu ngân

5.2.3. Lo i b$ các l p ng c viên không thích h p


Có r!t nhi u lo i l p ng c viên không thích h p c n ph i c lo i b :
L p d , th a: Khi có h n m t l p nh ngh+a cùng m t th c th , nên gi l i l p t t nh!t
và lo i b nh ng l p khác. Ví d , trong m t nhà b(ng có hai l p ch tài kho n và khách
hàng. C hai l p bi u hi n cùng m t th c th và vì th ch* c n gi l i m t.
L p không thích h p: L p nh ngh+a ra nh ng th c th không liên quan n v!n
th c t i. M#i l p không xu!t phát t ph m vi ng d ng c n ph i c lo i b . Ví d , l p
c a các máy m ti n bên casse trong m t nhà b(ng có th là m t ng c viên cho khái
ni m l p không thích h p.
L p không rõ ràng: L p không có ch c n(ng c th c g#i là các l p không rõ ràng.
L p t n t i và có giá tr s d ng trong m t h th ng là l p có m t ch c n(ng ã c
nh n di n và xác nh rõ ràng. Các l p không rõ ràng c n ph i c nh ngh+a l i ho c
lo i b . Ví d quan sát nhi u b ph n khác nhau trong m t nhà b(ng ABC. M t trong
nh ng b ph n ã c nh n di n có th là b ph n hành chính. Vì ph m vi cho quá
trình vi tính hóa c a nhà b(ng hi n th i ch a bao g m m ng hành chính nên l p này có
th c coi là m t l p không rõ ràng (vì không có ch c n(ng rõ ràng trong h th ng
c n xây d ng tr c m"t).
T ng t , nh ng thu c tính và ph ng th c không rõ ràng c n ph i c lo i ra kh i
danh sách các l p ng c viên. Chúng không c n ph i b xoá h)n, nh ng c n c a
ra ngoài ta có th nhìn rõ các l p c n thi t ã c nh n di n. Các ng x ó sau này
có th c gán cho các l p thích h p h n.
Các l p ch* là vai trò (Role) i v i m t l p khác: Hãy lo i b t!t c các vai trò và gi
l i l p chính. Ví d nhà qu n tr , nhân viên thu ngân, ng i ch y gi!y r!t có th ch* là
vai trò c a l p nhân viên. Hãy gi l i l p nhân viên và lo i b t!t c nh ng l p khác ch*
là vai trò.

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.

5.3. L p và it ng trong UML


UML th hi n l p b%ng hình ch nh t có 3 ph n. Ph n th nh!t ch a tên l p. Trong ph n th hai là
thu c tính và các d li u thành ph n c a l p và trong ph n th ba là các ph ng th c hay hàm thành
ph n c a l p.

5.3.1. Tên l p (class name)


Tên l p c in m (bold) và c(n gi a. Tên l p ph i c d n xu!t t ph m vi v!n và rõ ràng nh
có th . Vì th nó là danh t , ví d nh tài kho n, nhân viên, ....

5.3.2. Thu c tính (attribute)


L p có thu c tính miêu t nh ng c i m c a i t ng. Giá tr c a thu c tính th ng là nh ng d ng
d li u n gi n c a ph n các ngôn ng l p trình h. tr nh Integer, Boolean, Floats, Char, …
Thu c tính có th có nhi u m c trông th!y c (visibility) khác nhau, miêu t li u thu c tính ó có
th c truy xu!t t các l p khác, khác v i l p nh ngh+a ra nó. N u thu c tính có tính trông th!y là
công c ng (public), thì nó có th c nhìn th!y và s d ng ngoài l p ó. N u thu c tính có tính trông
th!y là riêng (private), b n s& không th truy c p nó t bên ngoài l p ó. M t tính trông th!y khác là
b o v (protected), c s d ng chung v i công c khái quát hóa và chuyên bi t hóa. Nó c'ng gi ng
nh các thu c tính riêng nh ng c th z k b i các l p d n xu!t.
Trong UML, thu c tính công c ng mang kí hi u "+" và thu c tính riêng mang d!u "-".
Giá tr c gán cho thu c tính có th là m t cách miêu t tr ng thái c a i t ng. M.i l n các giá
tr này thay i là bi u hi n cho th!y có th ã x y ra m t s thay i trong tr ng thái c a i t ng.

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 .

Hình 5.5- M t l p v i các thu c tính tiêu bi u

Hình 5.6- M t l p v i các thu c tính chung và riêng

Hình 5.7- M t l p v i các thu c tính và gía tr m c nhiên

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

Hình 5.9- M t thu c tính v i li t kê gía tr (status)

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

Hình 5.12- Các giá tr m c nhiên c a tham s

5.4. Quan h gi#a các l p


Bi u l p th hi n các l p và các m i quan h gi a chúng. Quan h gi a các l p g m có b n lo i:
Liên h (Association)
Khái quát hóa (Generalization)
Ph thu c (Dependency)
Nâng c!p (Refinement)
M t liên h là m t s n i k t gi a các l p, c'ng có ngh+a là s n i k t gi a các i t ng c a các l p
này. Trong UML, m t liên h c nh ngh+a là m t m i quan h miêu t m t t p h p các n i k t
(links), trong khi n i k t c nh ngh+a là m t s liên quan v ng ngh+a (semantic connection) gi a
m t nhóm các i t ng.
Khái quát hóa là m i quan h gi a m t y u t mang tính khái quát cao h n và m t y u t mang tính
chuyên bi t h n. Y u t mang tính chuyên bi t h n có th ch a ch* 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 y u t mang tính chuyên bi t h n có th c s d ng
b!t c n i nào mà i t ng mang tính khái quát hóa h n c phép.

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.

5.5. Liên h (Association)


M t liên h là m t s n i k t gi a các l p, m t liên quan v ng ngh+a gi a các i t ng c a các l p
tham gia. Liên h th ng th ng mang tính hai chi u, có ngh+a khi m t i t ng này có liên h v i
m t i t ng khác thì c hai i t ng này nh n th!y nhau. M t m i liên h bi u th b%ng các i
t ng c a hai l p có n i k t v i nhau, ví d r%ng "chúng bi t v nhau", " c n i v i nhau", "c m.i X
l i có m t Y", .... L p và liên h gi a các l p là nh ng công c r!t m nh m& cho vi c mô hình hóa các
h th ng ph c t p, ví d nh c!u trúc s n ph$m, c!u trúc v(n b n và t!t c các c!u trúc thông tin khác.
M i liên k t c th hi n trong bi u UML b%ng m t ng th)ng n i hai l p (hình 4.18).

Hình 5.13-M t l p Author k t h p v i l p Computer

5.5.1. Vai trò trong liên h


M t liên h có th có các vai trò (Roles). Các vai trò c n i v i m.i l p bao ch a trong quan h . Vai
trò c a m t l p là ch c n(ng mà nó m nh n nhìn t góc nhìn c a l p kia. Tên vai trò c vi t kèm
v i m t m'i tên ch* t h ng l p ch nhân ra, th hi n l p này óng vai trò nh th nào i v i l p mà
m'i tên ch* n.

Hình 5.14- Vai trò trong liên h gi a Customer và Account


Trong ví d trên: m t khách hàng có th là ch nhân c a m t tài kho n và tài kho n c chi m gi
b i khách hàng. ng th)ng th hi n liên h gi a hai l p.
M ts i m c n chú ý khi t tên vai trò :

• Tên vai trò có th b i n u trùng v i tên l p

• Tên vai trò ph i là duy nh!t.

• Tên vai trò ph i khác v i các thu c tính c a l p.

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.

5.5.2. Liên h m t chi u (Uni-Directional Association)


Ta c'ng có th s d ng m i liên h m t chi u b%ng cách thêm m t m'i tên và m t u c a ng
th)ng n i k t. M'i tên ch* ra r%ng s n i k t ch* có th c s d ng duy nh!t theo chi u c a m'i tên.

Hình 5.15- Liên h m t chi u gi a Interest và Account


Bi u ph n 5.15 th hi n r%ng gi a hai l p có liên h , nh ng không h có thông tin v s l ng các
i t ng trong quan h . Ta không th bi t m t khách hàng có th có bao nhiêu tài kho n và m t tài
kho n có th là c a chung cho bao nhiêu khách hàng. Trong UML, lo i thông tin nh th c g#i là s
l ng ph n t (Cardinality) trong quan h .

5.5.3. S l ng (Cardinality) trong liên h

Hình 5.16- S l ng trong liên h gi a Customer và Account


Bi u trên nói rõ m t khách hàng có th m m t ho c nhi u tài kho n và m t tài kho n có th thu c
v m t cho t i ba khách hàng.
S l ng c ghi phía u ng th)ng th hi n liên h , sát vào l p là mi n áp d ng c a nó. Ph m
vi c a s l ng ph n t trong liên h có th t 0-t i-1 (0..1), 0-t i-nhi u (0..* hay ), m t-t i-nhi u (1..),
hai (2), n(m-t i-m i m t (5..11). C'ng có th miêu t m t dãy s ví d (1,4,6, 8..12). Giá tr m c nh
là 1.

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.

5.5.4. Phát hi n liên h


Th ng s& có nhi u m i liên h gi a các i t ng trong m t h th ng. Quy t nh liên h nào c n ph i
c th c thi là công vi c th ôc giai o n thi t k . Có th tìm các m i liên h qua vi c nghiên c u các
l i phát bi u v!n , các yêu c u. Gi ng nh danh t ã giúp chúng ta tìm l p, các 'ng t4 ây s&
giúp ta tìm ra các m i quan h .
M t vài l i mách b o khi tìm liên h :
V trí v m t v t lý ho c s thay th , i di n: M.i c m ng t xác nh hay
bi u l m t v trí u là m t bi u hi n ch"c ch"n cho liên h . Ví d : t i a i m,
ng i trong, …
S bao ch a: C m ng t bi u l s bao ch a, ví d nh : là thành ph n c a....
Giao ti p: Có nhi u c m ng t bi u l s giao ti p, ví d truy n thông i p,
nói chuy n v i, …
Quy n s h u: Ví d : thu c v , c a, …
Tho mãn m t i u ki n: Nh ng c m t nh : làm vi c cho, là ch ng/v c a,
qu n tr , ….

5.5.5. X lý các liên h không c n thi t


Sau khi tìm các m i liên h , b c ti p theo ó là phân bi c các liên h c n thi t ra kh i các liên h
không c n thi t. Liên h không c n thi t có th bao g m nh ng liên h bao ch a các l p ng c viê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.

Hình 5.18- Lo i b các liên h không c n thi t

5.5.6. Nâng c p các m i liên h


M t khi các m i liên h c n thi t ã c nh n d ng, b c ti p theo là ngiên c u k, mô hình và nâng
c!p các m i liên h ó.
ng tác nâng c!p u tiên là xem xét l i tên liên h , tên vai trò, t l i cho úng v i b n ch!t quan h
mà chúng th hi n. M.i liên h c n ph i c suy xét k, v ph ng di n s l ng thành ph n tham gia
(Cardinality). S h n nh (Qualification) cho liên h óng m t vai trò quan tr#ng ây, b sung y u
t h n nh có th giúp làm gi m s l ng. N u c n thi t, hãy b sung các liên h còn thi u. Nghiên
c u k, các thu c tính, xem li u trong s chúng có thu c tính nào th t ra th hi n liên h . N u có, hãy
chuy n chúng thành liên h . B sung các thông tin và i u ki n c n thi t c'ng nh xem xét các m i
liên h trong mô hình t ng th xác nh các d ng quan h gi a chúng v i nhau.

a) Liên h và y!u t h"n 1nh (Qualifier):

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.

Hình 5.19- Liên h ch n nh

b) Liên h VÀ (AND Association):


Nhà b(ng n# a ra quy nh: khách hàng khi mu n m m t tài kho n ATM ph i là ch nhân c a ít
nh!t m t tài kho n u t . Trong m t tr ng h p nh th , m i liên h VÀ (AND) s& c th hi n nh
sau:

Hình 5.20- Liên h VÀ (AND Association)


Bi u trên cho th!y m t khách hàng có th có nhi u h n m t tài kho n u t có th i h n và ch* m t
tài kho n ATM. Trong bi u có m t m i liên h VÀ ng m c áp d ng gi a nhóm tài kho n u t
và tài kho n ATM mà m t khách hàng có th có.

c) Liên h HO5C (OR Association):


Ví d t i m t hãng b o hi m n#, cá nhân c'ng công ty u có th ký h p ng b o hi m, nh ng cá
nhân và công ty không c phép có cùng lo i h p ng b o hi m nh nhau. Trong m t tr ng h p
nh th , gi i pháp là s d ng liên h HO6C (OR Association). M t liên h HO6C là m t s h n ch
i v i m t nhóm hai hay nhi u liên h , xác nh r%ng i t ng c a m t l p này t i m t th i i m ch*
có th tham gia vào nhi u nh!t m t trong các m i liên h ó.

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

d) Liên h c s)p x!p (Ordered Association):


Các m i n i k t (link) gi a các i t ng có m t tr t t ng m nh. Giá tr m c nh c a tr t t này là
ng u nhiên. M t liên h có tr t t rõ ràng có th c hi u là m t liên h v i tr t t* s)p x!p (sort
order) trong nhóm các n i k t, nó s& c th hi n nh sau:

Hình 5.22- Tài kho n ti t ki m c s"p x p theo khách hàng


Nhãn {ordered} c ghi g n l p có i t ng c s"p x p. Bi u trên c #c là các tài kho n
ti t ki m c s"p x p theo khách hàng.

e) Liên h tam nguyên (Ternary Association)


Có th có nhi u h n hai l p n i k t v i nhau trong m t liên h tam nguyên.

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 .

f) L p liên h (Association Class):


M t l p có th c ính kèm theo m t liên h , trong tr ng h p này nó s& c g#i là m t l p liên h .
M t l p liên h không c n i t i b!t k0 m t l p nào c a m i liên h , mà t i chính b n thân m i liên
h . C'ng gi ng nh m t l p bình th ng, l p liên h có th có thu c tính, Ph ng th c và các quan h
khác. L p liên h c s d ng b sung thêm thông tin cho n i k t (link), ví d nh th i i m n i
k t c thi t l p. M.i n i k t c a liên h g"n li n v i m t i t ng c a l p liên h .
Ví d sau miêu t m t h th ng thang máy. B ph n i u khi n ch* huy b n thang máy. Cho m.i n i
k t gi a nhóm thang máy và b ph n i u khi n có m t hàng x p (queue). M.i hàng l u tr nh ng y u
c u k c t phía b ph n i u khi n l n t phía thang máy (nh ng nút b!m bên trong thang). Khi b
ph n i u khi n ch#n m t thang máy th c hi n m t l i yêu c u n t m t hành khách ng ngoài
thang máy (m t hành khách trên hành lang), nó s& #c các hàng và ch#n thang máy nào có hàng yêu
c u ng"n nh!t.

Hình 5.24- L p liên h (Association class)

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.

Hình 5.25- M t m ng g m nhi u nút n i v i nhau.

Hình 5.26- M t bi u it ng c a hình 5.25, v i tên c a các it ng

5.6. Quan h k!t t p (Aggregation)

5.6.1. Khái ni m k t t#p


K t t p là m t tr ng h p c bi t c a liên h . 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". 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. M t ví d tiêu bi u c a
k t t p là chi c xe ô tô g m có b n bánh xe, m t ng c , m t khung g m, m t h p s , v.v....

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:

Hình 6.1- Quan h k t t p (1)


M.i thành ph n t o nên k t t p (t ng th ) c g#i là m t b ph n (aggregates). M.i b ph n v ph n
nó l i có th c t o b i các b ph n khác.

Hình 6.2- Quan h k t t p (2)

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.

5.6.3. K t t#p và liên h


Khái ni m k t t p n y sinh trong tình hu ng m t th c th bao g m nhi u thành ph n khác nhau. Liên
h gi a các l p m t khác là m i quan h gi a các th c th .
Quan sát hình sau:

Hình 6.3- K t t p và liên h


M t tài kho n c t o b i các 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. Khách hàng không ph i là là b ph n c a tài kho n, nh ng có quan h v i
tài kho n.
Nhìn chung, n u các l p c n i k t v i nhau m t cách ch t ch& qua quan h "toàn th – b ph n" thì
ng i ta có th coi quan h là k t t p. Không có l i h ng d n ch"c ch"n và rõ ràng cho vi c bao gi
nên dùng k t t p và bao gi nên dùng liên h . M t l i ti m c n nh!t quán i kèm v i nh ng ki n th c
sâu s"c v ph m vi v!n s& giúp nhà phân tích ch#n gi i pháp úng "n.

5.7. Khái quát hóa và chuyên bi t hóa (Generalization & Specialization)


Hãy quan sát c!u trúc l p trong bi u sau:

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.

5.7.1. Kí hi u khái quát hóa và chuyên bi t hóa


Trong bi u trên, các l p trong m t c!u trúc cây c n i v i nhau b%ng m t m'i tên r.ng , ch* t
l p chuyên bi t h n t i l p khái quát h n.

Hình 7.2- Khái quát hóa

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.

5.7.2. Y u t phân bi t (Discriminatior)


t o m t c!u trúc phân c!p, c n ph i có m t s thu c tính làm n n t ng cho quá trình chuyên bi t
hóa. Thu c tính ó c g#i là y!u t phân bi t (Discriminator).
V i m.i giá tr có th gán cho y u t phân bi t trong l p cha, ta s& có m t l p con t ng ng.

Hình 7.3- Y u t phân bi t (Discriminatior)


Trong hình trên, y u t phân bi t trong l p tài kho n là "lo i tài kho n". Chúng ta gi thi t r%ng ch* có
hai lo i tài kho n, m t mang tính k0 h n và m t mang tính giao d ch. Theo ó, ta ph i t o ra hai l p
con, m t cho các tài kho n mang tính k0 h n và m t cho các tài kho n mang tính giao d ch.
Trong mô hình i t ng, không nh!t thi t ph i nêu b t y u t phân bi t. Y u t phân bi t luôn có m t
trong m t c!u trúc phân c!p l p cha/ con, dù có c nh!n m nh trong mô hình i t ng hay không.

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.

d) T ng k!t v phát tri n cây c,u trúc:


C ch dùng chung thu c tính và th t c s d ng nguyên t"c khái quát hóa c g#i là tính th4a k!
(inheritance). S d ng tính th a k tinh ch (refine) các l p s& d n t i vi c phát tri n m t cây c!u
trúc. Nên phát hi n nh ng ng x (behaviour) chung trong m t lo t l p r i th hi n nó thành m t l p
cha. S khác bi t trong ng x c a cùng m t l p s& d n t i vi c t o ra các l p con.
Khi phát tri n cây c!u trúc, hãy quan sát ng x c a các l p. Trong tr ng h p có m t liên h t n t i t
m t l p c th n t!t c các l p con c a m t l p cha, nên d ch chuy n liên h này lên l p cha.
N u t n t i m t liên h gi a m t l p nào ó và m t l p cha, hãy chuyên bi t hóa và nâng cao c!u trúc
xác nh xem li u liên h này có c áp d ng cho t!t c các l p con c a l p cha n# hay không. N u
có thì gán nó vào l p cha, n u không thì d ch xu ng cho nh ng l p con phù h p.
Trong khi ti n hành khái quát hóa, tr#ng tâm công vi c là xác nh các ng x chung trong m t nhóm
nhi u l p chuyên bi t b c trung. Khi ã xây d ng c m t th t c ho c m t thu c tính chung, nên
ki m tra l i xem chúng có th t s là y u t chung c a t!t c các l p chuyên bi t trong ph m vi này.
Khái quát hóa c áp d ng ch* khi chúng ta có m t t p h p các l p nh ngh+a m t lo i i t ng
riêng bi t và có m t s l ng l n các ng x chung. Tr#ng tâm ây là t o nên l p cha ch a các ng
x chung ó.
Khi chuyên bi t hóa, ta i tìm các s khác bi t trong ng x t o các l p con thích ng. Có ngh+a là
ta xem xét m t l p t n t i, ki m tra xem có ph i t!t c các ng x c a nó u có kh n(ng áp d ng cho
m#i i t ng. N u không, ta l#c ra ng x không ph i lúc nào c'ng c n thi t và chia tr ng h p nó ra
thành các l p con. Tr#ng tâm c a chuyên bi t hóa là t o các l p con.
V i c ch th a k , m t l p con s& k th a m#i thu c tính à th t c c a t!t c các l p cha c a nó.
Hình sau làm rõ vi c t o c!u trúc l p s d ng tính khái quát.

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:

Hình 7.6- Phát tri n h th ng l p (2)

5.8. Quan h ph( thu'c và nâng c,p (Dependency & Refinement)


Bên c nh liên h và khái quát hóa, UML còn nh ngh+a hai lo i quan h khác. Quan h ph( thu'c
(Dependency) là m t s liên quan ng ngh+a gi a hai ph n t mô hình, m t mang tính c l p và m t
mang tính ph thu c. M#i s thay i trong ph n t c l p s& nh h ng n ph n t ph thu c. Ph n
t mô hình ây có th là m t l p, m t gói (package), m t tr ng h p s d ng, .v.v... Có th nêu m t
vài cí d cho s ph thu c nh : m t l p l!y tham s là i t ng c a m t l p khác, m t l p truy nh p
m t i t ng toàn c c c a m t l p khác, m t l p g#i m t th t c thu c thu c m t l p khác. Trong t!t

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).

Hình 8.1- M t quan h ph thu c gi a các l p


Nâng c,p (Refinement) là m t 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. Nâng c!p có th là m i quan h gi a m t lo i i t ng và l p th c hi n
nó. Các nâng c!p th ng g p khác là quan h gi a m t l p phân tích (trong mô hình phân tích) và m t
l p thi t k (trong mô hình thi t k ) u mô hình hóa cùng m t th , quan h gi a m t l i miêu t có
m c tr u t ng hóa cao và m t l i miêu t có m c tr u t ng hóa th!p (ví d m t b c tranh khái quát
c a m t s c ng tác ng và m t bi u chi ti t c a c'ng c ng tác ó). Quan h nâng c!p còn cs
d ng mô hình hóa nhi u m c th c thi c a cùng m t th (m t th c thi n gi n và m t th c thi ph c
t p h n, hi u qu h n).
Quan h nâng c!p c th hi n b%ng ng th)ng g ch r i (dashed line) v i m'i tên r.ng.

Hình 8.2- Quan h nâng c!p


Quan h nâng c!p c s d ng trong vi c ph i h p mô hình. Trong các d án l n, m#i mô hình u
c n ph i c ph i h p v i nhau. Ph i h p mô hình c s d ng nh%m m c ích:
Ch* ra m i liên quan gi a các mô hình nhi u m c tr u t ng khác nhau.
Ch* ra m i liên quan gi a các mô hình nhi u giai o n khác nhau (phân tích yêu c u, phân
tích, thi t k , th c thi, ...) .
H. tr vi c qu n tr c!u hình.
H. tr vi c theo dõi trong mô hình.

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.

M't s mách b o th*c t!:


Nghiên c u hi u th!u áo v!n c n gi i quy t:
Khi xây d ng mô hình i t ng, không nên b"t u b%ng cách vi t ra các c!u trúc l p, các
m i liên h c'ng nh nh ng m i quan h th a k l rõ trên b m t và p th)ng vào m"t
chúng ta. Hãy dành th i gian nghiên c u k, b n ch!t v!n . Mô hình i t ng ph i c
thi t k phù h p v i gi i pháp cho v!n mà chúng ta nh"m t i.
C$n th n khi ch#n tên:
Tên c n c ch#n m t cách c$n th n b i nó ch ng nh n s t n t i các th c th . Tên c n
ph i chính xác, ng"n g#n, tránh gây bàn cãi. Tên ph i th hi n t ng th i t ng ch không
ch* nh"m t i m t khía c nh nào ó c a i t ng.
B!t c n i nào có th , hãy ch#n nh ng tên nào bao ch a các danh t chuyên ngành quen
thu c i v i ng i s d ng. Nh ng tên t o ra nh ng hình xa v i i v i ng i s d ng,
ho c các th c th c t tên m t cách t i t r!t d gây ra nh m l n.

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 .

5.10. Ch,t l ng mô hình


Làm sao bi t c mô hình là t t hay ch a t t? M t ngôn ng mô hình hóa có th cung c!p ng
pháp và ng ngh+a cho ta làm vi c, nh ng nó không cho ta bi t li u m t mô hình v a c t o d ng
nên là t t hay không. Y u t này m ra m t v!n quan tr#ng trong vi c xác nh ch!t l ng mô hình.
i u ch ch t khi chúng ta thi t k mô hình là th chúng ta mu n nói v hi n th c. Mô hình mang l i
s di n gi i cho nh ng gì mà chúng ta nghiên c u (hi n th c, m t vi n c nh...).
Trong m t mô hình, y u t quan tr#ng b t nh!t là ph i n"m b"t c b n ch!t c a v!n . Trong m t h
th ng tài chính, chúng ta th ng mô hình hóa các hóa n ch không ph i các món n . Trong a ph n
doanh nghi p, b n thân hóa n không th t s có t m quan tr#ng n nh v y, y u t quan tr#ng ây
là các món n . M t hóa n ch* là m t s th hi n c a m t món n , nh ng ta c n ph i mô hình hóa làm
sao ph n ánh i u ó. M t khái ni m khác là m t tài kho n nhà b(ng. Trong nh ng n(m 70 và 80
ã có r!t nhi u mô hình th hi n tài kho n nhà b(ng. Khách hàng (ch nhân c a tài kho n t i nhà b(ng)
c coi là m t thành ph n c a tài kho n này (m t tài kho n nhà b(ng c mô hình hóa nh là m t
l p ho c là m t th c th và m t khách hàng là m t thu c tính). Khó kh(n u tiên x y ra là nhà b(ng
không th x lý tài kho n có nhi u ch . V!n th hai là nhà b(ng không th t o ra các chi n l c

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.

5.10.1. Th nào là m t mô hình t t?


M t mô hình s& là m t mô hình t t n u ta có kh n(ng giao ti p v i nó, n u nó phù h p v i các m c
ích c a nó và n u chúng ta ã n"m b"t c nh ng i m c t y u c a v!n . M t mô hình t t òi h i
th i gian xây d ng; bình th ng ra nó c t o b i m t nhóm phát tri n, c thành l p v i m t m c
ích c th . M t trong nh ng m c ích này có th là huy ng toàn b l c l ng phát hi n ra các
yêu c u c a m t c quan. M t m c ích khác r!t có th là mô hình hóa m t c t yêu c u, th c hi n
m t giai o n phân tích, hay v& m t b n thi t k k, thu t cho m t h th ng thông tin. Khi các cá nhân
khác nhau c t p h p thành nhóm, ng tác này c n ph i c th c hi n t p trung vào m c tiêu nh
tr c. Các nhóm mô hình hóa m t doanh ngh êp ho c là m t h th ng thông tin r!t có th ct o
b i khách hàng, chuyên gia mô hình hóa và chuyên gia ng d ng.

5.10.2. Ta có th giao ti p v i mô hình?


T i sao mô hình l i ph i là th d giao ti p? T!t c các d án, dù l n hay nh , u c n ph i c giao
ti p. Con ng i ta nói chuy n v i nhau. H# #c các tài li u c a nhau và th o lu n các n i dung c a
chúng. Sáng ki n kh i th y n%m %ng sau b!t k0 m t mô hình nào c'ng là t o ra kh n(ng giao ti p
v i chúng. N u chúng ta t o ra các mô hình mà không ai #c n i, hi u n i, thì ó là vi c làm vô ý
ngh+a. Mô hình ch)ng ph i c t o ra b i ng i d n u m t ph ng pháp ho c ng i d n u m t
d án ra l nh. Mô hình c t o ra ph c v cho vi c giao ti p và t p h p các c g"ng c a chúng ta
t n n(ng su!t, hi u qu và ch!t l ng cao nh có th .

5.10.3. Mô hình có phù h p v i m c ích c a nó không?


M t mô hình hình c n ph i có m t m c ích rõ ràng, sao cho ai dùng nó c'ng nh n c ra. T!t c các
mô hình u có m c ích, nh ng th ng m c ích này là ng m $n, và i u này khi n cho vi c s d ng
và hi u nó tr nên khó kh(n. Các mô hình phân tích và mô hình thi t k có th là mô hình c a cùng
m t h th ng, nh ng chúng v n là nh ng mô hình khác nhau và t p trung vào các ch khác nhau
(hay là chi ti t khác nhau). C n ph i xác nh rõ ràng m c ích cho m.i mô hình có th ki m tra và

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.4. N%m b%t nh ng i m tr&ng y u


Nhi u mô hình ch* bao g m các tài li u c a doanh nghi p – ví d nh các hóa n, nh ng thông tin
nh n c, các h p ng b o hi m. N u mô hình ch* là s bao g m các tài li u thì i u gì s& x y ra n u
doanh nghi p thay i? ây là m t v!n r!t quan tr#ng trong th c t . Chúng ta c n thi t ph i n"m b"t
b n ch!t c a doanh nghi p (t o nên ph n nhân) và mô hình xoay quanh các khái ni m thi t y u ó
có kh n(ng x lý các thay i m t cách thích h p. Hãy mô hình hóa ph n nhân c a doanh nghi p và
sau ó m i n m t mô hình di n gi i ph n nhân ó. M t khi ph n nhân ã c mô hình hóa, nh ng
thay i nho nh trong doanh nghi p có th c x lý qua vi c s a i các l p di n gi i các lo i i
t ng thu c ph n nhân (ví d nh các hóa n là m t s di n gi i c a các món n ).

5.10.5. Ph i h p các mô hình


Các mô hình khác nhau c a cùng m t h th ng ph i có kh n(ng c k t h p và liên quan n nhau.
M t trong các khía c nh c a ph i h p mô hình là s tích h p. Tích h p có ngh+a là m t nhóm các mô
hình cùng chung m c ích và th hi n cùng m t th (m c dù chúng có th có nhi u h ng nhìn khác
nhau, ví d nh mô hình ng, mô hình ch c n(ng, mô hình t+nh), thì chúng ph i có kh n(ng c ráp
l i v i nhau mà không làm n y sinh mâu thu n.
Quan h gi a các mô hình nh ng m c tr u t ng khác nhau là m t khía c nh quan tr#ng khác. Nó
là m t trong nh ng chìa khóa d n n kh n(ng có th theo dõi b c phát tri n c a các ph n t khác
nhau, ph c v cho công ngh l p trình. Quan h gi a các m c tr u t ng khác nhau có th c th
hi n b%ng quan h nâng c!p trong UML. i u ó có ngh+a là các mô hình s& c ph i h p t i m.i m t
m c tr u t ng c'ng nh c ph i h p gi a các m c tr u t ng khác nhau.

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.

5.11. Tóm t)t v mô hình it ng


Khi t o mô hình là chúng ta di n gi i các chi ti t v nh ng gì mà chúng ta nghiên c u, th nh ng m t
y u t r!t quan tr#ng là mô hình ph i n"m b"t c nh ng i m tr#ng y u c a i t ng nghiên c u.
M t i t ng là m t th gì ó mà chúng ta có th nói v và có th x lý trong m t s ph ng th c nào
ó. M t i t ng t n t i trong th gi i th c (ho c nói cho chính xác h n là trong s hi u bi t c a
chúng ta v th gi i th c). M t i t ng có th là m t thành ph n c a m t h th ng nào ó trong th
gi i – m t chi c máy, m t t ch c, m t doanh ngh êp. M t l p là l i miêu t t 0, 1 ho c nhi u i
t ng v i cùng l i ng x . L p và i t ng c s d ng bàn lu n v các h th 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

6.1. S* c n thi!t có mô hình 'ng (Dynamic Model)


Mô hình i t ng và quá trình phát tri n nó là tr#ng tâm c a nh ng cu c th o lu n trong ch ng
tr c. Mô hình i t ng nh ngh+a h th ng theo khái ni m các thành ph n t+nh. Mô hình i t ng
miêu t ng x mang tính c!u trúc và ch c n(ng c a các l p. M c d u v y, mô hình hóa s ho t
ng th t s c a m t h th ng và trình bày m t h ng nhìn i v i h th ng trong th i gian h th ng
ho t ng, chúng ta c n t i mô hình 'ng (dynamic model).
Trong UML, mô hình ng c p t i các tr ng thái khác nhau trong vòng i c a m t i t ng thu c
h th ng. Ph ng th c ng x c a m t h th ng t i m t th i i m c th s& c miêu t b%ng các i u
ki n khác nhau !n nh cho s ho t ng c a nó.
M t y u t h t s c quan tr#ng là c n ph i hi u cho c h th ng s& áp l i nh ng kích thích t phía
bên ngoài ra sao, có ngh+a là chúng ta c n ph i xác nh và nghiên c u nh ng chu.i các th t c s& là h
qu c a m t s kích thích t ngoài. Cho vi c này, ta c n t i mô hình ng b i tr#ng tâm c a mô hình
này là l i ng x ph thu c vào th i gian c a các i t ng trong h th ng.
Chúng ta c n t i mô hình ng b i chúng ta c n th hi n s thay i x y ra trong h th ng d#c theo
th i gian ch y. Công c miêu t mô hình ng là không th thi u ví d trong tr ng h p các i t ng
tr i qua nhi u giai o n khác nhau trong th i gian h th ng ho t ng. i u ó có ngh+a là m c dù i
t ng c t o ra m t l n, nh ng các thu c tính c a chúng ch* d n d n t ng b c nh n c giá tr . Ví
d nh m t tài kho n u t có k0 h n c t o ra, nh ng t ng s ti n lãi c ng d n c a nó ch* c
t(ng lên d n d n theo th i gian.
Các mô hình ng c'ng là y u t h t s c c n thi t miêu t ng x c a m t i t ng khi a ra các
yêu c u ho c th c thi các tác v . C tác v l n d ch v , theo nh ngh+a, u là các ho t ng ng và
vì th mà ch* có th c bi u di n qua m t mô hình ng.

6.2. Các thành ph n c a mô hình 'ng


i t ng trong các h th ng giao ti p v i nhau, chúng g i thông i p (message) n nhau. Ví d m t
i t ng khách hàng là John g i m t thông i p mua hàng n ng i bán hàng là Bill làm m t vi c
gì ó. M t thông i p th ng là m t l nh g#i th t c mà m t i t ng này g#i qua m t i t ng kia.
Các i t ng giao ti p v i nhau ra sao và hi u ng c a s giao ti p nh th c g#i là khía c"nh
'ng c a m t h th ng, ý ngh+a c a khái ni m này là câu h i: các i t ng c ng tác v i nhau qua giao
ti p nh th nào và các i t ng trong m t h th ng thay i tr ng thái ra sao trong th i gian h th ng
ho t ng. S giao ti p trong m t nhóm các i t ng nh%m t o ra m t s các l nh g#i hàm c g#i là
t ng tác (interaction), t ng tác có th c th hi n qua ba lo i bi u : bi u tu n t (sequence
Diagram), bi u c ng tác (collaboration Diagram) và bi u ho t ng (activity Diagram).
Trong ch ng này, chúng ta s& c p t i b n lo i bi u ng c a UML:
Bi u $ tr"ng thái: miêu t m t i t ng có th có nh ng tr ng thái nào trong vòng i c a
nó, ng x trong các tr ng thái ó c'ng nh các s ki n nào gây ra s chuy n i tr ng thái, ví
d , m t t hóa n có th c tr ti n (tr ng thái ã tr ti n) ho c là ch a c tr ti n (tr ng
thái ch a tr ti n).

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:

Hình 6.1- Các thành ph n c a mô hình ng


Các thành ph n k trên s& c c p chi ti t h n trong các ph n sau.

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.

6.3. u i m c a mô hình 'ng


B!t c khi nào có nh ng ng x ng c n ph i c nghiên c u ho c th hi n, chúng ta s& ph i dùng
n mô hình ng.
Mô hình ng óng m t vai trò vô cùng quan tr#ng trong nh ng tr ng h p nh :
Các h th ng mang tính t ng tác cao
H th ng có s d ng các trang thi t b ngo i vi có th g#i nên các ng x c a h th ng.
Mô hình ng không t ra th t s h u hi u trong tr ng h p c a các h th ng t+nh. Ví d m t h th ng
ch* nh%m m c ích nh p d li u l u tr vào m t ngân hàng d li u.
M t mô hình ng t p trung vào các chu.i t ng tác (bi u c ng tác) và vào y u t th i gian c a các
s ki n (bi u tu n t ). M t mô hình ng có th c s d ng cho m c ích th hi n rõ ràng theo
th i gian ho t ng c a h th ng n u trong th i gian này có nh ng i t ng:
c t o ra
B xóa i
c l u tr
B h y
Hãy quan sát tr ng h p rút ti n m t và t ng tác c a khách hàng i v i nhà b(ng:
Khách hàng i n t!t c các chi ti t c n thi t vào gi!y yêu c u rút ti n m t.
Khách hàng a gi!y yêu c u ó cho m t nhân viên phát th/ x p hàng.
Nhân viên phát th/ ghi s c a gi!y yêu c u rút ti n vào danh sách.
ng tác ghi s c a gi!y yêu c u rút ti n c th c hi n tu n t , t ng ng v i nh ng
s th/ tu n t c phát ra.
M t t!m th/ x p hàng (token) c trao cho khách hàng.
Khách hàng i vào hàng x p, ch nhân viên bên casse g#i úng s th/ c a mình.

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.

Hình 6.2- Mô hình ng c a máy rút ti n ATM

6.4. S* ki n và thông i p (Event & Message)

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.

b) S* ki n n'i (internal) và s* ki n ngo"i (external):


S ki n n i là các s ki n x y ra trong n i b h th ng. ây là các s ki n do m t i t ng này gây ra
i v i i t ng khác. Ví d , tính toán ti n lãi cho m t tài kho n u t có k0 h n s& cn ib h
th ng th c hi n, tuân theo m t i t ng quan sát ngày tháng.
S ki n ngo i là nh ng s ki n c kích nên t phía bên ngoài biên gi i c a h th ng, ví d nh s
k t thúc tr c k0 h n m t tài kho n u t .

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.

6.4.2. Thông i p (Message)


Trong l p trình h ng i t ng, m t t ng tác gi a hai i t ng c th c thi d i d ng thông i p
cg it i t ng này sang i t ng khác. Trong ng c nh này, y u t quan tr#ng là không nên
hi u danh t "thông i p” quá chính xác theo ngh+a v(n h#c bình th ng. M t thông i p ây th ng
c th c hi n qua m t l nh g#i th t c n gi n (m t i t ng này g#i m t th t c c a m t i
t ng khác); khi th t c ã c th c hi n xong, quy n i u khi n c trao tr v cho i t ng g#i
th t c cùng v i giá tr tr v . M t thông i p m t khác c'ng có th là m t thông i p th c th c
g i qua m t s c ch giao ti p nào ó, ho c là qua m ng ho c là n i b trong m t máy tính, ây là

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.

Hình 6.3- Các ký hi u c a các ki u thông i p


Thông i p n gi n (simple): Ch* miêu t n gi n chi u i u khi n. Nó ch* ra quy n i u
khi n c trao t i t ng này sang cho i t ng khác mà không kèm thêm l i miêu t b!t
k0 m t chi ti t nào v s giao ti p ó. Lo i thông i p này c s d ng khi ng i ta không
bi t các chi ti t v giao ti p ho c coi chúng là không quan tr#ng i v i bi u .
Thông i p ng b (synchronous): th ng c th c thi là m t l nh g#i th t c. Th t c
x lý thông i p này ph i c hoàn t!t (bao g m b!t k0 nh ng thông i p nào c l ng vào
trong, c g i nh là m t thành ph n c a s x lý) tr c khi i t ng g#i ti p t c th c thi.
Quá trình tr v có th c ch* ra d i d ng thông i p n gi n.
Thông i p không ng b (asynchronous): ây là d ng i u khi n trình t không ng b ,
n i không có m t s tr v i v i i t ng g#i và n i i t ng g i thông i p ti p t c quá
trình th c thi c a mình sau khi ã g i thông i p i, không ch cho t i khi nó c x lý xong.
Lo i thông i p này th ng c s d ng trong các h th ng th i gian th c, n i các i t ng
th c thi ng th i.
Thông i p n gi n và thông i p ng b có th c k t h p v i nhau trong ch* m t ng th)ng
ch* thông i p v i m'i tên ch* thông i p ng b m t phía và m'i tên ch* thông i p n gi n phía
kia. i u này ch* rõ r%ng s tr v c x y ra h u nh ngay l p t c sau l nh g#i hàm.

6.5. Bi u $ tu n t* (Sequence Diagram)


Bi u tu n t minh h#a các i t ng t ng tác v i nhau ra sao. Chúng t p trung vào các chu.i thông
i p, có ngh+a là các thông i p c g i và nh n gi a m t lo t các i t ng nh th nào. Bi u
tu n t có hai tr c: tr c n%m d#c ch* th i gian, tr c n%m ngang ch* ra m t t p h p các i t ng. M t
bi u tu n t c'ng nêu b t s t ng tác trong m t c nh k ch (scenario) – m t s t ng tác s& x y ra
t i m t th i i m nào ó trong quá trình th c thi c a h th ng.
T các hình ch nh t bi u di n i t ng có các ng g ch r i (dashed line) th)ng ng bi u th
ng i i t ng, t c là s t n t i c a i t ng trong chu.i t ng tác. Trong kho ng th i gian này,
i t ng c th c th hóa, s2n sàng g i và nh n thông i p. Quá trình giao ti p gi a các i
t ng c th hi n b%ng các ng th)ng thông i p n%m ngang n i các ng i i t ng. M.i tên
106
u ng th)ng s& ch* ra lo i thông i p này mang tính ng b , không ng b hay n gi n.
#c bi u tu n t , hãy b"t u t phía bên trên c a bi u r i ch y d#c xu ng và quan sát s trao i
thông i p gi a các i t ng x y ra d#c theo ti n trình th i gian.
Ví d hãy quan sát m t c nh k ch rút ti n m t t i m t máy ATM c a m t nhà b(ng l/:

Hình 6.4- Bi u c nh k ch rút ti n m t t i máy ATM


Bi u trên có th c di n gi i theo trình t th i gian nh sau:
Có ba l p tham gia c nh k ch này: khách hàng, máy ATM và tài kho n.
Khách hàng a yêu c u rút ti n vào máy ATM
it ng máy ATM yêu c u khách hàng cung c!p mã s
Mã s c g i cho h th ng ki m tra tài kho n
it ng tài kho n ki m tra mã s và báo k t qu ki m tra n cho ATM
ATM g i k t qu ki m tra này n khách hàng
Khách hàng nh p s ti n c n rút.

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.

6.6. Bi u $ c'ng tác (Collaboration Diagram)


M t bi u c ng tác miêu t t ng tác gi a các i t ng c'ng gi ng nh bi u tu n t , nh ng nó
t p trung tr c h t vào các s ki n, t c là t p trung ch y u vào s t ng tác gi a các i t ng.
Trong m t bi u c ng tác, các i t ng c bi u di n b%ng kí hi u l p. Th t trong bi u c ng
tác c th hi n b%ng cách ánh s các thông i p. K, thu t ánh s c coi là h i có ph n khó hi u
h n so v i k, thu t m'i tên s d ng trong bi u tu n t . Nh ng u i m c a bi u c ng tác là nó
có th ch* ra các chi ti t v các l nh g#i hàm (th t c), y u t c né tránh trong bi u tu n t .
Bi u sau ây là m t ví d cho m t bi u c ng tác, c chu$n b c'ng cho m t c nh k ch rút ti n
m t nh trong bi u tu n t c a ph n tr c. Hãy quan sát các th t s trong bi u . u tiên th
t c WithdrawalReq() c g#i t l p khách hàng. ó là l nh g#i s 1. B c ti p theo trong tu n t là
hàm AskForPin(), s 1.1, c g#i t l p ATM. Thông i p trong bi u c vi t d i d ng pin:=
AskForPin(), th hi n r%ng "giá tr tr v " c a hàm này chính là mã s mà l p khách hàng s& cung c!p.

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.

Hình 6.5- M t bi u c ng tác c a kích c nh rút ti n máy ATM

6.7. Bi u $ tr"ng thái (State Diagram)


Bi u tr ng thái n"m b"t vòng i c a các i t ng, các h th ng con (Subsystem) và các h th ng.
Chúng cho ta bi t các tr ng thái mà m t i t ng có th có và các s ki n (các thông i p nh n c,
các kho ng th i gian ã qua i, các l.i x y ra, các i u ki n c th a mãn) s& nh h ng n nh ng
tr ng thái ó nh th nào d#c theo ti n trình th i gian. Bi u tr ng thái có th ính kèm v i t!t c các
l p có nh ng tr ng thái c nh n di n rõ ràng và có l i ng x ph c t p. Bi u tr ng thái xác nh
ng x và miêu t nó s& khác bi t ra sao ph thu c vào tr ng thái, ngoài ra nó c'ng còn miêu t rõ
nh ng s ki n nào s& thay i tr ng thái c a các i t ng c a m t l p.

6.7.1. Tr ng thái và s bi n i tr ng thái (State transition)


T!t c các i t ng u có tr ng thái; tr ng thái là m t k t qu c a các ho t ng tr c ó ã c i
t ng th c hi n và nó th ng c xác nh qua giá tr c a các thu c tính c'ng nh các n i k t c a i
t ng v i các i t ng khác. M t l p có th có m t thu c tính c bi t xác nh tr ng thái, ho c tr ng
thái c'ng có th c xác nh qua giá tr c a các thu c tính “bình th ng" trong i t ng. Ví d v
các tr ng thái c a i t ng:
Hóa n( it ng) ã c tr ti n (tr ng thái).
Chi c xe ô tô ( i t ng) ang ng yên (tr ng thái).
ng c ( i t ng) ang ch y (tr ng thái).
Jen ( i t ng) ang óng vai trò ng i bán hàng (tr ng thái).

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.

Hình 6.6- Các ký hi u UML th hi n b"t u, k t thúc, s ki n và tr ng thái c a m t it ng.

Hình 6.7- Bi u tr ng thái th c hi n hoá n.


M t tr ng thái có th có ba thành ph n, nh c ch* trong hình sau :

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.

Hình 6.9- Bi n i tr ng thái không có s ki n t ngoài. S thay i tr ng thái x y ra khi các ho t


ng trong m.i tr ng thái c th c hi n xong.

6.7.3. Nh#n bi t tr ng thái và s ki n


Quá trình phát hi n s ki n và tr ng thái v m t b n ch!t bao g m vi c h i m t s các câu h i thích
h p:
M t i t ng có th có nh ng tr ng thái nào?: Hãy li t kê ra t!t c nh ng tr ng thái
mà m t i t ng có th có trong vòng i c a nó.

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.

6.7.4. M t s l i mách b o cho vi c t o d ng bi u tr ng thái


Chuy n bi u tu n t thành bi u tr ng thái.
Xác nh các vòng l p (loop)
B sung thêm các i u ki n biên và các i u ki n c bi t
Tr n l n các c nh k ch khác vào trong bi u tr ng thái.
M t khi mô hình ã c t o nên, hãy nêu ra các câu h i và ki m tra xem mô hình có kh n(ng cung
c!p t!t c các câu tr l i. Qui trình sau ây c n ph i c nh"c l i cho m.i i t ng.

a) Chuy n bi u $ tu n t* thành bi u $ tr"ng thái


Hãy dõi theo m t chu.i các s ki n c miêu t trong bi u , chu.i này ph i mang
tính tiêu bi u cho các t ng tác trong h th ng. Hãy quan sát các s ki n nh h ng n
i t ng mà ta ang nghiên c u.
Hãy s"p x p các s ki n thành m t ng d n, dán nhãn input (ho c entry) và output
(exit) cho các s ki n. Kho ng cách gi a hai s ki n này s& là m t tr ng thái.
N u c nh k ch có th c nh"c i nh"c l i r!t nhi u l n (vô gi i h n), hãy n i ng
d n t tr ng thái cu i cùng n tr ng thái u tiên.

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.10- Chuy n m t bi u tu n t sang bi u tr ng thái

b) Nh n ra các vòng l-p (loop)


M t chu.i s ki n có th c nh"c i nh"c l i vô s l n c g#i là vòng l p (loop).

Hình 6.11- Bi u l p
Chú ý:
Trong m t vòng l p, chu.i các s ki n c nh"c i nh"c l i c n ph i ng nh!t v i
nhau. N u có m t chu.i các s ki n khác chu.i khác thì tr ng h p ó không có vòng
l p.
Lý t ng nh!t là m t tr ng thái trong vòng l p s& có s ki n k t thúc. ây là y u t
quan tr#ng, n u không thì vòng l p s& không bao gi k t thúc.

c) B sung thêm các i u ki n biên và các i u ki n -c bi t


Sau khi ã hoàn t!t bi u tr ng thái cho m#i i t ng c n thi t trong h th ng, ã n lúc chúng ta
c n ki m tra, i ch ng chúng v i i u ki n biên và các i u ki n c bi t khác, nh ng i u ki n r!t có
th ã ch a c quan tâm trong th i gian t o d ng bi u tr ng thái. i u ki n biên là nh ng
i u ki n thao tác trên giá tr , ây là nh ng giá tr n%m bên ranh gi i c a m t i u ki n quy t nh
v tr ng thái c a i t ng, ví d nh quy nh v k0 h n c a m t tài kho n là 30 ngày thì ngày th 31

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).

d) Tr'n l n các c nh k1ch khác vào trong bi u $ tr"ng thái


M t khi bi u tr ng thái cho m t i t ng ã s2n sàng, chúng ta c n ph i tr n nh ng chu.i s ki n
có nh h ng n i t ng này vào trong bi u tr ng thái. i u này có ngh+a là chúng ta c n ph i
quan sát các hi u ng gián ti p c a các s ki n khác i v i i t ng ang là ch chính c a bi u
tr ng thái. ây là vi c quan tr#ng, b i các i t ng trong m t h th ng t ng tác v i nhau và vì các
i t ng khác c'ng có kh n(ng gây nên s ki n cho m t i t ng nh tr c, nên l i ng x này
c'ng c n ph i c th hi n trong bi u tr ng thái.
i m b"t u cho công vi c này là:
7n nh m t i m b"t u chung cho t!t c các chu.i s ki n b sung.
Xác nh i m n i các ng x b"t u khác bi t v i nh ng ng x ã c mô hình
hóa trong bi u tr ng thái.
B sung thêm s các bi n i m i t tr ng thái này, trong t cách m t ng d n thay th . C n ý
n nh ng ng d n có v/ ngoài ng nh!t nh ng th t ra có khác bi t trong m t tình hu ng nh!t nh
nào ó.
Hãy chú ý n các s ki n x y ra trong nh ng tình hu ng b!t ti n. M.i s ki n do khách hàng hay
ng i s d ng gây nên u có th sa vào tr ng thái c a các s ki n b!t ti n. H th ng không n"m
quy n i u khi n i v i ng i s d ng và ng i s d ng có th quy t nh làm n y ra m t s ki n
t i m t th i i m ti n l i i v i anh ta. Ví d nh khách hàng có th quy t nh k t thúc tr c k0 h n
m t tài kho n u t .
M t tr ng h p khác c'ng c n ph i c x lý là s ki n do ng i s d ng gây nên không th x y ra.
Có m t lo t các lý do (ng i s d ng thi u t p trung, bu n n n, l ãng...) khi n cho s ki n lo i này
không x y ra. C tr ng h p này c'ng ph i c x lý th!u áo. Ví d m t khách hàng th!t b i trong
vi c báo cho nhà b(ng bi t nh ng m nh l nh c a anh ta v k0 h n c a tài kho n, m t t!m séc c vi t
ra nh ng l i không có kh n(ng gi i t a m c ti n c n thi t.
Nhìn theo ph ng di n các bi u tr ng thái nh là m t thành ph n c a mô hình ng, c n chú ý
nh ng i m sau:
Bi u tr ng thái ch* c n c t o d ng nên cho các l p it ng có ng x ng
quan tr#ng.
Hãy th$m tra bi u tr ng thái theo khía c nh tính nh!t quán i v i nh ng s ki n
dùng chung cho toàn b mô hình ng c úng "n.
Dùng các tr ng h p s d ng h. tr cho quá trình t o d ng bi u tr ng thái.
Khi nh ngh+a m t tr ng thái, hãy ch* ý n nh ng thu c tính liên quan.

6.8. Bi u $ ho"t 'ng (Activity Diagram)


Bi u ho t ng n"m b"t hành ng và các k t qu c a chúng. Bi u ho t ng t p trung vào công
vi c c th c hi n trong khi th c thi m t th t c (hàm), các ho t ng trong m t l n th c thi m t

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.

Hành 'ng và s* thay i tr"ng thái


M t hành ng c th c hi n s n sinh ra m t k t qu . Vi c th c thi c a th t c có th c
miêu t d i d ng m t t p h p c a các hành ng liên quan, sau này chúng s& c chuy n
thành các dòng code th t s . Theo nh nh ngh+a ph n tr c, m t bi u ho t ng ch* ra
các hành ng cùng m i quan h gi a chúng và có th có m t i m b"t u và m t i m k t
thúc. Bi u ho t ng s d ng c'ng cùng nh ng ký hi u nh trong bi u tr ng thái bình
th ng.

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.

Hình 6.13- Thanh ng b hóa

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.

Hình 6.14- Bi u ho t ng c a máy ATM

6.9. Vòng /i it ng (Object Lifecycle)


Vòng i mà m t i t ng i qua ph thu c vào lo i i t ng. Có hai lo i vòng i khác nhau i
v i m t i t ng: vòng i sinh ra r i ch t i; và vòng i vòng l p.

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.

6.10. Xem xét l"i mô hình 'ng

6.10.1. Th'm v n bi u tr ng thái


Sau khi ã hoàn t!t các thành ph n c(n b n c a mô hình ng nh các bi u tu n t , bi u c ng
tác, bi u tr ng thái và bi u ho t ng, nhóm phát tri n có th phác th o bi u thành ph n và
bi u tri n khai. Bi u tri n khai có th c coi là bi u cu i cùng trong mô hình ng. T i th i
i m này, có th coi là ta ã hoàn t!t m t phiên b n c a mô hình ng.

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.

6.10.3. Bao gi thì s d ng bi u nào


Không c n ph i v& t!t c các lo i bi u ng cho t!t c các lo i h th ng. M c dù v y, trong m t s
tr ng h p khác nhau chúng ta nh!t thi t ph i c n n m t s lo i bi u ng nh!t nh. Sau ây là
m t vài l i mách b o có th giúp gi i thích m t vài i u còn ch a thông t v vi c s d ng các lo i
bi u ng.
Bi u tu n t và bi u c ng tác c v& khi chúng ta mu n xem xét ng x ng c a nhi u i
t ng/ l p trong n i b m t c nh k ch c a m t tr ng h p s d ng. Bi u tu n t và bi u c ng tác
r!t h u d ng trong vi c ch* ra s c ng tác gi a các i t ng, nh ng chúng l i không h u d ng khi
mu n miêu t ng x chính xác c a m t i t ng.
Bi u tr ng thái c s d ng th hi n ng x chính xác c a m t it ng.

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.

6.10.4. L p con và bi u tr ng thái


T!t c các l p con u th a k c thu c tính c'ng nh các th t c c a l p cha. Vì v y, m t l p con
c'ng s& th a k c mô hình ng c a l p cha.
Ngoài bi u tr ng thái c th a k , l p con c'ng có bi u tr ng thái riêng c a nó. Bi u tr ng
thái c a m t l p cha s& c m r ng bao ch a l i ng x chuyên bi t c a l p con.
Bi u tr ng thái c a l p con và bi u tr ng thái c a l p cha ph i c b o trì riêng bi t và c l p.
Bi u tr ng thái c a l p con c n ph i c nh ngh+a s d ng các thu c tính c a l p con ch không
ph i ch* b%ng các thu c tính c a l p cha. M t khác, v n có m t s móc n i ngoài ý mu n c a l p cha
n v i l p con thông qua các thu c tính mà chúng s d ng chung, ví d ch* nên xem xét bi u tr ng
thái cho các tài kho n có k0 h n theo ph ng di n s thay i c a chính các thu c tính c a chúng, ch
không ph i là thu c tính c a l p cha. Ta ph i th c hi n nh v y né tránh tr ng h p tr n l n thu c
tính c a l p con và l p cha.
Vi c tuân th quy t"c k trên trong quá trình v& bi u tr ng thái cho m t l p con s& m b o tính
mô un cho ng tác m r ng c a b n.

6.11. Ph i h p mô hình it ng và mô hình 'ng


Khi k t h p gi a các mô hình i t ng và mô hình ng, m.i s ki n trong mô hình ng c n ph i
t ng thích v i m t th t c trong mô hình i t ng. T ó suy ra, m.i s thay i v m t tr ng thái
trong mô hình ng c n ph i phù h p v i m t th t c c a i t ng. Hành ng ph thu c vào tr ng
thái c a i t ng và vào s ki n.
M i quan h gi a mô hình it ng và mô hình ng có th c miêu t nh sau:
Mô hình it ng là c c!u (framework) cho mô hình ng.
Mô hình ng xác nh các chu.i thay i c phép x y ra i v i các it ng
trong mô hình i t ng.
Mô hình ng b h n ch ch* trong nh ng it ng có m t trong mô hình it ng
c'ng nh c!u trúc c a chúng.
Không th có m t mô hình ng cho m t i t ng không t n t i trong mô hình i
t ng. Có m t m i quan h 1-1 gi a mô hình i t ng và mô hình ng.
Mô hình ng chính là mô hình it ng c ng thêm v i ph n ng x "s ng".
Mô hình i t ng miêu t s khác bi t gi a các i t ng nh là s khác bi t gi a các
l p. Khi m t i t ng ng x khác m t i t ng khác thì m.i i t ng trong s ó
s& có m t l p riê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.12. Tóm t)t v mô hình 'ng


T!t c các h th ng u có c!u trúc t+nh và có ng x ng. C!u trúc có th c miêu t qua các ph n
t mô hình t+nh, ví d nh l p, quan h gi a các l p, nút m ng và thành ph n. Khái ni m ng x miêu
t các ph n t mô hình trong n i b c!u trúc s& t ng tác v i nhau d#c theo ti n trình th i gian ra sao.
ó th ng là nh ng t ng tác c xác nh tr c và có th c mô hình hóa. Mô hình hóa ng x
ng c a m t h th ng g#i là mô hình ng, c UML h. tr . Có t!t c b n lo i bi u khác nhau,
m.i lo i v i m t m c ích khác nhau: bi u tr ng thái , bi u tu n t , bi u c ng tác và bi u
ho t ng.
Bi u tr ng thái c s d ng miêu t l i ng x c'ng nh các tr ng thái n i b trong m t l p (nó
c'ng có th c s d ng cho các h th ng con ho c cho toàn b h th ng). Nó t p trung vào khía c nh
các i t ng theo ti n trình th i gian s& thay i các tr ng thái c a chúng ra sao tùy theo nh ng s
ki n x y ra, l i ng x c'ng nh các hành ng c th c hi n trong các tr ng thái, và bao gi thì s
thay i tr ng thái x y ra. M t s ki n có th n ra khi m t i u ki n tr thành c th a mãn, khi
nh n m t tín hi u ho c l nh g#i th t c, ho c là khi m t kho ng th i gian nh tr c qua i.
Bi u tu n t c s d ng miêu t m t nhóm các i t ng s& t ng tác v i nhau trong m t c nh
k ch riêng bi t nh th nào. Nó t p trung vào chu.i thông i p, t c là câu h i các thông i p cg i
và nh n gi a m t nhóm các i t ng nh th nào. Bi u tu n t có hai tr c; tr c d#c ch* th i gian
và tr c n%m ngang ch* ra các i t ng tham gia c nh k ch. Khía c nh quan tr#ng nh!t c a m t bi u
tu n t là th i gian.
Bi u c ng tác c s d ng miêu t các i t ng t ng tác v i nhau trong không gian b nh
(space), có ngh+a là bên c nh các t ng tác ng, nó còn miêu t rõ ràng các i t ng cn ik tv i
nhau nh th nào. Trong bi u c ng tác không có tr c cho th i gian; thay vào ó, các thông i p s&
c ánh s t o chu.i.
Bi u ho t ng c s d ng miêu t s vi c x y ra ra sao, công vi c c th c hi n nh th
nào. Bi u ho t ng c'ng có th c s d ng cho các th t c, các l p, các tr ng h p s d ng, và
c'ng có th c s d ng ch* ra các quy trình nghi p v (workflow).

6.13. Ph n câu h i
H i: Th nào là m t vòng l p?

áp: M t chu i s ki n có th c nh"c i, nh"c l i vô s l n c g#i là vòng l p


(loop).
H i: Mô hình ng chính là mô hình it ng c ng thêm ph n ng x ng c a h th ng

á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.

áp: Sai, m t it ng có th có tr ng thái ban u và tr ng thái k t thúc.


H i: M t vòng i (chu trình) vòng l p c a it ng không có tr ng thái kh i t o c'ng không có
tr ng thái k t thúc

áp: úng, 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.

122

You might also like