1
TÀI LIU MÔN HC PHÂN TÍCH VÀ THIT K HTTT
THEO UML
(ây là tài liu su tm, tng hp)
GING VIÊN PH TRÁCH: NGUYN C CNG
GING VIÊN: TÔN THT HOÀ AN – DNG KIU HOA
(Su tm tng hp)
2
MC LC
CHNG 1: TNG QUAN V PHÂN TÍCH THIT K H THNG 6
1.1. Dn nhp 6
1.1.1. Tính trc quan 6
1.1.2. Mô hình tru tng 6
1.1.3. Mô hình hóa trc quan 6
1.2. Mô t chu trình phát trin phn mm 7
1.2.1. Software Development – mt bài toán phc tp 7
1.2.2. Chu Trình Phát Trin Phn Mm (Software Development Life Cycle) 8
1.2.3. Các giai on ca Chu Trình Phát Trin Phn Mm 9
1.3. Phng pháp hng chc nng và phng pháp hng i tng 13
1.4. u im ca mô hình hng i tng 13
1.4.1. Tính tái s dng (Reusable) 13
1.4.2. Các giai on ca chu trình phát trin phn mm vi mô hình hng i tng 14
1.5. Phn câu hi 16
CHNG 2: NGÔN NG MÔ HÌNH HÓA THNG NHT LÀ GÌ? 17
2.1. Gii thiu UML 17
2.1.1. Mô hình hóa h thng phn mm 17
2.1.2. Trc khi UML ra i 18
2.1.3. S ra i ca UML 18
2.1.4. UML (Unifield Modeling Language) 19
2.1.5. Phng 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 thng 19
2.3. UML và các giai o"n phát trin h thng 20
2.4. Phn câu hi 21
CHNG 3: KHÁI QUÁT V UML 22
3.1. UML và các giai o"n ca chu trình phát trin phn mm 22
3.1.1. Giai on nghiên cu s b 22
3.1.2. Giai on phân tích 22
3.1.3. Giai on thit k 22
3.1.4. Giai on xây dng 22
3.1.5. Th nghim 23
3.2. Các thành phn ca ngôn ng# UML 23
3.3. Hng nhìn (View) 23
3.3.1. Hng nhìn Use case (Use case View) 25
3.3.2. Hng nhìn logic (Logical View) 25
3.3.3. Hng nhìn thành phn (Component View) 25
3.3.4. Hng nhìn song song (Concurrency View) 26
3.3.5. Hng nhìn trin khai (Deployment View) 26
3.4. Biu $ (diagram) 26
3.4.1. Biu Use case (Use Case Diagram) 26
3.4.2. Biu lp (Class Diagram) 27
3.4.3. Biu i tng (Object Diagram) 28
3.4.4. Biu trng thái (State Diagram) 28
3
3.4.5. Biu trình t (Sequence Diagram) 29
3.4.6. Biu cng tác (Collaboration Diagram) 29
3.4.7. Biu hot ng (Activity Diagram) 30
3.4.8. Biu thành phn (Component Diagram) 30
3.4.9. Biu trin khai (Deployment Diagram) 31
3.5. Phn 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 mu (Stereotype) 35
3.7.2. Giá tr ính kèm (Tagged Value) 36
3.7.3. Hn ch (Constraint) 36
3.8. Mô hình hóa vi UML 37
3.9. Công c( (Tool) 40
3.10. Tóm t)t v UML 41
3.11. Phn câu hi 42
CHNG 4: MÔ HÌNH HÓA USE CASE 43
4.1. Gii thiu Use Case 43
4.2. M't s ví d( Use Case 44
4.3. S* cn thi!t phi có Use Case 44
4.4. Mô hình hóa Use Case 45
4.5. Biu $ Use Case 46
4.5.1. H thng 47
4.5.2. Tác nhân 48
4.5.3. Tìm tác nhân 49
4.5.4. Biu din 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 rng 54
4.7.2. Quan h s dng 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 hin các Use Case 61
4.11. Tóm t)t v Use Case 63
4.12. Phn câu hi 63
CHNG 5 : MÔ HÌNH I T+NG 65
5.1. Lp, i tng và quan h – các thành phn c bn ca mô hình 65
5.1.1. i tng (Object) 65
5.1.2. Trng thái, ng x và nhn din ca i tng 65
5.1.3. Lp (Class) 66
4
5.1.4. Biu lp (Class diagram) 67
5.2. Tìm lp 68
5.2.1. Phân tích phm vi bài toán tìm lp 69
5.2.2. Các lp ng c viên 72
5.2.3. Loi b các lp ng c viên không thích hp 73
5.3. Lp và i tng trong UML 74
5.3.1. Tên lp (class name) 74
5.3.2. Thuc tính (attribute) 74
5.3.3. Phng thc (method) 75
5.3.4. Kí hiu i tng 76
5.4. Quan h gi#a các lp 77
5.5. Liên h (Association) 78
5.5.1. Vai trò trong liên h 78
5.5.2. Liên h mt chiu (Uni-Directional Association) 79
5.5.3. S lng (Cardinality) trong liên h 79
5.5.4. Phát hin liên h 80
5.5.5. X lý các liên h không cn thit 80
5.5.6. Nâng c!p các mi liên h 81
5.6. Quan h k!t tp (Aggregation) 85
5.6.1. Khái nim kt tp 85
5.6.2. Kí hiu kt tp 86
5.6.3. Kt tp và liên h 87
5.7. Khái quát hóa và chuyên bit hóa (Generalization & Specialization) 87
5.7.1. Kí hiu khái quát hóa và chuyên bit hóa 88
5.7.2. Yu t phân bit (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 lng mô hình 95
5.10.1. Th nào là mt mô hình tt? 96
5.10.2. Ta có th giao tip vi mô hình? 96
5.10.3. Mô hình có phù hp vi mc ích ca nó không? 96
5.10.4. N"m b"t nhng im tr#ng yu 97
5.10.5. Phi hp các mô hình 97
5.10.6. phc tp ca mô hình 97
5.11. Tóm t)t v mô hình i tng 97
5.12. Phn câu hi 98
CHNG 6 : MÔ HÌNH HÓA .NG 100
6.1. S* cn thi!t có mô hình 'ng (Dynamic Model) 100
6.2. Các thành phn ca mô hình 'ng 100
6.3. u im ca mô hình 'ng 102
6.4. S* kin và thông ip (Event & Message) 103
6.4.1. S kin (Event) 103
6.4.2. Thông ip (Message) 105
6.5. Biu $ tun t* (Sequence Diagram) 106
6.6. Biu $ c'ng tác (Collaboration Diagram) 108
5
6.7. Biu $ tr"ng thái (State Diagram) 109
6.7.1. Trng thái và s bin i trng thái (State transition) 109
6.7.2. Biu trng thái 110
6.7.3. Nhn bit trng thái và s kin 111
6.7.4. Mt s li mách bo cho vic to dng biu trng thái 112
6.8. Biu $ ho"t 'ng (Activity Diagram) 114
6.9. Vòng /i i tng (Object Lifecycle) 117
6.9.1. Vòng i sinh ra và cht i 118
6.9.2. Vòng i lp 118
6.10. Xem xét l"i mô hình 'ng 118
6.10.1. Th$m v!n biu trng thái 118
6.10.2. Phi hp s kin 119
6.10.3. Bao gi thì s dng biu nào 119
6.10.4. Lp con và biu trng thái 120
6.11. Phi hp mô hình i tng và mô hình 'ng 120
6.12. Tóm t)t v mô hình 'ng 121
6.13. Phn câu hi 121
6
CHNG 1: TNG QUAN V PHÂN TÍCH THIT K H THNG
1.1. Dn nhp
1.1.1. Tính trc quan
Chúng ta có th th!y r%ng: "Mt s tp hp d liu phc tp nh!t nh khi c trình bày b%ng th s&
truyn ti n ngi #c nhiu thông tin hn so vi các d liu thô". Vi phn mm c'ng vy, khi
ngành Công nghip ca chúng ta ngày càng phát trin, các h thng s& tr nên phc tp hn. Kh n(ng
n"m b"t và kim soát s phc tp ó ca chúng ta i kèm vi kh n(ng trình bày h thng mt cách
toàn din - mt s trình bày vt ra ngoài gii hn ca nhng dòng lnh thô. S thành công trên th
trng ca nhng ngôn ng nh Visual Basic và phn giao din trc quan ca C++, Java ã cho th!y
s trình bày trc quan mang tính ct yu i vi quá trình phát trin các h thng phc tp.
1.1.2. Mô hình tru tng
Trc ây, có mt thi gian dài, ngành công nghip chúng ta ã phi nói ti mt "Cuc khng hong
phn mm". Các cuc tranh lun u da trên thc t là ch)ng nhng nhiu án phn mm không th
sn sinh ra nhng h thng tho mãn òi h i và nhu cu ca khách hàng, mà còn vt quá ngân sách và
thi hn. Các công ngh mi nh lp trình hng i tng, lp trình trc quan c'ng nh các môi
trng phát trin tiên tin có giúp chúng ta nâng cao n(ng su!t lao ng, nhng trong nhiu trng
hp, chúng ch* hng ti tng th!p nh!t ca vic phát trin phn mm: phn vit lnh (coding). Mt
trong nhng v!n chính ca ngành phát trin phn mm thi nay là có nhiu án b"t tay vào lp
trình quá sm và tp trung quá nhiu vào vic vit code. Lý do mt phn là do ban qun tr thiu hiu
bit v quy trình phát trin phn mm và h# ny lo âu khi th!y i quân lp trình ca h# không vit
code. Và bn thân các lp trình viên c'ng cm th!y an tâm hn khi h# ngi vit code - vn là tác v mà
h# quen thuc! – hn là khi xây dng các mô hình tru tng cho h thng mà h# phi to nên.
1.1.3. Mô hình hóa trc quan
Mô hình hoá trc quan là mt phng thc t duy v v!n s dng các mô hình c t chc xoay
quanh các khái nim i thc. Mô hình giúp chúng ta hiu v!n , giao tip vi m#i ngi có liên quan
n d án (khách hàng, chuyên gia l+nh vc thuc án, nhà phân tích, nhà thit k, …). Mô hình r!t
hu dng trong vic mô hình hoá doanh nghip, son tho tài liu, thit k chng trình c'ng nh ngân
hàng d liu. Mô hình giúp hiu các òi h i ca h thng tt hn, to các thit k rõ ràng hn và xây
dng nên các h thng d bo trì hn.
Mô hình là kt qu ca s tru tng hóa nh%m miêu t các thành phn ct yu ca mt v!n hay mt
c!u trúc phc tp qua vic l#c bt các chi tit không quan tr#ng và làm cho v!n tr thành d hiu
hn. Tru tng hóa là mt n(ng lc c(n bn ca con ngi, cho phép chúng ta gii quyt các v!n
phc tp. Các k, s, ngh s+ và th th công ã xây dng mô hình t hàng ngàn n(m nay th
nghim thit k trc khi thc hin. Phát trin phn mm c'ng không là ngoi l. xây dng các h
thng phc tp, nhà phát trin phi tru tng hóa nhiu hng nhìn khác nhau ca h thng, s dng
ký hiu chính xác xây dng mô hình, kim tra xem mô hình có th a mãn các òi h i ca h thng,
và dn dn b sung thêm chi tit chuyn các mô hình thành thc hin.
Chúng ta xây dng mô hình cho các h thng phc tp bi chúng ta không th hiu th!u áo nhng h
thng nh th trong trng thái toàn v-n ca chúng. Kh n(ng th!u hiu và n"m b"t tính phc tp ca
7
con ngi là có hn. iu này ta có th th!y rõ trong ví d ca ngành xây dng. Nu bn mun to mt
túp lu góc vn, bn có th b"t tay vào xây ngay. Nu bn xây mt ngôi nhà, có l& bn s& cn ti
bn v&, nhng nu bn mun xây mt toà nhà ch#c tri thì ch"c ch"n bn không th không cn bn v&.
Th gii phn mm ca chúng ta c'ng th. Ch* tp trung vào các dòng code hay thm chí c phân tích
Forms trong Visual Basic ch)ng cung c!p mt cái nhìn toàn cc v vic phát trin án. Xây dng mô
hình cho phép nhà thit k tp trung vào bc tranh ln v s tng tác gia các thành phn trong án,
tránh b sa ly vào nhng chi tit riêng bit ca tng thành phn.
Mt môi trng kinh doanh mang tính cnh tranh gay g"t và luôn luôn thay i dn n tính phc tp
ngày càng t(ng cao, và tính phc tp này t ra nhng thách thc c trng cho các nhà phát trin h
thng. Mô hình giúp chúng ta t chc, trình bày trc quan, th!u hiu và to nên các h thng phc tp.
Chúng giúp chúng ta áp ng các thách thc ca vic phát trin phn mm, hôm nay c'ng nh ngày
mai.
1.2. Mô t chu trình phát trin phn mm
1.2.1. Software Development – mt bài toán phc tp
Kinh nghim ca nhiu nhà thit k và phát trin cho th!y phát trin phn mm là mt bài toán phc
tp. Xin nêu mt s các lý do thng c k n:
Nhng ngi phát trin phn mm r!t khó hiu cho úng nhng gì ngi dùng cn
Yêu cu ca ngi dùng thng thay i trong thi gian phát trin.
Yêu cu thng c miêu t b%ng v(n bn, dài dòng, khó hiu, nhiu khi thm chí
mâu thun.
i quân phát trin phn mm, vn là ngi "ngoài cuc", r!t khó nhn thc th!u áo
các mi quan h tim $n và phc tp cn c th hin chính xác trong các ng dng
ln.
Kh n(ng n"m b"t các d liu phc tp ca con ngi (ti cùng mt thi im) là có
hn.
Khó nh lng chính xác hiu su!t ca thành ph$m và th a mãn chính xác s mong
ch t phía ngi dùng.
Ch#n la phn cng và phn mm thích hp cho gii pháp là mt trong nhng thách
thc ln i vi Designer.
Phn mm ngoài ra cn có kh n(ng thích ng và m rng. Phn mm c thit k tt là phn mm
ng vng trc nhng bin i trong môi trng, dù t phía cng ng ngi dùng hay t phía công
ngh. Ví d phn mm ã c phát trin cho mt nhà b(ng cn có kh n(ng tái s dng cho mt nhà
b(ng khác vi r!t ít sa i hoc hoàn toàn không cn sa i. Phn mm tho mãn các yêu cu ó
c coi là phn mm có kh n(ng thích ng.
Mt phn mm có kh n(ng m rng là phn mm c thit k sao cho d phát trin theo yêu cu ca
ngi dùng mà không cn sa cha nhiu.
Chính vì vy, mt s các khim khuyt thng gp trong phát trin phn mm là:
8
Hiu không úng nhng gì ngi dùng cn
Không th thích ng cho phù hp vi nhng thay i v yêu cu i vi h thng
Các Module không khp vi nhau
Phn mm khó bo trì và nâng c!p, m rng
Phát hin tr các l. hng ca d án
Ch!t lng phn mm kém
Hiu n(ng ca phn mm th!p
Các thành viên trong nhóm không bit c ai ã thay i cái gì, khi nào, âu, ti sao
phi thay i.
1.2.2. Chu Trình Phát Trin Phn Mm (Software Development Life Cycle)
Vì phát trin phn mm là mt bài toán khó, nên có l& trc ht ta cn im qua mt s các công vic
c(n bn ca quá trình này. Thng ngi ta hay tp hp chúng theo tin trình thi gian mt cách tng
i, xoay quanh chu trình ca mt phn mm, dn ti kt qa khái nim Chu Trình Phát Trin Phn
Mm (Software Development Life Cycle - SDLC) nh sau:
Chu Trình Phát Trin Phn Mm là mt chu.i các hot ng ca nhà phân tích (Analyst), nhà thit k
(Designer), ngi phát trin (Developer) và ngi dùng (User) phát trin và thc hin mt h thng
thông tin. Nhng hot ng này c thc hin trong nhiu giai #an khác nhau.
Nhà phân tích (Analyst): là ngi nghiên cu yêu cu ca khách hàng/ngi dùng nh
ngh+a mt phm vi bài toán, nhn dng nhu cu ca mt t chc, xác nh xem nhân lc,
phng pháp và công ngh máy tính có th làm sao ci thin mt cách tt nh!t công tác ca
t chc này.
Nhà thi!t k! (Designer): thit k h thng theo hng c!u trúc ca database, screens, forms
và reports – quyt nh các yêu cu v phn cng và phn mm cho h thng cn c phát
trin.
Chuyên gia l0nh v*c (Domain Experts): là nhng ngi hiu thc ch!t v!n cùng t!t c
nhng s phc tp ca h thng cn tin h#c hoá. H# không nh!t thit phi là nhà lp trình,
nhng h# có th giúp nhà lp trình hiu yêu cu t ra i vi h thng cn phát trin. Quá trình
phát trin phn mm s& có r!t nhiu thun li nu i ng' làm phn mm có c s tr giúp
ca h#.
Lp trình viên (Programmer): là nhng ngi da trên các phân tích và thit k vit
chng trình (coding) cho h thng b%ng ngôn ng lp trình ã c thng nh!t.
Ng/i dùng (User): là i tng phc v ca h thng cn c phát trin.
cho rõ hn, xin l!y ví d v mt v!n n gin sau:
Ngi bình thng chúng ta khi nhìn mt chic xe ô tô thng s& có mt bc tranh t bên ngoài nh
sau:
9
V,n
Hình 1.1: Nhìn v!n ô tô ca ngi bình thng
Chuyên gia l+nh vc s& giúp nhà phân tích "trình bày li" v!n nh sau:
Hình 1.2: Nhìn v!n ô tô ca chuyên gia phân tích
Chính vì s tr giúp ca chuyên gia l+nh vc có th óng vai trò r!t quan tr#ng nên trong nhng giai
on u ca quá trình phát trin phn mm, kt qu phân tích nên c th hin sao cho d hiu i
vi các chuyên gia l+nh vc. ây c'ng là môt trong r!t nhiu lý do khin cho phng pháp hng i
tng c nhiu ngi hng ng.
1.2.3. Các giai on ca Chu Trình Phát Trin Phn Mm
Chu trình ca mt phn mm có th c chia thành các giai on nh sau:
Nghiên cu s b (Preliminary Investigation hay còn g#i là Feasibility Study)
Phân tích yêu cu (Analysis)
Thit k h thng (Design of the System)
Xây dng phn mm (Software Construction)
Th nghim h thng (System Testing)
Thc hin, trin khai (System Implementation)
Bo trì, nâng c!p (System Maintenance)
a) Nghiên cu s b':
Câu h i quan tr#ng nh!t khi phát trin mt h thng hoàn toàn không phi câu h i mang tính phng
pháp lun. Mà c'ng ch)ng phi câu h i v k, thut. Nó là mt câu h i dng nh có v/ n gin,
10
nhng tht ra c bit khó tr li: “ây có úng là mt h thng thc hin không?” áng bun là
chính câu h i này trong thc t thng ch)ng h c t ra và li càng không c tr li. Mc dù
vic lm ln v phng pháp hay quyt nh sai lm v k, thut c'ng có th dn ti th!t bi, nhng
thng thì d án có th c cu vãn nu có y tài nguyên cùng s c g"ng quên mình ca các
nhân viên tài gi i. Nhng s& ch)ng mt ai và mt iu gì cu vãn cho mt h thng phn mm hoàn
toàn ch)ng c cn ti hoc c g"ng t ng hóa mt quy trình lm lc.
Trc khi b"t tay vào mt d án, bn phi có mt ý tng cho nó. Ý tng này i song song vi vic
n"m b"t các yêu cu và xu!t hin trong giai on khi u. Nó hoàn t!t mt phát biu: "H thng mà
chúng ta mong mun s& làm c nhng vic nh sau ". Trong sut giai on này, chúng ta to nên
mt bc tranh v ý tng ó, r!t nhiu gi thuyt s& c công nhn hay loi b . Các hot ng trong
thi gian này thng bao gm thu thp các ý tng, nhn bit ri ro, nhn bit các giao din bên ngoài,
nhn bit các các chc n(ng chính mà h thng cn cung c!p, và có th to mt vài nguyên mu dùng
“minh chng các khái nim ca h thng”. Ý tng có th n t nhiu ngun khác nhau: khách
hàng, chuyên gia l+nh vc, các nhà phát trin khác, chuyên gia v k, ngh, các bn nghiên cu tính kh
thi c'ng nh vic xem xét các h thng khác ang tn ti. Mt khía cnh cn nh"c ti là code vit trong
thi k0 này thng s& b "b i”, bi chúng c vit nh%m mc ích th$m tra hay tr giúp các gi
thuyt khác nhau, ch cha phi th code c vit theo kt qu phân tích và thit k th!u áo.
Trong giai #an nghiên cu s b, nhóm phát trin h thng cn xem xét các yêu cu ca doanh nghip
(cn dùng h thng), nhng ngun tài nguyên có th s dng, công ngh c'ng nh cng ng ngi
dùng cùng các ý tng ca h# i vi h thng mi. Có th thc hin tho lun, nghiên cu, xem xét
khía cnh thng mi, phân tích kh n(ng li-l., phân tích các trng hp s dng và to các nguyên
mu xây dng nên mt khái nim cho h thng ích cùng vi các mc ích, quyn u tiên và phm
vi ca nó.
Thng trong giai on này ngi ta c'ng tin hành to mt phiên bn thô ca lch trình và k hoch
s dng tài nguyên.
Mt giai on nghiên cu s b thích áng s& lp nên tp hp các yêu cu (dù mc khái quát cao)
i vi mt h thng kh thi và c mong mun, k c v phng din k, thut ln xã hi. Mt giai
on nghiên cu s b không c thc hin tho áng s& dn ti các h thng không c mong
mun, "t tin, b!t kh thi và c nh ngh+a lm lc – nhng h thng thng ch)ng c hoàn t!t
hay s dng.
Kt qu ca giai on nghiên cu s b là Báo Cáo Kt Qu Nghiên Cu Tính Kh Thi. Khi h thng
tng lai c ch!p nhn da trên bn báo cáo này c'ng là lúc giai on Phân tích b"t u.
b) Phân tích yêu cu:
Sau khi ã xem xét v tính kh thi ca h thng c'ng nh to lp mt bc tranh s b ca d án, chúng
ta bc sang giai on thng c coi là quan tr#ng nh!t trong các công vic lp trình: hiu h thng
cn xây dng. Ngi thc hin công vic này là nhà phân tích.
Quá trình phân tích nhìn chung là h qu ca vic tr li câu h i "H thng cn phi làm gì?". Quá
trình phân tích bao gm vic nghiên cu chi tit h thng doanh nghip hin thi, tìm cho ra nguyên lý
hot ng ca nó và nhng v trí có th c nâng cao, ci thin. Bên cnh ó là vic nghiên cu xem
xét các chc n(ng mà h thng cn cung c!p và các mi quan h ca chúng, bên trong c'ng nh vi
phía ngoài h thng. Trong toàn b giai on này, nhà phân tích và ngi dùng cn cng tác mt thit
vi nhau xác nh các yêu cu i vi h thng, tc là các tính n(ng mi cn phi c a vào h
thng.
11
Nhng mc tiêu c th ca giai on phân tích là:
Xác nh h thng cn phi làm gì.
Nghiên cu th!u áo t!t c các chc n(ng cn cung c!p và nhng yu t liên quan
Xây dng mt mô hình nêu bt bn ch!t v!n t mt hng nhìn có thc (trong i
sng thc).
Trao nh ngh+a v!n cho chuyên gia l+nh vc nhn s ánh giá, góp ý.
Kt qu ca giai on phân tích là bn c T Yêu Cu (Requirements Specifications).
c) Thi!t k! h thng:
Sau giai on phân tích, khi các yêu cu c th i vi h thng ã c xác nh, giai on tip theo
là thit k cho các yêu cu mi. Công tác thit k xoay quanh câu h i chính: H thng làm cách nào
th a mãn các yêu cu ã c nêu trong c T Yêu Cu?
Mt s các công vic thng c thc hin trong giai on thit k:
Nhn bit form nhp liu tùy theo các thành phn d liu cn nhp.
Nhn bit reports và nhng output mà h thng mi phi sn sinh
Thit k forms (v& trên gi!y hay máy tính, s dng công c thit k)
Nhn bit các thành phn d liu và bng to database
1c tính các th tc gii thích quá trình x lý t input n output.
Kt qu giai on thit k là c T Thit K (Design Specifications). Bn c T Thit K Chi Tit
s& c chuyn sang cho các lp trình viên thc hin giai on xây dng phn mm.
d) Xây d*ng phn mm:
ây là giai on vit lnh (code) thc s, to h thng. Tng ngi vit code thc hin nhng yêu cu
ã c nhà thit k nh s2n. C'ng chính ngi vit code chu trách nhim vit tài liu liên quan n
chng trình, gii thích th tc (procedure) mà anh ta to nên c vit nh th nào và lý do cho vic
này.
m bo chng trình c vit nên phi tho mãn m#i yêu cu có ghi trc trong bn c T
Thit K Chi Tit, ngi vit code c'ng ng thi phi tin hành th nghim phn chng trình ca
mình. Phn th nghim trong giai on này có th c chia thành hai bc chính:
+ Th% nghim n v1: Ngi vit code chy th các phn chng trình ca mình vi d liu
gi (test/dummy data). Vic này c thc hin theo mt k hoch th, c'ng do chính ngi
vit code son ra. Mc ích chính trong giai on th này là xem chng trình có cho ra nhng
kt qu mong i. Giai on th nghim n v nhiu khi c g#i là "Th hp tr"ng" (White
Box Testing).
+ Th% nghim n v1 'c lp: Công vic này do mt thành viên khác trong nhóm m trách.
Cn ch#n ngi không có liên quan trc tip n vic vit code ca n v chng trình cn th
12
nghim m bo tính “c lp”. Công vic th t này c'ng c thc hin da trên k
hoch th do ngi vit code son nên.
e) Th% nghim h thng:
Sau khi các th tc ã c th nghim riêng, cn phi th nghim toàn b h thng. M#i th tc c
tích hp và chy th, kim tra xem m#i chi tit ghi trong c T Yêu Cu và nhng mong ch ca
ngi dùng có c tho mãn. D liu th cn c ch#n l#c c bit, kt qu cn c phân tích
phát hin m#i lch lc so vi mong ch.
f) Th*c hin, trin khai:
Trong giai on này, h thng va phát trin s& c trin khai sao cho phía ngi dùng. Trc khi
ngi dùng tht s b"t tay vào s dng h thng, nhóm các nhà phát trin cn to các file d liu cn
thit c'ng nh hu!n luyn cho ngi dùng, m bo h thng c s dng hu hiu nh!t.
g) Bo trì, nâng c,p:
Tùy theo các bin i trong môi trng s dng, h thng có th tr nên l.i thi hay cn phi c sa
i nâng c!p s dng có hiu qu. Hot ng bo trì h thng có th r!t khác bit tùy theo mc
sa i và nâng c!p cn thit.
S $ tng quát các giai o"n ca Chu Trình Phát Trin Phn Mm:
Hình 1.3: S tng quát các giai on ca Chu Trình Phát Trin Phn Mm
13
1.3. Phng pháp hng chc nng và phng pháp hng i tng
1.3.1. Phng pháp hng chc nng
ây là li tip cn truyn thng ca ngành Công ngh phn mm. Theo li tip cn này, chúng ta quan
tâm ch yu ti nhng thông tin mà h thng s& gi gìn. Chúng ta h i ngi dùng xem h# s& cn nhng
thông tin nào, ri chúng ta thit k ngân hàng d liu cha nhng thông tin ó, cung c!p Forms
nhp thông tin và in báo cáo trình bày các thông tin. Nói mt cách khác, chúng ta tp trung vào
thông tin và không m!y ý n nhng gì có th xy ra vi nhng h thng ó và cách hot ng (ng
x) ca h thng là ra sao. ây là li tim cn xoay quanh d liu và ã c áp dng to nên hàng
ngàn h thng trong sut nhiu n(m tri.
Li tip cn xoay quanh d liu là phng pháp tt cho vic thit k ngân hàng d liu và n"m b"t
thông tin, nhng nu áp dng cho vic thit k ng dng li có th khin phát sinh nhiu khó kh(n. Mt
trong nhng thách thc ln là yêu cu i vi các h thng thng xuyên thay i. Mt h thng xoay
quanh d liu có th d dàng x lý vic thay i ngân hàng d liu, nhng li khó thc thi nhng thay
i trong nguyên t"c nghip v hay cách hot ng ca h thng.
Phng pháp hng i tng ã c phát trin tr li cho v!n ó. Vi li tip cn hng i
tng, chúng ta tp trung vào c hai mt ca v!n : thông tin và cách hot ng.
1.3.2. Phng pháp hng i tng
Hng i tng là thut ng thông dng hin thi ca ngành công nghip phn mm. Các công ty
ang nhanh chóng tìm cách áp dng và tích hp công ngh mi này vào các ng dng ca h#. Tht s
là a phn các ng dng hin thi u mang tính hng i tng. Nhng hng i tng có ngh+a là
gì?
Li tip cn hng i tng là mt li t duy v v!n theo li ánh x các thành phn trong bài toán
vào các i tng ngoài i thc. Vi li tip cn này, chúng ta chia ng dng thành các thành phn
nh , g#i là các i tng, chúng tng i c lp vi nhau. Sau ó ta có th xây dng ng dng b%ng
cách ch"p các i tng ó li vi nhau. Hãy ngh+ n trò chi xây lâu ài b%ng các mu g Bc u
tiên là to hay mua mt vài loi mu g. c(n bn, t ó to nên các khi xây dng c(n bn ca mình.
Mt khi ã có các khi xây dng ó, bn có th ch"p ráp chúng li vi nhau to lâu ài. Tng t
nh vy mt khi ã xây dng mt s i tng c(n bn trong th gii máy tính, bn có th ch"p chúng
li vi nhau to ng dng ca mình.
Xin l!y mt ví d n gin: v!n rút tin mt ti nhà b(ng. Các “mu g.“ thành phn ây s& là ánh
x ca các i tng ngoài i thc nh tài khon, nhân viên, khách hàng, …Và ng dng s& c s&
c nhn din c'ng nh gii áp xoay quanh các i tng ó.
1.4. u im ca mô hình hng i tng
1.4.1. Tính tái s dng (Reusable)
Phng pháp phân tích và thit k hng i tng thc hin theo các thut ng và khái nim ca
phm vi l+nh vc ng dng (tc là ca doanh nghip hay n v mà h thng tng lai cn phc v),
nên nó to s tip cn tng ng gia h thng và v!n thc ngoài i. Trong ví d bán xe ô tô, m#i
giai on phân tích thit k và thc hin u xoay quanh các khái nim nh khách hàng, nhân viên bán
hàng, xe ô tô, … Vì quá trình phát trin phn mm ng thi là quá trình cng tác ca khách
14
hàng/ngi dùng, nhà phân tích, nhà thit k, nhà phát trin, chuyên gia l+nh vc, chuyên gia k, thut,
nên li tip cn này khin cho vic giao tip gia h# vi nhau c d dàng hn.
Mt trong nhng u im quan tr#ng bc nh!t ca phng pháp phân tích và thit k hng i tng
là tính tái s dng: bn có th to các thành phn (i tng) mt ln và dùng chúng nhiu ln sau ó.
Ging nh vic bn có th tái s dng các khi xây dng (hay bn sao ca nó ) trong mt toà lâu ài,
mt ngôi nhà , mt con tàu v' tr, bn c'ng có th tái s dng các thành phn (i tng) c(n bn
trong các thit k hng i tng c'ng nh code ca mt h thng k toán, h thng kim kê, hoc
mt h thng t hàng.
Vì các i tng ã c th nghim k, càng trong ln dùng trc ó, nên kh n(ng tái s dng i
tng có tác dng gim thiu l.i và các khó kh(n trong vic bo trì, giúp t(ng tc thit k và phát
trin phn mm.
Phng pháp hng i tng giúp chúng ta x lý các v!n phc tp trong phát trin phn mm và
to ra các th h phn mm có kh n(ng thích ng và bn ch"c.
1.4.2. Các giai on ca chu trình phát trin phn mm vi mô hình hng i tng
Phân tích hng i tng (Object Oriented Analysis - OOA):
Là giai #an phát trin mt mô hình chính xác và súc tích ca v!n , có thành phn là các i tng
và khái nim i thc, d hiu i vi ngi s dng.
Trong giai on OOA, v!n c trình bày b%ng các thut ng tng ng vi các i tng có thc.
Thêm vào ó, h thng cn phi c nh ngh+a sao cho ngi không chuyên Tin h#c có th d dàng
hiu c.
Da trên mt v!n có s2n, nhà phân tích cn ánh x các i tng hay thc th có thc nh khách
hàng, ô tô, ngi bán hàng, … vào thit k to ra c bn thit k gn cn vi tình hung thc. Mô
hình thit k s& cha các thc th trong mt v!n có thc và gi nguyên các mu hình v c!u trúc,
quan h c'ng nh hành vi ca chúng. Nói mt cách khác, s dng phng pháp hng i tng chúng
ta có th mô hình hóa các thc th thuc mt v!n có thc mà vn gi c c!u trúc, quan h c'ng
nh hành vi ca chúng.
i vi ví d mt phòng bán ô tô, giai on OOA s& nhn bit c các thc th nh:
Khách hàng
Ngi bán hàng
Phiu t hàng
Phiu (hoá n) thanh toán
Xe ô tô
Tng tác và quan h gia các i tng trên là:
Ngi bán hàng dn khách hàng tham quan phòng trng bày xe.
Khách hàng ch#n mt chic xe
15
Khách hàng vit phiu t xe
Khách hàng tr tin xe
Xe ô tô c giao n cho khách hàng
i vi ví d nhà b(ng l/, giai on OOA s& nhn bit c các thc th nh:
Loi tài khon: ATM (rút tin t ng), Savings (tit kim), Current (bình thng),
Fixed (u t),
Khách hàng
Nhân viên
Phòng máy tính.
Tng tác và quan h gia các i tng trên:
Mt khách hàng mi m mt tài khon tit kim
Chuyn tin t tài khon tit kim sang tài khon u t
Chuyn tin t tài khon tit kim sang tài khon ATM
Xin chú ý là ây, nh ã nói, ta chú ý n c hai khía cnh: thông tin và cách hot ng ca h thng
(tc là nhng gì có th xy ra vi nhng thông tin ó).
Li phân tích b%ng kiu ánh x "i thc” vào máy tính nh th tht s là u im ln ca phng
pháp hng i tng.
Thi!t k! hng i tng (Object Oriented Design - OOD):
Là giai on t chc chng trình thành các tp hp i tng cng tác, m.i i tng trong ó là thc
th ca mt lp. Các lp là thành viên ca mt cây c!u trúc vi mi quan h tha k.
Mc ích ca giai on OOD là to thit k da trên kt qu ca giai on OOA, da trên nhng quy
nh phi chc n(ng, nhng yêu cu v môi trng, nhng yêu cu v kh n(ng thc thi, OOD tp
trung vào vic ci thin kt qu ca OOA, ti u hóa gii pháp ã c cung c!p trong khi vn m
bo tho mãn t!t c các yêu cu ã c xác lp.
Trong giai on OOD, nhà thit k nh ngh+a các chc n(ng, th tc (operations), thuc tính
(attributes) c'ng nh mi quan h ca mt hay nhiu lp (class) và quyt nh chúng cn phi c
iu ch*nh sao cho phù hp vi môi trng phát trin. ây c'ng là giai on thit k ngân hàng d
liu và áp dng các k, thut tiêu chu$n hóa.
V cui giai on OOD, nhà thit k a ra mt lot các biu (diagram) khác nhau. Các biu này
có th c chia thành hai nhóm chính là T+nh và ng. Các biu t+nh biu th các lp và i tng,
trong khi biu ng biu th tng tác gia các lp và phng thc hot ng chính xác ca chúng.
Các lp ó sau này có th c nhóm thành các gói (Packages) tc là các n v thành phn nh hn
ca ng dng.
Lp trình hng i tng (Object Oriented Programming - OOP):
16
Giai on xây dng phn mm có th c thc hin s dng k, thut lp trình hng i tng. ó là
phng thc thc hin thit k hng i tng qua vic s dng mt ngôn ng lp trình có h. tr các
tính n(ng hng i tng. Mt vài ngôn ng hng i tng thng c nh"c ti là C++ và Java.
Kt qu chung cuc ca giai on này là mt lot các code chy c, nó ch* c a vào s dng
sau khi ã tri qua nhiu vòng quay ca nhiu bc th nghim khác nhau.
1.5. Phn câu hi
Hi: Mt s tp hp d liu phc tp nh!t nh khi c trình bày b%ng th s& truyn ti n
ngi #c nhiu thông tin hn so vi các d liu thô?
áp: úng
Hi: Mô hình giúp chúng ta t chc, trình bày trc quan, th!u hiu và to nên các h thng phc tp.
áp: úng
Hi: 1u im ln nh!t ca mô hình hng i tng là tính tái s dng (Reusable)?
áp: úng.
17
CHNG 2: NGÔN NG MÔ HÌNH HÓA THNG NHT LÀ GÌ?
2.1. Gii thiu UML
2.1.1. Mô hình hóa h thng phn mm
Nh ã trình bày phn trc, mc tiêu ca giai on phân tích h thng là sn xu!t ra mt mô hình
tng th ca h thng cn xây dng. Mô hình này cn phi c trình bày theo hng nhìn (View) ca
khách hàng hay ngi s dng và làm sao h# hiu c. Mô hình này c'ng có th c s dng
xác nh các yêu cu ca ngi dùng i vi h thng và qua ó giúp chúng ta ánh giá tính kh thi
ca d án.
Tm quan tr#ng ca mô hình ã c l+nh hi mt cách th!u áo trong hu nh t!t c các ngành khoa
h#c k, thut t nhiu th k3 nay. B!t k0 âu, khi mun xây dng mt vt th nào ó, u tiên ngi
ta ã to nên các bn v& quyt nh c ngoi hình ln phng thc hot ng ca nó. Ch)ng hn các
bn v& k, thut thng gp là mt dng mô hình quen thuc. Mô hình nhìn chung là mt cách mô t
ca mt vt th nào ó. Vt ó có th tn ti trong mt s giai on nh!t nh, dù ó là giai on thit
k hay giai on xây dng hoc ch* là mt k hoch. Nhà thit k cn phi to ra các mô hình mô t t!t
c các khía cnh khác nhau ca sn ph$m. Ngoài ra, mt mô hình có th c chia thành nhiu hng
nhìn, m.i hng nhìn trong s chúng s& mô t mt khía cnh riêng bit ca sn ph$m hay h thng cn
c xây dng. Mt mô hình c'ng có th c xây dng trong nhiu giai on và m.i giai on, mô
hình s& c b sung thêm mt s chi tit nh!t nh.
Mô hình thng c mô t trong ngôn ng trc quan, iu ó có ngh+a là a phn các thông tin c
th hin b%ng các ký hiu h#a và các kt ni gia chúng, ch* khi cn thit mt s thông tin mi c
biu din dng v(n bn; Theo úng nh câu ngn ng "Mt bc tranh nói nhiu hn c ngàn t". To
mô hình cho các h thng phn mm trc khi thc s xây dng nên chúng, ã tr thành mt chu$n
mc trong vic phát trin phn mm và c ch!p nhn trong cng ng làm phn mm ging nh
trong b!t k0 mt ngành khoa h#c k, thut nào khác. Vic biu din mô hình phi thoã mãn các yu t
sau:
Chính xác (accurate): Mô t úng h thng cn xây dng.
ng nh!t (consistent): Các view khác nhau không c mâu thu$n vi nhau.
Có th hiu c (understandable): Cho nhng ngi xây dng ln s dng
D thay i (changeable)
D dàng liên lc vi các mô hình khác.
Có th nói thêm r%ng mô hình là mt s n gin hoá hin thc. Mô hình c xây dng nên chúng
ta d dàng hiu và hiu tt hn h thng cn xây dng. To mô hình s& giúp cho chúng ta hiu th!u áo
mt h thng phc tp trong s toàn th ca nó.
Nói tóm li, mô hình hóa mt h thng nh%m mc ích:
Hình dung mt h thng theo thc t hay theo mong mun ca chúng ta .
18
Ch* rõ c!u trúc hoc ng x ca h thng.
To mt khuôn mu hng dn nhà phát trin trong sut quá trình xây dng h thng.
Ghi li các quyt nh ca nhà phát trin s dng sau này.
2.1.2. Trc khi UML ra i
u nhng n(m 1980, ngành công ngh phn mm ch* có duy nh!t mt ngôn ng hng i tng là
Simula. Sang na sau ca thp k3 1980, các ngôn ng hng i tng nh Smalltalk và C++ xu!t
hin. Cùng vi chúng, ny sinh nhu cu mô hình hoá các h thng phn mm theo hng i tng. Và
mt vài trong s nhng ngôn ng mô hình hoá xu!t hin nhng n(m u thp k3 90 c nhiu ngi
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 phng pháp lun và ngôn ng trên u có h thng ký hiu riêng, phng pháp x lý riêng và
công c h. tr riêng, khin ny ra cuc tranh lun phng pháp nào là tt nh!t. ây là cuc tranh lun
khó có câu tr li, bi t!t c các phng pháp trên u có nhng im mnh và im yu riêng. Vì th,
các nhà phát trin phn mm nhiu kinh nghim thng s dng phi hp các im mnh ca m.i
phng pháp cho ng dng ca mình. Trong thc t, s khác bit gia các phng pháp ó hu nh
không áng k và theo cùng tin trình thi gian, t!t c nhng phng pháp trên ã tim cn li và b
sung ln cho nhau. Chính hin thc này ã c nhng ngi tiên phong trong l+nh vc mô hình hoá
hng i tng nhn ra và h# quyt nh ngi li cùng nhau tích hp nhng im mnh ca m.i
phng pháp và a ra mt mô hình thng nh!t cho l+nh vc công ngh phn mm.
2.1.3. S ra i ca UML
Trong bi cnh trên, ngi ta nhn th!y cn thit phi cung c!p mt phng pháp tim cn c chu$n
hoá và thng nh!t cho vic mô hình hoá hng i tng. Yêu cu c th là a ra mt tp hp chu$n
hoá các ký hiu (Notation) và các biu (Diagram) n"m b"t các quyt nh v mt thit k mt
cách rõ ràng, rành mch. ã có ba công trình tiên phong nh"m ti mc tiêu ó, chúng c thc hin
di s lãnh o ca James Rumbaugh, Grady Booch và Ivar Jacobson. Chính nhng c g"ng này dn
n kt qu là xây dng c mt Ngôn Ng Mô Hình Hoá Thng Nh!t (Unifield Modeling Language
– UML).
UML là mt ngôn ng mô hình hoá thng nh!t có phn chính bao gm nhng ký hiu hình h#c, c
các phng pháp hng i tng s dng th hin và miêu t các thit k ca mt h thng. Nó là
mt ngôn ng c t, trc quan hoá, xây dng và làm su liu cho nhiu khía cnh khác nhau ca
mt h thng có nng phn mm cao. UML có th c s dng làm công c giao tip gia ngi
dùng, nhà phân tích, nhà thit k và nhà phát trin phn mm.
19
Trong quá trình phát trin có nhiu công ty ã h. tr và khuyn khích phát trin UML có th k ti nh
: Hewlett Packard, Microsoft, Oracle, IBM, Unisys.
2.1.4. UML (Unifield Modeling Language)
Ngôn ng mô hình hóa thng nh!t (Unifield Modeling Language – UML) là mt ngôn ng biu din
mô hình theo hng i tng c xây dng bi ba tác gi trên vi ch ích là:
Mô hình hoá các h thng s dng các khái nim hng i tng.
Thit lp mt kt ni t nhn thc ca con ngi n các s kin cn mô hình hoá.
Gii quyt v!n v mc tha k trong các h thng phc tp, có nhiu ràng buc
khác nhau.
To mt ngôn ng mô hình hoá có th s dng c bi ngi và máy.
2.1.5. Phng pháp và các ngôn ng mô hình hoá
Phng pháp hay phng thc (method) là mt cách trc tip c!u trúc hoá s suy ngh+ và hành ng
ca con ngi. Phng pháp cho ngi s dng bit phi làm gì, làm nh th nào, khi nào và ti sao
(mc ích ca hành ng). Phng pháp cha các mô hình (model), các mô hình c dùng mô t
nhng gì s dng cho vic truyn t kt qu trong quá trình s dng phng pháp. im khác nhau
chính gia mt phng pháp và mt ngôn ng mô hình hoá (modeling language) là ngôn ng mô hình
hoá không có mt tin trình (process) hay các câu lnh (instruction) mô t nhng công vic ngi s
dng cn làm.
Mt mô hình c biu din theo mt ngôn ng mô hình hoá. Ngôn ng mô hình hoá bao gm các ký
hiu – nhng biu tng c dùng trong mô hình – và mt tp các quy t"c ch* cách s dng chúng.
Các quy t"c này bao gm:
Syntactic (Cú pháp): cho bit hình dng các biu tng và cách kt hp chúng trong
ngôn ng.
Semantic (Ng ngh+a): cho bit ý ngh+a ca m.i biu tng, chúng c hiu th nào
khi n%m trong hoc không n%m trong ng cnh ca các biu tng khác.
Pragmatic : nh ngh+a ý ngh+a ca biu tng sao cho mc ích ca mô hình c
th hin và m#i ngi có th hiu c.
2.2. UML trong phân tích thi!t k! h thng
UML có th c s dng trong nhiu giai on, t phát trin, thit k cho ti thc hin và bo trì. Vì
mc ích chính ca ngôn ng này là dùng các biu hng i tng mô t h thng nên min
ng dng ca UML bao gm nhiu loi h thng khác nhau nh:
H thng thng tin (Information System): C!t gi, l!y, bin i biu din thông tin cho
ngi s dng. X lý nhng khong d liu ln có các quan h phc tp , mà chúng c lu
tr trong các c s d liu quan h hay hng i tng .
20
H thng k2 thut (Technical System): X lý và iu khin các thit b k, thut nh vin
thông, h thng quân s, hay các quá trình công nghip. ây là loi thit b phi x lý các giao
tip c bit , không có phn mm chu$n và thng là các h thng thi gian thc (real time).
H thng nhúng (Embeded System): Thc hin trên phn cng g"n vào các thit b nh in
thoi di ng, iu khin xe hi, … iu này c thc hin b%ng vic lp trình mc th!p vi
h. tr thi gian thc. Nhng h thng này thng không có các thit b nh màn hình +a cng,
…
H thng phân b ( Distributed System): c phân b trên mt s máy cho phép truyn d
liu t ni này n ni khác mt cách d dàng. Chúng òi h i các c ch liên lc ng b
m bo toàn v-n d liu và thng c xây dng trên mt s các k, thut i tng nh
CORBA, COM/DCOM, hay Java Beans/RMI.
H thng Giao d1ch (Business System): Mô t mc ích, tài nguyên (con ngi, máy tính,
…), các quy t"c (lut pháp, chin thut kinh doanh, c ch, …), và công vic hot ng kinh
doanh.
Phn mm h thng (System Software): nh ngh+a c s h tng k, thut cho phn mm
khác s dng, ch)ng hn nh h iu hành, c s d liu, giao din ngi s dng.
2.3. UML và các giai o"n phát trin h thng
Preliminary Investigation: use cases th hin các yêu cu ca ngi dùng. Phn miêu t use
case xác nh các yêu cu, phn diagram th hin mi quan h và giao tip vi h thng.
Analysis: Mc ích chính ca giai #an này là tru tng hóa và tìm hiu các c c!u có
trong phm vi bài toán. Class diagrams trên bình din tru tng hóa các thc th ngoài i
thc c s dng làm rõ s tn ti c'ng nh mi quan h ca chúng. Ch* nhng lp (class)
n%m trong phm vi bài toán mi áng quan tâm.
Design: Kt qu phn analysis c phát trin thành gii pháp k, thut. Các lp c mô
hình hóa chi tit cung c!p h tng k, thut nh giao din, nn tng cho database, … Kt qu
phn Design là các c t chi tit cho giai on xây dng phn mm.
Development: Mô hình Design c chuyn thành code. Programmer s dng các UML
diagrams trong giai on Design hiu v!n và to code.
Testing: S dng các UML diagrams trong các giai on trc. Có 4 hình thc kim tra h
thng:
Unit testing (class diagrams & class specifications) : kim tra tng n th,
c dùng kim tra các lp hay các nhóm n th.
Integration testing (integration diagrams & collaboration diagrams) : kim tra
tích hp là kim tra kt hp các component vi các lp xem chúng hot ng
vi nhau có úng không.
System testing (use-case diagrams) : kim tra xem h thng có áp ng c
chc n(ng mà ngi s dng yêu cu hay không.
21
Acceptance testing: Kim tra tính ch!p nhn c ca h thng, thng c
thc hin bi khách hàng, vic kim tra này thc hin tng t nh kim tra h
thng.
2.4. Phn câu hi
Hi: UML (Unifield Modeling Language) là gì?
áp: Ngôn ng mô hình hóa thng nh!t – UML là mt ngôn ng biu din mô hình theo
hng i tng.
Hi: im khác nhau c bn gia phng pháp (method) và mt ngôn ng mô hình hoá (modeling
language) là gì?
áp: im khác nhau c bn gia mt phng pháp và mt ngôn ng mô hình hoá là ngôn
ng mô hình hoá không có mt tin trình (process) hay các câu lnh (instruction) mô t nhng
công vic ngi s dng cn làm mà nó bao gm các ký hiu – nhng biu tng c dùng
trong mô hình – và mt tp các quy t"c ch* cách s dng chúng.
22
CHNG 3: KHÁI QUÁT V UML
3.1. UML và các giai o"n ca chu trình phát trin phn mm
3.1.1. Giai on nghiên cu s b
UML a ra khái nim Use Case n"m b"t các yêu cu ca khách hàng (ngi s dng). UML s
dng biu Use case (Use Case Diagram) nêu bt mi quan h c'ng nh s giao tip vi h thng.
Qua phng 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 thng s&
c mô hình hóa song song vi chc n(ng mà h# òi h i t phía h thng (tc là Use case). Các tác
nhân và các Use case c mô hình hóa cùng các mi quan h và c miêu t trong biu Use case
ca UML. M.i mt Use case c mô t trong tài liu, và nó s& c t các yêu cu ca khách hàng:
Anh ta hay ch ta ch i iu gì phía h thng mà không h ý n vic chc n(ng này s& c
thc thi ra sao.
3.1.2. Giai on phân tích
Giai on phân tích quan tâm n quá trình tru tng hóa u tiên (các lp và các i tng) c'ng
nh c ch hin hu trong phm vi v!n . Sau khi nhà phân tích ã nhn bit c các lp thành phn
ca mô hình c'ng nh mi quan h gia chúng vi nhau, các lp cùng các mi quan h ó s& c
miêu t b%ng công c biu lp (class diagram) ca UML. S cng tác gia các lp nh%m thc hin
các Use case c'ng s& c miêu t nh vào các mô hình ng (dynamic models) ca UML. Trong giai
on phân tích, ch* duy nh!t các lp có tn ti trong phm vi v!n (các khái nim i thc) là c
mô hình hóa. Các lp k, thut nh ngh+a chi tit c'ng nh gii pháp trong h thng phn mm, ví d
nh các lp cho giao din ngi dùng, cho ngân hàng d liu, cho s giao tip, trùng hp, v.v , cha
phi là mi quan tâm ca giai on này.
3.1.3. Giai on thit k
Trong giai on này, kt qu ca giai on phân tích s& c m rng thành mt gii pháp k, thut.
Các lp mi s& c b sung to thành mt h tng c s k, thut: Giao din ngi dùng, các chc
n(ng lu tr các i tng trong ngân hàng d liu, giao tip vi các h thng khác, giao din vi
các thit b ngoi vi và các máy móc khác trong h thng, Các lp thuc phm vi v!n có t giai
on phân tích s& c "nhúng" vào h tng c s k, thut này, to ra kh n(ng thay i trong c hai
phng din: Phm vi v!n và h tng c s. Giai on thit k s& a ra kt qu là bn c t chi tit
cho giai on xây dng h thng.
3.1.4. Giai on xây dng
Trong giai on xây dng (giai on lp trình), các lp ca giai on thit k s& c bin thành nhng
dòng code c th trong mt ngôn ng lp trình hng i tng c th (không nên dùng mt ngôn ng
lp trình hng chc n(ng!). Ph thuc vào kh n(ng ca ngôn ng c s dng, ây có th là mt
công vic khó kh(n hay d dàng. Khi to ra các mô hình phân tích và thit k trong UML, tt nh!t nên
c g"ng né tránh vic ngay lp tc bin i các mô hình này thành các dòng code. Trong nhng giai
on trc, mô hình c s dng d hiu, d giao tip và to nên c!u trúc ca h thng; vì vy, vi
23
vàng a ra nhng kt lun v vic vit code có th s& thành mt tr ngi cho vic to ra các mô hình
chính xác và n gin. Giai on xây dng là mt giai on riêng bit, ni các mô hình c chuyn
thành code.
3.1.5. Th nghim
Nh ã trình bày trong phn Chu Trình Phát Trin Phn Mm, mt h thng phn mm thng c
th nghim qua nhiu giai on và vi nhiu nhóm th nghim khác nhau. Các nhóm s dng nhiu
loi biu UML khác nhau làm nn tng cho công vic ca mình: Th nghim n v s dng biu
lp (class diagram) và c t lp, th nghim tích hp thng s dng biu thành phn
(component diagram) và biu cng tác (collaboration diagram), và giai on th nghim h thng s
dng biu Use case (use case diagram) m bo h thng có phng thc hot ng úng nh ã
c nh ngh+a t ban u trong các biu này.
3.2. Các thành phn ca ngôn ng# UML
Ngôn ng UML bao gm mt lot các phn t h#a (graphic element) có th c kp hp vi nhau
to ra các biu . Bi ây là mt ngôn ng, nên UML c'ng có các nguyên t"c kt hp các phn
t ó.
Mt s nhng thành phn ch yu ca ngôn ng UML:
Hng nhìn (view): Hng nhìn ch* ra nhng khía cnh khác nhau ca h thng cn phi
c mô hình hóa. Mt hng nhìn không phi là mt bn v&, mà là mt s tru tng hóa bao
gm mt lot các biu khác nhau. Ch* qua vic nh ngh+a ca mt lot các hng nhìn khác
nhau, m.i hng nhìn ch* ra mt khía cnh riêng bit ca h thng, ngi ta mi có th to
dng nên mt bc tranh hoàn thin v h thng. C'ng chính các hng nhìn này ni kt ngôn
ng mô hình hóa vi quy trình c ch#n cho giai on phát trin.
Biu (diagram): Biu là các hình v& miêu t ni dung trong mt hng nhìn. UML có
t!t c 9 loi biu khác nhau c s dng trong nhng s kt hp khác nhau cung c!p t!t
c các hng nhìn ca mt h thng.
Phn t mô hình hóa (model element): Các khái nim c s dng trong các biu c
g#i là các phn t mô hình, th hin các khái nim hng i tng quen thuc. Ví d nh lp,
i tng, thông ip c'ng nh các quan h gia các khái nim này, bao gm c liên kt, ph
thuc, khái quát hóa. Mt phn t mô hình thng c s dng trong nhiu biu khác nhau,
nhng nó luôn luôn có ch* mt ý ngh+a và mt kí hiu.
C ch chung: C ch chung cung c!p thêm nhng li nhn xét b sung, các thông tin c'ng
nh các quy t"c ng pháp chung v mt phn t mô hình; chúng còn cung c!p thêm các c ch
có th m rng ngôn ng UML cho phù hp vi mt phng pháp xác nh (mt quy trình,
mt t chc hoc mt ngi dùng).
3.3. Hng nhìn (View)
Mô hình hóa mt h thng phc tp là mt vic làm khó kh(n. Lý tng nh!t là toàn b h thng c
miêu t ch* trong mt bn v&, mt bn v& nh ngh+a mt cách rõ ràng và mch lc toàn b h thng,
mt bn v& ngoài ra li còn d giao tip và d hiu. Mc dù vy, thng thì ây là chuyn b!t kh thi.
Mt bn v& không th n"m b"t t!t c các thông tin cn thit miêu t mt h thng. Mt h thng cn
24
phi c miêu t vi mt lot các khía cnh khác nhau: V mt chc n(ng (c!u trúc t+nh ca nó c'ng
nh các tng tác ng), v mt phi chc n(ng (yêu cu v thi gian, v áng tin cy, v quá trình
thc thi, v.v. và v.v.) c'ng nh v khía cnh t chc (t chc làm vic, ánh x nó vào các code module,
). Vì vy mt h thng thng c miêu t trong mt lot các hng nhìn khác nhau, m.i hng
nhìn s& th hin mt bc nh ánh x ca toàn b h thng và ch* ra mt khía cnh riêng ca h thng.
Hình 3.1- Các View trong UML
M.i mt hng nhìn c miêu t trong mt lot các biu , cha ng các thông tin nêu bt khía
cnh c bit ó ca h thng. Trong thc t khi phân tích và thit k r!t d xy ra s trùng lp thông
tin, cho nên mt biu trên tht t có th là thành phn ca nhiu hng nhìn khác nhau. Khi nhìn h
thng t nhiu hng nhìn khác nhau, ti mt thi im có th ngi ta ch* tp trung vào mt khía cnh
ca h thng. Mt biu trong mt hng nhìn c th nào ó cn phi n gin to iu
kin giao tip d dàng, dính lin vi các biu khác c'ng nh các hng nhìn khác, làm sao cho
bc tranh toàn cnh ca h thng c miêu t b%ng s kt hp t!t c các thông tin t t!t c các hng
nhìn. Mt biu cha các kí hiu hình h#c mô t các phn t mô hình ca h thng. UML có t!t c
các hng nhìn sau:
Hng nhìn Use case (use case view) : ây là hng nhìn ch* ra khía cnh chc n(ng ca mt
h thng, nhìn t hng tác nhân bên ngoài.
Hng nhìn logic (logical view): ch* ra chc n(ng s& c thit k bên trong h thng nh th
nào, qua các khái nim v c!u trúc t+nh c'ng nh ng x ng ca h thng.
Hng nhìn thành phn (component view): ch* ra khía cnh t chc ca các thành phn code.
Hng nhìn song song (concurrency view): ch* ra s tn ti song song/ trùng hp trong h
thng, hng n v!n giao tip và ng b hóa trong h thng.
Hng nhìn trin khai (deployment view): ch* ra khía cnh trin khai h thng vào các kin
trúc vt lý (các máy tính hay trang thit b c coi là trm công tác).
Khi bn ch#n công c v& biu , hãy ch#n công c nào to iu kin d dàng chuyn t hng nhìn
này sang hng nhìn khác. Ngoài ra, cho mc ích quan sát mt chc n(ng s& c thit k nh th
nào, công c này c'ng phi to iu kin d dàng cho bn chuyn sang hng nhìn Use case ( xem
chc n(ng này c miêu t nh th nào t phía tác nhân), hoc chuyn sang hng nhìn trin khai (
xem chc n(ng này s& c phân b ra sao trong c!u trúc vt lý - Nói mt cách khác là nó có th n%m
trong máy tính nào).
25
Ngoài các hng nhìn k trên, ngành công nghip phn mm còn s dng c các hng nhìn khác, ví
d hng nhìn t+nh-ng, hng nhìn logic-vt lý, quy trình nghip v (workflow) và các hng nhìn
khác. UML không yêu cu chúng ta phi s dng các hng nhìn này, nhng ây c'ng chính là nhng
hng nhìn mà các nhà thit k ca UML ã ngh+ ti, nên có kh n(ng nhiu công c s& da trên các
hng nhìn ó.
3.3.1. Hng nhìn Use case (Use case View)
Hng nhìn Use case miêu t chc n(ng ca h thng s& phi cung c!p do c tác nhân t bên ngoài
mong i. Tác nhân là thc th tng tác vi h thng; ó có th là mt ngi s dng hoc là mt h
thng khác. Hng nhìn Use case là hng nhìn dành cho khách hàng, nhà thit k, nhà phát trin và
ngi th nghim; nó c miêu t qua các biu Use case (use case diagram) và th*nh thong c'ng
bao gm c các biu hot ng (activity diagram). Cách s dng h thng nhìn chung s& c miêu
t qua mt lot các Use case trong hng nhìn Use case, ni m.i mt Use case là mt li miêu t mang
tính c thù cho mt tính n(ng ca h thng (có ngh+a là mt chc n(ng c mong i).
Hng nhìn Use case mang tính trung tâm, bi nó t ra ni dung thúc $y s phát trin các hng
nhìn khác. Mc tiêu chung ca h thng là cung c!p các chc n(ng miêu t trong hng nhìn này –
cùng vi mt vài các thuc tính mang tính phi chc n(ng khác – vì th hng nhìn này có nh hng
n t!t c các hng nhìn khác. Hng nhìn này c'ng c s dng th$m tra (verify) h thng qua
vic th nghim xem hng nhìn Use case có úng vi mong i ca khách hàng (H i: "ây có phi là
th bn mun") c'ng nh có úng vi h thng va c hoàn thành (H i: "H thng có hot ng
nh ã c t?”).
3.3.2. Hng nhìn logic (Logical View)
Hng nhìn logic miêu t phng thc mà các chc n(ng ca h thng s& c cung c!p. Ch yu nó
c s dng cho các nhà thit k và nhà phát trin. Ngc li vi hng nhìn Use case, hng nhìn
logic nhìn vào phía bên trong ca h thng. Nó miêu t k c c!u trúc t+nh (lp, i tng, và quan h)
c'ng nh s tng tác ng s& xy ra khi các i tng gi thông ip cho nhau cung c!p chc
n(ng ã nh s2n. Hng nhìn logic nh ngh+a các thuc tính nh trng tn (persistency) hoc song
song (concurrency), c'ng nh các giao din c'ng nh c!u trúc ni ti ca các lp.
C!u trúc t+nh c miêu t b%ng các biu lp (class diagram) và biu i tng (object diagram).
Quá trình mô hình hóa ng c miêu t trong các biu trng thái (state diagram), biu trình t
(sequence diagram), biu tng tác (collaboration diagram) và biu hot ng (activity diagram).
3.3.3. Hng nhìn thành phn (Component View)
Là mt li miêu t ca vic thc thi các modul c'ng nh s ph thuc gia chúng vi nhau. Nó thng
c s dng cho nhà phát trin và thng bao gm nhiu biu thành phn. Thành phn ây là các
modul lnh thuc nhiu loi khác nhau, s& c ch* ra trong biu cùng vi c!u trúc c'ng nh s ph
thuc ca chúng. Các thông tin b sung v các thành phn, ví d nh v trí ca tài nguyên (trách nhim
i vi mt thành phn), hoc các thông tin qun tr khác, ví d nh mt bn báo cáo v tin trình ca
công vic c'ng có th c b sung vào ây.