You are on page 1of 191

Phn tch thit k h thng hng i tng bng UML

Gio trnh

PHN TCH V THIT K H THNG HNG I TNG S DNG UML


Bin son ThS. Phm Nguyn Cng TS. H Tng Vinh

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Gii thiu
H thng phn mm cng ngy cng tr nn phc tp. Cc ng dng hm nay c nhng yu cu v kin trc i hi phc tp hn rt nhiu so vi qu kh. Cc k thut, cng c, v phng php lun pht trin h thng phn mm ang thay i mt cch nhanh chng. Cc phng php pht trin phn mm chng ta s s dng trong tng lai c l s khc so vi cc phng php hin hnh ang s dng. Tuy nhin, mt iu hin nhin l pht trin hng i tng v cc khi nim c bn ca n ang c s dng rng ri. Nhiu trng hc nhn ra c iu ny v to ra nhng kho hc pht trin h thng hng i tng nh mt phn chnh yu ca h thng thng tin tin hc ho v cc chng trnh khoa hc my tnh. Gio trnh ny d kin s cung cp mt kin thc nn tng v pht trin cc h thng hng i tng cho cc i tng sinh vin nhng nm cui. Mc tiu ca gio trnh l cung cp mt m t r rng v cc khi nim nn tng pht trin h thng hng i tng. Trong , nhn mnh n tnh n gin ca tip cn gip sinh vin c kin thc v UML c th d dng nm bt pht trin mt h thng hng i tng.

Mc tiu
Sau khi hc xong mn hc ny sinh vin c th: - Hiu cc nguyn l nn tng ca k thut hng i tng v cc khi nim v s tru tng, tnh bao bc, tnh tha k, v tnh a hnh. - Hiu v mt s quy trnh pht trin h thng, ni dung cc giai on c bn ca mt qui trnh pht trin, v mt s phng php phn tch thit k hng i tng. - Tip cn ton b qui trnh pht trin h thng s dng cc k thut hng i tng - S dng UML nh l mt cng c m hnh ho trong qu trnh pht trin h thng - Pht trin h thng t cc m hnh use case c xem nh l mt m hnh phn tch nhm biu din y yu cu h thng. - p dng mt qui trnh lp, tp trung vo kin trc pht trin mt m hnh thit k chi tit, mnh p ng vi cc nhu cu: o Ph hp vi cc yu cu h thng c thng nht qua m hnh use case trong giai on phn tch. o Ti s dng. o D dng ci t h thng trong mt ngn ng v mi trng c th.

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

PHN 1: TNG QUAN Chng 1


GII THIU V PHNG PHP V PHNG PHP LUN PHT TRIN H THNG HNG I TNG Gii thiu v phng php pht trin hng chc nng
y l phng php cn truyn thng ca ngnh cng nghip phn mm trong quan im v phn mm nh l mt tp hp cc chng trnh (hoc chc nng) v d liu gi lp. Vy chng trnh l g? Theo Niklaus Wirth, ngi to ra ngn ng lp trnh Pascal th: Chng trnh = thut gii + cu trc d liu. iu ny c ngha rng c hai kha cnh khc nhau ca h thng c tip cn, hoc tp trung vo cc chc nng ca h thng hoc tp trung vo d liu. Chng ta chia hng tip cn ny thnh hai thi k: thi k vo nhng nm thp nin 70, tip cn phn tch v thit k h thng theo phng php gi l Descartes. tng chnh trong cch tip cn ny l mt qu trnh lp phn r h thng thnh cc chc nng v ng dng phng php lp trnh cu trc n th chng trnh, vic phn r kt thc khi mt chc nng c phn r c th lp trnh c. Trong thi k ny, ngi ta cha quan tm n cc thnh phn khng c tin hc ho m ch xoay quanh n cc vn trong h thng lp trnh, tp trung vo chc nng v t tp trung vo d liu (v thi k nay ang chun ho v pht trin v c s d liu, h qun tr c s d liu) Thi k vo nhng thp nin 80, tip cn phn tch thit k theo phng php gi l h thng. Quan im chnh ca phng php ny l tip cn h thng theo 2 thnh phn, thnh phn x l (thnh phn ng) v thnh phn d liu (thnh phn tnh) ca h thng. Cch tip cn ca cc phng php trong giai on ny tun theo hai tnh cht : tnh ton th : tip cn h thng qua vic m t cc h thng con v s tng tc gia chng ; tnh ng n : tm kim s phn r, kt hp cc h thng con sao cho hnh vi ca n tiu biu nht ca h thng trong mi trng tc ng ln h thng con . Cch tip cn h thng theo hai thnh phn chnh l tin cho cch tip cn hng i tng trong cc giai on sau. Tuy nhin, vic tip cn ch yu l hng xoay quanh d liu thu thp v t chc d liu nhm khai thc mt p ng nhu cu thng tin. Hng tip cn gy kh khn trong nhng h thng ln v thng xuyn thay i cng nh l trong vic thit k nhm ti s dng mt thnh phn c.

Gii thiu v phng php pht trin hng i tng


Vo thp nin 90, phng php tip cn phn tch thit k i tng l s tng hp ca phng php Descartes v phng php h thng. Trong khi cc m hnh c a ra trong nhng thp nin trc thng a ra d liu v x l theo hai hng c lp nhau. Khi nim i tng l s tng hp gia khi nim x l v khi nim d liu chung trong mt cch tip cn, v mt h thng l mt tp hp cc i tng lin kt ni. C ngha rng vic xy dng h thng chnh l vic xc nh cc i tng bng cch c gng nh x cc i tng ca th gii thc thnh i tng h thng, thit k v xy dng n, v h thng hnh thnh chnh l qua s kt hp ca cc i tng ny. Phng php hng i tng c xem l phng php phn tch thit k th h th ba, cc phng php tiu biu l OOD, HOOD, BON, OSA, v sau ny l OOSA, OOA, OMT, CRC, OOM, OOAD, OOSE, RUP/UML c trng c bn Tnh bao bc (encapsulation): quan nim mi quan h gia i tng nhn v i tng cung cp thng qua khi nim hp en. Ngha l i tng nhn ch truy xut i tng cung cp qua giao din c nh ngha bi i tng cung cp, i tng nhn khng c truy cp n cc c trng c xem l ni b ca i tng cung cp.
3

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Tnh phn loi (classification): gom nhm cc i tng c cng cu trc v hnh vi vo mt lp (class). Tnh kt hp (aggregation): kt hp cc i tng v cc i tng cu thnh n m t cu trc cc b ca i tng (v d: to nh <-> phng, xe <-> sn xe, bnh xe, ) , hoc s lin kt ph thuc ln nhau gia cc i tng. Tnh tha k (heritage): phn loi tng qut ho v chuyn bit ho cc i tng, v cho php chia s cc c trng ca mt i tng.

Phn loi

Phng php lp trnh hng i tng c chia thnh 2 hng nh sau: u im Cu trc ho c cc cu trc phc tp v s dng c cu trc qui: cc phng php i tng u s dng cc m hnh bao gm nhiu khi nim biu din nhiu ng ngha khc nhau ca h thng. V d: trong m hnh lp ca OMT c khi nim mi kt hp thnh phn cho php m t mt i tng l mt thnh phn ca i tng khc, trong khi nu dng m hnh ER truyn thng khng c khi nim ny do khng th biu din c quan h thnh phn. Xc nh c i tng ca h thng qua nh danh i tng1 Tnh tha k c a ra to tin cho vic ti s dng Hng lp trnh: t lp trnh n th chuyn sang lp trnh hng i tng vi l thuyt c bn da trn vic tru tng ha kiu d liu. Hng h qun tr CSDL: pht trin thnh CSDL hng i tng Phng php k thut: hng cng ngh phn mm nh OOD, HOOD, BON, BOOCH, MECANO, OODA, Phng php ton cc: hng v HTTT nh OOA, OOSA, OOAD, OMT, OOM,

C 2 cch tip cn ring bit:

M hnh
M hnh (model) l mt dng thc tru tng v mt h thng, c hnh thnh hiu h thng trc khi xy dng hoc thay i h thng . Theo Efraim Turban, m hnh l mt dng trnh by n gin ho ca th gii thc. Bi v, h thng thc t th rt phc tp v rng ln v khi tip cn h thng, c nhng chi tit nhng mc phc tp khng cn thit phi c m t v gii quyt. M hnh cung cp mt phng tin (cc khi nim) quan nim ho vn v gip chng ta c th trao i cc tng trong mt hnh thc c th trc quan, khng m h. Cc c im ca mt m hnh: Din t mt mc tru tng ha (v d: mc quan nim, mc t chc, mc vt l,) Tun theo mt quan im (quan im ca ngi m hnh ho) C mt hnh thc biu din (vn bn, ha: s , biu , th,)

Hu ht cc k thut m hnh ha s dng trong phn tch thit k l cc ngn ng ha (a s l s - diagram), cc ngn ng ny bao gm mt tp hp cc k hiu. Cc k hiu ny

OID: Object Iden tifier @ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

c dng i km theo cc qui tc ca phng php lun gip cho vic trao i cc quan h thng tin phc tp c r rng hn vic m t bng vn bn. V d : M hnh

Class_3


Class_5
Case_1 Actor_1 Actor_2

Class_1

0..1

0..* Class_4 0..1 0..*

Class_2

Case_2

th

Vn bn

Biu

M hnh tnh v m hnh ng


M hnh tnh (static model): c xem nh l hnh nh v thng s h thng ti mt thi im xc nh. Cc m hnh tnh c dng trnh by cu trc hoc nhng kha cnh tnh ca h thng. M hnh ng (dynamic model): c xem nh l mt tp hp cc hnh vi, th tc kt hp vi nhau m t hnh vi ca h thng. Cc m hnh ng c dng biu din s tng tc ca cc i tng thc hin cng vic h thng.

Mc ch ca m hnh ho
ng trc s gia tng mc phc tp ca mt h thng, vic trc quan ho v m hnh ha ngy cng tr nn chnh yu trong cch tip cn v mt h thng, c bit l cch tip cn hng i tng. Vic s dng cc k hiu trnh by hoc m hnh ha bi ton c cc mc ch sau: Lm sng t vn : chng ta c th a ra c cc li hoc cc thiu xt ca h thng t vic tip cn trc quan ha hn l cc dng trnh by khc nh vn bn, on m, Hn na, vic m hnh ho gip chng ta d dng hiu c h thng. M phng c hnh nh tng t ca h thng: hnh thc trnh by ca m hnh c th a ra c mt hnh nh gi lp nh hot ng thc s ca h thng thc t, iu ny gip cho ngi tip cn cm thy thun tin khi lm vic vi m hnh (l hnh nh thu nh ca h thng thc t) Gia tng kh nng duy tr h thng: cc k hiu trc quan c th ci tin kh nng duy tr h thng. Thay i cc v tr c xc nh trc quan v vic xc nhn trc quan trn m hnh cc thay i s gim i cc li. Do , chng ta c th to ra cc thay i nhanh hn v cc li c kim sot hoc xy ra t hn. Lm n gin ha vn : m hnh ho c th biu din h thng nhiu mc, t mc tng qut n mc chi tit, mc cng tng qut th k hiu s dng cng t (do cng n gin ho vic hiu) v h thng c biu din cng tng qut.

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Phng php lun pht trin h thng


Phng php lun pht trin h thng bao gm hai thnh phn : - Qui trnh (process) : bao gm cc giai on (phase) v tin trnh trong nh ngha th t cc giai on v cc lut hnh thnh nn mt qu trnh pht trin h thng t cc cng vic khi to n cc cng vic kt thc ca mt d n h thng. Cc khi nim (notation), phng php : cc m hnh (bao gm cc phng php m hnh ho ca m hnh) cho php m hnh ho cc kt qu ca qu trnh pht trin h thng.

Cc giai on c bn trong mt qui trnh :


t ng ha hot ng x l, h thng phi tri qua mt qu trnh gm nhiu bc c gi l qu trnh pht trin h thng. Cng ging nh nhiu tin trnh khc, pht trin h thng t ng cng theo chu trnh c gi l vng i (Life cycle). Khi nim vng i l mt khi nim rng n bt u t s khi u xy dng cho n kt thc vic khai thc h thng. Nu chng ta ch ch trng n giai on xy dng v trin khai th gi l pht trin h thng. Vng i pht trin h thng - SDLC (Systems Development Life Cycle) l mt phng php lun chung pht trin nhiu loi hnh h thng khc nhau. Tuy nhin, cc giai on trong qu trnh ny cng thay i khc nhau khong t 3 cho n 20 ty theo qui m v loi hnh h thng chng ta ang tip cn. Phn sau y s gii thiu cc giai on c bn lm nn tng chung cho hu ht qu trnh pht trin h thng: Giai on khi to Hot ng chnh ca giai on ny l kho st tng quan h thng, vch ra cc vn tn ti trong h thng v cc c hi ca h thng, cng nh trnh by l do ti sao h thng nn hoc khng nn c u t pht trin t ng ha. Mt cng vic quan trng ti thi im ny l xc nh phm vi ca h thng xut, trng d n v nhm phn tch vin ban u cng lp mt k hoch cc hot ng ca nhm trong cc giai on tip theo ca d n pht trin h thng. K hoch ny xc nh thi gian v ngun lc cn thit. nh gi kh thi ca d n v nht l phi xc nh c chi ph cn phi u t v li t mang li t h thng. Kt qu ca giai on ny l xc nh c d n hoc c chp nhn pht trin, hoc b t chi, hoc phi nh hng li. Giai on phn tch Giai on phn tch bao gm cc bc sau: Thu thp yu cu h thng: cc phn tch vin lm vic vi ngi s dng xc nh tt c nhng g m ngi dng mong mun t h thng xut. Nguyn cu cc yu cu v cu trc ho (m hnh ho) d dng nhn bit v loi b nhng yu t d tha. Pht sinh cc phng n thit k chn la ph hp vi yu cu v so snh cc phng n ny xc nh gii php no l p ng tt nht cc yu cu trong mt mc cho php v chi ph, nhn lc, v k thut ca t chc. Kt qu ca giai on ny l bn m t v phng n c chn.

Trong phn tch hng i tng giai on ny quan tm n mc tru tng ho u tin bng cch xc nh cc lp v cc i tng ng vai tr quan trng nhm din t cc yu cu cng nh mc tiu h thng. hiu r cc yu cu h thng chng ta cn xc nh ai l ngi dng v l tc nhn h thng. Trong phng php pht trin hng i tng cng nh phng php truyn thng, cc m t kch bn hot ng c s dng tr gip cc phn tch vin hiu c yu cu. Tuy nhin, cc kch bn ny c th c m t khng y hoc khng theo mt hnh thc. Do , khi nim use case c dng trong giai on ny
@ i Hc KHTN-TP HCM ; ASIA-ITC 6

Phn tch thit k h thng hng i tng bng UML

nhm biu din chc nng h thng v s tng tc ngi dng h thng. Cc kch bn hot ng lc ny s dng cc m hnh ng (dynamic diagram) nhm m t ni dung ca use case lm r s tng tc gia cc i tng, vai tr cng nh s cng tc ca cc i tng trong hot ng ca use case h thng. Trong giai on phn tch, ch c cc lp tn ti trong phm vi h thng ( th gii thc) mi c m hnh ho v nh vy th kt qu m hnh ho trong giai on ny s phn nh phm vi ca h thng. Cc lp v k thut, giao din nh ngha phn mm cng khng quan tm giai on ny. Giai on thit k Trong giai on ny kt qu ca giai on phn tch s c chi tit ho tr thnh mt gii php k thut thc hin. Cc i tng v cc lp mi c xc nh b sung vo vic ci t yu cu v to ra mt h tng c s k thut v kin trc. V d: cc lp mi ny c th l lp giao din (mn hnh nhp liu, mn hnh hi p, mn hnh duyt,). Cc lp thuc phm vi vn c t giai on phn tch s c "nhng" vo h tng c s k thut ny, to ra kh nng thay i trong c hai phng din: Phm vi vn v h tng c s. Giai on thit k s a ra kt qu l bn c t chi tit cho giai on xy dng h thng. V mc thit k th c th chia kt qu ca giai on ny thnh hai mc: Thit k lun l c t h thng mc tru tng ha da trn kt qu ca gii php c chn la t giai on phn tch. Cc khi nim v m hnh c dng trong giai on ny c lp vi phn cng, phn mm s s dng v s chn la ci t. Theo quan im l thuyt, bc ny h thng c th ci t trn bt k trn nn tng phn cng v h iu hnh no, iu ny cho thy giai on ny ch tp trung biu din kha cnh hnh vi v tnh nng ca i tng h thng. Thit k vt l Chuyn i kt qu thit k lun l sang cc c t trn phn cng, phn mm v k thut chn ci t h thng. C th l c t trn h my tnh , h qun tr c s d liu, ngn ng lp trnh chn,. Kt qu ca bc ny l cc c t h thng vt l sn sng chuyn cho cc lp trnh vin hoc nhng ngi xy dng h thng khc lp trnh xy dng h thng. Giai on xy dng Trong giai on xy dng (giai on lp trnh), cc lp ca giai on thit k s c bin thnh nhng dng m lnh (code) c th trong mt ngn ng lp trnh hng i tng (khng nn dng mt ngn ng lp trnh hng chc nng!). Ph thuc vo kh nng ca ngn ng c s dng, y c th l mt cng vic kh khn hoc d dng. Khi to ra cc m hnh phn tch v thit k trong UML, tt nht nn c gng n trnh vic ngay lp tc bin i cc m hnh ny thnh cc dng m lnh. Trong nhng giai on trc, m hnh c s dng d hiu, d giao tip v to nn cu trc ca h thng; v vy, vi vng a ra nhng kt lun v vic vit m lnh c th s thnh mt tr ngi cho vic to ra cc m hnh chnh xc v n gin. Giai on xy dng l mt giai on ring bit, ni cc m hnh c chuyn thnh cc m lnh. Giai on th nghim Mt h thng phn mm thng c th nghim qua nhiu giai on v vi nhiu nhm th nghim khc nhau. Cc nhm s dng nhiu loi biu UML khc nhau lm nn tng cho cng vic ca mnh: Th nghim n v s dng biu lp (class diagram) v c t lp, th nghim tch hp thng s dng biu thnh phn (component diagram) v biu cng tc (collaboration diagram), v giai on th nghim h thng s dng biu Use case
@ i Hc KHTN-TP HCM ; ASIA-ITC 7

Phn tch thit k h thng hng i tng bng UML

(use case diagram) m bo h thng c phng thc hot ng ng nh c nh ngha t ban u trong cc biu ny. Giai on ci t v bo tr iu chnh h thng ph hp vi nhu cu s dng, cc thay i pht sinh bao gm: Chc nng s dng cha ph hp tt nht vi ngi s dng hoc kh s dng Cc iu kin v yu cu ca ngi dng h thng thay i, i hi phi chnh sa sao cho h thng vn hu dng Cc li h thng pht sinh do qu trnh kim tra cn xt li Nng cp phin bn mi ca h thng

Bo tr h thng khng nn xem nh l mt giai on tch ri m nn xem nh l mt s lp li chu trnh ca nhng giai on trc i hi phi c nghin cu nh gi v ci t. Tuy nhin, nu mt h thng khng cn hot ng nh mong mun do c s thay i qu ln v hot ng, hoc nhu cu mi t ra vt qu s gii quyt ca h thng hin ti, hoc chi ph bo tr l qu ln. Lc ny yu cu v h thng mi c xc lp thay th h thng hin ti v mt qui trnh li bt u.

V d v qui trnh pht trin


Chng ta c th hnh dung rng chng ta mun xy dng mt cn nh. Cng vic u tin l chng ta chc chn l chng ta d tnh xem chng ta s b s tin bao nhiu xy dng cn nh ny, da trn s tin ny chng ta tm kim v phc ho (c th ch trong tng) cn nh ny phi nh th no? Loi cn nh theo kiu g, c my phng, chiu rng v chiu di bao nhiu, ri no n nn nh, mu sc, tin nghi ?, Ri sau , chng ta s chn mt n v xy dng (trong s nhiu n v m tho yu cu nht). Tt c cc yu trn s phi trao i vi n v xy dng ny nhm thng nht v gi c cng nh cc iu khon v yu cu xy dng. Giai on ny c xem nh l giai on phn tch. Tip , n v xy dng s thc hin cng vic thit k chi tit ca cn nh, v tng n v trong cn nh (phng, tng, trn, mi, phng khch, phng n, phng ng,). Giai on ny c xem l giai on thit k. Sau cc bn thit k chi tit ca cn nh s c b phn thi cng da vo tin hnh vic xy dng. Giai on ny c xem l giai on xy dng. Cn nh sau khi hon tt s c chuyn giao s dng, tt nhin trong qu trnh s dng nu c cc h hng th n v xy dng s phi tin hnh bo tr v sa cha.
Yu cu v cn nh tng v cn nh Cn nh xy xong

Phn tch & thit k

Xy dng

Chuyn giao s dng v bo tr

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

M s qui trnh pht trin


Qui trnh thc nc (waterfall Boehm 1970)
Phn tch yu cu Thit k quan nim Thit k chi tit

Lp trnh Th nghim n v Th nghim tch hp Th nghim h thng

Phn tch

Thit k

Ci t

Th nghim

y l mt qui trnh u tin c xut v a ra c cc giai on cn bn nht v y cho mt qu trnh pht trin h thng, cc giai on bao gm : phn tch, thit k, ci t v th nghim h thng. T khi c xut qui trnh ny nhanh chng c ph cp s dng rng ri trong gii cng nghip v cho n by gi c nhiu ci tin hon thin. Nhc im : - Qui trnh l cc giai on tun t ni tip nhau, c ngha l giai on phn tch phi c hon thnh ri n giai on thit k, khng cho php s quay lui v do , khi p dng qui trnh ny s kh khn khi giai on trc c s thay i (do sai xt, do nhu cu ngi dng thay i hoc do c s tin ho h thng,).

Qui trnh tng trng (D.R. Graham 1988)


Tng trng 1
Phn tch Thit k Lp trnh Th nghim Chuyn giao phn 1

Tng trng 2
Phn tch Thit k Lp trnh Th nghim Chuyn giao phn 2

Tng trng 3
Phn tch Thit k Lp trnh Th nghim Chuyn giao phn 3

Quan im chnh ca qui trnh ny l pht trin tng phn (phn h con) ca h thng dng qui trnh thc nc. - Lp : phn chia h thng thnh nhng phn c th pht trin mt cch c lp. Mi thnh phn trong qu trnh pht trin s c p dng qui trnh thc v c xem nh mt tng trng ca h thng. Khi thnh phn cui cng hon tt th qu trnh pht trin ton b h thng kt thc. Nhc im : qui trnh ny khng th p dng cho nhng h thng c s phn chia khng r rng hoc khng th phn chia thnh nhng thnh phn tc bit.

Qui trnh xon c (Boehm 88)

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Xc nh mc tiu, cc phng n, cc rng buc

Chu trnh 3 Chu trnh 2 Chu trnh 1

nh gi cc phng n

Lp k hoch cho chi trnh k tip

Pht trin v kim tra

L mt qu trnh gm nhiu vng lp da trn bn giai on : - Giai on 1 : o i vi vng lp u tin : phn tch yu cu o T vng lp th hai tr i : thit lp mc tiu cho vng lp, xc nh cc phng n t mc tiu ; cc rng buc xut pht t cc kt qu ca cc vng lp trc. - Giai on 2 : o nh gi cc phng n da trn cc sn phm t c v tin trnh thc thi phng n. o Xc nh v gii quyt cc ri ro. - Giai on 3 : o Pht trin v kim tra sn phm. - Giai on 4 : o Lp k hoch cho vng lp tip theo. Qui trnh xon c cng c th p dng qui trnh khc, v d giai on 3 c th c thc hin p dng qui trnh thc nc.

Qui trnh Booch (1996) Macro-process


Quan nim Phn tch Thit k Ci t ; tin ho Bo tr

Micro-process
Gm hai tin trnh : - Macro process : ng vai tr nh l b khung ca micro process v bao ph ton b phm vi d n. Cng vic chnh ca macro process l lin quan n qun l k thut ca h thng trong vic ch trng n yu cu ca ngi dng v thi gian hon thnh sn phm m t quan tm n chi tit thit k h thng. Macro porcess gm :
@ i Hc KHTN-TP HCM ; ASIA-ITC 10

Phn tch thit k h thng hng i tng bng UML

o Quan nim ho (conceptualization) : xc nh yu cu cn bn, mc tiu ca h thng o Phn tch v pht trin m hnh : s dng s m hnh ho i tng h thng ; xc nh vai tr v trch nhim ca cc i tng ; m hnh ho hnh vi ca h thng thng qua cc kch bn m t hnh vi. o Thit k : thit k kin trc ca h thng, cc mi quan h gia cc lp, cc lp s c ci t, cc v tr nh v x l. o Ci t, tin ho : tinh ch h thng thng qua nhiu vng lp. Lp trnh ci t phn mm. o Bo tr : iu chnh li pht sinh, cp nht cc yu cu mi Micro process : m t cc hot ng chi tit ca mi giai on thng qua vic phn chia thnh cc hot ng chi tit theo tng nhm pht trin hoc theo tng n v thi gian (gi, ngy, tun,).

RUP/UML (Rational Unified Process)


Qui trnh bao gm bn giai on chnh v an xen nhiu dng hot ng (activity flow) nh l : m hnh ho nghip v, phn tch yu cu, phn tch v thit k, ci t, th nghim trin khai, Mi giai on c hnh thnh t nhng bc lp (iteration). - Khi to (inception) : o Thit lp phm vi d n, cc iu kin rng buc phm vi, cc kin trc xut ca h thng, o Xc nh chi ph v thi gian ca d n, o Xc nh ri ro v mi trng h thng, o Xc nh cc thay i b sung, cc tc ng ca cc thay i ny, cc ri ro nu c, - Tinh ch (elaboration) : o Tinh ch kin trc h thng, yu cu h thng v m bo k hoch s n nh ca k hoch, o nh gi ri ro, cc thnh phn s dng, o Xy dng nn kin trc nn tng h thng, - Xy dng (construction) : o Qun l ti nguyn, kim sot v thc hin ti u ho, o Hon thnh vic pht trin cc thnh phn ca sn phm, th nghim sn phm, o nh gi sn phm ci t t cc tiu chun c tho thun, - Chuyn giao (transition) : o Thc hin ci t h thng, o Th nghim sn phm trin khai, o Thu thp cc phn hi t pha ngi dng, o Bo tr h thng

@ i Hc KHTN-TP HCM ; ASIA-ITC

11

Phn tch thit k h thng hng i tng bng UML

Phng php (method)


Phng php l mt qu trnh tp trung vo mt hoc mt vi giai on ca ton b qui trnh pht trin. V d : o Phng php phn tch yu cu : m t cch thc v qui trnh nhm thu thp cc yu cu ca h thng, o Phng php phn tch thit k : tp trung vo giai on phn tch v thit k o Phng php th nghim : qui trnh v cch thc cng nh cc hot ng th nghim h thng o Mt phng php bao gm mt tp cc k hiu ho v vn bn, cc lut s dng m t cc yu t h thng Mt phng php thng c p dng trong mt qui trnh ca phng php lun nhm hng dn cch thc thc hin chi tit ca giai on trong qui trnh pht trin.

Mt s phng php
Phn sau y s tng kt ni dung ca mt s phng php pht trin h thng hng i tng: OOD (Object Oriented Design - G.Booch 1991) Khng a vo giai on phn tch trong cc phin bn u tin. Cc bc phn tch h thng chun b cho giai on thit k gm : o Xc nh vn th gii thc o Pht trin mt chin lc khng hnh thc hin thc ho tng phn i vi cc vn xc nh o Hnh thc ho chin lc ny Vic hnh thc ho chin lc bao gm mt th t cc cng vic sau : o Xc nh lp v i tng mc tru tng ho o Xc nh ng ngha cho cc lp v i tng o Xc nh mi quan h gia cc lp v cc i tng o Ci t cc lp v i tng a vo khi nim gi (package) v dng nh mt thnh phn t chc ca m hnh. Ci t cc lp v i tng thng qua vic o su cc chi tit ca lp v i tng v cch thc ci t chng trong mt ngn ng lp trnh; cch thc ti s dng cc thnh phn v xy dng cc m un t cc lp v i tng. Trong giai on thit k, phng php ny nhnh mnh s phn bit gia tng lun l (trong thut ng lp v i tng) v tng vt l (trong thut ng mun v x l) v phn chia m hnh thnh cc m hnh ng v m hnh tnh. o S lp (m hnh tnh)
@ i Hc KHTN-TP HCM ; ASIA-ITC 12

Phn tch thit k h thng hng i tng bng UML

o S i tng(m hnh tnh) o S trng thi (m hnh ng) o S thi gian (m hnh ng) o S m- un o S x l HOOD (Hierarchical Object Oriented Design) Kha cnh tnh c biu din qua s i tng; vn bn hnh thc cho php hon thin s ny thng qua vic ch dn cc rng buc ng b. Cu trc phn cp c m t thng qua cu trc phn r i tng Cc giai on c bn ca giai on thit k nh sau : o Xc nh vn : xc nh ng cnh ca i tng vi mc ch t chc v cu trc ho d liu t cc yu cu ca giai on phn tch. Din t vn Phn tch v cu trc ho d liu yu cu : thu thp v phn tch tt c thng tin lin quan n vn , bao gm mi trng m h thng c thit k. o Pht trin chin lc gii php: phc ho gii php vn thng qua vic xc nh cc i tng mc tru tng ho cao. o Hnh thc ho v m hnh ho chin lc : xc nh cc i tng v cc ton t. Pht sinh mt gii php thit k dng s cho php trc quan ho cc khi nim, bao gm nm bc : Xc nh i tng Xc nh cc ton t Nhm cc i tng v cc ton t M t ho iu chnh cc quyt nh thit k o Hnh thc ho gii php : gii php c hnh thc ho thng qua M t hnh thc giao din i tng M t hnh thc i tng v cc cu trc iu khin ton t OMT (Object modeling Technique) Cung cp ba tp khi nim din t ba cch nhn v h thng. S dng mt phng php dn dt ti ba m hnh tng ng vi ba cch nhn h thng. Cc m hnh l : - M hnh i tng m t cu trc tnh ca cc i tng bn trong h thng v cc quan h ca chng. Cc khi nim chnh l : o Lp o Thuc tnh o Ton t o Tha k o Mi kt hp (association) o Mi kt hp thnh phn (aggregation) M hnh ng h thng m t cc kha cnh ca h thng c th thay i theo thi gian. M hnh ny c s dng xc nh v ci t cc kha cnh iu khin ca mt h thng. Cc khi nim l :
13

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

o Trng thi o Trng thi con/ cha o S kin o Hnh ng o Hot ng M hnh chc nng m t vic chuyn i gi tr d liu bn trong h thng. Cc khi nim l : o X l o Kho d liu o Dng d liu o Dng iu khin o Tc nhn (ngun, ch) Phng php c phn chia thnh bn giai on : o Phn tch : xy dng mt m hnh th gii thc da vo vic m t vn v yu cu h thng. Kt qu ca giai on ny l : Bn m t vn M hnh i tng = s lp i tng + t in d liu M hnh ng = s trng thi + s dng s kin ton cc M hnh chc nng = S dng d liu + cc rng buc o Thit k h thng : phn chia h thng thnh cc h thng con da trn vic kt hp kin thc v lnh vc vn v kin trc xut cho h thng. Kt qu ca giai on thit k l : Su liu thit k h thng : kin trc h thng c s v cc quyt nh chin lc mc cao. o Thit k i tng : xy dng mt m hnh thit k da trn m hnh phn tch c lm giu vi cc chi tit ci t, bao gm cc lp nn tng cc i tng ci t my tnh. Kt qu ca giai on ny : M hnh i tng chi tit M hnh ng chi tit M hnh chc nng chi tit o Ci t : chuyn i cc kt qu thit k vo mt ngn ng v phn cng c th. c bit nhn mnh trn cc c im c th truy vt, kh nng uyn chuyn v d m rng. OOA (Object Oriented Analysis Coad 90, 91) OOA s dng cc nguyn l cu trc ho v kt hp chng vi quan im hng i tng tp trung vo giai on phn tch. Phng php bao gm nm bc : Tm lp v i tng : xc nh cch thc tm lp v i tng. Tip cn u tin bt u vi lnh vc ng dng v xc nh cc lp, cc i tng hnh thnh nn tng cho ng dng. Xc nh cu trc : c thc hin qua hai cch : o Xc nh cu trc tng qut ho chuyn bit ho v xc nh s phn cp gia cc lp tm c

@ i Hc KHTN-TP HCM ; ASIA-ITC

14

Phn tch thit k h thng hng i tng bng UML

o Cu trc tng th - thnh phn (whole part) c dng m hnh ho cch thc mt i tng l mt phn ca i tng khc, v cch thc cc i tng kt hp thnh cc loi ln hn. Xc nh cc ch : phn chia cc m hnh lp, i tng thnh cc n v ln hn gi l ch . Xc nh thuc tnh : xc nh cc thng tin v cc mi lin kt cho mi th hin. iu ny bao gm lun vic xc nh cc thuc tnh cn thit c trng ho mi i tng. Cc thuc tnh c tm thy s c a vo ng mc trong cu trc phn cp. Xc nh cc dch v : nh ngha cc ton t cho lp bng cch xc nh cc trng thi v cc dch v nhm truy cp v thay i trng thi . Lp ch Lp cc lp v i tng Lp cu trc (s tha k, mi quan h,) Lp thuc tnh Lp dch v Thnh phn lnh vc vn (Problem Domain Component) : kt qu ca phn tch hng i tng a trc tip vo thnh phn ny. Thnh phn tng tc (Humain Interaction Component) : bao gm cc hot ng nh l : phn loi ngi dng, m t kch bn nhim v, thit k cu trc lnh, thit k tng tc chi tit, lp bn mu giao din tng tc ngi my, nh ngha cc lp ca thnh phn tng tc. Thnh phn qun l nhim v (Task Management Component) : bao gm vic xc nh cc nhim v (x l), cc dch v c cung cp, mc u tin, cc s kin kch hot, v cch thc cc x l trao i (vi cc x l khc v vi bn ngoi h thng). Thnh phn qun l d liu (Data Management Component) : ph thuc rt nhiu vo cng ngh lu tr sn c v d liu yu cu.

Kt qu ca giai on phn tch l mt m hnh gm nm lp: -

Mt m hnh thit k hng i tng bao gm cc thnh phn sau:

@ i Hc KHTN-TP HCM ; ASIA-ITC

15

Phn tch thit k h thng hng i tng bng UML

Chng 2 CC KHI NIM C BN V HNG I TNG


i tng (object)
i tng l thnh phn trng tm ca cch tip cn hng i tng. Mt i tng l mt i din ca bt k s vt no cn c m hnh trong h thng v ng mt vai tr xc nh trong lnh vc ng dng. - L mt biu din t th gii thc sang th hin ca tin hc (v d : mt chic xe t trong th gii thc c biu din trong tin hc dng mt khi nim i tng xe t). - L mt s tru tng ho, mt khi nim c ngha trong lnh vc ng dng. - Din t mt thc th vt l, hoc mt thc th quan nim, hoc mt thc th phn mm. - i tng c th l mt thc th hu hnh trc quan (v d : mt con ngi, mt v tr, mt s vt,) hoc mt khi nim, mt s kin (v d : phng ban, b phn, kt hn, ng k, ). Mt thc th phi tho ba nguyn l : - Phn bit (distinction): n v duy nht (nh danh) - Thng xuyn (permanence) : qu trnh sng (trng thi) - Hot ng (activity) : vai tr, hnh vi i tng = nh danh + trng thi + hnh vi V d : mt i tng xe m t Trng thi: 100cc 38.000 KM 90KM/H Hnh vi: Chy() my() Dng() Ttmy()

Trng thi

Mt No 53N-7213

nh danh

Hnh vi

Lin kt gia cc i tng


Mi kt hp (association) lin kt ng ngha : Gio vin A ging dy Lp hc X

Ti x B
@ i Hc KHTN-TP HCM ; ASIA-ITC

li

Xe ti Y
16

Phn tch thit k h thng hng i tng bng UML

Phn cp (hierarchy) lin kt cu trc : Mt xe m t

Bnh xe 1 i tng persistent/ transient -

Bnh xe 2

ng c

i tng transient : l i tng c qu trnh sng ti a tng ng vi qu trnh chy ng dng (i tng khng c lu tr trng thi ) i tng persistent : i tng c trng thi c lu tr trong my tnh v c th c thc thi bi mt ng dng khc ng dng to ra n (qu trnh sng ca n ko di v c th t ng dng ny qua ng dng khc do trng thi ca n c lu tr trong my tnh). Thng thng, trng thi ca i tng ny s c lu tr vo c s d liu trong qu trnh s dng, v vic lu tr ny s duy tr c tnh trng ca i tng v cung cp tnh trng ny cho nhng ln thc thi khc ca ng dng hoc cung cp trng thi ca i tng cho nhng ng dng khc.

Lp (class)
Mt lp l mt m t ca mt tp hp/ mt loi cc di tng c : o Cng cu trc (nh danh, c trng) o Cng hnh vi (trng thi, vai tr) Trnh by ca lp : l mt hnh ch nht bao gm ba phn (khng bt buc)

Xe
loi ngi_s_hu s_ng_k mu_xe

Tn lp

Thuc tnh (m t trng thi)

Thay_i_ti_x()
-

Ton t (m t cc hnh vi)

Trong giai on ci t, nh danh ca lp c ci t t mt kho. Kho ny cho php phn bit r cc i tng ca lp mt cch duy nht. Khi nim kho c th cho php truy cp bi ngi dng mt cch tng minh hoc ngm nh. Mt kho tng minh c th c khai bo chung vi trng thi ca lp trong khi khi nim nh danh l mt khi nim c lp. v c cc ngha sau : o Xc nh tnh duy nht ca i tng o C ngha s dng i vi ngi dng V d : trong lp Xe c th khai bo s_ng_k l mt kho.

Th hin ca lp (instance)
Th hin ca lp l mt i tng c th c to ra trn m hnh lp : - Cc ton t ca lp m t cc hnh vi chung ca cc th hin Tt c cc th hin ca mt lp c chung cc thuc tnh

@ i Hc KHTN-TP HCM ; ASIA-ITC

17

Phn tch thit k h thng hng i tng bng UML

Phn cp (hierarchy)
L c ch h tr vic tng qut ho theo cch thc sau : - Tng qut ho cc c tnh chung (nh ngha cc supper-class) nh ngha cc c tnh chuyn bit nht ca cc trng hp c th (nh ngha cc sub-class) Super-class

Sub-class -

Sub-class

Tng qut ho (generalisation) : xy dng mt lp tng qut t cc lp khc c th t c mt mc tru tng ho c th. Chuyn bit ho (specialisation) : o S phn cp ca cc lp c php m t cc lp chuyn bit c th t cc lp tru tng o S chuyn bit ho cng c th c to ra : Lm giu thng tin : thm mi thuc tnh hoc ton t vo lp chuyn bit so vi cc lp tru tng C th thay th hoc nh ngha li cc thuc tnh, ton t trong cc lp chuyn bit t thuc tnh, ton t ca cc lp tru tng

Trong qu trnh phn tch hoc thit k h thng hng i tng, vic chuyn bit ho v tng qut ho cho php nh ngha cc mi quan h tp con v lm sng t tnh tha k. (Jacobson 1992). Nu mt lp B tha k t mt lp A, th c ngha rng tt c cc ton t v cc thuc tnh ca lp A tr thnh ton t v thuc tnh ca lp B. Quan h k tha l quan h: o C tnh bc cu Class A {Nu lp B l mt chuyn bit ho ca lp A v lp C l mt chuyn bit ho ca lp B th lp C cng l mt chuyn bit ho ca lp A}

Class B

Class C o C th a k tha

@ i Hc KHTN-TP HCM ; ASIA-ITC

18

Phn tch thit k h thng hng i tng bng UML

Gio vin

Nh nghin cu

GVin Nh NC

{Lp Gvin-Nh NC a k tha tt c thuc tnh ca lp Gio vin v lp Nh nghin cu}

o V c ci t vi mc tiu ti s dng Khi nim lp tru tng (abstract) lp c th (concrete) :

Khi xy dng mt cu trc lp phn cp, chng hnh thnh cc lp tng qut v c gi l lp tru tng. Trong , tt c cc th hin i tng ca mt lp tru tng u xut pht t mt trong nhng lp c th ca n. Mt lp tru tng khng cha ng trc tip cc i tng, cc th hin ca n ch l s xc nh tru tng hn ca cc th hin i tng trong cc lp c th. Ngc li, mt lp c th thc s cha ng cc i tng v th hin. Trong v d di y, cc lp Xe ti v Xe t l cc lp c th bi v n s c cc th hin xe t v xe ti. Xe S_xe Ti_x Loi_xe S_lng_sn_xut Thay_i_ti_x() S_lng_sn_xut() {Xe l mt lp tru tng, n khng c th hin tn ti trong thc t}

Xe t Slng_khch Thay_i_sl_khch()

Xe ti Ti_trng_ln_nht Thay_i_ti_trng_ln_nht()

{Lp c th, cc th hin ca n phn nh cc i tng tn ti thc t}

Tnh bao bc(encapsulation)


Che du thng tin l nguyn l che du nhng d liu v th tc bn trong ca mt i tng v cung cp mt giao din ti mi i tng nh l mt cch tit l t nht c th c v ni dung bn trong ca i tng. Cc c th bao bc i tng tng quan bao gm : public, private, v protected
@ i Hc KHTN-TP HCM ; ASIA-ITC 19

Phn tch thit k h thng hng i tng bng UML

public : thuc tnh v hnh vi ca i tng c th c truy cp t mi ni private : thuc tnh v hnh vi ca i tng ch c bn trong lp protected : thuc tnh v hnh vi ca i tng ch c truy cp t cc lp con

Tnh bao bc l mt mc tiu trong thit k hng i tng. Thay v cho php mt i tng truy cp trc tip n d liu ca mt i tng khc, th i tng ny s yu cu d liu thng qua vic gi thi hnh mt hnh vi c thit k cho vic cung cp d liu v mt thng ip s c gi ti i tng ch thng tin c yu cu. iu ny khng ch m bo rng cc lnh ang hot ng trong d liu ng m cn khng cho php cc i tng c th thao tc trc tip ln d liu ca i tng khc. Ho n S_h Ngy_lp S_lng Tr_gi Tr_gi_h() Hng ho m hng tn hng n v tnh n gi n_gi() i_n_gi(gi_mi)
{thuc tnh n gi trong lp Hng ho l private, do , tt c truy cp v n gi t bn ngoi phi thng qua n_gi(), hoc cc thay i v n gi phi thng qua i_n_gi(gi_mi)}

Mt yu t quan trng ca tnh bao bc l vic thit k khc nhau ca cc i tng c th s dng mt phng thc (protocol) chung hoc giao din chung cho ngi dng i tng. iu ny l gii rng nhiu i tng s tr li ti cng thng ip nhng mi i tng s thi hnh thng ip s dng cc ton t c bin i thch ng ti lp ca n. Bng cch ny, mt chng trnh c th gi mt thng ip tng qut v li vic ci t cho i tng nhn. iu ny lm gim s ph thuc ln nhau v gia tng s lng trao i v ti s dng ca i tng. V d : cc ng c xe t c th khc nhau v cch ci t v vn hnh c th, giao din gia ti x v xe t l thng qua mt phng thc chung : v d, p cn gas tng lc v nh cn gas gim lc ca xe. Tt c ti x u bit phng thc ny v tt c ti x u s dng phng thc ny trong tt c xe t m khng qua tm n ng c ca xe t c thc hin nh th no (tt nhin, cc ng c khc nhau th c cch vn hnh khc nhau).

Tnh a hnh (polymorphism)


Trong h thng hng i tng, thut ng a hnh dng m t cc i tng c nhiu dng thc. a hnh c ngha rng cng mt ton t c th x l mt cch khc nhau trong cc lp khc nhau c chung mt (vi) lp cha (superclass). - Cng ton t c th thi hnh khc nhau trong cc lp khc nhau. Cc phng thc khc nhau cng ci t cho ton t ny trong cc lp khc nhau phi c cng k hiu (tn, tham s v gi tr tr v) Ci t ca ton t c xc nh bi lp i tng m c s dng trc tip

@ i Hc KHTN-TP HCM ; ASIA-ITC

20

Phn tch thit k h thng hng i tng bng UML

Hnh
v()

Ch nht
v()

Tam gic
v()

Trn
v()

{V hnh ch nht}

{V hnh tam gic}

{V hnh trn}

Cu trc phn cp trn cho thy, lp Hnh l lp tng qut chung cho cc lp : Ch nht, Tam gic, Trn. V c ba lp ny u c th v, do , c th xc nh mt phng thc v() chung trong lp Hnh. Tuy nhin, cc i tng trong cc lp chuyn bit c th c thc hin trong mt cch thc c th khc so vi phng thc v() chung. Do , mi lp chuyn bit c th ci t li phng thc v() chng ln phng thc v() ca lp tng qut. Nu h thng x l mt danh sch cc i tng ca lp Hnh, th h thng s d tm v thc hin phng thc v() ph hp cho mi i tng. Nu i tng l ca lp con Ch nht th ni dung ci t ca phng thc v() trong lp Ch nht s c thc thi. Tng t cho i tng ca lp con Tam gic v Trn. a hnh y l cho php c nhiu hnh thc ci t ca cng mt hnh vi (phng thc). H thng s t ng thc hin phng thc thch hp cho mi i tng.

Cu hi v bi tp

@ i Hc KHTN-TP HCM ; ASIA-ITC

21

Phn tch thit k h thng hng i tng bng UML

Chng 3 UML (UNIFIED MODELING LANGUAGE)


Lch s ca UML
S lng cc phng php lun hng i tng gia tng t di 10 n 50 trong khong nhng nm 1989 n 1994, v do ny sinh vn l lm cho ngi pht trin kh tm thy mt phng php lun duy nht tho mn y nhu cu ca h. Vo thng mi nm 1994, Rumbaugh lin kt vi cng ty Booch (Rational Sofware Corporation) kt hp phng php Booch v phng php OMT. V cho ra mt bn phc tho v phng php c tn l Unified Process vo thng mi nm 1995. Cng trong nm 1995, Jacobson n lc tch hp phng php ny vi OOSE. V nhng ti liu u tin v UML c trnh lng vo trong nm 1996. Phin bn 1.0 ca UML c cng b vo thng ging 1997, bao gm cc cng vic ca cc thnh vin ca UML consortium : DEC MCI Systemhouse HP Microsoft i-Logix Oracle Intellicorp Rational Software IBM TI ICON Computing Unisys Bn tho v UML phin bn 1.5 c to vo thng ba nm 2003. Phin bn UML 2.0 s c to vo 2004.
UML 2.0 (2004) UML 1.5 (2003) UML 1.3 (99) UML 1.2 (98) Chun ho bi OMG UML 1.1 (11- 97) UML 1.0 (1- 97) UML 0.9 (96) UML 0.8 (95) Booch OMT Cc thnh vin cng nghip (HP, IBM,Oracle, Microsoft, Rational,)

OOSE Cc phng php khc

@ i Hc KHTN-TP HCM ; ASIA-ITC

22

Phn tch thit k h thng hng i tng bng UML

1995 Rational U M L 0.8

1996

1997

1998

1999

2000

2001 OMG

2002

2003

2004

UML consortium U U U M M M L L L 1.1 0.9 1.0

U U M M L L 1.2 1.3

U M L 1.4

U M L 1.5

U M L 2.0 ??

UML ?
UML c to ra nhm chun ho ngn ng m hnh ho, UML khng phi l mt chun v tin trnh v do , UML phi c s dng kt hp vi mt tin trnh phng php lun. UML l mt ngn ng dng c t, trc quan ho, v t liu ho phn mm hng i tng. N khng m t mt tin trnh hay mt phng php m trong chng ta dng n m hnh ho. V d : Cng ty Rational Software xut mt quy trnh RUP (Rational Unified Process) c xem nh l mt phng php lun pht trin h thng v c ngn ng m hnh ho l UML. UML ph tt c cc mc m hnh ho khc nhau trong qui trnh pht trin bao gm chn loi s , trong , nm s dng biu din kha cnh tnh v bn s biu din kha cnh ng ca h thng.

Cc c trng ca mt tin trnh s dng UML


Thu ban u, qui trnh tun t c xem l phng php hp l nht pht trin h thng. Tuy nhin, tri qua vi thp nin, cho thy cc d n s dng qui trnh tun t thng t thnh cng, bi nhng nguyn do sau y: S gi nh ban u c sai st Tht bi trong vic kt hp cc nhn t con ngi Cc h thng ngy cng ln v thng hay thay i Chng ta vn cn ang trong giai on thm d ca cng ngh phn mm, v khng c nhiu kinh nghim. y l l do chnh.

Mt phng php lun s dng UML phi kt hp vi mt qui trnh lp v iu ny s lm gim i cc hn ch ca qui trnh tun t. Tnh cht lp gm cc c trng c bn sau : Tnh lp (iterative) o Thay v n lc xc nh tt c cc chi tit ca m hnh trong mt thi im, chng ta ch xc nh cc chi tit p ng cho thi im thc hin, v o Lp li mt (hoc nhiu) vng lp khc b sung thm cc chi tit Gia tng (incremental)
23 @ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

o H thng tin ho thng qua mt tp cc s gia tng o Mi s gia tng s b p thm vo h thng cc tnh nng khc Tp trung vo ngi dng (user concentrated) o Phn tch vin xc nh cc tnh nng ca h thng thng qua cc use case o Ngi dng xc nhn cc use case ny o Thit k vin v ngi pht trin hin thc ho cc use case o Ngi th nghim kim tra h thng v vic tho mn cc use case c t ra.

M hnh Use case


c xc nh bi

M hnh phn tch

Hin hc ho bi Phn b bi

M hnh thit k M hnh trin khai

Ci t bi

Kim tra bi

M hnh ci t

M hnh th nghim Hng kin trc (well-defined structure) o H thng c phn chia thnh cc h thng con o Mc lun l v vt l phi c xc lp mt cch tch bit trong h thng Cc khung nhn v h thng : o Khung nhn lun l (logical view): m t cc yu cu chc nng ca h thng, tc nhng g h thng nn lm cho ngi dng cui. l s tru tng ca m hnh thit k v xc nh cc gi thit k chnh, cc subsystem v lp chnh. Trong UML khung nhn ny c th c trnh by dng s lp, s i tng, s m t cc gi, h thng con. o Khung nhn thc hin (implementation view): m t t chc ca cc n th (module) phn mm tnh (nh m ngun, tp tin d liu, thnh phn, tp tin thc thi, v cc thnh phn km theo khc) trong mi trng pht trin. Trong UML khung nhn ny c th dng s thnh phn trnh by. o Khung nhn x l (process view): m t cc kha cnh xy ra ng thi ca h thng thi gian thc (run-time) (tasks, threads, processes cng nh s tng tc gia chng). Khung nhn ny tp trung vo s ng hnh, song song, khi ng v ng h thng, kh nng chu ng h hng, v s phn tn cc i tng.
@ i Hc KHTN-TP HCM ; ASIA-ITC 24

Phn tch thit k h thng hng i tng bng UML

o Khung nhn trin khai (deployment): cho thy cc tp tin thc thi v cc thnh phn khc nhau c trin khai trn cc h thng nh th no. N gii quyt cc vn nh trin khai, ci t, v tc . Trong UML, khung nhn ny c th s dng s trin khai m t. o Khung nhn use-case: ng mt vai tr c bit i vi kin trc. N cha mt vi kch bn hay use case ch yu. Ban u, chng c dng khm ph v thit k kin trc trong cc giai on bt u v giai on c t, nhng sau chng s c dng xc nhn cc khung nhn khc nhau. Trong UML, khung nhn ny c th s dng s use case minh ho. Ngi dng Chc nng Khung nhn lun l (logical view) Khung nhn use case (Use case view) Lp trnh vin Qun tr phn mm Khung nhn thc hin (implementation view)

Khung nhn x l (proces view)

Khung nhn trin khai (deployment view) Thit k vin h thng Hnh thi h thng Chuyn giao, ci t Truyn thng

Qun tr vin tch hp h thng Hiu nng Tnh co gin Thng lng

Cn phn bit khung nhn kin trc vi m hnh: m hnh l s trnh by hon chnh v h thng, trong khi khung nhn kin trc ch tp trung vo nhng g c ngha v mt kin trc, tc l nhng g c tc ng rng ln n cu trc ca h thng v ln tc , s hon thin, tnh tin ha ca n.

Cc s trong UML
Cc s m t kha cnh tnh o S i tng (object diagram) o S lp (class diagram) o S use case (use case diagram) o S thnh phn (component diagram) o S trin khai (deployment diragram) Cc s m t kha cnh ng o Cc s tng tc (interaction diagram) S tun t (sequence diagram) S hp tc (collaboration diagram) o S hot ng (activity diagram) o S chuyn dch trng thi (state transition diagram)
@ i Hc KHTN-TP HCM ; ASIA-ITC 25

Phn tch thit k h thng hng i tng bng UML

S lp v i tng: c s dng m hnh ho cu trc tnh ca h thng trong qu trnh pht trin. Mi s cha ng cc lp v cc mi quan h gia chng (quan h k tha (heritage), quan h kt hp (association), quan h tp hp (aggregation), quan h thnh phn (composition)). Chng ta cng c th m t cc hot ng ca lp (operation). S i tng l mt th hin ca s lp. N m t trng thi chi tit ca h thng ti mt thi im c th v l bc tranh ca h thng ti mt thi im, do , biu i tng dc dng minh ho mt trng hp thc t ca s lp. S i tng c cng k hiu vi biu lp. S i tng c dng minh ho mt trng hp phc tp ca bc tranh thc t v h thng trong cc th hin c th. V d : S lp
Ti x
1 Ca * 0..1 S hu 1..*

Xe

Bng li xe

Xe ti

Xe t

Xe m t

Tc gi
tnTcGi: string aCh: string 1 1..*

Sch
taSch: string nmXutBn: integer

S i tng UML:Sch
taSch =UML nmXutBn=1998

Hong:Tc gi
tnTcGi =Nguyn Vn Hong aCh=123-Nguyn Vn C - Q5

C s d liu:Sch
taSch =UML nmXutBn=1997

S use case : xut pht t cc m hnh use case ca phng php OOSE (Jacobson). N m t giao din vi mt h thng t quan im v cch nhn ca ngi s dng. Mt s use case m t cc tnh hung tiu biu ca vic s dng mt h thng. N biu th cc trng hp s dng (trong vic m hnh ho cc tnh nng h thng) v cc tc nhn (trong vic m hnh ho cc vai tr tham gia bi cc c nhn tng tc vi h thng), v mi quan h gia cc use case v cc tc nhn. V d : s use case mt h thng qun l mt th vin

@ i Hc KHTN-TP HCM ; ASIA-ITC

26

Phn tch thit k h thng hng i tng bng UML

Mn sch

Tr sch

Th th

Mn ti ch c gi c sch, bo

Mua sch Nh cung cp

S thnh phn : c s dng biu th cc nhn tnh trong vic ci t mt h thng. Mi s bao gm cc thnh phn (component) v cc mi quan h ph thuc gia chng trong mi trng ci t. Mt thnh phn i din cho mt yu t ci t vt l ca mi trng (m ngun, m thc thi, tp tin, c s d liu, mt th vin hm,). V d : s thnh phn ca mt h thng phn mm qun l th vin
Tin ch

Giao din

C s d liu

X l

S trin khai : m t cch b tr vt l cc thit b v s phn phi cc thnh phn tr ng ti cc thit b ny. Mt s trin khai bao gm cc nt (node) i din cho cc ti nguyn thit b v cc thnh phn c ci t trong thit b, cc lin kt trong s dng m t s trao i gia cc nt. S trin khai biu th mt s tng ng gia cu trc phn mm ca mt h thng v kin trc v b tr thit b ca n. V d : s trin khai ca h thng qun l th vin

@ i Hc KHTN-TP HCM ; ASIA-ITC

27

Phn tch thit k h thng hng i tng bng UML

Node 1 (phng qun tr):Server CSDL

Node 3 (c gi):APP
Giao din

Node 2 (phng qun tr):APP Server


Tin ch

Node 4 (th th):APP


C s d liu Giao din

X l

S tun t v s hp tc : trnh by cc cch nhn ng v tng tc gia cc i tng ca h thng trong qu trnh pht trin. S hp tc m t s hp tc gia mt nhm cc i tng trong hot ng t mt mc tiu c th. S tun t thm vo chiu thi gian nhm th hin trc quan th t trao i ca cc thng ip (message). V d : s tun t m t hot ng ca x l cuc gi ca my in thoi
:Ngi gi Nhc my Tn hiu :My gi Tng i :My nhn :Ngi nhn

Quay s

Kt ni

Tn hiu chung Nhc my Tn hiu

Gc my Tn hiu gc my Tin hiu gc my Tn hiu gc my

@ i Hc KHTN-TP HCM ; ASIA-ITC

28

Phn tch thit k h thng hng i tng bng UML

S chuyn i trng thi : hnh thnh t phng php OMT v Booch. Mi s c dng c lin quan n mt lp biu th cc trng thi khc nhau ca i tng ca lp v cc bin c kch hot s chuyn dch gia cc trng thi. V d : s trng thi ca sch trong th vin
Mun Sn sng cho mn Nhp kho lu tr Tr ang mn

Chm dt lu hnh nh mt Ht lu hnh nh mt

nh mt Mt

Lu tr Nhp kho

nh mt Thanh l

S hot ng : dng m hnh ho cc dng hot ng lin kt ti cc lp nh l trong trng hp ca mt nhm cc lp hp tc cng thc hin trong mt loi tin trnh. Mi lp s m nhim cc hot ng v cc chuyn dch nh c m t trong s chuyn dch trng thi. Tuy nhin, mt s hot ng c th lin quan n nhiu lp hn l mt lp. Mt khc n m t tin trnh tun t cc hot ng, s ng b ho cc dng iu khin song song, cc iu kin v quyt nh, im bt u v im kt thc tin trnh. V d : s hot ng n gin ca hot ng mn sch th vin
Kim tra cc sch mn
[c gi n mn sch] [Sch mn<=3]

T chi mn sch
[Sch mn>3]

Ly sch

Cp nht thng tin mun

Cc h thng s dng UML trong vic m hnh ho


Vic s dng UML trong qu trnh m hnh ho c th p dng trong cc loi h thng sau : H thng nghip v (business system) : m t ti nguyn (nhn lc, ti lc, ti sn,), mc tiu, lung cng vic, cc qui tc, rng buc trong hot ng sn xut kinh doanh ca doanh nghip. V d : cc cng ty sn xut, ca hng kinh doanh, y t, gio dc, H thng thng tin (informaton system) : thu thp v lu tr, bin i d liu nhm cung cp thng tin p ng nhu cu ngi nhn trong cc t chc hot ng nghip v. H thng thng tin cng c chia thnh nhiu loi tu thuc vo quy m v phc tp : h thng thng tin tc nghip : l h thng chuyn x l vic thu thp v truy tm thng tin trong mi hot ng nghip v. H thng thng tin qun l : x l tng hp d liu thng qua cc thng k bo co nhm p ng thng tin cho cc nh qun l theo di tnh hnh hot ng. H thng thng tin chuyn gia, h h tr ra quyt nh : x l v tri thc ho cc d liu hin
@ i Hc KHTN-TP HCM ; ASIA-ITC 29

Phn tch thit k h thng hng i tng bng UML

ti nhm p ng cc nhu cu nng cao v mt thng tin nh l h tr gii p t ng, h tr ra quyt nh, d bo tnh hnh tng lai, Phn mm h thng (System software) : xy dng cc cng c phn mm c s cho cc phn mm khc s dng nh l h iu hnh, h qun tr c s d liu, cng c pht trin,. H thng nhng (embeded system) : l mt loi h thng phn mm c xy dng gn trn mt loi thit b nh : in thoi di ng, thit b iu khin, Cc h thng nhng ny thng c lp trnh dng ngn ng cp thp hoc chuyn dng v c b nh lu tr cng nh mn hnh. H thng k thut (Technical system) : x l v iu khin cc thit b k thut nh h thng vin thng, h thng qun s, hay cc qu trnh x l k thut cng nghip (dy chuyn sn xut, vn hnh my mc,). y l loi thit b phi x l cc giao tip c bit , khng c phn mm chun v thng l cc h thng thi gian thc (real time).

@ i Hc KHTN-TP HCM ; ASIA-ITC

30

Phn tch thit k h thng hng i tng bng UML

PHN 2 PHN TCH H THNG


Mc tiu
Gip cho ngi hc nm vng cc ni dung v: Tin trnh phn tch hng i tng Tin trnh, ni dung v cc phng php kho st yu cu Phn tch chc nng h thng bng m hnh ho use case Hiu v h thng nghip v v m hnh ho h thng nghip v Phn loi v xc nh i tng h thng bng vic xy dng s lp

Gii thiu
Bc u tin tm ra mt gii php thch hp cho vn h thng l hiu vn v lnh vc ca h thng . Mc tiu chnh ca phn tch l nm bt mt hnh nh y , khng m h, v nht qun v yu cu h thng v nhng g h thng s phi lm p ng i hi v nhu cu ngi dng. iu ny c thc hin bng cch xy dng cc m hnh ca h thng vi mc tiu tp trung vo kha cnh biu din h thng v mt ni dung (ngha l cc m hnh tp trung vo lm r h thng c nhng g) hn l cch thc m h thng thc hin ni dung . Do , kt qu ca giai on phn tch l lm r cc yu t h thng t quan im v cch nhn ca ngi s dng m khng quan tm n cch thc chi tit m my tnh thc hin ni dung . Phn tch l mt tin trnh chuyn i mt nh ngha vn t mt tp m cc s kin, cc d kin mang tnh tng tng thnh mt din t cht ch cc yu cu h thng. Thc s, phn tch l mt hot ng mang tnh sng to bao gm vic hiu vn , cc rng buc lin quan n vn v cc phng php khng ch hoc gii quyt nhng rng buc. y l mt tin trnh lp cho n khi cc vn phi c r rng. Phn ny gm ba chng bao gm: xc nh yu cu h thng; m hnh ho use case; m hnh ho nghip v; v xy dng s lp.

@ i Hc KHTN-TP HCM ; ASIA-ITC

31

Phn tch thit k h thng hng i tng bng UML

Chng 4 XC NH YU CU H THNG
Mc tiu
Qua chng ny, chng ta c th hiu: Mc tiu ca vic kho st h thng Ni dung ca vic kho st v cc i tng tip cn kho st Mt s phng php kho st: phng vn, bng cu hi, phng vn nhm, phn tch ti liu, thit k kt hp ngi dng, bn mu (prototype) Yu cu v vic phn loi cc yu cu h thng

Mc ch kho st yu cu
Kho st h thng l nhm thu thp tt nht thng tin phn nh v h thng hin ti, t lm c s cho vic phn tch v xy dng h thng mi gii quyt tn ti bt cp ca h thng. Vy kho st yu cu bao gm nhng mc tiu sau: Tip cn vi nghip v chuyn mn, mi trng ca h thng Tm hiu vai tr, chc nng, nhim v v cch thc hot ng ca h thng Nu ra c cc im hn ch, bt cp ca h thng cn phi thay i a ra c nhng vn ca h thng cn phi c nghin cu thay i.

Ni dung kho st
Ni dung kho st phi tm hiu c cc ni dung ca h thng nh sau: Cc mc tiu hot ng ca n v, cc cng vic v cch thc hot ng t nhng mc tiu . Nhng thng tin cn thc hin cng vic tng loi cng vic Cc ngun d liu (nh ngha, cu trc, dung lng, kch thc,) bn trong v bn ngoi n v. C th bao gm: o Cc h s, s sch, tp tin o Biu mu, bo co, qui tc, quy nh, cng thc. o Cc qui tc, qui nh rng buc ln d liu o Cc s kin tc ng ln d liu Tm hiu khi no, nh th no, v bi ai cc d liu c to ra, di chuyn, bin i v c lu tr. ng vi mi x l thc hin tm hiu: o Phng php: cch thc thc hin o Tn sut: s ln thc hin trong mt n v thi gian o Khi lng: ln thng tin thc hin o phc tp: x l l mt l mt qu trnh phc tp lin quan n nhiu loi d liu hay ch l mt tnh ton n gin vi mt vi loi d liu. o chnh xc: chnh xc ca kt qu thc hin Th t v cc ph thuc khc gia cc hot ng truy xut d liu khc nhau
32

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Cc chnh sch, hng dn m t hot ng qun l, th trng v mi trng h thng Cc phng tin, ti nguyn c th s dng Trnh chuyn mn s dng vi tnh ca cc i tng x l thng tin h thng Mi trng h thng (kinh t, x hi, c quan ch qun) Cc nh gi, phn nn v h thng hin ti; cc xut gii quyt.

i tng kho st
C nhiu ngun c th cung cp thng tin p ng ni dung kho st yu cu. Mi ngun c mt hnh thc khc nhau do phi c mt cch tip cn kho st khc nhau. Cc i tng kho st l: Ngi dng Cc cn b lnh o, cn b qun l: cc i tng ny s gip cho phn tch vin nm bt c tng quan cu trc h thng, mc tiu chung m h thng mi mong mun mang li. Cc thng tin m i tng ny mang li thng l chiu rng, mang tnh tng th, chin lc khng m t chi tit cch thc phi thc hin. Ngi s dng, nhn vin nghip v: cc i tng ny s cung cp thng tin chi tit cch thc m h ang thc hin cng vic gm cc bc c th, cc giy t biu mu lin quan. Cc thng tin m i tng mang li thng l chiu su, chi tit, cc b b qua tng chin lc mang tnh tng th. Nhn vin k thut: cc i tng ny s cung cp thng tin v tnh trng cng ngh, trang thit b, phn mm hin hnh ang s dng v kh nng, trnh v k thut ca h. Cc i tng ny thng tr gip rt ln trong vic hun luyn, trin khai v bo tr h thng mi. Ti liu v s sch, biu mu, tp tin: ngun cung cp cc thng tin v d liu, lung d liu, giao dch v x l giao dch. c bit l cc biu mu y chnh l kt qu u ra ca h thng. Ti liu v qui trnh, th tc: ngun cung cp thng tin v qui trnh x l, vai tr x l ca cc nhn vin, chi tit m t cng vic ca nhn vin, cc qui nh th tc. Cc thng bo: cc mu thng bo ca h thng i vi mi trng ngoi, gia cc b phn trong h thng (v d: thng bo hp mt khch hng, thng bao mi thu, thng bo t chi n hng, hoc cc thng bo ni b nh l thng bo b nhim, thng bo nng lng,) Cc chng trnh phn mm h thng ang s dng, cc chng trnh ny gip xc nh c cu trc d liu h thng, thi quen ca ngi s dng, chc nng m h thng mi cha p ng c, s liu th nghim h thng.

Ti liu -

Chng trnh my tnh -

Phng php xc nh yu cu
Cc phng php truyn thng xc nh yu cu
Phng vn Phng vn l mt hnh thc kho st thu thp thng tin trc tip t cc i tng s s dng h thng. V mi ngi dng s c nhng hiu bit nht nh v mt phn cng vic ca mnh trong h thng hin ti v mong mun h thng mi v nhng g s phc v v tr gip
@ i Hc KHTN-TP HCM ; ASIA-ITC 33

Phn tch thit k h thng hng i tng bng UML

cho cng vic ca h. V d: mt k ton vin chi tit th bit c chi tit cc loi chng t, cch sp xp v x l chng t, cn k ton vin tng hp th ch quan tm n nhng s liu no v cch thc tng hp s liu to ra cc bo co thng k, tng hp, Do , vic phng vn phi c thc hin trn nhiu ngi dng khc nhau (ba loi ngi dng) nhm thu thp nhiu nht yu cu h thng. Phng vn l mt cch thc i thoi trc tip trong , phn tch vin s ra cu hi v i tng phng vn s tr li cu hi. Qui trnh cc bc thc hin nh sau: Phn tch vin
Ln k hoch phng vn

n v
Xc nhn k hoch phng vn

Chun b ch , cu hi phng vn

Xp xp nhn s tham gia phng vn

Gi ch phng vn

t cu hi

Tr li

Ghi nhn

Kim tra v nh gi kt qu

B sung hoc xc nhn kt qu

Tm kim cc quan im khc


Hnh 1. S m phng qu trnh phng vn

u tin phn tch vin chun b mt k hoch phng vn tng qut, k hoch ny s lit k tt c cc lnh vc ca h thng cn kho st v thi gian d kin cho tng lnh vc. Mu k hoch nh sau: K hoch phng vn tng quan H thng:. Ngi lp: STT Ch Ngy lp:../../. Yu cu Ngy bt u Ngy kt thc

@ i Hc KHTN-TP HCM ; ASIA-ITC

34

Phn tch thit k h thng hng i tng bng UML

K hoch phng vn ny s c gi n n v c xc nhn v thi gian v b tr nhn vin no s tham gia tr li phng vn. Mt cuc phng vn s hiu qu hn khi ngi phng vn chun b cc cu hi v thit lp cho mnh mt hng dn phng vn v i tng tr li bit trc c cc cu hi chun b th chc chn thng tin tr li s xc nh hn v thi gian phng vn s c rt ngn. Sau khi kt thc phng vn, phn tch vin phi dnh thi gian tng hp li cc kt qa ghi nhn c, loi b cc thng tin trng lp, tm ra vn no vn cha r rng cn phi hi li, nu cn thit gi bn kt qu phng vn n ngi c phng vn nh xc nhn li. Sau , phn tch vin nn tham kho thm cc quan im khc v vn phng vn c mt quan im tng quan hn trong vic nh gi kt qu ghi nhn c. Bng k hoch hng dn bui phng vn H thng: Ngi phng vn:. V tr/ phng tin Vn phng, phng hp, in thoi, Mc tiu: D liu g? Lnh vc no? Chi tit bui phng vn Gii thiu Tng quan ca h thng Ch 1 Cc cu hi Ch 2 Cc cu hi ... Tm tt cc im chnh Cu hi ca ngi tr li phng vn Kt thc Quan st tng quan Pht sinh ngoi d kin Bng cu hi mu dnh cho phn tch vin chun b cu hi v ghi nhn kt qu phng vn (kt qu tr li v kt qu quan st v thi c ch biu hin bn ngoi) Ngi c phng vn: Cu hi Cu hi 1: Ngy:../../. Ghi nhn Tr li: Tng: Thi gian c lng (pht) Phn tch vin:..

@ i Hc KHTN-TP HCM ; ASIA-ITC

35

Phn tch thit k h thng hng i tng bng UML

Kt qu quan st: V d: Ngi c phng vn: Trn Th X Cu hi Cu hi 1: Ngy: 05/08/2003 Ghi nhn Tr li:

Tt c n hng ca khch hng phi Phi thanh ton trc hoc ngay khi giao. c thanh ton trc ri mi giao hng? Kt qu quan st: Thi khng chc chn Cu hi 2: Tr li Anh Ch mun h thng mi s gip cho D liu ch nhp mt ln v cc bo co Anh Ch iu g? t ng tnh ton Kt qu quan st Khng tin tng lm, hnh nh trin khai tht bi mt ln Loi cu hi phng vn: Cu hi m: l cu hi gip cho vic tr li c t do trong phm vi h thng. Kt qu tr li khng tun theo mt vi tnh hung c nh. Mc ch ca cu hi m l khuyn khch ngi tr li a ra c tt c kin c th trong khun kh cu hi. Do , cu hi m dng thm d, gi m vn v ngi tr li phi c mt kin thc tng i. V d: Anh (Ch) ang x l thng tin g? hoc Anh (Ch) c kh khn g khi qun l d liu ca mnh? Cu hi ng: l cu hi m s tr li l vic chn la mt hoc nhiu trong nhng tnh hung xc nh trc. Do , cu hi ng c dng xc nh mt tnh hung c th. V d: iu no di y l tt nht i vi HTTT Anh (Ch) ang s dng? D dng truy cp n tt c d liu cn Thi gian tr li tt nht ca h thng Kh nng chy ng thi vi cc ng dng khc Cu hi ng thng c thit k theo mt trong nhng dng sau: ng sai Nhiu chn la (c th mt tr li hoc tr li tt c chn la) T l tr li: t xu n tt, t rt ng n hon ton khng ng . Mi im trn t l nn c mt ngha r rng v nht qun v thng c mt im trung lp gia Xp hng cc chn la theo th t mc quan trng

Xp xp cu hi: th t cu hi phi hp l, ph hp vi mc tiu kho st v kh nng ca ngi tr li. Cc th t c th l: Thu hp dn: ban u l nhng cu hi rng, khi qut v cng v sau th thu hp n mt mc tiu. M rng dn: ban u cp n mt im no ri m rng dn phm vi cp
36

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Cu hi m u im Khuyt im Thi gian d ko di Ni dung tr li c th vt phm vi cu hi Khng rng buc kt qu tr li C th pht sinh tng mi -

Cu hi ng Thi gian tr li ngn Ni dung tr li tp trung, chi tit

Mt nhiu thi gian chun b cu hi Khng m rng c kt qu tr li

Kho st dng bng cu hi (questionaire) Phng vn l mt phng php hiu qu trao i v thu thp c nhng thng tin quan trng t pha ngi dng. Tuy nhin, thc hin phng vn cng rt tn km v thi gian v ngun lc. Phng phng kho st dng bng cu hi t tn km hn, thi gian tr li li nhanh hn, kt qu xc nh hn v thu thp c thng tin t nhiu i tng hn trong cng mt thi gian ngn. Tuy nhin, phng php ny li th ng v t mang li chiu su hn phng php phng vn. thc hin, cc cng vic phn tch vin cn phi lm r: Tp hp cu hi thnh tng nhm Phn loi cc i tng s dng thnh nhm v gi nhm cu hi no n nhm ngi no. Tng qut , vic gm nhm s c thc hin bi mt hoc s kt hp ca bn phng php sau: o i tng tch cc: i tng c v tr thun li, sn lng c kho st, hoc nhng i tng c nhiu ng lc tr li nht. o Nhm ngu nhin: chn ngu nhin mt nhm ngi dng trong danh sch gi cu hi. o Theo ch nh: chn nhng ngi tho cc tiu chun xc nh no . V d: nhng ngi lm vic vi h thng 2 nm tr ln, nhng ngi thng xuyn s dng h thng, o Chn theo loi: ngi dng, qun l, Thng thng, ngi ta kt hp cc phng php li. Trong bt k trng hp no khi nhn c tr li chng ta nn kim tra li cc trng hp khng tr li tm ra nguyn nhn v xem xt cc kt qu tr li l hp l v c chp nhn khng. So snh gia phng vn v bng cu hi c lit k di y c im Phng vn Bng cu hi S phong ph thng Cao (qua nhiu knh: tr li, Trung bnh ti thp (ch tr tin c ch,) li) Thi gian Chi ph C th ko di C th cao Thp, va phi Va phi

C hi nm bt v Tt: vic pht hin v chn lc Hn ch: sau khi thu thp pht hin cc cu hi c th c t ra d liu c s bi hoc ngi phng vn
@ i Hc KHTN-TP HCM ; ASIA-ITC 37

Phn tch thit k h thng hng i tng bng UML

hoc ngi c phng vn Tnh bo mt Vai tr tham gia Mi ngi bit ln nhau Khng bit ngi tr li Ngi c phng vn ng Tr li th ng, khng mt vai tr quan trng v c chc chn quyt nh kt qu th quyt nh kt qu

Phng vn nhm Cc yu cu c thu thp c th s dng phng php phng vn hoc iu tra dng bng cu hi. Tuy nhin, cc kt qu phng vn cc i tng khc nhau c th dn n s khng nht qun thng tin v h thng hin hnh v yu cu v h thng mi. Do , chng ta li phi thc hin vic kim tra, chn lc v quyt nh chnh xc u l thng tin ng v c chp nhn cui cng. Thng thng chng ta tip tc thc hin cc trao i v gp g cc nhn vt quan trng c th quyt nh nh v gii hn c kt qu thng tin. Cc cuc phng vn mi ny thng tn thi gian v c khi li tr li li cc cu hi m chng ta c tr li trc bi nhng ngi khc. Do , phng php phng vn tng c nhn ring l vn cn nhng hn ch nht nh.
Phn tch vin Cu hi v nghip v Ngi phng vn Tr li v k thut

Cu hi v k thut

Phng vn nhm Tr li v nghip v

Tr li v k thut Cu hi tng quan,

Phng vn nhm l mt phng php tt c th gip gii quyt c nhng yu cu tri ngc nhau. Cc c im ca phng vn nhm bao gm: Nhiu phn tch vin ph trch nhiu lnh vc khc nhau Nhiu i tng phng vn khc nhau mi i tng ph trch mt lnh vc, c th phn cp t qun l n nhn vin trc tip lin quan. T chc mt bui phng vn chung gm cc phn tch vin v cc i tng phng vn. Mi phn tch vin c th t cu hi v cc i tng u c th tr li. Phn tch vin c th ghi nhn li ch nhng kin lin quan n lnh vc ca mnh. Gim thiu thi gian phng vn: tt c cc yu cu s c thng sut ti mt thi im thay v phi phng vn tng i mt ti nhng thi im khc nhau v thi gian s ko di ra
38

Li im: -

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Cho php cc i tng phng vn nghe c kin ch o ca lnh o trn nhng kin bt ng lin quan n mt vn t ra. y l c hi lm cho cc i tng thng sut c kin ch o lin quan n h thng mi.

Nhc im: Nhc im chnh l rt kh t chc mt bui phng vn nhm v kh tm c mt thi gian v v tr thch hp cho tt c mi ngi. Ngy nay vi cng ngh truyn thng pht trin cho php t chc mt bui hp vi cc thnh vin khong cch xa nhau (v d: dng Video conference). Quan st trc tip Quan st trc tip ti ni lm vic, hin trng nhm thu thp chnh xc cch thc v qui trnh lm vic thc t ca h thng. u im: m bo tnh trung thc ca thng tin. Bi v cc phng php phng vn b ph thuc vo cch thc m ngi dng tr li, kin thc v ch quan ca h, Thu thp tt v thng tin m t tng quan v h thng. Thi gian c th ko di. Lm cho ngi dng kh chu khi thc hin cng vic, v c cm gic nh b theo di. Do , h thng thay i cch thc lm vic khng ng vi hin trng.

Hn ch

Thng thng, ngi ta kt hp cc phng php phng vn vi phng php quan st tin hnh kho st. Phn tch ti liu v th tc Phng php quan st h thng hot ng l phng php trc tip th phng php nghin cu ti liu v t tc l phng php quan st gin tip, bi v n khng nghin cu trc tip hin trng h thng m thng qua cc vn bn, giy t, ti liu, tp tin my tnh, m t h thng. Phng php ny gip xc nh chi tit v h thng hin hnh. C rt nhiu ti liu lin m t hot ng h thng, cc yu cu ca h thng trong tng lai: ti liu m t nhim v, cc k hoch kinh doanh, cu trc t chc, cc tra cu v chnh sch, bn m t cng vic, cc th tn bn trong v bn ngoi, cc bo co nghin cu, Chng ta c th thu thp c nhiu loi thng tin t cc hot ng chung ca n v n cc d liu c bn, d liu cu trc. Thng thng phng php ny kt hp vi phng php phng vn mc thp.

@ i Hc KHTN-TP HCM ; ASIA-ITC

39

Phn tch thit k h thng hng i tng bng UML

Ti liu hon chnh

Ti liu

Ti liu giao dch: chng t, th t, thng bo, Ti liu lu: s sch, tp tin, bo co, Ti liu tng hp: bo co, thng k, k hoch Ti liu t chc, chnh sch: cu trc t chc, m t cng vic, qui trnh, th tc, Ti liu b sung: bng hi, phiu thu thp, Ti liu nghin cu: bo co nghin cu, Ti liu chun b: cuc hp, my tnh,

Ti liu lm tip

Phn tch ti liu s mang li cc thng tin sau: Cc vn tn ti trong h thng (thiu thng tin, cc bc x l d tha) Cc c hi h thng p ng nhu cu mi (v d: vic phn tch ti liu cho thy t d liu lu tr m lu nay khng c th phn tch thng tin tng loi khch hng , iu ny to mt c hi cho b phn bn hng l c th nh gi v phn tch hot ng bn hng) Phng hng t chc c th tc ng n cc yu cu ca HTTT (v d: mt phng hng mi ca n v l lin kt khch hng v nh cung cp gn gi hn na vi n v m trc y cha tnh n hoc cha thc hin. Phng hng ny lm ny sinh cc nhu cu mi v HTTT cn c p ng nh l: h thng mi cn m ra cc knh lin lc thng tin cho khch hng, x l cc nh gi dch v khch hng,) L do tn ti ca h thng hin hnh, nhng chi tit khng c qun l bi h thng hin hnh v by gi th cn thit v kh thi trong h thng mi. Tm ra tn v v tr ca nhng c nhn c lin quan n h thng. Gip cho vic giao tip lin lc ng mc tiu hn. Gi tr ca n v, c nhn c th tr gip xc nh cc u tin i vi nhng kh nng khc nhau n t nhiu ngi dng khc nhau. Cc trng hp x l thng tin c bit khng thng xuyn khng th c xc nh bi nhng phng php khc. D liu cu trc, qui tc x l d liu, cc nguyn l hot ng c thc hin bi HTTT.

Mt loi ti liu hu dng khc l cc th tc m t cng vic ca tng c nhn hoc nhm. Cc th tc ny m t cch thc mt cng vic hot ng, gm d liu v thng tin c s dng v c to ra trong qu trnh thc hin cng vic. Tuy nhin, vic phn tch ti liu th tc cng c mt s nhc im sau: Cc th tc cng l ngun thng tin khng ng, trng lp Thiu ti liu Ti liu ht hn: dn n vic phn tch ti liu cho mt kt qu khng ng vi kt qu khi phng vn.

@ i Hc KHTN-TP HCM ; ASIA-ITC

40

Phn tch thit k h thng hng i tng bng UML

Cc phng php mi xc nh yu cu
Thit k kt hp ngi dng (JAD - Join Application Design) Mc tiu ca JAD l mt tin trnh xc nh yu cu trong ngi dng, nh qun l v cc nh phn tch lm vic vi nhau trong mt vi ngy din ra trong cc bui hp tp trung (trong mt phng) xc nh hoc kim tra li cc yu cu h thng v cc thit k chi tit. Do , JAD c hnh thc nh l phng php phng vn nhm. Tuy nhin, JAD i theo mt cu trc vai tr v chng trnh c bit hon ton khc vi phng php phng vn nhm l phn tch vin iu khin th t cu hi c tr li bi ngi dng. Mc ch chnh ca JAD trong giai on phn tch l thu thp yu cu h thng mt cch ng thi t nhiu i tng khc nhau, kt qu l mt tin trnh tp trung, c cu trc nhng c hiu qu cao. im ging nhau vi phng vn nhm l JAD cng cho php cc phn tch vin quan st v xc nh c u ng v u c bt ng trong cc ngi dng. Cc cuc gp g din ra trong vng nhiu ngy to ra c hi gii quyt bt ng hoc t nht cng hiu c ti sao c bt ng. Thnh phn ca JAD bao gm: Mt a im: mt a im (phng hp) c y cc trang thit b h tr cho cuc hp, mc ch l lm cho mi ngi c tp trung cao trong vic phn tch h thng. Ngi tham d bao gm: o Ngi ch tr: iu hnh cuc hp, thit lp chng trnh, gi thi trung lp, tp trung vo vic hng cuc hp vo ng chng trnh, gii quyt bt ng. o Ngi dng: i din ngi s dng h thng o Phn tch vin h thng: cc phn tch vin t cu hi v h thng o Ngi ghi chp: ghi chp tt c cc tng tin qu trnh din ra JAD o Nhn vin HTTT: ngoi cc phn tch vin, bao gm thm cc lp trnh vin, phn tch vin CSDL. Chng trnh: chng trnh th hin ni dung ca JAD bao gm cc bc v cuc hp phi din ra ng chng trnh ny Cng c: cc cng c tr gip phn tch thit k (thit k bn mu, v s ,), nh gi v tr gip cho cc phn tch nng cao hiu qu v gim thiu thi gian ca JAD.

S dng bn mu (prototype) xc nh yu cu S dng bn mu nh mt k thut xc nh yu cu, phn tch vin lm vic vi ngi dng xc nh cc yu cu c bn v ban u ca h thng. Sau , phn tch vin da trn yu cu ny xy dng mt bn mu ban u. Bn mu khi hon thnh s gi n ngi dng ngi dng s dng th v kim tra. c bit, vic trc quan ha cc m t yu cu bng li c chuyn i thnh h thng vt l s nhc nh ngi dng thay i nhng yu cu tn ti khng ph hp v pht sinh nhng yu cu mi (v d: trong bui phng vn ban u, ngi dng mun xy dng mt form nhp ha n vi tt c thng tin v khch hng, ho n, dch v, hng ho, qu trnh thanh ton, theo cch ngh ca ngi dng l tin li. Tuy nhin sau khi s dng bn mu, ngi dng s cm thy phc tp, ln ln v s thay i yu cu vi nhiu form khc nhau v s di chuyn hp l gia cc form). Kt qu th nghim ca ngi dng s phn hi ti phn tch vin v phn tch vin s dng thng tin phn hi ny ci tin bn mu ri tip tc gi n ngi dng v vng lp ny c tip tc nh vy cho n khi bn mu tho mn ngi dng.
@ i Hc KHTN-TP HCM ; ASIA-ITC 41

Phn tch thit k h thng hng i tng bng UML

Khi s dng phng php ny, phn tch vin cng phi s dng cc phng php truyn thng thu thp thng tin ban u.

Xc nh bi ton

Cc yu cu ban u Xy dng bn mu

Chuyn i ti h thng vt l Nu bn mu khng Ci t v s dng bn mu

Bn mu Cc yu cu mi

Vn pht sinh Phin bn k tip nh gi v nng cp bn mu

Hnh 2.

S xc nh yu cu dng phng php bn mu (The New paradigm for Systems Development J.D. Naumann & A.M. Jenkins )

Phng php bn mu s rt hu dng xc nh yu cu trong cc trng hp sau: Yu cu cha r rng v thng sut, thng l cc trng hp v h thng mi hoc l cc trng hp v h h tr ra quyt nh. Ngi dng v cc thnh vin khc tham gia vo vic pht trin h thng. Vic thit k phc tp v i hi phi c mt hnh thc c th nh gi. C nhng vn giao tip tn ti gia phn tch vin v ngi dng v tt c u mong mun lm sng t. Cng c (c bit l cng c pht sinh form v report) v d liu sn sng xy dng h thng. To ra mt xu hng lm vic khng theo chun ti liu hnh thc v yu cu h thng, v iu ny lm kh khn hn pht trin mt h thng y cn phi c mt chun mc tun theo. Cc bn mu c th tr thnh rt c th phong cch ca ngi dng ban u v kh thch ng vi nhng ngi dng tim nng khc. Cc bn mu thng c xy dng trn cc h thng n. Do , n b qua cc pht sinh v tng tc v chia s d liu vi nhng h thng khc.

Phng php ny cng c mt s hn ch: -

V d: m t kho st hot ng ca h thng my ATM ngn hng ABC ATM l mt loi my rt tin t ng, my c cc ngn hng lp t h tr cho khch hng c th rt tin cc v tr thun tin m khng phi n ngn hng. Hot ng ca my c m t nh sau: H thng c thit k iu khin mt my giao dch t ng (ATM Automated Teller
@ i Hc KHTN-TP HCM ; ASIA-ITC 42

Phn tch thit k h thng hng i tng bng UML

Machine) c mt u c t c th ATM, mt mn hnh giao tip (hin th v bn phm), mt khe nh chuyn tin, mt khay ng tin, mt my in in ho n v mt cng tc cho php nhn vin vn hnh bt v tt my. My ATM s giao tip vi h thng ngn hng thng qua mt phng thc thch hp. My ATM s phc v cho mt khch hng ti mt thi im. Khch hng ca ngn hng s c lu tr thng tin v tn, s th v PIN code (gm 4 k s) dng nhn dng khch hng, khch hng c th gi v rt tin t ti khon ca mnh ti my ATM. Mt khch hng phi c mt ti khon ti ngn hng. Vi ti khon ny, khch hng c th thc hin cc giao dch c cung cp bi my ATM ca ngn hng. Khi khch hng n my ATM s dng, khch hng s c yu cu a th vo my, hoc nhp vo s th v m PIN kim tra. Sau khi kim tra thnh cng, khch hng c th thc hin mt s giao dch trn my nh sau: Rt tin: khch hng nhp vo s tin cn rt. Nu s tin d trong ti khon tin gi nh hn s tin rt, h thng t ng to thm mt giao dch rt tin t ti khon tit kim. Nu s d trong ti khon vn khng h thng s thng bo cho khch hng v kt thc giao dch. - Gi tin: khch hng c th thc hin vic gi tin vo ti khon tin gi hoc tit kim. - Xem thng tin ti khon: khch hng c th chn xem thng tin v ti khon ca mnh sau khi ng nhp vo h thng. Khch hng cng c th hu b thc hin mt dch v bng vic chn hu b hoc ng t giao din my. -

Yu cu
Yu cu l: mt iu kin, hoc kh nng m h thng phi p ng. Yu cu c th phn thnh hai loi ln l yu cu chc nng (functional requirement) v yu cu phi chc nng (nonfunctional requirement):

Yu cu chc nng
Khi m t v mt h thng, chng ta ngh ngay n h thng s c nhng g thc hin trn quan dim ngi s dng. Nhng vic thc hin ny c xem nh l cc hnh ng m h thng phi thi hnh v c m t nh l chc nng, hnh vi, v yu cu. Yu cu chc nng c dng din t hnh vi ca mt h thng bng vic xc nh tt c iu kin u vo v u ra t c mt kt qu mong mun. Vic biu din yu cu chc nng thng thng qua cc s . Trong UML chng ta c th dng s use case, s hot ng, s tng tc. V d, trong mt s use case. Mi use case dng biu din mt chc nng ca h thng cn c cung cp ti mt i tng tc nhn.
Use case 1 Mi use case m t mt chc nng m h thng cn c p ng yu cu

Use case 2

@ i Hc KHTN-TP HCM ; ASIA-ITC

43

Phn tch thit k h thng hng i tng bng UML

Yu cu phi chc nng


L cc c im cht lng ca chc nng m h thng cn p ng nhm tho mn nhu cu ngi s dng. Cc c im cht lng ny c gi l cc yu cu phi chc nng. Chng ta phn loi yu cu phi chc nng nh sau: S tin li (usability): l cc yu cu v yu t thm m con ngi, tnh d hc, d s dng v s nht qun ca giao din, ti liu s dng v cc ti nguyn hun luyn. S tin cy (realibility): l cc yu cu v tn sut v gii hn v hng hc, kh nng phc hi, kh nng d on v chnh xc. Hiu nng (performance): l cc iu kin p t ln cc yu cu chc nng. V d: t l giao tc thc hin, tc thc hin, tnh sn sng, chnh xc, thi gian p ng, thi gian phc hi, dung lng b nh s dng cho mt hot ng thi hnh bi h thng. Kh nng chu ng (supportability): l cc yu cu v bn, kh nng duy tr, v cc yu cu khc v cht lng i hi h thng phi c cp nht sau thi im trin khai.

Phn loi yu cu
Vi cch tip cn truyn thng, cc yu cu c xem nh l cc c t vn bn tng ng vi mt trong hai loi trn, c din t qua hnh thc: H thng s . Tuy nhin, qun l y yu cu mt cch c hiu qu, cc yu cu phi c m t da trn s hiu bit ca ngi dng v cc i tng c lin quan. S hiu bit ny cung cp cho nhm pht trin l do ti sao? cng nh ci g? ca h thng s c pht trin. V h thng s lin quan n nhiu loi i tng khc nhau do , yu cu ca h thng cng c th c phn loi theo nhiu cp khc nhau: Nhu cu (need): M t cc yu cu mc cao thng l cc i tng c lin quan n d n nh l: ngi u t, ngi hng li t d n, ngi dng cui, cng nh ngi mua, ngi thu, ngi pht trin, ngi qun l, hoc nhng i tng khc m nhu cu ca h h thng phi p ng. Thu thp cc nhu cu ny chng ta phi kho st thng qua cc phng php kho st nh cp bn trn. Cc nhu cu c thu thp thng thng m t mc cao, khng r rng, nhc nhn v thng bt u nh l mt nhu cu hoc mong mun. V d cc nhu cu c th l: Ti cn gia tng kh nng sn xut, Ti c nhu cu m rng kh nng p ng n hng, Ti c nhu cu ci tin hiu nng hot ng ca h thng Ti mun m rng vic khai thc s liu ca khch hng Cc nhu cu ny c xem nh l mt tp hp rt quan trng gip chng ta hiu v cc mong mun thc s ca cc i tng lin quan mc cao v n s cung cp cc u vo then cht ti cc yu cu chi tit ca h thng gip chng ta xc nh cc l do v ni dung hnh vi h thng. c im h thng (feature) Trong qu trnh kho st h thng, nhu cu v yu cu thng i i vi nhau. Trong khi nhu cu l nhng ci mong mun mang li t h thng trn quan im cn khng r rng th yu cu ngc li c m t mang tnh gii php cho nhng nhu cu .
@ i Hc KHTN-TP HCM ; ASIA-ITC 44

Phn tch thit k h thng hng i tng bng UML

V d: mt nhu cu Ti mun thng bo n nh cung cp nhanh hn th mt yu cu l h thng s pht sinh thng bo t ng qua email n nh cung cp Cc yu cu ny chnh l cc biu thc mc cao v hnh vi h thng gi l c im (feature). Xt v kha cnh k thut, c im c xem nh l mt dch v c cung cp bi h thng p ng nhu cu. Nh vy, c im ca h thng chnh l s chuyn i quan im v ci g (thng bo nhanh hn) thnh nh th no (email t ng). xc nh mt c im chng ta c th thm vo mt s thuc tnh khc nh l: ri ro, u tin, n lc Yu cu phn mm thch hp hn trong qu trnh trao i vi ngi pht trin v chnh xc nhng g m h thng s lm. Chng ta cn mt a vo thm mt mc c t chuyn dch nhng nhu cu v c im thnh mt c t m chng ta c th thit k, ci t, th nghim. Cc c t ny gi l yu cu phn mm v c th tip cn theo hai loi: yu cu chc nng v yu cu phi chc nng. Nhu cu c im

Yu cu phn mm

Yu cu v thit k/ th nghim/ ti liu

Cu hi v bi tp
Cu hi
1. Mc ch ca kho st yu cu l g? 2. Cn tip cn nhng i tng no trong qu trnh kho st? 3. Cn tu thp cc ni dung g trong qu trnh kho st? 4. Cc phng php kho st yu cu? 5. u v khuyt im ca phng php phng vn? 6. u v khuyt im ca phng php dng bng cu hi? 7. Yu cu l g? Nh th no l yu cu chc nng, phi chc nng? 8. Yu cu c phn thnh bao nhiu loi? ngha ca tng loi?

@ i Hc KHTN-TP HCM ; ASIA-ITC

45

Phn tch thit k h thng hng i tng bng UML

Chng 5 M HNH HO USE CASE


Mc tiu
Ni dung ca chng ny cung cp cho sinh vin: Hiu ngha ca vic s dng s use case trong biu din yu cu h thng Xc nh c cc tc nhn v mi quan h gia cc tc nhn ca mt h thng phn mm Xc nh c cc use case biu din chc nng phn mm h thng v mi quan h gia tc nhn c use case nhm xy dng s use case m t yu cu phn mm h thng Tinh ch s use case nhm lm gia tng tnh din t, tnh ti s dng qua vic s dng cc lin kt <<extend>>, <<include>>

Gii thiu
Trong giai on phn tch, kt qu ca qu trnh kho st yu cu phn nh qu trnh lm vic ca ngi pht trin vi ngi s dng. Cc kt qu ny phi nhm n yu t ca ngi dng. C ngha l ngi pht trin trc tin phi din t bc tranh ca h thng tng lai theo cch nhn ca ngi s dng. iu ny s gip cho ngi dng c th thy c h thng s lm tho mn cc yu cu nh th no v chnh l cha kho u vo cho vic pht trin h thng trong cc giai on v sau. Mt cng c gip din t iu ny chnh l m hnh use case. Jacobson v cng s ca ng (1992) l nhng ngi tin phong trong vic s dng m hnh use case phn tch yu cu h thng. Bi v m hnh use case t trng tm biu din h thng hin ti lm g, h thng mi s lm g v mi trng ca n. N gip cho ngi pht trin c th hiu r v yu cu chc nng h thng m khng quan tm n chc nng ny c ci t nh th no. hiu yu cu ca h thng, chng ta phi tm ra ngi dng s s dng h thng nh th no. Do , t quan im mt ngi dng, chng ta pht hin cc tnh hung s dng khc nhau ca ngi dng, cc tnh hung ny c thit lp bi cc use case. Tng hp cc use case v tc nhn cng vi quan h gia chng s cho ta mt m hnh use case m t yu cu ca h thng. Trong chng 6, qu trnh m hnh ho nghip v c p dng i vi cc h thng nghip v v kt qu ca n s cung cp s use case t vic thng nht cc yu cu h thng phn mm t ng ho hot ng ca h thng nghip v . Tuy nhin, trong nhng h thng m khng c hot ng nghip v (v d: h thng nhng), hoc cc nghip v ca h thng khng qu phc tp hoc khng quan tm m hnh ho nghip v th vic xy dng m hnh use case phn mm s l bc tip cn m hnh ho u tin v h thng. Mt tin trnh xy dng s use case bao gm cc bc sau: Xc nh tc nhn h thng o Ai ang s dng h thng? o Hoc trong trng hp pht trin mi th ai s s dng h thng? Pht trin use case o Ngi dng (tc nhn) ang lm g vi h thng? o Hoc trong trng hp h thng mi th ngi dng s lm g vi h thng? Xy dng s use case
46

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

o Xc nh mi quan h gia tc nhn use case o Xc nh mi quan h gia cc use case Phn chia s use case thnh cc gi (package)

Xc nh tc nhn
Tc nhn (actor)
ngha: mt tc nhn l mt i tng bn ngoi h thng giao tip vi h thng theo mt trong nhng hnh thc sau: Tng tc, trao i thng tin vi h thng hoc s dng chc nng h thng Cung cp u vo hoc nhn cc u ra t h thng Khng iu khin hot ng ca h thng

K hiu
<<Actor>> <Tn tc nhn> Tn tc nhn

Tn tc nhn: tn tc nhn l mt danh t

Quan h gia cc tc nhn:


L quan h tng qut ha v chuyn bit ho V d:

Khch hng

Nhn vin

Khch quen

Nhn vin bn hng

Th kho

Xc nh tc nhn
Xc nh tc nhn cng c xem c tm quan trng nh xc nh class, use case, lin kt,. Khi xc nh ngi s dng phn mm h thng, chng ta ng quan trng vn quan st ngi no ang s dng h thng m chng ta nn xc nh xem vai tr chu trch nhim trong vic s dng h thng. Ngha l tc ng ln h thng theo ngha cung cp thng tin cho h thng hoc nhn kt qu x l t h thng. Tc nhn c hiu l mt vai tr tham gia vo h thng khng ging nh mt con ngi c th hoc mt cng vic. Mt i tng c th tham gia vo mt hoc nhiu vai tr

@ i Hc KHTN-TP HCM ; ASIA-ITC

47

Phn tch thit k h thng hng i tng bng UML

Ngi dng
Nguyn Vn A

Tc nhn
Khch hng

Use case
Bn hng

Nguyn Th B

NV bn hng

Trn Vn C

Th kho

t mua NGK

Qua qu trnh kho st v phn tch ti liu h thng, chng ta c th nhn ra cc tc nhn thng qua cc cu hi sau: Ai ang s dng h thng? Hoc ai c tc ng bi h thng? Hoc nhm i tng no cn h thng tr gip lm cng vic? (tc nhn chnh) Ai tc ng ti h thng? Nhng nhm i tng no h thng cn thc hin hot ng ca n (hot ng gm chc nng chnh v chc nng ph, nh l chc nng qun tr)? Nhng phn cng hoc h thng bn ngoi no s dng h thng?

V d: trong hot ng ca my ATM ca mt ngn hng, cc tc nhn c xc nh l:

Khch hng

Nhn vin ngn hng

Nhn vin vn hnh

Trong , cc tc nhn Khch hng, Nhn vin ngn hng l cc tc nhn chnh (primary actor) ca h thng ATM. Bi v khch hng l mc tiu m h thng tng tc; Nhn vin ngn hng s dng h thng tr gip cng vic. Trong khi , Nhn vin vn hnh l tc nhn ph (secondary actor) bi v tc nhn ny m nhn nhng chc nng ph m h thng cn c thc hin hot ng ca n. Hoc trong mt th vin ca trng i hc, cc tc nhn ca h thng phn mm qun l th vin gm:

c gi

Th th

Nh cung cp

Xc nh use case
Use case
Mt Use case c xem nh mt chc nng h thng t quan im ngi dng, nh vy tp hp tt c use case biu din b mt ca h thng bao gm cc chc nng cn c cung cp cho cc i tng tng tc lm vic vi h thng. Nh vy, use case dng m t yu cu
@ i Hc KHTN-TP HCM ; ASIA-ITC 48

Phn tch thit k h thng hng i tng bng UML

ca h thng mi v mt chc nng, mi chc nng s c biu din nh mt hoc nhiu use case. V d: h thng ca hng NGK ta c mt vi use case Bn hng, qun tr tn kho, K hiu
Tn use case Bn hng Qun tr kho

Xc nh use case
Chng ta bt u t tp cc tc nhn xc nh trong bc u tin. ng vi mi tc nhn: Tm cc nhim v v chc nng m tc nhn s thi hnh hoc h thng cn tc nhn thi hnh v m hnh ho n nh l use case. Use case s i din mt dng s kin dn ti mt mc tiu r rng (hoc trong mt vi trng hp, dn ti mt vi mc tiu ring bit c th l cc phng n thay th cho tc nhn hoc cho h thng so vi dng s kin chnh) t tn cho use case: tn use case nn t nhm phn nh mt m t tng quan v chc nng ca use case. Tn nn dn t nhng g xy ra khi mt th hin ca use case c thi hnh. Mt hnh thc t tn use case ph bin l : ng t (do) + danh t (what). M t use case mt cch ngn gn bng vic p dng cc thut ng gn gi vi ngi s dng. iu ny s lm cho m t use case t m h.

V d: trong h thng ATM Tc nhn Khch hng s s dng h thng qua cc chc nng: Gi tin Rt tin Truy vn thng tin v ti khon Khi ng h thng ng h thng
Gi tin Rt tin Truy vn thng tin ti khon

Tc nhn Nhn vin vn hnh s s dng cc chc nng

Khi ng h thng

ng h thng

Gi tin: khch hng ng nhp vo h thng v yu cu gi tin vo ti khon. Khch hng s xc nh ti khon v s tin gi, h thng s to mt giao tc gi tin v lu vo h thng. Cc bc nh sau: Yu cu xc nh ti khon H thng hi s tin gi
49

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Nhp vo s tin gi Khch hng a tin vo my ATM

Rt tin: khch hng ng nhp h thng v yu cu rt tin t ti khon. Khch hng xc nh ti khon v lng tin rt. Sau khi kim tra s d ti khon cn , h thng s to mt giao tc rt tin v lu vo h thng. Cc bc nh sau: Yu cu xc nh ti khon Yu cu xc nh s tin cn rt Nhp s tin rt Kim tra s d ti khon v s tin hin c my c khng ? Chuyn tin ra ngoi

Truy vn thng tin ti khon: khch hng ng nhp vo h thng v yu cu xem thng tin v cc giao dch ca ti khon. H thng hin th cc thng tin v cc giao tc to ln mn hnh cho khch hng. Khi ng h thng: h thng c khi ng khi nhn vin vn hnh bt cng tc ca my. Nhn vin vn hnh s c yu cu nhp vo s tin hin hnh ca my nm trong kt ng tin. Sau , h thng s thit lp mt kt ni ti ngn hng v cc dch v ca my ATM bt u vn hnh. ng h thng: h thng c ng li khi nhn vin vn hnh m bo rng khng c khch hng no ang s dng my. Khi , nhn vin vn hnh s ly cc bao tin gi ra, b sung lng tin, giy, Trong h thng qun l th vin, cc use case c xc nh nh sau:
X l mn sch X l tr sch Tra cu sch

ng k thnh vin

Mua sch

Xc nh mi quan h
Quan h tc nhn use case Quan h ny cho bit tc nhn s tng tc vi use case. Mt use case lun lun c khi to bi mt tc nhn v c th tng tc vi nhiu tc nhn. K hiu
Tn use case Tc nhn

V d:

@ i Hc KHTN-TP HCM ; ASIA-ITC

50

Phn tch thit k h thng hng i tng bng UML

Truy vn thng tin ti khon

Nhn vin vn hnh Rt tin Khch hng Gi tin Khi ng h thng ng h thng

Ngn hng

X l mn sch

X l tr sch

Th th

Nh cung cp

ng k thnh vin Mua sch Tra cu sch c gi

Mi quan h gia cc use case Vic m t use case c th s kh hiu nu use case ny cha ng nhiu dng ph hoc dng ngoi l ch x l cho nhng s kin trong nhng iu kin c bit. lm n gin m t ny chng ta s dng thm cc mi kt hp <<extend>> v <<include>>. Lin kt m rng (<<extend>>): c dng khi chng ta c mt use case tng t nh use case khc nhng c nhiu hn mt vi x l c bit. Ging nh lin kt tng qut - chuyn bit, trong , use case chuyn bit l mt m rng ca use case tng qut bng vic a thm vo cc hot ng hoc ng ngha mi vo use case tng qut, hoc b qua hot ng ca use case tng qut. V d: gi s ng nhp l mt use case c bn. Use case ny s i din cho tt c nhng g c xem l thc hin ng nhp mt cch xuyn sut.Tuy nhin, nhiu vn c th tc ng n dng s kin chnh. V d, m s PIN khng hp l, hoc th khng c c do b h,. Do , chng ta khng phi lun lun thi hnh cc hot ng thng xuyn ca mt use case c cho v nh vy, cn thit to ra cc use case mi gii quyt nhng tnh hung mi. Tt nhin, chng ta c th a vo use case c bn cc ni dung x l c bit
@ i Hc KHTN-TP HCM ; ASIA-ITC 51

Phn tch thit k h thng hng i tng bng UML

. Tuy nhin, iu ny c th dn n s phc tp vi nhiu lun l ring bit v s lm gim vai tr ca dng chnh. gii quyt vn ny chng ta c th s dng quan h <<extend>>. y chng ta gom cc x l c bn hoc bnh thng vo trong mt use case (c bn). Cc x l c bit vo nhng use case (chuyn bit) khc. Ri to mt lin kt <<extend>> gia use case c bn ti cc use case chuyn bit khai bo rng: ngoi x l dng chnh (c bn), use case c bn c m rng n cc tnh hung x l c bit c gii quyt trong cc use case chuyn bit.
Use case ng nhp

<<extend>> Use case

<<extend>> Gii quyt PIN khng hp l

To mt use case tng qut c tn l Giao dch ca cc use case Rt tin, Gi tin v Truy vn thng tin ti khon. To cc lin kt <<extend>> t use case Giao dch n cc use case ny. Nh vy, mt rt tin, hoc gi tin, hoc truy vn thng tin ti khon l mt loi giao dch m khch hng c th s dng trn my ATM. C ngha rng, cc x l trong use case Giao dch s cung cp mt dng chung v khi khch hng chn mt loi giao dch c bit no th use case ny s m rng vic gii quyt thng qua cc use case chuyn bit.

Giao dch

Khch hng <<extend>> <<extend>> Gi tin Rt tin

<<extend>> Nhn vin vn hnh Truy vn thng tin ti khon

Khi ng h thng

ng h thng

Ngn hng

Giao dch: khch hng tng tc vi h thng bt u bng vic ng nhp h thng. Sau khi ng nhp, khch hng c th thc hin cc giao dch. Sau y l cc bc: a th vo my Thc hin ng nhp Yu cu loi giao dch Nhp loi giao dch Thc hin giao dch y th ra
52

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Yu cu ly th Ly th

Trong h thng qun l th vin, use case Mn sch ngoi dng hot ng chnh cn c cc dng ph. Dng ph ny s c kch hot gii quyt vn khi mt c gi n mn ti liu nhng khng c trong th vin v th vin s mn ti liu t nhng th vin khc c lin kt. Hoc do c gi khng tho cc iu kin c mn (mn sch qu hn cha tr ca ln mn trc). Do , chng ta tch dng ph ny v use case Mn sch t th vin thnh vin v v to mt lin kt <<extend>> t use case ny n use case X l mn sch.
X l mn sch

<<extend>> Mn sch t th vin thnh vin

<<extend>> X l t chi mn sch

Lin kt s dng (<<include>>): c thnh lp khi chng ta c cc use case m tm thy mt vi use case c nhng dng hot ng chung, v trnh m t dng hot ng chung lp li trn nhng use case ny, chng ta c th tch nhng dng hot ng chung ra thnh mt use case. Use case mi ny c th s dng bi nhng use case khc. Quan h gia nhng use case vi use case c trch ra ny gi l quan h <<include>>. Quan h s dng gip chng ta trnh s trng lp bng cch cho php mt use case c th c chia s.
X l mn sch <<include>> Kim tra th Th th X l tr sch <<include>>

Trong v d trn, use case mn sch v tr sch u phi thc hin cng vic kim tra th th vin ca c gi, do chng ta pht sinh mt use case mi l kim tra th bng cch trch ra hot ng kim tra th th vin t hai use case trn v to mt lin kt <<include>> ti use case t hai use case ti use case mi. Cc use case X l mn sch v X l tr sch u tha hng tt c hot ng ca use case ca use case kim tra th. Trong h thng ATM, use case Giao dch s c mi lin kt <<include>> vi use case ng nhp.
Giao dch <<include>> Khch hng <<extend>> Gii quyt PIN khng hp l ng nhp

ng nhp: khch hng nhp vo m s PIN gm bn k s. Nu m s PIN hp l, ti khon ca khch hng s sn sng cho cc giao dch. Cc bc nh sau:
@ i Hc KHTN-TP HCM ; ASIA-ITC 53

Phn tch thit k h thng hng i tng bng UML

Yu cu mt khu (m s PIN) Nhp mt khu Kim tra mt khu

Gii quyt PIN khng hp l: nu m s PIN khng hp l, h thng s hin th mt thng bo ti khch hng. S ging nhau gia lin kt <<extend>> v lin kt <<include>> l tt c u c xem nh l mt loi k tha. Khi chng ta mun chia s mt s hot ng chung trong nhiu use case, dng lin kt <<include>> bng cch trch cc hot ng chia s thnh mt use case mi. Khi chng ta mun thm vo mt t khc bit cho mt use case m t mt tnh hung c bit trong mt tnh hung chung, chng ta s to mt use case mi c lin kt <<extend>> vi use case chung . Da vo cc lin kt c thit lp cho cc use case chng ta phn use case thnh hai loi: Use case tru tng: l use case cha hon ho ngha l khng tng tc vi bt k mt tc nhn no m c s dng bi mt use case khc. Use case tru tng cng c th c lin kt <<extend>> hoc lin kt <<include>> trong nhng mc khc. V d: cc use case Kim tra th, X l t chi mn sch, l cc use case tru tng. Use case c th: l use case c tng tc trc tip vi mt tc nhn. V d: cc use case X l mn sch, X l tr sch, hoc Khi ng my,ng my,.
ng nhp <<include>> <<extend>> Gii quyt PIN khng hp l

Giao dch

Khch hng <<extend>> <<extend>> Gi tin Rt tin

<<extend>> Truy vn thng tin ti khon

Nhn vin vn hnh

Khi ng h thng

ng h thng

Ngn hng

M hnh use case ca h thng my ATM

@ i Hc KHTN-TP HCM ; ASIA-ITC

54

Phn tch thit k h thng hng i tng bng UML

Mn sch t th vin thnh vin <<extend>>

X l t chi mn sch <<extend>>

<<include>> Kim tra th <<include>>

X l mn sch

X l tr sch

Th th

Nh cung cp

ng k thnh vin Mua sch Tra cu sch c gi

M hnh use case h thng phn mm qun l th vin

Phn chia cc use case thnh cc gi (package)


Mi use case minh ho mt kch bn trong h thng. Khi gp nhng h thng tng i phc tp th chng ta nn thu hp tiu im ca cc kch bn trong h thng bng cch phn chia thnh cc gi. Mi gi phn nh mt phm vi ca h thng m chng ta ch mun qun l n khi chng ta truy cp gi . V d, c th chia cc se case ca h thng my ATM thnh ba gi: Giao dch, Rt gi v Vn hnh
Giao dch Rt gi

Vn hnh

Trong , gi Giao dch gm cc use case: Giao dch, ng nhp, Gii quyt PIN khng hp l; gi Rt gi gm cc use case: Gi tin, Rt tin, Truy vn thng tin ti khon; v gi Vn hnh gm cc use case: Khi ng h thng, ng h thng H thng qun l th vin c chia thnh ba gi nh sau: Mn tr sch, ng k thnh vin, v Mua sch.

@ i Hc KHTN-TP HCM ; ASIA-ITC

55

Phn tch thit k h thng hng i tng bng UML

Mn tr sch

ng k thnh vin

Mua sch

Trong , gi Mn tr sch gm cc use case: X l mn sch, X l tr sch, Kim tra th, Mn sch t th vin thnh vin, X l t chi mn sch; gi ng k thnh vin gm use case: ng k thnh vin; gi mua sch gm use case: Mua sch.

@ i Hc KHTN-TP HCM ; ASIA-ITC

56

Phn tch thit k h thng hng i tng bng UML

Cu hi v bi tp
Cu hi
9. M hnh use case l g? 10. Ti sao m hnh ho use case l hu dng trong phn tch h thng? 11. Ai c th l tc nhn? 12. Khi no chng ta s dng lin kt <<extend>> v <<include>> trong m hnh ho use case? 13. Xc nh tc nhn bng cch no? 14. Phn bit s khc nhau gia ngi dng v tc nhn? 15. Tai sao nn phn chia m hnh use case thnh cc gi?

Bi tp
1. Hy xy dng s use case m t mt h thng din n trao i hc tp ca khoa Cng Ngh Thng Tin. Hot ng ca din n c m t nh sau: Tt c mi ngi khi truy cp vo a ch ca din n u c th xem c thng tin ni dung trao i ca din n, tin tc trong din n. Khi mt thnh vin mun gi thng tin ln din n. Thng tin c th l mt ch cn trao i, hoc mt kin lin quan n mt ch c a ra, hoc l mt tin tc. Trc tin, thnh vin phi ng nhp vo h thng vi mt tn v m ng nhp. Sau khi ng nhp thnh cng, thnh vin c th s dng chc nng son tho ca h thng son tho v gi thng tin ln din n. Thnh vin c th xem c cc thng bo kt qu duyt tin t qun tr v nhng ln gi trc. Mt ngi dng khi truy cp th c th ng k thnh vin ca din n. Khi ng k, ngi dng s phi nhp cc thng tin lin quan nh: h tn, tn ng nhp, m sinh vin, m ng nhp. Vic ng k c hiu lc sau khi qun tr duyt v chp nhn. Khi mt thnh vin ng nhp vo quyn qun tr (qun tr h thng). H thng s hin th cc cc thng tin c gi bi cc thnh vin. ng vi mi thng tin, qun tr c th chp nhn hoc t chi ng thng tin ln din n: o Khi thng tin c nh du l chp nhn, h thng s cp nht li trng thi ca thng tin v s hin th thng tin ny ti din n. o Khi thng tin c nh du l t chi, h thng cng s cp nht li trng thi thng tin v ghi ch v l do t chi thng tin. Ngoi ra, ngi qun tr cng c th duyt v chp nhn hoc t chi mt thnh vin mi ng k. Hu mt thnh vin. Cp nht thng tin ca mt thnh vin.

2. Phn chia s use case ca h thng trn thnh cc gi. M t s lin kt gia cc gi (nu c) v s use case cho tng gi.

@ i Hc KHTN-TP HCM ; ASIA-ITC

57

Phn tch thit k h thng hng i tng bng UML

Chng 6 M HNH HO NGHIP V (BUSINESS MODELING)


Mc tiu
Cung cp cho ngi hc cc kin thc v: Nh th no l m hnh ho nghip v, mc tiu v quy trnh ca m hnh ho nghip v Cc hot ng trong phn tch, thit k qui trnh nghip v p dng UML vo m hnh ho nghip v. c bit, s dng s use case biu din ni dung ca h thng nghip v trong giai on phn tch. S dng s i tng trong vic thit k nghip v. Xc nh cc yu cu t ng ho t h vic phn tch v thit k thng nghip v.

Gii thiu
M hnh ha nghip v l mt k thut tm hiu quy trnh nghip v ca mt t chc. M hnh nghip v xc nh cc quy trnh nghip v no c h tr bi h thng. Tm li, song song vi qu trnh kho st tm hiu v vn h thng th cch tip cn nghip v l phng php c h thng nht nm bt cc yu cu ca cc ng dng nghip v. Khi nhng h thng ngy cng phc tp, vic m hnh ha trc quan v cch vn dng cc k thut m hnh ha ngy cng tr nn quan trng hn. C nhiu nhn t b sung cho s thnh cng ca mt d n, nhng vic c mt tiu chun ngn ng m hnh ha cht ch l nhn t quan trng nht. Mt trong nhng mc ch u tin ca m hnh ho nghip v l to ra cc i tng (m hnh) nhm d hiu hn v c th thit k nhng chng trnh my tnh bng cch thng qua hin tng th gii thc nh: ngi, nguyn liu lm vic v cch thc chng thc hin nhng nhim v ca h. Nh vy, vic m hnh ha nghip v l lp m hnh nhng t chc th gii thc. Phm vi nh hng ca vic m hnh ha nghip v c th bin i tu theo nhu cu v h thng nghip v c th. C th n gin chng ta ch nhm vo vic tng nng sut bng cch ci tin nhng quy trnh tn ti, hoc l ang to ra nhng s ci tin c nh hng ln bng cch thay i ng k nhng qui trnh nghip v da trn s phn tch k lng cc mc tiu v cc khch hng ca t chc. Cho d l bt k trng hp no, nhng h thng thng tin h tr cho h thng nghip v u b nh hng bi s ci tin ca hot ng nghip v.

Ti sao phi m hnh ho nghip v?


Trong qu trnh pht trin h thng phn mm, c bit l trong cc h thng phc tp, mt vn tn ti rt ln cho thy i ng pht trin h thng thng him khi c mt kin thc hiu bit y v nghip v ca t chc m chnh h l ngi xy dng h thng phn mm thc hin t ng ho x l thng tin trong mi trng nghip v . Trong khi , ngi s dng phn mm chnh l cc i tng x l nghip v thng him khi am hiu tng tn v cc cng ngh v cc k thut ca phn mm nhm chn la v p dng n mt cch ph hp v hiu qu vi nhu cu ca mnh. iu ny lun to ra mt khong cch gia ngi xy dng v ngi s dng h thng. Khong cch ny l mt tr ngi dn n nhiu s tht bi hoc khng hiu qu ca nhiu d n tin hc ho h thng. Do , lm th no cc i tng ny c th nm bt v thng nht c tt nht v cch gii quyt h thng trong qu trnh tin hc ho. M hnh ho nghip v l mt n lc nhm a ra cc cch thc din t nhng qui trnh nghip v di dng nhng i tng v hnh ng tng tc gia chng.
@ i Hc KHTN-TP HCM ; ASIA-ITC 58

Phn tch thit k h thng hng i tng bng UML

Nu khng m hnh ha nghip v th ta c th gp nhiu ri ro do nhng ngi pht trin khng c thng tin y v cch thc m nghip v c thc hin. H ch lm nhng g m h hiu r, nh l thit k v to ra phn mm, m khng quan tm n nhng g nghip v thc thi. iu ny gy ra mt s lng ph do trc xy dng cc qui trnh nghip v tn km. Ri ro do nhng h thng c xy dng khng h tr cc nhu cu thc s ca t chc cng c th xy ra rt cao. Vic hiu r nhng qui trnh nghip v l quan trng c th xy dng nhng h thng ng. Vic m hnh ha nghip v c mc tiu chnh l s pht trin h thng, trong cng vic thc s l xc nh ng cc yu cu h thng. C s xy dng h thng l s dng nhng vai tr v trch nhim ca con ngi cng nh nh ngha cc cng vic c x l bi nghip v. iu ny c th hin trong mt m hnh i tng nghip v, m qua c th thy cc vai tr i tng s c lm r. Mt khi xc nh c cc m hnh nghip v, chng ta cn phi thit lp nhng mi quan h gia cc use case h thng v nhng m hnh nghip v. iu ny s cho php cc nh phn tch c thng bo khi c nhng thay i trong h thng. Tm li, mc ch ca m hnh ha nghip v l: Hiu c cu trc v cc hot ng ca t chc ang c h thng trin khai. Hiu c cc vn hin ti trong t chc v xc nh cc vn cn ci tin. Bo m rng cc khch hng, ngi dng cui, v cc nh pht trin c s hiu bit chung v t chc. Thit lp cc yu cu t ng ho h thng nhm h tr t chc. t c nhng mc ch trn, lung cng vic m hnh ha nghip v m t mt bc tranh tng qut v t chc. T xc nh cc qui trnh (process), cc vai tr (role), v cc trch nhim ca t chc ny trong m hnh use-case nghip v (business use-case model) v m hnh i tng nghip v (business object model).

Lung cng vic trong m hnh ho nghip v


H thng nghip v l mt loi h thng, do qu trnh tip cn m hnh ho cng tun theo quy trnh chung qua nhiu giai on. Ti liu ny s gii thiu hai giai on m hnh ho nghip v s dng UML. Phn tch quy trnh nghip v: y l giai on u tin ca m hnh ha nghip v gip cho cc nh qun l d n hiu r tnh trng t chc hin ti v hot ng ca t chc, nm bt yu cu ca ngi dng v khch hng t phc tho v gii hn h thng pht trin. Thit k quy trnh nghip v: y l giai on c t chi tit mt b phn ca t chc bng cch m t lung cng vic ca mt hay nhiu nghip v, xc nh cc i tng lm vic v cc thc th nghip v trong biu din hin thc ha nghip v v sp xp cc hnh vi ca nghip v ng thi xc nh cc trch nhim, thao tc, thuc tnh v mi quan h gia cc ngi lm vic v cc thc th trong nghip v.

@ i Hc KHTN-TP HCM ; ASIA-ITC

59

Phn tch thit k h thng hng i tng bng UML

Phn tch quy trnh nghip v

nh gi hin trng t chc

Xc nh thut ng Lp m hnh use case nghip v

Xc nh rng buc

Xc nh tc nhn v use case nghip v

Thit k quy trnh nghip v

c t use case

Xc nh tha tc vin v thc th

c t tha tc vin Xc nh cc yu cu t ng ho

Hin thc ho use case

Lp m hnh i tng nghip v

c t thc th

Phn tch quy trnh nghip v


Cc cng vic ca quy trnh phn tch nghip v bao gm: nh gi v nm bt thng tin v t chc. Xc nh cc i tng lin quan (stakeholder) v khch hng ca h thng. nh ngha phm vi ca vic m hnh ha nghip v. Tn thnh nhng tim nng ci tin v cc mc tiu mi ca t chc. M t nhng mc tiu chnh ca t chc. Nm bt thng tin v t chc thit k h thng ph hp vi nhu cu ca khch hng th vic hiu r thng tin v cu trc t chc s c trin khai h thng l iu quan trng. Tt c cc thnh vin trong d n u cn phi nm bt r rng cc thng tin ny. Chng ta c th m t ngn gn cc b phn cu thnh t chc v mi quan h gia cc b phn ny thng qua cc s t chc v trnh by ngn gn cc thng tin lin quan.

@ i Hc KHTN-TP HCM ; ASIA-ITC

60

Phn tch thit k h thng hng i tng bng UML

minh ho cho ni dung m hnh nghip v, gio trnh ny a ra mt h thng nghip v v hot ng ca mt siu th XYZ. Tt c cc v d s c minh ho da trn vic phn tch cc hot ng nghip v ca siu th ny. S t chc ca siu th XYZ

T vn phng

T bo v

T thu ngn

T mt hng

T tin hc

T vn phng: Gm 1 Gim c v 2 ph Gim c c nhim v iu phi ton b hot ng ca siu th. T phi nm c tnh hnh mua bn, doanh thu ca siu th bo co li cho ban gim c. Vic bo co c thc hin hng thng, hng qu hoc cng c khi bo co t xut theo yu cu. T bo v: Kim tra, bo v an ninh ca Siu Th, ghi nhn Hng Ha i li ca khch hng. T thu ngn: Thc hin vic bn hng v lp ha n cho khch hng ng thi ghi nhn li s hng ho bn c ca mi loi bo co cho t qun l sau mi ca lm vic. T mt hng: Nhim v ca t l kim tra cht lng hng ho v nm tnh trng hng ho ca siu th, m bo hng ho lun trong tnh trng tt nht khi n tay khch hng. Khi pht hin hng h hng phi kp thi bo ngay cho t vn phng c bin php gii quyt v iu phi hng. Ngoi ra, thng xuyn thng k s lng hng tn trn quy, bo co v t vn phng T tin hc: Thc hin vic nhp liu, kt xut cc bo co cn thit phc v cho t Vn Phng. Xc nh cc i tng c lin quan v khch hng Vic tin hc ha cng tc qun l trong mt t chc to s ra nhng bin i, phn do vic t ng ha cng vic hnh chnh, phn do kin thit li t chc v s vn hnh ca h thng. Nhng thay i quan trng pht sinh t vic thit k h thng thng tin, ch yu tp trung vo vic tin hc ha, nu khng bit thc hin dn dn s c nguy c ln chm n con ngi trong t chc dn n tht bi ngay t u. Bn thn cng vic thit k h thng thng tin c thc hin di nhiu gc khc nhau, thm ch k c tm l, vi nhng c th ring bit v c phc tp cao. Chnh v th, cn phi tm hiu nhng i tng c lin quan v khch hng ca h thng l ai, ng thi nm bt c nhu cu ca h. Nu nh gi tnh trng ca t chc, ta nn xc nh nhng i tng c lin quan trong nghip v. Nhng khi xc nh cc mc tiu ca h thng th cn xc nh nhng i tng lin quan trong phm vi d n v iu cng ph thuc vo phm vi m hnh ha nghip v, cng nh nhng phm vi no cn xc nh i vi vic m hnh ha.

@ i Hc KHTN-TP HCM ; ASIA-ITC

61

Phn tch thit k h thng hng i tng bng UML

V d: th hin thng tin cc i tng lin quan v ngi dng h thng qua bng sau trong h thng siu th nh sau: Bng m t tm tt cc i tng lin quan: Tn Ngi l i din Vai tr qun Gim c, ngi qun l Theo di tin trnh pht trin ca d n v siu th theo di tnh hnh hot ng ca siu th.

Nhn vin Ngi nhp cc thng Chu trch nhim trong khu bn hng siu bn hng tin trong h thng. th, duy tr hot ng ca siu th. Bng m t tm tt cc ngi dng: Tn Ngi qun l M t i tng lin quan p ng cc nhu cu qun l siu th nh Ngi qun l hng ha, khch hng, doanh s.

Nhn vin bn m bo rng h thng s p ng cc nhu Nhn vin bn hng hng cu ca cng vic bn hng. Khch hng p ng nhu cu tra cu thng tin v hng ha c trong siu th.

Nm bt nhu cu ca cc i tng lin quan Nhim v trao cho h l nhng cng vic thc s nh l x l thng tin, ch khng ch n thun l thao tc vi my tnh v cc thit b, v vy ta khng c php b qua cc kin, nhu cu ca h i vi h thng tin hc tng lai. Hy lit k danh sch cc nhu cu chnh bng cch in thng tin vo bng sau: Tn i tng lin quan/ khch hng u tin Nhu cu Gii php hin hnh Gii php xut

V d: Tn i tng lin quan/ khch hng Ngi qun l u tin Nhu cu Gii php hin hnh Gii php xut

Cao

Xem cc bo co Bo co thng k theo cc thng k doanh thu yu cu khc nhau

Hin th bo co theo nhiu tiu ch khc nhau, thng tin b tr d nhn v n gin nhng y .

Gii hn h thng pht trin


@ i Hc KHTN-TP HCM ; ASIA-ITC 62

Phn tch thit k h thng hng i tng bng UML

Cn phi t c s tha thun v nhng thc th chnh nm ngoi h thng vi cc i tng lin quan v cc thc th ny vi nhau. Trong trng hp m hnh ha nghip v xc nh cc yu cu cho mt h thng c th, c th c nhng phn trong t chc s khng b nh hng bi h thng ny, nhng phn c th c xem nh cc thc th nm bn ngoi.
T chc H thng nghip v thuc phm vi

i tng mi trng t chc

i tng thuc h thng i tng bn trong t chc nhng nm ngoi h thng nghip v ang xt

Nhng ranh gii t ra cho h thng c th khc rt nhiu so vi nhng g c th c xem l ranh gii ca t chc. Nu mc ch l xy dng mt h thng mi l h tr bn hng, ta khng cn quan tm n bt c vic g trong kho hng, nhng cn xem kho hng nh l mt tc nhn bi v chng ta cn phi lm r ranh gii gia chng. Trong v d ny, cc thc th bn trong t chc c xem nh l bn ngoi h thng ang xt v c m hnh ha thnh tc nhn nghip v. Nu mc tiu xy dng h thng l nhm nng cao kh nng trao i thng tin vi cc i tc hay cc nh cung cp (ng dng business-to-business) nh qun l t hng th cc i tc hay cc nh cung cp ny ca t chc c m hnh ha cn phi c quan tm. Trong trng hp ny, cc thc th bn ngoi t chc s nm trong t chc. iu ny ch xy ra khi s cng tc gia cc bn nh hng su sc n phng thc hot ng ca nhau. Nhng nu s nh hng ny khng qu ln hay nghim trng th cc i tc c xem nh l cc thc th bn ngoi v c m hnh ha thnh tc nhn nghip v.
H thng t chc

H thng nghip v thuc phm vi i tng bn ngoi t chc nhng thuc h thng

Nu mc ch l xy dng cc ng dng tng qut, ty bin (nh l ng dng k ton ti chnh, cc ng dng ng gi) th chng ta cn trnh by cch thc khch hng s s dng sn phm cui nh th no v n l mt thc th tru tng.
@ i Hc KHTN-TP HCM ; ASIA-ITC 63

Phn tch thit k h thng hng i tng bng UML

Xc nh v trnh by cc vn ca h thng Trong qu trnh kho st h thng, c th thu thp rt nhiu nhu cu cn thay i ca khch hng. y c xem l cc vn ca khch hng cn chng ta gii quyt trong h thng tng lai. V th ta cn phi hiu v trnh by r rng cc vn ny mi thnh vin trong d n nm bt tt. C th p dng mu nh sau: Vn i tng chu tc ng nh hng ca vn Mt gii php thnh cng m t vn cc nhn vt b nh hng bi vn tc ng nh hng ca vn lit k mt vi li ch ca mt gii php thnh cng

V d: Vn i tng chu tc ng nh hng ca vn Mt gii php thnh cng C s d liu ca cc khch hng thn thit c lu tr nhiu ni v khng c s ng b . Khch hng, ngi qun l Dch v khch hng thn thit ch thit lp c tng siu th. iu ny l bt hp l, lm rc ri trong vic nng cao dch v khch hng, lm gim kh nng cnh tranh ca siu th. Nhn vin c th s dng chung mt ti khon (account) cp cho mi khch hng c dng tt c siu th. Nng cao kh nng chm sc khch hng ca siu th tt hn t thu ht c khch hng nhiu hn, tng doanh thu ca siu th. Gip ngi qun l c th lm tt cng tc qun l khch hng, theo di tnh hnh phc v khch hng mt cch d dng.

Xc nh nhng lnh vc cn u tin Cn phi tho lun v t c s nht tr v nhng lnh vc cn c u tin trong m hnh ha nghip v. S tho lun ny c th theo nhiu hng khc nhau, ty vo mc tiu ca m hnh ha nghip v: Nu mc ch m hnh ha nghip v l to mt m hnh thc hin s ci tin n gin, th ch cn m t nghip v hin ti. Khi , nhng lnh vc no cn ci tin phi xc nh r. Nu mc ch l to mt nghip v mi hay thay i hon ton nghip v hin ti, th phm vi m hnh ha s ln hn. Lc ny, cng vic ti cu trc cc use case nghip v ca mt nghip v tn ti hay thm cc use case nghip v mi - ti thit k nghip v (business reengineering) hay thit k mi nghip v (business creation) l cn thit.

V d: Trong H thng qun l nghip v bn hng ti siu th, vic m hnh ha nghip v nhm mc ch ci tin nghip v nn chng ta ch cn xc nh nhng nghip v cn ci tin. ci tin nghip v, mt s cu hi c t ra nh sau:
@ i Hc KHTN-TP HCM ; ASIA-ITC 64

Phn tch thit k h thng hng i tng bng UML

Cu trc ca t chc c th c ci tin khng? l cch thc t chc nhn vin lm vic trong cc qui trnh nghip v. Ta c th xy dng cc nhm nhn vin c nhiu nng lc khc nhau thc hin nhng cng vic chnh, gim s lng ngi gi vai tr mt cng vic dn n gim chi ph, gim cc sai st v cho cc nhn vin c nhiu trch nhim hn, khi h khng phi ch ngi khc quyt nh. C cng vic no khng cn thit khng? Xc nh nhng cng vic khng cn thit trong t chc nh: vit bo co m khng c ai c, lu tr nhng thng tin khng bao gi c s dng .... C cng vic no ging hoc tng t nhau c thc hin nhng ni khc nhau khng? Nh cng vic c lm li, do ngi ta khng tin tng vo kt qu hoc khng bit trc lm g hay cc kt qu c kim tra v chp thun nhiu ln. C vn no v thi gian v chi ph khng? Thi gian thc hin c th l mt vn thm ch nu mi th u hot ng tt. xc nh cng vic no c thi gian qu cp bch, hy phn tch mi use case nghip v s dng thi gian. Xc nh mi quan h gia thi gian sn xut, thi gian ch, v thi gian truyn. Kt qu chnh ca hot ng ny l mt bn m t tm nhn nghip v (Business Vision), trong m t tm nhn ca h thng tng lai. Bng tm nhn nghip v xc nh mt tp hp cc mc tiu ca cng vic m hnh ha nghip v, cung cp u vo cho qui trnh kim chng d n, c lin quan mt thit vi cc trng hp nghip v (Business Case), cng nh ti liu tm nhn ca cng ngh phn mm. N c s dng bi cc nh qun l, nhng ngi c thm quyn v ngn qu, nhng ngi lm vic trong m hnh ha nghip v, v cc nh pht trin ni chung. Su liu ny phi bo m rng: N phi c cp nht v c phn phi. N phi gii quyt c u vo t tt c cc i tng c lin quan. Xc nh v m t cc thut ng nghip v Mt trong nhng kh khn ca d n phn mm qun l h thng thng tin l s bt ng ngn ng din t vn gia khch hng v qun tr d n hay gia cc thnh vin tham gia trong d n. iu ny gy ra cc kh khn trong vic tm hiu hay hiu lm cc quy trnh nghip v trong t chc ca cc thnh vin trong d n. Nhm trnh nhng ri ro ny, chng ta cn phi xc nh v thng nht nhng thut ng trong cc quy trnh nghip v ca t chc. Su liu thut ng ny ch thc s hu ch khi cn phn bit r nhng t chuyn mn ca nghip v c dng trong vic m hnh ha nghip v vi cc t chuyn mn ca nghip v c dng trong qu trnh pht trin phn mm. Thng thng, mi thut ng c m t nh mt danh t vi nh ngha ca n. Tt c cc bn tham gia phi thng nht vi nhau v nh ngha ca cc thut ng ny. V d: Bng thut ng ca h thng qun l siu th nh sau Thut ng Ngi qun l Din gii Ngi qun l siu th v cng l ngi qun tr h thng. Nguoiquanly c gi chung cho nhng ngi c cp quyn l "Qun l", c th bao gm gim c, ph gim c, k ton, nhn vin tin hc, L nhn vin lm vic trong siu th. Nhn vin bn hng, ng quy thu tin v tnh tin cho khch hng. Thng qua cc m vch qun l
65

Nhn vin bn hng

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

trn tng mt hng c nhn vin bn hng nhp vo h thng thng qua mt u c m vch. Tn ng nhp Tn ng nhp ca ngi s dng h thng. Mi nhn vin khi vo lm trong siu th s c ng k mt tn ng nhp nhm qun l. Khi ng nhp vo h thng, nhn vin s s dng tn ny ng nhp. Ngi qun l chu trch nhim qun l tn ng nhp ca nhn vin. Tn ti duy nht. Mt khu ng nhp ca ngi s dng h thng. Mi nhn vin khi s dng tn ng nhp s c ng k km theo mt mt khu ng nhp. Mi nhn vin ch c bit duy nht mt mt khu ca mnh. Mt khu c th rng. Quyn ng nhp vo h thng. Ty theo quyn v chc v trong cng ty, nhn vin c quyn ng nhp tng ng. Khch hng thn thit ca siu th hay khch hng ng k tham gia chng trnh khch hng thn thit ca siu th. S im ca khch hng thn thit trong siu th c thng do mua vt mc thanh ton ca siu th. Ngy cp th khch hng thn thit cho khch hng khi h ng k chng trnh khch hng thn thit ca siu th. Ha n tnh tin ca siu th khi khch hng mua hng ti siu th Chng loi hng ha trong siu th, c phn chia tg ng theo quy hng trng by trong siu th. Loi hng trong siu th c phn chia theo tiu ch cng ty sn xut, n v tnh.... Hng ha c by bn trong siu th. S lng hng ha cn li trong siu th cha bn c cho khch hng. T l phn trm gim i vi khch hng thn thit Bo co thng k tnh hnh kinh doanh ca siu th theo tiu ch no nh: hng ha, qu, khong thi gian.... Bo co thng k s lng hng ha ca siu th theo tiu ch no nh: hng ha, qu, khong thi gian....

Mt khu

Quyn ng nhp Khch hng thn thit im thng Ngy cp th Ha n thanh ton Chng loi hng Loi hng Hng ha Hng tn Mc gim Thng k doanh thu Thng k hng ha

Xc nh tc nhn v use case nghip v


Mc ch: Phc tho cc qui trnh trong nghip v. Xc nh ranh gii ca nghip v cn c m hnh ha. Xc nh nhng g s tng tc vi nghip v. To ra cc lc ca m hnh use-case nghip v. Tc nhn (actor) trong mi trng nghip v

@ i Hc KHTN-TP HCM ; ASIA-ITC

66

Phn tch thit k h thng hng i tng bng UML

hiu r c mc tiu ca nghip v, cn phi bit nghip v tng tc vi nhng ai; ngha l ai ang yu cu hay quan tm n u ra ca n. Nhng ai ny c biu din nh l cc tc nhn nghip v (business actor). Thut ng tc nhn trong trng hp ny m ch vai tr m mt ngi hay mt th g nm gi trong khi tng tc vi nghip v. Nhng loi ngi dng nghip v sau y c kh nng c xem l nhng tc nhn nghip v: khch hng, nh cung cp, i tc, ng nghip nhng nghip v khng c m hnh ha ... Nh vy, mt tc nhn thng tng ng vi con ngi. Tuy nhin, c nhng tnh hung, chng hn nh mt h thng thng tin ng vai tr ca mt tc nhn. V d, ngn hng c th qun l hu ht cc giao dch trc tuyn t mt my tnh th cc use case ca h thng s tng tc vi ngn hng, khi ngn hng c xem l mt tc nhn, iu c ngha tc nhn lc ny l mt h thng thng tin.

Mt tc nhn biu din mt loi ngi dng c th hn l mt ngi dng thc t. Nhiu ngi dng thc t ca mt nghip v c th ch gi mt vai tr ca tc nhn; ngha l, h c xem nh l cc th hin ca cng mt tc nhn. Hoc mt ngi dng c th gi nhiu vai tr tc nhn khc nhau; ngha l cng mt ngi c th l th hin ca cc tc nhn khc nhau. Cch thc t tn cc tc nhn nghip v: tn ca mt tc nhn nghip v cn phn nh vai tr nghip v ca n, ng thi c th p dng c vi bt c ai - hay bt c h thng thng tin no - ng vai tr y. Tiu ch nh gi nhng tha tc vin chun: Mi s vt tng tc trong mi trng nghip v - c con ngi v my mc - u c m hnh ha bi cc tc nhn. Khng th chc chn tm thy tt c tc nhn cho n khi tt c use case c tm ra v c m t y . Mi tc nhn "ngi" din t mt vai tr, ch khng phi mt ngi c th. Chng ta phi ch r t nht hai ngi c th c vai tr ca mi tc nhn. Nu khng, ta c th ang m hnh ha mt ngi, ch khng phi mt vai tr. D nhin l c nhng tnh hung ch tm thy mt ngi c th ng mt vai tr. Mi tc nhn m hnh ha mt s vt bn ngoi nghip v. Mi tc nhn c lin quan n t nht mt use case. Nu mt tc nhn khng tng tc vi t nht mt use case, th nn loi b n i. Mt tc nhn c th khng tng tc vi nghip v theo nhiu cch khc nhau hon ton. Nu mt tc nhn tng tc theo nhiu cch khc nhau hon ton, th mt tc nhn c th c nhiu vai tr khc nhau. Trong trng hp , tc nhn c chia thnh nhiu actor, mi ci biu din cho mt vai tr khc nhau.

@ i Hc KHTN-TP HCM ; ASIA-ITC

67

Phn tch thit k h thng hng i tng bng UML

Mi tc nhn c mt ci tn v m t r rng. Tn ca tc nhn cn trnh by vai tr nghip v ca n, tn ny phi d hiu cho nhng ngi khng nm trong nhm m hnh ha nghip v. Xc nh use case nghip v Cc qui trnh ca mt nghip v c xc nh thnh mt s cc use case nghip v khc nhau, mi ci biu din mt lung cng vic c th trong nghip v. Mt use case nghip v xc nh nhng g xy ra trong nghip v khi n c thc hin; n m t s thc thi mt chui cc hnh ng nhm to ra mt kt qu c gi tr cho mt tc nhn c th. Tn ca use case cn din t nhng g xy ra khi mt th hin use case c thc hin. Do , tn cn dng ch ng, thng thng l mt ng t kt hp vi mt danh t. Tn c th m t cc hot ng trong use case t gc nhn bn ngoi hoc bn trong, v d: t hng hay nhn t hng. Cho d mt use case m t nhng g xy ra bn trong nghip v, cch t nhin nht vn l t tn use case t gc nhn ca tc nhn ch cht trong use case . Mt khi quyt nh theo phong cch no, ta nn p dng cng mt quy tc cho tt c use case trong m hnh nghip v. V d:

Kim tra (check-in) c nhn Hnh khch

Kim tra (check-in) nhm Hng dn vin

Mt hnh khch hoc c th i du lch ring l hoc cng vi mt nhm. Khi i du lch cng vi mt nhm, s c mt hng dn vin du lch cng i v vic check-in c th c thc hin cho mt on bi hng dn vin hoc bi mt hnh khch i din. Phn loi use case nghip v Khi nhn vo cc hot ng trong mt nghip v, ta c th xc nh ti thiu ba loi cng vic tng ng vi ba loi use case sau: Cc hot ng lin quan n cng vic ca t chc, thng c gi l cc qui trnh nghip v. Nhiu hot ng khng lin quan n cng vic ca t chc, nhng phi c thc hin theo mt cch no lm cho nghip v hot ng. V d nh qun tr h thng, dn dp, an ninh, Cc use case ny mang c im h tr. Cng vic qun l: cc use case c c im qun l cho thy nhng loi cng vic nh hng n cch thc qun l cc use case khc v cc mi quan h ca nghip v vi nhng ch nhn ca n.

Thng thng, mt use case qun l m t tng quan v cc mi quan h gia nh qun l vi nhng nhn vin lm vic trong cc use case. N cng m t cch thc pht trin v khi to cc use case. V d: cc loi use case nghip v ca mt t chc nh hng
@ i Hc KHTN-TP HCM ; ASIA-ITC 68

Phn tch thit k h thng hng i tng bng UML Nghip v


Tip th <<qun l>> Phc v n tra <<qun l>> Th trng

Qun l
Thc thi nghip v

<<qun l>> <<qun l>>

Phc v n ti

Khch

Mua nguyn liu Nh cung cp

Tng qun l

Pht trin nghip v

H tr
<<qun l>> <<qun l>> Pht trin ngun lc Pht trin qui trnh

Lu rng mt use case nghip v quan trng i khi c th l mt use case nghip v h tr trong mt nghip v khc. V d: pht trin phn mm l mt use case nghip v quan trng ca mt cng ty pht trin phn mm, trong khi n c phn loi thnh mt use case nghip v h tr trong mt ngn hng hay mt cng ty bo him. Qui m ca mt use case nghip v i khi kh quyt nh c mt dch v l mt, hay nhiu use case nghip v. p dng nh ngha ca mt use case nghip v cho qui trnh ng k chuyn bay. Mt hnh khch a v v hnh l cho nhn vin ng k, nhn vin ny s tm mt ch ngi cho hnh khch, in ra th ln my bay v bt u x l hnh l. Nu hnh khch c mt hnh l thng thng, nhn vin ng k s in ra th nh du hnh l v th kim sot hnh khch, cui cng kt thc use case nghip v bng cch gn th nh du cho hnh l, a th kim sot cng vi th ln my bay cho hnh khch. Nu hnh l l mt dng c bit hay cha nhng th c bit khng th vn chuyn mt cch bnh thng, hnh khch phi mang n n mt quy hnh l c bit. Nu hnh l qu nng, hnh khch phi tip tc n vn phng v my bay tr tin, bi v cc nhn vin ng k khng x l vic ng tin. Cu hi t ra l c cn mt use case nghip v ti quy ng k, mt use case nghip v khc ti quy hnh l c bit v ci th ba vn phng v? Hay l ch cn mt use case nghip v duy nht? Chc chn l s giao dch ny c lin quan n ba loi hnh ng khc nhau. Nhng cu hi y l c mt hnh ng no s c ngha i vi hnh khch mang hnh l c bit nu hnh khch ny khng thc hin nhng hnh ng cn li? Cu tr li l khng c, n ch l mt th tc hon chnh - t lc hnh khch n quy ng k n khi ng ta tr thm ph ph thu (ch c gi tr hay c ngha i vi hnh khch). Nh vy, th tc hon chnh c lin quan n ba quy khc nhau chnh l mt trng hp s dng hon chnh, tc l mt use case nghip v. Ngoi tiu ch ny, iu quan trng l cn gi m t ca cc dch v c lin quan mt thit ny cng vi nhau, sau ny c th xem li chng cng mt lc, iu chnh, kim tra v vit hng dn cho chng, v ni chung l qun l chng nh mt n v. Kt qu ca qu trnh tip cn phn tch nghip v l (cc) s use case nghip v v cc m t ca use case.
@ i Hc KHTN-TP HCM ; ASIA-ITC 69

Phn tch thit k h thng hng i tng bng UML

Qun l xut hng Nh cung cp Qun l nhp hng Qun l khch hng thn thit Kim k hng ho

Khch hng

Qun l nhn vin

Ban gim c

Thng k bo co

Qun l bn hng

M hnh use case m t nghip v ca siu th

Bi tp
1.1 Cho mt h thng c m t nh sau: Government Solutions Company (GSC) l cng ty chuyn bn cc trang thit b cho cc c quan chnh ph lin ban. Khi mt c quan cn mua trang thit b t GSC, c quan ny s pht sinh mt n t hng da trn mt hp ng chun trc c tho thun vi vi cng ty. GSC qun l cc hp ng vi cc c quan lin bang. Khi mt n t hng gi ti nhn vin qun l hp ng ca GSC, nhn vin ny xem xt li cc thng tin v cc iu khon v iu kin ca hp ng k vi c quan bng cch s dng m s hp ng c tham kho trong n t hng tm kim trong c s d liu ca GSC ri so vi thng tin ca n t hng xc nh n t hng c hp l hay khng. n t hng lp l nu hp ng cha ht hn, danh sch trang thit b phi thuc cc thit b ca hp ng, v tng chi ph phi khng vt qu gii hn xc nh trc. Nu n t hng khng hp l, nhn vin qun l hp ng s gi tr li n t hng cho c quan km theo mt l th din gii l do n t hng khng hp l v lu li mt bn sao ca l th. Nu n t hng hp l, nhn vin qun l hp ng lu vo c s d liu n t hng cng vi trng thi l cha gii quyt. Sau , n t hng s c gi n b phn p ng n hng, b phn ny s kim tra tn kho cho mi thit b da trn thng tin tn kho ly t c s d liu. Nu c bt k mt thit b no khng s giao, b phn ny s to ra mt bo co lit k tt c cc mt hng khng giao cng vi s lng thiu. Tt c cc n t hng s c chuyn ti kho thc hin vic giao hng cho c quan. Sau khi giao hng, ti y s lp mt ho n giao hng ghi nhn cc thit b c giao gi cho c quan, v nh km mt bn sao ha n ny vi n t hng gi tr li cho nhn vin qun l hp ng. Nhn vin ny s kim tra nu n t hng c giao ht th cp nht li trng thi n t hng l hon tt v lu thng tin ho n giao hng vo c s d liu. Hng thng, nhn vin qun l hp ng s lp cc bo co cc thit b c t hng trong thng, cc thit b c giao, cc n t hng ang cha gii quyt, cc hp ng ht hn gi cho gim c gip cho gim c nm c tnh hnh hot ng ca cng ty. Hy xc nh cc tc nhn nghip v ca h thng Xc nh tt c cc use case nghip v Xy dng s use case nghip v

1.2 M t h thng Qun l cho thu vn phng cao c nh sau:


@ i Hc KHTN-TP HCM ; ASIA-ITC 70

Phn tch thit k h thng hng i tng bng UML

Mt cng ty a c mun tin hc ha hot ng cho thu cao c ca mnh cho cc cng ty lm vn phng hot ng kinh doanh. Cng ty c nhiu cao c trong thnh ph, mi cao c c qun l bi mt tn, c mt a ch, m t c im v tng din tch s dng. Mt cao c s c nhiu tng, mi tng c nhiu phng, mi phng c cc thng tin cn qun l l: m phng, din tch s dng, s ch lm vic (theo tnh ton ca cng ty), m t v tr, gi cho thu. Hot ng thu phng Khch hng mun thu phng th phi n ni qun l ta nh tham kho v tr, din tch phng, v ti y khch hng c nhn vin tip tn cung cp thng tin tnh trng gi c ca phng. Gi c mi phng c n nh ty theo cao, din tch s dng, Khch hng sau khi ng thu th n gi v trnh by yu cu lm hp ng vi b phn qun l nh, b phn ny son tho hp ng da trn yu cu thu mn c cung cp bi khch hng, ri tnh ton gi thu v lp hp ng. Hp ng sau khi c k nhn bi khch hng v trng b phn qun l nh s c lu li mt bn, v mt bn s gi cho khch hng. Khch c th lm hp ng thu cng lc nhiu phng. Ni dung ca hp ng bao gm: s hp ng, ngy hiu lc hp ng, ngy thanh ton u tin, khch hng, thi gian thu v chi tit gm cc phng cn thu, gi thu. Thi gian ca t thu t nht su thng v sau c th gia hn thm. Khch phi tr trc tin thu ca su thng u tin, t thng th by nu c th phi tr vo u mi thng. Gi thu phng khng k chi ph in trong , do cui thng khch cng phi thanh ton cc chi ph in. u mi tun, phng k ton kim tra li tt c hp ng n hn phi thanh ton trong tun. Sau lp thng bo gi ti cc khch hng chun b thanh ton. Mi ln thanh ton, khch hng phi n phng k ton ca cng ty ngh thanh ton. Ti y, phng k ton s tm kim hp ng t h s lu, kim tra thng tin t thanh ton ca khch hng. Sau lp ho n thanh ton v lu li mt bn, mt bn gi cho khch hng. Cc thng tin trn ho n s l: s phiu, ngy thanh ton, l do thanh ton (tin phng hay tin in nc), thanh ton cho hp ng no v tng s tin thanh ton. Gia hn hp ng Khi gn ht hn hp ng, khch hng mun gia hn thm thi phi n yu cu b phn qun l xin gia hn hp ng. B phn ny s kim tra xem thc s hn hn cha, thanh ton y cha. Nu cc iu kin trn c p ng th s lp mt bn hp ng gia hn. Ni dung bn gia hn gm c: s hp ng cn gia hn, ngy k gia hn, m t v chi tit gia hn gm cc phng gia hn (cc phng ny phi c thu bi hp ng) v thi gian gia hn. Vic thanh ton gia hn cng s c lp theo tng thng v mt hp ng c th c gia hn nhiu ln. Hot ng truy xut Cc bo co hng ngy c b phn qun l lp: Danh sch phng ang c thu Danh sch phng ang trng Danh sch nhn vin ang lm vic Danh sch cng ty ht hn thu trong thng Hy xc nh cc tc nhn nghip v ca h thng Xc nh tt c cc use case nghip v Xy dng s use case nghip v
71

Yu cu

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Thit k qui trnh nghip v


c t cc use case nghip v: Bc u tin trong giai on thit k ny chnh l c t cc use case nghip v nhm lm r ni dung ca cc use case ny. Ch rng chng ta ch m t cc ni dung x l th t lun l gia cc x l ny, v kt qu, cch m t ny c lp tng i vi mt mt trng thc t x l n c ngha rng chng ta ch lm r phn ni dung ca use case m cha m t r cc vai tr thc hin v cc i tng b tc ng bi use case. Hy bt u m t lung cng vic bnh thng trong use case nghip v, xc nh s tng tc gia cc tc nhn v use case. Sau , khi lung cng vic bnh thng n nh, ta bt u m t cc lung cng vic thay th khc. Mt lung cng vic use-case nghip v c trnh by theo cc cch thc nht tr v tham kho bng ch gii chung khi vit nhng vn bn m t. M t tt c nhng lung s kin bt thng v lung s kin ty chn. M t mt lung s kin con trong phn b sung ca lung cng vic i vi cc trng hp: Nhng lung s kin con tham gia phn ln lung cng vic chnh. Nhng lung cng vic bt thng gip lung cng vic chnh r rng hn. Nhng lung s kin con xy ra nhng khong thi gian khc nhau trong cng mt lung cng vic v chng c th c thc thi. Ngoi ra, c th c t cu trc lung cng vic trong mt s hot ng. V d: s hot ng c t use case nhp hng
[C hng t hp tc x] Tip nhn hng ho t hp tc x [C hng t nh cung cp] Tip nhn hng ho t nh cung cp

Lp phiu nhp hng

In phiu nhp hng

Phn loi hng theo chng loi

Phn loi hng theo loi

Phn loi hng theo n v tnh

Lu thng tin loi hng v s lng theo loi

V d: s hot ng c t use case Quan l khch hng thn thit

@ i Hc KHTN-TP HCM ; ASIA-ITC

72

Phn tch thit k h thng hng i tng bng UML [C yu cu thm KHTT] Tip nhn yu cu thm khch hng thn thit

Kim tra gi tr ho n mua hng gn nht [Khng p ng iu kin] [p ng iu kin] Cp th KHTT Thng bo t chi

Lu thng tin khch hng

Trong s hot ng trn, lung cng vic chnh ca use case bao gm bn hot ng c v trn mt lung thng ng. Sau lung cng vic ph nh Thng bo t chi c xc nh b sung thnh cc nhnh. Xc nh cc tha tc vin nghip v (business worker) v cc thc th chu tc ng bi nghip v (business entity) Xc nh tha tc vin nghip v Mt tha tc vin biu din s tru tng ca mt ngi hot ng trong nghip v. Mt i tng tha tc vin tng tc vi cc i tng tha tc vin khc ng thi thao tc vi cc i tng thc th hin thc ha mt th hin use-case. Mt tha tc vin c khi to khi lung cng vic ca th hin use-case tng ng bt u hay ngay vo lc ngi c vai tr ca tha tc vin bt u thc hin vai tr trong th hin use-case. Mt i tng tha tc vin thng "sng" khi use case thc thi. UML phn chia tha tc vin thnh hai loi: tha tc vin thc hin cc cng vic bn trong h thng v tha tc vin tng tc trc tip vi cc tc nhn bn ngoi h thng. Thc s vic phn chia ny ch mun chuyn bit hn na vai tr ca cc tha tc vin trong vic giao tip vi tc nhn bn ngoi. K hiu:

Th th

Nhn vin bn hng

Qun tr h thng

Trong cc k hiu trn cho thy, Nhn vin bn hng c m hnh ho nh l mt tha tc vin giao tip trc tip vi cc tc nhn bn ngoi. Qun tr h thng c m hnh ho l mt tha tc vin lm vic bn trong h thng. Th th l mt tha tc vin c th va lm vic bn trong v va chu trch nhim giao tip vi tc nhn ben ngoi, tuy nhin, nu c m hnh ho theo nh trn th chng ta mun nhn mnh vi tr hot ng bn trong h thng ca Th th hn l vai tr giao tip vi tc nhn bn ngoi. Xc nh cc thc th nghip v
@ i Hc KHTN-TP HCM ; ASIA-ITC 73

Phn tch thit k h thng hng i tng bng UML

Cc thc th biu din nhng th c x l hoc s dng bi cc tha tc vin khi chng thc thi mt use case nghip v. Mt thc th thng biu din mt s vt c gi tr cho mt s th hin use case hoc th hin use case, v vy i tng thc th sng lu hn. Ni chung, thc th khng nn gi thng tin no v cch thc n c s dng bi ai. Mt thc th biu din mt ti liu hoc mt phn thit yu ca sn phm. i khi n l mt th g m h, nh kin thc v mt th trng hay v mt khch hng. V d v cc thc th ti nh hng l Thc n v Thc ung; ti phi trng l V v Th ln my bay (Boarding Pass) l nhng thc th quan trng. M hnh ha cc hin tng thnh nhng thc th ch khi nhng lp khc trong m hnh i tng phi tham chiu n cc hin tng ny. Nhng th khc c th c m hnh ha thnh cc thuc tnh ca cc lp thch hp, hay ch cn c m t bng vn bn trong nhng lp ny. Tt c mi s vt trong nghip v nh: sn phm, ti liu, hp ng, ... u c m hnh ha thnh cc thc th nghip v, v n tham gia vo ti thiu mt use case nghip v. K hiu:

Thc n

Thc ung

Th ln my bay

Cc khi nim UML h tr thm cho qu trnh m hnh ho nghip v Ngoi ra, UML (phin bn 1.5) cn b sung thm mt s stereotype cho php m hnh ho y hn v h thng nghip v: n v t chc (organization unit) M t : tp hp cc tha tc vin, thc th, use case nghip v, cc s , v cc n v t chc khc. Di tng ny c dng phn chia m hnh nghip v thnh nhiu phn khc nhau.

Nhp sch

Mn sch

Dn v cng vic (WorkUnit) M t : l mt loi h thng con c th cha mt hoc nhiu thc th. N l mt tp i tng hng nhim v nhm hnh thnh mt tng th c th nhn thc c bi ngi dng cui v c th c mt giao din xc nh cch nhn cc thc th cng vic thch hp ti nhim v .
<<subsystem>> n v cng vic

Hin thc ho use case nghip v Trong mt d n m hnh ha nghip v hng use-case, hy pht trin hai khung nhn nghip v. Use case nghip v trnh by khung nhn bn ngoi ca nghip v, qua xc nh nhng g thit yu cn thc hin cho nghip v phn phi cc kt qu mong mun cho tc nhn. N cng xc nh trong nghip v cn c nhng tng tc no vi tc nhn khi use case c
@ i Hc KHTN-TP HCM ; ASIA-ITC 74

Phn tch thit k h thng hng i tng bng UML

thc thi. Khung nhn ny c pht trin khi ang la chn v nht tr v nhng g cn c thc hin trong mi use case. Mt tp hp cc use case cung cp mt ci nhn tng quan v nghip v, n rt hu ch thng bo cho cc nhn vin v nhng thay i, nhng im khc bit ca nghip v ang thc hin, v nhng kt qu no c mong mun. Mt khc, mt hin thc ha use-case cung cp mt khung nhn bn trong v use case, qua xc nh cch thc cng vic cn c t chc v thc hin nh th no nhm t c nhng kt qu mong mun nh trn. Mt hin thc ha bao gm cc tha tc vin v thc th c lin quan n s thc thi mt use case v cc mi quan h gia chng. Nhng khung nhn nh vy cn thit cho cng vic la chn v thng nht v cch thc t chc cc cng vic trong mi use case nhm t c nhng kt qu mong mun. C hai khung nhn ca use case u ch yu dnh cho nhng nhn vin bn trong nghip v khung nhn bn ngoi dnh cho nhng ngi hot ng bn ngoi use case, khung nhn bn trong dnh cho nhng ngi hot ng bn trong use case.
Hin thc ho

Use case

Use case hp tc

M hnh ho hin use case hin thc ho qua vic lp cu trc m hnh i tng nghip v (business object) S i tng nghip v l mt tp cc s nhm trnh by s hin thc ha ca cc use case nghip v. N m t tru tng cch thc cc tha tc vin v thc th lin kt v cng tc vi nhau thc hin nghip v. Gii thch S i tng xc nh cc use case t gc nhn bn trong ca cc tha tc vin. M hnh nh ngha cch thc cc nhn vin nghip v vi nhng g h x l lin h vi nhau to ra cc kt qu mong mun. N nhn mnh vo cc vai tr c thc hin trong lnh vc nghip v v cc trch nhim ca nhn vin. Cc i tng ca cc lp trong m hnh cn c kh nng thc hin tt c use case nghip v. Cc thnh phn chnh ca m hnh i tng nghip v l: o Cc tha tc vin (worker): cho thy cc trch nhim ca mt nhn vin o Cc thc th (entity): biu din u ra, ti nguyn, s vt c s dng o Cc hin thc ha use-case nghip v: cho thy cc tha tc vin cng tc v cc thc th thc hin lung cng vic nh th no. Cc hin thc ha use-case nghip v c c t vi: Cc lc lp: l cc tha tc vin v thc th tham gia Cc lc hot ng: trong cc swimlane cho thy cc trch nhim ca cc tha tc vin, cc lung i tng cho thy cch s dng cc thc th trong lung cng vic. Cc lc tun t: m t chi tit s tng tc gia cc tha tc vin, tc nhn, v cch truy xut cc thc th khi thc hin mt use case nghip v.

@ i Hc KHTN-TP HCM ; ASIA-ITC

75

Phn tch thit k h thng hng i tng bng UML

S lp

Use case hp tc

S tun t

TTV

TTh1

TTh2

S hot ng

Mc ch ca m hnh i tng nghip v L mt thnh phn trung gian lm r cc kin v nghip v theo cch suy ngh ca cc nh pht trin phn mm, m vn gi c ni dung nghip v. N l s thng nht v lnh vc nghip v c m t di dng cc i tng, thuc tnh, trch nhim. Kho st bn cht ca lnh vc nghip v nhm chuyn tip li t duy v cc vn nghip v sang li t duy v cc ng dng phn mm. Lm r nhng yu cu c h tr bi h thng thng tin ang xy dng. Thng nht cc nh ngha v i tng nghip v, cc mi quan h gia cc i tng, tn cc i tng v quan h. Qua , cho php trnh by chnh xc cc kin thc v lnh vc nghip v sao cho cc chuyn gia v lnh vc nghip v c th hiu c. Lp cu trc m hnh i tng nghip v: Phn tch chu k sng ca mi thc th. Mi thc th nn c to ra v hy i bi mt ngi no trong i sng ca nghip v. Hy bo m rng mi thc th c truy xut v s dng bi mt tha tc vin hay mt thc th khc. Cn gim bt s lng cc tha tc vin. Khi pht trin cc m hnh, c th ta s thy c qu nhiu tha tc vin. Hy bo m rng mi tha tc vin tng ng vi mt tp hp cc tc v m mt ngi thng thc hin. Mi thc th nn c mt ngi chu trch nhim cho n. iu ny c th c m hnh ha bng mt mi kt hp t tha tc vin n cc thc th m tha tc vin chu trch nhim. Mt s thc th c th do nhng ngi ngoi nghip v chu trch nhim. M t iu ny trong bn m t vn tt ca thc th . Lc lp (class diagram) Mt lc lp cho thy mt tp hp cc thnh phn (tnh) ca m hnh, nh lp, gi, ni dung ca chng v cc mi quan h.
@ i Hc KHTN-TP HCM ; ASIA-ITC 76

Phn tch thit k h thng hng i tng bng UML

Cc lc lp cho thy cc mi kt hp, kt tp v tng qut ha gia tha tc vin v thc th. Nhng lc lp c quan tm v: o S phn cp k tha o Cc mi kt tp ca tha tc vin v thc th. o Cch thc cc tha tc vin v thc th lin quan n nhau thng qua cc mi kt hp. Cc lc lp cho thy cc cu trc chung trong m hnh i tng nghip v, nhng cng c th l mt phn ca ti liu m t mt hin thc ha use case bng cch cho thy cc tha tc vin v thc th tham gia. V d: s lp cho use case Qun l khch hng thn thit cho bit cc tha tc vin, cc thc th v tc nhn lin kt vi nhau trong vic thc hin ca use case ny.

0..n Khch hng

1 NgI qun l 1 0..n 1 0..n

0..n

H s khch hng

Ho n

Th khch hng thn thit

Trong , Ngi qun l l tha tc vin thc hin use case. H s khch hng, Th khch hng thn thit v Ho n l ba thc th c s dng trong use case ny bi tha tc vin. Hoc s lp cho use case Qun l nhp hng

0..1 Ban gim c

1 NgI qun l 1 0..n

0..n Phiu nhp

Hng ho

Trong , Ngi qun l l tha tc vin thc hin use case. Phiu nhp v hng ho l cc thc th bi tha tc vin ny trong vic thc hin hot ng ca use case. c t lung cng vic hin thc ho use case nghip v S dng s hot ng u tin, lp ti liu hin thc ha cho mt use case nghip v chnh l v mt lc hot ng, trong cc lung (swimlane) biu din cc tha tc vin tham gia. i vi mi hin thc ha use-case, c th c mt hoc nhiu lc hot ng minh ha lung cng
@ i Hc KHTN-TP HCM ; ASIA-ITC 77

Phn tch thit k h thng hng i tng bng UML

vic. Mt cch ph bin l s dng mt lc tng quan khng c cc swimlane m t ton b lung cng vic, trong trnh by cc "hot ng v m" mc cao. Sau , i vi mi hot ng v m s c mt lc hot ng chi tit, trnh by cc lung (swimlane) v cc hot ng cp tha tc vin. Mi lc nn c gi gn trong mt trang giy. Lc hot ng trong m hnh i tng minh ha lung cng vic ca mt hin thc ha use-case nghip v. Lc hot ng ca mt hin thc ha use-case minh ho vic sp xp cc cng vic theo mt th t nhm t c cc mc tiu ca nghip v, cng nh tha mn nhu cu gia cc tc nhn bn ngoi v cc tha tc vin bn trong. Mt hot ng trong lc hot ng c th l mt cng vic th cng hoc t ng ha hon thnh mt n v cng vic. Cc lc hot ng gip: o Cung cp c s gii thiu cc h thng thng tin n doanh nghip mt cch d hiu hn. o Thit lp cc mc tiu cho cc d n pht trin h thng nhm ci tin nghip v. o iu chnh mc u t vo vic t ng ha quy trnh da trn cc thng tin o lng qui trnh nghip v . So snh vi lc tun t c cng mc ch th lc hot ng tp trung m t cch thc phn chia trch nhim thnh cc lp, trong khi , lc tun t m t cch thc cc i tng tng tc theo trnh t. Lc hot ng tp trung vo lung cng vic, trong khi lc tun t tp trung vo vic x l cc thc th. Chng b sung cho nhau, nh lc tun t cho thy nhng g xy ra trong mt trng thi hot ng. V d: s hot ng hin thc ho use case Qun l nhp hng
:Ngi qun l

[C hng t hp tc x]

[C hng t nh cung cp]

Tip nhn hng ho t hp tc x

Tip nhn hng ho t nh cung cp

Mt i tng tha tc vin thc hin cc hot ng nghip v

Lp phiu nhp hng

:Phiu nhp [To mi]

In phiu nhp hng

Phn loi hng theo chng loi

Phn loi hng theo loi

Phn loi hng theo n v tnh

Cc i tng thc th nghip v chu tc ng bi hot ng use case

Lu thng tin loi hng v s lng theo loi

:Hng ho [To mi]

@ i Hc KHTN-TP HCM ; ASIA-ITC

78

Phn tch thit k h thng hng i tng bng UML

S hot ng hin thc ho use case Qun l khch hng thn thit
:Ngi qun l

[C yu cu thm KHTT] Tip nhn yu cu thm khch hng thn thit


:Ho n

Kim tra gi tr ho n mua hng gn nht [Khng p ng iu kin] [p ng iu kin]


:Th khch hng thn thit [To mi]

Cp th KHTT

Thng bo t chi

Lu thng tin khch hng


:H s khch hng [To mi]

S dng cc swimlane (ln bi) o Nu cc lung (swimlane) c s dng v c nhm thnh cc lp (ch yu l cc tha tc vin) trong m hnh i tng, th chng ta ang s dng lc hot ng trnh by cc hin thc ha use-case nghip v. o Lc hot ng cung cp chi tit v nhng g xy ra trong nghip v bng cch kho st nhng ngi c cc vai tr c th (cc tha tc vin) v cc hot ng m h thc hin. i vi cc d n pht trin ng dng, cc lc ny gip ta hiu mt cch chi tit v lnh vc nghip v s c h tr hay chu tc ng ca ng dng mi. Cc lc hot ng gip ta hnh dung h thng mi c ngh r rng hn ng thi xc nh cc use case ca h thng . S dng cc lung i tng o Trong ng cnh ny, cc lung i tng c s dng cho thy cch thc cc thc th c to ra v s dng trong mt lung cng vic. Cc lung i tng m t cc u vo v u ra t cc trng thi hot ng trong mt biu hot ng. C hai thnh phn k hiu sau: Trng thi lung i tng (object flow state): biu din mt i tng ca mt lp tham gia vo lung cng vic c biu din trong biu hot ng. i tng ny c th l u ra ca mt hot ng v l u vo ca nhiu hot ng khc. Lung i tng (object flow) l mt kiu lung iu khin vi mt trng thi lung i tng lm u vo/u ra. o K hiu lung i tng ni ln s tn ti ca mt i tng trong mt trng thi c th, ch khng l chnh i tng . Cng mt i tng ny c th c thao tc bi mt s cc hot ng k tip nhau lm thay i trng thi ca i tng. Sau , n c th c hin th nhiu ln trong mt biu hot ng,
@ i Hc KHTN-TP HCM ; ASIA-ITC 79

Phn tch thit k h thng hng i tng bng UML

mi ln xut hin s biu din mt trng thi khc nhau trong i sng ca n. Trng thi ca i tng ti mi thi im c th c t trong ngoc v vit thm vo tn ca lp. o Mt trng thi lung i tng c th xut hin nh l trng thi kt thc ca mt lung i tng (s chuyn tip) v l trng thi bt u ca nhiu lung i tng (nhng s chuyn tip). o Cc lung i tng c th c so snh vi cc lung d liu bn trong lung cng vic ca mt use case. Khng ging nh cc lung d liu truyn thng, cc lung i tng tn ti mt thi im xc nh trong mt biu hot ng. S dng cc lc hp tc (collaboration) v tun t (sequence) i vi mi hin thc ha use-case, c th c mt hoc nhiu lc tng tc m t cc tha tc vin v thc th tham gia, cng vi nhng tng tc ca chng. C hai loi lc tng tc l: lc tun t v lc hp tc. Chng din t nhng thng tin tng t nhau, nhng trnh by nhng thng tin ny theo nhng cch khc nhau: o Lc tun t m t r rng trnh t cc s kin. Vi cc kch bn phc tp, th lc tun t thch hp hn so vi cc lc hot ng. o Lc hp tc trnh by cc mi lin kt giao tip v nhng thng ip gia cc i tng. Chng ph hp hn trong vic gip ta hiu c tt c cc tc ng trn mt i tng cho trc. o Nu c t lung r nhnh, nhng c nhiu thc th tham gia, th lc tng tc thng l mt s la chn tt hn so vi lc hot ng nhm trnh by hin thc ha ca lung cng vic. Lc tun t m t mt mu tng tc gia cc i tng, c sp xp theo th t thi gian; n cho thy cc i tng tham gia vo s tng tc theo nhng "lifeline" v nhng thng ip m chng gi cho nhau. V mt ha, mt lc tun t m t chi tit s tng tc gia cc tha tc vin, tc nhn, v cch thc cc thc th c truy xut khi mt use case c thc thi. Mt lc tun t m t vn tt cc tha tc vin tham gia lm nhng g, v cch thc cc thc th c thao tc thng qua nhng s kch hot, v cch thc chng giao tip bng cch gi thng ip cho nhau. V d: S tun t ca use case Qun l khch hng thn thit

@ i Hc KHTN-TP HCM ; ASIA-ITC

80

Phn tch thit k h thng hng i tng bng UML

: Khch hng

: Ngi qun l

: Ho n

: H s khch hng

Yu cu ng k khch hng thn thit Kim tra tng tr gi ho n Kim tra iu kin [Khng tho kin] T chi cp th [Tho kin] To th mi [Tho kin] Cp th [Tho kin] Lu thng tin khch hng

: Th khch hng thn Thit

S tun t ca use case Qun l nhp hng

: Ban gim c Giao hng

: Ngi qun l

: Phiu nhp

: Hng ho

To phiu nhp In phiu nhp

Phn loi hng ho Lu thng tin v hng ho mi

Nhng thng tin c tm thy trong mt lc tun t cng c th c biu din trong mt lc hp tc. Mt lc hp tc m t mt mu tng tc gia cc i tng; n cho thy cc i tng tham gia vo s tng tc thng qua nhng mi lin kt gia chng v nhng thng ip m chng gi cho nhau.
@ i Hc KHTN-TP HCM ; ASIA-ITC 81

Phn tch thit k h thng hng i tng bng UML

Mt lc hp tc v mt ng ngha cng tng t nh mt lc tun t, nhng tp trung ch yu vo cc i tng, trong khi lc tun t tp trung vo cc tng tc. Mt lc tun t trnh by mt tp con cc i tng c lin quan n chui cng vic b nh hng, bao gm cc mi lin kt gia chng, cc thng ip v cc chui thng ip. V d: lc hp tc tng ng
3: Kim tra iu kin

1: Yu cu ng k khch hng thn thit

2: Kim tra tng tr gi ho n

4: [Khng tho kin] T chi cp th 6: [Tho kin] Cp th : Khch hng : Ngi qun l

: Ho n

5: [Tho kin] To th mi

7: [Tho kin] Lu thng tin khch hng

: Th khch hng thn Thit

: H s khch hng

3: In phiu nhp 4: Phn loi hng ho

1: Giao hng

: Ban gim c

: Ngi qun l

5: Lu thng tin v hng ho mi 2: To phiu nhp

: Phiu nhp

: Hng ho

@ i Hc KHTN-TP HCM ; ASIA-ITC

82

Phn tch thit k h thng hng i tng bng UML

Xc nh yu cu t ng ho
Mc ch: Hiu c cch thc s dng cc cng ngh mi ci thin hot ng hiu qu ca t chc. Xc nh mc t ng ha trong t chc. Thit lp cc yu cu h thng t nhng kt qu m hnh ha nghip v. Xc nh tc nhn v use case h thng phn mm

xy dng cc h thng, cn phi hiu r cc qui trnh nghip v. Thm ch s hu ch hn nu s dng cc vai tr v trch nhim ca nhn vin, cng nh nhng g c x l bi nghip v lm nn tng xy dng h thng. iu ny c xc nh t gc nhn bn trong nghip v da vo m hnh i tng, trong c th thy c mi lin kt cht ch nht n hnh thc th hin cc m hnh ca h thng. xc nh cc use case trong h thng thng tin, hy bt u t cc tha tc vin trong m hnh i tng nghip v. i vi mi tha tc vin, thc hin nhng bc sau y: Xc nh xem tha tc vin s s dng h thng thng tin khng? Nu c, xc nh mt tc nhn cho tha tc vin ca h thng thng tin trong m hnh use-case ca h thng thng tin. t tn tc nhn vi tn ca tha tc vin. i vi mi use case nghip v m tha tc vin tham gia, to mt use case h thng v m t vn tt. Xem xt cc mc tiu v tc thc thi hay nhng thng tin b sung cho tha tc vin cn c ch thch nh l mt yu cu c bit ca use case h thng, hoc nhp vo su liu c t b sung ca h thng. Lp li nhng bc ny cho tt c cc tha tc vin.

@ i Hc KHTN-TP HCM ; ASIA-ITC

83

Phn tch thit k h thng hng i tng bng UML

V d: Xc nh tc nhn v use case h thng phn mm cho use case nghip v Qun l khch hng thn thit

M hnh use case nghip v Khch hng

Qun l khch hng thn thit

M hnh i tng

M hnh use case h thng Ngi qun l

Qun l khch hng thn thit

Trong trng hp ny, khch hng giao tip vi ngi qun l gii quyt cc yu cu v khch hng thn thit. Ngi qun l s s dng phn mm nh l mt cng c nhm tr gip trong cc x l p ng cho yu cu ca khch hng. Do , ngi qun l lc ny s l tc nhn ca h thng phn mm v cc chc nng c t ng ho trong use case nghip v Qun l khch hng thn thit s tr thnh use case m t chc nng phn mm h thng. Nu mc ch ca vic xy dng mt h thng l t ng ha hon ton cc qui trnh nghip v (chng hn nh vic xy dng mt ng dng thng mi in t) th tha tc vin s khng tr thnh tc nhn h thng na. Thay vo , chnh tc nhn ca mi trng nghip v giao tip trc tip vi h thng v hot ng nh mt tc nhn h thng. Khi , cch thc thc hin nghip v s b thay i khi xy dng mt ng dng thuc loi ny. Cc trch nhim ca tha tc vin s chuyn sang tc nhn nghip v.
@ i Hc KHTN-TP HCM ; ASIA-ITC 84

Phn tch thit k h thng hng i tng bng UML

V d: gi s xy dng mt site thng mi in t cho mt vic qun l khch hng thn thit, ta s thay i cch thc m qui trnh c hin thc ha. Lc ny, Khch hng s dng trc tip h thng thng qua vic truy cp ng dng web. Cc trch nhim ca tha tc vin Ngi qun l s chuyn sang tc nhn nghip v Khch hng. To ra tc nhn h thng Khch hng tng ng vi tc nhn nghip v Khch hng. Loi b i Ngi qun l.

M hnh use case nghip v Khch hng

Qun l khch hng thn thit

M hnh i tng

M hnh use case h thng Khch hng

Qun l khch hng thn thit

Xc nh cc lp i tng thng tin trong h thng phn mm Mt thc th nghip v c qun l bi h thng thng tin s tng ng vi mt thc th trong m hnh phn tch ca h thng thng tin. Tuy nhin, trong mt s trng hp, s thch hp nu cc thuc tnh ca thc th nghip v tng ng vi cc thc th trong m hnh h thng thng tin. Nhiu tha tc vin c th truy xut mt thc th nghip v. Do , cc thc th tng ng trong h thng c th tham gia vo mt s use case h thng thng tin.

V d: cc lp i tng h thng phn mm cho t s lp ca use case nghip v Qun l khch hng thn thit

@ i Hc KHTN-TP HCM ; ASIA-ITC

85

Phn tch thit k h thng hng i tng bng UML

M hnh i tng

Cc lp trong s lp

Khch hng

Ho n

Vic xc nh cc lp i tng phn mm chnh l vic xc nh cu trc thng tin ca i tng nghip v qun l trong h thng thng tin. y cng c th xem nh cng on chi tit ho v mt cu trc nhm t c mt cch nhn lun l v cu trc ca mt i tng nghip v theo gc tin hc ho cho i tng . Tu theo phc tp ca cu trc thc th m chng ta c nhng cch chuyn i n gin (mt thc th nghip v mt lp) hoc phc tp (mt thc th nghip v nhiu lp). Cui cng, sau khi xc nh c cc lp th t c mt m hnh y , chng ta cn phi xc nh cc mi kt hp gia cc lp. Chi tit ca phn ny c cp chng tip theo.
Hng ho
: Hng ho

Khch hng

: H s khch hng

a ch

@ i Hc KHTN-TP HCM ; ASIA-ITC

86

Phn tch thit k h thng hng i tng bng UML

Bi tp
M hnh ho vic hin thc ho cc use case nghip v c tm ra trong h thng Qun l thu vn phng cao c bng cch: c t ni dung use case dng m hnh hot ng (khng s dng swimlane) Xc nh cc tha tc vin v cc thc th Xy dng s lp cho use case nghip v Thit k chi tit use case dng: o S hot ng (dng swimlane m t vai tr ca tha tc vin v cc thc th c tc ng bi cc hot ng) o Xy dng cc s tng tc (s tun t, s hp tc, s trng thi) xut mt s use case m t chc nng h thng phn mm gip cho vic t ng ho h thng nghip v trn.

@ i Hc KHTN-TP HCM ; ASIA-ITC

87

Phn tch thit k h thng hng i tng bng UML

Chng 7 XY DNG S LP I TNG H THNG


Mc tiu:
Cc khi nim v s phn loi Tm cc lp i tng vi cc phng php: cm danh t, phn loi i tng v s dng s use case Xc nh lin kt gia cc lp Xc nh thuc tnh v phng thc ca lp

Gii thiu
Phn tch hng i tng l mt tin trnh m qua chng ta c th nh dng c cc lp ng mt vai tr quan trng nhm t c mc tiu v yu cu h thng. M hnh ho i tng l mt tin trnh m trong , cc i tng trong mt h thng thc c th hin bi cc i tng lun l trong cc s v trong chng trnh. S th hin trc quan ny ca cc i tng v quan h gia chng cho php d dng hiu v i tng ca h thng. Tuy nhin, vic xc nh lp l mt cng vic kh nht bi v khng c mt cu trc lp no hon ho cng nh khng c mt cu trc no hon ton ng. Trong phn di y s trnh by v cch pht trin cc m hnh i tng bng cch xy dng cc s lp m t vic phn loi i tng h thng. Trc tin, chng ta s n li cc khi nim c bn ca s lp. Sau , chng ta s c gii thiu xy dng s lp thng qua vic gii thiu ln lt v cc cch tip cn phn loi i tng v xc nh lp, cch xc nh lin kt gia cc lp cng nh thuc tnh v phng thc ca lp.

S lp (Class diagram)
Cc khi nim
i tng Trong tip cn hng i tng, chng ta m hnh ho h thng bng cc i tng, ngha l nhn h thng nh l mt i tng . Do , trc khi tip cn m hnh ho h thng. Chng ta cn phi hiu nh th no l mt i tng (object). C nhiu ngun m t hoc nh ngha v i tng, tuy nhin trong ti liu ny chng ta c th tng hp li nh sau: mt i tng l mt thc th c mt vai tr xc nh r rng trong lnh vc ng dng, c trng thi, hnh vi v nh danh. Mt i tng l mt khi nim, mt s tru tng ho hoc mt s vt c ngha trong phm vi ng cnh ca h thng. i tng c c th l mt thc th hu hnh, trc quan (nh l: con ngi, v tr, s vt,); c th l mt khi nim, s kin (v d: b phn, ng k, ); c th l mt khi nim trong tin trnh thit k (nh l: User interface, Controller, Scheduler,) Lp (class) L mt tp hp cc i tng chia s chung mt cu trc v hnh vi (cng thuc tnh, hot ng, mi quan h v ng ngha). Cu trc c m t bi cc thuc tnh v cc mi quan h, cn hnh vi c m t bi cc hot ng. Mt lp l mt s tru tng ho ca cc i tng th gii thc, v cc i tng tn ti trong th gii thc c xem nh l cc th hin ca lp.

@ i Hc KHTN-TP HCM ; ASIA-ITC

88

Phn tch thit k h thng hng i tng bng UML

K hiu: lp c trnh by gm ba phn: tn lp, danh sch cc thuc tnh (attribute), danh sch cc hot ng (operation). Trong , phn thuc tnh v phn hot ng c th b che du i trong mc trnh by tng quan.

Te n class

Tn class Thuc tnh Method

Te n class

V d: biu din tp hp cc n hng NGK, khch hng mua NGK, nh cung cp NGK, cng chia s chung thuc tnh, hot ng, mi quan h v ng ngha thnh cc lp:
n ha ng So H Nga y la p So tie n Tnh_Tr_gia () Kha ch ha ng Ho te n KH Dia ch ie n thoa i Nha cung ca p Ho te n NCC a ch ie n thoa i

Mi kt hp (association) Mi kt hp nh phn: l quan h ng ngha c thit lp gia hai hay nhiu lp, biu din bi nhng thnh phn sau: Tn quan h: thng l cm ng t phn nh mc ch ca mi kt hp Vai tr quan h (role): l mt phn ca mi kt hp dng m t ng ngha tham gia ca mt lp vo mi kt hp (khng phi mt phn ca lp). Mi quan h c th c 2 vai tr (quan h nh phn) hoc nhiu hn (quan h a phn). o Tn vai tr: dng ng t hoc danh t (cm danh t) biu din vai tr ca cc i tng. Trong mi kt hp lm vic ti c hai vai tr, lm ti v gm cho bit: nhn vin lm vic ti phng ban v phng ban gm c cc nhn vin trc thuc. o Bn s: l cp gi tr (mincard, maxcard) xc nh khong gi tr cho php mt i tng ca mt lp c th tham gia bao nhiu ln vo mi kt hp vi cc i tng ca cc lp khc. Gi tr mincard: qui nh v rng buc ti thiu ca mt i tng tn ti trong lp phi tham gia vo mi kt hp vi mt s lng ln hn hoc bng. Gi tr maxcard: qui nh s lng ti a m mt i tng ca lp nu tn ti trong lp khng c tham gia vo mi kt hp vt gi tr ny. Bn s mi kt hp di cho bit mt nhn vin phi thuc t nht v nhiu nht (duy nht) mt phng ban, tuy nhin mi i tng phng ban c th tn ti m khng c nhn vin lm vic thuc phng. Cc mu bn s thng l: 0..1, 1..1, 3..5, 0..*, 1..*, 2..*
Nha n vie n
0..* gom

La m vie c ta i
1..1 lam tai

Pho ng ban

@ i Hc KHTN-TP HCM ; ASIA-ITC

89

Phn tch thit k h thng hng i tng bng UML


n ha n g
1..* Co 1..1 Lap bi

Kha ch ha n g

nv1 nv2 nv3 nv4 nv5 Nhn vin

p1 p2 p3 p4

d1 d2 d3 d4 d5

k1 k2 k3 k4

Phng ban

n hng

Khch hng

Tng qut, cho hai lp C1, C2 v mi kt hp A gia chng. Ty theo gi tr bn s ti thiu chng ta c nhng trng hp sau: Nu mincard (C1,A) = 0 th chng ta ni rng lp C1 c s tham gia ty trong mi kt hp bi v mt i tng ca lp C1 c th khng tham gia kt hp vi i tng lp C2 trong mi kt hp A. Nu mincard (C1,A) >0 th chng ta ni rng lp C1 c s tham gia bt buc vo mi kt hp bi v mt i tng ca lp C1 phi bt buc tham gia kt hp vi t nht mt phn t ca lp C2 trong mi kt hp A. Ty theo gi tr ca bn s ti a m chng ta c cc trng hp sau: Nu maxcard(C1,A) = 1 v maxcard(C2,A) = 1 th ta gi l mi kt hp mt - mt (one- to one) Nu maxcard(C1,A) = 1 v maxcard(C2,A) = n th ta gi l mi kt hp mt - nhiu (one- to many) Nu maxcard(C1,A) = n v maxcard(C2,A) = 1 th ta gi l mi kt hp nhiu - mt (many- to one) Nu maxcard(C1,A) = n v maxcard(C2,A) = n th ta gi l mi kt hp nhiu - nhiu (many- to many) o Tnh kh iu hng (navigability): c m t bi mt mi tn ch ra hng truy xut trong mi kt hp t mt i tng ca lp n mt i tng ca lp cn li. Tnh kh iu hng c th l khng c, hoc ch mt, hoc c hai. V d trn cho thy chiu mi tn trong mi kt hp lm vic ti cho bit chng ta c th truy cp lp phng ban t mi kt hp, tuy nhin, chng ta khng th truy xut ti lp nhn vin t mi kt hp ny. Hoc trong mi kt hp gia lp n hng v Khch hng, hng truy xut l c th cho c hai lp (khng c chiu mi tn) Mi kt hp phn thn: mt mi kt hp c th c thit lp t mt lp n chnh n. V d mi kt hp qun l c thit lp gia lp Nhn vin ti chnh n cho bit mt nhn vin qun l nhng nhn vin khc.

@ i Hc KHTN-TP HCM ; ASIA-ITC

90

Phn tch thit k h thng hng i tng bng UML


Qua n ly
0..1

Nha n vie n
0..*

Mi kt hp a phn: l mi kt hp c thit lp t ba lp tr ln. K hiu mi kt hp a phn l mt hnh thoi vi hn ba vai tr ni ti cc lp tham gia. y l mi kt hp c tha hng t cch tip cn truyn thng ca m hnh thc th - kt hp (ER). Tuy nhin, mi kt hp a phn khng cho php quan h thu np, bn s phc tp. Do , trong cch s dng chg ta thng thay th n bng mt lp v a v mi kt hp nh phn.
Na m ho c

Mo n ho c

Sinh vie n

M mn hc

Lp kt hp Khi mt mi kt hp c cc c trng (thuc tnh, hot ng, v cc mi kt hp), chng ta to mt lp cha cc thuc tnh v kt ni vi mi kt hp, lp ny c gi l lp kt hp. Tn ca lp ny chnh l tn ca mi kt hp, trong trng hp lp ny c thuc tnh nhng khng c hot ng hoc bt k mi kt hp no khc, th tn ca mi kt hp vn duy tr trn mi kt hp v trng phn tn ca lp ny duy tr tnh t nhin ca n.
Mo n ho c
1..* 0..*

Sinh vie n

Ke t qua
iem

Trng hp ph bin nht ca lp kt hp l mi kt hp nhiu - nhiu. V d trn cho thy, sinh vin tham gia cc mn hc khc nhau v mi ln ng k hc, sinh vin s c mt kt qu c ghi nhn bi im thi. Vy im thi l mt thuc tnh c hnh thnh thng qua vic tham gia hc tp ca mt sinh vin trn mt mn hc nn n l thuc tnh ca mi kt hp.
Nha n vie n
0..* c quan ly 0..1 quan ly

a nh gia Nga y_B Nga y_KT Nga y a nh gia Kqua a nh gia

@ i Hc KHTN-TP HCM ; ASIA-ITC

91

Phn tch thit k h thng hng i tng bng UML

Quan h thu np (aggregation) v quan h thnh phn (composition, a-part-of) Quan h thu np (aggregation): m t mi quan h gia mt i tng ln hn c to ra t nhng i tng nh hn. Mt loi quan h c bit ny l quan h c, n c ngha l mt i tng tng th c nhng i tng thnh phn. V d di y cho thy, Gia nh l mt i tng tng th c nhng Thnh vin trong gia nh.
Gia nh Tha nh vie n

0..1

Co

0..*

D a n

0..1

Go m co

0..*

Giai oa n

o i

1..* 0..*

Va n o ng vie n

Con ng i
1..* 0..* 1..1

ia ch

Nha

0..1

Mt i tng thnh phn cng c th tham gia kt hp vi nhiu i tng tng th khc nhau, trng hp ny gi l chia s. V d mt vn ng vin c quan h ti mt i vi ngha l mt phn t ca i, tuy nhin vn ng vin ny cng c th thnh vin ca mt i khc, trng hp ny gi l s chia s. Do , nu mt i b hy b, th khng nht thit phi hu b vn ng vin ny. Quan h thnh phn (composition) l mt loi c bit ca quan h thu np, n c mt s lin h mnh m hn trnh by thnh phn ca mt i tng phc hp. Quan h thnh phn cng c xem nh l quan h thnh phn - tng th (partwhole), v i tng tng hp s qun l vic to lp v hu b ca nhng tng thnh phn ca n.
Xe hi
1..1 1..1 1..1

1..1 1..1 4

4..10

2..5

Ba n h xe

e n

C a

o ng c

@ i Hc KHTN-TP HCM ; ASIA-ITC

92

Phn tch thit k h thng hng i tng bng UML


Hoa n
1..1 1..*

Do ng hoa n

Nh vy, quan h thnh phn m t s ph thuc rt cht ch gia lp tng th n lp thnh phn v s ph thuc. Ngha l cc lp thnh phn l mt b phn cu to nn lp tng th v th hin vt l ca n l nm trong lp tng th. V d trn cho thy, m chic xe hi c lm nn bi nhng bnh xe, n, ca, ng c, vic to thnh mt chic xe hi l vic lp rp cc thnh phn ny. Cng nh ho n cha cc dng ho n trong , mt ho n b hu ngha l cc ng ca ha n cng s b hu theo. Quan h tng qut ha L quan h c thit lp gia mt lp tng qut hn n mt lp chuyn bit. Quan h ny dng phn loi mt tp hp i tng thnh nhng loi xc nh hn m h thng cn lm r ng ngha.
Xe

Xe ta i

Xe bus

Xe hi

Nha n vie n Ma _NV Ho te n a ch ie n thoa i Pho n g ban


0..* gom 1..1 lam tai

Th ky Ky na ng ngoa i ng

Ky s Chuye n nga nh

Nha n vie n qua n ly So l n g NV tr c thuo c

Hoa n

Hoa n kha ch quen

V d trn y ch ra rng, tt c cc lp chuyn bit Th k, K s, Nhn vin qun l u c th k tha cc thuc tnh (M_NV, H tn, a ch, in thoi) ca lp tng qut Nhn vin v mi kt hp gia lp Nhn vin vi Phng ban.

@ i Hc KHTN-TP HCM ; ASIA-ITC

93

Phn tch thit k h thng hng i tng bng UML

Trong mi kt hp tng qut ho, mt th hin ca lp chuyn bit cng l mt th hin ca lp tng qut. V d trn cho thy mt i tng K s, hoc Th k, hoc Nhn vin qun l u l mt i tng ca lp Nhn vin. V l do , c trng ca loi kt hp ny l tnh k tha, mt lp chuyn bit c th k tha tt c cc c trng (thuc tnh, mi kt hp, hot ng) ca lp tng qut. S tng quan ca cc lp trong quan h tng qut ho S tng quan gia cc lp chuyn bit vi lp tng qut: Tp hp cc i tng ca tt c cc lp chuyn bit ph ton b tp i tng ca lp tng qut th gi l ton phn (complete). Tp hp cc i tng ca tt c cc lp chuyn bit khng ph ton b tp i tng ca lp tng qut th gi l bn phn (incomplete). Khng tn ti mt i tng ca lp tng qut thuc hai lp chuyn bit tr ln th gi l ring bit (disjoint). Tn ti mt i tng ca lp tng qut thuc hai lp chuyn bit tr ln th gi l chng lp (overlapping).
Tp tng qut Tp tng qut

S tng quan gia cc lp chuyn bit: -

Tp chuyn bit

Tp chuyn bit

Tp chuyn bit

Tp chuyn bit

Chuyn bit bn phn, chng lp

Chuyn bit ton phn, ring bit

Tp tng qut Tp chuyn bit

Tp tng qut Tp chuyn bit

Tp chuyn bit Chuyn bit bn phn, ring bit Hnh 3.

Tp chuyn bit

Chuyn bit ton phn, chng lp

S tng quan gia cc lp trong quan h tng qut ho

Nh vy, trong quan h tng qut ho, s tng quan gia cc lp c biu din quan bn trng hp (bn phn - chng lp, bn phn - ring bit, ton phn - chng lp, ton phn ring bit). S tng quan ny phn nh rng buc ng ngha trong tp hp cc i tng ca quan h: mt i tng ca lp chuyn bit ny c th l i tng trong lp chuyn bit khc hay khng? V mt i tng trong lp tng qut c th khng thuc mt lp chuyn bit no hay khng?.
@ i Hc KHTN-TP HCM ; ASIA-ITC 94

Phn tch thit k h thng hng i tng bng UML

V d, quan h tng qut ho gia Xe Xe ti, Xe bus, Xe hi c s tng quan l bn phn ring bit (incomplete, disjoint). Quan h gia Nhn vin Th k, K s, Nhn vin qun l c s tng quan l bn phn - chng lp (incomplete, overlapping). a k tha a s cc trng hp trong quan h tng qut ho l n k tha, ni m mt lp l chuyn bit duy nht cho mt lp tng qut. Trong mt s trng hp c bit chng ta cng thy mt lp chuyn bit c th k tha t hai hoc nhiu lp tng qut. Trng hp ny gi l a k tha. V d sau cho thy, lp Gio vin_Nh nghin cu l lp a k tha t hai lp Gio vin v lp Nh nghin cu. Lp ny s tha k tt c cc c trng nh: Gi chun ging dy, Ch nghin cu, Phn_cng_Lp v Phn_cng__ti ca hai lp trn. Tuy nhin, theo li khuyn ca cc chuyn gia th khng nn s dng a k tha v tnh cht phc tp ca n. Do , a k tha khng c a vo ngn ng UML gc v mt s ngn ng hng i tng khc.
o i t ng a o ta o
Ma so Ho ten Ngay sinh c ch

Gia o vie n
Gi chuan giang day Phan_cong_Lp (Integer mlop)

Nha nghie n c u
Chu e nghien cu Phan_cong_e_tai (Integer mDetai)

Sinh vie n

Gia o vie n _Nha nghie n c u

Quan h hoc (OR) L mi quan h xc nh mt tnh hung m trong hai (hoc nhiu) lp tham gia mi kt hp vi mt lp th ba vi rng buc loi tr. Mt th hin ca lp th ba s tham gia kt hp loi tr vi cc i tng ca hai lp kia (hoc l khng kt hp, hoc kt hp ch cc i tng ca mt trong hai lp) ti mt thi im. V d di y cho thy, mt hp ng c th c lp bi mt cng ty hoc bi mt khch hng l. Hoc mt chic xe hi th c s hu bi mt c nhn hoc bi mt cng ty, khng s hu mt lc bi c hai.
Co n g ty H p o n g
0..* 0..1

{or}
0..* 0..1

Kha ch le

@ i Hc KHTN-TP HCM ; ASIA-ITC

95

Phn tch thit k h thng hng i tng bng UML

Co n g ty
0..1

Xe hi

0..* 0..*

{or}
0..1

Ca nha n

Thc cht ca mi kt hp OR cng chnh l mt rng buc ng ngha gia cc lp tham gia kt hp vi mt lp th ba: s hin din tham gia ca i tng ny s khng cho php s tham gia ca i tng kia v ngc li. Thuc tnh (attribute) Thuc tnh dng m t c trng ca i tng, ngi ta c th chia thuc tnh thnh ba loi sau: Thuc tnh n tr: l thuc tnh ch c mt gi tr duy nht cho mt i tng, y l thuc tnh ph bin nht. V d: h tn, ngy sinh, lng, Thuc tnh a tr: l thuc tnh c th c nhiu gi tr cho mt i tng. V d: nu chng ta mun lu nhiu s in thoi ca mt nhn vin, chng ta c th t thuc tnh s in thoi trong lp nhn vin l a tr. Thuc tnh tham chiu.

Biu din mt thuc tnh Thuc tnh c biu din gm nhng thnh phn nh sau: <phm vi> <tn thuc tnh> : <biu thc kiu> = <gi tr khi to> <phm vi>: nhn mt trong nhng gi tr sau: + ton cc (c th truy cp bi tt c lp) # bo v (c th truy cp bi lp v lp chuyn bit ca n) - ring (ch c truy cp bi lp) Bn s: l mt cp (s ti thiu, s ti a) m thuc tnh c th c gi tr. s ti thiu= 0 s ti thiu = 1 s ti a = 1 s ti a > 1 thuc tnh c gi l khng bt buc. thuc tnh c gi l bt buc. thuc tnh n tr. thuc tnh a tr

V d: S in thoi[0..*]: string, a ch[0..1]: string, Trong giai on phn tch vic xc nh thuc tnh thng ch bao gm xc nh tn thuc tnh (c th thm kiu d liu), cc c im khc ca thuc tnh s c xc nh li trong giai on thit k. Thuc tnh quan h (Qualifier) L mt thuc tnh quan h (khng phi ca lp). Ngha l thuc tnh ny s hnh thnh t mt quan h gia cc lp. Nhm thc hin vic thit lp mi lin kt gia mt tp th hin vi mt th hin khc. Mt i tng v mt gi tr ca thuc tnh qualifier s xc lp mt nh danh duy nht, hnh thnh nn kho phc hp.
@ i Hc KHTN-TP HCM ; ASIA-ITC 96

Phn tch thit k h thng hng i tng bng UML

Nga n ha ng
So TK
0..*

Do ng a t ha ng

Ma SP
0..*

0..1

0..1

Kha ch ha ng

Sa n pha m
Ten san pham n gia

Xem xt mi kt hp gia lp Sn phm v lp Dng t hng ca n t hng. Mt dng trong n hng s lin quan n mt sn phm s c t, mi dng n hng tham chiu n duy nht mt sn phm, trong khi mi sn phm c th c t trong nhiu dng n hng ca nhng n hng khc nhau. Mi lin kt qualifier c thuc tnh M SP cho bit: mi sn phm c duy nht mt M SP v Dng n hng lin kt vi Sn phm s dng M SP. nh danh (identifier) nh danh l mt hoc nhiu thuc tnh ca lp c gi tr xc nh duy nht cho mt i tng ca lp.

Cc cch tip cn xc nh lp i tng


Gn nh khng c mt phng thc chung xc nh cc lp ca mt h thng. Thng thng y l mt qu trnh sng to v lp li qua nhiu vng lp v cn phi c s thng nht vi cc chuyn gia trong lnh vc ng dng nghip v. C nhiu phng php tip cn xc nh lp. C phng php ngh tin hnh m hnh ho nghip v, ch ra phm vi bi ton nghip v s c t ng ho m kt qu ca n s cung cp cc lp cho h thng tng ng vi vic t ng ho vic qun l, lu tr cc i tng thng tin (thc th) uc thng nht trn cc yu cu vi ngi dng x l nghip v. C phng php xut xc nh tt c cc lp thuc phm vi bi ton, mi quan h ca chng. Sau , s phn tch use case v phn b trch nhim cc lp theo use case. C phng php xut ly m hnh use case lm nn tng tm lp (use case - driven), v trong qu trnh xc nh trch nhim thc hin ca use case th cc lp s c tm thy. V qu trnh xc nh lp trong giai on ny l mt qu trnh lp li m kt qu ca bc sau c th lm thay i cc kt qu ca bc trc, cho nn cc lp c tm thy thng c gi l lp ng vin (candidate class). Di y chng ta cp n mt s k thut tip cn xc nh lp: tip cn theo cm danh t; tip cn theo mu chung; v tip cn theo use case.

Tip cn theo cm danh t (noun phrase)


Phng php tip cn theo cm danh t c xut bi Rebecca Wirfs-Brock, Brian Wilkerson, v Lauren Wiener. Phng php xut vic xc nh cc lp thng qua vic c trong cc vn bn m t use case hoc cc m t yu cu tm kim v trch lc cc cm danh t. Cc cm danh t c th c xem l cc ng vin ca cc lp v cc ng t l cc ng vin ca phng thc (method) ca lp. Tt c danh t hoc cm danh t tm c s c phn thnh ba loi: Cc lp hin nhin
97

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Cc lp m Cc lp gi to

Class hin nhin

Class m

Class gi to

u tin tt c lp thuc loi lp gi s b loi b, v n khng c mc ch hoc khng cn thit s dng. Cc lp thuc hai loi cn li s tr thnh cc ng vin. Quy trnh xc nh nh sau:

Xc nh cc danh t, cm danh t M t use case, yu cu

Danh t, cm danh t

ng nht cc class trng ngha

Danh t, cm danh t ng vin

Loi b cc danh t m t class gi

Loi cc danh t thuc tnh

Loi cc class khng c mc tiu

Danh sch cc class

Khi to danh sch cc lp ng vin Tm cc danh t hoc cc cm danh t trong cc m t use case, yu cu Tt c cc lp phi c ngha trong lnh vc ng dng, trnh a vo cc lp ci t c m t trong giai on thit k. t tn cho lp

Trch lc trong use case v m t use case ca h thng ATM, chng ta c nhng danh t v cm danh t sau: Ti khon S d ti khon S tin Tin trnh ng nhp Th ATM My ATM
@ i Hc KHTN-TP HCM ; ASIA-ITC

Bao th Bn k s Ngn qu Tin PIN PIN khng hp l


98

Phn tch thit k h thng hng i tng bng UML

Ngn hng Khch hng ngn hng Th Tin mt Khch hng Ti khon khch hng VND

Thng ip Mt khu M PIN Mu tin Bc H thng Giao dch Lch s giao dch

Loi b cc lp gi Cc lp ng vin phi thuc loi lp hin nhin v lp m. Cc lp gi sau y s b loi khi danh sch: Bao th, Bn k s, Bc. Ti khon S d ti khon S tin Tin trnh ng nhp Th ATM My ATM Ngn hng Khch hng ngn hng Th Tin mt Khch hng Ti khon khch hng VND Bao th Bn k s Ngn qu Tin PIN PIN khng hp l Thng ip Mt khu M PIN Mu tin Bc H thng Giao dch Lch s giao dch ng nht cc lp ng vin trng lp Cn r sot li danh sch tm kim cc danh t, cm danh t trng lp v ngha mc d cch dng t c khc nhau. Chng ta chn la danh t, hoc cm danh t cha y ng ngha nht v loi nhng danh t, cm danh t khc. Khch hng, Khch hng ngn hng Ti khon, Ti khon khch hng PIN, M PIN Tin, Ngn qu Th ATM, Th Ti khon S d ti khon
@ i Hc KHTN-TP HCM ; ASIA-ITC

= Khch hng = Ti khon = PIN = Ngn qu = Th ATM Bao th Bn k s


99

Phn tch thit k h thng hng i tng bng UML

S tin Tin trnh ng nhp Th ATM My ATM Ngn hng Khch hng ngn hng Th Tin mt Khch hng Ti khon khch hng VND

Ngn qu Tin PIN PIN khng hp l Thng ip Mt khu M PIN Mu tin Bc H thng Giao dch Lch s giao dch

Xc nh cc danh t, cm danh t c th l cc thuc tnh Cc danh t hoc cm danh t l cc thuc tnh khi: Ch c s dng nh l gi tr Khng c nhiu hn mt c trng ring, hoc ch m t mt c trng ca i tng khc. S tin: mt gi tr, khng phi mt lp S d ti khon: thuc tnh ca lp Ti khon PIN khng hp l: mt gi tr, khng phi mt lp Mt khu: mt thuc tnh (c th ca lp Khch hng) Lch s giao dch: mt thuc tnh (c th ca lp Giao dch) PIN: mt thuc tnh (c th ca lp Khch hng) Sau y l danh sch cc ng vin cn li: Ti khon S d ti khon S tin Tin trnh ng nhp Th ATM My ATM Ngn hng Khch hng ngn hng Th Tin mt Khch hng
@ i Hc KHTN-TP HCM ; ASIA-ITC

Xem xt cc danh t, cm danh t c th l thuc tnh ca danh sch trn ta c:

Bao th Bn k s Ngn qu Tin PIN PIN khng hp l Thng ip Mt khu M PIN Mu tin Bc
100

Phn tch thit k h thng hng i tng bng UML

Ti khon khch hng VND

H thng Giao dch Lch s giao dch

Loi b cc lp ng vin khng c mc tiu hoc khng thuc phm vi h thng Mi lp phi c mt mc tiu khi thuc h thng, mc tiu ny phi tht r rng trong ng cnh mc tiu chung h thng. Nu chng ta khng th din t mc tiu ca lp trong h thng th loi ra khi danh sch. Hoc cc lp mc d c tham gia vo hot ng ca h thng, tuy nhin n khng thuc phm vi qun l ca h thng s b loi ra. Cc lp ng vin l: My ATM: cung cp mt giao din ti ngn hng Th ATM: cung cp mt khch hng vi mt kho ti mt ti khon Khch hng: mt khch hng l mt c nhn s dng my ATM, c mt ti khon. Ngn hng: cc khch hng ph thuc vo ngn hng. N l mt ni tp trung cc ti khon v x l cc giao dch ti khon. Ti khon: n m hnh ho mt ti khon ca khch hng v cung cp cc dch v v ti khon cho khch hng Giao dch: m t mt giao tc ca khch hng khi s dng th ATM. Mt giao tc c lu tr vi thi gian, ngy, loi, s tin, v s d. Cc danh t, cm danh t khng c mc ch hoc khng thuc phm vi qun l ca h thng: Thng ip H thng Mu tin Ngn qu VND Tin mt Tin trnh ng nhp Kt qu ca qu trnh chn la gm cc lp ng vin sau h thng ATM:
ThATM

MyATM

KhchHng

NgnHng

TiKhon

GiaoDch

Nhn xt: mt hn ch chnh ca cch tip cn cm danh t l n ph thuc vo tnh ng v y ca cc ti liu m t. iu ny trn thc t c c nhng ti liu ny th qu l kh. Hoc chng mt vn bn ln ca h thng c th dn n qu nhiu lp ng vin! Du vy, cch tip cn ny rt c tnh s phm v hu dng khi kt hp vi cc cch tip cn khc.
@ i Hc KHTN-TP HCM ; ASIA-ITC 101

Phn tch thit k h thng hng i tng bng UML

Tip cn phn loi


Phng php th hai c gi l phng php s dng mu lp chung, phng php ny da trn mt c s tri thc v vic phn loi lp theo nhng mu chung. Cc mu chung l: Lp khi nim (concept) Mt khi nim l mt quan nim hoc s hiu bit ring bit v th gii. Lp khi nim bao gm cc nguyn l c dng t chc hoc lu tr cc hot ng v cc trao i v mt qun l. Thng thng cc khi nim l cc tng, s hiu bit c chia s trong cng ng v dng trao i. V d: phng php, phng php lun, m hnh, l v d ca i tng lp khi nim. Lp s kin (event) Lp s kin l cc im thi gian cn c lu tr. Cc s vic xy ra ti mt thi im, hoc mt bc trong mt dy tun t cc bc. Lin quan ti cc s vic c lu tr l cc thuc tnh (v cc i tng cha thuc tnh) nh l: ai, ci g, khi no, u, nh th no, hoc ti sao. V d: ng k, kt qu, ho n, n hng Lp t chc (organization) Mt lp t chc l mt tp hp con ngi, ti nguyn, phng tin, hoc nhng nhm xc nh chc nng ngi dng,. V d: n v, b phn, phng ban, chc danh, Lp con ngi (people) Lp con ngi th hin cc vai tr khc nhau ca ngi dng trong vic tng tc vi ng dng. Nhng i tng ny thng l ngi dng h thng hoc nhng ngi khng s dng h thng nhng thng tin v h c lu tr bi h thng (a s l nhng i tng m h thng c trao i thng tin nhng khng s dng h thng) V d: sinh vin, khch hng, gio vin, nhn vin, Lp v tr (place) Cc v tr vt l m h thng cn m t thng tin v n. V d: to nh, kho, vn phng, chi nhnh, i l, S vt hu hnh v lp thit b Cc i tng vt l hoc cc nhm ca i tng hu hnh m c th cm nhn trc quan v cc thit b m h thng tng tc. V d: xe hi, my bay, l cc s vt hu hnh; thit b cm ng nhit l mt lp thit b. V d: chng ta c gng xc nh li cc lp trong h thng ATM dng phng php tip cn: Cc lp khi nim:
TiKhon

Cc lp s kin:

@ i Hc KHTN-TP HCM ; ASIA-ITC

102

Phn tch thit k h thng hng i tng bng UML GiaoDch

Cc lp t chc:
NgnHng

Cc lp con ngi:
KhchHng

Cc lp s vt hu hnh v thit b:
MyATM ThATM

Cch tip cn theo use case


Nh chng ta c gii thiu, use case c dng m hnh ho cc kch bn trong h thng v xc nh cch thc cc tc nhn tng tc vi kch bn. Kch bn c th c m t bng vn bn hoc thng qua mt th t cc bc. Mt khi h thng c m t trong ng ngha cc kch bn. Chng ta c th kim tra on m t vn bn hoc cc bc ca mi kch bn xc nh cc i tng no cn thit cho kch bn c thc hin. Chng ta c th m hnh ho cc kch bn ca use case s dng s tun t (sequence diagram) hoc s hp tc (collaboration diagram). Cc m hnh ny cho php chng ta m hnh ho mt cch trc quan hn giai on phn tch v tr gip thit k h thng thng qua vic m hnh ho s tng tc gia cc i tng trong h thng. Tuy nhin, vic m hnh ho kch bn ca use case mt cch qu c th s d dn n m t hot ng phn mm h thng ni m cc i tng phn mm c th s c xc nh (m ng ra n phi c xc nh giai on thit k). Do , cch tip cn ny nn kt hp vi cch tip cn phn tch cm danh t hoc cch tip cn phn loi xc nh ng cc i tng trong giai on phn tch. Trc tin, chng ta xc nh cc dng tng tc ca tc nhn vi h thng trong mt use case. Sau , chng ta s t cu hi i tng no ca h thng s chu trch nhim tip nhn s tng tc ny?. Tr li cu hi ny gip chng ta tm ra i tng u tin ca use case. Nu i tng ny chuyn giao ton b hoc mt phn trch nhim x l cho i tng khc no , th chng ta tip tc tip tc xc nh i tng . Qu trnh ny c tip tc cho n khi ht tt c cc dng tng tc c kim tra. V d: trong h thng ATM chng ta xem hot ng ca use case Gii quyt PIN khng hp l. y chng ta cn ngh v tun t cc hot ng m mt khch hng c th thc hin: a vo th ATM Nhp m PIN Rt th ATM

@ i Hc KHTN-TP HCM ; ASIA-ITC

103

Phn tch thit k h thng hng i tng bng UML

Da trn cc hot ng ny, phn ng ca h thng hoc chp nhn quyn truy cp ca ti khon tng ng hoc t chi. K tip chng ta cn xc nh mt cch tng minh hn v h thng: Chng ta ang tng tc vi ci g (ca h thng)? My ATM. Tip tc vi kch bn tip theo: my ATM s s dng i tng no kim tra m PIN? Khch hng ngn hng. Mt khch hng trong trng hp ny l bt k ngi no mun truy cp n mt ti khon thng qua my ATM, v c th c hoc c th khng c ti khon. Ngc li, mt khch hng ngn hng c mt ti khon. S tun t

: KhchHng

: MyATM

: KhchHngNgnHng

a th vo ATM Yu cu PIN

Nhp m PIN

Kim tra m PIN M PIN khng hp l

Thng bo m PIN khng hp l Nhy th Yu cu ly th Ly th Hin th mn hnh chnh

S hp tc
1: ua th vo ATM 3: Nhp m PIN 9: Ly th : MyATM 2: Yu cu PIN 6: Thng bo m PIN khng hp l 7: Nhy th 8: Yu cu ly th 10: Hin th mn hnh chnh

: KhchHng

5: M PIN khng hp l 4: Kim tra m PIN

: KhchHngNgnHng

Hoc xt use case Rt tin S tun t


@ i Hc KHTN-TP HCM ; ASIA-ITC 104

Phn tch thit k h thng hng i tng bng UML

: KhchHngNgnHng a vo th ATM Yu cu PIN

: MyATM

: TiKhon

Nhp m PIN

Kim tra m PIN M PIN hp l

Yu cu s tin Nhp s tin X l giao tc rt Giao tc thnh cng Phn phi tin mt Yu cu ly th Ly th Yu cu tip tc Kt thc In ho n

S hp tc
1: a vo th ATM 3: Nhp m PIN 7: Nhp s tin 12: Ly th 14: Kt thc

: MyATM 4: Kim tra m PIN 8: X l giao tc rt

: KhchHngNgnHng

2: Yu cu PIN 6: Yu cu s tin 10: Phn phi tin mt 11: Yu cu ly th 13: Yu cu tip tc 15: In ho n

5: M PIN hp l 9: Giao tc thnh cng : TiKhon

@ i Hc KHTN-TP HCM ; ASIA-ITC

105

Phn tch thit k h thng hng i tng bng UML

Nh vy, da vo hai s tun t ca hai use case chng ta xc nh c cc lp: MyATM, KhchHngNgnHng (KhchHng), TiKhon. Tip tc m hnh ho vi s tun t hoc hp tc vi cc use case cn li ca h thng ATM, chng ta s xc nh c cc lp cn li.

Xc nh mi quan h gia cc lp
Trong mi trng hng i tng, i tng m nhim mt vai tr ch ng trong mt h thng. i tng khng tn ti mt cch c lp m lun tng tc vi nhng i tng khc. S tng tc ny th hin thng qua mi kt hp bao gm lun cc hot ng v hnh vi ca cc i tng. Sau y chng ta s c gii thiu cc hng dn gip xc nh ba loi lin kt: mi kt hp, mi kt hp thu np (thnh phn) v mi kt hp tng qut ho.

Xc nh mi kt hp (association)
Xc nh mi kt hp bt u bng vic phn tch s tng tc gia cc lp. Thng thng th bt k c mt lin kt ph thuc no gia hai hay nhiu lp u c th thit lp mi kt hp. Mt cch lm iu ny chnh l kim tra trch nhim ca i tng thit lp mi kt hp. Ni cch khc, nu mt i tng c xc nhn thi hnh mt nhim v v li thiu thng tin thi hnh nhim v , th i tng ny phi y quyn thc hin li cho i tng khc s hu thng tin . C nhiu cch tip cn xc nh mi kt hp, u tin trch lc cc mi kt hp ng vin t vic tham kho m t h thng v yu cu h thng v nhng ti liu khc lin quan n h thng. Sau , tinh ch dn chn ra mi kt hp c ngha nht. Ch rng mi kt hp v mi kt hp thnh phn c ng ngha rt gn nhau, do c nhng trng hp kh phn bit, mi kt hp thnh phn ch l mt trng c bit ca mi kt hp. Ty theo lnh vc ng dng nu chng ta tm c mt cch t nhin biu din mi kt hp thnh phn th hy chn n, ngc li hy chn mi kt hp biu din. Sau y l cc hng dn v cc mu chung cho php xc nh mi kt hp: Hng dn xc nh mi kt hp Mt s ph thuc gia hai hay nhiu lp c th thit lp thnh mi kt hp. Mi kt hp thng tng ng vi mt ng t hoc cm gii t nh l thnh phn ca, lm vic cho, cha trong, Mt tham chiu t mt lp n mt lp khc l mt mi kt hp. Mi kt hp v tr (location): lin kt ti, thnh phn ca, cha trong, lm vic ti, . Mi kt hp s hu: ca, c, thuc, Mi kt hp c gia lp TiKhon v lp GiaoDch, mi kt hp ca gia lp TiKhon v lp KhchHng Mi kt hp truyn thng, lin lc (communication): t ti, trao i vi, gi cho, tip nhn t,

Mu chung xc nh mi kt hp

@ i Hc KHTN-TP HCM ; ASIA-ITC

106

Phn tch thit k h thng hng i tng bng UML


NgnHng

KhchHng 1 Ca 1..n TiKhon 1 C 0..n

MyATM

GiaoDch

Loi b nhng mi kt hp khng cn thit Mi kt hp ci t: mi kt hp ci t nn c a vo trong qu trnh thit k v ci t h thng. Mi kt hp ci t l mi kt hp m t s lin quan gia cc lp trong giai on thit k ci t h thng bn trong mi trng pht trin hoc ngn ng lp trnh c th v khng phi l mi lin kt gia cc i tng m t nghip v. Mi kt hp a phn: l mi kt hp gia ba lp tr ln, mi kt hp ny phc tp trong cch th hin. Nu c th, pht biu li n dng mi kt hp nh phn.

L p ho c

Mo n ho c

L p ho c
0..*

1..1

Mo n ho c

1..1

0..*

Buo i ho c

0..*

1..1

Pho n g ho c Buo i ho c

Gia o vie n

Pho ng ho c

1..1

0..*

Gia o vie n

Mi kt hp trc tip d tha (directed action): l cc mi kt hp c nh ngha trong ng ngha ca nhng mi kt hp khc (cn gi l mi kt hp suy din hoc bc cu). Nhng mi kt hp loi ny l d tha do cn loi b n khi m hnh. Trong cc mi kt hp di y lin quan, t ti, giao t th mi kt hp giao t c th c suy ra t mi kt hp lin quan v t ti. Vy mi kt hp giao t l d tha v c th loi b n khi m hnh.
lie n quan
1..1

Phie u a t ha ng

0..*

a t t i
1..1

0..*

Phie u giao ha n g

0..*

giao t

1..1

Nha cung ca p

@ i Hc KHTN-TP HCM ; ASIA-ITC

107

Phn tch thit k h thng hng i tng bng UML

Xc nh mi kt hp tng qut chuyn bit (generalization)


Mi kt hp tng qut ho chuyn bit th hin quan h k tha gia cc lp v mt cu trc phn cp xc nh nhng dng k tha ny. Quan h ny cho php cc i tng c th xy dng t nhng i tng khc. Mt thun li chnh khi s dng mi kt hp ny l chng ta c th xy dng trn nhng g ang c v quan trng hn l s dng li ci c. Sau y l cc tip cn hng dn xc nh mi kt hp tng qut ho: Tip cn trn xung (top-down): T mt lp chng ta tm kim cm danh t cha tn lp v tnh t (hoc danh t). nh gi xem cm danh t ny c th l mt trng hp c bit cn c qun l trong h thng khng; tm kim xem c nhng c trng ring ca lp ny m h thng cn ch ra hay khng. Nu quyt nh l mt lp th n l mt loi chuyn bit ca lp ban u. V d: t lp Ho n chng ta tm thy mt cm danh t Ho n giao hng c cha t Ho n, v trng hp di y quyt nh Ho n giao hng l mt lp chuyn bit ca lp Ha n.

Hoa n
So_H Ngay_H Dien_giai Tr_gia_H

Hoa n giao ha n g
a thanh toan Ngay thanh toan

Hoc trong h thng ATM, t lp GiaoDch chng ta c th chuyn bit ho xung hai lp con GiaoDchRt v GiaoDchGi.
GiaoDch

GiaoDchRt

GiaoDchGi

Trong qu trnh to cu trc phn cp tng qut chuyn bit, chng ta khng nn qu lm dng vic chuyn bit ha m a vo tt c cc lp chuyn bit khng cn thit. Cc lp chuyn bit cn thit l cc lp c nhng c trng (thuc tnh, hnh vi v mi kt hp) ring c biu din trong h thng. V d, c rt nhiu loi ho n c th to lp chuyn bit nh l: ho n bn l, ho n bn s, ho n giao hng. Trong khi , ch c Ho n giao hng l c nhng thuc tnh ring nn n c biu din trong h thng, cn hai lp cn li khng cn thit v khng tm ra c trng ring ca n. Tip cn di ln (bottom-up): tm kim trong cc lp xc nh xem c cc thuc tnh v phng thc ging nhau. Sau chng ta c th gom nhm v a cc thuc tnh v phng thc chung ny ln mt lp tng qut (tru tng). To mi kt hp tng qut ho t cc lp ny n lp tng qut mi xc nh.
@ i Hc KHTN-TP HCM ; ASIA-ITC 108

Phn tch thit k h thng hng i tng bng UML

M hnh di y cho thy, cc lp Ho n v n t hng c ba thuc tnh ging nhau (Ho n: S H, Ngy H, Din gii. n t hng: S H, Ngy H, Din gii) v mi kt hp vi lp NGK ging nhau. Do , chng ta to ra mt lp tng qut Chng t v di chuyn c ba thuc tnh v mi kt hp ln lp ny v to ra mi kt hp tng qut ho t lp Ho n v n t hng n lp Chng t.
Do ng hoa n
SLng n_gia

NGK
Ma_NGK Ten_NGK VTnh Hieu Gia_ban_le Ton_toi_thieu
1..*

Hoa n
So_H Ngay_H Dien_giai Tr_gia_H
1..*

chi tiet

0..*

Do n g a t ha ng
chi tiet
0..*

SLat n gia

n a t ha ng
So H Ngay_H Dien giai

Ch ng t
So CT Ngay CT Dien giai
0..*

NGK
chi tiet
1..*

Do ng ch n g t
SLng n gia

Ma_NGK Ten_NGK VTnh Hieu Gia_ban_le Ton_toi_thieu

n a t ha ng
So H Ngay_H Dien giai

Hoa n
So_H Ngay_H Dien_giai Tr_gia_H

Tip cn ti s dng: di chuyn cc thuc tnh v phng thc ln cng cao cng tt trong cu trc phn cp. a k tha: trnh s dng qu mc a k tha trong m hnh v a k tha s phc tp trong vic xc nh ng dn k tha mt hnh vi t nhng lp no.

@ i Hc KHTN-TP HCM ; ASIA-ITC

109

Phn tch thit k h thng hng i tng bng UML

Xc nh mi quan h thnh phn (a-part-of, aggregation)


Mi quan h thnh phn c s dng trong tnh hung mt lp hnh thnh bao gm nhng lp thnh phn. Hai c trng chnh ca mi quan h thnh phn l tnh bc cu v tnh phn i xng. Tnh bc cu: nu lp A l mt thnh phn ca lp B v lp B l thnh phn ca lp C, th lp A l thnh phn ca lp C. Tnh phn i xng: nu lp A l thnh phn ca lp B th lp B khng phi l thnh phn ca lp A. Tp hp: mt i tng vt l c hnh thnh t cc i tng vt l thnh phn khc.
ToNh

Vic xc nh mi quan h thnh phn c th da trn cc mu ch dn sau: -

1..1 0..*

Phng

Vt cha: mt i tng vt l cha ng cc thnh phn nhng khng c cu to bi cc thnh phn.


PhngHc

0..1 0..*

0..1 0..*

Bn

Gh

Mt phng hc cha ng tt c cc i tng bn gh nhng khng c cu to t nhng i tng ny. Tp hp thnh vin: mt i tng quan nim cha cc thnh phn c th vt l hoc quan nim.
PhngBan iBng Dn

Lm ti gm NhnVin

1..1

0..1

1..1 0..*
Giaion

0..*

0..*
CuTh

@ i Hc KHTN-TP HCM ; ASIA-ITC

110

Phn tch thit k h thng hng i tng bng UML

Cc lp PhngBan, iBng, DAn, Giaion l cc lp quan nim; cc lp NhnVin, CuTh l cc lp vt l. Trong h thng ATM, mt ngn hng bao gm cc my ATM, cc ti khon, cc to nh, cc nhn vin,.v.v Tuy nhin, cc i tng to nh, nhn vin, khng thuc phm vi h thng ang xt. Do , chng ta nh ngha mi kt hp thnh phn gia lp NgnHng v cc lp: MyATM, TiKhon.
NgnHng

KhchHng 1 ca 1. 1 TiKhon 1 c 0..n

MyATM

GiaoDch

GiaoDchRt

GiaoDchGi

Xc nh thuc tnh (attribute) v phng thc (method) ca lp


Xc nh thuc tnh v phng thc cng l mt cng vic kh nh l xc nh lp, v y cng l mt tin trnh lp. Thng thng ngi ta cng da vo use case v cc s UML khc xc nh cc thuc tnh v phng thc ca lp. Thuc tnh l cc thnh phn m mt i tng phi ghi nh nh l mu sc, tr gi, hng sn xut, Xc nh thuc tnh ca mt lp h thng bt u vi vic tm hiu v cc trch nhim ca h thng. V chng ta xc nh rng, trch nhim ca h thng c th c nhn nh qua vic pht trin cc use case v cc c im mong mun ca ng dng nh l xc nh thng tin g m ngi dng cn cho h thng. Cc cu hi sau y c th gip xc nh nhim v ca lp v cc thnh phn d liu m h thng mun lu tr. Thng tin g v i tng s c lu tr? Dchv g m mt lp phi cung cp?

Tr li cu hi th nht gip chng ta xc nh cc thuc tnh ca mt lp. Tr li cu hi th hai gip chng ta xc nh cc phng thc ca lp.

Xc nh thuc tnh
Bng vic phn tch cc use case, cc yu cu, cc m t v cc s chng ta c th bt u hiu trch nhim ca lp v cch thc m cc lp tng tc thi hnh cng vic. Mc tiu chnh y l hiu nhng g m mt lp c trch nhim v tri thc. Sau y mt s hng dn gip xc nh lp trong cc use case:

@ i Hc KHTN-TP HCM ; ASIA-ITC

111

Phn tch thit k h thng hng i tng bng UML

Thuc tnh thng tng ng ti cc danh t i theo bi cc cm ph t nh l: chi ph ca sn phm. Cc thuc tnh cng c th tng ng ti cc tnh t hoc cc ph t. Gi cho lp n gin: ch dng thuc tnh din t trng thi i tng Cc thuc tnh t c th c m t y trong m t vn . Do , chng ta phi s dng tri thc v lnh vc ng dng v thc t tm chng. Khng nn quan tm qu v vic phi khm ph ht thuc tnh. Chng ta c th b sung thm cc thuc tnh trong cc vng lp tip theo.

V d: xc nh cc thuc tnh cho cc lp ca h thng ATM. Xc nh thuc tnh cho lp KhchHng Bng vic phn tch use case, cc s tun t v hp tc v s hot ng, r rng rng, vi lp KhchHng, lnh vc bi ton v h thng a ra mt vi thuc tnh. Tm kim trong s tun t ca use case X l PIN khng hp l chng ta tm thy rng lp KhchHng phi c mt m PIN (hay password) v s th. Do , mPIN v sTh l hai thuc tnh thch hp ca lp KhchHng. Cc thuc tnh khc ca KhchHng l cc biu din tri thc chung v khch hng, do cc thuc tnh ca lp KhchHng l:
tnKhchHng hKhchHng mPIN sTh

trong thi im ny chng ta ch quan tm n chc nng ca i tng khch hng m khng quan tm n cc thuc tnh ci t Xc nh thuc tnh cho lp TiKhon Tng t cc thuc tnh ca lp TiKhon c xc nh l:
sTiKhon loiTiKhon sD

Xc nh thuc tnh cho lp GiaoDch


giaoDchID ngyGiaoDch thiGianGiaoDch loiGiaoDch sTin sD

Xc nh thuc tnh cho lp MyATM My ATM l mt i tng vt l v hu hnh, do thuc tnh ca n dng m t v tr v trng thi ca my.
aCh trngThi sTinHinTi

@ i Hc KHTN-TP HCM ; ASIA-ITC

112

Phn tch thit k h thng hng i tng bng UML

NgnHng

KhchHng tnKhchHng hKhchHng mPIN sTh 1 ca 1 TiKhon sTiKhon loiTiKhon sD GiaoDch c 1 giaoDchID ngyGiaoDch thiGianGiaoDch loiGiaoDch 0..n sTin sD MyATM aCh trngThi STinHinTi

GiaoDchRt

GiaoDchGi

Xc nh phng thc
Phng thc (method) v thng ip (message) l cc thnh phn gnh vc cng vic x l h thng hng i tng. Trong mt mi trng hng i tng, mi phn d liu hoc i tng c bao quanh bi mt tp hp cc thng trnh gi l cc phng thc. Nhng phng thc ny chnh l cc dch v v cc ton t ca mt lp nh ngha ci t hnhvi ca cc i tng thnh vin ca lp. Cc phng thc chnh l cch thc m i tng thc hin tng tc vi cc i tng khc trong h thng. Pht hin cc phng thc ci t cc hnh vi i tng l mt hot ng quan trng trong giai on phn tch. Cng nh thuc tnh, mt lp s c nhng phng thc ni b (private) v ton cc (puplic). Trong giai on phn tch, chng ta ch quan tm pht hin cc phng thc ton cc m t khi quan tm n cc phng thc ni b ca i tng. Cc phng thc thng tng ng vi cc truy vn v cc thuc tnh ca i tng. Ni cch khc, cc phng thc chu trch nhim qun l cc tr ca thuc tnh nh l truy vn, cp nht, c v ghi. Ch rng trong giai on phn tch, ch ta ang lm vic mc cao ca s tru tng ho. Do , cc phng thc nh l to (constructor) hoc cc phng thc m t chi tit vic ci t s c pht hin trong giai on thit k. Trong phn ny chng chng ta xem xt cch thc xc nh phng thc s dng cc s UML nh l: s trng thi, s hot ng, s tun t/hp tc v s use case. Xc nh phng thc bng vic phn tch cc s UML v use case Trong s tun t, cc i tng c t trong s vi cc ng t qung thng ng. Do , cc s kin xy ra gia cc i tng c t theo dng nm ngang. Mt s kin c xem nh l mt hnh ng chuyn thng tin. Mt khc, nhng hnh ng ny l cc ton t m i tng phi thc thi. V d, xc nh cc phng thc ca lp TiKhon, chng ta xem xt cc s tun t ng vi cc use case:
@ i Hc KHTN-TP HCM ; ASIA-ITC 113

Phn tch thit k h thng hng i tng bng UML

Rt tin Gi tin Xem thng tin ti khon S tun t c th tr gip chng ta xc nh cc dch v m cc i tng phi cung cp. V d, qua vic nghin cu s tun t ca use case Rt tin, chng ta thy rng lp TiKhon phi cung cp dch v rtTin. Qua vic nghin cu use case Gi tin, lp TiKhon phi cung cp dch v giTin. Tng t, cc dch v lp KhchHng: kimTraMtKhu (kim tra mt khu ca khch hng) Cc dch v ca lp MyATM Khi ng my ng my

NgnHng

KhchHng tnKhchHng hKhchHng mPIN sTh kimTraMtKhu() 1 ca 1 TiKhon sTiKhon loiTiKhon sD 1 rtTin() giTin() xemTiKhon()

MyATM aCh trngThi STinHinTi c khingMy() ngMy()

GiaoDch giaoDchID ngyGiaoDch thiGianGiaoDch loiGiaoDch 0..n sTin sD

GiaoDchRt

GiaoDchGi

Ch , cc dch v c a vo lp tng qut s c tha k trong cc lp chuyn bit.

Cu hi v bi tp
Cu hi
1. Cc i tng ca h thng trong giai on phn tch c th xc nh t u? 2. M t chin lc cm danh t trong vic xc nh cc lp ng vin trong mt lnh vc vn ?
@ i Hc KHTN-TP HCM ; ASIA-ITC 114

Phn tch thit k h thng hng i tng bng UML

3. Chin lc phn loi l g? 4. Cc lp khi nim l g? 5. Cc lp s kin l g? 6. Cc lp t chc l g? 7. Cc lp con ngi l g? 8. Cc lp v tr l g? 9. Cc lp s vt hu hnh v thit b l g? 10. Ti sao xy dng cc s tun t/hp tc l mt hot ng hu dng cho vic xc nh cc lp? 11. Ti sao vic xc nh lp l mt qu trnh gia tng? 12. Ti sao vic xc nh s phn cp ca cc lp l quan trng trong phn tch hng i tng? 13. Lin kt kt hp (association), tng qut ho (generalization) l g? 14. Thuc tnh v phng thc ca lp c xc nh bng cch no?

Bi tp
1. Hy xy dng s lp ca h thng Din n trao i hc tp ca khoa Cng Ngh Thng Tin.

@ i Hc KHTN-TP HCM ; ASIA-ITC

115

Phn tch thit k h thng hng i tng bng UML

PHN 3 THIT K H THNG


Mc tiu
Cung cp cc ni dung v: Cc nguyn l cn bn v thit k hng i tng Qu trnh thit k lp i tng: thit k thuc tnh, method v mi kt hp Kin trc ba tng trong thit k phn mm Thit k use case o Qu trnh thit k cc lp tng truy cp d liu: xc nh cc lp, thuc tnh, method v mi kt hp qua vic phn tch use case o Thit k cc lp tng giao din: xc nh cc lp, xy dng bn mu (prototype), xc nh thuc tnh v method qua vic phn tch use case o M hnh ho use case hin thc ho dng s lp, s tng tc Nng cp kin trc bng vic phn chia h thng thnh cc gi (package) Xy dng m hnh thit k vt l h thng s thnh phn v s trin khai nhm chun b cho ci t phn mm h thng

Gii thiu
Mc tiu chnh ca giai on phn tch vic pht trin phn mm l tp trung vo xc nh nhng g cn c thc hin. Cc i tng c pht hin trong giai on phn tch c th phc v nh l b khung (framework) cho giai on thit k. Cc thuc tnh, phng thc v mi lin kt ca lp c xc nh trong giai on phn tch phi c thit k cho vic ci t nh l mt thnh phn c m t theo ngn ng ci t. Trong phn ny, chng ta tp trung chi tit ho khung nhn lun l (logical view) ca h thng phn mm bng cch xc nh thm cc lp phn mm (tng giao din v tng truy cp CSDL) v thit k chng v kt qu l mt s lp hon chnh m t y cc i tng phn mm h thng chun b cho ci t. Mt khc, da trn kt qu ny chng ta pht trin thit k vt l h thng bng cch xy dng thm vo cc khung nhn ci t (implementation view) v khung nhn trin khai (deployment view) nhm chuyn giao kt qu thit k h thng gn vi mt ngn ng v cng c lp trnh xc nh cho giai on lp trnh v sau c th ci t ph hp vi cc thit b ti nguyn trong mt mi trng h thng thc t mt cch hiu qu. Phn ny bao gm bn chng: cc chng v thit k lun l: chng 8 Thit k lp, chng 9 Thit k use case, chng 10 Thit k gi v h thng con; chng v thit k vt l: chng 11 Thit k ci t.

@ i Hc KHTN-TP HCM ; ASIA-ITC

116

Phn tch thit k h thng hng i tng bng UML

Chng 8 THIT K LP
Mc tiu
Cung cp cc kin thc v: Mt s cc tin v h qu trong thit k h thng hng i tng nhm gip ngi thit k t c mt kt qu thit k tt. Bc u tin tinh ch cc lp trong giai on phn tch thnh cc lp c th ci t trong h thng phn mm bao gm: thit k thuc tnh, mi kt hp, v method

Cc tin v h lun trong thit k hng i tng


Cc tin
Theo Suh, trong tip cn thit k hng i tng c hai tin c p dng, cc tin l: Tin 1: tin c lp. Duy tr s c ca cc thnh phn: Trong qu trnh thit k, chng ta i t yu cu v use case n mt thnh phn h thng, mi thnh phn phi tho mn yu cu m khng nh hng n nhng thnh phn khc. Tin 2: tin thng tin. Gim ti a ni dung thng tin thit k. Tin ny ni v tnh n gin ho trong thit k. Mc ch chnh l gim ti a tnh phc tp, nh vy cc i tng s d bo tr v nng cp hn. Trong thit k hng i tng, cch tt nht gim phc tp l s dng tnh tha k. (xem h lun 6)

Cc h lun
T hai tin trn, c nhiu h lun c trch dn. Nhng h lun ny s mang li li ch hn trong vic quyt nh thit k cc tnh hung c th, v chng c th p dng ti cc tnh hung thc t d dng hn so vi tin gc ban u. H lun 1: thit k c lp, gim ti a thng tin trao i (Uncouple Design with Less Information) S c kt gia cc i tng cao c th lm gim tnh lin kt gia chng. Bi v ch mt lng nh cc thng tin cn thit trao i gia cc i tng . Coupling: giai on thit k, coupling c dng o mc lin kt gia cc i tng hoc gia thnh phn phn mm. Coupling l mt mi kt hp nh phn, v l mt khi nim quan trng khi nh gi mt thit k bi v n gip chng ta tp trung ng vo vn quan trng ca thit k. V d, mt thnh phn trong h thng thay i s c mt tc ng ti thiu n nhng thnh phn khc. Coupling trong cc i tng cng mnh cng mnh th h thng cng phc tp. Mc ca coupling c th c nh gi trn: Mc phc tp ca kt ni Kt ni tham chiu n chnh bn thn i tng hoc bn ngoi i tng Cc thng ip nhn v gi i

Mc coupling gia hai thnh phn c xc nh bng mc phc tp ca thng tin trao i gia chng. Coupling cng gia tng th cng lm gia tng phc tp hoc m h, ti ngha ca giao din. Coupling cng gim khi s kt ni c thit lp thnh phn giao din thay v thnh phn bn trong. Trong thit k hng i tng, c hai loi coupling l coupling tng tc v coupling tha k:
@ i Hc KHTN-TP HCM ; ASIA-ITC 117

Phn tch thit k h thng hng i tng bng UML

Coupling tng tc: th hin qua s lng v phc tp ca cc thng ip gia nhng thnh phn, s tng tc cng t th cng c u tin. Coupling cng p dng ti mc phc tp ca thng ip. Mt ch dn chung l gi cc thng ip cng n gin v cng t xy ra th cng tt. Tng qut, nu mt kt ni thng ip gm ba tham s tr ln th kim tra xem c th lm n gin ho n na c khng. Mt i tng c kt ni vi nhiu thng ip phc tp th gi l lin kt cht (tightly coupled), c ngha l bt k c s thay i no c th tc ng n s thay i trong nhng ci khc.
A B D

Hnh 4.

V d v biu din coupling v B l lin kt cht

Nm mc coupling tng tc Data coupling: kt ni gia cc thnh phn hoc l d liu dng nguyn t hoc l hoc cu trc tng hp tt c yu t c dng bi i tng nhn. y l loi coupling tt nht v l mc ch ca thit k kin trc. Cc i tng trao i vi nhau thng qua cc d liu thnh t hoc cc c hiu thng tin. Thnh phn ny khng quan tm n bt c g bn trong thnh phn khc m ch quan tm n d liu g n cn v d liu g n gi tr.
Class_A + Operation_A () : Integer Class_B + Operation_B (Integer Para_1) : Integer

integer Operation_A() { int x,y; Class_B cB; . y = cB.Operation_B(x); }

Operation_A khng quan tm n ni dung thc hin ca Operation_B m ch quan tm n d liu gi n v nhn t Operation_B

Stamp coupling: trong stamp coupling, d liu trao i l mt phn ca cu trc hoc ton b cu trc. Loi coupling ny c nh gi l thp hn so vi data coupling bi v s trao i l mt cu trc thay v mt yu t n nn lm cho n phc tp hn. Mt thay i trong cu trc s nh hng n tt c i tng s dng n. Stamp coupling lm cho cc thnh phn ph thuc nhiu hn n thnh phn khc, bi v, trnh nhng li c th xy ra, nhng thnh phn s phi c hiu bit v hot ng bn trong ca thnh phn khc s dng cng cu trc d liu.

@ i Hc KHTN-TP HCM ; ASIA-ITC

118

Phn tch thit k h thng hng i tng bng UML


Class_A + Attribute_A1 : Integer + Attribute_A2 : Integer + Operation_A () : Integer Class_B + Operation_B (Class_A s_Para) : Integer

integer Operation_A() { int x,y; Class_B cB; . y = cB.Operation_B(this); } Control coupling: khi mt thnh phn thnh phn gi mt thng tin iu khin ti mt thnh phn khc, hai thnh phn ny c gi l c control coupling. Thng tin iu khin c th xut hin di dng c hiu thng bo cho thnh phn khc hnh ng s thc hin. Khi thng tin iu khin c gi i, thnh phn gi phi bit v hot ng bn trong ca thnh phn nhn, do n to ra mt s ph thuc gia cc thnh phn. Common coupling: khi hai thnh phn tham kho n cng mt vng d liu chung ton cc th c lin kt common coupling. Lin kt ny cng nn trnh bi v n to ra mt c hi ln v li trn ton b h thng. Mt li pht sinh trong bt k mt thnh phn no s dng d liu ton cc ny c th gy ra li trong bt k thnh phn khc s dng cng d liu ny. Content coupling: loi coupling c xp thp nht l content coupling. Bi v loi ny gii thiu mt thnh phn tham kho trc tip hot ng bn trong ca mt thnh phn khc. V d, mt method c th thay i d liu trong mt method khc hoc thay i mt on code trong method khc. Hin nay, cc ngn ng lp trnh (c bit l ngn ng lp trnh hng i tng) u khng cho php to ra content coupling. Tn coupling Data coupling Stamp coupling Control coupling Common coupling Content coupling Xp hng ph thuc Rt thp Thp Trung bnh Cao Rt cao
Operation_B nhn d liu l cu trc Class_A thc hin. Do , ni dung ca n s s dng d liu tng thnh phn ca cu trc Class_A. Mt s thay i trong cu trc ny s nh hng n Operation_B

Coupling tha k: l coupling gia lp tng qut v lp chuyn bit. Mt lp chuyn bit lin kt vi lp tng qut ca n thng qua thuc tnh v method. Khng nh coupling tng tc, coupling tha k cng cao th cng u tin. Tuy nhin, t c mc cao coupling tha k trong mt h thng. Mi lp chuyn bit khng nn tha k nhng method v thuc tnh khng lin quan hoc khng cn thit. V d, nu mt lp chuyn bit chng ln hu ht cc method hoc khng s dng n t lp tng qut, iu ny cho thy coupling tha k l thp v lc thit k vin phi thay i li cch xy dng tng qut ho v chuyn bit ho ny. Cohesion
@ i Hc KHTN-TP HCM ; ASIA-ITC 119

Phn tch thit k h thng hng i tng bng UML

Trong khi coupling cp n mc tng tc gia cc i tng thnh phn th cohesion li cp n s tng tc bn trong mt i tng thnh phn. Cohesion phn nh tnh n mc ch ca mt i tng. Tt c cc lnh, chc nng trong mt thnh phn c nh ngha gn lin ti mt nhim v. Trong h thng nu cc thnh phn t c mc cohesion cng cao th mc lin kt coupling gia cc thnh phn cng yu, do t c nh cao ca cohesion th chng ta phi lm gim mc coupling. Cohesion cng tr gip trong thit k lp bng vic gip xc nh mc ch v mc tiu ca lp mt cch r rng. Method cohesion: mt method ch nn m nhn mt chc nng hoc mt nhim v. Thng thng cch t tn ca method cng phi ng ni ln chc nng lin quan ca n. V d: Chon_nha_cung_cap(), Tinh_ton(), Class cohesion: cc method v cc thuc tnh trong mt lp phi c mc cohesion cao, ngha l phi c dng bi cc method bn trong lp hoc chnh l method phc v cho mc ch ca lp. Cohesion tha k: cc lp chuyn bit v lp tng qut phi cng m t v mt loi i tng ca h thng. Cc thuc tnh v hnh vi ca lp tng qut phi c tha hng ti a trong lp chuyn bit theo cch hoc l phc v cho hnh vi ca lp chuyn bit hoc tr thnh mt hnh vi ca lp chuyn bit. H lun 2: n mc ch (single purpose) Mi lp phi c mt mc ch xc nh trong vic t c mc tiu h thng. Nu chng ta m t mt lp phc tp th hy phn chia n thnh nhng lp nh hn, n gin v xc nh hn. Mi method ch cung cp mt dch v, kch thc khng qu ln (khng nn vt qu mt trang coding) H lun 3: nhiu lp n. To cc lp n cho php ti s dng Kt qu thit k h thng tt chnh l to ra mt tp ln cc lp n gin hn l mt tp nh cc lp phc tp. Cc lp cng t chuyn bit th cc vn trong tng lai cng kh gii quyt hn thng qua vic kt ni cc lp ang c v ti s dng chng. Thit k hng i tng lun xut vic sn sinh th vin cc thnh phn ti s dng v nhn mnh trn tnh bao bc (encapsulation), n v ho (modularization), v tnh a hnh (polymorphism) ti s dng khi xy dng mt i tng hn l lm mi. H lun 4: nh x kt qu gia cc giai on phi cht ch (strong mapping) Giai on phn tch v thit k da trn cng m hnh, kt qu m hnh. T qu trnh phn tch n ci t, cc chi tit s c a thm vo nhng vn duy tr v c bn ging nhau. V d, trong giai on phn tch chng ta xc nh lp Ho n. Trong giai on thit k chng ta thit k lp Ho n: method, d liu, H lun 5: chun ho (standardization). xut s chun ho bng vic thit k cc thnh phn c th thay th v ti s dng cc thnh phn c sn. ti s dng, chng ta phi c mt hiu bit su v cc lp trong mi trng lp trnh hng i tng chng ta ang dng. Hu ht cc h thng hng i tng u c cc cc lp th vin xy dng sn v ngy cng gia tng khi chng ta to cc ng dng mi. Tri thc v cc lp tn ti gip chng ta xc nh nhng g mt lp mi cn c do tha k hn l phi xy dng mi. Mc d vy, ti liu m t cc lp th vin thng khng c bin tp tt hoc t c cp nht thng xuyn khi c s iu chnh, nng cp. Do , trong qu trnh xy dng cc h thng chng ta nn to ra cc lp th vin v tch ly dn n t vic xy dng cc h thng v lun lun xem xt vic tha k n khi xy dng mt h thng mi. H lun 6: thit k tha k (design inheritance).
@ i Hc KHTN-TP HCM ; ASIA-ITC 120

Phn tch thit k h thng hng i tng bng UML

Cc c tnh chung phi c chuyn ln lp tng qut. Cu trc lp tng qut lp chuyn bit phi to ra ngha lun l.

Thit k lp
Mt tin trnh thit k lp bao gm: Tinh ch thuc tnh Thit k hnh vi (method) v nghi thc (protocol) s dng s trong UML Tinh ch quan h gia cc lp Tinh ch s phn cp v thit k s k tha

Phm vi nh hng ca lp
Trong vic thit k hnh vi v thuc tnh cho cc lp, chng ta gp phi hai vn . Th nht l nghi thc (protocol), hoc giao din ti cc ton t v s c th thy (visibility) ca n; th hai l cch thc ci t n. Nghi thc c xem l cch thc xc nh cc c trng ca lp c th nhn thy t bn ngoi hoc c c xem l ni b bn trong. Cc nghi thc l: ton cc (public protocol), ring (private protocol), v bo v (protected protocol). pupblic protocol: nh ngh cc hnh vi trng thi ca lp private protocol: dng xc nh cc c trng ca lp ch c truy cp bi chnh lp Protected protocol: xc nh c trng ca mt lp c th s dng bi chnh n v lp con ca n. public protocol protected protocol private protocol

Cc thng ip

Lp con

Tinh ch thuc tnh


Cc thuc tnh trong giai on phn tch hng i tng phi c tinh ch theo cch nhn v vic ci t n trong mi trng tin hc. Trong giai don phn tch, chng ta ch cn tn ca thuc tnh l . Tuy nhin, trong giai on thit k, thng tin chi tit v thuc tnh phi c thm vo. Mc tiu chnh ca hot ng ny l tinh ch cc thuc tnh tn ti (c xc nh trong giai on phn tch) v a thm cc thuc tnh dng cho vic ci t nhm c t lp nh mt thnh phn ca mi trng tin hc. Kiu thuc tnh C ba kiu c bn ca thuc tnh:
@ i Hc KHTN-TP HCM ; ASIA-ITC 121

Phn tch thit k h thng hng i tng bng UML

Thuc tnh n tr Thuc tnh a tr Thuc tnh dng tham chiu ti cc i tng khc hoc ti mt th hin kt ni

Cc thuc tnh th hin cho trng thi ca i tng. Khi mt trng thi ca i tng thay i, s thay i ny c phn nh qua gi tr ca cc thuc tnh. Thuc tnh n tr l loi ph bin nht, n ch c mt gi tr hoc mt trng thi tng ng vi mt i tng. V d: Tn, Ngy sinh, Mc lng, Thuc tnh a tr c th c mt tp cc gi tr tng ng cho mt i tng. V d: chng ta mun lu tr nhiu s in thoi ca mt khch hng, chng ta c th t thuc tnh S in thoi l a tr. Thuc tnh tham chiu c dng cung cp vic tham kho cn thit mt i tng p ng cc trch nhim ca n. Ni cch khc, thuc tnh tham chiu hin thc ho mi kt hp ca cc i tng. Hin th thuc tnh Trong UML vic trnh by thuc tnh c ngh nh sau: <Phm vi> <tn> : <kiu thuc tnh> = <gi tr khi to> Trong , <phm vi> s l: + : ton cc (public protocol) # : bo v (protected protocol) - : cc b (private protocol) <kiu thuc tnh> l mt c t ci t thuc tnh c lp ngn ng. <gi tr khi to> l mt biu thc c lp ngn ng xc nh gi tr khi to khi mt i tng c to mi. tham s ny l tu chn. Thuc tnh a tr c xc nh bng vic thm vo ch s mng theo sau tn thuc tnh. V d:
a_ch[3]: string Tp_hp_im[2..*]: im

V d: tinh ch thuc tnh cc lp ca h thng ATM Lp KhchHng


#tnKhchHng: String #hKhchHng: String #mPIN: String #sTh: String #tiKhon: TiKhon (thuc tnh tham chiu)

Trong , thuc tnh #tiKhon dng m t mi quan h gia lp KhchHng v lp TiKhon. Vic thm thuc tnh ny cho php chng ta tham kho n mt i tng ti khon t mt i tng khch hng. Tt c thuc tnh u c gn cho mt phm vi truy cp ni b dng nghi thc protected nhm m bo tnh bao bc v c th tha k nu sau ny cc pht trin thm cc lp con. Lp TiKhon
#sTiKhon: String
@ i Hc KHTN-TP HCM ; ASIA-ITC 122

Phn tch thit k h thng hng i tng bng UML

#loiTiKhon: String #sD: float #giaoTc: GiaoTc (ci t mi kt hp gia lp TiKhon v lp GiaoTc) #khchHng: KhchHng (ci t mi kt hp gia lp TiKhon v lp KhcHng)

Lp GiaoTc
#giaoDchID: String #ngyGiaoDch: Date #thiGianGiaoDch: Time #loiGiaoDch: String #sTin: float #sD: float

Lp GiaoTc v lp TiKhon c mt mi kt hp. Khi tnh ch thuc tnh cho lp TiKhon, chng ta thm vo thuc tnh #giaoTc dng ci t mi kt hp ny. Vy khi tnh ch thuc tnh cho lp GiaoTc chng ta cng c th thm vo mt thuc tnh cng ci t cho mi kt hp ny nu chng ta c nhu cu bit thng tin v ti khon t mt giao tc. Tuy nhin, vi bi ton ca chng ta y khng c nhu cu , vy nn chng ta khng thm vo lp GiaoTc thuc tnh tham chiu ti lp TiKhon. Lp MyATM
#aCh: String #trngThi: String #sTinHinTi:float
NgnHng

KhchHng #tnKhchHng:String #hKhchHng:String #mPIN::String #sTh:String #tiKhon:TiKhon MyATM #aCh:String #trngThi:String #sTinHinTi:float

ca 1

TiKhon #sTiKhon:String c #loiTiKhon:String #sD:float #giaoTc:GiaoTc 1 #khchHng:KhchHng

GiaoDch #giaoDchID:String #ngyGiaoDch:Date #thiGianGiaoDch:Time #loiGiaoDch:String 0..n #sTin:float #sD:float

GiaoDchRt

GiaoDchGi

S lp ca h thng ATM sau khi tnh ch thuc tnh


@ i Hc KHTN-TP HCM ; ASIA-ITC 123

Phn tch thit k h thng hng i tng bng UML

Tinh ch hnh vi (method)


Mc tiu chnh ca hot ng ny l m t thut ton cho cc hnh vi c xc nh giai on phn tch. Vic m t thut ton cng c th c thc hin trn nhiu cch, hoc bng vn bn (m gi) hoc bng s . Vic s dng s (trong UML c th dng s hot ng, tun t,) cho php chng ta d dng hn trong vic chuyn i chng sang mt ngn ng lp trnh mt cch th cng hoc t ng (thng qua mt CASE Tool). Trong giai on ny chng cng nn gim ti a mc phc tp cc kt ni thng ip gia cc lp s lng thng ip c gi v nhn bi mt i tng. Mc tiu nhm gia tng tnh on kt (cohension) trong s cc i tng v cc thnh phn phn mm ci tin tnh lin kt (coupling), bi v chng ta phi gi mt s lng ti thiu cc thng tin cn thit chuyn i gia cc thnh phn. p dng cc tin v h lun thit k chng ta c cc hng dn sau: Mt tp ln cc lp n gin s tt hn mt tp nh cc lp phc tp To mt lp tng qut cho cc lp m chng ta tm thy c mt s ni dung ging nhau. Mc tiu l tng ti ta vic ti s dng Lun tp trung vo mc tiu ca lp khi nh ngha nhm trnh vic thit k lc hoc m rng vt khi phm vi ngha ca lp: iu ny thng xy ra khi chng ta to ra cc thay i trn lp ang tn ti khi bi ton c s thay i v cng ngy to ra cc lp vi ni dung phc tp khng cn ng vi mc tiu ban u ca lp. Constructor: methode to th hin (i tng) ca lp Destructor: methode hu th hin ca lp Conversion: method chuyn i mt n v o lng ny sang mt n v o lng khc Copy: method sao chp ni dung ca mt th hin sang mt th hin khc Attribute set: method gn gi tr cho mt hoc nhiu thuc tnh Attribute get: method tr v gi tr ca mt hoc nhiu thuc tnh I/O method: method cung cp ti hoc nhn d liu t mt thit b Domain specific: method xc nh ti cc ng dng ca i tng

Mt lp c th c nhng loi hnh vi sau: -

Hin th hnh vi Theo UML mt hnh vi ca lp c trnh by theo c php: <phm vi> <tn> <(danh sch tham s)> : <kiu tr v> Trong , <phm vi> c qui nh ging nh ca thuc tnh <danh sch tham s>: mi tham s cch nhau bi du phy v c c php nh sau: <tn tham s>: <kiu d liu> = <gi tr mc nh>. <kiu tr v> l mt c t c lp ngn ng v ci t gi tr tr v ca mt hnh vi. Nu mc ny b b qua thi hnh vi khng tr v gi tr V du:
+get_Tn(): String +get_STiKhon(vtiKhon : TiKhon): String

Thit k hnh vi cho h thng ATM


@ i Hc KHTN-TP HCM ; ASIA-ITC 124

Phn tch thit k h thng hng i tng bng UML

Ti thi im ny, chng ta xc nh cc i tng hnh thnh tng nghip v ca h thng, cng nh l cc dch v m cc i tng ny cung cp. Cng vic cn li l thit k hnh vi, giao din ngi dng v x l truy cp c s d liu. Vi h thng ATM, chng ta xc nh cc ton t giai on phn tch bao gm: Lp KhchHng
KhchHng::+kimTraMtKhu(sTh:String, vPIN:String): vkhchHng: KhchHng

Thit k thut gii cho hnh vi dng s hot ng

#lay_KhachHang (soThe:String, vPIN:String):vkhachHang:KhachHang) vkhachHang = lay_KhachHang (soThe, vPIN) null hoac PIN khong hop le

Hien_Thi_tbao("PIN khong hop le, vui long nhap lai")

PIN hop le Cung cap quyen truy cap toi tai khoan

Hnh vi kimTraMtKhu() trc ht s thi hnh to mt i tng khch hng v thc hin ly thng tin v khch hng da trn da trn mt s th v m PIN. Ti y, chng ta li nhn thy rng cn phi c mt hnh vi khc thc hin iu ny l ly_KhchHng() v c phm vi ni b dng protected (#). Hnh vi ny s ly tham s u vo l s th v m PIN, kt qu tr v l mt i tng khch hng tm thy hoc l null nu ngc li. Nu gi tr tr v l null, s gi mt thng ip ti h thng thc hin thng bo PIN khng hp l, vui lng nhp li, ngc li, s gn quyn truy cp cho ngi dng. Thit k thut gii dng s tun t

@ i Hc KHTN-TP HCM ; ASIA-ITC

125

Phn tch thit k h thng hng i tng bng UML


: MyATM : KhchHng

KimTraMtKhu(vSTh, vPIN) vKhchHng = ly_KhchHng(sTh, vPIN) Hin th thng bo PIN khng hp l, vui lng nhp li

Cung cp quyn truy cp cho ngi dng vKhchHng

Vi trn chng ta ch quan tm n cc lp (nghip v) s cung cp cc dch v g thc hin kimTraMtKhu(). Chng ta cha quan tm n cc i tng cc tng khc nh l: truy cp c s d liu hoc giao din hin th. V d nh hnh vi ly_KhchHng(sTh, vPIN) s phi truy cp c s d liu thc hin, cng nh i tng: MyATM ch l gi lp giao din gia khch hng v h thng, chng ta cha xc nh i tng giao din c th no (form, trang web,) s thc hin. Phn ny s c cp chi tit trong nhng chng sau. Lp TiKhon
TiKhon::+giTin(sTin: foat)

soDu = soDu + soTien

capNhatTaiKhoan(soT aiKhoan, soDu)

TaiKhoan::#capNhatTaiKhoan(soTaiKhoan, soDu)

Tao giao tac gui

TaiKhoan::#taoGiaoTac("gui", soTien, soDu)

Khi thc hin mt vic gi tin, s tin c gi c chuyn n mt i tng ti khon v c dng nh l mt i s cho hnh vi giTin(). Ti khon ny iu chnh s d hin hnh ca n bng cch cng thm vi s tin gi. Sau , ti khon ny s lu thng tin ln gi bng cch to ra mt i tng giao tc.

@ i Hc KHTN-TP HCM ; ASIA-ITC

126

Phn tch thit k h thng hng i tng bng UML

Mt ln na chng ta li khm ph ra nhng hnh vi khc: cpNhtTiKhon(), hnh v ny l cc b (#) cho php cp nht d liu ti khon. toGiaoTc(), cng l hnh vi cc b cho php to mt giao tc tng ng vi ti khon ny.
TiKhon::+rtTin(sTin:float): mTrV:String

soTien > soDu soTien <= soDu soDu = soDu soTien #capNhatTaiKhoan(so TaiKhoan, soDu)

maTraVe = "So tien rut vuot qua so du"

Cap nhat lai so du tai khoan

#taoGiaoTac("Rut", soTien, soDu)

Tao mot giao tac rut tien cho tai khoan

Mt s tin m khch hng mun rt s c chuyn n mt i tng ti khon nh l mt tham s u vo. Ti khon ny s kim tra s d hin hnh ca n so vi s tin ny. Nu vn ln hn hoc bng s tin rt th ti khon s cp nht li s d v to mt giao tc rt tin, ngc li thng bo li vi mTrV S tin rt vt qu s d. Mt ln na chng ta thy hnh vi rtTin li s dng cpNhtTiKhon v toGiaoTc cp n trong khi thit k hnh vi giTin. Lp MyATM
MyATM::+khingMy(sTinKhiTo:float)

soTienHienTai = soTienKhoiTao

#capNhatSoTien()

Thuc hien ket noi voi ngan hang

NganHang::+ketNoi()

Sau khi bt my ATM, mt s tin khi to c nhp t nhn vin vn hnh s c chuyn n i tng myATM nh l mt tham s u vo. i tng myATM s cp nht li s tin ban u cho my v sau thc hin vic kt ni ti ngn hng nhm thc hin vic lin kt truy cp c s d liu. Qu trnh ny chng ta li c nhu cu pht sinh thm hnh vi cc b #cpNhtSTin v hnh vi ton cc NgnHng::+ktNi().
@ i Hc KHTN-TP HCM ; ASIA-ITC 127

Phn tch thit k h thng hng i tng bng UML

MyATM::+ngMy()

Dong ket noi voi Ngan Hang

NganHang::+dongKetNoi()

Thuc hien tat may

#tatMay()

i tng myATM thc hin ng my bng cch gi thc hin vic ng kt ni vi ngn hng v gi thc hin tt my. Qu trnh ny pht sinh thm hai hnh vi: +ngKtNi()do i tng NgnHng m nhn v #ttMy() l hnh vi cc b ca i tng MyATM. Nh vy, chng ta thit k xong cc hnh vi c xc nh giai on phn tch qu trnh thit k ny li pht sinh cc hnh vi: #ly_KhchHng(), #cpNhtTiKhon(), #toGiaoTc(), +ktNi(),+ngKtNi(), #cpNhtSTin(), #ttMy(). Chng ta lp li qu trnh thit k cho nhng hnh vi ny. Ch rng cc hnh vi lin quan n vic truy cp d liu hoc x l giao din s c thit k nhng giai on tip theo trong nhng chng sau. Cc hnh vi l: #ly_KhchHng(), #cpNhtTiKhon(),. Sau y chng ta tip tc thit k thut gii cho cc hnh vi toGiaoTc(), +ktNi(), +ngKtNi(), #cpNhtSTin():
TiKhon::#toGiaoTc(loiGiaoTc:String, sTin:float, soDu:float)

giaoTac.soDu = soDu giaoTac = new (GiaoDich) giaoTac.ngayGiaoDich = date (today) giaoTac.loaiGiaoDich = loaiGiaoTac

giaoTac.thoiGianGiaoDich = time (now)

giaoTac.soTien = soTien

Thuc hien cap nhat giao tac

@ i Hc KHTN-TP HCM ; ASIA-ITC

128

Phn tch thit k h thng hng i tng bng UML


: TiKhon : GiaoDch

toGiaoTc(loiGiaoTc, sTin, sD) toMi() gnThngTinGiaoDch()

Cp nht vo c s d liu giao dch mi

Mt i tng ti khon to mt giao tc lin quan n n bng cch truyn cc tham s: loi giao tc (gi, rt), s tin, v s d sau khi thc hin giao tc. i tng ti khon s to mi mt i tng giao tc ng vi thuc tnh giaoTc ca n v gn cc thng tin v giao tc , sau , lu li giao tc ny vo c s d liu. Qu trnh ny li pht sinh mi hai hnh vi: hnh vi +gnThngTinGiaoDch() ca i tng giao dch c phm vi ton cc; hnh vi cp nht vo c s d liu m chng ta s thit k chi tit trong cc chng sau. Tm thi y l vn ni b ca i tng ti khon.
GiaoDch:: +gnThngTinGiaoDch(loiGD:String, sTin:float, sD:float, ngyGD:Date, giGD:Time)

Cc hnh vi +ktNi(), +ngKtNi(), +cpNhtSTin() th n gin do chng ta ch m t khai bo n:


NgnHng::+ktNi() NgnHng::+ngKtNi() MyATM::#cpNhtSTin(sTin:float)

@ i Hc KHTN-TP HCM ; ASIA-ITC

129

Phn tch thit k h thng hng i tng bng UML


NgnHng +ktNi() +ngKtNi() KhchHng #tnKhchHng:String #hKhchHng:String #mPIN::String #sTh:String #tiKhon:TiKhon +kimTraMtKhu() #ly_KhchHng() 1 ca 1 TiKhon #sTiKhon:String c #loiTiKhon:String #sD:float #giaoTc:GiaoTc 1 #khchHng:KhchHng +giTin() +rtTin() #cpNhtTiKhon() #toGiaoTc() GiaoDch #giaoDchID:String #ngyGiaoDch:Date #thiGianGiaoDch:Time #loiGiaoDch:String 0..n #sTin:float #sD:float +gnThngTinGiaoDch() MyATM #aCh:String #trngThi:String #sTinHinTi:float +khingMy() +ngMy() #cpNhtSTin() #ttMy()

GiaoDchRt

GiaoDchGi

S lp ca h thng my ATM vi kt qu tinh ch u tin v thuc tnh v hnh vi

Tng kt
Bc u tin trong tin trnh thit k hng i tng l vic p dng cc tin v h lun thit k cc lp, thuc tnh, hnh vi, mi kt hp, cu trc, phm vi; qu trnh ny l mt qu trnh lp v tinh ch. Trong giai on phn tch, ch cn tn thuc tnh l . Tuy nhin, trong giai on thit k, cc thng tin chi tit s phi c thm vo m hnh (c bit l cc nh ngha ca thuc tnh v hnh vi). Thiu i mt nghi thc thit k tt c th pht sinh cc k h v tnh bao bc (encapsulation). Vn ny xy ra khi khi chi tit v ci t bn trong ca mt lp c phi by ra giao din. Cng nhiu thng tin chi tit bn trong ca lp b phi by, s uyn chuyn trong cc thay i h thng sau ny cng gim. Bi v n lm gim i tnh c lp ca i tng trong h thng. Do , chng ta s dng khai bo phm vi cc b (private) hoc bo v (protected) xc nh vic ci t i tng; s dng khai bo phm vi ton cc (public) xc nh chc nng ca i tng. Thit k hng i tng l mt qu trnh lp. Do , chng ta ng ngi vic thay i ti mt lp, mi s thay i hy tin rng s l mt s ci tin m hnh hin ti. Mt iu ghi nh rng cc vn cn c gii quyt cng sm cng tt khi phi tr gi ln trong cc giai on sau.

@ i Hc KHTN-TP HCM ; ASIA-ITC

130

Phn tch thit k h thng hng i tng bng UML

Cu hi v bi tp
1. Cc nghi thc public v private l g? ngha ca vic s dng nhng nghi thc ny trong thit k? 2. Khi thit k mi kt hp, chng ta cn thm mt thuc tnh tham chiu ti mt lp khi chng ta cn xc nh iu g? 3. Ti sao chng ta li da vo s hot ng hoc s tun t xc nh hnh vi ca mt lp?

@ i Hc KHTN-TP HCM ; ASIA-ITC

131

Phn tch thit k h thng hng i tng bng UML

Chng 9 THIT K USE CASE


Mc tiu
Mc tiu ca chng ny cung cp cc kin thc v: Cung cp c bn v kin trc ba tng (tree-layer) Xc nh cc lp i tng tng nghip v Xc nh cc i tng tng truy cp d liu v thit k method Xc nh cc i tng tng giao din v thit k method M t hin thc ho ni dung thit k mt use case

Ni dung
M hnh use case chng ta t c giai on phn tch m t tnh nng h thng t pha ngi s dng. Cc chc nng ny c xem nh l s biu din cc yu cu chc nng m h thng cn p ng. Trong giai on thit k, cc chc nng ny phi c m t gc ci t. Nh vy i vi mt ngi thit k vin, chng ta phi t cu hi l lm sao biu din s use case ny chi tit v trn mt ngn ng c th ci t c. Mt cch tip cn l tch bit din t chc nng thnh hai phn: phn m t chc nng nhn t bn ngoi (t pha ngi dng: h thng c nhng chc nng g cung cp cho ngi s dng s use case) v phn m t chc chc nhn t bn trong (t pha ngi pht trin: lm sao hin thc ho cc chc nng ci t n m t hin thc ho use case). Vic hin thc ho c m nhn bi mt cc use case cng tc v do thit k ni dung bn trong mt use case chnh tp trung vo thit k use case cng tc. Ni dung thit k use case cng tc bao gm: xc nh thm cc i tng h thng phn mm cng cng tc trong vic thc hin use case v s tng tc gia chng. Trong tip cn kin trc ba tng (treelayer), cc i tng h thng phn mm l cc i tng tng giao din v tng truy cp d liu cng nh cc i tng iu khin phn mm. Sau , xc nh s tng tc gia cc i tng trong use case nhm pht hin cc method cho cc i tng ca hai tng ny cng nh hon thin vic tinh ch method cho cc lp. Kt qu ca giai on ny l mt s lp y chun b cho vic ci t h thng phn mm trong giai on sau.

Kin trc 3 tng (three - layer)


Hu ht cc h thng c pht trin s dng cc cng c CASE ngy nay hoc trong cc mi trng pht trin ng dng client server c xu hng xy dng mt kin trc hai tng (two layer): giao din (interface) v d liu (data). Trong mt h thng hai tng, cc mn hnh giao din ngi dng lin kt truy cp d liu thng qua cc on chng trnh c ci trc tip trn cc giao din. V d, mt chng trnh vit trn Visual Basic c mt form giao din, mt th tc x l bin c trong button Update ca form ny c tn bUpdate_Click() c th thc hin lun vic truy cp v cp nht CSDL trc tip, nh vy th tc ny ci t lun cc ng ngha v tc nghip (business). Vic thit k theo m hnh ny to ra mt s ph thuc rt ln gia giao din v CSDL v do , rt kh ci tin, bo tr v ti s dng.

CSDL

Workstation

Hnh 5. @ i Hc KHTN-TP HCM ; ASIA-ITC

Kin trc hai lp: giao din v d liu 132

Phn tch thit k h thng hng i tng bng UML

Mt cch tip cn kin trc khc tt hn chnh l to ra s c lp gia giao din v ngi s dng bng cch c lp cc chc nng ca giao din vi cc chc nng tc nghip (business), v c lp cc chc nng tc nghip vi cc chi tit v truy cp CSDL, l cch tip cn ba tng (three-layer). T cch tip cn ny cho php chng ta to ra c cc i tng i din cc i tng hu hnh trong thc t nhng hon ton c lp vi cch thc m cc i tng ny trnh by ti ngi dng hoc l vi cch m d liu ca n c lu tr vt l trong CSDL. Do , ba tng trong cch tip cn ny l: tng giao din ngi dng (user interface layer), tng tc nghip (business layer), v tng truy cp d liu (data layer).

User interface layer

Business layer

Data layer

CSDL
Hnh 6. S biu din tip cn ba tng

Mt tip cn khc y hn ca mt kin trc h thng c th c trnh by nh s sau: User interface layer

Business layer

Data layer

Middleware

System software

Hnh 7.

Mt s khc ca cch tip cn ba tng (nhiu tng)

Trong , Tng Middleware: cha cc thnh phn xy dng giao din (v d: thnh phn dng ActiveX), thnh phn giao din ti cc h qun tr CSDL (v d: ODBC, JDBC driver), cc dch v h iu hnh c lp vi platform, cc thnh phn nhng OLE (v d: cc cng c son tho s nhng, cc bng tnh nhng,).
@ i Hc KHTN-TP HCM ; ASIA-ITC 133

Phn tch thit k h thng hng i tng bng UML

Tng System software: cha cc thnh phn v h iu hnh, CSDL, giao din ti cc phn cng (v d: cc driver phn cng c th), v.v

Xc ch lp tng dch v tc nghip (business layer)


Tng ny cha ng tt c i tng m t tc thnh phn nghip v h thng (bao gm c d liu v hnh vi). N din t cc i tng tn ti trong thc t vo trong h thng cn qun l. V d, n t hng, khch hng, ho n, nh cung cp, hu ht cc phng php lun phn tch thit k u a ra phng php xc nh i tng ny trong giai on phn tch (tham kho chng 6). Tuy nhin, khi xc nh cc i tng lp ny chng ta phi lun nh hai iu sau: Cc i tng tng tc nghip khng nn quan tm n cch thc n c hin th v bi ai. Cc i tng ny c thit k c lp vi bt k mt giao din c th, v v vy cch thc chi tit hin th mt i tng nn tn ti trong tng giao din thay v trong tng tc nghip. Cc i tng tng tc nghip cng khng nn quan tm n ngun gc ca n hnh thnh. C ngha l cc i tng ny s c lp v d liu ca n c ly t truy cp CSDL hay l t truy xut tp tin. Xc nh cc lp tng tc nghip

I.1.1.

Cc lp tng tc nghip c xc nh trong giai on phn tch (xem chng 6). Trong phn ny chng t m t li theo tng use case cho php chng ta c mt cch nhn v nhng g m cc i tng tng tc nghip k hp vi nhau trong hot ng p ng yu cu s dng c m t thng qua use case. Ch rng mt lp trong tng ny u c th tham gia x l trong nhiu use case khc nhau. Cc kt qu thit k lp trong chng 8 cho chng ta mt s thit k v tng nghip v ny.

@ i Hc KHTN-TP HCM ; ASIA-ITC

134

Phn tch thit k h thng hng i tng bng UML


NgnHng +ktNi() +ngKtNi() KhchHng #tnKhchHng:String #hKhchHng:String #mPIN::String #sTh:String #tiKhon:TiKhon +kimTraMtKhu() #ly_KhchHng() 1 ca 1 TiKhon #sTiKhon:String c #loiTiKhon:String #sD:float #giaoTc:GiaoTc 1 #khchHng:KhchHng +giTin() +rtTin() #cpNhtTiKhon() #toGiaoTc() GiaoDch #giaoDchID:String #ngyGiaoDch:Date #thiGianGiaoDch:Time #loiGiaoDch:String 0..n #sTin:float #sD:float +gnThngTinGiaoDch() MyATM #aCh:String #trngThi:String #sTinHinTi:float +khingMy() +ngMy() #cpNhtSTin() #ttMy()

GiaoDchRt

GiaoDchGi

S lp ca h thng ATM tng nghip v

Xc nh lp tng truy cp d liu (data layer)


Tng ny cha cc i tng nhm mc ch cung cp cc dch v v d liu cho tng tc nghip. Ni chung, tt c cc nhu cu truy cp CSDL hoc tp tin thao tc trn d liu c lu tr ca h thng u phi thng qua tng ny. Do , cc i tng tng ny phi truy cp vt l CSDL cc v tr (CSDL quan h, tp tin, internet,) v x l n. Hai nhim v chnh ca tng ny l: Chuyn dch cc yu cu: chuyn dch tt c cc yu cu lin quan n d liu t tng tc nghip n mt phng thc truy cp d liu thch hp (dng SQL, truy xut file,) Chuyn dch kt qu: chuyn dch tt c d liu truy cp c ti cc i tng tc nghip thch hp.

Xc nh cc i tng lu tr v persistence
Mt chng trnh s to ra mt s lng d liu trong qu trnh thc thi. Mi d liu s c mt thi gian sng (lifetime) khc nhau. Da vo thi gian sng ny chng ta c th phn thnh nhng loi d liu sau: L kt qu tm thi nh gi mt biu thc Cc bin trong qu trnh thc thi mt th tc (cc tham s v bin trong phm vi cc b)
135

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Cc bin ton cc v cc bit cp pht mt cch t ng D liu tn ti gia cc ln thc thi mt chng trnh D liu tn ti gia cc phin bn ca mt chng trnh D liu tn ti vt ngoi phm vi sng ca mt chng trnh

Ba loi d liu u tin u gi l d liu tm thi (transient data). L d liu c thi gian sng ph thuc vo thi gian sng ca tin trnh s dng n. Khi tin trnh kt thc th d liu ny b gii phng. Ngc li, ba loi d liu cui gi l d liu persistent (persistent data). Cc d liu ny tn ti lu hn tin trnh s dng n v c th c lp vi tin trnh ny. Cc ngn ng lp trnh cung cp s h tr hon ho cho cc loi d liu tm thi. Cc loi d liu persistent s c qun l bi h qun tr c s d liu hoc h thng lu tr tp tin. i vi cc i tng cng c p dng mt cch tng t. Cc i tng cng c mt thi gian sng. Chng c to ra mt cch tng minh v c th tn ti trong mt khong thi gian ngn (thi gian ca mt ng dng, ca mt phin,). Tuy nhin, cng c i tng tn ti lu hn thi gian ca mt ng dng, lm iu ny th i tng phi c lu tr ra tp tin hoc c s d liu. Vic lu tr ny s cung cp cho i tng thi gian sng lu hn qu trnh ca tin trnh. c tnh ny ngi ta gi l persistent. Trong h thng ATM, cc lp persistent gm: KhchHng, TiKhon, GiaoTc, GiaoTcGi, GiaoTcRt. Cc lp nh MyATM, NgnHng c xc nh khng phi l lp persistent bi v chng ta khng c nhu cu lu tr thng tin ca cc i tng cc lp ny.

Chuyn i i tng sang m hnh quan h


Trong c s d liu quan h, mt lc c hnh thnh bi cc bng (table) gm cc ct v dng. Trong m hnh i tng, tng ng ti mt bng l mt lp (hoc nhiu lp). Cc thnh phn tng ng nh sau: Mt ct ng vi mt thuc tnh (persistent) lp Mt dng ca bng ng vi mt i tng (th hin ca mt lp) Mt th tc lu tr ni (stored procedure) c th tng ng vi mt method. Chuyn i lp bng Chuyn i mi lin kt o Chuyn i lin kt kt hp o Chuyn i lin kt k tha Chuyn i lp bng Trong a s cc trng hp th vic chuyn i ny l mt mt. Mt lp s chuyn thnh mt bng c th nh sau: Mt lp mt bng Mt thuc tnh (persistent) mt ct: ch c cc thuc tnh c nhu cu lu tr v c i hi bi ng dng s c chuyn thnh ct ca bng. Mt i tng (th hin) mt dng

Nh vy, vic chuyn i s lp sang lc quan h gm c nhng cng vic sau:

@ i Hc KHTN-TP HCM ; ASIA-ITC

136

Phn tch thit k h thng hng i tng bng UML Tn_KH H_KH MPIN S_Th

KhchHng tnKhchHng hKhchHng mPIN sTh

Chuyn i mi lin kt Chuyn i lin kt kt hp(association) Trng hp 1


KhchHng tnKhchHng hKhchHng mPIN sTh 1 1 TiKhon sTiKhon loiTiKhon sD

Bng KhchHng
Tn_KH H_KH MPIN S_Th

Bng TiKhon
S_TK Loi_TK S_D_TK S_Th

Trong chuyn i mi kt hp dng 1 1, chng ta c th ly ct kho chnh trong mt bng chuyn qua bng khc lm kho ngoi. Trong mi kt hp 1 1 trn (gia lp KhchHng v TiKhon), chng ta c th ly kho ca bng KhchHng (S_Th) a vo bng TiKhon l kho ngoi. Hoc ngc li, chng ta c th ly kho ca bng TiKhon (S_TK) a vo bng KhchHng lm kho ngoi. Hoc thc hin c hai trng hp. Trng hp 2
GiaoDch TiKhon sTiKhon loiTiKhon sD c 1 0..n giaoDchID ngyGiaoDch thiGianGiaoDch loiGiaoDch sTin sD

Bng TiKhon
S_TK Loi_TK S_D_TK S_Th

Bng GiaoDch
GD_ID Ngy_GD Gi_GD Loi_GD S_Tin S_D S_TK

@ i Hc KHTN-TP HCM ; ASIA-ITC

137

Phn tch thit k h thng hng i tng bng UML

Trng hp 3 Trong chuyn i mi kt hp dng 1 n, chng ta ly ct kho chnh ca bng ng vi lp pha 1 trong mi kt hp a vo bng ng vi lp pha n lm kho ngoi. Trong v d trn, bng GiaoDch s ly thuc tnh S_TK trong bng TiKhon lm kho ngoi.
NhnVin mNhnVin tnNhnVin sinThoi Tham gia 0..n 0..n CngVic cngVicID mTCngVic ngyBtu

Bng NhnVin
M_NV Tn_NV S_T

Bng NhnVin_CngVic
M_NV Cng_Vic_ID

Cng_vic_ID

M_t_CV

Bng CngVic

Ngy_B

Trong chuyn i mi kt hp n n, chng ta to ra mt bng cho mi kt hp bng cch ly cc kho chnh ca cc bng a vo bng mi ny nh l cc kho ngoi. Trong v d trn, mi kt hp Tham gia gia lp NhnVin v lp CngVic s c m t bi mt bng NhnVin_CngVic bao gm cc ct M_NV v Cng_Vic_ID ln lt l kho chnh ca bng NhnVin v bng CngVic. Chuyn i lin kt k tha Trong lc quan h khng c khi nim k tha m chng ta thng dng lin kt kho chnh kho ngoi din t iu ny. Sau y l cc trng hp m chng ta c th quyt nh chn mt:
NhnVin mNhnVin tnNhnVin sinThoi

NhnVinCngNht lngNgy

NhnVinBinCh lngThng bcLng

Trng hp 1

@ i Hc KHTN-TP HCM ; ASIA-ITC

138

Phn tch thit k h thng hng i tng bng UML

Bng NhnVin
M_NV Tn_NV in_Thoi Lng_Ngy Lng_Thng Bc_Lng Loi_NV

Ch s dng mt bng lu tr tt c cc loi nhn vin. Do , cc thuc tnh ca bng c hnh thnh t cc thuc tnh ca lp NhnVin, NhnVinCngNht v Nhn VinBinCh. Ngoi ra chng ta cng a vo thm mt thuc tnh nhm phn loi dng ny thuc i tng ca lp no. Trng hp 2 Bng NhnVin
M_NV Tn_NV in_Thoi

Bng NhnVinCngNht
M_NV Tn_NV in_Thoi Lng_Thng Bc_Lng

Bng NhnVinBinCh
M_NV Tn_NV in_Thoi Lng_Ngy

S dng ba bng tng ng cho ba lp. Tuy nhin, nhm m t s tha k trong cc bng NhnVinCngNht v NhnVinBinCh chng ta thm vo tt c cc thuc tnh ca bng nhn vin. Cc th hin tng ng ca cc nhn vin cng nht hay bin ch s ch lu trong bng tng ng. Trng hp 3 Bng NhnVin
M_NV Tn_NV in_Thoi

Bng NhnVinCngNht
M_NV Lng_Thng Bc_Lng

Bng NhnVinBinCh
M_NV Lng_Ngy

Ging nh trng hp 2. hai bng NhnVinCngNht v NhnVinBinCh ch lu kho ngoi tham chiu n bng nhn vin tham kho thng tin tha k. Trng hp 4
@ i Hc KHTN-TP HCM ; ASIA-ITC 139

Phn tch thit k h thng hng i tng bng UML

Bng NhnVinCngNht
M_NV Tn_NV in_Thoi Lng_Thng Bc_Lng

Bng NhnVinBinCh
M_NV Tn_NV in_Thoi Lng_Ngy

Ch dng hai bng NhnVinCngNht v NhnVinBinCh. Tuy nhin, tt c cc thuc tnh ca lp NhnVin s c a vo hai bng ny nhm m t s tha k. Nu chng ta mun truy xut thng tin v lp NhnVin th chng ta c th to mt khung nhn (view) hi ca hai bng ny. S ci t cc i tng persistent ca h thng ATM dng m hnh quan h nh sau: Bng KhchHng
Tn_KH H_KH MPIN S_Th

Bng TiKhon
S_TK Loi_TK S_D_TK S_Th

Bng GiaoDch
GD_ID Ngy_GD Gi_GD Loi_GD S_Tin S_D S_TK

Trong lc trn ca my ATM, chng ta p dng trng hp 1 cho cu trc cc lp GiaoDch, GiaoDchGi v GiaoDchRt.

Xc nh lp tng truy cp d liu


Mc tiu chnh ca vic to ra mt tng truy cp d liu l to ra cc lp c nhim v truy cp ti cc v tr m d liu thc s c lu tr nhm gip cho tng nghip v khng quan tm n v tr cng nh hnh thc lu tr ca d liu ny (dng tp tin, c s d liu quan h, c s d liu i tng, internet, DCOM,). Cc i tng tng ny phi c trch nhim cung cp mt lin kt gia nghip v (cch nhn theo i tng) v d liu lu tr. Tin trnh xc nh cc lp tng ny gm cc bc sau: Vi mi lp persistent tng nghip v, to mt lp tng ng tng truy cp d liu. V d, nu chng ta c ba lp tng nghip v l Class1, Class2, Class3 th chng ta to ra ba lp tng ng tng truy cp d liu l: ClassDB1, ClassDB2, ClassDB3. Xc nh mi kt hp: tng t nh xc nh mi kt hp vi cc lp tng nghip v. To mi kt hp gia lp tng truy cp d liu v lp ca n tng ng tng
140

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

nghip v l mi kt hp dng thnh phn (aggregation). To thuc tnh tham chiu cho cc lp ca tng nghip v tham chiu n lp tng truy cp d liu da trn mi lin kt va xc nh. n gin ho cc lp v mi kt hp: mc tiu chnh l loi cc lp v cu trc d tha hoc khng cn thit. Thng thng, chng ta kt hp nhiu lp thnh mt v n gin ho cu trc lp cha lp con. o Cc lp d tha: nu chng ta c hai lp tr ln cng cung cp cc dch v tng t nhau, chng ta gi li mt v loi i mt. o Cc method: xem li cc lp ch c mt hoc hai method c th kt hp vi cc lp khc? Thng thng, chng ta ch quan tm n cc method c nhu cu truy cp n d liu lu tr. Cc method l: c d liu t d liu lu tr ca i tng, xo d liu ca i tng khi d liu lu tr v cp nht cc thay i ca i tng xung d liu lu tr. Lp li v tinh ch tin trnh ny Xc nh method cc lp tng truy cp d liu Trong thit k hng i tng nhm m bo tnh bao bc trong cc ci t chi tit, chng ta mong mun cc i tng persistent c quan st ging nh mt i tng tm thi (transient) trong h thng. Ngha l chng ta phi to c mt cch nhn trong sut cho cc i tng trong h thng m khng phn bit v x l khc nhau gia i tng persistent v bt k i tng no khc. Tuy nhin, y cng l mt vn ca h thng bi v d liu v trng thi ca cc i tng persistent c qun l tch bit khi chng trnh ng dng. Do , s nht qun gia i tng trong ng dng v trng thi ca n trong c s d liu phi lun lun c t ra trong thit k h thng hng i tng. m bo iu ny th c nhiu kha cnh ca i tng mt ng dng phi kim sot: c v lu cc i tng persistent Xo cc i tng persistent Qun l giao tc trn cc i tng persistent Kim sot c ch kho v truy cp ng hnh

Ghi i tng persistent C hai trng hp cn xem xt: thi im ban u khi i tng c tao ra v phi ghi vo c s d liu; cc thi im tip theo khi chng trnh cp nht trng thi ca i tng v thay i ny cng c ghi vo c s d liu.

@ i Hc KHTN-TP HCM ; ASIA-ITC

141

Phn tch thit k h thng hng i tng bng UML

Mt i tng

: nHng

: nHngDB

DB : DBMS

tonHng() Gn thng tin cho n hng

ghinHng()

cpNhtnHng()

Thc thi SQL cp nht

S tun t trn m t mt trong nhng gii php cp nht i tng persistent. Khi mt i tng n hng c to ra trong ng dng, i tng ny ngay lp tc c ghi vo c s d liu bi lp nHngDB ca tng truy cp d liu. Tng t cho hot ng cp nht, khi mt i tng trong ng dng thay i trng thi ca i tng n hng. Ngay lp tc s thay i ny c cp nht vo c s d liu bi nHngDB.
i tng iu khin n hng : nHng : nHngDB DB : DBMS

lyThngTinnHng() dh:nHng

cpNhtnHng(dh)

Thc hin SQL cp nht

Mt gii php khc cho cp nht i tng persistent. Chng ta xy dng mt i tng iu khin v khi no thng tin i tng persistent uc cp nht s c qun l bi i tng iu khin. Method cpNhtnHng() s c thit k thng minh nhn ra mt n hng l to mi hay cp nht. Trong gii php ny, vic cp nht c qun l mt cch tng minh v h thng chp nhn cc khong thi im thiu s nht qun gia i tng v d liu lu tr v i tng. c i tng persistent
@ i Hc KHTN-TP HCM ; ASIA-ITC 142

Phn tch thit k h thng hng i tng bng UML

Vic ly thng tin v cc i tng persistent trong s s d liu cn thit trc khi mt ng dng gi cc thng ip ti i tng. Vn l khi gi thng ip cho mt i tng th phi m bo i tng tn ti trong b nh. Do vy, chng ta cn thit k mt method truy vn c s d liu nhn ng thng tin v i tng. Thng thng cc i tng trong h thng lin kt vi nhau qua mi kt hp v v vy chng ta c thng tin u tin cho i tng gc, ri sau chng ta s c tip theo cc i tng cn li da theo mi kt hp vi i tng gc.
Mt i tng : nHng Ly thng tin cc n hng : nHngDB DB : DBMS

Truy vn c s d liu

tonHng()

Mt gii php khc l dng mt i tng iu khin qun l vic c v to i tng n hng c minh ho theo s sau:
i tng iu khin n hng : nHng Ly thng tin v n hng Thi hnh SQL truy vn n hng D liu n hng tonhng() : nHngDB : DBMS

Xo i tng persistent Khng ging nh cc i tng tm thi (transtient) trong h thng, vic kt thc s hin din ca i tng trong ng dng s kt thc vng i ca i tng . Ngc li, i vi i tng persistent, vic kt thc vng i ca n i hi phi hu b d liu ca n khi ni lu tr (hoc t nht nh du n khng cn hot ng).

@ i Hc KHTN-TP HCM ; ASIA-ITC

143

Phn tch thit k h thng hng i tng bng UML


Mt ii tng : nHng : nHngDB : DBMS

hunHng()

xonHng()

Thc hin SQL xo

Mt gii php khc dng mt i tng iu khin


i tng iu khin n hng : nHng : nHngDB : DBMS

lyThngTinnHng() dh:nHng

xonHng(dh)

Thc hin SQL xo

Qun l giao tc (transaction) Mt giao tc xc nh mt tp cc php ton cp nht trong c s d liu thnh mt n v nhm p ng cho mt yu cu cp nht nghip v m trong , h thng i hi phi cp nht nhiu ngun d liu ca nhiu i tng persistent khc nhau. Tt c cc php ton cp nht mt giao tc hoc thnh cng (th giao tc thnh cng) hoc khng mt php ton no thnh cng (th giao tc khng thnh cng). C hai cch m hnh ho mt giao tc nh sau: Dng vn bn ch ra bt u v kt thc mt giao tc

@ i Hc KHTN-TP HCM ; ASIA-ITC

144

Phn tch thit k h thng hng i tng bng UML


Mt i tng : Hon : KhchHng : HonDB : KhchHngDB : DBMS

Bt u giao tc (Begin transaction) thmHon() cpNhtHon() Thc hin SQL thm mi

cpNhtCngN() cpNhtKhchHng() Thc hin SQL cp nht

Kt thc giao tc (end transaction)

S trn minh ho vic qun l mt giao tc thm mt ho n thanh ton. Giao tc ny bao gm hai php ton cp nht. Mt l thm mi mt ho n v hai l cp nht li thng tin cng n ca khch hng. Giao tc kt thc thnh cng nu c hai php ton cp nht u thnh cng. Nu mt trong hai php ton thc hin khng thnh cng th giao tc s khng thnh cng v lc ny tt c hai php ton trn xem nh cha c thc hin. Dng i tng qun l giao tc
Mt i tng : Hon : KhchHng : HonDB Bt u giao tc cpNhtHon() Thc hin SQL thm mi : KhchHngDB Qun l giao tc : DBMS

thmHon()

cpNhtCngN()

cpNhtKhchHng()

Thc hin SQL cp nht

Kt thc giao tc

Chng ta to mt i tng Qun l giao tc, tu thuc vo ngn nh lp trnh m i tng ny c kiu khc nhau. i vi mt s ngn ng th n l mt i tng kiu kt ni (connection) hoc i tng kiu thnh phn h qun tr c s d liu trong ngn ng lp trnh . S minh ho trn chn i tng qun l giao tc l mt i tng kiu thnh phn h qun tr c s d liu. Mt gii php dng i tng iu khin qun l giao tc c minh ho nh s di y:

@ i Hc KHTN-TP HCM ; ASIA-ITC

145

Phn tch thit k h thng hng i tng bng UML


i tng iu khin Ho n : Hon : KhchHng Bt u giao tc thmHon() cpNhtHon() : HonDB : KhchHngDB : DBMS

Thc hin SQL thm mi

cpNhtCngN()

cpNhtKhchHng()

Thc hin SQL cp nht

Kt thc giao tc

Trong s , i tng iu khin s qun l vic bt u v kt thc giao tc cng nh ni dung ca mt giao tc bng vic qun l cc lnh cp nht ca giao tc. Gii php ny so vi gii php trn c u im sau: lm cho i tng ho n c lp vi i tng khch hng. Thay v lm cho i tng ho n ph thuc vo i tng khch hng qua vic gi cpNhtCngN() gii php trn. Gii php ny chuyn s ph thuc ca ho n v khch hng vo i tng iu khin v gia i tng ho n v khch hng lc ny hon ton c lp. Xc nh lp truy cp d liu cho h thng ATM T cc lp persistent ca h thng ATM c xc nh l: KhchHng, TiKhon, GiaoDch, GiaoDchRt, GiaoDchGi chng ta to ra cc lp truy cp d liu tng ng: KhchHngDB TiKhonDB GiaoDchDB (GiaoDch, GiaoDchRt, GiaoDchGi) Cc method c xc nh:
KhchHngDB::+cKhchHng() KhchHng::+cTiKhon() TiKhonDB::+cpNhtTiKhon() GiaoDchDB::+cpNhtGiaoDch()

Chng ta gn mc nh cho cc nghi thc tng ny l ton cc (public), v a s u c truy cp bi nhng lp khc, ri trong qu trnh thit k chi tit cho tng method chng ta s xc nh li nghi thc ny cho ph hp nhm m bo tnh bao bc. Bi v s lng cc method cho mi lp ny l t (<= 2), cho nn chng ta kt hp tt c li thanh mt lp chung v gi l NgnHngDB.

@ i Hc KHTN-TP HCM ; ASIA-ITC

146

Phn tch thit k h thng hng i tng bng UML


NgnHngDB

+cKhchHng() +cTiKhon() +cpNhtTiKhon() +cpNhtGioTc()

Sau chng ta to lin kt aggregation t lp NgnHngDB ti ln lt cc lp: KhchHng, TiKhon. ng vi mi lp va mi to lin kt ti lp NgnHngDB chng ta thm vo mt thuc tnh tham chiu n lp ny.
NgnHng +ktNi() +ngKtNi() KhchHng #tnKhchHng:String #hKhchHng:String #mPIN::String #sTh:String #tiKhon:TiKhon #ngHngDB:NgnHngDB +kimTraMtKhu() #ly_KhchHng() 1 ca 1..n MyATM #aCh:String #trngThi:String #sTinHinTi:float +khingMy() +ngMy() #cpNhtSTin() #ttMy()

TiKhon #sTiKhon:String #loiTiKhon:String #sD:float #giaoTc:GiaoTc #khchHng:KhchHng #ngHngDB:NgnHngDB NgnHngDB +cKhchHng() +cTiKhon() +cpNhtTiKhon() +cpNhtGioTc() +giTin() +rtTin() #cpNhtTiKhon() #toGiaoTc()

GiaoDch c 1 #giaoDchID:String #ngyGiaoDch:Date #thiGianGiaoDch:Time #loiGiaoDch:String 0..n #sTin:float #sD:float +gnThngTinGiaoDch()

GiaoDchRt

GiaoDchGi

Cc method ca lp NgnHngDB ln lt s c thit k chi tit nh sau:


NgnHngDB::+cKhchHng (vSTh:String, vMPIN:String): KhchHng

@ i Hc KHTN-TP HCM ; ASIA-ITC

147

Phn tch thit k h thng hng i tng bng UML


Mt i tng giao din : KhchHng : NgnHngDB

kimTraMtKhu(vSTh, vPIN) vKhchHng = ly_KhchHng(sTh, vPIN) cKhchHng(vSTh, vMPIN) Gi x l ca use case ng nhp khng hp l

Tinh ch chi tit cho use case ng Nhp lin quan n truy cp c s d liu theo s trn, chng ta a thm vo mt i tng NgnHngDB v vic c d liu thc s v khch hng s do i tng ny m nhn qua method cKhchHng(). Sau y l on m minh ho tng ng:
KhchHng::#ly_KhchHng(sTh:String, mPIN:String): KhchHng vNgnHngDB: NgnHngDB return vNgnHngDB.cKhchHng (sTh, mPIN)

y chng ta cn to ra mt th hin ca lp truy cp NgnHngDB v ri gi thng ip ti i tng ny ly thng tin v i tng khch hng. Method cKhchHng ca NgnHngDB s thc s c d liu t c s d liu. C th minh ho method ny truy cp c s d liu quan h bng SQL nh sau:
NgnHngDB::+cKhchHng (vSTh:String, vMPIN:String): KhchHng -- kt ni c d liu y return SELECT * FROM KhchHng WHERE S_Th = vSTh AND M_PIN = vMPIN

Gi s rng, cu truy vn s tr v d liu khch hng vo mt i tng khch hng v tr v cho method ny. Tu thuc vo ngn ng ci t c th c chn m chng ta thay i cho ph hp, on m lnh trn y ch minh ho tng v cch vit c lp ngn ng.
NgnHngDB::+cTiKhon(sTh:String): TiKhon

y l mt method c d liu t c s d liu to mt i tng persistent. Do , chng ta c th p dng mt trong hai mu s c i tng persistent phn trn. Cc use case lin quan n method cTiKhon to mt i tng ti khon phc v cho hot ng ca use case bao gm: Giao dch, Gi tin, Rt tin, Truy vn thng tin ti khon. Sau y chng ta minh ho s tun t thit k chi tit cc use case ny qua s tng tc gia tng nghip v v tng truy cp d liu, c bit l tng tc nhm to i tng ti khon. Use case Giao dch
@ i Hc KHTN-TP HCM ; ASIA-ITC 148

Phn tch thit k h thng hng i tng bng UML


Mt i tng giao din gi tin ly_TiKhon() cTiKhon() toTiKhon() : KhchHng : TiKhon : NgnHngDB

tk:TiKhon tk:TiKhon

[Nu khch hng chn rt tin] rtTin() [Nu khch hng chn gi tin] giTin() [Chn xem thng tin ti khon] Xem thng tin ti khon

S tun t v use case Giao dch c thit k: u tin chng ta gi lp mt i tng tng giao din s tng tc ti mt i tng khch hng ( c to ra khi ng nhp thnh cng) tham kho n ti khon ca khch hng bng cch gi thng ip n i tng truy cp d liu l NgnHngDB thc hin vic c d liu t c s d liu v to ra i tng ti khon. Sau , i tng ny s c tr v cho i tng giao din nh mt i tng tham chiu. i tng giao din s c tinh ch trong phn sau ca chng ny. Tu theo loi giao dch m khch hng chn th use cae ny s gi thc hin cc use case m rng tng ng. Cc use case Rt tin v Gi tin s thc hin da trn i tng ti khon va c c c; use case Truy vn thng tin ti khon s hin th thng tin v ti khon va c c, do , n c thc hin bi mt i tng giao din. Use case Gi tin

@ i Hc KHTN-TP HCM ; ASIA-ITC

149

Phn tch thit k h thng hng i tng bng UML


Mt i tng giao din gi tin ly_TiKhon() cTiKhon() toTiKhon() tk:TiKhon tk:TiKhon Bt u giao tc giTin() cpNhtTiKhon() toGiaoTc() : KhchHng : TiKhon : NgnHngDB

Kt thc giao tc

Use case Rt tin


Mt i tng giao din rt tin : KhchHng : TiKhon : GiaoDch : NgnHngDB

ly_TiKhon() cTiKhon() toTiKhon() tk:TiKhon tk:TiKhon

rtTin()

Bt u giao tc cpNhtTiKhon() toGiaoTc() Rt thnh cng Nu sD >= sTin th cho php thc hin rt tin

Rt khng thnh cng Nu sD < sTin th khng cho thc hin rt tin

Kt thc giao tc

Vic thc hin gi tin hoc rt tin s do i tng ti khon m nhn, i tng ny c to ra do tha hng t use case Giao dch. Sau , c thit k bng mt giao tc gm hai
@ i Hc KHTN-TP HCM ; ASIA-ITC 150

Phn tch thit k h thng hng i tng bng UML

hot ng: cp nht li s d ti khon v to mt giao tc mi. Vic to mt giao tc mi s c thc hin bi method toGiaoTc() s c thit k trong phn tip theo sau. Sau y l on m minh ho cho cc method:
KhchHng::-ly_TiKhon(sTh:String): TiKhon vNgnHngDB: NgnHngDB return vNgnHngDB.aTiKhon(sTh) NgnHngDB::+cTiKhon(vSTh:String): TiKhon -- kt ni c s d liu y Return SELECT * FROM TiKhon WHERE S_Th = vSTh TiKhon::+giTin(sTin:float) vNgnHngDB: NgnHngDB NgnHngDB.cpNhtTiKhon (sTiKhon, sD + sTin) toGiaoTc(gi, sTin, sD + sTin) TiKhon::+rtTin(sTin:float): String vNgnHngDB: NgnHngDB if sD < sTin return S tin rt vt qu s d ti khon else NgnHngDB.cpNhtTiKhon (sTiKhon, sD + sTin) toGiaoTc(gi, sTin, sD + sTin) return endif NgnHngDB::+cpNhtTiKhon(vSTiKhon:String, vSD:float)

Vic s dng method ny c minh ho theo s ca use case Gi tin v Rt tin. Sau y l on m minh ho:
NgnHngDB::+cpNhtTiKhon(vSTiKhon:String, vSD:float) UPDATE TiKhon SET sD = vSD WHERE S_TK = vSTiKhon NgnHngDB::+cpNhtGiaoDch()

thit k chi tit method ny chng ta tip tc vi cc use case Gi tin v Rt tin qua vic m t chi tit method toGiaoTc() ca i tng ti khon qua s tng tc gia tng nghip v v tng truy cp d liu.
@ i Hc KHTN-TP HCM ; ASIA-ITC 151

Phn tch thit k h thng hng i tng bng UML

TiKhon::#toGiaoTc(loiGD:String, sTin:float, sD: float) vNgnHngDB: NgnHngDB vGiaoDch = toMi(GiaoDch) vGiaoDch.gnThngTin(Date(today), sTiKhon) Time(now), loiGD, sTin, sD,

vNgnHngDB.cpNhtGiaoDch(sTiKhon, loiGD, sTin, sD) NgnHngDB::+cpNhtGiaoDch(vSTiKhon:String, vLoiGD:String, vSD:float) --kt ni c s d liu y vGD_ID: String vGD_ID = To_GD_ID() INSERT INTO GiaoDch (GD_ID, Ngy_GD, Gi_GD, Loi_GD, S_Tin, S_D, S_TK) VALUES (vGD_ID, Date(today), Time(now), vLoiGD, vSTin, vSD, vSTiKhon)
Mt i tng giao din gi tin : KhchHng : TiKhon : GiaoDch : NgnHngDB

ly_TiKhon() cTiKhon() toTiKhon() tk:TiKhon tk:TiKhon Bt u giao tc giTin() cpNhtTiKhon() toGiaoTc() toMi() gnThngTin()

cpNhtGiaoDch()

Kt thc giao tc

Xc nh lp tng giao din ngi dng (user interface layer)


Bao gm cc i tng h thng m ngi dng s tng tc v cc i tng c dng qun l hoc iu khin giao din. Cc class tng ny m nhn hai cng vic chnh: Tr li tng tc ngi dng: cc i tng mc ny phi c thit k chuyn dch nhng hnh ng ca ngi dng ti mt tnh hung x l ph hp. C th l m hoc ng mt giao din khc, hoc gi mt thng ip xung tng tc nghip hoc khi ng mt vi tin trnh tng tc nghip
152

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Hin th cc i tng tc nghip: tng ny phi trnh by mt hnh nh tt nht cc i tng tc nghip ti ngi dng trong mt giao din. iu ny c ngha l mt hnh nh trc quan thao tc c c th bao gm: cc textbox, listbox, commbobox, page, form, menu, toolbar, .

Tin trnh thit k tng giao din


Mt tin trnh thit k tng giao din bao gm 4 bc sau: 1. Xc nh cc i tng tng giao din: y l mt hot ng din ra lun c trong giai on phn tch h thng. Mc tiu chnh l xc nh cc lp tng tc vi cc tc nhn con ngi thng qua vic phn tch cc use case trong giai on phn tch. Nh m t trong cc chng trc, mi use case bao gm cc tc nhn v cc cng vic m tc nhn mun h thng thc hin. Do , n m t mt bc tranh y v cc yu cu giao din ca h thng. Trong giai on ny chng ta cng cn thit tp trung vo cch thc ci t giao din. Cc s tun t v hp tc ca use case cng gip chng ta xc nh chnh xc yu cu v giao din. 2. Xc nh cc lp tng giao din a. Xc nh cc i tng tng giao din: xy dng s lp m t cc i tng giao din b. To bn mu giao din (prototype): sau khi xc nh m hnh thit k, chng ta chun b cho mt bn mu ca giao din. Thng thng cc bn mu ny c xc nh trong nhng giai on trc, nu vy th chng ta hy c gng tch hp vi cc i tng c xc nh nhm thng nht cc lp giao din trong s lp v cc giao din thit k. c. Xc nh hnh vi v thuc tnh cho cc lp giao din: phn tch li hnh ng ca ngi dng trong use case v tinh ch li s tun t pht hin cc method cng nh xem xt li cc mi quan h ca cc i tng xc nh cc thuc tnh (ch yu l cc thuc tnh tham chiu) cho lp tng giao din. 3. Th nghim giao din. 4. Tinh ch v lp li cc bc trn

Xc nh cc lp tng giao din qua vic phn tch use case


Trong mt use case, i tng tng giao din x l tt c trao i vi tc nhn. Thc s, cc i tng ny hot ng nh mt vng m gia ngi dng v phn cn li ca h thng l cc i tng nghip v. Mt i tng giao din c th tham gia vo nhiu use case. Bt u t use case, chng ta xc nh c cc mc tiu v nhim v ca ngi dng. Nhng ngi dng khc nhau s c nhng nhu cu khc nhau trn giao din, v d, cc ngi dng chuyn nghip th cn mt giao din c tnh hiu qu trong khi cc ngi dng bnh thng th cn c giao din d s dng. Do , vi cc i tng ngi dng khc nhau m cc giao din c thit k s khc nhau v mc tiu, trch nhim, cch vn hnh v hnh thc trnh by. Vic xc nh cc lp tng giao din gm hai bc sau: Vi mi lp (tng nghip v), nu lp c tng tc vi mt tc nhn con ngi trong mt use case, chng ta thc hin nh sau: o Xc nh cc i tng giao din cho lp , cc trch nhim cng nh cc yu cu ca cc i tng ny. Vic ny c thc hin bng cch phn tch li s tun t hoc hp tc ca use case.

@ i Hc KHTN-TP HCM ; ASIA-ITC

153

Phn tch thit k h thng hng i tng bng UML

Use case Tc nhn con ngi

C mt hoc nhiu i tng tng giao din c xc nh da trn s tng tc gia tc nhn v use case o Xc nh s lin kt gia cc i tng giao din: cc lp giao din cng ging nh cc lp khc, u c mi quan h vi cc lp tng nghip v cng tham gia trong mt use case vi n. Cc mi lin kt ny cng c xc nh tng t nh ca cc lp trong tng nghip v. S lin kt ny thng theo s di y.
Lp tng giao din

Lp tng nghip v

Lp tng truy cp d liu

Lp li cc bc trn v tinh ch

u im ca ca vic s dng use case xc nh cc i tng tng giao din l n tp trung vo ngi dng v a ngi dng vo nh mt phn ca k hoch thit k nhm tm ra mt giao din tt nht cho ngi dng. Khi cc i tng ny c xc nh, chng ta phi xc nh cc thnh phn c bn hoc cc i tng c dng trong cc cng vic cng nh l cc hnh vi v cc c im to ra s khc bit ca mi loi i tng, bao gm lun c mi quan h gia cc i tng v gia i tng v ngi dng. Tuy nhin, trong thit k giao din khi chng ta xc nh mi trng pht trin th chng ta cng nn tm hiu cc khung mu (framework) cng nh cc th vin m mi trng h tr pht huy vic ti s dng trong thit k giao din v tn dng ti a cc h tr t mi trng.

@ i Hc KHTN-TP HCM ; ASIA-ITC

154

Phn tch thit k h thng hng i tng bng UML

Mt dng khung mu Wmvc (Model View - Controller) c h tr trong mi trng Java p dng cho cc thit k giao din ng dng vi Java.

Xy dng bn mu (prototype) cho giao din


Vic xy dng bn mu giao din thng c thit k trong giai on xc nh yu cu v phn tch h thng. Cng vic ny c thc hin s dng mt cng c gi l CASE Tool hoc cc cng c pht trin. Bao gm ba bc sau: To cc i tng giao din (nh l cc button, cc vng nhp liu,) Lin kt v gn cc hnh vi hoc hnh ng thch hp ti cc i tng giao din ny v cc s kin ca n. Th nghim v lp li bc mt

Thit k tng giao din cho h thng ATM


Xc nh cc i tng tng giao din, cc yu cu v trch nhim ca n i vi mi lp tng nghip v: NgnHng, MyATM, KhchHng, TiKhon, GiaoDch, GiaoDchGi, GiaoDchRt chng ta xc nh cc lp giao din ca n bng vic quan st cc s tun t v hp tc ca cc use case: ng nhp, ng nhp khng hp l, Giao dch, Rt tin, Gi tin, Truy vn thng tin ti khon, Khi ng h thng, ng h thng. Chng ta xc nh c cc lp tng giao din sau y: KhchHngGD: biu din giao din tng tc gia khch hng v use case ng nhp, ng nhp khng hp l GiaoDchRtGD: biu din tng tc gia khch hng v use case Rt tin GiaoDchGiGD: biu din tng tc gia khch hng v use case Gi tin Ti khonGD: biu din tng tc gia khch hng v use case Truy vn thng tin ti khon
@ i Hc KHTN-TP HCM ; ASIA-ITC 155

Phn tch thit k h thng hng i tng bng UML

MyATMKhingGD: biu din tng tc gia nhn vin vn hnh v use case Khi ng h thng Cc i tng giao din GiaoDchGiGD, GiaoDchRtGD c mt hnh thc trnh by chung ca giao dch v ch thay i loi giao dch. Do , chng ta gom li thnh mt lp v gi l: GiaoDchGD.
KhchHngGD GiaoDchGD TiKhonGD MyATMKhingGD

Xc nh s lin kt cc lp ca tng giao din vi cc lp ca tng nghip v Mi kt hp c xc lp l mi kt hp dng aggregation nh sau: vi mi lp giao din chng ta to lin kt aggregation ti lp tng ng trong tng nghip v. Mi lin kt ny cho bit trong cc th hin ca lp tng giao din s s dng i tng tng nghip v nh l mt thnh phn thc hin gi thng ip.

KhchHngGD

GiaoDchGD

TiKhonGD

MyATMKhingGD

KhchHng

GiaoDch

TiKhon

MyATM

Xc nh cc i tng giao din iu khin nh l: toolbar, menu, form iu khin,. Ngoi cc lp c xc nh da vo use case, chng ta xc nh thm cc i tng giao din c nhim v iu khin chnh, giao din chnh, thc n, tool bar, Vi h thng ATM chng ta c thm mt i tng giao din iu khin chnh hot ng giao din ca my ATM gi l MyATM_GD.
MyATM_GD

V i tng ca lp MyATM_GD s gi thng ip n tt c cc i tng giao din rt, gi v truy vn thng tin nhm iu khin cc giao din ny. Do , trc khi gi thng ip th i tng lp MyATM_GD s phi to ra cc i tng kia nh l mt thnh phn ca n. Chnh v vy m chng ta s xc lp mi kt hp aggregation t lp MyATM_GD n cc lp: GiaoDichGD, TaiKhoanGD
MyATM_GD

GiaoDchGD

TiKhonGD

Thit k giao din mu (prototype) Chng ta ln lt thit k bn mu cho cc i tng giao din: KhchHngGD
@ i Hc KHTN-TP HCM ; ASIA-ITC 156

Phn tch thit k h thng hng i tng bng UML

Giao din ng nhp ti khon cho php khch hng chn bn k s bng cch nhn vo cc nt s c thit k ngay trn mn hnh. Khch hng c th chn ng hoc hu b ng nhp. MyATM_GD

Sau khi ng nhp thnh cng, giao din chnh iu khin ca ATM s xut hin. Giao din ny s hin th cc nt cho php ngi dng chn thc hin cc dch v tng ng nh l: gi tin, rt tin, v xem thng tin v ti khon. GiaoDchGD Giao din rt tin

@ i Hc KHTN-TP HCM ; ASIA-ITC

157

Phn tch thit k h thng hng i tng bng UML

Giao din gi tin

Giao din thc hin giao dch c thit k gm hai th mt th cho giao dch rt v mt th cho giao dch gi. Tp cc s gi lp bn phm cho php khch hng nhp s liu trc tip t mn hnh. Giao dch s c thc hin khi khch hng chn nt rt tin hoc gi tin. Khch hng c th chn hu b giao dch bng cch nhn nt ng. TiKhonGD

Giao din ny cho php hin th thng tin v ti khon ca khch hng bao gm: h, tn, s ti khon, loi ti khon, v s d ti khon
@ i Hc KHTN-TP HCM ; ASIA-ITC 158

Phn tch thit k h thng hng i tng bng UML

MyATMKhingGD

Sau khi my c bt ln, giao din ny s hin th cho php nhn vin vn hnh nhp vo s tin khi ng cho my. Xc nh cc method Mc tiu ca cc i tng giao din l cho php ngi dng thc hin thao tc vi h thng nhm tr gip x l cng vic nghip v nh l: nhn mt nt, nhp vo mt k t,. Cc thao tc ny s c chuyn ti cc i tng tng nghip v x l. Khi hon thnh x l, giao din s cp nht li thng tin nhm hin th cc thng tin mi hoc m mt giao din mi,. Xc nh hnh vi cho i tng giao din bng cch xc nh cc s kin ca h thng phi p ng tng ng ti cc thao tc ngi dng trn giao din v cc hnh ng khi s kin xy ra. Mt hnh ng c xem nh mt hnh vi v c hnh thnh bi s kt hp mt i tng vi mt thng ip gi ti i tng . Xem xt li tng i tng giao din theo tng use use case ca h thng ATM chng ta ln lt xc nh cc method cho cc lp giao din .2 KhchHngGD - Use case ng nhp Khi khch hng a th ATM vo my cc s kin v hnh ng: a th vo my Khch hng chn ng -> hin th giao din ng nhp (KhchHngGD) -> kim tra mt khu (KhchHng) -> hin th giao din iu khin chnh (MyATM_GD) -> thng bo nu ng nhp khng thnh cng (KhchHngGD) -> ng giao din ng nhp (KhchHngGD) Khch hng chn hu b -> ng giao din ng nhp (KhchHngGD) Chng ta xc nh c cc method:
KhchHngGD::+hinTh() KhchHngGD::-thngBo(thngBo:String) KhchHngGD::+ng() MyATM_GD::+hinTh()

S tun t tinh ch tng giao din cho use case ng nhp

Trong qu trnh xc nh cc method cho tng giao din c th pht sinh thm cc method cc tng nghip v hoc truy cp d liu v chng ta phi quay li thit k thm cc method mi pht sinh ny @ i Hc KHTN-TP HCM ; ASIA-ITC 159

Phn tch thit k h thng hng i tng bng UML

: KhchHng

: KhchHngGD

: KhchHng

: NgnHngDB

: MyATM_GD

a th vo

hinTh()

Chn ng kimTraMtKhu() vKhchHng = ly_KhchHng() cKhchHng() Kt qu kim tra

X l ca use case ng nhp khng hp l

thngBo() Mt khu khng hp l hinTh() ng()

Chn hu b ng()

MyATM_GD Khi giao din chnh ca my c hin th cc tng tc ca khch hng lm pht sinh cc s kin v cc hnh ng: Chn nt rt tin Chn nt gi tin Chn nt xem ti khon (TiKhonGD) Chn nt thot -> hin th giao din rt tin (GiaoDchGD) -> hin th giao din gi tin (GiaoDchGD) -> hin th giao din xem thng tin ti khon -> ng giao din chnh (MyATM_GD)

@ i Hc KHTN-TP HCM ; ASIA-ITC

160

Phn tch thit k h thng hng i tng bng UML

: KhchHng

: MyATM_GD

: GiaoDchGD

: TiKhonGD

Chn nt rt tin

hinTh("Rt")

Chn nt gi

hinTh("Gi")

Chn xem thng tin ti khon

hinTh()

Chn nt ng ng()

Chng ta xc nh c cc method
GiaoDchGD::+hinTh(loiGD:String) TiKhon::+hinTh() MyATM_GD::+ng()

GiaoDchGD - Use case Rt tin Khi khch hng chn dch v rt tin t giao din chnh cc s kin v hnh ng: Chn rt tin Khch hng chn rt tin -> hin th giao din rt tin (GiaoDchGD) -> thc hin rt tin (TiKhon) -> thng bo kt qu (GiaoDchGD) -> in ho n rt (GiaoDchGD) -> ng giao din rt tin (GiaoDchGD) Khch hng chn ng -> ng giao din rt tin (GiaoDchGD) Chng ta xc nh c cc method:
GiaoDchGD::-thngBo(thngBo:String) GiaoDchGD::-inHon() GiaoDchGD::+ng()
@ i Hc KHTN-TP HCM ; ASIA-ITC 161

Phn tch thit k h thng hng i tng bng UML

: KhchHng

: MyATM_GD

: GiaoDchGD

: KhchHng

: TiKhon

: GiaoDch

: NgnHngDB

Chn nt rt tin

hinTh("Rt")

Nhp s tin rt

Chn ng rt tin

ly_TiKhon()

cTiKhon() toTiKhon() tk:TiKhon

tk:TiKhon

rtTin()

toGiaoTc() toMi()

gnThngTin() CpNhtGiaoDch() Rt thnh cng Rt khng thnh cng thngBo() Kt qu thng bo cho khch hng inHon() Ho n rt tin ng()

Chn khng rt ng()

GiaoDchGD - Use case Gi tin Khi khch hng chn dch v gi tin t giao din chnh cc s kin v hnh ng: Chn gi tin Khch hng chn gi tin -> hin th giao din gi tin (GiaoDchGD) -> thc hin gi tin (TiKhon) -> thng bo kt qu (GiaoDchGD)
@ i Hc KHTN-TP HCM ; ASIA-ITC 162

Phn tch thit k h thng hng i tng bng UML

-> in ho n gi (GiaoDchGD) -> ng giao din gi tin (GiaoDchGD) Khch hng chn ng -> ng giao din gi tin (GiaoDchGD) Cc method xc nh trong use case ny ging nh ca use case Rt tin

: KhchHng

: MyATM_GD

: GiaoDchGD

: KhchHng

: TiKhon

: GiaoDch

: NgnHngDB

Chn nt gi tin

hinTh("Gi")

Nhp s tin gi

Chn ng gi tin

ly_TiKhon()

cTiKhon() toTiKhon() tk:TiKhon

tk:TiKhon

giTin()

toGiaoTc() toMi() gnThngTini() cpNhtGiaoDch()

thngBo() Thng bo kt qu gi tin inHon() Ho n gi tin ng()

Chn khng gi ng()

Trong s tun t trn cho rt tin v gi tin, chng ta quan st ba i tng: Khchhng (tc nhn), v hai i tng giao din MyATM_GD, GiaoDchGD. Bt u cc dng t tc nhn khch hng m t cc thao tc khch hng trn giao din v tr li ca h thng t giao din. T cc dng ny, cc i tng giao din s tng tc vi cc i tng tng nghip v bng cc thng ip nhm thc hin tc v ca h thng.
@ i Hc KHTN-TP HCM ; ASIA-ITC 163

Phn tch thit k h thng hng i tng bng UML

TiKhonGD - Use case Truy vn thng tin ti khon3 Khi khch hng chn truy vn thng tin ti khon t giao din chnh cc s kin v hnh ng: Chn xem thng tin ti khon -> hin th giao din truy vn (TiKhonGD) -> c thng tin ti khon (KhchHng) -> hin th thng tin ti khon (TiKhonGD) Khch hng chn ng -> ng giao din truy vn (TiKhonGD) Chng ta xc nh c cc method:
TiKhonGD::+hinTh() TiKhonGD::-hinThThngTin(tk:TaiKhoan) TiKhonGD::+ng()

: KhchHng

: MyATM_GD

: TiKhonGD

: KhchHng

: TiKhon

: NgnHngDB

Chn xem thng tin

hinTh()

ly_TiKhon()

cTiKhon() toTiKhon() tk:TiKhon

tk:TiKhon

HinThThngTin()

Chn ng giao din xem thng tin ng()

MyATMKhingGD - Use case Khi ng h thng Khi my c bt cng tc khi ng cc s kin v hnh ng: Khi ng my hon thnh (MyATMKhingGD) -> hin th giao din khi ng my

Ch rng: use case Truy vn thng tin ti khon l mt use case m rng ca use case Giao dch, do vy trong thit k use case Truy vn thng tin ti khon chng ta tha k cc hot ng ca use case Giao dch. @ i Hc KHTN-TP HCM ; ASIA-ITC 164

Phn tch thit k h thng hng i tng bng UML

Nhn vin chn ng

-> cp nht s tin cho hin hnh cho my (MyATM) -> thc hin kt ni ti mng ngn hng (NgnHng) -> ng giao din khi ng (MyATMKhingGD)

Chng ta xc nh c cc method:
MyATMKhingGD::+hinTh() MyATM::+cpNhtSTin(sTin:float) NgnHng::+ktNi() MyATMKhingGD::+ng()

: Nhn vin vn hnh

: MyATMKhingGD M my hinTh()

: MyATM

: NgnHng

: Ngn hng

Nhp s tin khi ng cho my

Chn nt ng

khingMy() cpNhtSTin() ktNi() Thc hin kt ni ti mng ngn hng

ng()

Use case ng my Khi nhn vin bt cng tc tt my, cc s kin v hnh ng: Trc khi tt my -> thc hin ng kt ni ti mng ngn hng (NgnHng) -> tt my (MyATM) Chng ta xc nh c cc method
NgnHng::+ngKtNi() MyATM::-ttMy()

@ i Hc KHTN-TP HCM ; ASIA-ITC

165

Phn tch thit k h thng hng i tng bng UML

: Nhn vin vn hnh Bt cng tc tt my

: MyATM

: NgnHng

: Ngn hng

ngMy() ngKtNi() Thc hin ng kt ni ti mng ngn hng ttMy()

Mt gii php khc nhm qun l vic iu khin cc lp nghip v p ng cho cc s kin tng giao din l dng i tng iu khin. Cc thng ip t tng giao din s c tip nhn bi i tng iu khin v i tng ny s iu khin cc hot ng ca cc i tng nghip v nhm thc thi cho thng ip . Nh vy, i tng iu khin cng c th hiu nh l mt i tng bao bc tng nghip v t cc i tng tng giao din. Mt cch tng qut, mt i tng iu khin c th m nhn nhiu use case hoc mt use case c th c nhiu i tng iu khin. Tuy nhin, khng phi tt c use case u phi c i tng iu khin, bi v ngha ca i tng iu khin l to ra s phi hp, do , trong trng hp use case ch c mt lp th ngha phi hp khng cn. Trong UML lp iu khin l mt stereotype v c k hiu nh sau:

Lp iu khin

S tun t cho use case Rt tin c i tng iu khin:

@ i Hc KHTN-TP HCM ; ASIA-ITC

166

Phn tch thit k h thng hng i tng bng UML

: KhchHng

: MyATM_GD

: GiaoDchGD

: iuKhinGiaoDch

: KhchHng

: TiKhon

: GiaoDch

: NgnHngDB

Chn nt rt tin

hinTh("Rt")

Nhp s tin rt

Chn ng rt tin rtTin() ly_TiKhon() cTiKhon() toTiKhon() tk:TiKhon

rtTin()

toGiaoTc() toMi() gnThngTin()

Rt thnh cng Rt khng thnh cng Kt qu

cpNhtGiaoDch()

thngBo() Kt qu thng bo cho khch hng inHon() Ho n rt tin ng()

Chn khng rt ng()

Chng ta c th chn mt kiu stereotype biu din ph hp vi mt i tng tng giao din nh l: boundary, form, interface, page, webpage, V d, trong s use case Rt tin trn chng ta chn stereotype cho cc lp giao din l <<boundary>>. Quan st s trn chng ta thy cc i tng giao din s tng tc (rt tin) vi cc i tng nghip v qua mt i tng iu khin iuKhinGiaoDch, v i tng ny s iu phi cc hot ng ca cc i tng nghip v (KhchHng, TiKhon, GiaoDch) thc hin vic rt tin thay v trong cc s trc , vic iu phi ny do i tng giao din m nhn. Xc nh thuc tnh cc lp tng giao din

@ i Hc KHTN-TP HCM ; ASIA-ITC

167

Phn tch thit k h thng hng i tng bng UML

Cc thuc tnh c xc nh cho cc lp tng giao din ch yu l cc thuc tnh m t tham chiu. Mt ln na, da vo cc s tun t chng ta tinh ch li mi kt hp gia cc lp tng giao din v cc lp tng nghip v:
MyATM_GD

GiaoDchGD

TiKhonGD

KhchHngGD

MyATMKhingGD

TiKhon

KhchHng

MyATM

Cc thuc tnh tham chiu ca cc lp ln lt l: Lp MyATM_GD


-giaoDchGD:GiaoDchGD -tiKhonGD:TiKhonGD

Lp KhchHngGD
-khchHng:KhchHng

Lp GiaoDchGD
-tiKhon:TiKhon -khchHng:KhchHng

Lp TiKhonGD
-tiKhon:TiKhon -khchHng:KhchHng

Lp MyATMKhingGD
-myATM:MyATM

S lp y ba tng ca h thng ATM:

@ i Hc KHTN-TP HCM ; ASIA-ITC

168

Phn tch thit k h thng hng i tng bng UML


MyATM_GD -giaoDchGD:GiaoDchGD -tiKhonGD:TiKhonGD +hinTh() +ng()

Tng giao din

GiaoDchGD -tiKhon:TiKhon -khchHng:KhchHng +hinTh() +ng() -thngBo() -inHon()

TiKhonGD -tiKhon:TiKhon -khchHng:KhchHng +hinTh() +ng() -hinThThngTin()

KhchHngGD -khchHng:KhchHng +hinTh() +ng() -thngBo()

MyATMKhingGD -myATM:MyATM +hinTh() +ng()

NgnHng +ktNi() +ngKtNi()

KhchHng #tnKhchHng:String #hKhchHng:String #mPIN::String #sTh:String #tiKhon:TiKhon #ngHngDB:NgnHngDB +kimTraMtKhu() #ly_KhchHng() +ly_TiKhon() 1 ca 1..n TiKhon #sTiKhon:String #loiTiKhon:String c #sD:float #giaoTc:GiaoTc 1 #khchHng:KhchHng #ngHngDB:NgnHngDB +giTin() +rtTin() #cpNhtTiKhon() #toGiaoTc()

MyATM #aCh:String #trngThi:String #sTinHinTi:float +khingMy() +ngMy() #cpNhtSTin() #ttMy()

Tng nghip v
GiaoDch #giaoDchID:String #ngyGiaoDch:Date #thiGianGiaoDch:Time #loiGiaoDch:String 0..n #sTin:float #sD:float +toMi() +gnThngTinGiaoDch()

GiaoDchRt

GiaoDchGi

NgnHngDB

+cKhchHng() +cTiKhon() +cpNhtTiKhon() +cpNhtGioTc()

Tng truy cp d liu

@ i Hc KHTN-TP HCM ; ASIA-ITC

169

Phn tch thit k h thng hng i tng bng UML

M t hin thc ho use case


Vic m t hin thc ho mt use case chnh l m hnh ho ni dung hot ng bn trong ca mt use case nhm cung cp mt chc nng h thng ti mt tc nhn. Vic m hnh ho ny bao gm: cc i tng tham gia trong use case v cch thc cc i tng ny hp tc hot ng v trao i thng ip vi nhau. Chng ta dng s lp m t cc i tng cng tham d trong mt use case hin thc ho v s tng tc biu din s phi hp hot ng v trao i thng ip gia cc i tng ny.
ng nhp <<realize>> ng nhp

<<realize>> Giao dch

Giao dch

Gi tin

<<realize>>

Gi tin

Rt tin

<<realize>>

Rt tin

Truy vn thng tin ti khon

<<realize>>

Truy vn thng tin ti khon

Khi ng h thng

<<realize>>

Khi ng h thng

ng h thng

<<realize>>

ng h thng

S lp cho use case hin thc ho


Mi use case hin thc ho c th c mt hoc nhiu s lp m t cc lp tham d. Mt lp v i tng ca n thng tham d vo mt hoc nhiu use case hin thc ho. V d, m t hin thc ho ca use case Truy vn thng tin ti khon S lp tham d

@ i Hc KHTN-TP HCM ; ASIA-ITC

170

Phn tch thit k h thng hng i tng bng UML


KhchHng #tnKhchHng:String #hKhchHng:String #mPIN::String #sTh:String #tiKhon:TiKhon #ngHngDB:NgnHngDB +kimTraMtKhu() #ly_KhchHng() +ly_TiKhon() 1 TiKhon 1..n #sTiKhon:String #loiTiKhon:String #sD:float #giaoTc:GiaoTc #khchHng:KhchHng #ngHngDB:NgnHngDB +giTin() +rtTin() #cpNhtTiKhon() #toGiaoTc()

MyATM_GD -giaoDchGD:GiaoDchGD -tiKhonGD:TiKhonGD +hinTh() +ng()

NgnHngDB

+cKhchHng() +cTiKhon() +cpNhtTiKhon() +cpNhtGioTc()

TiKhonGD -tiKhon:TiKhon +hinTh() +ng() -hinThThngTin()

S tng tc trong use case hin thc ho

: KhchHng

: MyATM_GD

: TiKhonGD

: KhchHng

: TiKhon

: NgnHngDB

Chn xem thng tin

hinTh()

ly_TiKhon()

cTiKhon() toTiKhon() tk:TiKhon

tk:TiKhon

hinThThngTin()

Chn ng giao din xem thng tin ng()

S tun t ca hin thc ho use case Truy vn thng tin ti khon


@ i Hc KHTN-TP HCM ; ASIA-ITC 171

Phn tch thit k h thng hng i tng bng UML

Mi use case hin thc ho s c mt mt hoc nhiu s biu din s tng tc gia cc i tng ca use case. Trong UML chng ta din t s tng tc ny qua hai loi s : s tun t v s hp tc. S hp tc ca hin thc ho use case Truy vn thng tin ti khon
1: Chn xem thng tin : MyATM_GD

: KhchHng 9: Chn ng giao din xem thng tin 10: ng() 8: hinThThngTin() 2: hinTh() 3: ly_TiKhon() : TiKhonGD 7: tk:TiKhon : KhchHng

6: tk:TiKhon 4: cTiKhon()

: TiKhon 5: toTiKhon()

: NgnHngDB

Cu hi v bi tp
1. Nh th no l mt kin trc ba tng? 2. u im ca kin trc ba tng so vi kin trc client server? 3. Cc lp tng nghip v c xc nh t u? 4. Nhim v ca tng truy cp d liu v cc xc nh cc lp ny? 5. Phn bit d liu tm thi (transient) vi d liu persistent ? 6. C g khc nhau gia mt i tng persistent v d liu trong mt c s d liu? 7. Cc php ton lin quan n i tng persistent cn qun l gm nhng g? 8. Cch xc nh cc lp tng giao din? 9. ngha ca i tng iu khin trong vic thit k? 10. ngha ca vic a vo i tng iu khin trong thit k use case? 11. ngha v ni dung m t mt use case hin thc ho gm nhng g?

@ i Hc KHTN-TP HCM ; ASIA-ITC

172

Phn tch thit k h thng hng i tng bng UML

Chng 10 THIT K GI V H THNG CON


Mc tiu
Cung cp cho ngi hc cc kin thc v: Hiu v vic p dng cc khi nim v gi (package) v h thng con (subsystem) trong vic phn chia h thng Gom nhm cc thnh phn thit k thnh cc gi, h thng con nhm m t v kin trc t chc nng cao ca h thng Cch thc xc nh lin kt gia cc gi, h thng con

Thit k gi (package)
M hnh thit k tng th ca mt h thng c th c hnh thnh bi nhng thnh phn nh hn nhm gip cho ngi tip cn d hiu hn v h thng bng vic gom nhm cc thnh phn ca h thng thnh nhng gi (package) hoc nhng h thng con (subsystem), sau ch ra s lin kt gia nhng nhm ny. Thit k gi dng kt hp cc thnh phn thit k li vi nhau cho cc mc tiu v t chc. Khng ging nh thit k h thng con, thit k gi khng xut mt giao din hnh thc m n cho php trnh by ra cc ni dung ca n (c xem nh l public). Thit k gi nn c dng nh l mt cng c t chc m hnh nhm cc thnh phn li vi nhau. Nu chng th hin v cc ng ngha lin quan n cc thnh phn th chng ta dng thit k h thng con. Mt cch no , h thng con c xem l mt loi gi. Mt lp nm trong mt gi c th c phm vi l ton cc (public) hoc ni b (private). Nu l ton cc th n c th c lin kt n bt k lp no k c bn ngoi gi . Nu l cc b th n ch c lin kt vi cc lp cha trong lp . Cc iu kin hnh thnh gi: chng ta c th phn chia m hnh thit k thnh cc gi v cc h thng con da trn cc l do sau: To ra cc n v hnh thc v chuyn giao khc nhau ca h thng. Kh nng ti nguyn v nng lc ca cc nhm pht trin khc nhau yu cu phn chia h thng thnh nhng nhm khc nhau ph hp vi ti nguyn v nng lc ca nhm. Cc h thng con c th c dng cu trc ha m hnh thit k nhm phn nh ti cc loi ngi dng. Bi v qu trnh trin khai h thng c th c nhiu thay i t yu cu ngi dng. Cc gi v h thng con c thit k m bo rng cc thay i yu cu ca mt loi ngi dng ch nh hng cc phn ca h thng lin quan n loi ngi dng .

Xy dng gi cho cc lp tng giao din


Khi c lp tng giao din c gom nhm thnh cc gi, c hai chin lc sau y c th p dng. Vic chn la chin lc ph thuc vo vic nh gi xem cc giao din ca h thng thay i nh th no trong tng lai: Nu giao din ca h thng s b thay th, chu thay i ln trong tng lai th giao din nn c thit k tch bit vi cc thnh phn cn li ca m hnh thit k. Do , khi giao din c s thay i, ch c cc gi ca giao din b nh hng.

V d, nu giao din ca h thng ATM c xc nh l c kh nng thay i nhiu trong tng lai, th chng ta c th to cc gi cho tng giao din nh sau:
@ i Hc KHTN-TP HCM ; ASIA-ITC 173

Phn tch thit k h thng hng i tng bng UML

Giao din giao dch GiaoDchGD KhchHngGD MyATM_GD

Giao din h thng TiKhonGD MyATMKhingGD

Nghip v NgnHng MyATM

KhchHng

TiKhon

GiaoDch

GiaoDchGi

GiaoDchRt

Trong , gi Giao din giao dch gom nhm tt c cc lp giao din lin quan n cung cp cc chc nng giao dch ca h thng vi khch hng. Gi Giao din h thng gom nhm tt c cc giao din cn li lin quan n ng nhp v qun tr h thng. Gi Nghip v gom nhm cc lp tng nghip v ca h thng. Nu cc giao din c xc nh l s khng c s thay i v s n nh trong tng lai. Th mt thay i ti h thng nn c hiu l mt thay i bn trong thay v thay i ch giao din. Do , cc lp tng giao din s c gom nhm chung vi cc lp tng nghip v thnh mt gi.

Nu giao din ca ca h thng ATM c xc nh l n nh v khng c thay i trong tng lai. Chng ta c th phn chia h thng thnh cc gi nh sau:

ng nhp KhchHngGD GiaoDchGD

Dch v TiKhonGD

KhchHng

GiaoDch

GiaoDchGi

GiaoDchRt

TiKhon

NgnHngDB

Qun tr MyATM_GD MyATMKhingGD

NgnHng

MyATM

Theo cch phn chia gi nh trn, trong mi gi c tt c cc lp ca tng giao din ln tng nghip v v tng c s d liu. Nu cc lp tng giao din m khng c lin h v mt chc nng vi bt k lp no tng nghip v th nn gom chung vo mt gi vi cc lp tng giao din khc cng ph thuc vo mt giao din.
174

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Gi Qun tr c cc lp khng c lin quan n bt k mt lp nghip v no, theo tiu chun ny th chng ta gom chung lp MyATM_GD vi cc lp GiaoDchGD, TiKhonGD v c s ph thuc. V d: chng ta chuyn lp MyATM_GD qua gi Dch v.

ng nhp KhchHngGD GiaoDchGD

Dch v MyATM_GD TiKhonGD

KhchHng

GiaoDch

GiaoDchGi

GiaoDchRt

TiKhon

NgnHngDB

Qun tr MyATMKhingGD

NgnHng

MyATM

Nu mt lp giao din c lin quan ti mt dch v ty chn, th gom nhm chung cc lp cng hp tc vi lp vo mt gi.

Xy dng gi cho cc lp lin quan v chc nng


Mt nhm nn gom chung cc lp c quan h vi nhau v mt chc nng. Sau y l mt vi tiu chun c p dng khi nhn thy rng c hai lp c lin h v mt chc nng: Nu cc thay i trn hnh vi hoc cu trc ca mt lp m c nh hng n mt lp khc th hai lp ny c quan h v mt chc nng.

Hai lp TiKhon v GiaoDch c quan h v mt chc nng. Bi v nu chng ta thay i ni dung ca mt method ca lp GiaoDch (v d: hnh vi gnThngTinGiaoDch()) th phi cp nht li lp TiKhon. Nu chng ta tm thy rng mt lp c quan h chc nng vi mt lp khc bng cch bt u bi mt lp chng ta kim tra s nh hng ca n bng vic xo n khi h thng. Nu bt k lp no cn li c xc nh l d tha (khng tham gia vo hot ng ca h thng) th chng ta ni rng cc lp ny c quan h ph thuc vo lp b xo. Hai lp c quan h chc nng vi nhau nu cng tng tc vi cng tc nhn. Nu hai lp khng lin quan n cng tc nhn, th chng khng cng nm trong mt gi. Hai lp c quan h chc nng vi nhau nu gia chng c cc mi kt hp (association, aggregation, ). Hai lp lin quan n cc tc nhn khc nhau th khng nn cng thuc mt gi Lp bt buc v lp ty chn khng nn thuc cng mt gi
175

Hai tiu chun khng cho php hai lp thuc cng mt gi: -

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Kt hp vi cc tieu chun phn chia gi cho cc lp tng giao din cc lp lin quan v chc, c nhng gii php phn chia h thng ATM thnh cc gi nh sau: Gii php 1: tch bit gia cc tng, mt gi ch cha cc lp thuc mt tng.
Giao din dch v GiaoDchGD MyATM_GD TiKhonGD KhchHngGD Giao din h thng MyATMKhingGD

Dch v GiaoDch GiaoDchGi KhchHng NgnHng

H thng MyATM

GiaoDchRt

TiKhon

CSDL NgnHngDB

Gii php 2: trn ln gia cc tng, c bit l tng giao din v tng nghip v

ng nhp KhchHngGD GiaoDchGD

Dch v MyATM_GD TiKhonGD

KhchHng

GiaoDch

GiaoDchGi

GiaoDchRt

TiKhon

Qun tr MyATMKhingGD CSDL NgnHngDB NgnHng MyATM

M t s ph thuc gia cc gi
Nu mt lp trong mt gi c mi kt hp vi mt lp trong mt gi khc th nhng gi ny c s ph thuc ln nhau. S ph thuc gia cc gi c m hnh ho dng mi kt hp ph thuc (dependency). Mi k hp ny gip chng ta nh gi h qu ca s thay i: mt gi c cc gi khc ph thuc vo th s kh thay i hn mt gi khng c gi khc ph thuc.

@ i Hc KHTN-TP HCM ; ASIA-ITC

176

Phn tch thit k h thng hng i tng bng UML

Gi A LpA

Gi B LpB

Trong s trn, chng ta ni rng Gi B c s ph thuc vo Gi A bi v c s ph thuc ca lp B trong Gi B vo lp A trong Gi A. Quan h ph thuc cc gi trong ATM i vi gii php 1
Giao din dch v GiaoDchGD MyATM_GD TiKhonGD KhchHngGD Giao din h thng MyATMKhingGD

Dch v GiaoDch GiaoDchGi KhchHng NgnHng

H thng MyATM

GiaoDchRt

TiKhon

CSDL NgnHngDB

i vi gii php 2

ng nhp KhchHngGD GiaoDchGD

Dch v MyATM_GD TiKhonGD

KhchHng

GiaoDch

GiaoDchGi

GiaoDchRt

TiKhon

Qun tr MyATMKhingGD CSDL NgnHngDB NgnHng MyATM

@ i Hc KHTN-TP HCM ; ASIA-ITC

177

Phn tch thit k h thng hng i tng bng UML

Vi gii php 1, d thy rng cc lp giao din ca dch v s ph thuc vo cc lp tng ng tng nghip v. Vi gii php 2, gi ng nhp c quan h ph thuc ti gi Dch v v lp KhchHng c quan h vi lp TiKhon v lp KhchHngGD ph thuc vo lp MyATM_GD; tt c cc gi ng nhp v Dchv u ph thuc ti gi CSDL v lp KhchHng v lp TiKhon c quan h v tham chiu n lp NgnHngDB.

nh gi s lin kt gia cc gi
Lin kt gia cc gi c th l tt v khng tt; tt, bi v phn nh vic ti s dng; khng tt, bi v phn nh s ph thuc lm cho h thng kh thay i, tin ho v bo tr. Mt vi nguyn l nh gi nh sau: Hai gi khng nn c quan h ph thuc qua li
Gi A Gi B

Cc gi biu din mc thp khng nn ph thuc vo cc gi mc cao hn


Gi A

Tng cao

Gi B

Tng thp

Cc ph thuc ca cc gi khng nn nhy mc


Gi A

Tng giao din

Gi B

Tng nghip v

Gi C

Tng truy cp d liu

Mt gi khng nn ph thuc vo mt h thng con m chi nn ph thuc vo mt gi khc hoc mt giao din.

@ i Hc KHTN-TP HCM ; ASIA-ITC

178

Phn tch thit k h thng hng i tng bng UML

Chng 11 M HNH HO CI T H THNG


Mc tiu
Cung cp cho ngi hc cc kin thc v: Vn dng cc khi nim thnh phn ca UML thit k cc i tng tp tin vt l ci t cc lp trong thit k M hnh ho ti nguyn thit b s dng trong h thng s dng s trin khai M t vic ci t ca cc thnh phn ca h thng theo cc ti nguyn s dng bng cch tch hp s thnh phn vi s trin khai h thng

Gii thiu
Kt qu ca qu trnh thit k trc cung cp cho chng ta ni dung chi tit v h thng phn mm theo cch nhn lun l. Ngha l tp hp cc lp v i tng y v h thng (i tng nghip v, i tng giao din, i tng truy cp c s d liu,). Vn tip theo l lm sao chuyn ho cc lp v i tng lun l ny thnh cc yu t t chc vt l (cc tp tin ngun, tc thi,) phc v cho vic ci t v thc thi h thng trong mt mi trng ti nguyn xc nh. C hai s trong UML dng m hnh ho vic ci t h thng my tnh l s thnh phn (component diagram) v s trin khai (deployment diagram). S thnh phn dng m hnh ho vic thit k t chc cc thnh phn ca phn mm v mi quan h gia chng trong h thng. Mi quan h ny thng l mi quan h gia cc chng trnh ngun, gia cc phn mm ang chy hoc gia tp tin ngun vi tp tin thi hnh tng ng. S trin khai dng m hnh ho cc ti nguyn my tnh lin kt vi nhau v lin kt vi cc thnh phn thi hnh h thng. V cc s ny m t mc vt l ca h thng, do , chng ta phi xc nh mi trng (ngn ng lp trnh, cng c pht trin, h iu hnh,) v n v t chc c th thc hin thit k.

Xy dng s thnh phn


M hnh thnh phn cung cp mt cch nhn vt l v m hnh h thng. Mt m hnh thnh phn trnh by vic t chc v s ph thuc gia cc thnh phn mm, bao gm m ngun (source code) thnh phn m nh phn v thnh phn thc thi. Cc s ny cng cho thy cc hnh vi t bn ngoi ca cc thnh phn thng qua giao din ca chng.
Tn thnh phn

Tn ca thnh phn l tn ca tp tin vt l hoc tn ca mt nhm hoc h thng con c thit k thnh thnh phn. Quan h gia cc thnh phn a phn l quan h ph thuc. Trong UML c nhiu loi quan h ph thuc c xc nh: <<include>>, <<friend>>, <<derive>>, <<import>>, V d: biu biu din s ph thuc gia cc tp tin ngun trong C++

@ i Hc KHTN-TP HCM ; ASIA-ITC

179

Phn tch thit k h thng hng i tng bng UML


DichVu.h iostream.h

<<include>> DichVu.cpp

<<include>>

S ph thuc gia tp tin ngun v thi hnh trong java


GiaoDich.java <<derive>> GiaoDich.class

Mt thnh phn c th l mt thnh phn cha ng. N c biu din bng cch t cc thnh phn khc vo trong. Thnh phn ny c dng mt h thng con, mt nhm hoc mt n v ci t c cha cc n v ci t khc. Cc thnh phn cha ng c th xem nh cc gi (package) v theo mt cch no , chng ta cng c th xem mt thnh phn ny l mt ci t cho mt gi trong m hnh cc gi. V d: m t thnh phn ca mt form trong VB
GiaoDich.frm ThanhCongCu NutDieuKhien

ThucDon

M t mt project trong VB
BanHang.vbp FormHoaDon.frm FormHangHoa.frm

FormTimKiem.frm

BanHang.ini

Xc nh thnh phn
V cc thnh phn c xy dng ph thuc vo mi trng pht trin h thng (v d: c th l package trong Java hoc project trong Visual Basic). Trong qu trnh ci t, biu thnh phn c a ra m t cc thnh phn mc thp hn nh cc tp tin java, class ca java, hoc form hay module ca visual basic. Tin trnh bao gm cc bc sau: Xc nh mc tiu ca s Xy dng cc thnh phn ca s
180

@ i Hc KHTN-TP HCM ; ASIA-ITC

Phn tch thit k h thng hng i tng bng UML

Xc nh cc phn t chi tit ca s (nh: lp, i tng, giao din,) o Xc nh cc i tng ni dung ca thnh phn o Xy dng giao din cho thnh phn

Xc nh lin kt gia cc thnh phn

Xc nh mc tiu ca s Mc tiu thng qua vic xc nh mc ch m hnh ho quan h gia cc lp v cc thnh phn, gia cc thnh phn m ngun vi nhau, gia cc tp tin m ngun vi cc tp tin thi hnh hoc gia cc tp tin thi hnh vi cc thnh phn h tr. Trong java, cc lp c ci t thnh cc tp tin .class v tp tin .jar ng gi nhiu lp thnh mt tp tin lu tr Xy dng cc thnh phn ca s Mt thnh phn c xc nh gm cc lp s c ci t chung vi nhau m bo vic thc thi dch v c thc hin. V d: trong h thng ATM, c nhiu gii php xy dng cc thnh phn. Mt gii php c th l xy dng ATM thnh ba thnh phn gm: thnh phn giao din ca ATM (lu tr thnh ATM_GD.jar), thnh phn nghip v ca ATM (lu tr thnh ATMDichVu.jar), thnh phn c s d liu (ATMCSDL.class).
ATM_GD.jar ATMDichVu.jar ATMCSDL.class

Xc nh cc lp i tng Xc nh i tng ni dung thnh phn Thm cc thnh phn hoc cc i tng thit k vo cc thnh phn hon thnh ni dung ca thnh phn. V d: xc nh ni dung ca ba thnh phn trong h thng ATM. Ngoi ra, chng ta pht trin thm cc tp tin khc nh l: cc tp tin cu hnh, hng dn s dng, H thng s ci t bng java, v vy cc thnh phn s l cc tp tin .class, .java, .jar v cc tp tin khc nh l .hlp, .cfg,

@ i Hc KHTN-TP HCM ; ASIA-ITC

181

Phn tch thit k h thng hng i tng bng UML


ATM_GD.jar DichVu_GD GiaodDichGD .class MayATM_GD . class TaiKhoanGD .class KhachHangGD . class

HeThong_GD MayATMKhoiDongGD .class

ATMDichVu.jar DichVu GiaoDich .class GiaoDichGui .class TaiKhoan .class GiaoDichRut .class KhachHang .class

HeThong NganHang .class MayATM .class

ATMCSDL NgnHng.class

<<help>> ATM.hlp <<config>> ATM.cfg

Trong s trn, thnh phn ATM_GD.jar s bao gm mt thnh phn cha ng DichVu. Trong , c bn thnh phn c lng vo trong n. Tng t, trong thnh phn ATMDichVu.jar bao gm hai thnh phn cha ng. Trong , c cc thnh phn ca cc lp c lng vo. Xy dng giao din cho thnh phn Chng ta c th xy dng cc i tng giao din cho cc thnh phn,. Mc ch ca cc giao din ny nhm cung cp ra bn ngoi cc dch v c thc hin bi thnh phn cng nh nhm bo m tnh bao bc cho thnh phn. Cc thnh phn hoc i tng khc truy cp n mt thnh phn u thng qua giao din ca thnh phn.

@ i Hc KHTN-TP HCM ; ASIA-ITC

182

Phn tch thit k h thng hng i tng bng UML


ATMDichVu.jar DichVu DichVu GiaoDich .class GiaoDichGui .class TaiKhoan .class GiaoDichRut .class KhachHang .class

HeThong NganHang .class HeThong MayATM .class

ATMCSDL NgnHng.class

DVuCSDL

V d: chng ta pht trin hai lp giao din cho thnh phn ATMDichVu l DichVu v HeThong. Mt lp giao din DVuCSDLcho thnh phn ATMCSDL. Cc thuc tnh chi tit cho hai lp giao din ny nh sau:

DichVu +kimTraMtKhu() +ly_TiKhon() +giTin() +rtTin() +toMiGiaoDch() +gnThngTinGiaoDch()

HeThong +ktNi() +ngKtNi() +khingMy() +ngMy()

DVuCSDL +cKhchHng() +cGiaoTc() +cpNhtTiKhon() +cpNhtGiaoTc()

Xc nh mi lin kt cc thnh phn


Cc loi mi kt hp ny c th l: mi quan h ph thuc, tng qut ho, hin thc ho v ccmi kt hp khc V d: xy dng mi lin kt ph thuc gia cc thnh phn trong h thng ATM S cho thy, c cc ph thuc gia thnh phn DichVu_GD v giao din DichVu ca thnh phn thnh DichVu cng nh thnh phn HeThong_GD vi giao din HeThong ca thnh phn HeThong m t vic s dng cc dch v ca cc thnh phn tng giao din h thng; s ph thuc gia thnh phn DichVu v HeThong vi giao din DVuCSDL ca thnh phn ATMCSDL m t s dng cc dch v truy cp CSDL ca cc thnh phn DichVu v HeThong. Ngoi ra, cc ph thuc gia cc thnh phn DichVu_GD v HeThong_GD vi cc thnh phn ATM.cfg v ATM.hlp m t vic truy cp n cc thnh phn ny.

@ i Hc KHTN-TP HCM ; ASIA-ITC

183

Phn tch thit k h thng hng i tng bng UML


ATM_GD.jar DichVu_GD HeThong_GD

<<config>> ATM.cfg

<<help>> ATM.hlp

DichVu

ATMDichVu.jar HeThong

DichVu

HeThong

ATMCSDL NgnHng.class

DVuCSDL

Xy dng s trin khai


S ci t m hnh ho cu hnh cc yu t x l run-time v cc thnh phn phn mm, cc tin trnh, v cc i tng thc thi trn cc yu t ny. Cc th hin thnh phn phn mm m t s xut hin run-time ca cc n v m phn mm. Cc thnh phn khng tn ti nh l cc thc th thc thi khng c xut hin trong s ny. Mt s thnh phn c th xem nh l mt th trong , cc nt (node) lin kt vi nhau qua cc lin kt truyn thng (communication). Cc nt i din cho cc ti nguyn x l h thng, thng l cc my tinh c b x l v b nh. Tuy nhin, cng c th l cc thit b ngoi vi, cm ng v cc h thng nhng. Cc nt c th cha cc th hin ca thnh phn, khi n ch ra rng cc thnh phn chy v thc thi trn nt ny. S thnh phn cng cho bit thnh phn no ca s c ci t trn nt no bng vic s dng lin kt ph thuc vi loi lin kt <<deploy>> t thnh phn n nt hoc bng vic nhng biu tng thnh phn vo trong biu tng nt. K hiu nt
Tn nt

S trin khai biu din kiu cc nt


WebServer <<TCP/IP>> PCClient

S trin khai biu din th hin cc nt

@ i Hc KHTN-TP HCM ; ASIA-ITC

184

Phn tch thit k h thng hng i tng bng UML <<TCP/IP>>

Svr1:PCServer

PhngKT :PCClient

<<TCP/IP>> PhngKH :PCClient

<<TCP/IP>> PhngKD :PCClient

Biu din thnh phn trn nt


Apache Tomcat <<support>>

WebServer Apache Tomcat

<<support>>

WebServer

Xy dng mt biu trin khai theo cc bc nh sau: Xc nh cc nt ca biu Xc nh cc lin kt (truyn thng) gia cc nt Thm cc phn t vo biu : cc thnh phn hoc cc i tng hot ng Thm lin kt ph thuc gia cc thnh phn v i tng (nu cn thit)

Xc nh cc nt
Kho st v mt khng gian trin khai: u tin chng ta xem xt li gii php kin trc ca h thng v mt khng gian: cc a im trin khai h thng; h thng phn tn? cu trc mng.

V d: trong h thng ATM, cc a im trin khai bao gm: mt ngn hng, ba v tr t my ATM. Trong m hnh ny, chng ta ch cn biu din mt v tr cho my ATM, cc v tr ATM khc ch l mt bn sao v ging nhau cho tt c cc my ATM. V d khc: gi s mt ngn hng thng mi ABC c cc a im trin khai: mt trung tm TPHCM v cng c xem nh l mt chi nhnh, mt chi nhnh Hu v mt chi nhnh H Ni. Xc nh cc nt trong cc a im: vi mi a im c xc nh, chng ta xem xt c bao nhiu b x l c b tr (hoc s b tr) bao gm cc my tnh c nhn (my cho nhn vin s dng), cc my ch m h thng s thi hnh trn . ng vi mi my chng ta dng mt nt m t.

V d: trong h thng ATM, vi v tr ngn hng chng ta to mt nt cho mt server x l v lu tr v c s d liu v khch hng, ti khon, giao dch. Mi my ATM chnh l mt nt v ta c m hnh sau:

@ i Hc KHTN-TP HCM ; ASIA-ITC

185

Phn tch thit k h thng hng i tng bng UML

MayATM1:ATM

MayATM2:ATM

MayATM3:ATM

CSDLNgnHng :DBServer

Vi h thng ngn hng thng mi ABC, trung tm ci t mt server CSDL qun l ton b d liu h thng. mi chi nhnh s c mt server CSDL qun l d liu ca tng chi nhnh v cc my tnh lm vic cho cc nhn vin. y l mt h thng phn tn v d liu ti cc server CSDL chi nhnh s c tng hp vi server CSDL trung tm. Cc nt c xc nh cho h thng trin khai ca ngn hng nh sau:
:MyPC :MyPC :MyPC :MyPC :MyPC :MyPC

CSDL_TP :DBServer

QunTr :MyPC CSDL_TP :DBServer

QunTr :MyPC

TP HCM

Hu

CSDLTrungTm :DBServer CSDL_TP :DBServer QunTr :MyPC

H Ni

:MyPC

:MyPC

:MyPC

Xc nh lin kt truyn thng gia cc nt


Cc giao thc lin kt truyn thng gia cc nt. Cc giao thc ny s c nhiu loi khc nhau: <<TCP/IP>>, <<HTTP>>, <<FTP>>, <<LAN>>, <<WAN>>, <<ADSL>>, V d: cc lin kt cc nt ca h thng ATM

@ i Hc KHTN-TP HCM ; ASIA-ITC

186

Phn tch thit k h thng hng i tng bng UML

MayATM1:ATM

MayATM2:ATM

MayATM3:ATM

<<WAN>>

<<WAN>>

<<WAN>>

CSDLNgnHng :Server

Lin kt cc nt trong h thng ngn hng thng mi ABC. Cc nt trong cng mt a im kt ni vi nhau theo mng cc b trn phng thc TCP/IP, cc chi nhnh t xa lin kt vi server trung tm theo mng din rng (WAN).
:MyPC :MyPC :MyPC :MyPC :MyPC :MyPC

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>
QunTr

Server_TP :Server

QunTr <<TCP/IP>> :MyPC Server_TP :Server

<<TCP/IP>>:MyPC

<<TCP/IP>>

TP HCM

<<WAN>>

Hu

CSDLTrungTm :DBServer

H Ni
<<WAN>>
Server_TP :Server

<<TCP/IP>>

QunTr :MyPC

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>

:MyPC

:MyPC

:MyPC

Xc nh cc thnh phn ca nt
Xc nh cc thnh phn hoc cc i tng cho cc nt nhm biu din v tr trin khai ca chng trong h thng V d: cc thnh phn c thm vo cc nt trong h thng ATM

@ i Hc KHTN-TP HCM ; ASIA-ITC

187

Phn tch thit k h thng hng i tng bng UML

MyATM1:ATM ATM_GD.jar

MyATM2:ATM ATM_GD.jar

MyATM3:ATM ATM_GD.jar

<<WAN>>

<<WAN>> CSDLNgnHng :PCServer ATMDichVu.jar ATMCSDL

<<WAN>>

Cc thnh phn thm vo nt ca h thng ngn hng thng mi ABC mt chi nhnh. Trong , cc my PC cho nhn vin x l nghip v s c ci mt thnh phn cc i tng giao din (GiaoDich_GD) (cc form trong VB) nhm phc v cho nhn vin lm vic ti ch thng qua cc giao din ny. Mt my PC ca nhn vin qun tr s c ci t cc giao din cho php qun tr h thng (QuanTri_GD). Server ca chi nhnh n vai tr nh mt AppServer v c ci t cc thnh phn GiaoDich, CSDLGiaoDich gm cc lp cung cp cc dch v x l giao dch v truy cp CSDL ti chi nhnh; thnh phn ChuyenDoiDL c ci t ti server chi nhnh gm cc lp nhm x l cc dch v chuyn i d liu vi server trung tm. Ti nt trung tm, thnh phn x l tch hp d liu (XuLyTichHopDL) c ci t gm cc lp qun l vic tch hp v ng b ho d liu vi cc server chi nhnh v server trung tm.
:MyPC GiaoDich_GD :MyPC GiaoDich_GD :MyPC GiaoDich_GD

<<TCP/IP>>
Server_TP:Server GiaoDich

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>

QunTr:MyPC QuanTri_GD

CSDLGiaoDich

ChuyenDoiDL

<<WAN>>
CSDLTrungTm:DBServer XuLyTichHopDL

@ i Hc KHTN-TP HCM ; ASIA-ITC

188

Phn tch thit k h thng hng i tng bng UML

Thm lin kt ph thuc


Nu cn thit chng a vo cc lin kt p thuc gia cc thnh phn vi nhau hoc gia thnh phn vi cc i tng trong s nhm m t r hn s nh hng ln nhau gia cc yu t ca s . V d: vi h thng ATM
MyATM1:ATM ATM_GD.jar MyATM2:ATM ATM_GD.jar MyATM3:ATM ATM_GD.jar

<<WAN>>

<<WAN>> CSDLNgnHng :PCServer ATMDichVu.jar ATMCSDL

<<WAN>>

Vi h thng ngn hng thng mi ABC


:MyPC GiaoDich_GD :MyPC GiaoDich_GD :MyPC GiaoDich_GD

<<TCP/IP>>
Server_TP:Server GiaoDich

<<TCP/IP>>

<<TCP/IP>>

<<TCP/IP>>

QunTr:MyPC QuanTri_GD

CSDLGiaoDich

ChuyenDoiDL

<<WAN>>
CSDLTrungTm:DBServer XuLyTichHopDL

Ch rng khi chng ta tip cn vi mt h thng ln lc m hnh trin khai s tr nn phc tp vi nhiu nt v lin kt. Khi , chng ta nn chia thnh nhiu biu trin khai vi mi biu minh ho mt phn ca h thng.
@ i Hc KHTN-TP HCM ; ASIA-ITC 189

Phn tch thit k h thng hng i tng bng UML

Cu hi v bi tp
1. Mc tiu ca thit k ci t ? 2. C bao nhiu loi thnh phn c th s dng trong m hnh thnh phn? ngha ca mi loi? 3. Lin kt ph thuc gia cc thnh phn trong s m t iu g? 4. Ti sao v khi no chng ta xy dng giao din cho mt thnh phn? 5. Mc tiu s dng s trin khai? C bao nhiu loi s trin khai? 6. Mt nt trong s trin khai dng m hnh ho ni dung g? 7. C bao nhiu bc xy dng s trin khai? 8. C bao nhiu bc xc nh cc nt trong h thng? 9. Lin kt gia cc nt trong s trin khai m t lin kt g? 10. Ni dung ca mt nt bao gm nhng thnh phn no?

@ i Hc KHTN-TP HCM ; ASIA-ITC

190

Phn tch thit k h thng hng i tng bng UML

Ti liu tham kho


Bahrami Ali . Object Oriented Systems Development. McGraw-Hill, Singapore 1999. Bruce E. Wampler. The Essence of Object Oriented Programming with Java and UML. Addison Wesley 2001. Philippe Kruchten. The Rational Unified Process an Introduction Second Edition. Addison Wesley 2000. OMG. OMG Unified Modeling Language Specification. An Adopted Formal Specification of the Object Management Group, Inc. 2002.
Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Software Development Process, Addison-Wesley, 1999 Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling Language Reference Manual, Addison-Wesley, 1999. Ivar Jacobson, Maria Ericsson, Agneta Jacobson, The Object Advantage:Business Process Reengineering with Object Technology, Addison-Wesley, 1994

H. V. c, . T. Ngn. Gio Trnh nhp mn UML. NXB Lao ng X Hi, 2003

@ i Hc KHTN-TP HCM ; ASIA-ITC

191

You might also like