Phân tích thiết kế hệ thống theo mô hình UML - Pdf 22



1 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 C CNG GING VIÊN: TÔN THT HOÀ AN – DNG KIU HOA
(Su tm tng hp) 2
MC LC
CHNG 1: TNG QUAN V PHÂN TÍCH THIT K H THNG 6


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


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. i tng (Object) 65

5.1.2. Trng thái, ng x và nhn din ca i tng 65

5.1.3. Lp (Class) 66



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


6.6. Biu $ c'ng tác (Collaboration Diagram) 108
5
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


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

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à: 8
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.

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, 10
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

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 c T
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


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 i t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 i t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),

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 i t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 15
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 i t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 u t
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

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 i tng là tính tái s dng (Reusable)?
áp: úng.
  
17
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

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

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 c lu
tr trong các c s d liu quan h hay hng i tng . 20
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

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.
22
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 ã 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).

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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status