You are on page 1of 181

Phn tch, thit k hng i tng bng UML

on Vn Ban

MC LC
MC LC ................................................................................................................. 1

LI NI U 5 CHNG I: PHNG PHP HNG I TNG V QU TRNH PHT TRIN H THNG PHN MM ......................................................... 7

1.1. Gii thiu............................................................................................. 7 1.2. Gii thiu v h thng phn mm ....................................................... 8


1.2.1 Cc c trng ca h thng .............................................................................. 9 1.2.2 Phn loi h thng phn mm ........................................................................ 11

1.3. S pht trin h thng ....................................................................... 13


1.3.1 Chu trnh pht trin h thng.......................................................................... 13 1.3.2 M hnh ho h thng..................................................................................... 18

1.4 Cc cch tip cn trong pht trin phn mm .................................... 21 1.4.1 Cch tip cn hng chc nng ........................................................... 21 1.4.2 Cch tip cn hng i tng ........................................................... 23 1.5. Qu trnh pht trin phn mm hp nht.......................................... 25 1.6. Kt lun ............................................................................................. 33 Cu hi v bi tp..................................................................................... 33
CHNG II: UML V QU TRNH PHT TRIN PHN MM ............................. 35

2.1 Tng qut v UML ............................................................................. 35


2.1.1 Mc ch ca UML ........................................................................................35 2.1.2 Qu trnh pht trin phn mm thng nht vi UML..................................... 36 2.1.3 Gii thiu tng qut v UML .........................................................................37 2.1.4 Cc phn t ca UML ....................................................................................39

2.2 Cc khi nim c bn ca phng php hng i tng ............... 43


2.2.1 Cc i tng ................................................................................................. 43 2.2.2 Lp i tng................................................................................................. 44 2.2.3 Cc gi tr v cc thuc tnh ca i tng .................................................... 45 2.2.4 Cc thao tc v phng thc .......................................................................... 46

2.3 Cc mi quan h gia cc lp ............................................................ 46


2.3.1 S lin kt v kt hp gia cc i tng...................................................... 46

-1-

Phn tch, thit k hng i tng bng UML

on Vn Ban

2.3.2 Bi s.............................................................................................................. 48 2.3.3 Cc vai tr trong quan h ............................................................................... 49 2.3.4 Quan h kt nhp............................................................................................ 49 2.3.5 Quan h tng qut ho................................................................................... 51 2.3.6 K tha bi ..................................................................................................... 52 2.3.7 Quan h ph thuc.......................................................................................... 54 2.3.7 Quan h hin thc ho....................................................................................54

2.4 Cc gi................................................................................................ 55 2.5 Cc qui tc rng buc v suy din...................................................... 56 2.7 Rational Rose v qu trnh pht trin phn mm thng nht............. 58 Bi tp v cu hi ..................................................................................... 59
CHNG III: BIU CA S DNG PHN TCH CC NHU CU CA H THNG................................................................................................. 60

3.1 nh ngha bi ton ............................................................................ 60 3.2 Phn tch v c t cc yu cu h thng ........................................... 63


3.2.1 Ca s dng..................................................................................................... 63 3.2.2 Tc nhn ........................................................................................................64 3.2.3 Xc nh cc ca s dng v cc tc nhn ...................................................... 65 3.2.3 c t cc ca s dng .................................................................................... 67

3.3 Biu ca s dng ............................................................................ 70 3.4 To lp biu ca s dng trong Rational Rose .............................. 74 Bi tp v cu hi ..................................................................................... 74
CHNG IV: PHN TCH H THNG M HNH KHI NIM V BIU LP ....................................................................................................... 76

4.1 M hnh khi nim m hnh i tng............................................ 76 4.2 Xc nh cc lp i tng ................................................................ 77 4.3 Mi quan h gia cc lp i tng .................................................. 85
4.3.1 t tn cho cc quan h kt hp..................................................................... 86 4.3.2 Cc phng php xc nh cc mi quan h kt hp..................................... 86

4.4 Biu lp ......................................................................................... 88


4.4.1 Cc loi lp trong biu .............................................................................. 88 4.4.2 Mu rp khun (stereotype) ca cc lp ........................................................ 90 4.4.3 Biu lp trong H HBH............................................................................. 90

-2-

Phn tch, thit k hng i tng bng UML

on Vn Ban

4.5 Thuc tnh ca lp.............................................................................. 91


4.5.1 Tm kim cc thuc tnh................................................................................. 94 4.5.2 Cc thuc tnh ca cc lp trong HBH........................................................... 97

4.6 Cc phng thc ca lp ................................................................... 98 4.7 Ghi nhn trong t in thut ng ....................................................... 99 4.8 Thc hnh trong Rational Rose........................................................ 100 Cu hi v bi tp................................................................................... 101
CHNG V: M HNH NG THI: CC BIU TNG TC V HNH NG TRONG H THNG .............................................................103

5.1 M hnh ho hnh vi h thng.......................................................... 103


5.1.1 Cc s kin v hnh ng ca h thng ....................................................... 104 5.1.2 S trao i thng ip gia cc i tng .................................................. 106

5.2 Biu trnh t................................................................................. 106


5.2.1 Cc thnh phn ca biu trnh t............................................................. 107 5.2.2 Xy dng biu trnh t ........................................................................... 108 5.2.3 Cc biu trnh t m hnh hnh ng ca h HBH ................................ 109 5.2.4 Ghi nhn cc hot ng ca cc lp i tng ........................................... 111 5.2.5 Cc hp ng v hot ng ca h thng ................................................... 112

5.3 Biu trng thi ............................................................................. 114


5.3.1 Trng thi v s bin i trng thi..............................................................115 5.3.2 Xc nh cc trng thi v cc s kin ......................................................... 116 5.3.3 Xy dng biu trng thi .........................................................................117

5.4 Biu hot ng............................................................................. 119 5.5 S dng Rational Rose to lp biu trnh t ......................... 121 5.6 S dng Rational Rose to lp biu trng thi ...................... 122 Bi tp v cu hi ................................................................................... 123
CHNG VI: THIT K CC BIU CNG TC V BIU THNH PHN CA H THNG ...............................................................................124

6.1 Cc biu cng tc ........................................................................ 125 6.2 Thit k cc biu cng tc v cc lp i tng ......................... 129
6.2.1 Ca s dng thc t........................................................................................ 130 6.2.2 Mu gn trch nhim.................................................................................... 131 6.2.3 Mu gn trch nhim.................................................................................... 132

-3-

Phn tch, thit k hng i tng bng UML

on Vn Ban

6.3 Thit k h thng HBH .................................................................... 138 6.4 Thit k chi tit cc biu lp ....................................................... 144 6.5 Thit k biu cng tc v hon thin thit k biu lp........... 152
6.5.1 Xy dng biu cng tc........................................................................... 152

6.5.2 Hon thin thit k biu lp .......................................................... 152 Bi tp v cu hi ................................................................................... 153


CHNG VIII: KIN TRC H THNG V PHT SINH M TRNH ......... 154

7.1 Kin trc ca H thng..................................................................... 154 7.2 Biu thnh phn........................................................................... 157 7.3 Biu trin khai ............................................................................. 160 7.4 nh x cc thit k sang m chng trnh ....................................... 161
7.4.1 To lp cc nh ngha lp t nhng thit k biu lp............................ 161 7.4.2 nh ngha hm t biu cng tc............................................................. 163

7.5 Danh sch mt s lp c nh ngha trong C++ .......................... 165 7.6 Thc hnh trn Rose........................................................................ 168
7.6.1 Xy dng biu thnh phn ..................................................................... 168 7.6.2 Xy dng biu trin khai ........................................................................ 168 7.6.3 Pht sinh m trnh bng Rose...................................................................... 168

Bi tp v cu hi ................................................................................... 174
TI LIU THAM KHO.............................................................................................. 176 Danh sch thut ng v cc t vit tt ........................................................................... 179

-4-

Phn tch, thit k hng i tng bng UML

on Vn Ban

LI NI U
Nhim v ca cng ngh thng tin ni chung, cng ngh phn mm ni ring l nghin cu cc m hnh, phng php v cng c to ra nhng h thng phn mm cht lng cao nhm p ng c nhng nhu cu thng xuyn thay i, ngy mt phc tp ca thc t. Nhiu h thng phn mm c xy dng theo cc cch tip cn truyn thng t ra lc hu, khng p ng c cc yu cu ca ngi s dng. Cch tip cn hng i tng gip chng ta c c nhng cng c, phng php mi, ph hp gii quyt nhng vn nu trn. Cch tip cn ny rt ph hp vi cch quan st v quan nim ca chng ta v th gii xung quanh v to ra nhng cng c mi, hu hiu pht trin cc h thng c tnh m, d thay i theo yu cu ca ngi s dng, p ng c cc tiu chun phn mm theo yu cu ca nn cng ngh thng tin hin i, gii quyt c nhng vn phc tp ca thc t t ra trong th k 21. Gio trnh ny trnh by cch s dng ngn ng m hnh ho thng nht UML (Unified Modeling Language) phn tch v thit k h thng theo cch tip cn hng i tng. Cch tip cn hng i tng t trng tm vo vic xy dng l thuyt cho cc h thng tng qut nh l m hnh c bn. H thng c xem nh l tp cc thc th tc ng qua li v trao i vi nhau bng cc thng ip thc hin nhng nhim v t ra. Cc khi nim mi ca m hnh h thng hng i tng v cc bc thc hin phn tch, thit k hng i tng c m t, hng dn thc hin thng qua ngn ng chun UML cng phn mm cng c h tr m hnh ho Rational Rose. Gio trnh c bin son theo nhu cu ging dy, hc tp v nghin cu mn hc Phn tch, thit k h thng ca ngnh Cng ngh thng tin; ni dung c bin son theo yu cu ca chng trnh o to CNTT v da vo kinh nghim ging dy mn hc ny qua nhiu nm ca tc gi trong cc kho o to cao hc, i hc ti cc i hc Quc gia H Ni, i hc Khoa hc Hu, i hc Nng, i hc Thi Nguyn, v.v. Gio trnh c trnh by trong by chng. Chng m u gii thiu nhng khi nim c s trong m hnh ho, qui trnh pht trin h thng v hai cch tip cn chnh pht trin cc h thng phn mm hin nay l hng th tc (hng chc nng) v hng i tng. Chng II gii thiu ngn ng m hnh ho thng nht UML v vai tr ca n trong qu trnh pht trin phn mm thng nht. Vn phn tch cc yu cu ca h thng v cch xy dng biu ca s dng c nu chng III. Chng IV trnh by nhng khi nim c bn v cc lp i tng v cc mi quan h ca chng trong khng gian bi ton. Biu lp cho php biu din tt c nhng khi nim mt cch trc quan v thng qua m hnh khi nim l biu lp, chng ta hiu r hn v h thng cn pht trin. Nhng biu tng tc, m hnh ng thi th hin cc hnh vi v ng x ca h thng c gii thiu chng V. Da vo nhng kt qu phn tch cc chng trc, hai chng tip theo nu cch thc hin thit k cc biu cng tc cho tng nhim v, tng ca s dng ca h thng v t c c nhng thit k lp, biu lp chi tit m t chnh xc

-5-

Phn tch, thit k hng i tng bng UML

on Vn Ban

cc nhim v c giao. Vn quan trng l la chn kin trc cho h thng v kh nng nh x nhng kt qu thit k sang m chng trnh trong mt ngn ng lp trnh hng i tng nh C++, Java, Visual Basic, Oracle, v.v. c cp chng VII. Bi ton xy dng H thng qun l bn hng c chn lm v d minh ho xuyn sut c gio trnh phn tch, thit k h thng phn mm theo cch tip cn hng i tng. Ngoi ra, phn ph lc gii thiu mt s ti liu phn tch, thit k cc bn tham kho thm. Tc gi xin chn thnh cm n cc bn ng nghip trong Vin CNTT, cc bn trong Khoa CNTT, i hc Khoa hc Hu, cc bn trong Khoa CNTT, i hc Quc gia H Ni, i hc Thi Nguyn v nhng ng gp qu bu, h tr thit thc v ng vin chn thnh hon thnh cun gio trnh ny. Mc d rt c gng, nhng gio trnh ny chc khng trnh khi nhng sai st. Chng ti rt mong nhn c cc kin gp ca cc thy c, nhng nhn xt ca bn c hiu chnh thnh cun sch hon thin. H Ni 2004 Tc gi

-6-

Phn tch, thit k hng i tng bng UML

on Vn Ban

CHNG I
PHNG PHP HNG I TNG V QU TRNH PHT TRIN H THNG PHN MM
Chng I trnh by cc vn c s v: Cc khi nim v c trng c bn ca h thng phn mm, Qu trnh pht trin phn mm h thng, Cc phng php phn tch v thit k h thng.

1.1. Gii thiu


Thch thc ln nht ca loi ngi trong th k 21 l s hn n v mc phc tp trong hu ht cc lnh vc ca cuc sng. Khoa hc tnh ton, tin hc s ng vai tr rt quan trng trong vic tng thm tr tu, khoa hc cho con ngi nhm gii quyt nhng vn rt phc tp trong mi hot ng ca mnh. Nn kinh t ca chng ta th k ny cng phi chuyn sang nn kinh t tri thc, ngha l lun i mi v thay i, khc hn vi nn kinh t da vo vt cht. hiu, khng ch c phc tp ca nhng vn t ra trong nn kinh t tri thc v t a ra c nhng gii php gii quyt chng th chng ta phi c nhng phng php khoa hc v ng n, ph hp vi cc qui lut x hi v t nhin. Bn cnh vic nghin cu cc phng php thch hp i vi tng loi h thng, chng ta cng cn tm hiu tng b phn ca chng m hnh ho v xc nh c qu trnh hnh thnh ca mi h thng. Nh Pascal khng nh Khng th hiu c b phn nu khng hiu ton th v khng th hiu ton th nu khng hiu c tng b phn. Do vy, nhim v ca cc ngnh khoa hc l i nghin cu cc qu trnh, cc qui lut t nhin, cc tnh cht v hnh vi ca h thng m hnh ho chng v xut nhng phng php gii quyt nhng vn xy ra trong cc hot ng ca con ngi sao cho hiu qu nht. Nhim v ca cng ngh thng tin ni chung, cng ngh phn mm ni ring l nghin cu cc m hnh, phng php v cng c to ra nhng h thng phn mm cht lng cao trong phm vi hn ch v ti nguyn nhm p ng c nhng nhu cu thng xuyn thay i ca khch hng, gii quyt c nhng vn phc tp t ra trong thc t. Trc nhng nm 60, cha nh hnh cc phng php r rt cho qu trnh pht trin phn mm [19, 35]. Ngi ta xy dng h thng phn mm tng i tu tin, theo s thch v nhng kinh nghim c nhn. T nhng nm 70 ti nay, nhiu m hnh, phng php pht trin phn mm ln lt ra i. Mi phng php u c nhng u, nhc im ring, c th c a chung ni ny, mt s lnh vc no nhng li khng c a chung nhng ni khc. S a dng v phong ph trong cc phng php cng c ngha l c s khng thng nht, khng chun ho. Tuy nhin, tri qua thi gian, mt s phng php t ra c sc sng do dai,

-7-

Phn tch, thit k hng i tng bng UML

on Vn Ban

ang c p dng rng ri trong thc t. Trong s ny phi k trc ht nhng phng php c tn chung l cc phng php c cu trc [7, 9, 19]. Nhng phng php ny thng nht trong cng mt cch tip cn, l hng th tc v cng mt hng t duy (c cu trc v trn xung), nhng mi phng php li ch cp n mt phng din ca qu trnh pht trin phn mm. Do vy, ngi ta thng s dng mt s phng php lin hon, b sung cho nhau trong cng mt n pht trin phn mm phc tp. Ngy nay n vn cha lc hu, vn cn pht huy tc dng tt cho nhng h thng c cu trc vi nhng d liu tng i thun nht. Nhng do s phong ph v phng php lun v s a dng v s biu din cc khi nim (cc k hiu rt khc nhau, khng thng nht) dn ti kh c th a ra c mt qui trnh thng nht cho qu trnh pht trin phn mm. Mt khc, nhiu vn phc tp mi xut hin, khng ch yu cu tnh ton ln, x l phn tn, thng xuyn thay i cc yu cu m cn i hi phi qun l vi nhiu loi d liu khc nhau, d liu a phng tin, d liu m thanh, hnh nh, v.v. T nhng nm 90, xut hin mt tro lu mi, mnh lit: l s ra i ca cc phng php hng i tng [4, 5, 18, 21, 24]. Thay v cch tip cn da vo chc nng, nhim v ca h thng nh cc phng php c cu trc nu trn, phng php hng i tng li da chnh vo cc thc th (cc i tng). Cch tip cn hng i tng t trng tm vo vic xy dng l thuyt cho cc h thng tng qut nh l m hnh khi nim c s. H thng c xem nh l tp cc i tng tc ng vi nhau trn c s truyn thng ip thc thi cc nhim v t ra trong h thng . Cch tip cn ny rt ph hp vi cch quan st v quan nim ca chng ta v th gii xung quanh v to ra nhng cng c mi, hu hiu pht trin cc h thng c tnh m, d thay i theo yu cu ca ngi s dng, p ng c cc tiu chun phn mm theo yu cu ca nn cng ngh thng tin hin i, gii quyt c nhng vn phc tp ca thc t t ra trong th k 21. Mt iu rt quan trng trong cng ngh phn mm l cc khi nim mi ca m hnh h thng hng i tng, cc bc pht trin c th c t v thc hin theo mt qui trnh thng nht [2, 21] vi mt h thng k hiu chun, l ngn ng m hnh ho hp nht UML (Unified Modeling Language) [3, 10], c s h tr ca nhng phn mm cng c nh Rational Rose [17, 22]. Nhng cng c ny h tr rt hiu qu cho cc giai on phn tch, thit k v lp trnh hng i tng.

1.2. Gii thiu v h thng phn mm


Theo t in Larousse, Tin hc l tp hp cc ngnh khoa hc, k thut, kinh t x hi vn dng vo vic x l thng tin v s t ng ho. Nu vy, c th nh ngha h thng tin hc l h thng c mc ch x l thng tin v c s tham gia ca my tnh. S tham gia ca my tnh trong mt h thng tin hc c th nhiu mc khc nhau: Mc thp: my tnh ch c s dng gii quyt mt s cng vic n l, nh son tho cc cng vn, bo co, cc bng biu thng k, ho n, chng t, bng tnh lng, v.v.

-8-

Phn tch, thit k hng i tng bng UML

on Vn Ban

Mc trung bnh: my tnh cng vi con ngi cng tc, phn cng vi nhau thc hin mt qui trnh qun l phc tp, v d, cc h thng thng tin qun l hnh chnh nh nc, cc dch v cng, cc h thng iu hnh tc nghip ang c xy dng trong Chng trnh Ci cch hnh chnh, n 112 ca Chnh ph giai on 2001 2005, v.v. Mc cao: my tnh ng vai tr ch cht trong qu trnh x l thng tin, con ngi khng can thit trc tip vo qu trnh ny m ch c nhim v cung cp thng tin u vo cho h thng v nhn c kt qu ra t my tnh nh cc chng trnh iu khin cc chuyn bay ca cc con tu v tr, cc chng trnh iu khin cc qu trnh sn xut t ng, nhng vn v tr tu nhn to, v.v. H thng tin hc (phn mm) do vy, c th c xem l t hp cc phn cng, phn mm c quan h qua li vi nhau, cng hot ng hng ti mc tiu chung thng qua vic nhn cc d liu u vo (Input) v sn sinh ra nhng kt qu u ra (Output) thng l cc dng thng tin khc nhau nh mt qu trnh x l, bin i c t chc. Mt cch hnh thc hn chng ta c th nh ngha phn mm [13, 19] bao gm cc thnh phn c bn nh sau:

H thng cc cu lnh (chng trnh) khi thc hin th to ra c cc hot ng v cho cc kt qu theo yu cu, Cc cu trc d liu lm cho chng trnh thc hin c cc thao tc, x l v cho ra cc thng tin cn thit, Cc ti liu m t thao tc v cch s dng h thng.
1.2.1 Cc c trng ca h thng H thng thng tin cng ging nh cc h thng khc u c nhng c trng c bn nh sau:

1. Mi h thng u c tnh nht th ho v c tnh ny c th hin thng qua: Phm vi v qui m ca h thng c xc nh nh mt th thng nht v h thng khng thay i trong nhng iu kin nht nh. Khi nhng iu kin ny khng cn c m bo th h thng s phi bin i theo. To ra nhng c tnh chung thc hin c cc nhim v hay nhm t c cc mc tiu chung m tng b phn ring l khng th thc hin c. 2. Trong s hn n, phc tp ca th gii xung quanh, mt h thng c to ra v pht trin th phi c tnh t chc, c th bc. Ngha l: Mi h thng lun l h thng con ca mt h thng ln hn trong mi trng no v chnh n li bao gm cc h thng (cc thnh phn) nh hn.

-9-

Phn tch, thit k hng i tng bng UML

on Vn Ban

Gia cc thnh phn ca mt h thng c s sp xp theo quan h th bc hay mt trnh t nht nh. 3. Mi h thng u c cu trc: Chnh cu trc ca h thng quyt nh c ch vn hnh ca h thng v mc tiu m n cn t c. Cu trc ca h thng c th hin bi: Cc phn t c sp xp theo trt t cu thnh mt h thng. Mi quan h gia cc thnh phn lin quan ch yu n loi hnh, s lng, chiu, cng , v.v. Nhng h thng c cu trc cht thng c gi l h thng c cu trc. Cu trc ca h thng l quan trng, n c th quyt nh tnh cht c bn ca h thng. V d: kim cng v than u c cu to t cc phn t cc-bon, nhng khc nhau v cu trc nn: kim cng v cng rn chc, cn tham th khng c tnh cht . S thay i cu trc c th to ra nhng c tnh mi (sc tri mi, hay cn gi l nhng t bin) ca h thng v khi vt qu mt ngng no th c th dn ti vic ph v h thng c. V d: cng ngh bin i gen: chnh l lm thay i cu trc ca cc t bo sinh hc. Nhng nguyn l di truyn v bin i gen ca cng ngh sinh hc cng ang c nghin cu v ng dng trong cng ngh thng tin. 4. Mi h thng u bin i theo thi gian v khng gian: H thng no cng c mt i sng, t lc khai sinh n lc b ph b. Cc h thng phi lun thay i cho ph hp vi iu kin thc t theo thi gian v khng gian, ngha l mun tn ti v pht trin th phi bin i cho ph hp vi mi trng xung quanh theo qui lut tin ho ca t nhin (Darwin). S khc nhau ch yu l tc v kh nng nhn bit c v s thay i . Mi s thay i lun c mi lin h ngc (feedback) trong h thng v chu s tc ng ca qui lut nhn - qu. H thng c nh gi theo nhiu tiu ch khc nhau [7, 13, 19, 24] v cha c mt h thng tiu ch chun nh gi cho cc sn phm phn mm. y chng ta ch quan tm n mt s tnh cht quan trng nht hin nay ca cc sn phm phn mm. Mt sn phm ca cng ngh phn mm hin nay, ngoi nhng tnh cht chung ca cc h thng nu trn th phi c cc tnh cht sau: Tnh tin dng (usability): sn phm phi d s dng v tin li cho ngi dng, h tr thc hin cc cng vic tt hn. Mun t c mc ch ny th phn mm phi c giao din thn thin, ph hp, c y cc ti liu m t v c s h tr kp thi cho ngi s dng.

- 10 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Kh nng bo hnh v duy tr hot ng (Maintainability): H thng phi c kh nng cp nht, thay i, c kh nng m rng thc hin c nhng yu cu thay i ca khch hng. Tnh tin cy (Dependability): Tnh tin cy ca phn mm khng ch th hin kh nng thc hin ng nhim c thit k v c cc kh nng m bo an ton, an ninh d liu. H thng phi thc hin bnh thng ngay c khi c s kin bt thng xy ra. Tnh hiu qu (Efficiency): Phn mm khng gy ra s lng ph cc ti nguyn nh b nh, b x l,cc thit b ngoi vi, thi gian s dng, v.v.
1.2.2 Phn loi h thng phn mm

Nu xt ti ni dung ca thng tin c x l v tnh cht ca mi trng ca h thng, ngi ta c th phn h thng phn mm theo cc loi khc nhau [24, 35] nh sau: 1. H thng thng tin qun l (Management Information System - MIS): h thng cung cp cc thng tin cn thit cho cng tc qun l v iu hnh ca mt doanh nghip, c quan, hay ni rng ra l cho mt t chc. Ht nhn ca h thng thng tin qun l l mt c s d liu (CSDL) cha cc thng tin phn nh tnh trng hin thi v cc kt qu hot ng sn xut, kinh doanh ca t chc . H thng thu thp cc thng tin t mi trng hot ng ca doanh nghip, kt hp vi cc thng tin c trong CSDL kt xut cc thng tin m cc nh qun l cn, ng thi thng xuyn cp nht d liu gi cho cc thng tin trong CSDL lun phn nh ng thc trng hin thi ca t chc . H thng thng tin qun l thng c phn loi theo hai mc: Mc thp, hay cn gi mc tc nghip, h thng ch c nhim v in ra cc bng biu, chng t giao dch theo nhng biu mu ca cch x l th cng (bng tay) vn lm. thng l cc h thng x l d liu nh cc h thng n hng, qun l nhn s, qun l thit b, vt t, k ton ti v, v.v. Mc cao, hay cn gi mc iu hnh, h thng phi a ra c cc thng tin c tnh cht chin lc v k hoch gip cho ngi lnh o a ra c cc quyt nh ng n trong cng tc iu hnh s hot ng ca n v, v d, cc h thng dch v cng, cc h thng thng tin tng hp, cc trang thng tin iu hnh tc nghip ca Tnh / Thnh ang c xy dng trong n 112 ca Chnh ph [36, 37, 38]. Nhng h thng nh th c th pht trin c thnh h h tr quyt nh (Decision Support System DSS). c im ca h h tr quyt nh l bn cnh CSDL cn c c s cc m hnh, cc phng php m khi la chn vn dng ln cc d liu s cho cc li gii, cho cc kt qu theo yu cu a dng ca ngi dng t ra cc tnh hung khi chn la cc quyt nh ca mnh.

- 11 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

2. Cc h thng k thut (Technical Systems), nhng h thng t ng ho sn xut hay cn gi l cc h thng iu khin cc qu trnh. l nhng h thng nhm x l v iu khin t ng cc qu trnh vn hnh cc thit b k thut trong sn xut, vin thng, qun s, cc qu trnh cng nghip, v.v. Nhng h thng ny thng phi lm vic theo phng thc x l thi gian thc. V mt kin trc vt l, bn cnh phn mm, h thng ny bao gm nhiu loi thit b tin hc a dng: t cc CPU ph dng, n cc my tnh chuyn dng, cc tmt lp trnh c, nh cc b iu khin logic lp trnh c (Programmable Logic Controller PLC), cc ng truyn, cc b cm bin, cc b chuyn i tn hiu A/N hay N/A. 3. Cc h thng nhng thi gian thc (Embedded Real_time System). H thng thc hin trn nhng thit b cng n gin v c nhng vo cc thit b khc nh: mobile phone, h thng hng dn li xe t, h thng iu khin cc dng c dn dng, v.v. Cc h thng ny thng c thc hin lp trnh mc thp, v cng thng thc hin x l theo thi gian thc. Trong cc h ny, thng thiu vng cc thit b ngoi vi thng dng nh mn hnh, a cng, v.v. 4. Phn mm h thng (System Software). Nhng h thng ny thit lp nn h tng k thut ca cc h thng my tnh, phc v cho cc phn mm ng dng chy trn . c th l h iu hnh, h qun tr CSDL, chng trnh dch, giao din phn mm ng dng API (Application Programming Interface), v.v. Chng khai thc cc dch v tng thp ca cc phn cng a cc giao din, cc dch v tng cao mc khi qut, d s dng cho cc chng trnh ng dng. 5. Cc h thng t ng ho vn phng (Automated Office Ssystems). T ng ho vn phng l cch tip cn nhm a my tnh vo hot ng vn phng, cho php thu tm mi cng vic tnh ton, giao lu, qun l thng tin, tt c vo trong cc ca s trn mn hnh my tnh, c ngay trn bn lm vic ca mi nhn vin vn phng. Mt h thng t ng ho vn phng phi cung cp c t nht mt s trong cc chc nng chnh nh sau: Th tn in t (E-mail): nhn/gi cc thng ip vn bn (Text messages) ti cc c nhn hay nhm ngi. Lch biu, k hoch cng tc, thng bo, v.v. X l vn bn: son tho, sa cha, mi trang, v.v. cc ti liu, biu , vn t v ho. Hi tho in t: hi tho nghe nhn t xa, trao i d liu, cc cuc to m hn hp d liu v ting ni, hnh nh, ni ghp cc mn hnh vi nhau.

- 12 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Cc h thng tch hp in thoi vi x l, tnh ton ca my tnh: ngi s dng c th truy cp ti cc h CSDL thng qua h thng in thoi (k c in thoi khng dy) c c nhng dch v cn thit.
Thng thng, mi loi phn mm thng c nhng phng php, m hnh, cng c v qui trnh ring. Do vy, khi xy dng mt h thng phn mm chng ta cn phi xc nh xem n thuc loi no quyt nh la chn gii php cho thch hp v hiu qu nht.

1.3. S pht trin h thng Mi h thng (phn mm) u phi tri qua s khi u, trin khai, xy dng, kim nh, khai thc, bo tr v kt thc. Gi qu trnh l vng i hay ch nhn mng n s trin khai v xy dng, th gi l s pht trin ca h thng (System Develoment). xem xt x pht trin h thng, c hai kha cnh phi cp: S ni tip cc giai on trong qu trnh pht trin h thng, cn gi l chu trnh pht trin h thng, Cc phng tin nhn thc v c t h thng, cn gi l cc m hnh.
1.3.1 Chu trnh pht trin h thng

C nhiu loi chu trnh pht trin phn mm khc nhau. Ivan Sommerville [19 ] ni ti nm loi chu trnh pht trin chnh. (i) M hnh thc nc (Waterfall). y l chu trnh pht trin u tin, c Royce xut nm 1970 m t s pht trin h thng tin hc. Qu trnh phn mm c chia thnh dy cc giai on (cc pha) lin tip t phn tch yu cu, phn tch cc thnh phn, thit k, lp trnh n th nghim v trin khai h thng. Giai on sau ch c bt u khi giai on trc hon thnh (khng c chm ln nhau). V vy chu trnh pht trin ny cn c gi l chu trnh tuyn tnh (Hnh 1.1). M hnh ny c thit lp theo cch tip cn hng chc nng v ph hp cho nhng d n ln, phc tp. Nhc im chnh ca chu trnh pht trin thc nc l ch khng c s quay lui. S quay lui l mt nhu cu rt t nhin trong qu trnh pht trin phn mm, v nhiu khi thc hin giai sau ngi ta mi pht hin ra nhng thiu st ca giai on trc v do vy cn phi quay li giai on chnh sa, b sung cho y . Ngoi ra, trong qu trnh pht trin phn mm theo chu trnh thc nc, khng c s tham gia trc tip ca ngi dng trong mi giai on, m ch tip xc vi h thng sau khi n c hon thnh.

- 13 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Xc nh bi ton v c t cc yu cu Phn tch Thit k M ho, lp trnh Kim nh Khai thc v bo tr

Hnh 1.1: Chu trnh thc nc

Chnh v vy m c nhiu phng php ci tin chu trnh thc nc, cho php s quay lui. Chng hn chu trnh pht trin hnh ch V [35], c AFCIQ (Association Franaise pour le Contrle Industriel de la Qualit) ngh bao gm c cc bc quay lui, v ngoi ra cn t tng ng cc pha kim th, tch hp trong giai on phn tch v thit k. Khi mt sai st c pht hin th giai on c xem li v chu trnh bt u li t . (ii) Chu trnh tng trng. Chu trnh tng trng, do D. R. Graham xut nm 1989, da trn cc bc tng trng dn, cho php hon thnh h thng tng phn mt. Mi bc tng trng thc hin mt tin trnh tuyn tnh gm cc bc phn tch, thit k, lp trnh, kim nh v chuyn giao tng phn (Hnh 1.2). Qu trnh ny lp li nhiu ln cho n khi c c phng n hon chnh cho c h thng.
Tng trng 1 Phn tch Tng trng 2 Phn tch ... Hnh 1.2: Chu trnh pht trin phn mm tng trng Thit k Lp trnh Kim nh Chuyn giao phn 2 Thit k Lp trnh Kim nh Chuyn giao phn 1

R rng cch lm ny ch thch hp vi cc h thng c th chia ct v chuyn giao theo tng phn. (iii) Chu trnh xon c. Chu trnh xon c hay chu trnh lp c Bohm xut nm 1988, vi cc c im sau:

- 14 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tin trnh lp li mt dy cc giai on nht nh, Qua mi vng lp, to ra mt nguyn mu v c hon thin dn, Nhn mnh s khc phc cc nguy c, nhng ri ro c th xut hin trong qu trnh pht trin phn mm, trong c nguy c bt ngun t cc sai st trong c t yu cu. Trong tin hc, phn mm nguyn mu (Prototype) l mt h thng: C kh nng lm vic c trn cc d liu thc, ngha l n vt qua giai on d n trn giy, v nh vy c th c nh gi bi ngi thit k hoc ngi s dng (khch hng). C th c pht trin thm tin ti h thng hon chnh, hoc c th lm c s pht trin h thng theo n t hng. c to lp nhanh v t tn km. Dng kim chng cc gi nh v nhu cu cn p ng, cc lc thit k v logic ca cc chng trnh. Nh vy, vic to ra cc nguyn mu nhanh chng l c ch trn nhiu phng din: Chnh xc ho cc yu cu ca h thng. Thng th cc nhu cu ca ngi dng khng c pht biu rnh mch, kh m c t c mt cch hon ton ng n. Mt nguyn mu s ph din c th, tng minh ngi dng nhn v cm nhn thy n c p ng trng nhu cu ca mnh hay khng. Pht hin c cc hnh vi lch lc, cc sai st. Trong thit k, c nhng im rt nhy cm, ngi thit k khng lng ht c mi tnh hung. Xy dng nguyn mu gip ta c th pht hin c hnh vi lch lc, cc khim khuyt ca h thng. nh gi c hiu nng ca h thng. Hiu nng ca h thng lin quan cht ch ti s thch ng ca ngn ng lp trnh, cc nn (Platform) v cc phn cng nh my tnh. Nguyn mu phn nh hiu nng tng i ca chng trnh v thng qua nguyn mu ta c th pht hin c nhng nguyn nhn c bn ca s chm chp t bn trong chng trnh, t nhng khu giao tip ngi/my, v.v. K thut lm nguyn mu ngy nay c thc hin c kh hiu qu l nh cc ngn ng lp trnh phi th tc, cn c gi l ngn ng th h th t, trong c cc ngn ng hng i tng. Hu ht cc sn phm phn mm ca Vit Nam, trong cc phn mm phc v chng trnh ci cch hnh chnh ca Chnh Ph cng c xy dng theo k thut lm nguyn mu ca chu trnh xon c. Ban iu hnh n 112 t chc v qun l thc hin rt

- 15 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

cht ch theo cc giai on, lun c trao i, tho lun, nh gi nhng kt qu t c v trn c s ra nhng ti liu mu [37, 38, 39] hng dn cc nhm thc hin nhm m bo phn mm lm ra ng theo yu cu. Vi vic lm nguyn mu th qu trnh pht trin phn mm s c nhiu khc bit so vi qu trnh tuyn tnh nu trn. Theo Jekins, Milton v Naumann (i hc Indiana City), chu trnh xon c c th chia thnh bn giai on cho mi vng lp chnh nh hnh 1.3.
Xc nh mc tiu, phng n v cc rng buc nh gi cc phng n

Th nghim v nh gi nguyn mu

Thit k v to lp nguyn mu

Hnh 1.3: Chu trnh xon c

Giai on 1: Vi vng lp u tin th giai on ny nhm pht hin cc yu cu c bn, r nt nht thng qua cc phng php thng thng nh: kho st, phng vn, xem xt ti liu, v.v. Khng cn phi vt cn cc yu cu m nhanh chng chuyn sang giai on sau. T vng lp th hai, th giai on ny tp trung xc nh cc mc tiu ca vng lp hin ti, cc phng n v cc rng buc t kt qu vng lp trc. Giai on 2: nh gi cc phng n c th, pht hin ngay cc nguy c tim n v tm cch gii quyt chng. Cc nguy c, ri ro c th xut pht t pha nhng cng ngh mi, nhng i tc cnh tranh, t th trng v khch hng, t pha ngn sch, ti chnh, v.v., trn c s nh gi tnh kh thi ca d n. Giai on 3: Thit k v to lp nguyn mu, tp trung vo nhng iu ct yu. Giai on 4: Th nghim nguyn mu. Trc ht gii thiu n cho mt s ngi dng chn lc, thu thp cc ph phn, cc gp ca h. Tu theo mc quan trng, mt s iu chnh c thc hin nhng vng tip sau. Cc vng lp c tip tc cho n khi xt thy nguyn mu l tt th c th chuyn sang sn xut thc s. Mt s ngi cho rng cch lm vng vo ny s lm ko di thi gian. Song, nhng nghin cu nghim tc ca Bohm v Gray cho thy thi gian c th rt xung cn khong 45% so vi cch lm c.

- 16 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Nhng, s thnh cng ca tin trnh lp c th dn ti mt vi hu qu cn d chng. Ngi dng c th tho mn vi nhng phng n u v mun dng ngay, mc d khng phi l khng c nhng vic ng lm. Vic lm t liu, vn rt cn thit cho s hot ng v bo tr h thng sau ny, cng d b b qua hoc xem nh. Tm li, khun cnh chung ca k ngh phn mm c th c m t nh sau:
Tp hp cc yu cu

Phn tch c cu trc Thit k c cu trc Lp trnh c cu trc

Lm bn mu 1

Phn tch hng i tng

M hnh xon c

...

Thit k hng i tng Lp trnh hng i tng

...

Lm bn mu n

Mu hnh vng th n

Lp trnh hng i tng

Kim nh

H thng hot ng

Bo tr

Hnh 1.4: Qu trnh pht trin phn mm Cc giai on ca qu trnh pht trin phn mm c th thc hin theo nhng phng php khc nhau tu thuc vo kh nng ca nhm thc hin d n. Tuy nhin, cho thng nht v hiu qu th tt nht l nn chn mt phng php, phng php hng chc nng hay hng i tng cho c qu trnh pht trin phn mm. Xu th hin nay l nn chn phng php hng i tng vi s h tr ca nhiu cng c hin i.

- 17 -

Phn tch, thit k hng i tng bng UML 1.3.2 M hnh ho h thng

on Vn Ban

Cc bc pht trin h thng nh tm hiu nhu cu, phn tch, thit k v lp trnh h thng tuy c khc nhau v nhim v v mc tiu, song chng cng c nhng c im sau: u phi i mt vi s phc tp ca cc bi ton ng dng, u l qu trnh nhn thc v din t s phc tp thng qua cc m hnh. Ni cch khc u l qu trnh thc hin m hnh ho hiu v xy dng h thng. (i) Nguyn l ch ng s phc tp. tm hiu mt th gii v cng phc tp, mi khoa hc thc nghim u phi vn dng nguyn l Chia tr (Devide and Conquer) v nguyn l Tru tng ho. Tru tng ho (hay cn gi l tru xut) l nguyn l nhn thc, i hi phi b qua nhng sc thi (ca mt ch ) khng lin quan ti ch nh hin thi, tp trung hon ton vo nhng sc thi lin quan n ch nh (T in Oxford). Ni cch khc, trc mt bi ton (mt ch ), ta tm quyn i hay tm l i nhng chi tit c tc dng rt t hoc khng c tc dng i vi li gii bi ton, nh hnh thnh c mt s din t n gin ho v d hiu, cho php chng ta gii quyt c bi ton thc t, ng theo bn cht ca n. (ii) M hnh (Model) l mt dng tru tng ho ca h thng thc. Ni cch khc, m hnh l hnh nh thc ti ca bi ton m chng ta ang xt, c din t mt mc tru tng ho no , theo mt quan im v c th hin bi mt hnh thc (bng vn bn, bng biu, biu , th, cng thc hay phng trnh ton hc, v.v.). Ngy nay cc phng php phn tch, thit k h thng u c xu hng s dng cc m hnh c th hin dng biu (diagrams). c bit phng php hng i tng vi UML, tt c cc khi nim, cc kt qu ca cc bc trong qu trnh pht trin phn mm u c th din t mt cch tng minh, trc quan bng cc biu [2, 3, 16] theo nhng k php thng nht. (iii) Mc ch ca m hnh ho. C nm mc ch chnh. 1. M hnh gip ta hiu v thc hin c s tru tng, tng qut ho cc khi nim c s gim thiu phc tp ca h thng. Qua m hnh chng ta bit c h thng gm nhng g? v chng hot ng nh th no?. Jean Piaget tng ni: Hiu tc l m hnh ho. Do vy, qu trnh pht trin phn mm nu trn chng qua l qu trnh nhn thc v din t h thng . cng l qu trnh thit lp, s dng v bin i cc m hnh. C mt m hnh ng s gip ta lm sng t nhng vn phc tp v cho ta ci nhn thu o v vn cn gii quyt.

- 18 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

2. M hnh gip chng ta quan st c h thng nh n vn c trong thc t hoc n phi c nh ta mong mun. Mun hiu v pht trin c h thng phn mm theo yu cu thc t th ta phi quan st n theo nhiu gc nhn khc nhau: theo chc nng s dng, theo cc thnh phn logic, theo phng din trin khai, v.v. 3. M hnh cho php ta c t c cu trc v hnh vi ca h thng hon chnh: + m bo h thng t c mc ch xc nh trc. Mi m hnh u n gin ho th gii thc, nhng phi m bo s n gin khng loi b i nhng nhng yu t quan trng. + Kim tra c cc qui nh v c php, ng ngha v tnh cht ch v y ca m hnh, khng nh c tnh ng n ca thit k, ph hp vi yu cu ca khch hng. Ngha l, m hnh ho l qu trnh hon thin v tin ho lin tc. 4. M hnh ho l nhm to ra khun mu (template) v hng dn cch xy dng h thng; cho php th nghim, m phng v thc hin theo m hnh. 5. M hnh l c s trao i, ghi li nhng quyt nh thc hin trong nhm tham gia d n pht trin phn mm. Mi quan st, mi s hiu bit (kt qu phn tch, thit k, lp trnh) u phi c ghi li chi tit phc v cho c qu trnh pht trin v bo tr h thng. V tnh hiu c ca m hnh m n tr thnh mt th ngn ng chung trao i gia nhng ngi cng tham gia trong mt d n cng nh gia nhng ngi pht trin phn mm vi khch hng. Nhn chung, khng c m hnh no l y . Mi h thng thc t c th c tip cn thng qua mt hay mt s m hnh khc nhau. Qu trnh m hnh ho h thng phn mm thng thc hin theo hai cp: + M hnh logic: m t cc thnh phn v mi quan h ca chng thc hin cc nhu cu h thng, + M hnh vt l: xc nh kin trc cc thnh phn v tng th ca h thng. Tm li, m hnh ho mt h thng phi thc hin theo c bn hng:

- 19 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Kin trc (cc thnh phn) vt l Cc chc nng, nhim v hoc qu trnh x l cc nhim v ca h thng. Cu trc tnh (d liu, thng tin c lu tr, x l v cc yu t to nn h thng.

Cch ng x (hnh vi), Cc phn ng tc thi Hnh 1.5: Cc hng m hnh ho

C bn yu t quan trng nh hng ti hiu qu ca d n pht trin phn mm: 1. Con ngi. Yu t quan trng nht hin nhin l s lng v trnh chuyn nghip ca nhng ngi tham gia pht trin phn mm, nhng ngi c kh nng nm bt, lm ch c nhng cng ngh mi, c kh nng hiu c bi ton ca lnh vc ng dng. 2. Bi ton (lnh vc ng dng). Hiu qu ca d n ph thuc nhiu vo phc tp ca bi ton vi nhng yu cu thng xuyn thay i, nhng i hi phc tp vi cc rng buc v d liu, thi gian v ti nguyn ca h thng. 3. Cng ngh: cc k thut, cng c h tr pht trin phn mm, 4. Cc ti nguyn: bao gm c cc phn cng nh my tnh, thit b ph tr, phn mm ng dng v ti chnh, ngn sch u t cho d n pht trin phn mm. Vn rt quan trng hin nay trong cng ngh phn mm l cn phi c nhng cng c h tr thc hin m hnh ho trc quan theo mt chun d hiu gip cho vic trao i gia nhng ngi pht trin phn mm hiu qu v d dng hn. Cc nh tin hc rt c gng hnh thnh cc cng c thc hin m hnh ho trc quan. T nhng khi nim, k php quen thuc ca Booch, Ericsson, OOSE/Objectory (Jacobson), OMT (Rumbaugh) [16] ngi ta xy dng c mt ngn ng m hnh hp nht UML [2, 3] c nhiu ngi chp nhn v s dng nh mt ngn ng chun trong phn tch v thit k h thng phn mm theo cch tip cn hng i tng. Hu ht cc hng sn xut phn mm ln nh: Microsoft, IBM, HP, Oracle, v.v u s dng UML nh l chun cng nghip phn mm.

- 20 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

1.4 Cc cch tip cn trong pht trin phn mm thc hin mt d n pht trin phn mm th vn quan trng u tin chc s l phi chn cho mt cch thc hin cho thch hp da trn nhng yu t nu trn. C hai cch tip cn c bn pht trin phn mm: cch tip hng chc nng (Functional-Oriented) v cch tip cn hng i tng (ObjectOriented Approach). 1.4.1 Cch tip cn hng chc nng Phn ln cc chng trnh c vit bng ngn ng lp trnh nh C, hay Pascal t trc n nay u c thc hin theo cch tip cn hng chc nng (Functional Oriented) hay cn c gi l cch tip cn hng th tc (Procedure-Oriented). Cch tip cn ny c nhng c trng sau [9, 24]: (i) Da vo chc nng, nhim v l chnh. Khi kho st, phn tch mt h thng chng ta thng tp trung vo cc nhim v m n cn thc hin. Chng ta tp trung trc ht vo vic nghin cu cc yu cu ca bi ton xc nh cc chc nng chnh ca h thng. V d khi cn xy dng h thng qun l th vin th trc ht chng ta thng i nghin cu, kho st trao i v phng vn xem nhng ngi th th, bn c cn phi thc hin nhng cng vic g phc v c bn c v qun l tt c cc ti liu. Qua nghin cu h thng qun l th vin, chng ta xc nh c cc nhim v chnh ca h thng nh: qun l bn c, cho mn sch, nhn tr sch, thng bo nhc tr sch, v.v. Nh vy, khi nghin cu hiu r c bi ton v xc nh c cc yu cu ca h thng th cc chc nng, nhim v ca h thng gn nh l khng thay i sut trong qu trnh pht trin tip theo ngoi tr khi cn phi kho st li bi ton. Da chnh vo chc nng (thut ton) th d liu s l ph v bin i theo cc chc nng. Do , h thng phn mm c xem nh l tp cc chc nng, nhim v cn t chc thc thi. (ii) Phn r chc nng v lm mn dn theo cch t trn xung (Top/Down). Kh nng ca con ngi l c gii hn khi kho st, nghin cu hiu v thc thi nhng g m h thng thc t i hi. thng tr (qun l c) phc tp ca nhng vn phc tp trong thc t thng chng ta phi s dng nguyn l chia tr, ngha l phn tch nh cc chc nng chnh thnh cc chc nng n gin hn theo cch t trn xung. Qui trnh ny c lp li cho n khi thu c nhng n th chc nng tng i n gin, hiu c v thc hin ci t chng m khng lm tng thm phc tp lin kt chng trong h thng. phc tp lin kt cc thnh phn chc nng ca h thng thng l t l nghch vi phc tp ca cc n th. V th mt vn t ra l c cch no bit khi no qu trnh phn tch cc n th chc nng hay cn gi l qu trnh lm mn dn ny kt thc. Thng thng th qu trnh thc hin phn r cc chc nng ca h thng ph thuc nhiu vo phc hp

- 21 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

ca bi ton ng dng v vo trnh ca nhng ngi tham gia pht trin phn mm. Mt h thng c phn tch da trn cc chc nng hoc qu trnh s c chia thnh cc h thng con v to ra cu trc phn cp cc chc nng. Chng ta c th khng nh l cc chc nng ca hu ht cc h thng thng tin qun l u c th t chc thnh s chc nng theo cu trc phn cp c th bc. (iii) Cc n th chc nng trao i vi nhau bng cch truyn tham s hay s dng d liu chung. Mt h thng phn mm bao gi cng phi c xem nh l mt th thng nht, do cc n th chc nng phi c quan h trao i thng tin, d liu vi nhau. Trong mt chng trnh gm nhiu chng trnh con (thc hin nhiu chc nng khc nhau) mun trao i d liu c vi nhau th nht thit phi s dng d liu liu chung hoc lin kt vi nhau bng cch truyn tham bin. Mi n th chc nng khng nhng ch thao tc, x l trn nhng d liu cc b (Local Data) m cn phi s dng cc bin chung, thng l cc bin ton cc (Global Data). Vi vic s dng nhng bin ton cc th nhng bt li trong qu trnh thit k v lp trnh l kh trnh khi. i vi nhng d n ln, phc tp cn nhiu nhm tham gia, mi nhm ch m nhn mt s chc nng nht nh v nh th khi mt nhm c yu cu thay i v d liu chung s ko theo tt c cc nhm khc c lin quan cng phi thay i theo. Kt qu l khi c yu cu thay i ca mt n th chc nng s nh hng ti cc chc nng khc v do s nh hng ti hiu xut lao ng ca cng vic. M nhu cu thay i cc chc nng khi phn tch l tt yu v thng rt hay thay i. (iv) Tnh m (Open) v thch nghi ca h thng c xy dng theo cch tip cn ny l thp v: H thng c xy dng da vo chc nng l chnh m trong thc t th chc nng, nhim v ca h thng li hay thay i. m bo cho h thng thc hin c cng vic theo yu cu, nht l nhng yu cu v mt chc nng li b thay i l cng vic phc tp v rt tn km. V d: gim c th vin yu cu thay i cch qun l bn c hoc hn na, yu cu b sung chc nng theo di nhng ti liu mi m bn c thng xuyn yu cu t mua, v.v. Khi vn bo tr h thng phn mm khng phi l vn d thc hin. Nhiu khi c nhng yu cu thay i c bn m vic sa i khng hiu qu v v th i hi phi phn tch, thit k xy dng li mi h thng. Cc b phn ca h thng phi s dng bin ton cc trao i vi nhau, do vy, kh nng thay i, m rng ca chng v ca c h thng l b hn ch. Nh trn phn tch, nhng thay i lin quan n cc d liu

- 22 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

chung s nh hng ti tt c cc b phn lin quan. Do , mt thit k tt phi d hiu v sa i ch c hiu ng cc b. (v) Kh nng ti s dng (Reuse) b hn ch v hu nh khng h c ch k tha (Inheritance). c thch nghi tt th mt thnh phn phi l t cha. Mun l t cha hon ton th mt thnh phn khng nn dng nhiu cc thnh phn ngoi lai. Tuy nhin, iu ny li mu thun vi kinh nghim ni rng cc thnh phn hin c nn l dng li c. Vy l cn c mt s cn bng gia tnh u vit ca s dng li cc thnh phn ( y ch yu l cu trc v cc hm) v s mt mt tnh thch ng c ca chng. Cc thnh ca h thng phi kt dnh (Cohension) nhng phi tng i lng d thch nghi. Mt trong c ch chnh h tr d c c tnh thch nghi l k tha th cch tip cn hng chc nng li khng h tr. l c ch biu din tnh tng t ca cc thc th, n gin ho nh ngha nhng khi nim tng t t nhng s vt c nh ngha trc trn c s b sung hay thay i mt s cc c trng hay tnh cht ca chng. C ch ny gip chng ta thc hin c nguyn l tng qut ho v chi tit ho cc thnh phn ca h thng phn mm. 1.4.2 Cch tip cn hng i tng khc phc c nhng vn tn ti nu trn th chng ta cn phi nghin cu phng php, m hnh v cng c mi, thch hp pht trin phn mm. M hnh hng i tng [4, 5, 10, 12, 13, 14, 18, 24, 32, 33] c th gip chng ta vt c khng hong trong cng ngh phn mm v hy vng s a ra c nhng sn phm phn mm thng mi cht lng cao: tin cy, d m rng, d thch nghi, cng trng v ph hp vi yu cu ca khch hng. Cch tip cn hng i tng c nhng c trng sau. (i) t trng tm vo d liu (thc th). Khi kho st, phn tch mt h thng chng ta khng tp trung vo cc nhim v nh trc y m tm hiu xem n gm nhng thc th no. Thc th hay cn gi l i tng, l nhng g nh ngi, vt, s kin, khi nim, v.v. m chng ta ang quan tm, hay cn phi xem xt v x l. V d, khi xy dng H thng qun l th vin th trc ht chng ta tm hiu xem n gm nhng lp i tng hoc nhng khi nim no. l cc lp Sch, Tp_Ch, Bn_c, v.v. (ii) Xem h thng nh l tp cc thc th, cc i tng. hiu r v h thng chng ta phn tch h thng thnh cc n th n gin hn. Qu trnh ny c lp li cho n khi thu c nhng n th tng i n gin, d hiu v thc hin ci t chng m khng lm tng thm phc tp khi lin kt chng trong h thng. Cc i tng trong h thng lin quan vi nhau theo cc quan h: kt hp (Association), kt nhp (Aggregation), k tha (Inheritance) v s ph thuc (Dependency) [25, 32]. Phng php hng i tng cho php

- 23 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

c t ht c tt c cc mi quan h ca cc i tng ng vi bn cht t nhin nh trong th gii thc. (iii) Cc lp i tng trao i vi nhau bng cc thng ip (Message). Theo ngha thng thng th lp (Class) l nhm mt s ngi, vt c nhng c tnh tng t nhau hoc c nhng hnh vi ng x ging nhau. Trong m hnh i tng, khi nim lp l cu trc m t hp nht cc thuc tnh (Attributes), hay d liu thnh phn (Data Member) th hin cc c tnh ca mi i tng v cc phng thc (Methods), hay hm thnh phn (Member Function) thao tc trn cc d liu ring v l giao din trao i vi cc i tng khc xc nh hnh vi ca chng trong h thng. Khi c yu cu d liu thc hin mt nhim v no , mt i tng s gi mt thng ip (gi mt phng thc) cho i tng khc. i tng nhn c thng ip yu cu s phi thc hin mt s cng vic trn cc d liu m n sn c hoc li tip tc yu cu nhng i tng khc h tr c nhng thng tin v tr li cho i tng yu cu. Vi phng thc x l nh th th mt chng trnh hng i tng thc s c th khng cn s dng bin ton cc na [33]. (iv) Tnh m v thch nghi ca h thng cao hn v: H thng c xy dng da vo cc lp i tng nn khi c yu cu thay i th ch thay i nhng lp i tng c lin quan hoc b sung thm mt s lp i tng mi (c th k tha t nhng lp c trc) thc thi nhng nhim v mi m h thng cn thc hin. V d: Gim c th vin yu cu b sung chc nng theo di nhng ti liu mi m bn c thng xuyn yu cu t mua, ta c th b sung thm lp mi theo di yu cu: lp Yu_Cu. Trong cc chng trnh hng i tng c th khng cn s dng bin ton cc nn mi sa i ch c hiu ng cc b. (v) H tr s dng li v c ch k tha. Cc lp i tng c t chc theo nguyn l bao gi (Encapsulation) v che giu thng tin (Information Hidding) tng thm hiu qu ca k tha v tin cy ca h thng. Cc ngn ng lp trnh hng i tng nh: C++, Java [33], C#, Delphi, v.v. u h tr quan h k tha.
u im chnh ca phng php hng i tng:

i tng l c s kt hp cc n th c th s dng li thnh h thng ln hn, to ra nhng sn phm c cht lng cao. y cng l c s thc hin theo cng ngh thnh phn. Qui c truyn thng ip gia cc i tng m bo cho vic m t cc giao din gia cc i tng thnh phn bn trong h thng v nhng h thng bn ngoi tr nn d dng hn. iu gip cho vic phn chia

- 24 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

nhng d n ln, phc tp phn tch, thit k theo cch chia nh bi ton thnh cc lp i tng hon ton tng ng vi quan im hng ti li gii ph hp vi th gii thc mt cc t nhin. Nguyn l bao gi, che giu thng tin h tr cho vic xy dng nhng h thng thng tin an ton v tin cy. Nguyn l k tha da chnh vo d liu rt ph hp vi ng ngha ca m hnh trong ci t, khng nhng c th gim thiu c thi gian thc hin m cn lm cho h thng c tnh m, tin cy hn. Phng php hng i tng, nht l nguyn l k tha cho php d dng xc nh nhng b phn c bn, xy dng cc lp nh l cc n v c s ca h thng v s dng ngay khi chng m khng cn phi hon thin, khng i hi phi thc hin y tt c cc chc nng (n th m) v sau c th m rng n v khng lm nh hng ti cc n th khc, khng i hi phi thit k li. nh hng i tng cung cp nhng cng c, mi trng mi, hiu qu pht trin phn mm theo hng cng nghip v h tr tn dng c nhng kh nng k tha, s dng li phm vi din rng xy dng c nhng h thng phc tp, nhy cm nh: h thng ng, h thng thi gian thc, h thng a phng tin, v,v. Xo b c h ngn cch gia cc pha phn tch, thit k, ci t v kim nh trong qu trnh xy dng phn mm. Nhiu kt qu (sn phm) ca cc giai on trc c th s dng ngay nhng giai on sau.
Hn na, hiu r v nhng vn cn m hnh ho th ngoi nhng khi nim c s ca phng php lun th cn phi hiu r cc tnh cht, nhng c trng ca nhng h thng, phng php . Vi mc ch , chng ta c th tm hiu thm mt s kt qu nghin cu v nhng kh nng c t v vic x l thng tin ca cc h thng [23, 31, 36], tp trung vo cc h thng hng i tng, nghin cu cc hnh vi, cc tnh cht m bo tnh nht qun thng tin ca m hnh h thng [25, 26, 27, 28] v nhng vn chuyn i tng ng gia cc m hnh d liu [30, 32, 34].

1.5. Qu trnh pht trin phn mm hp nht Phn mm l mt sn phm c pht trin hay c k ngh ho v c ch to tng t nh cc sn phm cng nghip (phn cng) khc. Pht trin phn mm v ch to phn cng cng c nhng im tng ng: u l sn phm v cht lng ca chng ph thuc nhiu vo thit k, hn na li ph thuc c bn vo con ngi. Tuy nhin, phn mm v phn cng li c nhiu im c trng rt khc nhau.

- 25 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Qui trnh v phng php t chc thc hin sn xut ra chng rt khc nhau, phn cng thng c sn xut theo dy chuyn, hnh lot cn phn mm thng c xy dng theo n t hng, n chic. Cc giai on ch to ra phn cng c th xc nh v c kh nng iu chnh c cht lng ca sn phm cn i vi phn mm th khng d g thay i c, Mi quan h gia ngi s dng v cng vic cn thc hin vi tng loi sn phm l hon ton khc nhau, Cch tip cn xy dng, ch to cc sn phm cng khc nhau. Kh nng nhn bn ca chng l hon ton tri ngc nhau. Vic bo v bn quyn sn phm phn mm l cc k kh khn v kh nng sao chp thnh nhiu bn ging nhau l c th thc hin c (tng i d). Phn mm khc hn vi phn cng l khng b h hng theo thi gian, khng b tc ng ca mi trng (thi tit, nhit , iu kin, v.v). Do vy, i vi phn cng vic bo hnh l m bo n hot ng c nh mi cn i vi phn mm th li khc hn. Bo hnh, bo tr phn mm l bo m cho h thng hot ng ng vi thit k v p ng yu cu s dng ca khch hng. Chnh v th m cng bo hnh phn mm l rt tn km v i hi phi tp trung nhiu hn vo khu phn tch, thit k h thng.

Mi h thng phn mm cng nh cc h thng khc khng th tn ti c lp m n lun vn ng v tn ti trong mt mi trng, tng tc vi th gii xung quanh. Mt h thng c th xem nh l h thng con ca mt h thng khc v bn thn n li c th cha mt s cc h thng con khc nh hn. Cng ngh phn cng pht trin nhanh c v cht lng v tc x l vi gi thnh ngy mt h trong khi gi phn mm li rt cao. pht trin c nhng h thng phn mm p ng c nhng yu cu trn th i hi phi p dng l thuyt, k ngh, phng php v cng c mi to ra mt qui trnh pht trin phn mm hp nht. Cng ngh phn mm (CNPM) l cp n cc l thuyt, phng php lun v cc cng c cn thit pht trin phn mm. Mc ch ca CNPM l lm ra nhng phn mm cht lng cao, tin cy vi mt hn ch v ngun lc, theo ng mt lch trnh t trc, ph hp vi ngn sch d kin v p ng cc yu cu ngi dng. Hn na, CNPM khng ch l phi lm ra h thng phn mm m phi lm c cc h s, ti liu nh cc ti liu thit k, ti liu hng dn s dng, v.v. lm c s bo tr v m rng, pht trin h thng sau ny. Tm li, xy dng c nhng h thng phn mm p ng nhng yu cu trn, chng ta cn phi:

- 26 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

C mt qui trnh pht trin phn mm thng nht gm cc bc thc hin r rng, m sau mi bc u phi c cc sn phm c th; C cc phng php v k ngh ph hp vi tng giai on thc hin pht trin phn mm; C cng c lm ra sn phm phn mm theo yu cu.

Qu trnh pht trin mt sn phm (Software Development Process) l qu trnh nh ngha ai lm ci g, lm khi no v nh th no. Qu trnh xy dng mt sn phm phn mm hoc nng cp mt sn phm c c gi l qu trnh pht trin phn. H thng phn mm c kin to l sn phm ca mt lot cc hot ng sng to v c qu trnh pht trin. Qu trnh pht trin nhng phn mm phc tp phi c nhiu ngi tham gia thc hin. Trc ht l khch hng v nhng nh u t, l nhng ngi a ra vn cn gii quyt trn my tnh. Nhng ngi pht trin h thng gm cc nh phn tch, thit k v lp trnh lm nhim v phn tch cc yu cu ca khch hng, thit k cc thnh phn ca h thng v thc thi ci t chng. Sau phn mm c kim th v trin khai ng dng thc thi nhng vn m ngi s dng yu cu. Qu trnh pht trin phn mm c xc nh thng qua tp cc hot ng cn thc hin chuyn i cc yu cu ca khch hng (ngi s dng) thnh h thng phn mm. C su bc chnh cn thc hin trong qu trnh pht trin phn mm: 1. Xc nh v c t cc yu cu 2. 3. 4. 5. 6. Phn tch h thng Thit k h thng Lp trnh, m ho chng trnh Kim nh h thng Vn hnh v bo tr h thng.

C th thc hin cc bc trn theo nhiu phng php khc nhau. Theo , s cc bc xut ca cc phng php cng c th khc nhau. Cc d n c th thc hin theo nhng m hnh khc nhau nh m hnh "thc nc", m hnh "to nguyn mu", m hnh "xon c", v.v. tu thuc vo tng lnh vc ng dng v kh nng thc hin ca cc nhm tham gia thc hin d n.
(i) Xc nh cc yu cu v phn tch h thng

T cc yu cu ca khch hng, chng ta xc nh c cc mc tiu ca phn mm cn pht trin. Thng l cc yu cu chc nng v nhng g m h thng phi thc hin, nhng cha cn ch ra cc chc nng thc hin nh

- 27 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

th no. Vic xc nh ng v y cc yu cu ca bi ton l nhim v rt quan trng, n lm c s cho tt c cc bc tip theo trong d n pht trin phn mm. Mun vy, th phi thc hin c t chi tit cc yu cu ca h thng. UML cung cp biu ca s dng c t cc yu cu ca h thng. Ti liu c t cc yu cu c s dng : Lm c s trao i vi ngi s dng, tho lun gia cc nhm thnh vin trong d n pht trin phn mm v nhng g m h thng s phi thc hin (v c nhng g n khng cn thc hin). Lm cn c c bn kim tra, th nghim trong cc bc tip theo ca qu trnh pht trin phn mm. Mun t c cc mc tiu trn th qu trnh phi thc hin: Xc nh v hiu r min, phm vi ca bi ton: Nhng ngi pht trin s xy dng h thng theo s hiu bit ca h nh th no v nhng yu cu ca khch hng v nhng khi nim c s ca bi ton ng dng. Nm bt cc yu cu: Ngi phn tch phi nm bt c tt c cc nhu cu ca khch hng bng cch phi trao i vi mi ngi c lin quan n d n, tham kho cc ti liu lin quan. Thng qua vic tho lun, trao i vi khch hng, cc chuyn gia ca lnh vc ng dng v nhng ngi , ang s dng nhng h thng c sn, ta c th pht hin v nm bt c cc yu cu ca h. Phng php tru tng ho gip ta d dng nm bt c cc yu cu ca h thng. Phn loi: Vn quan trng nht trong giai on ny l phi hiu r cc yu cu c xc nh. Mun vy, ta phi tm cch phn loi chng theo tm quan trng, hay chc nng chnh ca nhng ngi s dng v ca khch hng. Thm nh: Kim tra xem cc yu cu c thng nht vi nhau v y khng, ng thi tm cch gii quyt cc mi mu thun gia cc yu cu nu c. Nghin cu tnh kh thi: Tnh kh thi ca mt d n tin hc phi c thc hin da trn cc yu t bao gm cc kha cnh ti chnh, chin lc, th trng, con ngi, i tc, k thut, cng ngh v phng php m hnh ho, v.v. Ni chung, khng c mt qui tc hng dn c th bit khi no cng vic phn tch cc yu cu s kt thc v qu trnh pht trin c th chuyn sang bc tip theo. Nhng c th da vo cc cu tr li cho nhng cu hi sau chuyn sang bc tip theo. Khch hng, ngi s dng (NSD) v nhng ngi pht trin hiu hon ton h thng cha? nu c y cc yu cu v chc nng (dch v), u vo / ra v nhng d liu cn thit cha?

- 28 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Bc tranh chung trong pha phn tch cc yu cu ca h thng c th m t nh trong hnh 1.6.
Ngi pht trin h thng Hiu r cc yu cu Nghin cu tnh kh thi Thm nh Ngi s dng (NSD) Ti liu c t yu cu v bc tip theo Nm bt cc yu cu M t cc yu cu

Khch hng, Cc chuyn gia h thng

Phn loi

Hnh 1.6: Mi quan h gia cc cng vic trong pha phn tch cc yu cu

Vn xc nh ng v y cc yu cu ca h thng l rt quan trng, n nh hng rt ln ti cht lng ca sn phn sau ny. Theo Finkelstein (1989) khi kho st, nh gi v cc pha thc hin trong qu trnh pht trin phn mm th trn 55% [19] cc li ca phn mm l do cc yu cu ca h thng cha c pht hin y v chi ph cho vic sa cc li ( bo tr h thng) chim ti trn 80% chi ph ca c d n.
(ii) Phn tch h thng hng i tng

Phn tch hng i tng (OOA): l mt giai on ca qu trnh pht trin phn mm, trong m hnh khi nim c m t chnh xc, sc tch thng qua cc i tng thc v cc khi nim ca bi ton ng dng. Phn tch hng i tng va l ngnh khoa hc va l ngh thut nn xy dng c nhng h thng tt, trng kin, c tnh m v d bo tr th ta phi bit vn dng cc nguyn l, phng php khoa hc kt hp c c heuristic v cc mu th nghim nhanh chng tch lu v hon thin k nng phn tch, thit k ca mnh. Thng qua vic p dng cc nguyn l v kinh nghim thc hin theo mu hng dn [10] chng ta nhanh chng hc c cch to ra cc thit k h thng phn mm tt hn. Phn tch hng i tng tp trung vo vic tm kim cc i tng, khi nim trong lnh vc bi ton v xc nh mi quan h ca chng trong h thng.

- 29 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Nhim v ca ngi phn tch l nghin cu k cc yu cu ca h thng v phn tch cc thnh phn ca h thng cng cc mi quan h ca chng. Trong khu phn tch h thng ch yu tr li cu hi: H thng gm nhng thnh phn, b phn no? H thng cn thc hin nhng ci g? Kt qu chnh ca pha phn tch h thng hng i tng l biu lp, biu trng thi, biu trnh t, biu cng tc v biu thnh phn.
(iii) Thit k h thng hng i tng

Da vo cc c t yu cu v cc kt qu phn tch (cc biu nu trn) thit k h thng. Thit k hng i tng (OOD) l mt giai on trong qu trnh pht trin phn mm, trong h thng c t chc thnh tp cc i tng tng tc vi nhau v m t c cch h thng thc thi nhim v ca bi ton ng dng. Trong khu thit k h thng hng i tng ch yu tr li cu hi lm nh th no? v Trong h thng c nhng lp i tng no, trch nhim ca chng l g? Cc i tng tng tc vi nhau nh th no? Cc nhim v m mi lp i tng phi thc hin l g? D liu nghip v v cc giao din c xy dng nh th no? Kin trc v cu hnh ca h thng? Nhim v chnh ca thit k h thng l: Xy dng cc thit k chi tit m t cc thnh phn ca h thng mc cao hn khu phn tch, thit k giao din phc v cho vic ci t. Ngha l, cc lp i tng c nh ngha chi tit gm y cc thuc tnh, cc thao tc phc v cho vic ci t bng ngn ng lp trnh hng i tng c la chn cc bc sau. ng thi a ra c kin trc (l trng tm) ca h thng m bo cho h thng c th thay i, c tnh m, d bo tr, thn thin vi NSD, v.v. Ngha l t chc cc lp thnh cc gi hoc cc h thng con theo mt kin trc ph hp vi nhu cu pht trin ca cng ngh (mng, phn tn, v.v.) ng thi ph hp vi xu th pht trin ca lnh vc ng dng. Thit k CSDL, c th chn m hnh quan h hay m hnh i tng. Bi v tn ti nhiu m hnh d liu khc nhau, nn khi xy dng h thng phn mm ln chng ta phi thit k cc phng n tch hp d

- 30 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

liu t nhiu ngun khc nhau, ngha l nhng kh nng chuyn i, kt hp cc m hnh d liu vi nhau. Nhng kt qu trn c th hin trong cc biu : biu lp (chi tit), biu hnh ng, biu thnh phn v biu trin khai. Tt c cc kt qu thit k phi c ghi li thnh cc h s, ti liu cho h thng. Trong cc ti liu thit k phi m t c th nhng thnh phn no, lm nhng g v lm nh th no.
M hnh khi nim, c t cc yu cu Kin trc chi tit, c th v ph thuc vo vi t: khung ca h thng

Thit k logic: Phn chia cc thnh phn,


Nhim v cc thnh phn

Kin trc tng qut v tru tng ho

Thit k chi tit: Lm mn dn cc thnh phn, Cch thc hin ca mi thnh phn

Hnh 1.7: Thit k logic v thit k chi tit

(iv) Lp trnh hng i tng Trong giai on ny, mi thnh phn c thit k s c lp trnh bng ngn ng lp trnh hng i tng c la chn thnh nhng m un chng trnh (chng trnh con). Mi m un ny s c kim nh hoc th nghim theo cc ti liu c t ca giai on thit k. Cng vic ny c m t nh sau:
Tp cc m un chng trnh

c t thit k

Lp trnh (Xy dng cc lp)

Hnh 1.8: Lp trnh tp trung xy dng lp Hin nay c mt s cng c h tr cho qu trnh phn tch, thit k v c th sinh m t ng cho nhng thnh phn chnh ca m hnh nh: Rose [8, 22], hay Visual Studio .NET ca Microsoft, v.v. (v) Kim nh phn mm

Cc m un chng trnh cn phi c kim nh v sau c tch hp vi nhau thnh h thng tng th. Chng phi c kim tra xem c p ng c cc yu cu ca khch hng hay khng. Kim th phn mm l mt qu trnh lin tc, xuyn sut mi giai on trong qu trnh pht trin nhm m bo rng phn mm tho mn cc yu cu thit k, thm nh xem nhng yu cu

- 31 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

c p ng cc nhu cu ca ngi dng hay khng. Kim th chng trnh ng ngha vi vic tm ra nhng li cha c pht hin, ch khng th chng minh c l chng trnh ng n. C hai k thut kim nh phn mm chnh [1]: k thut Hp en (Black Box) v k thut Hp trng (White Box). K thut kim th Hp en cn c gi l k thut hng d liu vo/ra. N c s dng kim tra cc c t chc nng ca thit k v khng quan tm n cu trc bn trong ca h thng. Nu cc u ra (kt qu) khng ng nh mong mun th kim th thnh cng trong vic pht hin c li phn mm. Cn k thut Hp trng li i hi hiu bit v cu trc logic bn trong, cc cu trc iu khin v cc lung d liu ca chng trnh. Hai k thut ny khng thay th c nhau m b sung cho nhau. Kim th hp trng c th lm sng t cc li tm thy trong kim th hp en bi v chng xem xt phn mm thng qua vic nghin cu cu trc ca chng trnh . Vn kim nh phn mm ang l thch thc ln cho cc cng ty phn mm ca Vit Nam. (vi) Vn hnh, khai thc v bo tr h thng Giai on tip theo bt u bng vic ci t h thng phn mm trong mi trng s dng ca khch hng sau khi sn phm c kim nh v giao cho h. H thng s hot ng, cung cp cc thng tin, x l cc yu cu v thc hin nhng g c thit k. Tuy nhin, vn bo tr phn mm hon ton khc vi bo tr ca phn cng. Nh phn tch trn, bo tr phn mm l m bo cho h thng hot ng p ng c cc yu cu ca NSD, ca khch hng. M cc yu cu ny trong thc t li hay thay i, do vy cng tc bo tr li bao gm c nhng s thay i h thng sao cho n ph hp vi yu cu hin ti ca h, thm ch c nhng thay i cha pht hin c trong cc pha phn tch, thit k. Ngha l, h thng phn mm phi c nng cp, hon thin lin tc v chi ph cho cng tc bo tr l kh tn km. Thng thng, c hai loi nng cp: Nng cao hiu qu ca h thng: bao gm nhng thay i m khch hng cho l s ci thin hiu qu cng vic ca h thng, nh b sung thm cc chc nng hay gim thi gian x l, tr li ca h thng, v.v. m bo s thch nghi i vi s thay i mi trng ca h thng hay s sa i cho ph hp vi nhng thay i ca chnh sch, qui ch mi ban hnh ca Chnh ph. Mt cch tng qut, qu trnh pht trin phn mm vi UML c thc hin thng nht da trn cc bc xy dng cc biu m t cc yu cu, khi nim, s tng tc v kin trc ca h thng.

- 32 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

1.6. Kt lun
Ngy nay phng php hng i tng ang c tp trung nghin cu v trin khai ng dng rng ri to ra nhng phn mm c tnh m, d thay i theo yu cu ca khch hng, p ng c cc tiu chun phn mm cht lng cao theo yu cu ca nn cng ngh thng tin hin i. Mt iu rt quan trng trong cng ngh phn mm l cc khi nim mi ca m hnh h thng hng i tng, cc bc pht trin c th c t v thc hin theo mt qui trnh hp nht vi mt h thng k hiu chun l ngn ng m hnh ho hp nht UML. Mc d phng php hng i tng c nhng u vit nh phn tch, song cn c nhng vn tn ti v mt m hnh hnh thc hng i tng. Phng php ny cha c mt m hnh l thuyt ph hp ( n gin ci t) cho cc i tng, trong c th thc hin c cc php ton trn i tng ging nh i vi m hnh quan h. Tng t, vn v qun tr CSDL i tng cng cn l mt thch thc ln i vi ngnh CNTT. Vic t chc, x l v qun l i tng sao cho m bo tnh nht qun d liu trong h thng, c bit vic truy vn i tng nh th no cho hiu qu nht lun l nhng vn m, cn phi c tp trung nghin cu.

Cu hi v bi tp
1.1 H thng phn mm l g?, nu cc c trng c bn ca sn phm phn mm? 1.2 Vai tr v mc ch ca m hnh ho trong qu trnh pht trin phn mm? 1.3 Ti sao li cn phi c mt qui trnh pht trin phn mm thng nht? 1.4 Phn tch cc c trng c bn ca cch tip cn hng chc nng v hng i tng trong qu trnh pht trin phn mm. 1.5 Nu nhng m hnh c bn c ng dng pht trin h thng hin nay? 1.6 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v h thng phn mm. H thng phn mm hay gi tt l h thng, l t hp cc [(1)], [(2)] c quan h qua li vi nhau, [(3)] thng qua vic nhn cc d liu u vo (Input) v sn sinh ra nhng kt qu u ra (Output) thng l cc dng thng tin khc nhau nh mt [(4)], bin i [(5)]. Chn cu tr li: a. cng hot ng hng ti mc tiu chung b. qu trnh x l c. phn mm d. c t chc e. phn cng

- 33 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

1.7 Hy chn nhng thut ng thch hp nht in vo cc ch [()] trong on vn di y m t v qu trnh phn tch hng chc nng. hiu c nhng h thng ln, phc tp, chng ta thng phi s dng nguyn l [(1)], ngha l [(2)] chnh thnh cc chc nng n gin hn theo cch tip cn [(3)]. Qui trnh ny c lp li cho n khi thu c nhng n th chc nng tng i n gin, d hiu v thc hin ci t chng m khng lm tng thm phc tp lin kt chng trong [(4)]. Chn cu tr li: a. t trn xung b. phn tch nh cc chc nng c. h thng d. chia tr (devide and conquer) 1.8 Hy chn dy cc bc thc hin trong danh sch di y cho ph hp vi qui trnh pht trin phn mm theo m hnh "thc nc". (1) Xc nh cc yu cu (2) Thit k h thng (3) Ci t v kim tra h thng (4) Vn hnh v bo tr h thng (5) Phn tch h thng Chn cu tr li: a. (2) (1)(3)(5)(4) b. (1) (2)(3)(4)(5) c. (1) (5)(2)(3)(4) d. (1) (3)(2)(5)(4)

- 34 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

CHNG II

UML V QU TRNH PHT TRIN PHN MM

Ni dung ca chng II: Gii thiu tm lc v ngn ng m hnh ho thng nht UML Cc khi nim c bn ca phng php hng i tng, Mi quan h gia cc lp i tng, Qu trnh pht trin phn mm. xy dng c mt sn phm phn mm tt, ng nhin l cn mt phng php ph hp. Phng php pht trin ph hp l s kt hp ca ba yu t: (i) Mt tp hp cc khi nim v m hnh, bao gm cc khi nim c bn s dng trong phng php cng vi cch biu din chng (thng l di dng th, biu ). (ii) Mt qu trnh pht trin, bao gm cc bc thc hin ln lt, cc hot ng cn thit. (iii) Mt cng c mnh tr gip cho vic trin khai h thng cht ch v nhanh chng. UML l ngn ng chun gip chng ta th hin c cc yu t nu trn ca phng php phn tch, thit k hng i tng.

2.1 Tng qut v UML


UML l ngn ng m hnh ho, trc ht n bao gm mt tp cc k php thng nht, th hin ng ngha cc nh ngha trc quan tt c cc thnh phn ca m hnh ([1], [2]). UML c s dng hin th, c t, t chc, xy dng v lm ti liu cc vt phm (kt qu) ca qu trnh pht trin phn mm hng i tng, c bit l phn tch, thit k di dng cc bo co, biu , bn mu hay cc trang web, v.v. UML l ngn ng m hnh ho c lp vi cc cng ngh pht trin phn mm. 2.1.1 Mc ch ca UML Mc ch chnh ca UML: 1. M hnh c cc h thng (khng ch h thng phn mm) v s dng c tt c cc khi nim hng i tng mt cch thng nht. 2. Cho php c t, h tr c t tng minh (trc quan) mi quan h gia cc khi nim c bn trong h thng, ng thi m t c mi trng thi hot ng ca h thng i tng. Ngha l cho php m t c c m hnh tnh ln m hnh ng mt cch y v trc quan. 3. Tn dng c nhng kh nng s dng li v k tha phm vi din rng xy dng c nhng h thng phc tp v nhy cm nh: cc h thng ng, h thng thi gian thc, h thng nhng thi gian thc, v.v. 4. To ra nhng ngn ng m hnh ho s dng c cho c ngi ln my tnh.

- 35 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tm li, UML l ngn ng m hnh ho, ngn ng c t v ngn ng xy dng m hnh trong qu trnh pht trin phn mm, c bit l trong phn tch v thit k h thng hng i tng. UML l ngn ng hnh thc, thng nht v chun ho m hnh h thng mt cch trc quan. Ngha l cc thnh phn trong m hnh c th hin bi cc k hiu ho, biu v th hin y mi quan h gia cc chng mt cch thng nht v c logic cht ch. Tuy nhin cng cn lu : UML khng phi l ngn ng lp trnh, ngha l ta khng th dng UML vit chng trnh. N cng khng phi l mt cng c CASE. Mt s cng c CASE nh Rational Rose [17] s dng m hnh UML pht sinh m ngun t ng sang nhng ngn ng lp trnh c la chn nh C++, Java, Visual C++, v.v. UML cng khng phi l mt phng php hay mt qu trnh pht trin phn mm. Cc k hiu UML c s dng trong cc d n pht trin phn mm nhm p dng nhng cch tip cn khc nhau cho qu trnh pht trin phn mm nhm tch chu k pht trin h thng thnh nhng hot ng, cc tc v, cc giai on v cc bc khc nhau. 2.1.2 Qu trnh pht trin phn mm thng nht vi UML UML c pht trin c t qu trnh pht trin phn mm, nhm m hnh ho h thng. Qu trnh pht trin phn mm ny gi l qu trnh pht trin phn mm hp nht (USPD) hay qu trnh hp nht Rational (RUP [17, 21]), gi tt l qu trnh hp nht (UP). RUP l tp cc qui tc hng dn v phng din k thut v t chc pht trin phn mm, nhn mnh ch yu vo cc bc phn tch v thit k. RUP c cu trc theo hai chiu: 1. Chiu thi gian: chia qu trnh thnh cc pha thc hin v cc bc lp. 2. Chiu thnh phn: cc sn phm cng vi cc hot ng c xc nh y . 1. Cu trc d n theo chiu thi gian bao gm cc pha thc hin: (i) Khi ng (Inception): xc nh d n tng th (ii) Son tho d n t m (Elaboration): + Lp k hoch cho nhng hot ng cn thit + Xc nh nhng ti nguyn cn thc hin d n + Xc nh cc tnh cht, c trng ca d n + Xy dng kin trc cho h thng. (iii) Xc nh nhng sn phm mi pha thc hin. (iv) Chuyn giao: cung cp sn phm cho cng ng ngi s dng.

- 36 -

Phn tch, thit k hng i tng bng UML 2. Cu trc d n theo chiu thnh phn bao gm cc hot ng:

on Vn Ban

M hnh ho nghip v: thit lp cc kh nng ca h thng cn xy dng v nhu cu ca NSD. Phn tch cc yu cu: chi tit cc yu cu chc nng v phi chc nng ca h thng. Phn tch thit k h thng: m t h thng thc hin cc yu cu v h tr ci t. Ci t chng trnh: lp trnh nhng kt qu thit k nu trn h thng hot ng ng theu yu cu. Kim th, kim chng cc thnh phn v ton b h thng. Trin khai h thng: khai thc h thng v hun luyn NSD. UP bao gm con ngi, d n, sn phm, qui trnh v cng c. Con ngi l nhng ngi tham gia d n to ra sn phm phn mm theo mt qu trnh vi s h tr ca cng c c cung cp. UP l qu trnh pht trin phn mm c hng dn bi cc ca s dng. Ngha l cc yu cu ca NSD c m t trong cc ca s dng, l chui cc hnh ng c thc hin bi h thng nhm cung cp cc dch v, cc thng tin cho khch hng. Cc ca s dng bao gm chui cc cng vic c xem l nn tng to ra m hnh thit k v ci t h thng. UP cng l qui trnh tp trung vo kin trc, c lp v pht trin tng trng lin tc. Kin trc ca h thng phi c thit k nhm p ng cc yu cu ca cc ca s dng chnh, trong gii hn ca chun phn cng m h thng s chy v ca cu trc ca c h thng ln cc h thng con. Tnh lp ca qu trnh pht trin phn mm c th hin ch l mt d n c chia thnh cc d n nh v c thc hin lp li trong tng bc thc hin. Mi d n nh u thc hin phn tch, thit k, ci t v kim th, v.v. Mi phn vic c pht trin tng trng v c d n cng c thc hin theo s tng trng ny. UP khng ch to ra mt h thng phn mm hon chnh m cn to ra mt s sn phm trung gian nh cc m hnh. Cc m hnh chnh trong UP l m hnh nghip v (ca s dng), m hnh khi nim, m hnh thit k, m hnh trin khai v m hnh trc nghim. Cc m hnh ny c s ph thuc theo vt pht trin, ngha l c th ln theo tng m hnh n c m hnh trc. 2.1.3 Gii thiu tng qut v UML UML c xy dng da chnh vo: Cch tip cn ca Booch (Booch Approach), K thut m hnh i tng (OMT Object Modeling Technique) ca Rumbaugh, Cng ngh phn mm hng i tng (OOSE Object-Oriented Software Engineering) ca Jacobson,

- 37 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

ng thi thng nht c nhiu k php, khi nim ca cc phng php khc. Qu trnh hnh thnh UML bt u t ngn ng Ada (Booch) trc nm 1990 (hnh 2-1).
Ada / Booch Booch 91 OOSE Jacobson Booch 93 OOSE 94 OMT 94 UML 0.9 Booch /Rumbaugh UML 0.9 Amigos

1990

OMT Rumbaugh

1995

1997
UML 1.0 UML 1.1

11/ 1997 c chp nhn

Hnh 2-1 S pht trin ca UML hiu v s dng tt UML trong phn tch, thit k h thng, i hi phi nm bt c ba vn chnh: 1. Cc phn t c bn ca UML, 2. Nhng qui nh lin kt gia cc phn t, cc qui tc c php, 3. Nhng c ch chung p dng cho ngn ng m hnh ho h thng.

- 38 -

Phn tch, thit k hng i tng bng UML 2.1.4 Cc phn t ca UML UML

on Vn Ban

Cc s vt

Cc mi quan h

Cc biu

Cc quan st

Cu trc

Hnh vi

Gp nhm Ch dn

Ca s dng S tng tc Gi Lp M hnh My trng Giao din H thng con thi Lp tch cc Khung cng vic Thnh phn

Cng tc Nt

Ca s dng Ca s dng Ph thuc Logic Lp Kt hp i tng Thnh phn Kt nhp Tng qut ho Trnh t S tng tranh Cng tc Trin khai (k tha) Trng thi Hot ng Thnh phn Trin khai

Hnh 2-2 Cc thnh phn c s ca UML Cc quan st Cc quan st (gc nhn) theo cc phng din khc nhau ca h thng cn phn tch, thit k. Da vo cc quan st thit lp kin trc cho h thng cn pht trin. C nm loi quan st: quan st theo ca s dng, quan st logic, quan st thnh phn, quan st tng tranh v quan st trin khai. Mi quan st tp trung kho st v m t mt kha cnh ca h thng (hnh 2-3) v thng c th hin trong mt s biu nht nh.
Quan st thnh phn Quan st ca s dng Quan st trin khai Quan st tng tranh Quan st logic

Hnh 2-3 Cc quan st ca h thng Quan st cc ca s dng (hay trng hp s dng): m t cc chc nng, nhim v ca h thng. Quan st ny th hin mi yu cu ca h thng, do vy n phi c xc nh ngay t u v n c s dng iu khin, thc y v thm nh hay kim tra cc cng vic ca tt c cc giai on ca c qu trnh pht trin phn mm. N cng l c s trao i gia cc thnh

- 39 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

vin ca d n phn mm v vi khch hng. Quan st ca s dng c th hin trong cc biu ca s v c th mt vi biu trnh t, cng tc, v.v. Quan st logic biu din cch t chc logic ca cc lp v cc quan h ca chng vi nhau. N m t cu trc tnh ca cc lp, i tng v s lin h ca chng th hin mi lin kt ng thng qua s trao i cc thng ip. Quan st c th hin trong cc biu lp, biu i tng, biu tng tc, biu bin i trng thi. Quan st logic tp trung vo cu trc ca h thng. Trong quan st ny ta nhn ra cc b phn c bn cu thnh h thng th hin mi qu trnh trao i, x l thng tin c bn trong h thng. Quan st thnh phn (quan st ci t) xc nh cc m un vt l hay tp m chng trnh v s lin h gia chng t chc thnh h thng phn mm. Trong quan st ny ta cn b sung: chin lc cp pht ti nguyn cho tng thnh phn, v thng tin qun l nh bo co tin thc hin cng vic, v.v. Quan st thnh phn c th hin trong cc biu thnh phn v cc gi. Quan st tng tranh (quan st tin trnh) biu din s phn chia cc lung thc hin cng vic, cc lp i tng cho cc tin trnh v s ng b gia cc lung trong h thng. Quan st ny tp trung vo cc nhim v tng tranh, tng tc vi nhau trong h thng a nhim. Quan st trin khai m t s phn b ti nguyn v nhim v trong h thng. N lin quan n cc tng kin trc ca phn mm, thng l kin trc ba tng: tng giao din (tng trnh din hay tng s dng), tng logic tc nghip v tng lu tr CSDL c t chc trn mt hay nhiu my tnh khc nhau. Quan st trin khai bao gm cc lung cng vic, b x l v cc thit b. Biu trin khai m t cc tin trnh v ch ra nhng tin trnh no trn my no. Cc s vt (cc phn t ca m hnh) UML c bn phn t m hnh, l cu trc, hnh vi, nhm v ch thch. Phn t cu trc: l cc danh t trong m hnh UML, biu din cho cc thnh phn khi nim hay vt l ca h thng. UML c by phn t cu trc c m t nh sau: + Lp. Lp l tp cc i tng cng chia s vi nhau v cc thuc tnh, thao tc, quan h v ng ngha. + Giao din. Giao din l tp cc thao tc lm dch v cho lp hay thnh phn. Giao din m t hnh vi quan st c t bn ngoi thnh phn. Giao din ch khai bo cc phng thc x l nhng khng nh ngha ni dung thc hin. N thng khng ng mt mnh m thng c gn vi lp hay mt thnh phn. + Phn t cng tc. Phn t cng tc m t ng cnh ca s tng tc trong h thng. N th hin mt gii php thi hnh trong h thng, bao gm cc lp, quan h v s tng tc gia chng thc hin mt ca s dng nh mong i.

- 40 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

+ Ca s dng. Ca s dng m t mt tp cc hnh ng m h thng s thc hin phc v cho cc tc nhn ngoi. Tc nhn ngoi l nhng g bn ngoi c tng tc, trao i vi h thng. + Lp tch cc. Lp tch cc c xem nh l lp c i tng lm ch mt hay nhiu tin trnh, lung hnh ng. + Thnh phn. Thnh phn biu din vt l m ngun, cc tp nh phn trong qu trnh pht trin h thng. + Nt. Nt th hin thnh phn vt l tn ti khi chng trnh chy v biu din cho cc ti nguyn c s dng trong h thng. Phn t m t hnh vi: l cc ng t ca m hnh, biu din hnh vi trong s tng tc ca cc thnh phn v s bin i trng thi ca h thng. C hai loi chnh l s tng tc v my bin i trng thi. + S tng tc. S tng tc l hnh vi bao gm mt tp cc thng ip trao i gia cc i tng trong mt ng cnh c th thc hin mt ca s dng. + My bin i trng thi. My bin i trng thi (tmt hu hn trng thi) ch ra trt t thay i trng tri khi cc i tng hay s tng tc s phi i qua p ng cc s kin xy ra. Phn t nhm: l b phn t chc ca m hnh UML. Phn t nhm c gi, m hnh v khung cng vic. + Gi (package). Gi l phn t a nng c s dng t chc cc lp, hay mt s nhm khc vo trong mt nhm. Khng ging vi thnh phn (component), phn t gi hon ton l khi nim, c ngha l chng ch tn ti trong m hnh vo thi im pht trin h thng ch khng tn ti vo thi im chy chng trnh. Gi gip ta quan st h thng mc tng qut. + M hnh. M hnh l nhng m t v cc c tnh tnh v/hoc ng ca cc ch th trong h thng. + Khung cng vic. Khung cng vic l mt tp cc lp tru tng hay c th c s dng nh l cc khun mu gii quyt mt h cc vn tng t. Ch thch: l b phn ch gii ca m hnh, gii thch v cc phn t, khi nim v cch s dng chng trong m hnh. Cc mi quan h UML cho php biu din c bn mi quan h gia cc i tng trong cc h thng. l cc quan h: ph thuc, kt hp, tng qut ho v hin thc ho. + Quan h ph thuc. y l quan h ng ngha gia hai phn t, trong su thay i ca mt t s tc ng n ng ngha ca phn t ph thuc. + Quan h kt hp. Kt hp l quan h cu trc xc nh mi lin kt gia cc lp i tng. Khi c mt i tng ca lp ny gi/nhn thng ip n/t ch i tng ca lp kia th hai lp c quan h kt hp. Mt dng

- 41 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

c bit ca quan h kt hp l quan h kt nhp, biu din mi quan h gia ton th v b phn. + Quan h tng qut ho. y l quan h m t s khi qut ho m trong mt s i tng c th (ca lp con) s c k tha cc thuc tnh, cc phng thc ca cc i tng tng qut (lp c s). + Hin thc ho. Hin thc ho l quan h ng ngha gia giao din v lp (hay thnh phn) thc hin ci t cc dch v c khai bo trong cc giao din. Cc biu Biu l th biu din ha v tp cc phn t trong m hnh v mi quan h ca chng. Biu cha ng cc ni dung ca cc quan st di cc gc khc nhau, mt thnh phn ca h thng c th xut hin trong mt hay nhiu biu . UML cung cp nhng biu trc quan biu din cc kha cnh khc nhau ca h thng, bao gm: Biu ca s dng m t s tng tc gia cc tc nhn ngoi v h thng thng qua cc ca s dng. Cc ca s dng l nhng nhim v chnh, cc dch v, nhng trng hp s dng c th m h thng cung cp cho ngi s dng v ngc li. Biu lp m t cu trc tnh, m t m hnh khi nim bao gm cc lp i tng v cc mi quan h ca chng trong h thng hng i tng. Biu trnh t th hin s tng tc ca cc i tng vi nhau, ch yu l trnh t gi v nhn thng ip thc thi cc yu cu, cc cng vic theo thi gian. Biu cng tc tng t nh biu trnh t nhng nhn mnh vo s tng tc ca cc i tng trn c s cng tc vi nhau bng cch trao i cc thng ip thc hin cc yu cu theo ng cnh cng vic. Biu trng thi th hin chu k hot ng ca cc i tng, ca cc h thng con v ca c h thng. N l mt loi tmt hu hn trng thi, m t cc trng thi, cc hnh ng m i tng c th c v cc s kin gn vi cc trng thi theo thi gian. Biu hnh ng ch ra dng hot ng ca h thng, bao gm cc trng thi hot ng, trong t mt trng thi hot ng s chuyn sang trng thi khc sau khi mt hot ng tng ng c thc hin. N ch ra trnh t cc bc, tin trnh thc hin cng nh cc im quyt nh v s r nhnh theo lung s kin. Biu thnh phn ch ra cu trc vt l ca cc thnh phn trong h thng, bao gm: cc thnh phn m ngun, m nh phn, th vin v cc thnh phn thc thi.

- 42 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Biu trin khai ch ra cch b tr vt l cc thnh phn theo kin trc c thit k ca h thng. Cc khi nim c bn ca biu v cch xy dng cc biu trn phn tch, thit k h thng s c gii thu chi tit cc chng sau.

2.2 Cc khi nim c bn ca phng php hng i tng trong UML


pht trin c h thng theo m hnh, phng php la chn th vn quan trng nht l phi hiu r nhng khi nim c bn ca phng php . y chng ta cn thc hin phn tch, thit k h thng theo cch tip cn hng i tng, do vy trc ht phi nm bt c nhng khi nim c s nh: i tng, lp, v cc mi quan h gia cc lp i tng. Nhng khi nim ny cng l cc phn t c bn ca ngn ng m hnh ha thng nht UML. M hnh hng i tng c s dng pht trin phn mm da trn m hnh d liu tru tng v khi nim lp ch ra nhng c tnh chung cc cu trc d liu c s dng m hnh ho h thng. H thng cc khi nim c bn ca phng php hng i tng c m t nh trong hnh 2-4. 2.2.1 Cc i tng i tng l khi nim c s quan trng nht ca cch tip cn hng i tng. i tng l mt khi nim, mt s tru tng ho hay mt s vt c ngha trong bi ton ang kho st. chnh l cc mc m ta ang nghin cu, ang tho lun v chng. i tng l thc th ca h thng, ca CSDL v c xc nh thng qua nh danh ca chng. Thng thng cc i tng c m t bi cc danh t ring (tn gi) hoc c tham chiu ti trong cc m t ca bi ton hay trong cc tho lun vi ngi s dng. C nhng i tng l nhng thc th c trong th gii thc nh ngi, s vt c th, hoc l nhng khi nim nh mt cng thc, hay khi nim tru tng, v.v. C mt s i tng c b sung vo h thng vi l do phc v cho vic ci t v c th khng c trong thc t. i tng l nhng thc th c xc nh trong thi gian h thng hot ng. Trong giai on phn tch, ta phi m bo rng cc i tng u c xc nh bng cc nh danh. n khu thit k, ta phi la chn cch th hin nhng nh danh theo cch ghi a ch b nh, gn cc s hiu, hay dng t hp mt s gi tr ca mt s thuc tnh biu din. Theo quan im ca ngi lp trnh, i tng c xem nh l mt vng nh c phn chia trong my tnh lu tr d liu (thuc tnh) v tp cc hm thao tc trn d liu c gn vi n. Bi v cc vng nh c phn hoch l c lp vi nhau nn cc i tng c th tham gia vo nhiu chng trnh khc nhau m khng nh hng ln nhau.

- 43 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

K tha Lp Hm Bao gi Quan h i tng Thng ip a x C th

Hnh 2-4 Nhng khi nim c bn ca phng php hng i tng 2.2.2 Lp i tng i tng l th hin, l mt i biu ca mt lp. Lp l mt m t v mt nhm cc i tng c nhng tnh cht (thuc tnh) ging nhau, c chung cc hnh vi ng x (thao tc gn nh nhau), c cng mi lin quan vi cc i tng ca cc lp khc v c chung ng ngha trong h thng. Lp chnh l c ch c s dng phn loi cc i tng ca mt h thng. Lp thng xut hin di dng nhng danh t chung trong cc ti liu m t bi ton hay trong cc tho lun vi ngi s dng. Cng nh cc i tng, lp c th l nhng nhm thc th c trong th gii thc, cng c nhng lp l khi nim tru tng v c nhng lp c a vo trong thit k phc v cho ci t h thng, v.v. Lp v mi quan h ca chng c th m t trong cc biu lp biu i tng v mt s biu khc ca UML. Trong biu lp, lp c m t bng mt hnh hp ch nht, trong c tn ca lp, c th c cc thuc tnh v cc hm (phng thc) nh hnh 2-5.

a/ Tn ca lp

b/ Tn v thuc tnh c/ Tn, thuc tnh v phng thc Hnh 2-5 Cc k hiu m t lp trong UML

Chng ta nn t tn theo mt qui tc thng nht nh sau: + Tn ca lp th ch ci u ca tt c cc t u vit hoa, v d: SinhVien, HocSinh, KhachHang, v.v. + Tn ca i tng, tn ca thuc tnh th vit hoa ch ci u ca cc t tr t u tin, v d: hoTen, danhSachSV, v.v.

- 44 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

+ Tn ca hm (phng thc) vit ging nh tn ca i tng nhng c thm cp ngoc n ( v ), v d: hienThi(), nhapDiem(), v.v. Trong biu giai on phn tch, mt lp c th ch cn c tn lp, tn v thuc tnh, hoc c c tn gi, thuc tnh v cc phng thc nh hnh 2-5. 2.2.3 Cc gi tr v cc thuc tnh ca i tng Gi tr (value) l mt phn ca d liu. Cc gi tr thng l cc s hoc l cc k t. Thuc tnh ca i tng l thuc tnh ca lp c m t bi gi tr ca mi i tng trong lp . V d
sv1: SinhVien hoTen = Van Ba tuoi = 20

Hnh 2-6 K hiu i tng trong UML Van Ba v 20 l hai gi tr tng ng vi hai thuc tnh hoTen, tuoi ca i tng sv1 trong lp SinhVien. Khng nn nhm ln gi tr vi i tng. Cc i tng c nh danh ch khng phi l cc gi tr. C th c ba sinh vin cng tn Van Ba, nhng trong h thng cc sinh vin ny phi c qun l theo nh danh xc nh duy nht tng i tng. Gi tr c th l cc gi tr ca cc kiu d liu nguyn thu nh cc kiu s hoc cc kiu xu k t, hoc l tp hp ca cc gi tr nguyn thu. Cc d liu thnh phn ca mt lp c th c bao gi thng qua cc thuc tnh qun l s truy nhp phc v vic che giu thng tin ca phng php hng i tng. Trong UML ta c th s dng cc k hiu c t cc thuc tnh . K hiu: + ng trc tn thuc tnh, hm xc nh tnh cng khai (public), mi i tng trong h thng u nhn thy c. Ngha l mi i tng u c th truy nhp c vo d liu cng khai. Trong Rose [17] k hiu l kho khng b kho. # ng trc tn thuc tnh, hm xc nh tnh c bo v (protected), ch nhng i tng c quan h k tha vi nhau nhn thy c. Trong Rose k hiu l kho b kho, nhng c cha bn cnh. - ng trc tn thuc tnh, hm xc nh tnh s hu ring (private), ch cc i tng trong cng lp mi nhn thy c. Trong Rose k hiu l kho b kho v khng c cha bn cnh. Trong trng hp khng s dng mt trong ba k hiu trn th l trng hp mc nh. Thuc tnh qun l truy cp mc nh ca nhng h thng khc nhau c th khc nhau, v d trong C++, cc thuc tnh mc nh trong lp c qui nh l private, cn trong Java li qui nh khc, l nhng thuc tnh rng hn private.

- 45 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Nhng thuc tnh trn thit lp quyn truy cp cho mi i tng trong cc lp, cc gi, cc h thng con ca h thng phn mm [2, 3]. 2.2.4 Cc thao tc v phng thc Thao tc l mt hm hay th tc c th p dng (gi hm) cho hoc bi cc i tng trong mt lp. Khi ni ti mt thao tc l ngm nh ni ti mt i tng ch thc hin thao tc . V d, thao tc (hm) hienThi() ca lp MonHoc khi gi hin th cc v sinh vin hc mt mn hc c th nh Lp trnh hng i tng chng hn. Mt phng thc l mt cch thc ci t ca mt thao tc trong mt lp [14]. Mt s thao tc c th l a x, c np chng, ngha l n c th p dng cho nhiu lp khc nhau vi nhng ni dung thc hin c th khc nhau, nhng cng tn gi. V d lp ThietBi c hm tinhGia(). Hm ny c th np chng, bi v c nhiu phng thc (cng thc) tnh gi bn khc nhau tu thuc vo tng loi thit b. Tt c cc phng thc ny u thc hin mt nhim v tinhGia(), nhng c ci t vi ni dung (cc on chng trnh) khc nhau. H thng hng i tng t ng chn phng thc tng ng vi ng cnh ca i tng ch thc hin. Tng t nh cc d liu thnh phn, cc phng thc cng c qun l truy cp v c k hiu nh trn. Lu : Mt s tc gi ([10], [11], [15]) khng phn bit thao tc, hm vi phng thc m c th ng nht chng vi nhau trong qu trnh phn tch, thit k v lp trnh. Trong cc phn sau chng ta gi chung l hm hoc hm thnh phn.

2.3 Cc mi quan h gia cc lp


H thng hng i tng l tp cc i tng tng tc vi nhau thc hin cng vic theo yu cu. Quan h l kt ni ng ngha gia cc lp i tng, trong th hin mi lin quan v cc thuc tnh, cc thao tc ca chng vi nhau trong h thng. Cc quan h ny c th hin chnh trong biu lp. Gia cc lp c nm quan h c bn: Quan h kt hp, Quan h kt nhp, Quan h tng qut ha, k tha, Quan h ph thuc, Hin thc ho. hiu r hn v cc mi quan h trong h thng, trc tin chng ta cn phn bit cc mi quan h gia cc lp v gia cc i tng vi nhau. 2.3.1 S lin kt v kt hp gia cc i tng Mt lin kt l mt s kt ni vt l hoc logic gia cc i tng vi nhau. Phn ln cc lin kt l s kt ni gia hai i tng vi nhau. Tuy nhin cng c nhng lin kt gia ba hoc nhiu hn ba i tng. Nhng cc ngn ng lp trnh hin nay hu nh ch ci t nhng lin kt (php ton) nhiu nht l ba ngi.

- 46 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Mt s kt hp l mt m t v mt nhm cc lin kt c chung cu trc v ng ngha nh nhau. Vy, lin kt l mt th hin ca lp. Lin kt v kt hp thng xut hin dng cc ng t trong cc ti liu m t bi ton ng dng. Hnh 2-7 m t cc k hiu cho quan h lin kt v kt hp.
NoiBai: SanBay maSo = HN1 tenGoi = Sn bay quc t phc v HaNoi: TinhThanh tenGoi = Thu H Ni soDan = 5000000 GiaLam: SanBay maSo = HN2 tenGoi = Sn bay ni a

phc v

Hnh 2-7 (a) Lin kt gia cc i tng Hai i tng thuc lp SanBay: Ni Bi v Gia Lm cng lin kt vi i tng H Ni ca lp TinhThanh theo quan h phc v. Quan h lin kt gia hai i tng c biu din bng on thng ni chng vi nhau v c tn gi (nhn ca quan h). Nhn ca cc quan h thng l cc ng t. Khi mun biu din cho quan h mt chiu th s dng mi tn ch r hng ca quan h.
SanBay maSo tenGoi phc v TinhThanh tenGoi danSo

Hnh 2-7 (b) Quan h kt hp gia cc lp Khi m hnh khng c s nhp nhng th tn ca quan h kt hp l tu chn. S nhp nhng s xut hin khi gia hai lp c nhiu quan h kt hp, v d: gia lp NhanVien v lp CongTy c hai quan h lm vic v c c phn trong. Khi c nhiu quan h nh th th nn gn tn vo mi ng ni hoc tn ca vai tr mi u ca quan h trnh s nhp nhng.
Lm vic C c phn trong

NhanVien hoTen nhiemVu

CongTy tenGoi taiKhoan

Hnh 2-7 (c) Quan h kt hp gia cc lp Lu : khng nn nhm ln lin kt vi gi tr. Gi tr l d liu nguyn thu nh l d liu s hoc xu k t. Lin kt l mi lin quan gia hai i tng. Trong giai on phn tch ta phi m hnh (xc nh) tt c cc tham chiu ti cc i tng thng qua cc lin kt

- 47 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

v nhn dng c cc nhm lin kt tng t thng qua cc quan h kt hp. n giai on thit k ta c th chn cu trc con tr, kho ngoi, hoc mt s cch khc ci t nhng quan h . V d: m hnh phn tch hnh 2-7 (b) c pht trin sang giai on thit k nh sau:
SanBay maSo tenGoi TinhThanh tenGoi danSo cacSanBay

Hnh 2-8 M hnh thit k cc lp Trong , lp TinhThanh c thm thuc tnh cacSanBay c th l danh sch hoc l cu trc mng, hay con tr, v.v. Ta cng c th thit k theo cch khc, thay v b sung thuc tnh cacSanBay vo lp TinhThanh th b sung oTinhThanh vo lp SanBay. 2.3.2 Bi s Quan h kt hp thng l quan h hai chiu: mt i tng kt hp vi mt s i tng ca lp khc v ngc li. xc nh s cc i tng c th tham gia vo mi u ca mi quan h ta c th s dng khi nim bi s. Bi s xc nh s lng cc th hin (i tng) ca mt lp trong quan h kt hp vi lp khc. Cng cn phn bit bi s (hay bn s) vi lc lng. Bi s l rng buc v kch c ca mt tuyn tp, cn lc lng l m s phn t ca tuyn tp . Do , bi s l s rng buc v lc lng ca cc phn t trong mt lp tham gia vo quan h xc nh trc. Trong UML cc bi s c biu din nh sau:
1

LopA LopA LopA LopA

Chnh xc 1 (nu khng nhp nhng c th khng in s 1) Nhiu (khng hoc nhiu) S lng c xc nh gia s n v k ( 0). S lng c xc nh bi s n cho n nhiu (n 0).

n..k n..*

phn bit chiu ca quan h kt hp ta c th s dng mi tn ch chiu kt hp. V d: Nguoi 1 ..* c 0 ..* s hu ca Hnh 2-9 Quan h kt hp hai chiu gia hai lp Oto

- 48 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Hnh 2-9 m t nh sau: mi ngi trong lp Nguoi c th khng c hoc c nhiu t (thuc lp Oto) v ngc li mt t phi l s hu ca t nht mt ngi no thuc lp Nguoi. 2.3.3 Cc vai tr trong quan h Vai tr l tn gi mt nhim v thng l mt danh t, c gn cho mt u ca quan h kt hp. Hnh 2-10 m t hai lp SanBay v lp CacChuyenBay c quan h kt hp vi nhau. Mt sn bay c th l im n ca chuyn bay ny v li c th l im xut pht ca chuyn bay khc. Ngc li mt chuyn bay bao gi cng phi bay t mt sn bay ny ti mt sn bay khc. SanBay
maSo tenGoi Ni xut pht Ni n

* *

CacChuyenBay
soHieuChuyen Bay lichBay

Hnh 2-10 Vai tr trong cc quan h kt hp Khi m hnh khng c s nhp nhng th tn ca vai tr l tu chn. S nhp nhng s xut hin khi gia hai lp c nhiu quan h nh hnh 2-10, hoc khi mt lp li c quan h vi chnh n (quan h qui). V d: mt ngi c th l con ca hai ngi (cha-m) v hai cha -m li c th c nhiu con. Quan h ny c th m t nh trong hnh 2-11. Nguoi
+ tenGoi - tuoi con Cha-m 2

Hnh 2-11 Vai tr trong cc quan h kt hp 2.3.4 Quan h kt nhp Kt nhp l mt loi ca quan h kt hp, tp trung th hin quan h gia tng th v b phn. Kt nhp thng biu din cho quan h c mt, l b phn ca , hoc bao gm, v.v. th hin mi quan h mt lp tng th c, gm, cha hay lin kt vi mt hoc nhiu lp thnh phn. Ngi ta chia quan h kt nhp thnh ba loi: Kt nhp thng thng Kt nhp chia s v Kt nhp hp thnh hay quan h hp thnh.

- 49 -

Phn tch, thit k hng i tng bng UML 1. Kt nhp thng thng

on Vn Ban

Quan h kt nhp thng thng, gi tt l kt nhp th hin mi lin kt gia hai lp, trong i tng ca lp ny bao gm mt s i tng ca lp kia, song khng tn ti trong ni ti ca lp . Lp pha b phn cng ch l mt b phn logic ca pha tng th v chng khng c chia s vi cc lp khc. V d: mt hm i ca lp HamDoi gm mt s (3..10) tu chin ca lp TauChien, nhng tu chin khng cha trong lp HamDoi. Vy, lp HamDoi c quan h kt nhp vi TauChien. UML s dng k hiu: biu din quan h kt nhp v lun c gn vi pha tng th. Hnh 2-12 th hin quan h gia lp HamDoi v lp TauChien.
HamDoi 3..10 TauChien

Hnh 2-12 Quan h kt nhp thng thng Trong quan h ny, vic qun l cc i tng ca cc lp lin quan l khc nhau. Ta c th loi b mt s tu chin ca mt hm i sao cho s cn li t nht l 3, tng t c th b sung vo mt s tu chin sao cho khng qu 10. Nhng khi loi b mt hm i th phi loi b tt c cc tu chin ca hm i v mi tu chin ch thuc mt hm i. 2. Kt nhp chia s Quan h kt nhp chia s l loi kt nhp, trong pha b phn c th tham gia vo nhiu pha tng th. V d: mt d n ca lp DuAn c nhiu nhn vin ca lp NhanVien tham gia v mt nhn vin c th tham gia vo nhiu (hai) d n. UML s dng k hiu: biu din quan h kt nhp chia s v lun c gn vi pha tng th. Hnh 2-13 th hin quan h gia lp DuAn v lp NhanVien.
DuAn 0.. 2 * NhanVien

Hnh 2-13 Quan h kt nhp thng thng Mi d n c th c nhiu ngi tham gia v mi ngi li c th tham gia nhiu nht l hai d n. Trong quan h ny, ta c th loi b, hay thnh lp mt d n (pha tng th) nhng khng nht thit phi loi b, hay phi tuyn thm nhng ngi tham gia (pha b phn) vo d n nh kiu kt nhp trn. Tuy nhin khi x l cc mi quan h th phi cp nht li cc mi lin kt ca cc nhn vin tham gia vo cc d n tng ng. 3. Kt nhp hp thnh Quan h ch ra mt vt c cha mt s b phn v cc b phn tn ti vt l bn trong vt tng th. Do vy khi thc hin hu b, hay thit lp mi bn tng th th cc b phn bn thnh phn cng s b hu b hoc phi c b sung. V d: lp

- 50 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Window cha cc lp Text, Menu v DialogBox. Trong UML c hai cch biu din quan h hp thnh nh sau:
* Window
* * *

Text

Text Menu

Window

cha

Menu

DialogBox

DialogBox

Hnh 2-14 Quan h kt nhp hp thnh 2.3.5 Quan h tng qut ho Tng qut ho v chuyn bit ho l hai cch nhn di/ln v trn/xung v s phn cp cc lp, m t kh nng qun l cp phc tp ca h thng bng cch tru tng ho cc lp. Tng qut ho l i t cc lp di ln sau hnh thnh lp tng qut (lp trn, lp cha), tc l cy cu trc cc lp t l n gc. Chuyn bit ho l qu trnh ngc li ca tng qut ho, n cho php to ra cc lp di (lp con) khc nhau ca lp cha. Trong UML, tng qut ho chnh l quan h k tha gia hai lp. N cho php lp con (lp di, lp k tha, hay lp dn xut) k tha trc tip cc thuc tnh v cc hm thuc loi cng khai, hay c bo v (protected) ca lp cha (lp c s, lp trn). Trong quan h tng qut ho c hai loi lp: lp c th v lp tru tng. Lp c th l lp c cc i din, cc th hin c th. Ngc li, lp tru tng l lp khng c th hin (i tng) c th trong h thng thc. Cc lp con chu ca lp tru tng c th l lp tru tng, tuy nhin trong cu trc phn cp theo quan h tng qut ho th mi nhnh phi kt thc bng cc lp c th (l ca cy cc lp). Ta c th nh ngha cc hm tru tng cho cc lp tru tng, l nhng hm cha c ci t ni dung thc hin trong lp chng c khai bo. Nhng hm tru tng ny s c ci t trong cc lp con chu sau nhng lp c th. V d: Lp NhanVien c k hiu {abstract} sau hoc di tn lp l lp tru tng, v do vy n khng c i tng c th. Hai lp con: lp NguoiBanHang v lp CongNhan l hai lp c th. Hai lp ny c nhng thuc tnh, thao tc ging lp NhanVien nh c cc thuc tnh: hoTen, diaChi v c cc hm tinhLuong(), hienThi(), ngoi ra mi lp cn c th b sung thm mt s thuc tnh, thao tc c t cho tng nhm i tng c th. Lp NguoiBanHang c b sung thm thuc tnh soluongBanDuoc cn lp CongNhan c b sung thuc tnh soLuongSanPham sn xut c. Cu trc phn cp ca lp NhanVien c xc nh nh hnh 2-15.

- 51 -

Phn tch, thit k hng i tng bng UML


{abstract}

on Vn Ban

Hnh 2-15 Lp tru tng v c th trong quan h tng qut ho Lu : Quan h tng qut v kt hp l hai quan h lin quan n hai lp, nhng chng c nhng im khc nhau. Quan h kt hp m t mi lin kt gia hai hoc nhiu hn i tng cn quan h khi qut m t cc phng din khc nhau ca cng mt th hin. Trong giai on phn tch, cc quan h kt hp l quan trng hn quan h tng qut ho. Kt hp b sung thm cc thng tin cho cc lp. Ngc li, tng qut ho l loi b nhng thng tin b chia s cc lp con chu v chng c k tha t lp cha. Trong giai on thit k th tng qut ho li quan trng hn. Ngi pht trin h thng quan tm pht hin ra nhng cu trc d liu khu phn tch v pht hin ra cc hnh vi khu thit k. Tng qut ho cung cp c ch s dng li th hin chnh xc cc hnh vi v m ho ca cc th vin ca cc lp. Quan h kt nhp v tng qut cng khc nhau. C hai u lm xut hin cu trc cy thng qua bao ng bc cu ca quan h c s, nhng quan h tng qut l mi quan h hoc (OR) cn quan h kt nhp l mi quan h v (AND). Hnh 2-16 m t s khc nhau ca quan h tng qut ho v kt nhp. TaiLieu Sach

Sach

TapChi

ChuongMot

ChuongHai

KetLuan

Hnh 2-16 Quan h tng qut ho ngc li vi quan h kt nhp 2.3.6 K tha bi K tha bi cho php mt lp c k tha cc thuc tnh, cc thao tc v cc quan h kt hp t nhiu lp c s. Trong quan h k tha bi c th dn n s pha trn thng tin t nhiu ngun d liu khc nhau t cc lp c k tha. Quan h k tha n, mt lp c k tha t mt lp c s, thng to ra cu trc cy, cn k tha bi li t chc cc lp thnh th nh hng phi chu trnh. K tha bi l c

- 52 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

ch mnh trong m hnh h thng, nhng ng thi cng s to ra nhiu s phc tp v tnh nhp nhng, khng nht qun d liu [24, 26]. K tha bi t nhng lp phn bit Mt lp c th k tha t nhiu lp c s khc nhau. V d lp Nguoi l c s to ra hai lp con: HDQuanTri (nhng ngi trong hi ng qun tr) v KinhDoanh (nhng ngi kinh doanh). T cc lp trn li xy dng cc lp BanGiamDoc, CoDong (nhng ngi ng c phn) k tha t lp HDQuanTri, lp NhanVienCT (nhng ngi lm vic thng xuyn trong cng ty) v NhanVienHD (nhng ngi lm vic theo hp ng) k tha t lp KinhDoanh. Trong Cng ty li c nhng ngi va l c ng, va l nhn vin. Nhng ngi chnh l cc i tng ca lp NhanVienCoDong k tha t hai lp con CoDong v NhanVienCongTy nh hnh 2-17(a). Nguoi

HDQuanTri

KinhDoanh

BanGiamDoc

CoDong

NhanVienCT

NhanVienHD

NhanVienCoDong Hnh 2-17(a) K tha bi t hai lp khc nhau v c lp c s chung K tha bi khng c lp c s chung K tha bi nh trn l k tha c lp c s chung (lp Nguoi). Chng ta c th to ra lp k tha bi t nhiu lp m chng li khng c lp c s chung. Loi k tha ny thng xut hin khi ta mun pha trn mt s chc nng ca cc lp th vin khc nhau. V d: chng ta hy xt m hnh ca chng trnh nh c. Trc khi i mt nc c, chng trnh phi nghin cu v tr ca cc qun c v cc nc i tip theo sao cho nc i l c th dn n chin thng nhanh nht. Trong hnh 2-13 (b), mi i tng ca lp SearchTree (cy tm kim) c th l i tng ca lp MoveSubtree (cy con cc nc i) hoc ca lp PossibleMove (lp cc nc c th chn). Bn thn lp MoveSubtree li c th cha cc SearchTree nh hn. Mi nc i ca lp Move li c th l nc i c th (PossibleMove) hoc lp cc nc i hin thi (ActualMove). Lp PossibleMove k tha hnh vi chung ca lp Move v lp SearchTree.

- 53 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

SearchTree

Move

MoveSubtree

PossibleMove

ActualMove

Hnh 2-17(b) K tha bi khng c lp c s chung 2.3.7 Quan h ph thuc S ph thuc l mt loi quan h lin kt gia hai phn t trong m hnh, trong th hin s thay i trong mt phn t s ko theo s thay i ca phn t kia. Quan h kt hp thng l quan h hai chiu, nhng quan h ph thuc li thng l quan h mt chiu, th hin mt lp ph thuc vo lp khc. Lp A ph thuc vo lp B khi: Lp A s dng mt i tng ca lp B nh l tham s trong cc thao tc (li gi hm), Trong cc thao tc ca lp A c truy nhp ti cc i tng ca lp B, Khi thc hin mt thao tc no trong lp A li phi tham chiu ti min xc nh ca lp B. Lp A s dng cc giao din ca lp B. Tng t, hai gi c th ph thuc vo nhau khi c mt lp mt gi ph thuc vo lp ca gi kia. Trong UML, quan h ph thuc c th hin bng mi tn t nt. V d, hnh 2-18 m t quan h ph thuc gia hai lp v ph thuc ca hai gi.
LpA LpB GiA GiB

Hnh 2-18 Quan h ph thuc gia cc lp v cc gi 2.3.7 Quan h hin thc ho Quan h hin thc ho th hin s kt ni gia cc lp v giao din. Quan h ny thng c s dng vi cc giao din v nhng lp lm nhim v ci t cc dch v (phng thc) c khai bo trong cc giao din. Quan h hin thc ho c k hiu l mi tn t nt nh hnh 2-19.
<<interface>> ChoiceBlock PopUpMenu

setDefault()
getChoice(): Choice

setDefault()
getChoice(): Button

Hnh 2-19 Quan h hin thc ho

- 54 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

2.4 Cc gi
hiu c nhng h thng ln, phc tp c nhiu lp i tng, thng chng ta phi c cch chia cc lp thnh mt s nhm c gi l gi. Gi l mt nhm cc phn t ca m hnh gm cc lp, cc mi quan h v cc gi nh hn. Cch t chc h thng thnh cc gi (h thng con) chnh l cch phn hoch m hnh thnh cc n v nh hn tr d hiu v d qun l hn. Gi c m t trong UML gm tn ca gi, c th c cc lp, gi nh khc v c k hiu nh hnh 2-20. GoiA LopA GoiA1 Hnh 2-20 Gi cc lp trong UML Khi phn chia cc lp thnh cc gi, chng ta c th da vo: cc lp chnh (lp thng tr), cc mi quan h chnh, cc chc nng chnh. Theo cch phn chia chng ta c th chia h thng thnh cc phn h ph hp vi cch phn chia trong h thng thc. V d, h thng qun l th vin c th t chc thnh bn gi: gi giao din, gi nghip v, gi CSDL v gi tin ch nh hnh 2-21. Trong , Gi giao din (UI User Interface): bao gm cc lp giao din vi ngi dng, cho cc kh nng quan st v truy nhp vo d liu. Cc i tng trong gi ny c th thc hin cc thao tc trn cc i tng tc nghip truy vn hay nhp d liu. Gi nghip v (Business Package): cha cc lp thc th thuc lnh vc bi ton ng dng. Gi CSDL: cha cc lp dch v cho cc lp gi tc nghip trong vic t chc, qun l v lu tr d liu. Gi tin ch: cha cc lp dch v cho cc gi khc ca h thng. Cc gi ca mt h thng thng c mi quan h vi nhau, nh quan h ph thuc.
Gi UI

LopB

Gi nghip v

Gi tin ch

Gi CSDL

Hnh 2-21 T chc cc gi ca h thng th vin

- 55 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

2.5 Cc qui tc rng buc v suy din


Trong m hnh ho h thng vi UML, ta c th s dng ngn ng rng buc i tng OCL [10] c t chnh xc cc phn t ca h thng v cc rng buc cht ch gia cc mi quan h, gii hn phm vi ca m hnh h thng cho ph hp vi iu kin rng buc thc t. Trong UML c hai qui tc chnh: 1. Qui tc rng buc c s dng gii hn phm vi ca m hnh, v d cc qui tc hn ch, qui nh r phm tr ca cc mi quan h nh kt hp, k tha hay kh nng np chng trong cc lp. 2. Qui tc suy dn ch ra cch cc s vt c th suy dn c t mt s cc thuc tnh khc, v d tui ca mt ngi c th suy ra c t ngy / thng / nm hin thi tr i ngy / thng / nm sinh. Lu : Cc qui tc rng buc v suy dn thng c t trong cp du ngoc { v } bn cnh nhng phn t ca m hnh, thng l cc thuc tnh, hay cc mi quan h cn phi tun theo. V d: 1/ Khi m t mi quan h gia hai lp DangPhai v ChinhTriGia, ta c th s dng qui tc rng buc khng ch cc i tng tham gia vo cc quan h . V d, trong cc ng phi chnh tr c qui nh rng lnh t ca mt ng phi l ng vin ca chnh ng . Khi quan h Ch tch ca mt ng phi l tp con {Subset} ca quan h ng vin ca ng v c m t trong UML nh hnh 222 (a). 1..*
ChinhTriGia

ng vin ca {Subset}

1
DangPhai

1 Ch tch ca 1 Hnh 2-22 (a) Mi rng buc gia hai quan h 2/ Cc thuc tnh c th b khng ch, b gii hn trong phm vi xc nh, v d: iu kin {0 mau 255} ch ra rng thuc tnh mau (mu) c gi tr trong phm vi cc s nguyn t 0 n 255. 3/ Mt s thuc tnh c th c suy dn t nhng thuc tnh khc. V d khi thit k lp SanPham c thuc tnh giaBan v giaSanXuat. Trong kinh doanh ta c th xc nh c ngay cch tnh li nhun loiNhuan = giaBan giaSanXuat. Cch tnh v nhng qui nh trn c th m t nh hnh 2-22 (b).

- 56 -

Phn tch, thit k hng i tng bng UML SanPham


giaBan giaSanXuat / loiNhuan

on Vn Ban

{loiNhuan = giaBan - giaSanXuat}

Hnh 2-22 (b) Qui tc suy dn trong OCL Trong hnh trn, k hiu / c s dng ch ra rng thuc tnh loiNhuan l c suy dn ra theo qui tc c gn bn cnh ca lp SanPham. Lu : Quan h tng qut ho ch p dng vi cc qui tc hn ch (b rng buc) ch khng p dng c vi qui tc suy dn, ngha l c th c np chng, ri nhau, tng qut ho ton b hay mt phn. Cc qui tc hn ch c th vit di dng cc biu thc vi ton t . (ton t xc nh thnh phn) nh trong cc ngn ng lp trnh hng i tng. V d: HopDongBaoHiem.soNguoiMuaBH > 0 Oto.NguoiLai.bangLaiXe = True Tm li, thc hin phn tch v thit k hng i tng bng UML l phn tch cc yu cu, cc thnh phn ca h thng xy dng cc biu m t cc yu cu, khi nim v kin trc ca h thng. Qu trnh xy dng cc biu c th thc hin nh trong hnh 2-23.

Biu ca s dng

Biu trnh t

Biu cng tc

Biu trng thi

Biu lp

Biu hnh ng

Biu thnh phn

Biu trin khai

Hnh 2-23 Qui trnh xy dng cc biu UML trong phn tch, thit k h thng

- 57 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Chi tit v cc biu v cch xy dng chng nh th no s c cp cc chng sau.

2.7 Rational Rose v qu trnh pht trin phn mm thng nht


Rational Rose [17] l phn mm cng c mnh h tr cho qu trnh phn tch, thit k h thng hng i tng. N gip cho vic m hnh ho h thng trc khi vit chng trnh, ng thi c kh nng kim tra m bo tnh ng n, hp l ca kin trc h thng t khi khi u d n. Rose h tr xy dng cc biu UML m hnh ho cc lp, cc thnh phn v mi quan h ca chng trong h thng mt cch trc quan v thng nht. N cho php m t chi tit h thng bao gm nhng ci g, trao i tng tc vi nhau v hot ng nh th no ngi pht trin h thng c th s dng m hnh nh k hoch chi tit cho vic xy dng h thng. Rose cn h tr rt tt trong giao tip vi khch hng v lm h s, ti liu cho tng phn t trong m hnh. Rose h tr cho vic kim tra tnh ng n ca m hnh, thc hin vic chuyn bn thit k chi tit sang m chng trnh trong mt ngn ng lp trnh la chn v ngc li, m chng trnh c th chuyn tr li yu cu h thng. Rose h tr pht sinh m khung chng trnh trong nhiu ngn ng lp trnh khc nhau nh: C++, Java, Visual Basic, Oracle 8, v.v. Ngoi ra Rose h tr cho cc nh phn tch, thit k v pht trin phn mm: T chc m hnh h thng thnh mt hay nhiu tp, c gi l n v iu khin c. Cho php pht trin song song cc n th iu khin c ca m hnh, H tr m hnh dch v nhiu tng (ba tng) v m hnh phn tn, c ch khch/ch (Client/Server). Cho php sao chp hay chuyn dch cc tp m hnh, cc n v iu khin c gia cc khng gian lm vic khc nhau theo c ch nh x ng dn o (Virtual Path Map), Cho php qun l m hnh v tch hp vi nhng h thng iu khin chun, Rose cung cp kh nng tch hp vi ClearCase v Microsoft Visual SourceSafe, v.v. S dng cc b tch hp m hnh (Model Integator) so snh v kt hp cc m hnh, cc n v iu khin c vi nhau. Bn thn UML khng nh ngha qu trnh pht trin phn mm, nhng UML v Rose h tr rt hiu qu trong c qu trnh xy dng phn mm.

- 58 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Bi tp v cu hi
2.1 Vai tr ca UML trong m hnh ho h thng? 2.2 C bao nhiu loi biu trong UML, nu tm tt nhim v ca chng?. 2.3 Nu nhng khi nim c s ca phng php hng i tng v cc k hiu ca chng trong UML. 2.4 Qu trnh pht trin phn mm l g, nu cc pha chnh cn thc hin theo cch tip cn hng i tng. 2.5 Tm hiu vai tr ca Rational Rose trong qu trnh pht trin phn mm thng nht. 2.6 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v ngn ng m hnh ho UML. UML l ngn ng m hnh ho, trc ht n m t [(1)], ng ngha cc nh ngha trc quan tt c cc thnh phn ca [(2)]. UML c s dng hin th, c t, t chc, xy dng v [(3)] cc vt phm (artifacts) ca [(4)], c bit l phn tch, thit k di dng cc bo co, biu , bn mu hay cc trang web, v.v. UML l ngn ng [(2)] ho c lp vi cc cng ngh pht trin [(5)]. Chn cu tr li: a. qu trnh pht trin phn mm hng i tng b. qu trnh x l c. m hnh d. k php thng nht e. phn mm 2.7 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v khi nim lp. i tng l mt th hin ca mt [(1)]. Lp l mt m t v mt nhm cc i tng c nhng [(2)], c chung cc [(3)], c [(4)] vi cc i tng ca cc lp khc v c chung ng ngha trong h thng. [(1)] chnh l c ch c s dng phn loi cc i tng ca mt h thng. Lp thng xut hin di dng nhng [(5)] trong cc ti liu m t bi ton hay trong cc tho lun vi ngi s dng. Cng nh cc i tng, lp c th l nhng nhm cc thc th c trong th gii thc, cng c nhng lp l khi nim tru tng v c nhng lp c a vo trong thit k phc v cho ci t h thng, v.v. Chn cu tr li: a. hnh vi ng x b. cng mi quan h c. lp d. tnh cht (thuc tnh) ging nhau e. danh t chung

- 59 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

CHNG III

BIU CA S DNG PHN TCH CC NHU CU CA H THNG


Chng III gii thiu: Xc nh nhu cu ca bi ton ng dng, Cc thnh phn ca biu ca s dng: ca s dng, tc nhn ngoi, Phng php xc nh, phn tch cc yu cu ca h thng v biu ca s dng, Cch xy dng biu ca s dng c t cc yu cu.

3.1 nh ngha bi ton


y l bc m u ca qu trnh pht trin h thng, nhim v ch yu l xc nh cc nhu cu ca bi ton. Nhu cu l m ca mi sng to, cho nn sng to ra mt h thng mi, ngi pht trin trc ht phi lm quen, hiu r chuyn mn, nm vng c qui trnh nghip v m h thng phi p ng v tm hiu, tp hp cc nhu cu ca h thng. Sau y chng ta nh ngha bi ton lm c s m t cch thc hin phn tch v thit k h thng phn mm hng i tng. Bi ton c m t nh sau: Bi ton: Mt Cng ty mun xy dng H thng phn mm phc v v qun l cc hot ng kinh doanh, bn hng. Cng ty c nhiu im bn hng u cui (POST: Point Of Sale Terminal0), l nhng ca hng siu th, do vy h thng cn phi ghi nhn cc hot ng bn hng v x l cc cng vic thanh ton vi khch hng, ch yu khch hng mua l. Ngoi ra h thng cn gip Gim c Cng ty theo di c cc hot ng kinh doanh, t ng kim k cc mt hng tn ng trong kho, cc mt hng bn chy, v.v. h tr ra quyt nh trong cc hot ng kinh doanh ca Cng ty. Trong mi ca hng u cui u c cc thit b phn cng nh: my tnh, my c m vch v phn mm h thng cn thit. H thng bn hng vit tt l HBH, l chng trnh phn mm c s dng ghi li cc phin bn hng, x l v thanh ton nhanh vi khch hng, ch yu l phc v khch hng mua l. Thng thng th mt h thng mi c xy dng l nhm thay th cho mt h thng c bc l nhiu iu bt cp. Chnh v th m vic tm hiu nhu cu vi h thng mi thng bt u t vic kho st v nh gi h thng c. Mc ch ca HBH Tng nhanh hoc t ng ho vic bn hng, ghi nhn cc mt hng: loi sn phm, m t sn phm, s lng v xc nh gi bn, tnh tin, v.v., p ng mi yu cu ca khch hng,

- 60 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Thanh ton nhanh vi khch hng bng cc phng thc: tin mt, th tn dng (Credit Card), hay sc (Check), Phn tch, x l cc kt qu bn hng nhanh v chnh xc h tr quyt nh trong cc hot ng kinh doanh, Thc hin t ng kim k cc mt hng trong kho, theo di c nhng mt hng bn chy, nhng mt hng tn kho c c nhng quyt nh kp thi trong kinh doanh. Tm li, h thng xy dng nhm t ng ho cc hot ng kinh doanh, phc v khch hng nhanh hn, tt hn v r hn. Cc chc nng, nhim v ca h thng Chc nng ca h thng l nhng g m h thng c yu cu thc hin. Nhim v X s l chc nng ca h thng nu trong m t bi ton c mnh dng: H thng phi thc hin X. Tt nhin trong giai on ny, cc tnh cht, cc yu cu v cht lng h thng nh tnh hiu qu, an ton h thng cha cn xem xt, ngha l cha xt ti cc c tnh phi chc nng ca h thng. Cc chc nng ca h thng c th phn loi thnh cc phm tr theo cc lnh vc chc nng hay theo nhng mc u tin khc nhau trnh s ln ln gia chng. Cc chc nng h thng c th chia thnh hai loi: Nhng chc nng hin: Nhng chc nng cn thc hin v NSD c th nhn bit, theo di c s hot ng ca chng. V d: khi ngi bn nhp cc mt hng m khch chn mua trong gi hng vo h thng th mi thng tin lin quan n tn gi sn phm, s lng, gi bn, v.v. u phi c hin ln mn hnh v khch hng c th theo di mt cch tng minh. Nhng chc nng n: Nhng chc nng cn thc hin v NSD khng theo di c. Thng l nhng chc nng k thut nh nhng cng vic t chc lu tr, x l d liu m bo s bn vng d liu trong cc CSDL. V d: sau mi phin bn hng, ngha l sau khi khch tr tin mua hng, h thng bn hng HBH phi thc hin cp nht li s lng ca nhng mt hng va bn c. Nhng hot ng ny NSD khng theo di c. Mt s chc nng tu chn: Nhng chc nng c th b sung tng thm mc thn thin, tin dng cho h thng nhng khng nh hng ti gi tr cng nh cc chc nng khc ca h thng. Cc chc nng ca h thng phi c chia thnh cc nhm theo cc mi lin h c kt vi nhau. Da vo cch phn chia cc chc nng sau ny chia nh h thng thnh cc gi, cc h thng con trong qu trnh phn tch v thit k h thng. V d: Cc chc nng ca h thng HBH c th chia thnh hai nhm chnh: cc chc nng bn hng (cc chc nng c s) v cc chc nng thanh ton.

- 61 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Da trn nhng kt qu kho st bi ton bn hng, nghin cu cc s sch, ti liu v trn c s trao i vi nhng ngi bn hng, vi khch hng, v.v. chng ta xc nh c cc chc nng chnh ca h thng nh sau:
Qui tc # Chc nng Loi

R1.1
R1.2 R1.3

Ghi nhn cc mt hng trong gi hng m khch hng chn. Tnh tng s tin bn cho khch hng ang mua. Nhp cc thng tin v cc mt hng qua m vch bng my c m vch hoc nhp m sn phm (UPC Universal Product Code) trc tip t bn phm. Cp nht, tr bt s lng bn sau tng phin bn hng. Kt thc mt phin bn hng. Ngi bn hng (cashier) phi login khi ng h thng (cho bit tn ID v password) s dng h thng. Cung cp mt c ch lu tr nht qun, CSDL. Cung cp c ch trao i gia cc tin trnh, trao i thng tin gia cc h thng vi nhau. Hin th cc thng tin m t v gi bn cc mt hng khch hng c th theo di c.

Hin Hin Hin

R1.4 R1.5 R1.6 R1.7 R1.8 R1.9

n n Hin n n Hin

Nhng chc nng thc hin thanh ton vi khch hng.


Qui tc # R2.1 R2.2 Chc nng Thu tin mt, nhp s tin khch a v tnh s d phi tr li cho khch hng. Thu tin bng th tn dng (Credit), nhp thng tin ca th tn dng ca khch qua my c th hoc nhp trc tip t bn phm. Thu tin bng sc, nhp s hiu v s tin ca t Check, tnh s d phi tr li cho khch. Loi Hin Hin

R2.3

Hin

Cc chc nng h thng thng c nh s theo cc qui tc tham chiu (Reference Rule) tin cho vic s dng tham chiu trong cc mc phn tch sau ny. Ch : Trong nh s cc mc, phn, hay qui tc, v.v. chng ta s dng thng nht qui tc nh s du chm (.) nh trong cc ti liu vn s dng. Cc thuc tnh ca h thng Thuc tnh ca h thng l nhng yu cu phi chc nng (Non-functional Requirement), l nhng rng buc, nhng gii hn v nhng yu cu k thut m ngi pht trin h thng phi tun theo.

- 62 -

Phn tch, thit k hng i tng bng UML H thng HBH phi c cc thuc tnh sau:

on Vn Ban

Thi gian x l v tr li nhanh, v d: khi nhp vo m tng mt hng (my c m vch, hay t bn phm) th cc thng tin v sn phm, gi bn phi c hin th ngay tc th (sau 5 giy chng hn). D s dng vi nhng giao din ho thn thin ph hp vi ngi bn hng: nh cc window v cc hp thoi, v.v. H thng thc hin trn nhng h iu hnh ph dng nh Microsoft Window 95, 98, 2000, NT, Unix, Linux, v.v. Ngoi ra cn nhiu tnh cht khc ca h thng phn mm nh nu chng I m h thng cng s cn phi p ng.

3.2 Phn tch v c t cc yu cu h thng


3.2.1 Ca s dng Khi nim ca s dng, hay trng hp s dng (Use Case) c Ivan Jacobson xut t nm 1994 nhm m t cc dch v ca h thng cho khch hng v xc nh mi quan h tng tc gia h thng phn mm vi NSD trong nghip v. Mt cch hnh thc hn, ca s dng m t tp cc hot ng ca h thng theo quan im ca cc tc nhn (Actor). N m t cc yu cu ca h thng v tr li cho cu hi: H thng phi lm ci g (What ?). Ca s dng m t mt qu trnh t bt u cho n khi kt thc, gm dy cc thao tc, cc giao dch cn thit sn sinh ra ci g (gi tr, thng tin) theo yu cu ca mt t chc, ca tc nhn, v.v. Ca s dng c k hiu l: Hot ng Hnh 3-1 K hiu ca ca s dng Trong , Hot ng l cc chc nng, nhim v hay gi chung l dch v ca h thng v n thng c m t bng cc ng t, hay mnh ng t n, v d: bn hng, thanh ton, khi ng h thng, v.v. Nhng ca s dng phc tp s c m t chi tit thng qua cc kch bn. Mc tiu ca ca s dng trong c qu trnh pht trin phn mm: M t cc yu cu chc nng ca h thng, l kt qu ca qu trnh kho st, nghin cu cc yu cu ca bi ton v nhng tho thun gia khch hng, NSD h thng vi ngi pht trin phn mm. Lm c s ngi phn tch vin hiu, ngi thit k xy dng cc kin trc, ngi lp trnh ci t cc chc nng ca h thng,

- 63 -

Phn tch, thit k hng i tng bng UML Cung cp cc c s kim duyt, th nghim h thng.

on Vn Ban

Cc ca s dng ng vai tr rt quan trng trong c qu trnh pht trin phn mm, tt c cc pha phn tch, thit k sau ny u da vo cc ca s dng. Nh vy, qu trnh c hng dn bi ca s dng l mt cch hu hiu m hnh ho h thng vi UML. Hnh 3-2 ch cho chng ta thy ai s cn n ca s dng v cn lm g. Ngi s dng phi nu c cc yu cu ca h thng, phn tch vin phi hiu c cc cng vic ca h thng, ngi thit k (kin trc s) phi kin trc s phi a ra c cc thnh phn thc hin cc ca s dng, ngi lp trnh thc hin ci t chng v cui cng nhn vin kim tra h thng da vo nhng ca s dng . Din t yu cu Ngi s dng Hiu Phn tch vin
Ca s dng

Kim tra Ngi kim tra

Ci t Thit k Ngi thit k

Lp trnh vin

Hnh 3-2 Vai tr ca ca s dng trong qu trnh pht trin phn mm 3.2.2 Tc nhn Tc nhn ngoi, hay gi ngn gn l tc nhn l nhng thc th bn ngoi c tng tc vi h thng, bao gm ngi, vt, thit b hay cc h thng khc c trao i thng tin vi h thng. Ni cch khc, tc nhn i din cho ngi hay mt b phn ca t chc mong mun nhn c cc thng tin (d liu) hoc cc cu tr li t nhng ca s dng tng ng. V d: Khch mua hng, ngi bn hng l hai tc nhn ca HBH. K hiu ca tc nhn l hnh nhn cng vi tn gi nh hnh 3-3.

Khch hng

Hnh 3-3 K hiu tc nhn Khch hng Tn gi ca tc nhn c m t bng cc danh t (chung) v thng phi nu c vai tr ca n i vi h thng. Tc nhn trao i vi h thng thng qua vic tng tc, s dng cc dch v ca h thng l cc ca s dng bng cch trao i cc thng ip. Nh vy, tc nhn s cung cp hoc s dng cc thng tin ca h thng thng qua cc ca s dng.

- 64 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Thanh ton tin mt Thanh ton Khch hng

Hnh 3-5 Tc nhn Khch hng tng tc vi ca s dng Thanh ton Thng thng trong mi h thng, khch hng, NSD, ngi qun l, ngi ph v, v.v. c th xem nh l cc tc nhn ca h thng . Chng ta cng d nhn thy, mt ca s dng th phi c khi ng bi, hay phc v cho mt hay nhiu tc nhn. 3.2.3 Xc nh cc ca s dng v cc tc nhn Thng thng vic xc nh v hiu r cc yu cu h thng l rt kh khn, phc tp v khi lng thng tin lin quan l rt nhiu, c m t ln xn v khng c cu trc. Khi nim ca s dng c a ra biu th cc yu cu t pha NSD, xut pht t quan im n gin l h thng c xy dng trc ht l cho nhng NSD chng, l phc v tt cho khch hng. Nh trn phn tch, cc tc nhn v cc ca s dng ca mt h thng c mi quan h cht ch vi nhau. Mi tc nhn phi lin quan n t nht mt ca s dng v ngc li mi ca s dng li phc v trc tip hoc gin tip cho mt s tc nhn. Nh vy, cc tc nhn v cc ca s dng cng mi quan h ca chng m t bc tranh khi qut v h thng, c t y v cc yu cu ca h thng. Do , vn rt quan trng t ra l lm th no xc nh c y v chnh xc cc tc nhn ngoi, cc ca s dng ca h thng cn xy dng. Xc nh cc tc nhn Tc nhn l mt b phn bn ngoi h thng nhng cng tc cht ch vi h thng. N chnh l i tng m h thng phc v hoc cn c cung cp d liu. Do , nhim v trc tin ca ngi phn tch l xc nh cc tc nhn. Mt trong cc k thut h tr xc nh cc tc nhn l da trn cc cu tr li nhng cu hi sau: Ai s s dng cc chc nng chnh ca h thng? Ai cn s h tr ca h thng thc hin cc cng vic hng ngy? Ai qun tr, bo dng m bo cho h thng hot ng thng xuyn? H thng qun l, s dng nhng thit b no? H thng cn tng tc vi nhng b phn, h thng no khc? Ai hay ci g quan tm n kt qu x l ca h thng? Xc nh cc ca s dng Bc tip theo l xc nh cc ca s dng da trn nhng ti liu c t cc yu cu, thng qua cc tc nhn, v.v. C hai phng php chnh h tr gip ta xc nh cc ca s dng:

- 65 -

Phn tch, thit k hng i tng bng UML 1. Phng php th nht l da vo cc tc nhn:

on Vn Ban

a. Xc nh nhng tc nhn lin quan n mt h thng hoc n mt t chc, ngha l tm v xc nh nhng tc nhn l NSD hay nhng h thng khc tng tc vi h thng cn xy dng. b. Vi mi tc nhn, tm nhng tin trnh (chc nng) c khi u, hay gip cc tc nhn thc hin, giao tip / tng tc vi h thng. 2. Phng php th hai tm cc ca s dng l da vo cc s kin. a. Xc nh nhng s kin bn ngoi c tc ng n h thng hay h thng phi tr li. b. Tm mi lin quan gia cc s kin v cc ca s dng. Tng t nh trn, hy tr li nhng cu hi sau y tm ra cc ca s dng: 1. Nhim v chnh ca cc tc nhn l g? 2. Tc nhn cn phi c, ghi, sa i, cp nht, hay lu tr thng tin hay khng? 3. Nhng thay i bn ngoi h thng th tc nhn c cn phi thng bo cho h thng hay khng? 4. Nhng tc nhn no cn c thng bo v nhng thay i ca h thng? 5. H thng cn c nhng u vo/ra no?, t u v n u? Da vo cc phng php nu trn, chng ta hy xc nh cc tc nhn v cc ca s dng ca h thng HBH. 1. Danh sch cc tc nhn ca HBH: + Khch hng (Customer): l nhng ngi c h HBH phc v, l khch hng. + Ngi bn hng (Cashier): nhng ngi cn s dng chc nng bn hng ca h thng thc hin nhim v ca mnh. + Ngi qun l (Manager): nhng ngi c php khi ng (Start Up) hay kt thc c h thng (Shut Down) ti cc im bn hng u cui. + Ngi qun tr h thng (System Administrator): c th b sung, thay i nhng NSD. 2. Danh sch cc ca s dng ca HBH 1. Bn hng, mua hng (Buy Items) l nhim v ca h thng HBH lin quan trc tip ti khch hng v ngi bn hng. Trong trng hp ny, hai chc nng bn hng v mua hng l ng ngha, nn c th chn mt trong hai chc nng . Ca s dng ny lin quan n c ngi bn hng v khch hng. 2. Thanh ton, tr tin mua hng hay thu tin (Refund Items, Cash Out): l chc nng m h thng phi thc hin thanh ton vi khch hng bng phng thc m h la chn: tr tin mt, th tn dng, hay tr bng sc. Ca s dng ny cng lin quan n c ngi bn hng v khch hng.

- 66 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

3. ng nhp h thng (Log In): Ngi bn hng cn s dng nhp vo h thng v s dng n bn hng. 4. Khi ng (Start Up), ng h thng (Shut Down): Ngi qun l thc hin khi ng hay kt thc hot ng ca h thng. 5. B sung NSD mi (Add New Users), Loi b NSD (Remove User): Ngi qun tr h thng c th b sung thm ngi s dng mi hay loi b nhng NSD khng cn cn s dng h thng. Sau khi xc nh c cc tc nhn v cc ca s dng th phi t li tn cho chng. Tn ca cc tc nhn v ca s dng phi n gin, r ngha v ph hp vi lnh vc ca bi ton ng dng. Tn ca tc nhn phi l danh t chung v biu hin c vai tr ca n trong cc mi quan h vi h thng. Tn ca ca s dng phi bt u bng ng t, l mnh n, ngn gn v m t ng nhim v m h thng cn thc hin. Tm li, danh sch cc tc nhn v ca s dng trong h HBH c xc nh nh sau:
Tc nhn Ngi bn hng (Cashier) Ca s dng ng nhp h thng (Log In) Thu tin bn hng (Cash Out) Khch hng (Customer) Ngi qun l (Manager) Hay gian hng trng Qun tr h thng (System Adminitrator) Mua hng (Buy Items) Thu tin, thanh ton (Refund Items) Khi ng h thng (Start Up) ngi bn hng c th s dng bn hng. ng h thng khi ht gi (Shut Down) B sung NSD (Add New Users) Loi b NSD (Delete User)

Lu : Cc chc nng mua hng v bn hngl tng ng vi khch hng hay ngi bn, nhng trong h HBH ta c th s dng mt tn gi chung l bn hng. Tng t, Thu tin bn hng v Thu tin c th ng nht l Thu tin hoc Thanh ton. 3.2.3 c t cc ca s dng hiu r hn v tin trnh x l cc yu cu ca h thng, ta nn xy dng cc c t cho cc ca s dng. Mu (Format) c t ca s dng c dng: Ca s dng: Tn ca ca s dng bt u bng ng t.

- 67 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Cc tc nhn: Danh sch cc tc nhn lin quan n ca s dng, ch r ai bt u vi ca s dng ny. M t: M t tm tt tin trnh x l cng vic cn thc hin. Tham chiu: Cc chc nng, ca s dng v nhng h thng lin quan. V d: c t mt s ca s dng trong HBH: 1. Ca s dng : Mua hay bn hng Tc nhn: Khch hng, ngi bn hng M t: Khch hng sau khi chn cc mt hng cn mua trong gi hng th a hng n quy thu tin. Ngi bn hng ln lt ghi nhn cc mt hng trong gi hng ca khch v thu tin. Sau khi thanh ton xong khch hng c mang s hng mua i ra khi ca hng. Tham chiu ti: Cc chc nng R1.1, R1.2,2 R1.3, R1.6, R1.7, R1.8, R2.1, R2.2, R2.3. 2. Ca s dng : Thanh ton Tc nhn: Khch hng, ngi bn hng. M t: Khch hng c th tr tin theo 3 phng thc: 1. Tr tin mt 2. Tr bng th tn dng 3. Tr bng sc Ngi bn nhn tin mt, th tn dng, tin sc ri thanh ton tin tha cho khch hng sau khi th tn dng, sc c kim duyt. Tham chiu ti: Cc chc nng R1.1, R1.2,2 R1.3, R1.9, R2.1, R2.2, R2.3. Tng t m t tip cc ca s dng cn li. Nh trong c t ca s dng Thanh ton ta thy n li c phn lm ba trng hp: Thanh ton tin mt, Thanh ton bng th tn dng v Thanh ton bng sc. Do , hiu r hn cc hot ng ca h thng chng ta c th b sung thm ba ca s dng mi: Thanh ton tin mt, Thanh ton bng th tn dng v Thanh ton bng sc. thanh ton c bng th tn dng v bng sc th th tn dng, sc phi c kim duyt bi cc tc nhn: + B phn kim duyt th tn dng: gip h thng kim tra th tn dng. + B phn kim duyt : gip h thng kim tra sc. Ngoi nhng c t nu trn, ta cn c th xy dng cc kch bn hnh ng m t cc s kin xy ra trong h thng. Mi kch bn c th m t theo hai lung:

- 68 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

lung thc hin ca cc tc nhn v lung tng ng vi h thng. V d: i vi ca s dng Bn hng c kch bn (lung cng vic chnh) thc hin nh sau:
Hnh ng ca cc tc nhn

Hnh ng ca H thng

1. Khch hng sau khi chn s hng cn thit th a hng chn n cho quy thu tin 2. Ngi bn ghi nhn tng mt hng. Nu mt mt 3. Xc nh gi v cc thng hng mua vi s lng nhiu hn th ngi bn nhp tin v sn phm c vo s lng vo t bn phm. hin th. 4. Khi nhp xong cc mt hng ca khch chn mua th ngi bn phi ch cho h HBH bit l kt thc phin bn hng bng cch nhn phm Enter hoc nhn nt Kt thc phin bn hng ( EndSale). 5. Tnh v hin th tng s tin bn hng. 6. Ngi bn thng bo cho khch hng bit tng s tin phi tr. 7. Khch hng chn phng thc thanh ton: 8. Hin th s tin d phi tr cho khch hng a) Nu chn tr tin mt: xem tip kch bn con (Sub_scenario) Thanh ton tin mt. b) Nu tr bng th tn dng: xem kch bn con Thanh ton bng th tn dng. c) Nu tr tin sc: xem kch bn con Thanh ton bng Check. 9. Kt thc mt phin giao dch bn hng. 10. Cp nht li cc hng trong ca hng. 11. Pht sinh phiu bn hng (ho n). 12. Ngi bn tr tin tha v a phiu bn hng cho khch hng. 13. Khch hng ra khi ca hng vi hng thanh ton.

- 69 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Lu : Nu khch hng khng tr tin, hoc khi th tn dng, sc khng hp l th hu b phin giao dch . Sau xy dng nhng kch bn (lung cng vic) khc hoc nhng kch bn con (lung cng vic ph) hiu v nm bt c mi yu cu ca h thng. Sau y chng ta xt tip kch bn con Thanh ton tin mt ca ca s dng Thanh ton.
Hnh ng ca cc tc nhn 1. Khch hng chn phng thc tr bng tin mt v tr cho ngi bn tin mt. 2. Ngi bn nhp vo s tin khch hng tr (s ny c th ln hn s tin phi tr). 3. H thng hin th s d phi tr li cho khch. 4. Ngi bn tr li tin d. Hnh ng ca H thng

Kch bn con Thanh ton bng th tn dng


Hnh ng ca cc tc nhn 1. Khch hng tr bng th tn dng. 2. Pht sinh yu cu tr th tn dng v gi n ti b phn kim tra th tn dng. 3. B phn kim tra th cho php tr tin tn dng sau khi kim tra. 4. Tr s tin phi tr vo ti khon tn dng. Hnh ng ca h thng

3.3 Biu ca s dng


Biu ca s dng ch ra mi quan h gia cc tc nhn v cc ca s dng trong h thng. Mi ca s dng cn phi biu din trn vn mt giao dch gia NSD v h thng. Mi quan h gia cc ca s dng

- 70 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Gia cc ca s dng c ba quan h chnh: quan h m rng, quan h s dng v quan h theo nhm hay theo gi. 1. Quan h m rng Trong khi xy dng nhng ca s dng, ta nhn thy c nhng ca s dng li c s dng nh l mt phn ca chc nng khc. Trong nhng trng hp nh th ta nn xy dng mt ca s dng mi m rng mt hay nhiu ca s dng xc nh trc. Ca s dng mi c gi l ca s dng m rng ca nhng ca s dng c. Mi quan h m rng gia cc ca s dng c m t v k hiu ging nh quan h tng qut ho vi nhn ca quan h l <<extends>>. V d,
Rt tin
Ca s dng c s

<<extends>>

Rt nhanh

Ca s dng m rng

Hnh 3-6 Mi quan h m rng gia cc ca s dng Khch hng c th rt tin theo nhiu cch khc nhau, trong cch rt nhanh. Ca s dng B m rng <<extends>> A nu: B l bin th ca A v n cha thm mt s s kin cho nhng iu kin no . 2. Quan h s dng Khi mt s ca s dng c mt hnh vi chung th hnh vi ny c th xy dng thnh mt ca s dng c th c s dng trong nhng ca s dng khc. Mi quan h nh th c gi l mi quan h s dng. Ni cch khc, trong mi quan h s dng, c mt ca s dng dng mt ca s dng, l mt dng chuyn bit ho ca s dng c s. Ging nh mi quan h m rng, mi quan h s dng cng s dng k hiu tng qut ho th hin vi nhn <<uses>>. V d: Thu ton
<<uses>>

Thanh ton tin mt

Hnh 3-7 Quan h s dng gia cc ca s dng thc hin c ca s dng Thanh ton th phi gi ti ca s dng Thanh ton tin mt khi khch hng chn phng thc tr bng tin mt. Trong UML 1.3, quan h s dng <<uses>> c gi l quan h gp vo <<includes>>.

- 71 -

Phn tch, thit k hng i tng bng UML 3. Mi quan h gp nhm

on Vn Ban

Khi c mt s ca s dng cng x l nhng chc nng ging nhau hoc c quan h vi ca s dng khc theo cng mt cch th tt nht l nhm chng li thnh tng gi chc nng. V d: h thng HBH c th chia cc ca s dng thnh cc gi Bn hng, gi Thanh ton v gi Qun l h thng, v.v. Lu , trong UML (th hin trong Rose) khi nim mu rp khun (stereotype) c m t bng mt xu v c t trong cp << >>, c s dng phn nhm cc thnh phn ca m hnh h thng. V d, i vi hai ca s dng UC A, UC B, ta c th to ra hai mu rp khun tng ng <<UC A>>, <<UC B>>. Stereotype khng c s dng thng xuyn cho cc ca s dng, n c s dng cho lp hay cho cc mi quan h. V d, <<Actor>> l mt mu rp khun trong UML v khi mt lp c ch ra trong biu tng stereotype: <<Actor>> c dng:
<<Actor>> Tn Tc nhn

th n c xem l lp c kiu Actor. Sau khi xc nh xong cc ca s dng cho h thng th phi kim tra li xem chng c pht hin ht cha. Cng vic ny c thc hin bng cch tr li cho cc cu hi sau: Mi yu cu chc nng ca h thng c trong t nht mt ca s dng cha? Nhng chc nng khng c c m t trong cc ca s dng s khng c ci t sau ny. Cc mi tng tc gia cc tc nhn v h thng xc nh ht cha? Tc nhn cung cp nhng g cho h thng? Tc nhn nhn c nhng g t h thng? nhn bit c tt c cc h thng bn ngoi c tng tc vi h thng cha? Nhng thng tin no m h thng ngoi gi ti hoc nhn c t h thng? Mt ln na cn duyt li xem xc nh y , chnh xc cc tc nhn, ca s dng v mi quan h ca chng. Xy dng biu ca s dng cho h HBH Trc khi xy dng biu ca s dng chng ta cn lu : Mi ca s dng lun c t nht mt tc nhn kch hot mt cch trc tip hay gin tip, ngha l gia tc nhn v ca s dng thng c mi quan h giao tip (kt hp). Ca s dng cung cp cc thng tin cn thit cho tc nhn v ngc li, tc nhn cung cp d liu u vo cho ca s dng thc hin.

- 72 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

T nhng kt qu phn tch trn, n y chng ta c th xy dng biu ca s dng cho HBH nh sau:
ng nhp h thng Khch hng Bn hng Ngi bn hng

Thanh ton tin mt B phn kim duyt sc Khi ng h thng Ngi qun l

Thanh ton
<<uses>> <<uses>> <<uses>>

Thanh ton bng sc

Thanh ton bng th Thm / Loi b NSD

B phn kim duyt th

ng h thng

Qun tr h thng

Hnh 3-8 Biu ca s dng ca h thng HBH Mt s im cn ch khi xy dng biu ca s dng: Gia cc tc nhn vi nhau khng c quan h trc tip vi nhau. Tc nhn nm ngoi h thng, do vy giao tip gia cc tc nhn cng nm ngoi h thng cn xy dng. Gia cc ca s dng khng c quan h trc tip, tr mi quan h m rng <<extends>> hoc <<uses>> nh ni trn. Mi ca s dng phi c mt tc nhn khi ng hoc phc v cho mt tc nhn, ngoi tr trng hp nhng ca s dng m rng hay ca s dng theo quan h s dng. Mi phn t ca biu ca s dng (ca s dng v tc nhn) khi cn thit c th m t chi tit trong phn c t (Documentation ca Rose) hay m t trong mt tp ring sau gn tng ng cho phn t trong m hinh ca s dng. Khi h thng ln, phc tp th nn chia cc ca s dng thnh cc gi, trong nhm nhng ca s dng v cc tc nhn c quan h vi nhau to ra mt h thng con.

- 73 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

3.4 To lp biu ca s dng trong Rational Rose


Trong Rose cc biu ca s dng c to lp trong quan st Use Case. Rose cung cp biu ca s dng mc nh l Main. S lng cc biu ca s dng l tu to lp. Trong Rose c th thc hin c nhng chc nng sau (chi tit xem [22]): M biu mc nh Main Use Case, To lp biu ca s dng mi, Loi b mt biu ca s dng, To lp, b sung cc ca s dng vo mt biu ca s dng, Xo b ca s dng trong mt biu ca s dng, c t cc ca s dng: t tn, gn mc u tin, gn tp cho ca s dng, v.v. To lp, b sung cc tc nhn, Xo b cc tc nhn, c t cc tc nhn: t tn, t bi s trong mc Detail sau khi chn Open Specification. Thit lp cc mi quan h gia cc tc nhn vi ca s dng v gia mt s ca s dng vi nhau nu c.

Bi tp v cu hi
3.1 Mi quan h gia cc chc nng ca h thng vi cc ca s dng, chng khc nhau nh th no?, nu cch xc nh cc ca s dng. 3.2 Tc nhn l g v vai tr c n trong h thng? Nu cch xc nh cc tc nhn. 3.3 Xy dng kch bn cho ca s dng ng nhp h thng, Thu bng sc, Thm NSD. 3.4 Pht biu bi ton Qun l th vin, xc nh cc yu v xy dng biu ca s dng cho h thng ny. 3.5 Pht biu bi ton Xy dng h thng rt tin t ng ATM (Automatic Teller Machine), xc nh cc yu v xy dng biu ca s dng cho h thng ny. 3.6 Pht biu bi ton xy dng h thng M phng h thng thang my trong cc to nh cao tng, xc nh cc yu v xy dng biu ca s dng cho h thng ny. 3.7 Pht biu bi ton xy dng h thng Qun l hc tp ca sinh vin trong trng i hc, xc nh cc yu v xy dng biu ca s dng cho h thng ny. 3.8 Pht biu bi ton xy dng h thng Qun l v iu khin cc tuyn xe but ca thnh ph, xc nh cc yu v xy dng biu ca s dng cho h thng ny.

- 74 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

3.9 S dng Rational Rose to lp biu ca s dng cho h thng HBH vi y cc chc nng nh trong mc 3.4. 3.10 A/ Chn nhng t thch hp in vo ch trng ca nhng cu sau: Mu rp khun (stereotype) trong UML c m t . . . . . C . . . . loi quan h gia cc ca s dng vi nhau. Biu ca s dng m t . . . . . ca h thng. B/ Nhng mnh sau ng hay sai? Mt tc nhn trong ca s dng lun l mt ngi c lin quan n h thng. Ca s dng m t nhng chi tit ci t. Mt h thng khc cng c th l mt tc nhn trong biu ca s dng ca h thng. Trong mi h thng ch c mt biu ca s dng.

- 75 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

CHNG IV

PHN TCH H THNG M HNH KHI NIM V BIU LP

Ch chnh ca chng V: Tm hiu nhng khi nim c s trong min bi ton ng dng xy dng m hnh khi nim, Cc phng php xc nh cc lp i tng v mi quan h gia cc lp, Cc thuc tnh ca cc lp, Biu lp m hnh khi nim ca h thng.

4.1 M hnh khi nim m hnh i tng


Mc tiu chnh ca phng php hng i tng l phn tch h thng thnh cc i tng hoc xc nh cc khi nim l nhng s vt m chng ta bit r v chng. M hnh khi nim l cch biu din cc khi nim, cc thc th ca phm vi bi ton. Cc khi nim c bn Mt cch khng hnh thc, mt khi nim l mt tng, s vt, hoc mt i tng. Hnh thc hn, mt khi nim c th c suy ngh thu o v cc phng din: K hiu: nhng t hay hnh nh biu din cho mt khi nim nh ngha v mt khi nim v S m rng bao gm tp cc v d hoc cc th hin ca mt khi nim. S khc bit chnh gia phn tch hng i tng v phn tch c cu trc l s phn r h thng thnh cc khi nim (i tng ) thay v phn r thnh cc chc nng. im mu cht trong cch phn r ny l phi tm nhng thc th (ci g what?) hot ng trong h thng sau quyt nh thit k v ci t chng nhm thc hin cc chc nng (yu cu) ca bi ton. Do vy, nhim v trng tm ca giai on phn tch hng i tng l tm cch xc nh cc lp i tng v cc mi quan h ca chng trong h thng. Nhc li nh ngha lp trong UML, lp l mt m t v tp cc i tng c cng chung cc thuc tnh, cc phng thc hnh ng, cc mi quan h v ging nhau v ng ngha. Chng ta nhn thy nhng khi nim v thuc tnh, phng thc, thao tc v cc mi quan h th dn tng bc s c lm sng t trong cc bc thc hin ca qu trnh pht trin h thng. Cc i tng trong h thng cn phi c phn bit vi nhau. Hai i tng c cng tp cc tnh cht, v d hai sinh vin ca lp SinhVien c cng tn, tui v thm

- 76 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

ch cng im thi, hc cng nm, v.v. nhng vn phi c tnh cht no phn bit c h. Thuc tnh phn bit cc i tng trong h thng chnh l nh danh (Identity). Nh vy, nhng c trng quan trng ca i tng l: nh danh i tng: dng phn bit vi nhng i tng khc, ngay c khi chng c cc tnh cht ging nhau. Mi i tng u c mt nh danh v n c thit lp khi i tng c to ra trong h thng. Tnh bn vng ca i tng: mi i tng u c mt thi gian sng (tn ti trong h thng) v iu ny dn ti bn cht tnh ca h thng. Nhng i tng bn vng l nhng i tng c lu tr vo trong cc CSDL T. Mi i tng phi hoc c th tng tc vi cc i tng khc, iu ny dn n bn cht ng ca h thng. Khi xy dng m hnh cho mt h thng phn mm th nhng khi nim c s dng to ra m hnh phi n gin, d hiu, v lm c s trao i vi nhau trong qu trnh pht trin h thng. Nhng khi nim v nghip v phi c thit k li sao cho ph hp vi qui trnh x l cng vic hin thi ng c th thch ng c vi xu th pht trin trong tng lai. Trong UML, m hnh khi nim ca mt h thng c m t bi biu lp. Vy, vn quan trng ca giai on ny l xc nh y v chnh xc cc lp i tng v mi quan h ca chng trong h thng cn pht trin. Nh khng nh chng III, qu trnh pht trin phn mm hng i tng vi UML l c hng dn bi cc ca s dng, nn cc lp i tng ch yu cng s c xc nh da trn c s phn tch cc ca s dng ca h thng.

4.2 Xc nh cc lp i tng
C su cch chnh tm cc lp i tng: (i) (ii) Da vo vn bn, kch bn m t bi ton: cc danh t c th l cc i biu ca lp. Da vo danh sch phn loi cc phm tr khi nim.

(iii) Da vo mc ch ca cc ca s dng [10], (iv) Da vo kinh nghim v kin thc ca ngi phn tch, (v) Da vo h s ti liu nhng h thng c lin quan, (vi) Da vo kin tham kho vi cc chuyn gia h thng. Trong qu trnh phn tch, thng phi kt hp cc cch trn tm ra cc lp ca mt h thng. y chng ta tp trung tm hiu ba cch chnh (u tin) xc nh cc lp i tng trong qu trnh phn tch mt h thng.

1. Da vo vn bn, kch bn m t bi ton tm cc lp ([6], [10])

- 77 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

pha trc, giai on phn tch cc yu cu ca h thng c cc m t bi ton, xy dng c t cc ca s dng v cc kch bn m t chi tit nhng ca s dng phc tp hiu r bi ton. Cc danh t trong cc m t vn bn c th l i biu ca lp hoc thuc tnh ca lp. Do vy, c th gch chn tt c cc danh t chung trong vn bn m t bi ton. V d, gch chn nhng danh t chung trong on vn m t h HBH: Mt Cng ty mun xy dng h thng phn mm phc v v qun l cc hot ng kinh doanh. Cng ty c nhiu im bn hng u cui (point- of sale terminal) l nhng ca hng siu th, do vy h thng cn phi ghi nhn cc hot ng bn hng v x l cc cng vic thanh ton vi khch hng, ch yu khch hng mua l. Ngoi ra h thng cn gip gim c Cng ty theo di c cc hot ng kinh doanh, t ng kim k cc mt hng tn ng trong kho, cc mt hng bn chy, v.v. h tr ra quyt nh trong cc hot ng kinh doanh ca Cng ty. Trong mi im bn hng u cui u c cc thit b phn cng nh: my tnh,my c m vch ( bar code scanner) v phn mm h thng chy h thng s c xy dng. Lu : Khng phi tt c cc danh t gch chn trong vn bn m t bi ton u l i biu lp. V d: cm danh t phn mm h thng, my tnh, thit b phn cng, v.v. khng phi l nhng thc th m chng ta quan tm trong h thng HBH. Mt s danh t, cm danh t ng ngha vi nhau hay m t cho nhng thc th c vai tr nh nhau trong h thng th c th chn mt trong s chng hoc t tn khc cho nhng danh t . V d: h thng v h thng phn mm, hay hot ng bn hng v hot ng kinh doanh y l ging nhau, vy nn c th thay h thng v h thng phn mm bng HBH, cn hot ng bn hng v hot ng kinh doanh c gi l giao dch bn hng (hay phin bn hng), v.v. Tm li, da vo nhng danh t, cm danh t c gch chn, sau da vo kinh nghim, trnh , kin thc ca mnh m loi b i nhng mc khng phi l i biu ca lp. Danh sch cc i biu c th l lp ca h thng HBH do s l: HBH: i din cho h thng phn mm, h thng, CuaHang (ca hng): im bn hng u cui, ca hng siu th, v.v PhienBanHang (phin bn hng): i din cho hot ng bn hng, hot ng kinh doanh, ThanhToan (thanh ton): i din cho cng vic thanh ton, tr tin KhachHang (khch hng): cho khch hng, ngi mua hng, NguoiQL (Ngi qun l): i din cho gim c Cng ty, ca hng trng, MatHang (Mt hng): i din cho mt hng, sn phm, v.v. Tng t, i vi cc kch bn. V d: xt kch bn m t ca s dng Bn hng

- 78 -

Phn tch, thit k hng i tng bng UML


Hnh ng ca cc tc nhn

on Vn Ban

Hnh ng ca H thng

1. Khch hng sau khi chn s hng cn thit th a hng chn n cho quy thu tin 2. Ngi bn ghi nhn tng mt hng. Nu mt mt 3. Xc nh gi v cc thng hng mua vi s lng nhiu hn th ngi bn nhp tin v sn phm c vo s lng vo t bn phm. hin th. 4. Khi nhp xong cc mt hng ca khch chn mua th ngi bn phi ch cho h HBH bit l kt thc phin bn hng bng cch nhn phm Enter hoc nhn nt Kt thc phin bn hng ( EndSale). 5. Tnh v hin th tng s tin bn hng. 6. Ngi bn thng bo cho khch hng bit tng s tin phi tr. 7. Khch hng chn phng thc thanh ton: 8. Hin th s tin d phi d) Nu chn tr tin mt: xem tip kch bn con tr cho khch hng (Sub_scenario) Thu tin mt.

e) Nu tr th tn dng: xem kch bn con Thu bng th tn dng. f) Nu tr tin sc: xem kch bn con Thu bng Check. 9. Kt thc mt phin giao dch bn hng. 10. Cp nht li cc hng trong ca hng. 11. Pht sinh phiu bn hng (ho n). 12. Ngi bn tr tin tha v a phiu bn hng cho khch hng. 13. Khch hng ra khi ca hng vi hng thanh ton.

- 79 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Ngoi nhng i biu lp nu trn, c th lit k thm nhng danh t l i biu lp trong HBH: NguoiBan (ngi bn): i din cho ngi bn, ngi bn hng, ngi thu tin, MoTaMatHang (thng tin v mt hng): thng tin v sn phm, thng tin v mt hng, c t sn phm, v.v. PhieuBanHang (phiu bn hng): phiu bn hng, ho n, v.v. 2. Da vo danh sch phn loi cc phm tr khi nim ([6], [10]) Bn cnh nhng phng php nu trn, chng ta cn c th da vo danh sch phn loi cc phm tr khi nim xc nh thm nhng i biu mi cho h thng hoc loi i nhng danh t khng thc s l i biu ca lp. V d: Xt cc phm tr khi nim (concept category) ca h thng bn hng v h thng t v my bay.
Cc phm tr khi nim V d

Cc i tng vt l, hay hu hnh M t, c t, ti liu ca s vt a im, ni, chn

Cc mc trn dng giao dch (Transaction line items)


Cc giao dch (Transaction)

H HBH, NguoiBan, KhachHang MayBay (my bay) MoTaMatHang MoTaChuyenBay (m t chuyn bay) CuaHang SanBay (sn bay) DongHangBan (Sales Line Item)

PhienBanHang (Sale), ThanhToan (Payment),


DatCho (Reservation) NguoiBan, KhachHang PhiCong MatHang KhachDiMB (Passenger) CuaHang SanBay PhngBnHng (SaleDepartment) PhngBnVeMyBay BanHang, ThanhToan CtCnh, HCnh DanhMucMatHang (ProceductCatalog) DanhMcThitB (PartsCatalog) PhieuBan (Receipt), HoaDon PhiutCh

Vai tr ca con ngi Cc vt cha trong container (vt cha) Vt cha cc vt khc (Container of other thing) Cc t chc (Organizations) Cc s kin (Events) Cc danh mc (Catalogs) Cc bn ghi v ti chnh, dng cng vic, hp ng,

- 80 -

Phn tch, thit k hng i tng bng UML Trong cc phm tr nu trn, ta thy h HBH c thm: MoTaMatHang (Thng tin v cc mt hng), v DanhMucMatHang (Danh mc v cc mt hng).

on Vn Ban

Lu : Trong h thng bn hng ang phn tch, nhng khi nim nh Phiu bn hng (Receipt) khng cn thit phi a vo lm i biu ca lp bi v: ni chung, mt bn ghi hay mt bn bo co v cc s vt nh phiu bn hng, khng tht cn thit trong m hnh khi nim ny v tt c cc thng tin trong c th suy ra c t nhng khi nim khc. V d: phiu bn hng c to lp t thng tin MoTaMatHang v ThanhToan. Tuy nhin, nhng khi nim nh trn, nhiu khi cng ng nhng vai tr c bit trong h thng thng tin qun l, n cn thit duy tr h thng. V d, nu khch hng c php tr li nhng mt hng km cht lng cho ca hng chng hn, khi phi lu li cc phiu bn hng lm cn c nhn li nhng mt hng m khch hng tr li. Trong nhng trng hp nh th phi a phiu bn hng vo danh sch cc lp cn xy dng. Ngoi ra, ta cn c th da vo cc cu hi sau tm ra cc lp i tng: Nhng thng tin no cn phn tch, cn lu tr? Nhng h thng ngoi no cn thit cho h thng v ngc li? Nhng mu, th vin lp, thnh phn no c s dng trong h thng? H thng qun l nhng thit b ngoi vi no? Vai tr ca cc tc nhn i vi h thng l g? Nhng cu tr li cho cc cu hi trn c th l i biu ca lp. 3. Da vo mc ch ca cc ca s dng xc nh cc lp i tng [10] Cng vic chnh trong qu trnh pht trin phn mm c hng dn bi ca s dng l nh x t biu ca s dng sang biu lp. Hai cch tip cn nu trn tp trung phn tch cc vn bn m t cc ca s dng v cc phm tr c s, ngha l theo cc tip cn m hnh i tng hng danh t xc nh cc lp. Mt vn tr ngi chung ca c hai cch lm trn l mt lc c th pht hin qu nhiu cc i biu lp, v d c th xem mi danh t l mt i biu lp. Ngoi ra theo kinh nghim ca cc nh phn tch vin s dng UML th hai cch tip cn trn cn c nhng vn sau trong m hnh ho i tng: Mt m t ca ca s dng c th ch l mt kch bn. Ngha l, n ch m t mt cch thc hin t c mc ch ca ca s dng , ch khng phi tt c. Do vy, cc lp c xc nh theo cch ny b gii hn bi chnh m t ny. Bi v, mt ca s dng c th c m t vi nhng cu khc nhau bi nhiu ngi khc nhau, dn ti l mt thc th c th c xc nh tng ng bi nhiu tn lp khc nhau. V d, ngi mua hng c th c gi l khch hng, nhn vin c th c gi l cn b, cng chc, v.v. Nh th c

- 81 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

th dn n trng hp c qu nhiu danh t la chn ra nhng tn lp c ngha trong mt h thng. Nhiu phn tch vin c th s dng nhng kiu phn loi phm tr cc s vt khc nhau, i khi dn n xung t v do vy, rt kh tho thun c vi nhau. Trong mt s h thng, c th c qu nhiu phm tr ng nhng vai tr khc nhau trong nhng b phn khc nhau. iu ny cng gy tr ngi cho cc nh phn tch khi phi la chn trong s nhng phm tr nhng phm tr no l lp chnh xc cn xc nh. Ngoi ra, t yu cu ca h thng chng ta c th pht hin c c cc chc nng v cc thc th trong h thng. Nhng, m t ca s dng ch nhn mnh vo m t chc nng, cch thc hin cng vic. Do , ngi phn tch kh pht hin c cc thc th mt cch hiu qu. Ngha l, theo cc cch trn th c th mt s lp c pht hin khng c chp nhn bi cc tc nhn, khng tht ph hp vi bi ton ng dng. khc phc nhng nhc im trn, chng ta c th thc hin phn tch cc mc ch ca ca s dng xc nh lp. Cc lp i tng chnh l cc nhm thc th tham gia thc hin t c mc ch ca h thng trong th gii thc. Cc thc th v cc mc ch phi c m t bi cc khch hng (NSD), ch khng phi bi cc nh phn tch. Theo cch tip cn ny, chng ta c th to ra biu lp t biu ca s dng theo mt thut ton gm nm bc. Bc 1: Xc nh mc ch ca mi ca s dng Ca s dng th hin nhng chc nng, nhim v ca h thng m NSD yu cu. Mc ch ca NSD cng chnh l mc ch ca ca s dng. Tc nhn ca ca s dng c mc tiu l s dng ca s dng t c nhng iu m h mun. Mc ch ca ca s dng c xc nh nh sau: Mc ch ca ca s dng l nhng mc tiu m h thng cn thc hin. Mc ch thng c th hin di dng cc gi tr (d liu hoc thng tin) m ca s dng cung cp cho tc nhn hoc nhng p ng ca ca s dng . Nh vy, mc ch l duy nht ng vi mi ca s dng. xc nh cc mc ch, chng ta phi tm cch tr li nhng cu hi sau: Mc tiu ca ca s dng l g? Ca s dng ny cung cp nhng dch v no? Nhng gi tr hay nhng p ng no m ca s dng c th cung cp. V d, biu hnh 4-1 m t ca s dng ng k mn hc v hai tc nhn: B phn tip nhn v Phng o to. Mc ch ca B phn tip nhn l nhn c phiu ng k mn hc mi ca sinh vin cn mc ch ca Phng o to l c bn sao ca phiu ng k .

- 82 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Phiu ng k mn hc mi

ng k mn hc

Bn sao ca phiu ng k mn hc

Sinh vin Hnh 4-1 Biu ca s dng ng k mn hc Bc 2: Da vo cc mc ch xc nh cc thc th

Phng o to

thc hin c nhng mc ch ca ca s dng th bao gi cng phi c cc thc th tham gia. Thc th l ngi no , ci g ng mt vai tr nht nh trong ca s dng thc hin c nhng mc ch ca ca s dng. Mt thc th c th tham gia vo nhiu ca s dng vi nhng vai tr khc nhau. Ni chung, mi thc th u c nhng c tnh (thuc tnh) v nhng hnh vi ng x (phng thc x l) phn bit vi nhng thc th khc. Mt khc, nhng thc th ny li cng tc vi nhau cng nhau t c mc ch ca ca s dng. Da vo cc cu hi sau xc nh cc thc th (lp) cho mi ca s dng: Nhng thc th no l cn thit v quan trng thc hin c mc ch ca ca s dng? Nhng thuc tnh no ca thc th l cn thit v quan trng thc hin c mc ch ca ca s dng? V d, c phiu ng k mn hc th phi c s tham gia ca cc thc th: mn hc, sinh vin v phiu ghi danh (tr li cu hi th nht). Mn hc phi c thuc tnh: m s ca kho hc, tn mn hc, sinh vin phi c thuc tnh: m SV, h tn, v phiu ghi danh c: m ghi danh, ngy ghi danh, v.v. (tr li cu hi th hai). T cc mc ch, chng ta xc nh c cc lp v cc thuc tnh tng ng nh hnh 4-2.
MonHoc maSo monHoc SinhVien maSV hoTen

Phiu ng k mn hc mi

ng k mn hc

Bn sao ca phiu ng k mn hc

PhieuGhiDanh

Sinh vin

maPhieu ngayGD

Phng o to

Hnh 4-2 Ca s dng ng k mn hc v cc thc th lin quan Bc 3: Xc nh cc mi quan h (ch yu kt hp) gia cc lp Mt ca s dng c th lin quan ti nhiu thc th nh hnh 4-2, nhng thc th kt hp vi nhau thc hin c mc ch ca ca s dng. Thng qua cc cu hi tc nhn xc nh c mi lin quan gia cc lp:

- 83 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Vi mi thc th, n c sinh ra da vo hay b ph thuc vo nhng thc th khc? Nu c, n phi tham chiu ti nhng thc th . Vi mi thc th, n c th tc ng vo hay b tc ng bi nhng thc th khc? Nu c, n phi tham chiu ti nhng thc th . V d, hy xt phiu ghi danh hnh 4-2, n c sinh ra da vo s la chn mn hc ca sinh vin. Mt sinh vin li c th ghi danh nhiu mn hc, mt mn hc c nhiu sinh vin ghi danh. S tham chiu gia cc lp c biu din bng quan h kt hp trong biu lp nh hnh 4-3.
MonHoc maSo monHoc

1..*

PhieuGhiDanh maPhieu ngayGD

1..*

SinhVien maSV hoTen

Hnh 4-3 Mi quan h gia cc lp Bc 4: Xc nh cc hm thnh phn th hin s cng tc ca cc lp trong ca s dng Nhng thc th lin quan n mt ca s dng th chng cng tc vi nhau thc hin mt s cng vic nhm t c mc ch ca ca s dng. Nhng cng vic chnh l cc hm thnh phn ca lp. C th xc nh c cc hm thnh phn ca lp thng qua cc cu hi cc tc nhn nh sau: Ca s dng ny cn lm g vi mi thc th lin quan vi n? Ca s dng ny cn bit g v mi thc th lin quan vi n? Mi thc th lin quan c th ng gp c g trong ca s dng ny? V d, hy xt cc tc nhn hnh 4-2. Ca s dng gn maSV cho sinh vin, n cn bit v h tn ca sinh vin. Sinh vin phi cho ca s dng bit h v tn. (ii) Ca s dng cn phi bit m s v tn mn hc. (iii) Ca s dng to lp phiu ghi danh mi vi ngy ghi danh ca sinh vin v vi s ghi danh duy nht. T nhng phn tch nh trn chng ta c biu lp vi cc hm thnh phn c b sung nh hnh 4-4.
MonHoc maSo monHoc getMaSo() getMonHoc() PhieuGhiDanh SinhVien maPhieu ngayGD lapPhieuGD()

(i)

1..*

1..*

maSV hoTen getHoTen() setMaSV()

Hnh 4-4 Biu lp

Bc 5: Kim tra cc biu ca s dng. Chng ta c th kim tra cc biu c xy dng theo cc qui tc sau:

- 84 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Kim tra cc yu cu chc nng xem: + Tt c cc ca s dng c thc hin c ht cc yu cu cha? + Mc ch ca mi ca s dng c ng nh cc tc nhn yu cu khng? Kim tra cc thc th ca cc ca s dng: + Cc thc th trong biu lp c cn v thc hin cc mc ch ca mi ca s dng hay khng? + Cc thuc tnh ca mi thc th c phi l nhng ci m ca s dng cn bit hay khng? + Cc hm thnh phn ca lp c cn v thc hin cc mc ch ca mi ca s dng hay khng? Sau ny, vic kim tra biu lp c xy dng tng ng vi mt ca s dng s phc tp hn l kim tra c h thng. 4. Danh sch cc lp ca h HBH Bng cc phng php nu trn chng ta c c danh sch cc i biu lp, nhng khng phi tt c u c th l i biu lp. Hy loi b nhng i biu d tha. Lp d tha: khi c 2 lp tr ln nh ngha cho cng mt thc th th ch cn gi li mt. Lp bit lp: nhng lp khng c quan h vi cc lp khc trong h thng th cn phi loi b. Lp m h: nhng lp khng c chc nng r rng th phi nh ngha li chnh xc hoc loi b i. Bng nhng cch nu trn, h thng HBH c nhng lp sau: HBH (POST - Point Of Sale Terminal) DongBanHang (SaleLineItem) MatHang (Items) CuaHang (Store) PhienBanHang (Sale) DanhMucMatHang (ProductCatalog) NguoiQL (Manager) ThanhToan (Thanh ton Payment) MoTaMatHang (Product Specification) KhachHang (Customer) NguoiBan (Cashier)

4.3 Mi quan h gia cc lp i tng


Nh chng ta bit, h thng bao gi cng l mt th thng nht, ngha l cc phn t ca h thng phi c quan h tng tc vi nhau. M hnh khi nim do vy, phi bao gm nhng khi nim (cc lp i tng) khc nhau nhng phi c s tng tc, hp tc vi nhau. Nhim v tip theo ca chng ta l i tm cc mi quan h . Trong chng II chng ta bit, c th c bn mi quan h gia cc lp. Trong pha phn tch, chng ta ch yu tp trung pht hin cc mi quan h kt hp, kt nhp ca cc lp trong danh sch nu trn. Trong quan h kt hp l quan trng nht, n th hin cc mi lin h gia cc lp trong h thng.

- 85 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Trong UML, s kt hp (Association) l quan h gia hai lp, n xc nh cch cc i tng ca cc lp c th lin kt vi nhau thc hin cng vic nh th no. Tng t nh i vi lp, th hin ca lp l cc i tng, i vi mi quan h kt hp, th hin ca n l s lin kt (link) gia cc i tng ca hai lp. Ngha l cc i tng ca mt lp cng chia s vi nhau cc mi quan h. Cc i tng c th c nhiu loi quan h v v th, cc lp (khi nim) cng phi c tt c cc loi quan h trong lnh vc ng dng. Quan h kt hp gia hai lp l s kt ni vt l hay khi nim gia cc i tng ca hai lp . Ch nhng i tng c mi quan h kt hp vi nhau mi c th cng tc vi nhau theo cc ng lin kt c thit lp gia cc lp. Booch m t vai tr ca mi lin kt gia cc i tng nh sau: Mt lin kt ch r s kt hp m qua , mt i tng c mt i tng khc phc v hoc mt i tng c th iu khin i tng kia. V d: PhienBanHang v ThanhToan l hai lp phn tch trn trong HBH l c quan h kt vi nhau, mi ln thanh ton l tr tin cho mt ln mua hng. Quan h ny c m t nh hnh 4-5.
PhienBanHang 1 c-tr-tin-bi 1 ThanhToan

Hnh 4-5 Mi quan h kt hp gia hai lp 4.3.1 t tn cho cc quan h kt hp Tn ca quan h kt hp thng l mnh ng t n d c v c ngha trong ng cnh ca m hnh, th hin c mi lin h gia cc lp. Tn ca quan h kt hp thng bt u bng ng t, hay tnh ng t vi ch u c vit hoa. Gia cc t trong tn ca quan h c ni vi nhau bng -. V d: Tn quan h gia hai lp PhienBanHang v ThanhToan l c-trtin-bi nh hnh 4-5. Vn quan trng t ra l lm th no xc nh chnh xc cc mi quan h gia cc lp trong h thng. 4.3.2 Cc phng php xc nh cc mi quan h kt hp C hai phng php chnh xc nh cc mi quan h gia cc lp trong h thng: 1. Mi quan h kt hp gia cc lp i tng l cn bit v nhng thng tin lin quan n cc lp . Ngha l da vo nguyn l Cn bit. 2. Da vo s phn loi cc phm tr cc quan h trong h thng. Xc nh quan h kt hp theo nguyn l Cn bit

- 86 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Khi phn tch cc yu cu, ta cn phi tun theo cc nguyn l sau: Quan h kt hp hu ch thng cho ta s hiu bit v mt mi quan h cn c duy tr trong mt thi khong no , c gi l s kt hp cn bit (Need-to-know) [10]. S lin kt quan trng gia hai i tng phi th hin c vai tr ca s cng tc hay s tng tc gia cc i tng . Da vo hai nguyn l trn, trc ht l nguyn l Cn bit p dng vo ca s dng Mua hng bng tin mt, chng ta thy c nhng quan h sau: HBH X-l PhienBanHang bit v ln bn hng hin thi, bit tng s tin khch hng phi tr v in phiu bn hng giao cho khch. PhienBanHang c-tr-tin-bi ThanhToan bit xem hng va bn c tr tin hay cha, n cng lin quan n s tin m khch a, h thng phi tr li tin d v vn in phiu bn hng. DanhMucMatHang Ghi-li MoTaMatHang tm cc thng tin m t v cc mt hng nh: chng loi, gi c, cht lng, v.v. khi bit m sn phm. Xc nh mi quan h kt hp da vo vic phn loi cc phm tr quan h Vic tm cc quan h kt hp cng ging nh vic tm kim i vi cc lp, chng ta c th da vo danh sch cc phm tr kt hp xc nh. V d: Xt h thng bn hng HBH v H thng t v my bay, nhng phm tr quan h sau cn xem xt tm kim cc mi quan h kt hp.
Cc phm tr kt hp Cc v d

A l mt b phn logic ca B A l mt loi / lp con / kiu con ca B A c cha (vt l) trong / trn B A c cha (logic) trong B A l mt m t ca B A l mt mc trong mt giao dch A l thnh vin ca B A s dng hoc qun l B A trao i vi B Giao dch A c quan h vi giao dch B A l s hu ca B

DongBanHang - PhienBanHang ChuyenBay - TuyenBay ThanhToanTienMat ThanhToan ChuyenBayNonStop - ChuyenBay HBH - CuaHang KhachBay MayBay MoTaMatHang - DanhMucMatHang ChuyenBay - LichBay MoTaMatHang - MatHang MoTaChuyenBay - ChuyenBay DongBanHang PhienBanHang NguoiBan - CuaHang PhiCong DoiBay NguoiBan - HBH PhiCong MayBay KhachHang - NguoiBan KhachBay HangDatCho ThanhToan - PhienBanHang DatCho HuyCho HBH - CuaHang MayBay SanBay

- 87 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tm li, da vo vic phn loi cc phm tr kt hp nh trn, da vo kinh nghim, kin thc v h thng v da vo cc kt qu kho st h thng trong thc t lit k tt c cc mi quan h kt hp thc gia cc lp trong h thng. Cc lp trong HBH c cc quan h nh sau: DongBanHang - PhienBanHang MoTaMatHang DanhMucMatHang NguoiBan HBH KhachHang HBH NguoiQL HBH MatHang CuaHang DongBanHang MatHang HBH - CuaHang MoTaMatHang - MatHang ThanhToan - PhienBanHang NguoiBan PhienBanHang PhienBanHang CuaHang CuaHang DanhMucMatHang DongBanHang MoTaMatHang

Lu : Trong giai on phn tch, quan h kt hp khng cn phi m t v cc dng d liu, cc bin th hin, hoc cc mi kt ni ca cc i tng nh trong li gii c th m ch cn th hin c nhng mi lin h c ngha trong th gii thc. Trong cc pha sau, pha thit k v ci t, nhng mi lin h ny s c ci t nh l cc ng dn thng tin lin kt gia cc lp th hin c kh nng quan st gia cc i tng trong h thng khi n thc hin. Cc mi quan h khc chng ta s cp n cc chng sau.

4.4 Biu lp
Biu lp m t quan st tnh ca h thng thng qua cc lp v cc mi quan h ca chng. N c s dng hin th cc lp v gi cc lp cng cc mi quan h ca chng. Biu lp gip ngi pht trin phn mm quan st v lp k hoch cu trc h thng trc khi lp trnh. N m bo rng h thng c thit k tt ngay t u. 4.4.1 Cc loi lp trong biu Biu lp c th cha nhiu loi lp khc nhau, chng c th l nhng lp thng thng, lp tham s ho, lp hin thc, lp tin ch, v lp metaclass (siu lp). Lp tham s ho (Parameterized Class) Lp tham s ho l lp c s dng to ra mt h cc lp khc. Trong nhng ngn ng lp trnh c kiu mnh nh C++, lp tham s ho chnh l lp mu (template). Trong UML, c th khai bo lp tham s ho (lp mu) Set cho h cc lp c cc phn t l kiu T bt k, c xem nh l tham s nh sau:
Set insert(T e) remove(T e) T

Hnh 4-6 Lp c tham s ho

- 88 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Lp tham s ho c th s dng th hin quyt nh thit k v cc giao thc trao i gia cc lp. Lp tham s ho t c s dng trong m hnh khi nim m ch yu c s dng trong cc m hnh ci t, nhng cng ch khi ngn ng lp trnh c chn lp trnh c h tr c ch lp mu (template class) nh C++ chng hn. Cng cn lu l khng phi tt c cc ngn ng lp trnh hng i tng u h tr kiu lp mu, v d Java khng h tr, nhng tt c cc lp trong Java li to ra cu trc cy phn cp c gc l lp Object. Do tnh cht phn cp ca cy v nguyn l chung bo ton mi quan h gia cc lp con vi lp cha (nguyn l thnh vin v nguyn l 100%) m ta vn c th to ra c nhng cu trc tng qut, khng thun nht tng t nh lp mu [15]. Lp hin thc (Instantiated Class) Lp hin thc l loi lp tham s ho m i s ca n l mt kiu tr c th. Nh vy, lp tham s ho l khun to ra cc lp hin thc. V d, lp Set<Complex> tp cc s phc (Complex) l lp hin thc c biu din trong UML nh hnh 4-7.
Set <Complex> insert(Complex e) remove(Complex e)

Hnh 4-7 Lp hin thc ho Lp tin ch (Class Utility) Lp tin ch l tp hp cc thao tc c s dng nhiu ni trong h thng, chng c t chc thnh lp tin ch cc lp khc c th cng s dng. Trong biu , lp tin ch c th hin bng lp c ng vin bng nh hnh 4-8 (a).

Hnh 4-8 (a) Lp tin ch Giao din (Interface)

(b) Giao din

Giao din l tp nhng thao tc quan st c t bn ngoi ca mt lp v/hoc mt thnh phn, v khng c ni dung ci t ca ring lp . Giao din thuc quan st logic v c th xut hin trong c biu lp v biu thnh phn vi k hiu ho nh hnh 4-8 (b). MetaClass (siu lp) MetaClass l lp to ra cc lp khc, ngha l th hin ca n l lp ch khng phi l i tng. Lp tham s ho chnh l mt loi siu lp.

- 89 -

Phn tch, thit k hng i tng bng UML 4.4.2 Mu rp khun (stereotype) ca cc lp

on Vn Ban

Mu rp khun (Stereotype) l c ch m rng cc phn t ca m hnh to ra nhng phn t mi. N cho php d dng b sung thm cc thng tin cho cc phn t ca m hnh v nhng phn t ny c c t trong cc d n hay trong qu trnh pht trin phn mm. N c s dng phn loi cc lp i tng. Rational Rose xy dng mt s stereotype nh <<boundary>>, <<entity>>, <<control>>, <<interface>>, v.v., ngoi ra chng ta c th nh ngha nhng loi kiu mi cho m hnh h thng. Lp bin (Entity Class) Lp bin l lp nm trn ng bin ca h thng vi phn th gii bn ngoi. N c th l biu mu (form), bo co (report), giao din vi cc thit b phn cng nh my in, my c nh (Scanner), v.v. hoc l giao din vi cc h thng khc. Trong UML, lp bin c k hiu nh trong hnh 4-9 (a). tm lp bin hy kho st biu ca s dng, mt tc nhn c th xc nh tng ng mt lp bin. Nu c hai tc nhn cng kch hot mt ca s dng th ch cn to ra mt lp bin cho c hai. Lp thc th (Control Class) Lp thc th l lp lu gi cc thng tin m n c ghi vo b nh ngoi. V d lp SinhVien l lp thc th. Trong UML, lp thc th c k hiu nh trong hnh 4-9 (b). Lp thc th c th tm thy trong cc lung s kin v biu tng tc. Thng thng phi to ra cc bng d liu trong CSDL cho mi lp thc th. Mi thuc tnh ca lp thc th tr thnh trng d liu trong bng d liu. Lp iu khin Lp iu khin l lp lm nhim v iu phi hot ng ca cc lp khc. Thng thng mi ca s dng c mt lp iu khin iu khin trnh t cc s kin xy ra trong n. Ch , lp iu khin khng t thc hin cc chc nng nghip v ca h thng, nhng chng li gi nhiu thng ip cho nhng lp c lin quan, do vy cn c gi l lp qun l. Trong UML, lp iu khin c k hiu nh trong hnh 4-9 (c).

Hnh 4-9 (a) Lp bin

(b) Lp thc th

(c) Lp iu khin

4.4.3 Biu lp trong H HBH Trong s nhng quan h kt hp pht hin mc 4.3, d nhn thy lp DanhMucMatHang cha cc MoTaMatHang, do vy gia hai lp ny c quan h kt nhp. Tng t, trong mi PhienBanHang c mt s DongBanHang, ngha l gia hai lp ny cng s c quan h kt nhp. Kt hp tt c cc mi quan h gia cc lp nh phn tch trn, chng ta xy dng c biu lp nh sau:

- 90 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Ghi-nhn-hng-bn 0..1
*

c-m-t-bi

DongBanHang

1
DanhMucMatHang 1 Cha 1..* MoTaMatHang

1..*
Cha-trong

1 * 1

c-s-dng-trong C 1 *

1
M-t

*
MatHang

CuaHang 1

1
PhienBanHang

Qun-l

1..*
Thc-hin 1..*

C c-qun-l-bi 1 1 NguoiQL Ghi-nhn-bn-hn

1 1
c-tr

HBH

c-thc-hin-bi

1 1 1 1
NguoiBan

c-khi-ng-bi

1
ThanhToan

KhachHang

Hnh 4-10 Biu lp ca HBH

4.5 Thuc tnh ca lp


Thuc tnh ca lp m t cc c tnh ca cc i tng trong lp . V d, mi khch hng ca lp KhachHang c h v tn, a ch, s ti khon, v.v. mi thi im thuc tnh ca mt i tng ca mt lp l gi tr d liu logic biu din cho tnh cht tng ng ca i tng, c gi l gi tr thuc tnh ca i tng ti thi im . Mi thuc tnh c: + Tn ca thuc tnh, + Kiu xc nh cc loi gi tr m thuc tnh m t, + Gi tr mc nh (khi u) cho mi thuc tnh. Vic gn gi tr khi u cho thuc tnh l tu chn, khng bt buc.

- 91 -

Phn tch, thit k hng i tng bng UML Kiu ca thuc tnh

on Vn Ban

Kiu ca thuc tnh l kiu d liu c s hoc l cc lp xy dng trc. Kiu thuc tnh ni cho ta bit v loi gi tr kiu s nguyn (Integer, int), s thc (Real, Float), gi tr logic (Boolean), k t (Character), thi gian (Time), v.v. c gi l cc kiu nguyn thu (primitive type). Ngoi cc kiu nguyn thu, ngi pht trin h thng c th to ra nhng kiu mi tu . Phm vi ca thuc tnh Thuc tnh ca lp cn c thm c tnh th hin kh nng nhn thy c hay c tnh qun l kh nng truy nhp ca thuc tnh i vi cc i tng khc, gi chung l phm vi quan st (gi tt l phm vi) ca thuc tnh ni ring v ca cc thnh phn trong lp ni chung. l cc c tnh c khai bo trong lp bng cc k hiu: + ng trc thuc tnh trong UML, hoc biu tng kho nhng khng b kho trong Rose th hin thuc tnh ny l cng khai (public), mi i tng u nhn thy c. Bt k i tng no trong h thng cng nh thy c v c quyn truy cp t mi lp khc. # ng trc thuc tnh trong UML, hoc biu tng kho v c cha bn cnh trong Rose th hin thuc tnh ny l c bo v (protected), nhng i tng c quan h k tha c th nhn thy c. - ng trc thuc tnh trong UML, hoc biu tng kho b kho v cha b ct i trong Rose , th hin thuc tnh ny l s hu ring (private), ch bn thn i tng ca mt lp nhn thy c, nhng i tng khc khng c php truy cp. Mc nh: trng hp nhng thuc tnh khng c k hiu c tnh phm vi no ng trc th c xem l mc nh, biu tng mc nh trong Rose l , ngha l nhng thuc tnh c th quan st c i vi cc lp trong cng gi. Phm vi mc nh cn c gi l phm vi gi hay phm vi ci t (Implementation). V d:
KhachHang + hoTen: String - soTaiKhoan: int # diaChi: String tuoi: int

KhachHang
hoTen : String diaChi : String taiKhoan : Integer tuoi : Integer

Thuc tnh mc nh

Hnh 4-11 Cc thuc tnh ca lp trong UML v trong Rose

- 92 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Thuc tnh hoTen c kiu String v l cng khai, soTaiKhoan c kiu int (cc s nguyn) l ring cn diaChi l c bo v, c kiu String. Lu : Khi ci t chng trnh th phm vi quan st ca thuc tnh cn tu thuc vo nhng qui nh khc nhau ca ngn ng lp trnh c la chn. V d c tnh mc nh, hay c bo v ca thuc tnh trong C++ v Java l khc nhau. Tnh cht lu tr thuc tnh Cc thuc tnh trong lp nu c xc nh th c th lu tr theo gi tr, hoc theo tham chiu, ngc li cha xc nh. Gi tr (By value): thuc tnh c gn tnh cht By value trong m hnh th n s c lu trong lp bn vng cha thuc tnh . Tham chiu (Reference): thuc tnh c gn gi tr ny cho bit n s c lu tr bn ngoi lp, nhng c con tr tham chiu n n. Cha xc nh (Unspecified): thuc tnh c gn tnh cht ny cho bit cch lu tr l cha xc nh, nhng khi pht sinh m chng trnh th Rose coi l By value. Thuc tnh tnh (static) Thng thng mi thuc tnh c mt bn sao d liu ring cho tng i tng ca mt lp. V d, lp NguoiBanHang ca mt Cng ty c thuc tnh tenGoi v taiKhoan. Khi thc hin h thng to ra hai i tng l hai ngi bn hng c th v mi i tng c mt bn sao tenGoi v taiKhoan ring, nh vy mi ngi s dng mt ti khon ring. Vic ny khng tht ph hp vi thc t, v tt c nhng ngi bn hng ch c chung mt ti khon, l ti khon ca Cng ty. Vic ny c th thc hin c bng cch s dng thuc tnh static cho taiKhoan. Nhng thuc tnh khai bo static trong mt lp l nhng thuc tnh c chia s i vi tt c cc i tng, ngha l ch c mt bn sao d liu cho tt c cc i tng ca lp . UML biu din thuc tnh static bng du $ trc tn thuc tnh. Thuc tnh suy dn (derived) Mt s thuc tnh c th c suy dn t nhng thuc tnh khc. V d, lp HinhChuNhat c thuc tnh chieuCao, chieuRong, nu c thm thuc tnh dienTich th tt nhin dienTich l c th suy ra t tch ca chieuCao * chieuRong. Trong UML, thuc tnh suy dn c k hiu bng du / trc tn thuc tnh. c tnh lu tr i tng Trong cc h thng i tng, c nhng i tng cn phi c lu tr vo CSDL c gi l i tng duy tr, nhng i tng khng cn lu tr b nh ngoi c gi l i tng khng bn vng. Trong Rose c th gn c tnh lu tr cho lp, cc c tnh ny c th l:

- 93 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Persistent: cho nhng lp c cc i tng c lu tr trong CSDL hay trong mt khun mu no , ngha l chng vn tn ti khi h thng khng thc hin. Transient: cho nhng lp m cc i tng ca n khng cn lu tr vo b nh ngoi. Absract: cho nhng lp tru tng, nhng lp khng c i tng th hin trong thc t. Thng lp tru tng c xy dng lm cc lp c s cho cc lp khc k tha. 4.5.1 Tm kim cc thuc tnh Vi mi lp c to ra trong biu lp nh hnh 4-10, chng ta mong mun tm c nhng thuc tnh sao cho: y : cha ng tt c cc thng tin v i tng ca lp, Tch bit hon ton: mi thuc tnh th hin c mt c tnh khc nhau ca i tng, c lp vi nhau: i vi mi i tng, cc gi tr ca cc thuc tnh l c lp vi i tng khc, tt nht l loi b nhng thuc tnh c th c suy dn t nhng thuc tnh khc. Lin quan n cc yu cu v cc ca s dng: cc thuc tnh c a vo lp phi c xc nh trn c s cc yu cu thc hin cng vic hoc cn t chc, lu tr, trao i cc thng tin v i tng. Trong m hnh ho cc khi nim, c th c nhng nhm ln ging nhau. Nhiu khi ta s dng nhng thuc tnh biu din cho nhng ci m ng l ra phi s dng khi nim lp hay cc mi quan h lin kt th hin chng. Sau y chng ta xt mt s lu nhm xc nh chnh xc cc thuc tnh cho lp nhm p ng cc nguyn tc c bn v trnh c nhng sai st trn. m bo cc thuc tnh n gin Cc thuc tnh trong m hnh lp phi l nhng thuc tnh n gin hoc l nhng kiu d liu thun tu: Mt cch trc quan, thuc tnh n gin nht l nhng thuc tnh c gi tr kiu d liu nguyn thu: Boolean, Number, String (Text), Time, v.v. Mt s cc kiu ph dng bao gm: DiaChi (Address), MauSac (Color), HinhHoc (Geometrics), SoDienThoai (PhoneNumber), SoBaoHiem (SocialSecurityNumber), MaSanPham (Universa ProductCode), cc kiu lit k (EnumeratedTypes), v.v. Thng thng, nn c trnh nhng thuc tnh phc tp v nn thay vo l nhng quan h lin kt gia cc lp. V d: hy xt lp NguoiBan, c th a thuc tnh heThongHienThoi vo th hin l ngi bn hng ang s dng h thng bn

- 94 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

hng no . Bi v h thng HBH l lp, nn n l kiu phc tp. Do vy, cch lm nh th khng phi l tt (hnh 4-12 (a)). th hin c mi quan h ny, ta c th s dng mi quan h kt hp nh hnh 4-12 (b).

NguoiBan
ten: String heThongHienThoi: HBH

S dng thuc tnh phc hp

Hnh 4-12 (a) Trng hp thit k lp khng tt NguoiBan


ten: String 1 S-dng 1

HBH
soHieu: Int

Hnh 4-12 (b) Tt hn l chuyn thuc tnh phc thnh quan h kt hp Qui tc hng dn u tin l: 1. Lin kt cc khi nim vi nhau bng quan h kt hp, khng bng cc thuc tnh phc hp. S dng gi tr d liu thun tu Ni mt cch tng qut, cc thuc tnh phi c gi tr d liu thun tu hoc kiu Data Type trong UML, trong vic xc nh duy nht khng c nhiu ngha trong ng cnh ca m hnh h thng. V d, i vi nhng kiu d liu nguyn thu th: + Khng cn tch bit cc gi tr s ging nhau, + Khng cn tch bit cc th hin ca SoDienThoai m chng c th c cng s, + Khng cn tch bit hai a ch v chng c th ging nhau, v.v. Song, i vi cc i tng th vic phn bit chng (thng qua nh danh) li c ngha v bt buc. V d, hai khch hng c th cng tn Nguyn Lam, nhng trong h thng phi c xc nh ring bit bng nh danh. Qui tc hng dn th hai l: 2. Phn t ca kiu d liu thun tu c th c xc nh trong mt thuc tnh ca mt lp, mc d n cng c th c s dng nh mt khi nim (lp) tch bit trong m hnh.

- 95 -

Phn tch, thit k hng i tng bng UML Khng s dng thuc tnh nh kho ngoi

on Vn Ban

Cc thuc tnh khng nn s dng lin kt cc khi nim li vi nhau trong m hnh khi nim, m ch c s dng lu gi cc thng tin chnh cc i tng ca lp c cc thuc tnh . Trong thit k m hnh CSDL quan h th nguyn l ny b vi phm v, ngi ta thng s dng thuc tnh l kho ngoi kt ni hai kiu thc th vi nhau. V d: trong hnh 4-13 (a), lp NguoiBan c thuc tnh soHieuHT c xem nh l kho ngoi th hin mt ngi bn hng s dng h thng bn hng c s hiu xc nh. Mc d thuc tnh ny l thuc tnh n (khng vi phm hng dn 1), nhng n l kho ngoi v th vn khng tt v do , nn thay bng quan h kt hp nh hnh 4-13 (b). NguoiBan
ten: String soHieuHT: int S dng thuc tnh n nhng l dng kho ngoi

Hnh 4-13 (a) Trng hp s dng kho ngoi NguoiBan


ten: String 1 S-dng 1

HBH
soHieu: int

Hnh 4-13 (b) Tt hn l chuyn thuc tnh phc thnh quan h kt hp T ta c qui tc hng dn th ba. 3. Nn kt ni cc khi nim vi nhau bng cc quan h kt hp, khng s dng thuc tnh (kho ngoi). Tm thuc tnh u v nh th no? c k cc m t bi ton, nghin cu cc h s cc chc nng h thng, cc t t ca s dng, cc kch bn tm tt c nhng thng tin, d liu cn phi lu tr, x l v cp nht. Cc mc ny thng l cc danh t, hoc mnh danh t n, c xem nh l i biu ca cc thuc tnh. V d: khi xem xt lung cc s kin: i vi mi mt hng, ngi bn nhp vo m sn phm thng qua my c th v s lng hng m khch hng chn mua. Nh vy, trong lp MatHang tt nhin phi c thuc tnh maSanPham, v qua n c th xc nh c tn gi, chng loi, gi bn, v.v l nhng thuc tnh ca MoTaMatHang. S dng cc qui tc hng dn nu trn xc nh chnh xc cc thuc tnh: c tnh xc nh phm vi quan st, tn gi, kiu v gi tr khi u (nu c) ca mi thuc tnh. c nhng gi thit, s phn loi hay nhng qui c cn p dng cho h thng hin thi khng nh li nhng thuc tnh ca tng lp. Gn cc thuc tnh cho cc lp i tng trong biu lp.

- 96 -

Phn tch, thit k hng i tng bng UML 4.5.2 Cc thuc tnh ca cc lp trong HBH

on Vn Ban

Theo cch hng dn nu trn, chng ta c th xc nh c cc thuc tnh cho cc lp thc hin ca s dng Mua hnh bng tin mt trong biu hnh 4-10 nh sau:
HBH soHieuHT: Int PhienBanHang ngayBan: Date gioBan: Time NguoiBan MatHang maSanPham: UPC DongBanHang soLuong: int CuaHang tenGoi: String diaChi: Address KhachHang

NguoiQL

ThanhToan tongSoTien: Number

DanhMucMatHang

MoTaMatHang maSanPham: UPC giaBan: Number moTa: Text

Hnh 4-14 Cc thuc tnh ca cc lp l nhng thuc tnh c xc nh thc hin ca s dng Thanh ton tin mt. Tng t, xem xt cc chc nng ca h thng, nghin cu cc ca s dng cn li v da vo nhng ti liu khc xc nh y v chnh xc cc thuc tnh cho cc lp i tng. Biu cc lp vi cc thuc tnh m t cu trc tnh ca h thng. N m t mi lin kt c cu trc gia cc mc d liu c thao tc, x l trong h thng. N cng m t cch cc thng tin c phn chia thnh tng phn cho cc i tng, ch ra cch cc i tng c chia thnh cc lp v th hin mi quan h gia cc i tng l g. Tm li, trong m hnh khi nim chng ta tp trung m t: Nhng khi nim l cc lp i tng trong h thng, Cc mi lin kt gia cc lp, Cc thuc tnh ca cc lp.

- 97 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

4.6 Cc phng thc ca lp


Phng thc (thao tc, hoc hm thnh phn) ca lp m t cc hnh vi v cc mi quan h ca cc i tng trong h thng. Mi phng thc c m t bi phm vi, tn gi, danh sch cc tham s v kiu tr li gi tr.
visibility name (arg1: Data Type1, arg2: DataType2, , argn: DataTypen): ReturnTy pe

Trong , visibility khai bo phm vi quan st ca phng thc trong lp. visibility c th l mt trong cc c tnh: public, protected, private, hay mc nh ging nh i vi cc thuc tnh nh nu trn. name l tn gi ca phng thc, theo qui c thng l cc ng t (cm ng t), vit hoa cc ch ci u tin ca cc t tr t u tin. argk l tn ca tham s hnh thc th k trong danh sch. DataTypek l cc kiu thuc tnh, thng l cc kiu ca cc thuc tnh khai bo trong lp. ReturnType l kiu d liu tr li sau khi phng thc kt thc. Nhng phng thc khng c kiu tr li (cc th tc) th s dng Void (void). V d: trong lp ThanhToan c phng thc + makePayment(upc: UPC, n: Integer): Boolean Lu : trong bng thit k lp, nhiu khi cc phng thc ch cn hin th ngn gn tn v danh sch cc tham s cho n gin. V d, phng thc trn c th vit ngn gn: + makePayment(upc, n), trong upc l m sn phm, n l s lng mt hng m khch hng chn mua. Cu hi thng xut hin khi thit k cc lp l c nhng loi phng thc no? Ni chung c nm loi phng thc: nghip v, qun l, truy cp, hin th (trao i) v tr gip. Phng thc nghip v (thc thi). Phng thc loi ny m nhn mt chc nng tc nghip m lp i tng cn thc hin. Chng c tm ra t nhng thng ip c gi ti cho i tng ca lp trong cc biu tng tc. V d, khi i tng :ThanhToan nhn c thng ip makePayment(soTien) trong biu cng tc (hay biu trnh t) th lp ThanhToan s c phng thc makePayment(soTien). Phng thc qun l: phng thc qun l cc i tng ca lp, lm nhim v to lp, hu b i tng. V d, cc ton t to lp v cc hu t l thuc nhm ny. Phng thc truy cp. Theo qui nh, nhng thuc tnh khai bo private hay protected trong lp l nhm hn ch vic truy cp ca cc i tng khc. Tuy nhin, trao i c vi nhau th nhiu i tng ca cc lp khc li cn truy cp n nhng d liu . Vic ny thc hin c thng qua nhng

- 98 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

phng thc truy cp c hay ghi (thay i) d liu thnh phn ca cc lp. V d, lp KhachHang c thuc tnh taiKhoan c khai bo l private khng cho cc i tng khc truy nhp t do. Nhng x l c vic thanh ton vi khch hng th h thng cng phi c cch truy cp c taiKhoan ca ngi mua hng, do vy phi c nhng phng thc nh getTaiKhoan() c, hay setTaiKhoan() cp nht s tin ca khch hng. Nhng phng thc loi ny thng khai bo l public. Phng thc tr gip: nhng phng thc m chnh cc lp cha n cn thc hin nhng cng vic c phn cng. thng l nhng phng thc c tnh cht private, protected. Phng thc hin th, trao i thng tin: nhng phng thc m nhn vic hin th thng tin ra cc thit b ngoi vi nh my in, my v, mn hnh, v.v. hay chuyn ra cc knh truyn thng trn mng.

4.7 Ghi nhn trong t in thut ng


T in thut ng l loi ti liu n gin nh ngha cc hng mc, cc thut ng c s dng trong qu trnh pht trin phn mm. T in thut ng hay t in m hnh, lit k v nh ngha cc hng mc mt cch r rng, d hiu nhm phc v tt hn trong giao tip, trao i gia cc thnh vin trong d n v gim thiu c nhng may ri ng tic do s hiu lm c th gy ra. Sau y l mt v d v t in thut ng trong h HBH.
Hng mc Bn hng MoTaMatHang.moTa: Text MatHang ThanhToan MoTaMatHang.giaBan: Number DongBanHang.soLuong: Int PhienBanHang DongBanHang CuaHang PhienBanHang.tongSoTien: Number ThanhToan.tongSo: Number MoTaMatHang.maSanPham: UPC Phm tr Ca s dng Thuc tnh Lp (kiu) Lp (kiu) Thuc tnh Thuc tnh Lp (kiu) Lp (kiu) Lp (kiu) Thuc tnh Thuc tnh Thuc tnh Ch thich M t qu trnh bn hng cho khch trong mt ca hng M t ngn gn v mt hng trong lp MoTaMatHang Hng bn trong mt ca hng Lp lm nhim v thu tin m khch hng tr khi mua hng Gi bn ca mt hng trong MoTaMatHang S lng mt mt hng m khch mua Mt giao dch bn hng Mt dng trong phin giao dch bn hng Ni c cc giao dch bn hng Tng s tin khch phi tr trong mt ln mua hng Tng s tin cn phi thu ca khc M sn phm trong MoTaMatHang

- 99 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Thng thng t in thut ng c xy dng t pha u tin, pha nh ngha bi ton v kho st cc ca s dng, cc hng mc c to ra, v sau tip tc b sung, lm mn hn cc pha tip theo. Ngha l, vic xy dng t in thut ng c thc hin song hnh vi cc cng vic c t yu cu, xy dng ca s dng, thit lp m hnh khi nim, biu tun t, cng tc, v.v. Khng c mu chnh thc no c th p dng cho vic m t t in thut ng.

4.8 Thc hnh trong Rational Rose


S dng Rational Rose ([11], [17]) thc hin nhng cng vic sau: 1. To lp v hu b biu lp. Lu : trong Rose, biu lp c thit lp trong quan st logic (Logical View), khi to lp m hnh mi biu lp Main c to ra ngay trong Logical View. Ta c th to ra mt s biu khc trong quan st ny m t m hnh cu trc tnh ca h thng. 2. B sung thm cc loi lp: lp thng thng, lp hin thc, lp tin ch, v.v. 3. c t cc lp: tn lp, chn stereotype, c tnh xc nh phm lp (Public, Protected, Private, Package hay Implementation), c tnh lu tr ca lp (Persistent, Transient), v.v. 4. To lp v hu b gi (Package), 5. a cc thuc tnh vo lp: tn, kiu v gn tr khi u, gn cc thuc tnh lu tr (By Value, By Reference, Unspecified), gn thuc tnh tnh (Static), gn thuc tnh suy dn (Derived), 6. Thit lp cc mi quan h gia cc lp trong biu : tn gi v hng ca quan h, gn stereotype, cc vai tr Role cho quan h, phm vi ca quan h (Public, Protected, Private, Package hay Implementation) v cc thuc tnh khc nh Static, By Value, By Reference, Unspecified, Friend, Link Element, Key / Qualifier, v.v. Thc hnh cc chc nng trn xy dng biu lp hnh 4-10 v sau b sung thm cc thuc tnh t hnh 4-14. Lu : Rational Rose 4.0 c th np phin bn demo vi ngn ng lp trnh C++ v trong mi trng Window 95 t http://www.ratinal.com/demos. Rose l cng c tt gip ta th hin c nhng kt qu phn tch, thit k h thng hng i tng. Tuy nhin cn mt s k php ca UML cha c th hin trong Rose. Rose khng cho php v hnh ch nht gii hn ng bin ca h thng. Biu lp trong Rose thiu k hiu biu din cho cc loi quan h kt nhp khc nhau (kt nhp thng thng, chia s v hp thnh). Trong biu trnh t khng c k hiu cho s kin to lp v hu b i tng.

- 100 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Cu hi v bi tp
4.1 in vo ch chng ca nhng cu sau: + Khi nim l tng, . . . + S khc bit chnh gia phn tch hng i tng v phn tch c cu trc l s phn r h thng thnh . . . . + Trong UML m hnh khi nim ca mt h thng c m t bi . . . . . . . . . trong cc m t vn bn c th l i biu ca lp hoc thuc tnh ca lp. + C th da vo s phn loi cc phm tr khi nim . . . . . . cho h thng.Quan h kt hp gia hai lp l . . . . . . . cc i tng ca hai lp . + Cc i tng c mi quan h . . . . vi nhau mi c th cng tc vi nhau theo cc ng . . . . . . gia cc lp. + Lp tru tng l . . . . cn lp c th l . . . . + Trong h thng hng i tng, cc i tng c xc nh duy nht . . . . 4.2 Nu mt s phng php chnh pht hin cc lp i tng trong giai on phn tch h thng theo cch tip cn hng i tng. 4.3 M t trong UML th hin: Mi sinh vin c th theo hc nhiu nht l 6, t nht l 4 mn hc v mi mn hc c nhiu nht l 30 sinh vin c th ghi danh. 4.4 Xc nh cc lp v thit lp biu lp cho h thng Qun l th vin (Tip theo ca bi tp 3.4). 4.5 Xy dng m hnh khi nim cho H thng rt tin t ng ATM (Automatic Teller Machine) (Tip theo ca bi ton 3.5). 4.6 Xy dng m hnh khi nim cho h thng M phng h thng thang my cho cc nh cao tng (Tip theo ca bi ton 3.6). 4.7 p dng phng php phn tch cc mc ch ca cc ca s dng chuyn biu ca s dng hnh sau sang biu lp. H thng bn sch
t mua sch Lp ho n Ngi mua Giao sch Kim k kho Ngi bn Kim tra Credit Ti v

- 101 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

4.8 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v mc tiu ca phng php hng i tng. Mc tiu chnh ca [(1)] l phn tch h thng thnh cc i tng hoc xc nh cc [(2)], l nhng [(3)] m chng ta bit r v chng. M hnh [(2)] l cch biu din cc [(4)] trong phm vi ca bi ton. Chn cu tr li: a. khi nim b. thc th c. phng php hng i tng d. s vt

- 102 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

CHNG V

M HNH NG THI: CC BIU TNG TC V HNH NG TRONG H THNG


Chng ny trnh by v m hnh m t hnh vi ca h thng: M t hnh vi ca cc i tng: Biu trng thi, trnh t, cng tc v biu hnh ng. Cc s kin, trng thi v thao tc ca cc i tng trong h thng, S trao i, tng tc gia cc i tng, Xy dng cc biu trng thi v biu trnh t m t cc hot ng ca h thng phn mm.

5.1 M hnh ho hnh vi h thng


Tt c cc h thng u c cu trc tnh v hnh vi ng cn c m hnh ho. UML cung cp cc biu th hin c c hai phng din : Cu trc tnh c m t bi: biu lp, cc i tng v cc mi quan h ca chng. Hnh vi ng c m t bi: biu trng thi, trnh t, cng tc v biu hnh ng. Cc i tng trao i vi nhau bng cch gi cc thng ip thc hin cc nhim v trong h thng. S trao i hay cn gi l s tng tc trong h thng c th hin trong cc biu : (i) Biu trng thi (StateDiagram): m t cc trng thi, hnh vi ca cc i tng. Biu trng thi bao gm nhng thng tin v nhng trng thi khc nhau ca cc i tng, th hin cc i tng chuyn t trng thi ny sang trng thi khc nh th no, hnh vi ng x ca mi i tng khi c cc s kin xy ra lm thay i trng thi. Biu trnh t (Sequence Diagram): m t s trao i, tng tc ca cc i tng vi nhau theo trnh t thi gian. Biu trnh t bao gm cc phn t biu din cho cc i tng, cc thng ip c gi v nhn trnh t theo thi gian thc hin cc ca s dng ca h thng. Biu cng tc (Collaboration Diagram): m t s tng tc ca cc i tng vi nhau theo ng cnh v khng gian cng vic. Biu hnh ng (Activity Diagram): m t cch cc i tng tng tc vi nhau nhng nhn mnh v cng vic, xc nh cc hnh ng v th t thc hin nhng hnh ng .

(ii)

(iii) (iv)

- 103 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Xy dng biu tng tc l thc hin vic gn trch nhim cho cc i tng. T biu tng tc, ngi thit k c th pht hin thm cc lp, cc thao tc cn thc hin ca mi lp, v.v. Do vy, biu tng tc tr thnh nn tng cho cc bc cn li ca qu trnh pht trin phn mm. Nhn xt: Khng phi tt c cc h thng u cn c bn biu trn m t hnh vi ng x ca cc i tng trong cc ca s dng. S cc biu tng tc cn xy dng hon ton ph thuc vo mc kh, phc tp ca bi ton ng dng. Mt s ngi s dng biu trnh t, biu trng thi trong pha phn tch m t hot ng ca h thng, sau xy dng biu cng tc, biu hnh ng phc v cho vic thit k chi tit cc thnh phn ca h thng ([10], [15], [16]). i vi nhng h thng tng i n gin th ch cn biu trnh t v biu trng thi. 5.1.1 Cc s kin v hnh ng ca h thng Trong qu trnh tng tc vi h thng, cc tc nhn gy ra cc s kin cho lm h thng hot ng v yu cu h thng phi thc hin mt s thao tc p ng cc yu cu ca nhng tc nhn . Cc s kin pht sinh bi cc tc nhn c lin quan cht ch vi nhng hot ng m h thng cn thc hin. iu ny suy ra l chng ta phi xc nh c cc hot ng ca h thng thng qua cc s kin m cc tc nhn gy ra. Vy, s kin l mt hnh ng kch hot h thng n hot ng, hoc tc ng ln h thng n hot ng tip theo mt cch no . Ni cch khc, s kin l ci g xy ra v kt qu l n c th gy ra mt s hot ng sau ca h thng. V d: sau khi nhp vo ht cc mt hng m khch chn mua, ngi bn hng nhn phm Kt thc(End Sale), th h thng chuyn sang thc hin chc nng thanh ton vi khch mua hng. Vic ngi bn hng nhn phm Kt thc chnh l s kin lm cho h thng chuyn sang trng thi khc. Cc s kin c th l c lp hoc c lin h vi nhau. V d: Nhp thng tin v cc mt hng v Thanh ton l hai s kin ph thuc, s kin sau phi xy ra sau s kin th nht, cn s kin Tr tin mt v tr bng sc l c lp vi nhau. Nhng s kin c lp c th l nhng s kin ng thi. Bi v nhng s kin ny khng ph thuc vo nhau nn c th xy ra trong cng mt thi im. V d Hin th s tin d tr li cho khch v Cp nht cc mt hng trong h thng HBH l hai s kin c lp vi nhau v c th xy ra ng thi. Cc s kin cng c th chia thnh hai loi: cc s kin bn trong v cc s kin bn ngoi. S kin bn trong l s kin xy ra ngay bn trong h thng, trong mt i tng v c kch hot bi i tng khc. S kin ngoi l s kin c to ra bn ngoi phm vi ca h thng. S kin vo ca h thng l nhng s kin ngoi tc ng vo h thng v do cc tc nhn to ra.

- 104 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Hot ng ca h thng l nhng thao tc m h thng phi thc hin tr li, p ng cho nhng s kin vo. Mt s hot ng ca h thng c th to ra nhng s kin ra cho cc tc nhn thng bo nhng s kin tip theo ca h thng c th xy ra, hoc nhc cc tc nhn phi hnh ng nh th no c nhng thng tin mong mun. iu hin nhin l: Cc s kin vo s kch hot h thng hot ng v h thng hot ng l tr li cho cc s kin vo m cc tc nhn to ra. Cc s kin v hot ng ca h thng thng c s dng m t hnh thc cc kch bn cho ca s dng. V d, kho st kch bn ca ca s dng Gi in thoi, trong c hai tc nhn l ngi gi v ngi nghe. Dy cc s kin ca ca s dng ny c m t nh sau:
Cc s kin vo 1. Ngi gi nhc tai nghe 3. Ngi gi quay s (v d 5652 288) Cc s kin ra 2. Ting bp bp bo hiu my in thoi sn sng bt u trao i m thoi 4. Tn hiu in thoi c ni vi ngi nghe. 5. in thoi ca ngi c gi rung chung (nu khng bn m thoi) 7. Chung ngng ku. 8. ng dy in thoi c kt ni hai ngi m thoi vi nhau. 10. ng dy b ngt.

6. Ngi nghe nhc ng tai nghe v tr li

9. Ngi nghe t tai nghe xung 11. Ngi gi t tai nghe xung kt thc cuc gi.

Cc s kin vo l do ngi gi to ra, cc s kin ra li tc ng n ngi nghe. H thng in thoi s hot ng tr li cho cc s kin vo ng thi pht sinh ra cc s kin ra. Dy cc s kin v hot ng ca H thng in thoi c m t mt cch trc quan hn nh sau:

: HTinThoi
Ngi gi Nhc tai nghe m hiu mi gi Quay s T gi m hiu sn sng Rung chung Ngi nghe tr li Chung ngng ku ng dy thng ng dy thng t tai nghe xung ng dy b ngt Ngi nghe

- 105 -

ng dy b ngt

Phn tch, thit k hng i tng bng UML

on Vn Ban

Hnh 5-1 Biu vt cc s kin khi thc hin ca s dng Gi in thoi 5.1.2 S trao i thng ip gia cc i tng Trong cc biu tng tc, cc i tng trao i vi nhau bng cc thng ip. Cc i tng thng c gi, nhn theo: Cc giao thc trao i tin (Communication Protocol), Hay cc li gi hm, mt i tng gi mt hm ca i tng khc x l cc yu cu. C th thc hn vic trao i thng tin trn mng, hoc trong mt my tnh v phn ln thc hin trong thi gian thc (Real-Time). Cc thng ip c ba kiu trao i chnh: 1. Kiu n gin: c k hiu l
msg()

Biu din cho dng iu khin chuyn thng ip msg() t i tng ny sang i tng khc m khng cn bit chi tit v s trao i thng tin. 2. Kiu ng b: c k hiu l
msg()

Biu din cho dng iu khin c ng b ho, ngha l khi c nhiu thng ip gi n (nhn c) th thng ip trc (c mc u tin cao) phi c x l xong v sau khi kt thc cng vic th thng ip tip theo mi c x l. msg() 3. Kiu d b: c k hiu l Biu din cho dng iu khin thng ip khng cn ng b, ngha l khi c nhiu thng ip gi n (hay nhn c) th cc thng ip c x l m khng cn bit nhng thng ip khc kt thc hay cha v th t thc hin l khng quan trng.

5.2 Biu trnh t


Theo yu cu ca giai on phn tch, chng ta ch cn nh ngha h thng nh l mt hp en, trong hnh vi ca h thng th hin c nhng g (What?) n cn thc hin v khng cn th hin nhng ci thc hin nh th no (How?). V vy, nhim v chnh ca chng ta trong giai on ny l xc nh v m t c cc hot ng ca h thng theo yu cu ca cc tc nhn. Ngha l, phi tm c cc s kin, cc thao tc (s tng tc) ca cc i tng trong tng ca s dng. Biu trnh t gip chng ta th hin c nhng kt qu .

- 106 -

Phn tch, thit k hng i tng bng UML 5.2.1 Cc thnh phn ca biu trnh t

on Vn Ban

Biu trnh t m t s trao i thng ip gia cc i tng trnh t theo thi gian, thng ip c gi v nhn bi cc i tng ang hot ng trong h thng. Biu trnh t c th hin theo hai trc: (i) Trc dc trn xung ch thi gian xy ra cc s kin, hay s truyn thng ip, c biu din bng cc ng thng ng t nt bt u t nh n y ca biu . (ii) Trc ngang t tri qua phi l dy cc i tng tham gia vo vic trao i cc thng ip vi nhau theo chiu ngang, c th c c cc tc nhn. i tng c biu din bng hnh ch nht trong c tn i tng c th v/hoc tn lp cng c gch di (hoc tn lp c gch di biu din cho mt i tng bt k ca lp ). Biu trnh t c c t trn xung di, t tri sang phi. Th t cc i tng trong biu phi c sp xp sao cho n gin nht c th d quan st. Thi gian thc hin mt thng ip ca mt i tng, hay cn gi l hot ng ca i tng c biu din bng hnh ch nht hp dc theo trc thng ng ca i tng . V d, :MyComputer gi mt thng ip print(aFile) ti :Printer c m t nh hnh 5-2. :MyComputer print(aFile) :Printer

Hnh 5-2 Cc thnh phn c bn ca biu trnh t Mi thng ip u c tn gi th hin c ngha ca thng tin cn gi v cc tham s v d liu lin quan. Thng thng l cc li gi hm. Khi nh ngha cc lp sau ny th mi thng ip nhn c s tr thnh mt phng thc. Mt i tng c th gi thng ip ti chnh n. Nhng thng ip ny gi l phn thn, n ch ra rng i tng gi chnh cc thao tc ca mnh thc hin. Ch rng tc nhn ngoi kch hot cc i tng trong biu trnh t hot ng, nhng n khng phi l phn t ca biu loi ny. Mt khc, trong khi Notes c s dng ch thch cho cc i tng trong biu trnh t th Scripts c s dng ch thch cho cc thng ip. Chng c t bn tri ca mt hot ng ca i tng , ngang vi mc thng ip cn ch thch. Scripts c s dng m t cc iu kin logic hoc iu kin lp, v d lnh IF hay WHILE, v.v. trong qu trnh trao i thng ip. Scripts khng h tr to ra

- 107 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

m chng trnh, nhng n gip cho ngi pht trin h thng bit c nhng iu kin cn phi tun theo. :DoiTuong
While B begin

:DoiTuongB msg()

:DoiTuong
If(DK) then else

:DoiTuongB msg() msg()

end loop

Hnh 5-3 Scripts trong biu trnh t Chng ta xt tip ca s dng Gi in thoi, trong c hai tc nhn l Caller (ngi gi) v Callee (ngi nghe) . H thng nhn c cc s kin vo c k hiu l cc li gi hm: liftReceiver() (nhc tai nghe), dialsPhoneNumber() (quay s), answerPhone() (tr li in thoi) v hangUp() (t tai nghe xung, nhc tay ln). Biu trnh t m t cho cc hot ng trn c xc nh nh sau: : System
Caller liftReceiver() dialsPhoneNumber() Callee

answerPhone() hangUp() hangUp()

Hnh 5-4 Biu trnh t m t hot ng Gi in thoi 5.2.2 Xy dng biu trnh t Cc bc xy dng biu trnh t 1. Xc nh cc tc nhn, cc i tng tham gia vo ca s dng v v chng theo hng ngang trn cng theo ng cc k hiu, 2. Xc nh nhng thng ip (li gi hm) m tc nhn cn trao i vi mt i tng no , hoc gia cc i tng tng tc vi nhau theo trnh t thi gian v v ln lt cc hot ng t trn xung theo th t thc hin trong thc t. Cn xc nh chnh xc cc loi thng ip trao i gia cc i tng l n gin, ng b hay d b.

- 108 -

Phn tch, thit k hng i tng bng UML 5.2.3 Cc biu trnh t m hnh hnh ng ca h HBH

on Vn Ban

Chng ta tip tc xy dng mt s biu trnh t m t cc hnh vi ca h thng bn hng HBH. Hnh vi ca h thng c th hin trong cc biu trnh t thng qua s tng tc ca cc i tng vi nhau. S tng tc c th hin bng cc li gi hm v s c khai bo cng khai (public) trong cc lp. Biu m t hot ng ca ngi bn hng v h thng Nh trong cc kch bn phn tch trn, sau khi chn hng, ngi mua s a gi (hoc xe) hng n quy tr tin. Ngi bn hng phi nhp vo cc thng tin v s lng ca mi mt hng. Nhng thng tin v mt thng c xc nh thng qua m sn phm upc (thuc lp UPC Universal Product Code). Vy i tng :NguoiBan phi gi n cho :HeThong (mt h thng bn hng) thng ip enterItems()(upc, n), nhp vo m sn phm upc v n n v hng cn mua. Khi nhp xong tt c cc mt hng ca khch mun mua th phi bo cho h thng bit l nhp xong bng cch nhn nt Kt thc, ngha l gi cho h thng thng ip endSale(). H thng s thng bo cho khch mua hng bit tng s tin phi tr. Nu khch hng tr bng tin mt th :NguoiBan gi tip n cho :HeThong thng ip makePayment(soTien). Cc hot ng trn c m t trong biu trnh t nh hnh 5-5.
:NguoiBan enterItems(upc, n)

:HeThong

endSale()() makePayment(soTien)

Hnh 5-5 Biu trnh t m t s tng tc gia ngi bn v h thng Biu trnh t m t ca s dng Thanh ton tin mt Khi i tng :HeThong nhn c yu cu thanh ton ca khch hng thng qua ngi bn, ngha l n nhn c thng ip makePayment(soTien) th n phi gi cho mt i tng mt phin bn hng: PhienBanHang mt yu cu tng t. i tng mt phin bn hng li yu cu i tng to ra mt i tng mt ln thanh ton: ThanhToan thanh ton theo soTien m khch a. i tng mt ln thanh ton gi li thng ip balance() cho h thng :HeThong bit s tin d (soTien khch a tr i s tin mua hng) phi tr li cho khch v hin th (displayBalance()) ln mn hnh, ngi bn thng bo li cho khch hng khi khch tr tin mt. Biu

- 109 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

trnh t m t dy cc hnh ng trao i gia cc i tng nu trn c thit lp nh sau:

: HeThong NguoiBan

: PhienBanHang

: ThanhToan

makePayment(soTien)

makePayment(soTien) makePayment(soTien) balance()

displayBalance()

balance()

Hnh 5-6 Biu trnh t m t ca s dng Thanh ton (tin mt) Biu trnh t m t ca s dng Thanh ton bng th tn dng Khi thanh ton tin hng, khch hng c th tr bng th tn dng. Th tn dng c xc nh thng qua soHieuThe (s hiu th) v hanSD (hn s dng). iu c th hin bng vic gi mt thng ip makeCreditPayment(soHieuThe, hanSD) cho h thng. Thng thng h thng phi gi mt yu cu kim duyt th requestApproval(yeuCau)) ti b phn kim duyt th tn dng l tc nhn ngoi ca h thng. H thng s da vo kt qu tr li ca b phn kim duyt thanh ton vi khch hng bng cch tr i s tin mua hng trong th tn dng nu n hp php, ngha l thc hin handleCreditReply() (x l th kim duyt), da vo kt qu ca b phn kim duyt. Biu trnh t m t s tng tc gia ngi bn hng, h thng v b phn kim duyt th KiemDuyet c thit lp nh sau:
: HeThong

NguoiBan

KiemDuyet

makeCreditPayment(soHieuThe, hanSD)

requestApproval(yeuCau)

handleCreditReply() displayApproval()

Hnh 5-7 Biu trnh t m t s trao i gia ngi bn, h thng v b phn kim duyt

- 110 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tng t nh trn, chng ta c th to ra nhng biu trnh t cho cc ca s dng khc ca h thng. 5.2.4 Ghi nhn cc hot ng ca cc lp i tng chng 4 chng ta xy dng cc lp v tp trung ch yu vo vic pht hin cc thuc tnh ca chng. Khi xy dng c cc biu trng thi v biu trnh t th chng ta hiu hn v s tng tc gia cc i tng trong h thng. Chng ta c th dn dn xc nh c hnh vi ng x ca cc i tng, ngha l xc nh cc hm thnh phn ca cc lp. Nghin cu cc biu trnh t chng ta nhn thy: Khi c mt thng ip mgs() gi n cho mt i tng th lp ca i tng phi c hm thnh phn l msg(). Da vo nguyn l nu trn v cn c vo cc biu trnh t hnh 5-5, 5-6, 5-7, lp HeThong s c nhng hm thnh phn nh sau:
HeThong

enterItems() endSale() makePayment() balance() makeCreditPayment() handleCreditReply()

Hnh 5-8 Cc thao tc ca h thng c ghi nhn vo lp c tn l HeThong Khi xy dng thm biu trnh t cho ca s dng Thanh ton bng sc th nhng hm nh: makeCheckPayment(), handleCheckReply(), v.v s c b sung thm vo lp HBH. Lu : 1. n gian, trong giai on ny chng ta c th b qua cc i s ca cc hm thnh phn ca cc lp. 2. Cc hm thnh phn cng c phm vi truy cp ging nh cc thuc tnh trong cc lp i tng. Do vy, ngi thit k c th khai bo chng l cng khai (public), c bo v (protected), s hu ring (private) hay mc nh nh nu phn nh ngha cc thuc tnh (chng 4). Tng t, chng ta b sung cc hm thnh phn vo cc lp khc cn li ca HBH.

- 111 -

Phn tch, thit k hng i tng bng UML 5.2.5 Cc hp ng v hot ng ca h thng

on Vn Ban

Nh thy trn, biu trnh t mi ch cho chng ta bit tn ca nhng nhim v m mi i tng cn phi thc hin khi nhn c mt thng ip, nhng cha m t cch thc hin nhng cng vic nh th no. hiu r hn v nhng hnh vi ca cc i tng v h tr cho thit k v ci t cc lp sau ny, chng ta cn xy dng cc hp ng (Contract) hay cc c t cho nhng hot ng (thao tc, hm) xc nh c. Hp ng cho cc hot ng ca h thng m t v s thay i trng thi m khi bt u th phi tho mn tin iu kin (pre-conditions) v sau , khi kt thc s tho mn hu iu kin (post-conditions). Nhng hp ng ny c th lu nhng tp khc nhau v c gn vo biu tng ng. Pre-conditions: l nhng iu kin m trng thi ca h thng c gi thit l tho mn trc khi thc hin mt thao tc, mt hm. Post-conditions: l nhng iu kin m trng thi ca h thng phi tho mn sau khi thc hin xong mt thao tc, mt hm. Mt cch hnh thc, hp ng cho hot ng Op() c th vit theo b ba ca Hoare: {Pre-conditions} Op() {Post-conditions} Th hin rng: nu hot ng Op() bt u t trng thi tho mn Pre-conditions th sau khi kt thc thc hin h thng s trng thi tho mn Post-conditions. Pre-condition v Post-condition l nhng mnh boolean (mnh iu kin logic). V d: hy xt thao tc enterItems()(upc: UPC, soHang: Int) ca lp HBH. Pre-conditions: H m chun cc sn phm ton cu UPC c bit trc i vi h thng. Post-conditions: bao gm nhng iu kin sau: + Nu mt hng nhp vo l u tin th phi to ra mt i tng mi l phienBanHang ca lp PhienBanHang v kt hp n vo h thng HBH, + To ra mt i tng dongBanHang ca lp DongBanHang cho mt hng va nhp vo v gn dongBanHang.soLuong = soHang (i s ca hm), + dongBanHang c lin kt vi MoTaMatHang da vo m upc. Ngoi Pre-conditions v Post-coditions, chng c th b sung thm m t tm tt v trch nhim, kiu, lp no, tham chiu ti nhng chc nng no, ch thch, nhng ngoi l v kt qu, v.v. [17]. Chng ta c th xy dng cc hp ng cho cc qui trnh x l thng tin nh sau: 1. T cc biu trnh t, xc nh cc thao tc, hm, hot ng ca cc lp trong h thng, 2. Vi mi thao tc trn hy xy dng mt hp ng, 3. M t tm tt nhng trch nhim chnh m h thng phi thc hin khi thc thi thao tc ny. 4. Trong Post-condition phi nu c cc trng thi ca cc i tng sau khi kt thc thao tc. 5. m t Post-conditions, hy cn c vo:

- 112 -

Phn tch, thit k hng i tng bng UML + Vic to lp, hu b cc i tng + Nhng thay i ca cc thuc tnh + Thit lp hay hu b cc mi lin kt gia cc i tng.

on Vn Ban

c t cc thao tc (hm thnh phn) ca lp HBH. Sau y chng ta xt mt s c t cc hm theo cc hp ng chnh. 1. Hp ng nhp cc thng tin v cc mt hng Hp ng
Tn gi: Trch nhim: enterItems()(upc: UPC, soLuong: Int) Nhp ln lt cc thng tin v nhng mt hng m khch chn mua v a chng vo phin bn hng. Hin th cc thng tin m t v gi bn ca tng mt hng. System (H thng) R1.1, R1.3, R1.9 v ca s dng Bn hng S dng phng php truy nhp nhanh vo CSDL Nu upc khng hp l th thng bo li UPC c bit trc

Kiu / Lp: Tham chiu ti: Ch : Ngoi l: Kt qu (Output): Pre-conditions: Post-conditions:

+ Nu mt hng nhp vo l u tin th phi to ra mt i tng phienBanHang ca lp PhienBanHang v kt hp n vo h thng HBH, + To ra mt i tng dongBanHang ca lp DongBanHang cho mt hng va nhp vo v gn dongBanHang.soLuong = soHang (i s ca hm), + dongBanHang c lin kt vi MoTaMatHang da vo m upc.

2. Hp ng v vic kt thc nhp hng Hp ng


Tn gi: Trch nhim: Kiu / Lp: Tham chiu ti: Ch : Ngoi l: Kt qu (Output): Pre-conditions: Post-conditions: endSale()() Ghi nhn nhng mt hng c nhp. Hin th tng s tin bn hng. System (H thng) R1.2, v ca s dng Bn hng Nu phin bn hng khng thc hin c th c li UPC c bit trc

PhienBanHang.ketThuc nhn gi tr true.

- 113 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Lu : Lp PhienBanHang t hnh 4-14 s c b sung thm thuc tnh ketThuc khi phn tch ca s dng Thanh ton. Thuc tnh ny c kiu logic v s nhn gi tr true khi kt thc vic nhp d liu thnh cng v bt u thc hin thu tin ca khch hng. 3. Hp ng thc hin thu tin mt Hp ng
Tn gi: Trch nhim: Kiu / Lp: Tham chiu ti: Ch : Ngoi l: Kt qu (Output): Pre-conditions: Post-conditions: makePayment(soTien: DVT), trong DVT l lp cc loi tin Ghi nhn cc thng tin lin quan n vic thanh ton, tnh s tin d cn tr li cho khch. System (H thng) R2.1, v ca s dng Bn hng Nu phin bn hng khng kt thc th c li Nu soTien nh hn tongSoTien th cng c li

+ Mt i tng thanhToan c to lp, + s tin d l soTien - ThanhToan.tongSoTien + thanhToan c lin kt vi phienBanHang c to lp hp ng 1. thc hin vic cp nht nhng mt hng bn, tng s tin, v.v.

Tng t, hy xy dng cc hp ng cho nhng thao tc cn li ca cc lp. Lu : i vi nhng ca s dng c nhiu i tng tham gia th biu trnh t l kh phc tp, do vy n khng thch hp. Mun hiu r hot ng ca cc i tng th tt nht l nn phn tch nhng ca s dng phc hp thnh cc ca s dng tng i n gin, d hiu v m t c bng biu trnh t mt cch n gin hn.

5.3 Biu trng thi


Bc nghin cu tip theo sau biu trnh t l biu trng thi (State Diagram, State Machine Diagram, State Chart Diagram ). Biu trng thi m t cc thng tin v cc trng thi khc nhau ca i tng, th hin cc i tng chuyn t trng thi ny sang trng thi khc nh th no, hot ng ca i tng trong mi trng thi ra sao. Biu trng thi th hin chu k hot ng ca i tng, cc h thng con v ca c h thng, t khi chng c to ra cho n khi kt thc. Biu trng thi m t: Cc trng thi m cc i tng c th c,

- 114 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Cc s kin: cc thng ip nhn c, cc li c th xut hin, iu kin no c th tr thnh ng (true), khong thi gian qua, v.v. tc ng ln trng thi lm bin i chng. Biu ny l gii php tt m hnh ho hnh vi ng ca cc lp i tng. Trong mt d n, khng nht thit phi to ra cc biu trng thi cho tt c cc lp. Tuy nhin, i vi nhng lp c nhiu hnh vi ng, c nhiu trng thi hot ng khc nhau th biu trng thi l hu ch, gip chng ta hiu r h thng hn. 5.3.1 Trng thi v s bin i trng thi Mi i tng trong h thng u c chu k sng v mi thi im u c mt trng thi no . V d, ngi bn hng trong h thng HBH ang bn hng, phin bn hng c thanh ton, v.v. Trng thi l mt trong cc iu kin c th i tng tn ti, l kt qu ca mt hot ng trc ca i tng. Trng thi ca i tng thng c m t trong hnh ch nht gc trn v c xc nh bi: Tn gi trng thi, thng bt u bng ng t, Bin trng thi m t cc gi tr hin thi ca trng thi, Hot ng l hnh vi m i tng s thc hin khi n vo trng thi . Hot ng ca trng thi c m t hnh thc nh sau: event_name argument_list / action_exp Trong , event_name: Tn ca s kin, c th l mt trong cc s kin chun: exit (thot ra), entry (nhp vo), do (thc hin). argument_list: danh sch cc s kin, action_exp: nhng hot ng cn thc hin bao gm cc li gi hm, thao tc trn cc bin trng thi, v.v. V d: trng thi Login (ng nhp h thng) c m t trong UML:
Login LoginTime = CurrentTime entry / type login exit / login(UserName, Password) do / get UserName do / get Password help / display help

Hnh 5-9 Trng thi Login

- 115 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Khi h thng trng thi Login th bin LoginTime (thi gian khi khi nhp) c gn l CurrentTime (thi gian hin thi) ca my tnh. S kin vo ca trng thi ny l g t login v thot ra khi trng thi ny th phi thc hin li gi hm login(UserName, Password). Cc hot ng ca i tng trng thi ny l: Nhn vo UserName (tn ngi s dng), Password (mt khu), v hin th s tr gip display help. Lu : Khi khng cn m t chi tit th c th ch cn tn gi xc nh trng thi trong cc biu . C hai trng thi c bit l trng thi bt u c k hiu l: trng thi kt thc, c k hiu l v

Biu trng thi thng c trng thi bt u cn trng thi kt thc th c th c hoc khng tu vo chu k hot ng ca cc i tng. Trong biu , ng mi tn ch ra s bin i t mt trng thi sang trng thi khc khi c cc s kin xy ra lm thay i cc trng thi. Trng thi ca i tng s b thay i khi c ci g xy ra, ngha l khi c mt hay nhiu s kin xut hin. S bin i trng thi hay s chuyn trng th hin mi quan h gia cc trng thi vi nhau. S chuyn trng c th hin trong biu bng mi tn c nhn l s kin, thao tc (hm c i s), hoc iu kin cm canh (guard). S chuyn trng c th l qui, ngha l trong mt iu kin nht nh, mt i tng c th quay li trng thi c ca n. 5.3.2 Xc nh cc trng thi v cc s kin xc nh c cc trng thi v cc s kin chng ta cn tr li cho cc cu hi sau: Mt i tng c th nhng trng thi no? Lit k tt c cc trng thi c th c trong h thng ca mi i tng. Nhng s kin no c th xut hin? Bi v s kin c th lm bin i trng thi, do vy, t cc s kin c th xc nh c cc trng thi ca i tng. Nhng trng thi mi no s xut hin? T mt trng thi, i tng c th chuyn sang trng thi mi khi mt s s kin xc nh xut hin. mi trng thi, hot ng ca i tng l g? S tng tc gia cc i tng l g? S tng tc gia cc i tng thng gn cht vi cc trng thi ca i tng. Nhng s kin, hay chuyn i trng thi no l khng th xy ra? Mt s s kin, hay trng thi khng th chuyn i sang trng thi khc c, v d khi khch mua hng tr bng th tn dng khng hp php th phin bn khng thc hin c. Ci g lm cho i tng c to ra? i tng thng c to ra bi mt, hay mt s s kin.

- 116 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Ci g lm cho i tng b hu b? i tng thng c loi b khi khng cn cn thit n na. 5.3.3 Xy dng biu trng thi Biu trng thi c s dng ch ra cch cc i tng phn ng li i vi cc s kin v cch bin i cc trng thi theo cc s kin . V d, hy m t hot ng ca h thng thang my. Thng thang my bt u hot ng t tng mt (OnFirstFloor). Khi ang OnFirstFloor v c ngi tng trn (floorNum) nhn nt yu cu thang my (goUp(floorNum)) th n chuyn sang trng thi chuyn ln (MovingUp). Khi chuyn n tng yu cu (arrived) th n chuyn sang trng thi dng, ngh (Idle) m ca cho ngi vo /ra khi thang my. ang trng thi ngh Idle, nu c ai tng trn yu cu th n li chuyn v MovingUp, nu c ngi tng di yu cu th thang my chuyn xung (MovingDown), cn khi ht gi (time-out) n sang trng thi chuyn v tng mt (MovingtoFirstFloor) ri v tng mt. Biu trng thi m t hot ng ca thang my c v nh hnh 5-10.
goUp(floorNum) On First Floor arrived arrived Moving to First Floor Moving Up do / moving to floor time-out goDown(floor) arrived goUp (floorNum)

Moving Up do / moving to floor

Idle

Hnh 5-10 Biu trng thi ca lp ThangMay Chng ta hy xy dng biu trng thi cho lp HoaDon.
Mt ho n c to lp Cha thanh ton

Thanh ton

thanh ton

Hnh 5-11 Biu cc trng thi ca lp HoaDon Khi mt ho n (i tng ca lp HoaDon) c to lp th n trng thi cha thanh ton, sau khi c s kin khch hng thanh ton, ngha l khch tr tin cho cc mt hnh chn mua th n chuyn sang trng thi thanh ton.

- 117 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Nh cp trn, cc ca s dng l rt quan trng, n th hin nhng nhim v m h thng phi thc hin. V vy, thng chng phi xy dng cc biu trng thi m t cho cc lp trong nhng ca s dng quan trng nht ca h thng. Biu trng thi ca h HBH c xy dng nh sau:
Khch a hng n quy tr tin Ch mua hng

Nhp vo cc mt hng

Nhp cc mt hng khch chn Nhp tip

Kt thc bn hng

X l kt qu

Kt thc nhp Thanh ton tin mt Ch thanh ton Thanh ton th tn dng

Kim duyt th/sc Thanh ton bng sc

Hnh 5-12 Biu trng thi ca lp HBH Trng thi ca mt i tng cng c khi l trng thi phc hp, ngha l n c th cha cc trng thi con c lng bn trong. Mt s trng thi, v d trng thi Kim duyt th trong biu trn c th tip tc c lm mn hn pha sau. Chng ta xt tip Telephone trong ca s dng Gi in thoi c m t bng biu vt cc s kin trn. Telephone c hai trng thi chnh: Idle (ri) v Active (hot ng). Trng thi Active li c th phn tch tip thnh PlayingDialTone (m hiu T mi gi), Dialing (quay s), Connecting (kt ni hai u dy) v Talking (m thoi). Biu trng thi cho cc hot ng trn c m t nh sau.
Active on hook Idle off hook PlayingDialTone Talking

digit digit Dialing completed

connected Connecting

Hnh 5-13 Biu trng thi ca Telephone

- 118 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

My in thoi trng thi Idle, khi ngi gi nhc tai nghe ln (off hook) th n chuyn sang trng thi hot ng (Active) sn sng phc v m thoi gia hai im trong mng in thoi. Trng thi Active li c m t di dng mt biu trng thi con. Bt u l trng thi C m hiu in thoi mi gi (PlayingDialTone), khi ngi gi quay s (digit) n chuyn sang trng thi Quay s (Dialing). Khi quay xong (completed), n chuyn tip sang trng thi Kt ni (Connecting) v khi ng dy c kt ni (connected) th hai ngi c th ni chuyn c vi nhau (Talking). Trng thi Talking li c th m t chi tit hn bng mt biu trng thi con nu cn thit. Lu : Biu trng thi ch cn xy dng cho nhng i tng c nhiu hot ng quan trng trong h thng, Da vo cc ca s dng xy dng biu trng thi, Da vo cc thuc tnh lin quan nh ngha cc trng thi. Tm li, biu trng thi l cn thit v n gip ngi phn tch, thit k v ngi lp trnh hiu, nm bt c cc hnh vi ng x ca cc i tng tham gia vo cc ca s dng. H khng ch ci t i tng m cn cn phi lm cho chng thc hin nhng cng vic m h thng yu cu. Tuy nhin, biu trng thi khng c s dng sinh m t ng trong khu lp trnh bc sau. Biu thc trng thi trong phn tch hng i tng cng tng t nh s khi trong phn tch c cu trc, n m t cc bc cn thc hin (thut ton) ca h thng.

5.4 Biu hot ng


Biu hot ng (Activity Diagram) trong UML gn ging vi lu (Flow Chart) m chng ta quen s dng trong phn tch thit k c cu trc. N ch ra cc bc thc hin, cc hnh ng, cc nt quyt nh v iu kin r nhnh iu khin lung thc hin ca h thng. Biu hnh ng m t cc hnh ng v cc kt qu ca nhng hnh ng . Nhn mnh hn v cng vic thc hin khi ci t mt thao tc ca tng i tng, Tng t nh biu trng thi, nhng khc ch yu ch n tp trung m t v cc hot ng (cng vic v nhng thao tc cn thc thi) cng nhng kt qu thu c t vic thay i trng thi ca cc i tng, Trng thi trong biu hnh ng l cc trng thi hot ng, n s c chuyn sang trng thi sau, nu hnh ng trng thi trc c hon thnh. Trng thi v s chuyn trng Trng thi v s chuyn i trng thi c k hiu v cch s dng hon ton ging nh trong biu trng thi nu trn. Nt quyt nh v r nhnh

- 119 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Mt i tng khi hot ng th t mt trng thi c th r nhnh sang nhng trng thi khc nhau tu thuc vo nhng iu kin, nhng s kin xy ra quyt nh. iu kin r nhnh thng l cc biu thc Boolean. Trong UML, nt quyt nh r nhnh c biu din bng hnh thoi c cc ng r nhnh vi nhng iu kin i km la chn nh hnh 5-14.
[d >= 5]

[d < 5]

Hnh 5-14 Nt r nhnh trong biu hnh ng Thanh tng tranh hay thanh ng b Trong hot ng ca h thng, c th c nhiu lung hnh ng c bt u thc hin hay kt thc ng thi. Trong UML, thanh ng b c v bng on thng m c s dng kt hp nhiu lung hnh ng ng thi v chia nhnh cho nhng lung c kh nng thc hin song song. V d: hy v biu hnh ng m t cc hot ng un nc v pha mt tch ch Nipton. Chng ta thy mt s hot ng c th thc hin song hnh nh un nc, Tm mt gi ch Nipton, Tm tch, v.v. Biu hnh ng cho cc hot ng trn c th m t nh hnh 5-15.

nc vo m un nc

Tm mt gi ch Nipton

Tm tch

un nc si B gi ch vo tch

nc si vo tch c ch Pha thm sa

Hnh 5-15 Biu hnh ng un nc v pha ch

- 120 -

Phn tch, thit k hng i tng bng UML Tuyn cng vic

on Vn Ban

Tuyn cng vic (ng bi - swimming line) c s dng phn hoch cc hot ng (trng thi) theo cc nhm i tng hay theo tuyn hot ng ca tng i tng. Ging nh trong mt cuc thi bi, trong b bi mi vn ng vin ch c bi theo mt tuyn c xc nh. Trong h thng phn mm cng vy, mi i tng hot ng theo tuyn c xc nh, nhng c khc l gia cc tuyn ny c s chuyn i thng tin vi nhau. V d: hy xt cc hot ng xy ra khi khch mua hng chn phng thc thanh ton bng Credit. Ngi bn hng nhn th t khch hng, chuyn th cho b phn kim duyt. Nu l th hp l th tr vo th s tin mua hng ca khch phi tr v giao li th cho khch. Cc hot ng trn c m t trong biu hnh ng nh hnh 5-16. Biu hnh ng s dng th hin nhng hnh ng s thc hin ca mi i tng v ch ra cch thc hin cc cng vic nghip v thng qua cc dng cng vic, theo t chc ca cc i tng.
:KhchHng :Ngi bn hng :CreaditAuthorizationService HBH

Tr bng Credit

Nhn Credit

Kim duyt [Hp l]

Tr bng Credit [Khng hp l]

Tr vo Credit

Hnh 5-16 Cc tuyn cng vic trong biu hnh ng

5.5 S dng Rational Rose to lp biu trnh t


To lp ba biu trnh t nh hnh 5-5, 5.6, 5.7 Thc hin mt s khai bo c t chi tit:

- 121 -

Phn tch, thit k hng i tng bng UML + Gn tp vo biu trnh t + B sung thng ip vo biu trnh t + Sp xp li cc thng ip + nh s li cc thng ip + nh x i tng vo lp + Gn trch nhim cho cc i tng.

on Vn Ban

5.6 S dng Rational Rose to lp biu trng thi


Rational Rose h tr to lp nhanh cc biu trng thi. Tng t nh i vi cc biu khc, trong Rose biu trng thi c th c to lp mi bng hai cch: 1. Nhn chut tri mc Browser trong thanh thc n chnh v chn State Machine Diagram 2. Nhn chut tri biu tng ca Logical View hoc Use Case View danh sch trnh duyt, ri nhn chut phi chn New > StateChart Diagram. Tt c cc biu c to lp c th m (Open), in (print), xo (delete), i tn (Rename), hay b sung thm cc thnh phn ca biu (New>) bng cch chn biu tng ng trong Logical View, hoc Use Case View (nhn chut tri), ri nhn chut phi chn mt trong nhng chc nng trn. m mt biu c to lp trc th n gin nht l nhn p chut tri vo tn ca biu trong danh sch trnh duyt (Browser) bn tri mn hnh. Hy thc hin: To lp biu trng thi nh hnh 5-10, 5-12, 5-13. Xy dng biu trng thi cho lp DigitalWatch (ng h in t). Lp ny c hai hm thnh phn: modeButton() lm nhim v thay i mode hiu chnh thi gian gia gi, pht v inc() tng ln mt n v thi gian ng vi mode tng ng. Tt nhin khi nhn inc() m s n v thi gian, v d l gi m l 24 th sau s tr v s 1, cn i vi pht th sau 60 s l 1. N c ba trng thi v cch chuyn trng c m t nh sau: + Trng thi Display: trong hin th thi gian hin thi: do /display currentTime. + Khi NSD nhn vo modeButton th chuyn sang trng thi Set Hours (t li gi), trong thc hin: do / display hours. + Khi NSD nhn tip vo modeButton th chuyn sang trng thi Set Minute (t li pht), trong thc hin: do / display minutes. + Tt nhin nu li nhn modeButton ln th ba th n quay li trng thi ban u. Sau li t trng thi Display c th chuyn sang trng thi tip theo nh trn khi NSD nhn modeButton.

- 122 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Trong hai trng thi Set Hours, Set Minute nu nhn inc th thuc tnh hours, minute ca ng h s c tng ln mt. (Chi tit v cch xy dng biu tng tc tham kho trong [17, 22]) Lu : i vi hu ht cc biu v cc phn t ca chng, hy m t tm tt cc chc nng, hay cc tnh cht c trng c bn ca chng ca s Documentation. Nhng thng tin ny s rt hu ch cho vic theo di, hiu bit v chng trong qu trnh pht trin phn mm. Mc Documentation l mt ca s c m ra di ca s hin th danh sch cc biu bn tri (Browser t View). Nu n cha c m th t thc n View chn Documentation m n v vit cc ti liu c t, ch thch cho nhng hot ng, khi nim c bn trong cc kt qu phn tch, thit k. y chnh l mt trong cc yu cu bt buc ca cng ngh phn mm.

Bi tp v cu hi
5.1 Hy cho bit nhng mnh sau ng hay sai (true /false), gii thch ti sao? + Cc s kin c lp cng c th xy ra ng thi. + Mt lp c th c trng thi khi u v kt thc. + Khng nht thit phi c trng thi cho mt i tng. + Cn phi xy dng biu trng thi cho tt c cc lp trong h thng. + Hnh vi ca h thng c th hin trong cc biu trnh t thng qua s tng tc ca cc i tng vi nhau. + Cc s kin vo kch hot h thng hot ng v h thng hot ng l tr li cho cc s kin vo m cc tc nhn to ra. + Biu trng thi c s dng sinh m t ng cho chng trnh. 5.2 Xy dng biu trng thi cho ca s dng t li gi, pht, giy cho ng h in t. 5.3 Xy dng biu trng thi cho ca s dng ng k mn hc. 5.4 Xy dng biu trnh t m t ca s dng Thu tin bng sc ca h thng bn hng. 5.5 Thit lp biu trnh t v biu trng thi cho lp chnh trong ca s dng Cho mn sch ca h thng Qun l th vin (Tip theo ca bi tp 4.3). 5.6 Thit lp biu trnh t v biu trng thi cho lp chnh trong ca s dng Nhn tr sch ca h thng Qun l th vin (Tip theo ca bi tp 4.3). 5.7 Xy dng biu trnh t m t s tng tc gia cc lp i tng trong ca s dng Rt tin t ng trong H thng rt tin t ng ATM (Automatic Teller Machine) (Tip theo ca bi ton 4.4).

- 123 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

5.8 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v biu tng tc. Xy dng [(1)] l thc hin vic gn trch nhim cho [(2)]. T [(1)], ngi thit k c th pht hin thm cc [(3)], cc thao tc cn thc hin ca mi [(3)], v.v. Do vy, [(1)] tr thnh nn tng cho cc bc cn li ca qu trnh pht trin phn mm. Chn cu tr li: a. lp b. cc i tng c. biu tng tc

CHNG VI

THIT K CC BIU CNG TC V BIU THNH PHN CA H THNG

Chng VI cp n: Thit k cc biu cng tc ca cc i tng thc hin cc nhim v ca h thng. Xy dng cc mu gn trch nhim cho cc lp i tng, Thit k chi tit cc lp v biu lp, tp trung vo quan h k tha v s dng li. Trong pha phn tch cc chng trc, chng ta tp trung kho st h thng tr li cho cu hi h thng gm nhng ci g v cng bt u nghin cu cc

- 124 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

mi quan h, tng tc gia cc lp i tng thng qua biu trnh t v biu trng thi. Nhim v chnh ca giai on thit k l chuyn t cu hi Ci g? (What) sang tr li cho cu hi nh th no? (How?). Nh vy, nhim v chnh trong thit k hng i tng l xy dng cc biu cng tc ca cc i tng h thng thc hin c cc yu cu c xc nh trong giai on phn tch.

6.1 Cc biu cng tc


Trong chng 5 chng ta khng nh, cc hot ng ca h thng c th m t trc quan bi cc biu tng tc. UML nh ngha hai loi biu tng tc: biu trnh t v biu cng tc. Biu cng tc gn ging nh biu trnh t (nh trnh by trn), m t s tng tc ca cc i tng vi nhau, nhng khc vi biu trnh t l y tp trung vo ng cnh v khng gian thc hin cng vic. Biu cng tc chnh l mt th ch ra mt s cc i tng v nhng s lin kt gia chng, trong cc nh l cc i tng cn cnh th hin s trao i thng ip gia cc i tng. V d: hy xt vn thanh ton trong h thng bn hng. Gi s khch hng tr tin mua hng bng tin mt. Ngi bn phi ghi li s tin m khch a v qua h thng HBH nhn c thng ip makePayment(soTien). soTien l s tin khch a, thng l ln hn s tin hng v h thng phi tnh s d tr li cho khch. thc hin c yu cu thanh ton th HBH li gi mt thng ip tng t cho phin bn hng v kt qu l to ra mt i tng ca lp ThanhToan theo thng ip create(soTien) thc hin thanh ton vi khch hng. Hnh 5-4 m t biu trnh t trao i cc thng ip trn ln lt theo thi gian. Sau y chng ta s dng biu cng tc th hin cng mi tng tc nhng theo ng cnh thc hin cng vic.
Hng thng ip thng ip u tin bn trong h thng

makePayment(soTien)

:HBH

1: makePayment(soTien)

:PhienBanHang

thng ip u tin

1.1: create(soTien) i tng ng lin kt

:ThanhToan
Tham s

Hnh 6-1 Biu cng tc thc hin thanh ton tin mt

- 125 -

Phn tch, thit k hng i tng bng UML Biu trn c c nh sau:

on Vn Ban

1. Thng ip u makePayment(soTien) (chnh l li gi hm) c gi ti mt i tng :HBH ca HBH. 2. i tng :HBH gi tip thng ip ti mt i tng ca PhienBanHang l :PhienBanHang. Hm ny c nh s l 1. 3. :PhienBanHang gi ton t to lp ca lp ThanhToan to ra mt i tng :ThanhToan theo thng ip created(soTien) lm nhim v thu tin. Thng ip ny c nh s l 1.1. Qua c th khng nh: biu cng tc ca mt hot ng th hin thut ton thc thi hnh ng . Trc khi thit k cc biu cng tc cho cc hot ng ca h thng, hy lu mt s k hiu, cch biu din cc thng ip v mt s qui c nh sau: (1) Th hin gi tr tr li (return value) Mt s thng ip c gi n cho mt i tng v yu cu tr li gi tr cho i tng gi. Gi tr ny c th ch ra thng qua php gn cho mt tn bin v tn ca thng ip . Trong lp trnh, thc cht y l li gi hm c kiu gi tr tr li (trong C, l nhng hm c kiu tr li khc void). C php chung ca thng ip ny c dng: ReturnVariableName := message(parameter:ParameterType): ReturnType V d:

Kiu gi tr tr li msg()

1: tong := total() : int


:HBH :PhienBanHang

Bin gi tr tr li

Hnh 6-2 Thng ip c gi tr tr li (2) Th hin cc thng ip lp Mt i tng c th gi mt thng ip lp li mt s ln cho i tng khc. Thng ip c gi lp li nhiu ln c th biu din bng du * trc thng ip. V d:

- 126 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

msg()
1: *dong := dongBanTiep() :HBH K kiu lp li :PhienBanHang

Hnh 6-3 Thng ip lp li vi s ln khng xc nh


msg()
1: *[i := 1..10] dong[i] := dongBanTiep() :HBH Lp li 10 ln phienBH :PhienBanHang

Hnh 6-4 Thng ip lp li vi s ln xc nh C mt s cch khc nhau biu din cho chu trnh lp, v d thay v vit *[i := 1..10] ta c th vit *[ i < 11]. Nh khng nh t trc, khi mt i tng nhn c mt thng ip, v d :HBH nhn c msg() nh hnh 6-4, th lp HBH phi c hm thnh phn msg(). Mt khc, biu cng tc th hin thut ton m t hot ng ca h thng. Vy da vo biu cng tc hnh 6-4, ngi lp trnh c th vit hm msg() (trong C) cho lp HBH nh sau:
void msg(){ for(int i = 1; i < 11; i++) dong[i] = phienBH.dongBanTiep(); }

Hm ny gi ti hm dongBanTiep() ca lp PhienBanHang thng qua i tng phienBH c lin tip 10 dng bn hng. Lu : Mt i tng c th gi thng ip cho chnh n, ngha l thng ip c th quay vng trn. (3) To lp i tng mi UML s dng thng ip create() to lp mt i tng mi (mt th hin no ca mt lp). Trong biu c th s dng thm k t <<new>> i tng nhn thng ip, v d:

- 127 -

Phn tch, thit k hng i tng bng UML


Msg1()
1: create(cashier) :HBH

on Vn Ban

<<new>> :PhienBanHang

Hnh 6-5 To lp i tng mi (4) Quy tc nh s cc thng ip (i) Thng ip u khng c nh s. (ii) Nhng thng ip c gi ti cho cc i tng trc tip c nh s tng dn 1:--, 2:--, v.v. (iii) Cc thng ip gi tip cho cc i tng tip theo c nh s theo quy tc du chm (.). V d:
msg1() :A 2:msg4() 1: msg2() 1.1: msg3() :C :B 2.1: msg5() 2.2: msg6() :D

Hnh 6-6 nh s cc thng ip (5) Cc iu kin gi thng ip i khi, mt thng ip c th b cm canh (guarded) v n c gi n cho mt i tng khc ch khi tho mn mt iu kin no . iu kin condition c trong cp ngoc [ v ]. V d:
msg1() :A 1b:[not condition]msg4() :D 1b.1: msg5() :C 1a:[condition]msg2() :B 1a.1: msg3()

Hnh 6-7 Cc thng ip c gi i c iu kin Biu trn th hin: + Thng ip s 1a c gi cho :B nu iu kin condition tho mn, + Ngc li, nu condition sai (non condition) th thng ip 1b s c gi n cho :D.

- 128 -

Phn tch, thit k hng i tng bng UML (6) Cc thng ip gi cho mt tp (nhiu) cc i tng

on Vn Ban

UML k hiu tp cc th hin (i tng) nh l mt kho cc i tng dng:


phienBH: PhienBanHang

K hiu tp cc i tng phienBH ca lp PhienBanHang. V d: i tng :PhienBanHang gi thng ip next() tt c cc phienBH v thng ip print() cho mt :DongBanHang bt k.
print() 2: print() : PhienBanHang Mt i tng

:DongBanHang

1:*[for each] sLi := next()


Nhiu i tng

sLi: DongBanHang

Hnh 6-8 Gi thng ip cho nhiu i tng

6.2 Thit k cc biu cng tc v cc lp i tng


Nh trn khng nh, nhim v chnh ca pha thit k l xy dng cc biu cng tc m t chnh xc cc hot ng ca h thng v t thit k chi tit cc lp. Mt trong nhng kh khn chnh ca cng vic trn l gn trch nhim cho cc i tng nh th no. Trong chng ny chng ta s tho lun nguyn l tng qut gn vai tr (hm thnh phn) cho cc i tng cn c gi l mu (pattern) gn trch nhim. Vic to lp cc biu cng tc ph thuc vo cc kt qu trong pha phn tch: M hnh khi nim: t nhng m hnh ny, ngi thit k c th chn nh ngha cc lp ng vi tng khi nim trong h thng. Cc i tng ca nhng lp ny tng tc vi nhau v c th hin trong cc biu tng tc nh biu trnh t, biu trng thi. Cc hp ng hot ng ca h thng: t nhng c t ny, ngi thit k xc nh c cc trch nhim v cc iu kin (Pre-condition, Postcondition) trong cc biu tng tc. Cc ca s dng ct yu v thc t: t nhng trng hp ny, ngi thit k c th lm lt c nhng thng tin v nhng nhim v m cc biu tng tc phi tho mn.

- 129 -

Phn tch, thit k hng i tng bng UML 6.2.1 Ca s dng thc t

on Vn Ban

Nhng ca s dng c xc nh trong pha phn tch cc yu cu thng l t lin quan n k thut ci t v cng cha c lin h nhiu vi giao din s. y chng ta tho lun thm v mt loi ca s dng c gi l ct yu v thc t. Mt ca s dng c gi l ct yu nu n m t qu trnh hot ng ch yu v cc ng c thc y nhng hot ng . Ngc li, ca s dng c gi l thc t nu n m t mt qu trnh hot ng thng qua nhng thit k theo thc t v c u thc thc hin theo cng ngh vo/ra c xc nh trc. Nh vy, ca s dng thc t l mt thit k c th v mt ca s dng, trong xc nh k thut vo / ra v h tr cho ci t. V d: hy m t ca s dng thc t cho ca s dng Thanh ton tin mt. Nh trc qui c, ca s dng Thanh ton tin mt c m t nh sau: Ca s dng: Thanh ton tin mt (Buy Items with Cash) Tc nhn: Mc ch: Ngi mua (khch hng), ngi bn hng Ghi nhn cc thng tin v phin bn hng v thu tin hng

M t tm tt: Sau khi chn hng, ngi mua a gi hng (xe hng) n quy tr tin. Ngi bn ghi nhn thng tin v cc mt hng v thu tin bn hng bng tin mt. Thanh ton xong, khch hng c th a hng ra khi ca hng. Kiu: Tham chiu: Thc t R1.1, R1.2, R1.3, R1.7, R1.9, R2.1.

Trn c s kho st bi ton thc t, ngi thit k c th xy dng mn hnh (mn hnh giao din) thc hin nhim v trn nh sau:
Ca hng Sao Mai: Bn hng -

UPC Price Total

A B C

Quantity Description

E F

Tendered D
Enter Item

Balance
End Sale

G
Make Payment

Hnh 6-9 Mn hnh giao din ca ca s dng thc t Bn hng Kch bn m t ca s dng thc t trn c vit c th nh sau:

- 130 -

Phn tch, thit k hng i tng bng UML


Hot ng ca tc nhn 1. Ca s dng bt u khi khch a hng n quy tr tin. 2. Vi mi mt hng, ngi bn nhp vo ca s A m upc. Nu s lng mua nhiu hn 1 th nhp s vo ca s E. n H (nt Enter Item) sau mi ln nhp xong mt mt hng.

on Vn Ban
Hot ng ca h thng

3. B sung cc thng tin ca tng mt hng vo phin bn hng.

M t ca mt hng va nhp vo c hin th F v gi bn B. 4. Khi nhp xong cc mt hng th n 5. Tnh ton v hin th tng s tin phi I (nt End Sale). tr C. 6. Khch hng a mt s tin tr 7. H thng xc nh s tin tr li cho tin mua hng, ngi nhp s khch v hin th G. vo D v n J (nt Make Payment), s thng ln hn total. ...

6.2.2 Mu gn trch nhim Nhim v chnh ca ngi thit k l nh ngha c cc lp cc i tng ca chng thc hin c nhng nhim v m h thng yu cu. Mun vy, chng ta phi thit k c chi tit cc biu cng tc m t chnh xc tng hot ng ca h thng v gn nhim v cho cc lp i tng. Trch nhim Trch nhim (Responsibility) c m t trong hp ng, l ngha v ca tng i tng. Hot ng (hnh vi) ca cc i tng lin quan cht ch ti cc trch nhim ca cc i tng . Ni chung c hai loi trch nhim: 1. Cc trch nhim thc hin: l nhng hot ng m i tng thc hin bao gm: T ng thc hin ci g , Khi ng mt hot ng hoc kch hot mt thao tc ca nhng i tng khc, iu khin hoc phi hp cc hnh ng gia cc i tng khc nhau, 2. Nhng trch nhim bit: nhng hiu bit v cc i tng, bao gm: Hiu bit v d liu ring c bao gi v b che giu, Hiu bit v nhng i tng lin quan, Hiu bit v nhng s vt c th xut pht hoc nhng tnh ton no .

- 131 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tt c cc thng tin trong h thng hng i tng u c lu tr theo cc i tng v n ch c x l khi cc i tng c ra lnh thc hin nhng nhim v tng ng. s dng c cc i tng, ngoi cc thuc tnh, chng ta phi bit cch giao tip vi chng, ngha l phi bit chng c nhng hm thnh phn no. iu ny c th tm thy trong cc biu cng tc. Cc bc thit k biu cng tc Vic to ra biu cng tc c th thc hin nh sau: 1. Xc nh cc trch nhim t cc ca s dng, m hnh khi nim (biu lp) v cc hp ng hnh ng ca h thng, 2. Gn trch nhim cho cc i tng, quyt nh xem i tng no phi thc thi nhng trch nhim trn, 3. Lp li hai bc trn cho n khi gn ht cc trch nhim trong biu cng tc. Lu : Cc trch nhim ca i tng s c ci t trong lp ca nhng i tng bng cc hm thnh phn (phng thc). Trong UML, cc trch nhim s c gn cho i tng khi to ra biu cng tc v biu cng tc th hin c hai kha cnh, gn trch nhim v s cng tc gia cc i tng trong biu . 6.2.3 Mu gn trch nhim Nhng ngi thit k hng i tng c kinh nghim thng s dng nhng nguyn l chung v nhng phng php gii ph hp vi mt ngn ng lp trnh, c gi l mu (pattern) hng dn to ra phn mm. Mt cch n gin hn, mu l cch gi mt cp (bi ton / li gii) c th p dng trong nhng ng cnh mi, vi nhng li khuyn lm th no p dng c vo tnh hnh mi. Sau y chng ta s xt nm mu gn trch nhim c bn (GRASP: General Responsibility Assignment Software Patterrn): Expert (Chuyn gia), Creator (To lp mi), Low Coupling (Mc ni yu), Hight Cohension (C kt cht), v Controller (iu khin). 1. Gn trch nhim theo chuyn gia (Expert) V d trong h thng bn hng HBH, mt s lp cn phi bit s tin ca mi phin bn hng v gn c cc trch nhim th phi tr li: Ai c trch nhim bit v s tin ca mi phin bn hng? Theo kin chuyn gia, tr li cu hi trn th phi tm nhng lp cha nhng thng tin trn. l: Tt c cc dng bn hng ca mi phin bn hng, trong cn tnh tng (total) ca cc mc thnh tin (subtotal) ca tng dng bn hng. Ch c phienBanHang (i tng phin bn hng hin thi) bit v thng tin ny, v vy, theo chuyn gia th gn trch nhim cho lp PhienBanHang.

- 132 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Chng ta bt u v biu cng tc lin quan n vic gn trch nhim tnh tin bn hng (total()) cho lp PhienBanHang.
total() : PhienBanHang ngayBan gioBan B sung thm hm total() total() PhienBanHang

Hnh 6-10 Phn u ca biu cng tc Sau khi gn total() cho lp PhienBanHang th li phi bit thm l ai cung cp nhng mc con (s tin bn tng mt hng). Thng tin ny c xc nh thng qua hm subtotal(). V vy, :PhienBanHang phi gi tip thng ip subtotal() cho tng : DongBanHang nh hnh 6-11.

total() : PhienBanHang 2: st := subtotal() sLi: DongBanHang

1: *[for each] sLi := next()

: DongBanHang

PhienBanHang ngayBan gioBan total()

DongBanHang soLuong subtotal()

Hnh 6-11 Trao i gia cc i tng tnh c total() bit v tnh c subtotal() th :DongBanHang phi bit thng tin v gi bn c ly t u. Nh hnh 6-11 th subtotal() c xc nh t :DongBanHang v l tch ca DongBanHang.soluong * MoTaMatHang.giaBan, do vy biu cng tc ca hot ng tnh total() s c xy dng nh hnh 6-12.

- 133 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

total() : PhienBanHang 2: st := subtotal() sLi: DongBanHang 2.1: p := price() : MoTaMatHang

1: *[for each] sLi := next()

Number PhienBanHang::subTotal() { return soLuong*p;}

: DongBanHang

MoTaMatHang Number PhienBanHang:: total() { s = 0; for each DongBanHang.sLi s += sLi.subTotal(); return s; } maSanPham giaBan moTa price()

PhienBanHang ngayBan gioBan total()

DongBanHang soLuong subtotal()

Hnh 6-12 Biu cng tc thc hin vic tnh total() Lu : mu gn trch nhim theo chuyn gia c p dng nhiu hn nhng mu khc, n l nguyn l hng dn chung trong thit k hng i tng. Mu ny th hin c nhng cm gic trc quan chung v cc i tng, chng phi thc hin nhng g c c nhng thng tin cn c. S dng loi mu ny cng m bo duy tr c tnh cht bao gi, che giu thng tin v cc i tng ch s dng nhng thng tin ring m chng c thc hin nhng nhim v c giao. 2. Mu gn trch nhim to lp mi (Creator) To lp cc i tng khi cn thit l mt trong nhng hot ng quan trng ca h thng hng i tng. Do cn phi c nguyn l chung gn trch nhim to lp i tng trong h thng. Phng php gii: Gn trch nhim cho lp B to ra i tng ca lp A (B l phn t to lp cc i tng ca A) nu c mt trong cc iu kin sau: B gm cc i tng ca A, B cha cc i tng ca A, B ghi chp cc th hin ca A, B s dng trc tip cc i tng ca A, B c nhng d liu ban u s c truyn cho cc i tng ca A khi chng c to ra.

- 134 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

V d: hy xt mt phn ca m hnh khi nim nh hnh 6-13 (trch t hnh 4-14 sau khi c b sung thm cc hm c xc nh bc trc).
PhienBanHang ngayBan gioBan total() DongBanHang soLuong subtotal() MoTaMatHang

Cha

1..*

c-m-t-bi

maSanPham giaBan moTa price()

Hnh 6-13 Mt phn ca biu lp Mt :PhienBanHang cha (thc cht l bao gm) nhiu i tng :DongBanHang, do vy theo mu ny th c th gn trch nhim PhienBanHang to lp cc i tng ca DongBanHang. Trch nhim ny c gn khi c yu cu cn to ra mt dng bn hng vi N n v, ngha l khi :PhienBanHang nhn c thng ip makeLineItem(N) th n s gi cho :DongBanHang thng ip create(N) nh hnh 6-14.
makeLineItem(N) : PhienBanHang 1: create(N) sLi: DongBanHang PhienBanHang ngayBan gioBan total() makeLineItem()

Hnh 6-14 To ra DongBanHang 3. Mu mc ni yu (Low Coupling) mc ni l mt o v s kt ni ca mt lp bit v, hoc ph thuc vo cc lp khc nh th no. Mt lp c mc ni yu th khng ph thuc nhiu vo nhiu lp khc. Ngc li, mt lp c mc ni mnh th ph thuc vo nhiu lp khc. Do , khi gn trch nhim cho mt lp, hy c gng sao cho mc ni gia cc lp mc yu. V d: hy xt mi quan h gia cc lp ThanhToan, HBH v PhienBanHang trong h thng bn hng. Gi s cn phi to ra i tng :ThanhToan tng ng vi :PhienBanHang v :HBH nhn c yu cu thanh ton makePayment(). Bi v HBH phi ghi nhn :ThanhToan nn theo mu to lp mi trn th lp HBH l i biu to lp. iu ny dn n thit k biu cng tc nh hnh 6-15.

- 135 -

Phn tch, thit k hng i tng bng UML


:HBH 1: create()

on Vn Ban
p: ThanhToan

makePayment()

2: addPayment(p)

:PhienBanHang

Hnh 6-15 HBH to ra :ThanhToan


:HBH 1: makePayment() :PhienBanHang 1.1: create() :ThanhToan

makePayment()

Hnh 6-16 ThanhToan to ra i tng :ThanhToan Vi cch gn trch nhim nh hnh 6-15 th HBH phi bit v lp ThanhToan. Nhng thc t iu ny khng i hi, v ch cn PhienBanHang cn bit v ThanhToan l . T chng ta c thit k tt hn, th hin c mc mc ni lng hn nh hnh 6-16. Sau li p dng cc qui tc khc gn trch nhim cho cc i tng. Trong cc ngn ng lp trnh hng i tng nh C++, Java, ClassA vi ClassB c mc ni vi nhau khi: ClassA c nhng thuc tnh m i tng ca ClassB cn tham kho ClassA c nhng hm m i tng ca ClassB cn s dng, hay tham chiu ClassA l lp con ca ClassB. 4. C kt cao (Hight Cohension) C kt l o v mc lin kt trong lp, tp trung vo cc trch nhim c gn cho mi lp. Mt lp c tnh c kt cao nu cc nhim v c lin quan chc nng vi nhau. Lp c kt l lp c ti thiu s cc hm n gin v chng phi c lin h chc nng vi nhau. Vn quan trng trong thit k hng i tng l phi gn c trch nhim cho cc lp sao cho mt mt ph hp vi thc t ca bi ton, mt khc m bo c mi lin h cht ch v chc nng nhng khng c nhng lp phi lm vic qu ti. V d: khi xt mi quan h gia cc lp ThanhToan, HBH v PhienBanHang trong h thng bn hng ta c th a ra mt thit k biu cng tc nh hnh 5-15. V HBH l lp chnh, nn vic cho lp HBH m nhn vai tr to lp create()

- 136 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

:ThanhToan v thc hin thm nhiu cng vic khc c th dn n qu ti. Mt khc, nhim v create() khng thc s lin h vi cc nhim v cn li, nn c th gn trch nhim ny cho lp PhienBanHang nh hnh 6-16 th hp l hn. Nhng lp khng c kt s kh hiu, kh s dng li v rt kh duy tr hot ng ca h thng cho c hiu qu. 5. Mu iu khin (Controller) Nh trn phn tch, nhng s kin vo (input) s tc ng v lm cho h thng c kch hot. Vic gn trch nhim x l cc s kin vo ca h thng cho cc lp c thc hin nh sau: Gn trch nhim cho nhng lp i din cho c h thng (iu khin b mt), Gn trch nhim cho nhng lp i din cho ton b nghip v hoc cho c t chc (iu khin b mt), Gn trch nhim cho nhng lp i din cho ci g trong th gii thc m n l tch cc v c th b li ko theo trong cng vic (iu khin vai tr), Gn trch nhim cho nhng lp i din cho b phn nhn to x l cc s kin vo mi ca s dng thng c t tn <UseCaseName> Handler (iu khin ca s dng). V d: trong h thng bn hng, chng ta xc nh mt s thao tc chnh nh: enterItems() (nhp d liu ca mt hng), endSale() (kt thc vic nhp d liu ca mt phin bn hng) v makePayment() (thu tin, thanh ton), v.v. Trong pha phn tch, nhng thao tc ny ca h thng c ghi nhn vo lp HeThong.
HeThong

enterItems() endSale() makePayment() balance() makeCreditPayment() handleCreditReply()

Hnh 6-17 Cc thao tc ca h thng c ghi nhn vo lp c tn l HeThong

- 137 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tuy nhin, iu ny khng c ngha l lp c tn HeThong phi thc hin tt c nhng nhim v . Trong giai on thit k, nhng thao tc ca h thng c th c gn cho lp iu khin. Do vy, pha thit k c th gn trch nhim thc hin cc thao tc ca h thng cho mt hay mt s lp iu khin nh gn cho lp HBH: i din cho c h thng.
HBH enterItems() endSale()

makePayment() Hnh 6-18 Gn cc thao tc ca h thng cho lp iu khin

6.3 Thit k h thng HBH


Trong phn ny chng ta hy p dng GRASP gn trch nhim cho cc lp v to ra cc biu cng tc. Chng ta thc hin mu i vi ca s dng Thanh ton tin mt v Khi ng (Start Up), sau thc hin tng t i vi nhng ca s dng khc. Khi thit k biu cng tc, chng ta hy thc hin theo nhng hng dn sau: 1. Vi mi thao tc (hot ng chnh) c m t trong cc hp ng ca h thng nn to ra mt biu ring. 2. Nu biu ny phc tp th c th chia n thnh nhng biu n gin hn. 3. S dng cc hp ng trch nhim, trong da vo nhng iu kin cn tho mn sau khi hon thnh (post-condition) v cc m t ca s dng xc nh trch nhim ca cc i tng trong h thng theo mu gn trch nhim nh nu trn. thc hin ca s dng Thanh ton tin mt v Khi ng, h thng phi thc hin: enterItems() (nhp cc mt hng), endSale() (kt thc mt phin bn hng), makePayment() (thanh ton) v startUp() (khi ng). Theo hng dn trn, chng ta thit k cc biu cng tc cho nhng thao tc . Chng ta bt u t bn biu nh hnh 6-19.

- 138 -

Phn tch, thit k hng i tng bng UML


enterItems() endSale()

on Vn Ban
1: ????() 1: ????() 1: ????() 1: ????()

:HBH :HBH :HBH :HBH

makePayment()
startUp()

HBH enterItems() endSale() makePayment() startUp()

Hnh 6-19 Cc thao tc ca h thng Biu cng tc cho enterItems() Trc ht chng ta xem li hp ng thc hin enterItems() bit h thng phi lm nhng g. 1. Hin th thng tin m t v gi bn ca mt hng c nhp vo. Ni chung, cc i tng ca h thng khng c trch nhim hin th cc thng tin. Nhng cng vic ny c th c cc i tng giao din m nhim bng cch truy nhp vo CSDL v cc mt hng v gi cc thng ip cha nhng thng tin tng ng cho cc i tng ang hot ng. 2. To lp phin bn hng mi. Nh trong hp ng nu r: khi nhp vo mt hng u tin ca mi phin bn hng th phi to lp phienBanHang mi. Trch nhim ny c gn cho HBH v n c nhim v l phi ghi li cc phin bn hng nh th. Hn na, mi khi phienBanHang c to mi th n l tp rng v sau c b sung thm cc dongBanHang mi khi nhp xong mt mt hng. p dng cc mu gn trch nhim nu trn, gn vic to lp dongBanHang mi cho PhienBanHang l hp l. 3. Xc nh cc thng tin m t v gi bn. Sau khi cc dongBanHang c to lp th phi c a b sung vo phienBanHang ang hot ng, do n cn gi thng ip add() (b sung vo) cho nhng dongBanHang ang c nhp vo. Nhng dongBanHang c a vo phienBanHang phi c xc nh t DanhMucMatHang v sau l MoTaMatHang. Vy c c nhng thng tin trn th HBH phi gi thng ip specification(upc), xc nh m t mt

- 139 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

hng c m l upc cho :DanhMucMatHang, i tng ny li gi tip i thng ip find(upc), tm trong tp cc m t mt hng c m upc. Da vo nhng tho lun nh trn, biu cng tc s c xy dng nh sau:
enterItems(upc, n) : HBH 1: [new] create() 3: makeLineItem(mt, n) 2: mt := specification(upc) :DanhMucMatHang 2.1: mt := find(upc) 1.1: create() 3.2: add(sLi) sLi: DongBanHang : PhienBanHang 3.1: create(mt,n)

: DongBanHang

: MoTaMatHang

Hnh 6-20 Biu cng tc cho enterItems() Tm nhn ca cc lp Nh khng nh nhiu ln, cc i tng trong h thng tng tc vi nhau bng cch trao i cc thng ip, c th hn nh trong cc biu tng tc l trao i thng qua cc li gi hm. Trong biu hnh 6-20, khi h thng cn xc nh nhng thng tin v mt hng c m upc cho trc, nh gi bn chng hn th n gi ti cho :DanhMucMatHang li gi hm specification(upc), i tng ny li gi cho :MoTaMatHang li gi hm find(upc). Mt i tng mun c c nhng thng tin t nhng i tng khc th i tng phi c kh nng nhn thy c nhng g m n cn thit. Mt cch hnh thc hn, i tng :A c th gi mt thng ip cho i tng :B th lp A phi c lin kt vi lp B. Trong thit k hng i tng, s lin kt c lin quan cht ch vi khi nim kh nng nhn thy c ca cc i tng. Nu :A c th nhn thy :B th phi c mt lin kt gia hai i tng , ngha l gia hai lp tng ng c quan h kt hp. Nu gia hai i tng :A v :B hin thi c lin kt vi nhau th mt trong hai i tng c mt i tng nhn thy i tng kia. V s trao i thng ip gia cc i tng c th pht biu chnh xc nh sau: i tng :A gi c thng ip cho i tng :B th i tng :A phi nhn thy c i tng :B.

- 140 -

Phn tch, thit k hng i tng bng UML C bn cch i tng A nhn thy c i tng :B. 1. Tm nhn thuc tnh: :B l thuc tnh ca :A. 2. Tm nhn tham s: :B l tham s ca mt hm no ca :A.

on Vn Ban

3. Tm nhn khai bo cc b: :B c khai bo l i tng cc b trong nh ngha hm ca :B. 4. Tm nhn ton cc: :B l ton cc. Da vo phm vi quan st ca cc i tng trong cc biu khai bo cc c tnh private, protected, public cho cc thuc tnh v hm thnh phn trong cc lp i tng. Biu cng tc cho endSale C th chn HBH iu khin thao tc ny ca h thng. Hp ng ca thao tc ny yu cu: PhienBanHang.isComplete c gn tr true khi kt thc nhp d liu. Nh vy, h HBH c th gi thng ip becomeComplete() cho PhienBanHang t thuc tnh isComplelet nhn gi tr true.
endSale() :HBH becomeCompelete() :PhienBanHang

becomeComplete(){ isComplete = true; }

Hnh 6-21 Biu cng tc th hin Kt thc nhp d liu endSale() Biu cng tc cho makePayment Mt ln na nhc li, chng ta s xem HBH nh l b iu khin. Trong phn tho lun v mu gn trch nhim m bo mc mc ni gia cc lp yu, nhng c kt li cao, chng ta gn trch nhim to lp i tng ThanhToan cho lp PhienBanHang, ch khng gn cho lp HBH (hnh 6-16). Biu cng tc m t thao tc makePayment() c v li nh sau:
makePayment(soTien)
:HBH 1: makePayment(soTien) :PhienBanHang

Qua b iu khin

1.1: create(soTien)
:ThanhToan Theo mu mc ni yu v c kt cao

- 141 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Hnh 6-22 Biu cng tc cho makePayment() Biu ny p ng nhng iu kin sau: Mt i tng ca lp ThanhToan m nhn vic thanh ton, ThanhToan c kt hp vi PhienBanHang ThanhToan.soluong = soTien. Ghi nhn nhng phin bn hng kt thc Mi khi kt thc mt phin bn hng, theo yu cu trong hot ng kinh doanh ca Cng ty, h thng phi ghi li k s ca nhng phin bn hng . Theo kinh nghim ca chuyn gia, ta c th gn trch nhim ny, trch nhim addSale() cho CuaHang sau khi gn trch nhim makePayment() cho PhienBanHang. Biu hnh 6-22 c b sung thnh:
makePayment(soTien)
:HBH 1: makePayment(soTien) s: PhienBanHang

2: addSale(s)
:CuaHang

1.1: create(soTien)
:ThanhToan

2.1: add(s)
daBan: PhienBanHang

Hnh 6-23 Biu cng tc cho makePayment() v ghi nhn thng tin bn Biu cng tc cho ca s dng StartUp Phn ln cc h thng (nhng khng phi tt c) u c ca s dng Khi ng v mt s thao tc lin quan n vic khi to cc gi tr cho mt ng dng khi bt u thc thi. Mc d thao tc ny thng l thao tc u tin h thng phi thc hin, nhng chng ta li thit k sau m bo mi thng tin lin quan n cc hot ng sau ny ca h thng u c pht hin. Biu cng tc ca StartUp ch ra nhng g c th xy ra khi i tng ca min ng dng c to ra. Ngha l trong h thng bn hng phi gn trch nhim create() cho nhng lp chnh, l HBH hoc CuaHang. Chng ta chn CuaHang bi v HBH c chn lm b iu khin cho cc hot ng ca c h thng. Cn c vo hp ng ca StartUp v nhng tho lun trn, ta c th thit k biu cng tc cho StartUp nh sau:

- 142 -

Phn tch, thit k hng i tng bng UML 1. Bt u gi thng ip create() cho CuaHang,

on Vn Ban

2. to ra i tng thuc lp HBH v cho php nhng i tng gi c cc thng ip cho DanhMucMatHang yu cu cc thng tin v cc mt hng (xem biu cng tc ca enterItems) th trc tin n cn phi to ra cc i tng DanhMucMatHang. Ngha l n gi thng ip create() trc cho DanhMucMatHang, sau mi gi cho HBH thng ip tng t. 3. Khi mt i tng DanhMucMatHang c to lp th n s yu cu to lp MoTaMatHang v sau b sung vo danh sch cc m t mt hng, ng thi bn thn n t np nhng thng tin m t nhng mt hng tip theo. Biu ny c v nh hnh 6-24.

create() :CuaHang 1: create()

2: create(pc) :HBH 1.1: create() 1.2.2:*add(ps) :MoTaMatHang

pc: DanhMucMatHang

1.2.1: *create(upc, price, descrip) 1.2: loadProdSpec() DanhMucMatHang:: loadProdSpec(){ do{ ps = new DanhMucMatHang(upc, price, descrip); Collection(MoTaMatHang).add(ps); }while NotFinished; } ps: MoTaMatHang

Hnh 6-24 Biu cng tc cho StartUp S khc bit gia phn tch v thit k Trong biu cng tc cho startUp mi ch th hin vic to ra mt i tng i din cho mt im bn hng u cui. Trong khi m hnh khi nim pha phn tch, n c xy dng m hnh cho nhng ca hng thc t c th c nhiu im bn hng u cui, ngha l khi h thng hot ng th s c nhiu i tng ca HBH c to ra. T c th thy c mt s in chnh lch gia kt qu phn tch v thit k: 1. i tng :CuaHang trong cc biu khng phi l ca hng thc, n l i tng mm,

- 143 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

2. i tng :HBH trong cc biu khng phi l im bn hng u cui c th, n l i tng mm, 3. Biu cng tc th hin mi quan h tng tc gia mt i tng :CuaHang v :HBH. 4. Tng qut ho t mt i tng ca HBH sang nhiu i tng i hi CuaHang phi to ra nhiu th hin. V nhng s tng tc gia cc i tng HBH vi nhiu i tng khc cn phi c ng b ho m bo s ton vn trong vic chia s cc thng tin trong h thng. iu ny dn n tnh ton a hoc tnh ton tng, vn ny vt ra ngoi phm vi ca ti ang tho lun y.

6.4 Thit k chi tit cc biu lp


Khi to ra cc biu cng tc, chng ta ghi nhn nhng phng thc (hm) tng ng v c gn vo cho cc lp (nh hnh 6-22, 6-23, 6-24, v.v.). Cc lp cng vi cc hm xc nh l nhng lp phn mm biu din cho nhng lp khi nim trong m hnh khi nim. Da vo nhng lp phn mm v da vo cc biu khi nim, biu cng tc, chng ta xy dng cc thit k chi tit biu lp th hin c nhng thng tin sau: Cc lp, cc thuc tnh v cc mi quan h kt hp, Cc hm thnh phn (phng thc), Cc kiu ca cc thuc tnh, Tnh trng c th iu khin c, S ph thuc gia cc lp. Cc bc thc hin thit k biu lp 1. Xc nh tt c cc lp c cc i tng tng tc vi nhau. iu ny thc hin c thng qua phn tch cc biu tng tc. 2. V chng trong mt biu lp. 3. Xc nh thuc tnh ca chng (sao chp t cc khi nim trong biu khi nim) v b sung cho y . 4. Phn tch cc biu cng tc xc nh cc hm v b sung cho cc lp. 5. Xc nh cc kiu ca cc thuc tnh v cc gi tr tr li ca php ton. 6. B sung nhng mi lin kt cn thit qun l cc quyn truy nhp (kh nng nhn thy) ca cc thuc tnh. 7. B sung cc quan h ph thuc d liu. 8. Xc nh mi quan h tng qut ho/chi tit ho v b sung quan h k tha vo biu lp. Trc khi bt tay thit k biu lp, chng ta cn phn bit m hnh khi nim (biu lp phn tch) vi biu lp thit k.

- 144 -

Phn tch, thit k hng i tng bng UML Trong m hnh khi nim, v d:
HBH enterItems() endSale() makePayment()

on Vn Ban

ghi-Nhn

PhienBanHang ngayBan: Date gioBan: Time iscomplete: Boolean becomeComplete() makeLineItem() total()

Hnh 6-25 Hai lp trong m hnh khi nim Hai lp: PhienBanHang v HBH y l cc khi nim tru tng. Trong pha thit k, cc lp trn l cc thnh phn ca h thng. Cc bc thit k lp t 1. n 5. hu nh c thc hin dn t giai on phn tch v kh n gin.. y ch yu tp trung gii thiu cch thc hin ba bc cui cng hon thin thit k biu lp. 6. B sung cc mi quan h kt hp v kh nng iu khin c Nh chng ta phn tch, gia hai lp trong h thng thng c nhng mi quan h xc nh, trong ph bin l quan h kt hp. Mi u ca quan h kt hp c vai tr nht nh. Trong thit k biu lp, vai tr c th c gn vi mi tn ch hng iu khin. Kh nng iu khin l c tnh ca vai tr v ch ra rng n c th iu khin mt chiu thng qua quan h kt hp t i tng ca lp ngun ti i tng ca lp ch. V d: biu lp hnh 6-25 c b sung thm chiu iu khin nh hnh 6-26.
HBH enterItems() endSale() makePayment()

ghi-Nhn

PhienBanHang ngayBan:Date gioBan: Time iscomplete: Boolean becomeComplete() makeLineItem() total()

Hnh 6-26 Ch r hng iu khin ca vai tr trong biu lp Kh nng iu khin c trong biu lp thng c th hin nh l kh nng nhn thy c ca cc thuc tnh ca lp ch t lp ngun. Trong ci t bng ngn ng lp trnh, n c thc hin bng cch xy dng lp ngun c nhng th hin l cc i tng ca lp ch. V d: khi ci t cc lp hnh 6-26, lp HBH s c thuc tnh tham chiu ti i tng ca lp PhienBanHang. Kh nng iu khin v quan h kt hp gia cc lp c ch ra trong cc biu cng tc. Chng ta cn c vo cc tnh hung gi xc nh mi kt hp v kh nng iu khin t A ti B:

- 145 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

:A gi mt thng ip ti cho :B th A kt hp vi B theo chiu t A ti B. A to ra mt i tng ca B th A kt hp vi B theo chiu t A ti B. A c quan h kt ni vi B thng qua thuc tnh c gi tr thuc kiu B, th A kt hp vi B theo chiu t A ti B. :A nhn c mt thng ip trong c i tng ca B ng vai tr l tham s th A kt hp vi B theo chiu t A ti B. Da vo nhng qui c nu trn chng ta thit k mt phn biu lp c cc quan h kt hp v chiu iu khin nh hnh 6-27.

7. B sung cc quan h ph thuc d liu Ngoi kh nng nhn thy c ca cc thuc tnh cn c ba kh nng khc, gm: tm nhn tham s, tm nhn khai bo cc b v tm nhn ton cc. Trong thit k, kh nng nhn thy gia cc lp c th hin bng quan h ph thuc, c m t bng ng t nt c mi tn ch r lp ngun ph thuc vo lp ch. V d: 1. i tng ca HBH nhn c thng tin m t mt hng (MoTaMatHang) sau khi n gi thng ip n cho DanhMucMatHang. Do vy, MoTaMatHang phi c khai bo cc b trong HBH, ngha l HBH ph thuc vo MoTaMatHang. 2. Tng t, PhienBanHang nhn c MoTaMatHang nh l tham s trong hm makeLineItem(), ngha l MoTaMatHang nm trong tm nhn tham s ca PhienBanHang. Vy, PhienBanHang cng ph thuc vo MoTaMatHang. T chng ta c biu lp cng quan h ph thuc nh hnh 6-28. CuaHang
1 diaChi: Address tenGoi: String addSale() S-dng C 1 1 1 1 S-dng 1 1 Cha 1

MoTaMatHang
maSanPham: UPC giaBan: Number moTa: Text
1

DanhMucMatHang
specification() loadProdSpecs()

c-m-t-bi

DongBanHang
soLuong: Int subtotal() Cha 1 1..*

HBH
Ghi-Nhn

PhienBanHang
ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() * 1

enterItems() endSale() makePayment()

ThanhToan
tongsoTien: Number

Qun-l

c-tr-bi

- 146 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Hnh 6-27 Thit k biu lp c b sung quan h kt hp CuaHang


1 diaChi: Address tenGoi: String addSale() S-dng C 1 1 1 1 S-dng 1 1 Cha 1

MoTaMatHang
maSanPham: UPC giaBan: Number moTa: Text
1

DanhMucMatHang
specification() loadProdSpecs()

c-m-t-bi

DongBanHang
soLuong: Int subtotal() Cha 1 1..*

HBH
Ghi-Nhn

PhienBanHang
ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() * 1

enterItems() endSale() makePayment()

ThanhToan
tongsoTien: Number

Qun-l

c-tr-bi

Hnh 6-28 Thit k biu lp c b sung quan h ph thuc 8. Xc nh lp tng qut v b sung cc quan h k tha Nh pha phn tch nu, ca s dng Thanh ton c th chia nh thnh cc ca s dng con: Thanh ton bng th (makeCreditPayment), Thanh ton tin mt (makeCashPayment), v Thanh ton bng Check (makeCheckPayment) tu thuc vo phng thc thanh ton ca khch. Thanh ton Thanh ton tin mt Thanh ton bng Check Thanh ton bng th

Hnh 6-29 Phn tch tip ca s dng Thanh ton t hnh 3-6 Trong cc phn trc chng ta phn tch ca s dng Thanh ton tin mt v xc nh c cc lp i tng thc hin ca s dng ny. Bng cch lm tng t nh trn, chng ta tip tc phn tch hai ca s dng cn li xc nh nhng lp tng ng. C th cn c vo cc kch bn m t ca s dng tm cc lp i tng. M t chi tit cc ca s dng trn:

- 147 -

Phn tch, thit k hng i tng bng UML Thanh ton bng th tn dng Cc tc nhn
1. Ca s dng ny c bt u thc hin khi khch c thng bo tng s tin phi tr v h chn phng thc thanh ton bng Credit. 2. Khch hng a th Credit v th a c qua u c.

on Vn Ban

H thng

3. H thng pht sinh yu cu kim tra th Credit v gi ti b phn dch v kim tra th CreditAuthorization Service (CAS) qua modem c gn vi HBH. H thng ch tr li. 4. Khi nhn c kt qu tr li v tnh hp php ca th t CAS, h thng ghi li kt qu tr li. 5. Nu th Credit hp l th n c gi ti b phn ti v, Account s tin v th b tr i s tin phi tr. 6. Hin th kt qu.

Thanh ton bng Check


Cc tc nhn 1. Ca s dng ny c bt u thc hin khi khch hng c thng bo s tin phi tr v chn phng php thanh ton tr sc (Check). 2. Khch hng vit Check, a Check v xut trnh drivers license (giy php s dng check) cho ngi bn hng. 3. Ngi bn kim tra drivers license v Check v nhn nt: CheckAuthorization yu cu kim tra. 4. H thng pht sinh yu cu kim tra Check v gi n cho b phn kim tra CheckAuthorization Service qua modem gn vi HBH. 5. Nhn c kt qu kim tra h thng ghi li cc thng tin trn Check. 6. Hin th kt qu x l v thng bo cho khch hng. H thng

Do vy, ngoi nhng lp phn tch thit k trn, chng ta cn b sung thm cc lp c kin quan:

- 148 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

ThanhToanTienM (CashPayment) ThanhToanThe (CreditPayment), ThanhToanCheck (CheckPayment). Lin quan n nhng lp ny l TheCredit (CreditCard) v Check. Ngoi ra cn cn nhng lp phc v cho vic kim duyt th Credit v Check l CreditAutorizationService v CheckAutorizationService. Chng ta d nhn thy cc lp ThanhToanTienM, ThanhToanThe v ThanhToanCheck l kh ging nhau v tnh cht v hnh vi. Do vy, c th xem chng nh l kiu con (subtype) k tha t lp ThanhToan. Mt khc, thc hin c thanh ton bng th phi s dng TheCredit v tr bng Check th phi c TheCheck. Mi TheCredit c th mua hng c nhiu ln, cn mi t TheCheck ch mua c mt ln. Cc mi quan h trn ca chng c th hin trong biu nh sau:
ThanhToan

ThanhToanTienM

ThanhToanThe Tr-bng
* 1

ThanhToanCheck Tr-bng
1 1

TheCredit

TheCheck

Hnh 6-30 Cc lp k tha ca ThanhToan Mt s lu v lp tng qut (lp c s) v cc lp con Trong mi quan h k tha gia cc lp lun yu cu phi tho mn hai qui tc sau: 1. Lut thnh vin (Is-a Rule): Tt c cc thnh vin ca lp con (lp k tha) cng l thnh vin ca lp cha (lp tng qut hn). 2. Lut ph hp 100%: Tt c cc i tng ca lp (kiu) con u phi ph hp 100% v: + Cc thuc tnh, + Cc mi quan h vi cc i tng ca lp cha.

- 149 -

Phn tch, thit k hng i tng bng UML V d:


ThanhToan + tongSoTien
Tr-cho

on Vn Ban

PhienBanHang

ThanhToanTienM

ThanhToanThe Tr-bng
* 1

ThanhToanCheck Tr-bng
1 1

TheCredit

Check

Hnh 6-31 Cc lp k tha v lut thnh vin, lut 100% Theo hai lut trn th mi i tng ca cc lp con ThanhToanTienM, ThanhToanThe v ThanhToanCheck u c thuc tnh tongSoTien nh lp cha v chng u c quan h kt hp Tr-cho vi lp PhienBanHang. Trong thit k hng i tng, mt vn rt quan trng l phi thit lp c cc lp tng qut v k tha to ra mt cu trc phn cp gia cc lp nhiu nht c th. Quan h k tha s h tr s dng li nhng thuc tnh, hm thnh phn ca lp cha trong thit k v ci t cc lp con. Thng chng ta c hai cch thc hin cng vic trn. 1. Phn tch mt lp thnh nhiu lp con. 2. Gp mt s lp con thnh lp tng qut hn. Cu hi t ra l vi nhng iu kin no th thc hin phn tch v nhng iu kin no c th gp cc lp li c? Nguyn nhn cn phn chia mt lp thnh mt s lp con Khi xt mt lp, ngoi nhng thuc tnh v hnh vi chung, cc i tng cn c: 1. Mt s thuc tnh khc nhau cn c b sung vo to thnh nhng lp con cho i tng c thm nhng c tnh khc ngoi nhng c tnh chung ca lp cha. 2. Mt s quan h c b sung v khc vi lp ang xt. 3. Cn x l, thao tc khc nhau nhng lp con. V d: hy phn tch v thit k cc lp phc v cho h thng tnh tin lng tr cho nhn vin ca mt c quan. Trc tin hy xt lp NhanVien. Lp ny c nhng thuc tnh chung nh h v tn (hoTen), tui (tuoi). Cc nhn vin ca c quan c t chc thnh cc b phn nh: cn b qun l, b phn marketing, b phn bn hng. Cch tnh lng c thc hin nh sau: + Cn b qun l tnh lng theo chc v hay nhim v c giao,

- 150 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

+ Nhn vin marketing c tnh lng theo gi lm vic trong thng, + Cc nhn vin bn hng c tr lng theo % hoa hng s tin bn c hng. Nh vy, cc b phn trn, ngoi nhng thuc tnh chung ca NhanVien cn c thm nhng thuc tnh khc nhau, lp QuanLy c thm thuc tnh chucVu, lp Marketing c thm gioLaoDong v lp BanHang c thm soTienBanDuoc m t c ng cc nhn vin trong tng b phn. Ngha l ta c th chia NhanVien thnh QuanLy, Marketing v BanHang nh sau:
NhanVien + hoTen + tuoi

QuanLy chucVu

Marketing gioLaoDong

BanHang soTienBanDuoc

Hnh 6-32 Chia lp NhanVien thnh cc lp con Trong qu trnh thit k, chng ta thng thc hin hoc gp mt s lp c mt s im chung thnh lp tng qut, hoc ngc li chia nh v b sung thm mt s tnh cht to ra nhng lp con k tha lp c xy dng trc. Cch lm ny lm tng kh nng s dng li v m bo tnh m cao cng nh tnh tin cy ca h thng. Nguyn nhn cn gp li thnh lp tng qut Khi mt s lp (gi l lp con) c nhng tnh cht sau th c th gp chng li v to ra mt lp tng qut: 1. Cc lp con cng th hin cc phin bn ca mt khi nim tng t. 2. Cc lp con u tho hai lut: lut 100% v lut thnh vin. 3. Cc lp con c mt s thuc tnh ging nhau c th nhm li thnh lp tng qut hn. 4. Cc lp con c mt s lin kt chung c th a chng vo lp cha. V d: cc lp ThanhToanTienM, ThanhToanThe v ThanhToanCheck c nhim v ging nhau l cng thanh ton cho mt phin bn hng, nn c th gp chng thnh lp ThanhToan nh hnh 6-30, 6-31. Tng t, hai lp CreditAutorizationService v CheckAutorizationService c hnh vi ging nhau l cng lm nhim v kim duyt v c cng quan h vi CuaHang, do vy c th gp chng thnh lp tng qut l AutorizationService. Biu m t nhng quan h nh trong hnh 6 - 33.

- 151 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

AuthorizationService
+ diaChi
*

Phc-v *

CuaHang

CreditAuthorizationService

CheckAuthorizationService Hnh 6-33 Lp tng qut ho

i vi nhng lp mi, chng ta li tm cch xc nh cc thuc tnh, cc hm thnh phn v b sung nhng quan h cn thit hon thin thit k biu lp nh hnh 6-28, 6-29 cho tt c cc lp trong h thng.

6.5 Thit k biu cng tc v hon thin thit k biu lp trong Rose
Tng t nh cc chng trc, chi tit v cch s dng cc chc nng ca Rose c th tham kho ([17], [22]). 6.5.1 Xy dng biu cng tc + To lp biu cng tc, + To lp, b sung cc tc nhn, i tng vo biu , + B sung cc thng ip (hm), t tn v cc hng iu khin trong cc quan h kt hp, + Gn trch nhim cho cc i tng, + nh x i tng vo lp v thao tc vo thng ip. Thc hin i vi cc biu cng tc hnh 6-12, 6-15, 6-20, 6-23, 6-24.

6.5.2 Hon thin thit k biu lp


Tip theo phn thc hnh xy dng biu lp chng 4, y tp trung thc hin b sung mt s tnh cht cho lp: + B sung tham s v t i s cho tham s, + B sung lp tin ch (Class Utility), lp tham s tin ch (Parameterized Class Utility), lp tin ch hin thc (Instantiated Parameterized Class Utility) v Metaclass. + c t chi tit cc lp: gn cc kiu, Stereotype, cc thuc tnh phm vi (Visibility), t bi s v cc thuc tnh lu tr (Persistent, Transient),

+ B sung y cc thuc tnh, cc hm cho cc lp, + B sung nhng quan h: kt hp, kt nhp, ph thuc v k tha gia cc lp.
V cc biu lp nh cc hnh 6-27, 6-28, 6-30, 6-31.

- 152 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Bi tp v cu hi
6.1 Hy cho bit nhng mnh sau ng hay sai (true / false), gii thch ti sao? + Biu cng tc chnh l mt th ch ra mt s cc i tng v nhng s lin kt gia chng. + Biu cng tc ca mt hot ng th hin thut ton thc thi hnh ng . + Ca s dng c xc nh trong pha phn tch cc yu cu h tr ci t v c lin h nhiu vi giao din s dng. + Mt lp c thit k tt l lp c mc ni cao v mc c kt thp. + T mt lp bt k lun to ra c mt lp con k tha t lp .
6.2 Xy dng biu cng tc cho hot ng ng k mn hc (tip theo bi 5.3). 6.3 Xy dng biu lp y cho h thng Qun l th vin (tip theo bi 5.5). 6.4 Thit lp biu lp cho H thng rt tin t ng ATM (Tip theo ca bi ton 5.6). 6.5 Thit lp biu lp cho H thng m phng h thng thang my. 6.6 Xy dng biu lp cho H thng qun l hc tp ca sinh vin. 6.7 Xy dng biu lp cho H thng bn hng trn mng. 6.8 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v cng vic trong phn tch v thit k h thng.

Trong pha phn tch chng ta tp trung kho st h thng tr li cho cu hi h thng gm [(1)] v cng bt u nghin cu cc [(2)], tng tc gia cc lp i tng thng qua biu trnh t v biu trng thi. Nhim v chnh ca giai on thit k l chuyn t cu hi [(1)] sang tr li cho cu hi [(3)]. Nh vy nhim v chnh trong thit k hng i tng l xy dng cc [(4)] ca cc i tng h thng thc hin c cc yu cu c xc nh trong pha phn tch. Chn cu tr li: a. nh th no? b. biu cng tc c. nhng ci g d. mi quan h

- 153 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

CHNG VII

KIN TRC H THNG V PHT SINH M TRNH

Chng VII trnh by: Kin trc ca h thng phn mm, Biu thnh phn v biu trin khai, Thit k giao din h thng, nh x mt thit k sang m cng tc trong Rose.

7.1 Kin trc ca H thng


Mc ch ca thit k l a ra cch gii logic bi ton ng dng v m t cch h thng thc thi nhng nhim v c phn tch. Ngha l: Xy dng cc thit k chi tit m t cc thnh phn ca h thng mc cao hn, phc v cho vic ci t pha sau. ng thi a ra c kin trc (l trng tm) ca h thng m bo c th thay i c, c tnh m, d bo tr, thn thin vi NSD, v.v. Kin trc h thng l cu trc t chc ca h thng. Kin trc gm nhiu b phn c th nhiu mc khc nhau, tng tc vi nhau thng qua cc giao din, cc mi quan h kt ni v cc rng buc kt hp chng thnh mt th thng nht. Kin trc phn mm l mt m t v cc h thng con, cc thnh phn v mi quan h gia chng. Cc h thng con v cc thnh phn c xc nh theo nhiu gc nhn khc nhau ch ra cc thuc tnh chc nng v phi chc nng ca h thng phn mm. Kin trc h thng c chia thnh hai loi: logic v vt l. Kin trc logic ch ra cc lp v i tng, cc quan h v s cng tc hnh thnh chc nng ca h thng. Kin trc logic c m t bi cc biu ca s dng, biu lp v cc biu tng tc. Kin trc ph bin chung hin nay l kin trc ba tng: tng giao din, tng tc nghip v tng lu tr. Kin trc vt l cp n vic m t chi tit h thng v phng din phn cng v phn mm ca h thng. ng thi n cng m t cu trc vt l v s ph thuc ca cc m un cng tc trong ci t nhng khi nim c nh ngha trong kin trc logic. Kin trc vt l ca h thng lin quan nhiu n ci t, do vy, n c m hnh ho trong cc biu thnh phn (Component Diagram) v biu trin khai (Deployment Diagram). Biu thnh phn cha cc thnh phn bao gm cc n v m chng trnh v cu trc cc tp (m ngun v nh phan). Biu trin khai ch ra kin trc h

- 154 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

thng khi thc thi, bao gm cc thit b vt l v nhng phn mm t trn . Kin trc ba tng Nh phn phn tch nu: Kin trc ph bin cho cc h thng phn mm hin nay l kin trc ba tng. 1. Tng trnh din: biu din v gii thiu cc thnh phn ca h thng thng qua cc giao din ho, cc Window, cc hp thoi, v.v. Cc thc th trong h thng c th hin sao cho va thn thin vi ngi s dng, va ph hp vi bi ton ng dng. V d, ca s Bn hng ca h thng bn hng c thit k tng trnh din nh hnh 6-9 th hin giao din gia ngi bn v h thng. 2. Tng logic ng dng: m t cc i tng thc thi cc nhim v v cc qui lut iu hnh cc tin trnh ca h thng. H thng phn mm c hai loi i tng c bn: 2.1 Nhng i tng nghip v: l nhng i tng i biu cho cc khi nim ca min ng dng. V d, trong h thng bn hng, cc i tng :PhienBanHang, :ThanhToan, v.v. l nhng i tng thc hin cc nhim v ca bi ton ng dng. 2.2 Nhng i tng dch v (Service Object): nhng i tng khng nm trong phm vi bi ton nhng cung cp cc dch v cho h thng nh: lm mi gii, tng tc vi CSDL, trao i thng tin, lp bo co, m bo n ton, an ninh d liu, v.v. Tng hai c th hin cc biu : lp, trng thi, cng tc, hnh ng v biu trin khai. 3. Tng lu tr (Storage): th hin c ch lu tr m bo nht qun v bn vng d liu. Hin nay c hai m hnh CSDL chnh ang c s dng ph bin l: m hnh d liu quan h v m hnh d liu hng i tng. lu tr d liu cho h thng, ta phi la chn h qun tr CSDL v nhng phng php bin i d liu, bin i cc cu truy vn cho ph hp vi cng ngh hin i v vi phm vi ng dng. Kin trc s i tng phi la chn cng ngh CSDL thch hp pht trin h thng. Khi phn tch, thit k hng i tng v nu la chn m hnh d liu quan h th ngi pht trin h thng phi quan tm n nhng vn v tch hp d liu m cho php ngi s dng truy cp c ti tt c cc d liu t nhiu m hnh khc nhau mt cch trong sut. Qu trnh pht trin phn mm cng ging nh qu trnh hc v nhn thc ca con ngi, l qu trnh lp, tch lu pht trin, hon thin lin tc. V vy, kin trc ca h thng cng phi c xy dng sao cho ph hp vi s pht trin v kh nng m rng ca h thng.

- 155 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Trong trin khai ci t, kin trc ba tng thng c t chc theo nhiu phng n khc nhau. C th thc hin: 1. C 3 tng trn cng my (h thng nh). 2. Tng trnh din v tng logic ng dng trn my khch (Client Computer), tng lu tr trn Sever (h thng loi va). 3. Tng trnh din trn my ngi s dng, tng logic ng dng trn my trm phc v ng dng (Application Server), cn tng lu tr t chc trm phc v d liu (Data Server) (nhng h thng ln). Hin nay c nhng ngn ng lp trnh hng i tng nh Java v cc cng ngh CSDL hng i tng sn sng h tr ci t phn tn theo cc phng n 2. v 3. thit k c h thng th ta phi chia n thnh cc h thng con gi l cc gi (packages). Cc package trong h thng c mc ph thuc vo nhau. Do vy, mt kin trc chi tit chung cho h thng trong biu din c c quan h ph thuc s c xy dng tng qut nh sau: Trnh din

Min ng dng

Giao din vi CSDL quan h

Trao i tin

Giao din vi CSDL i tng

Lp bo co

Cc khung ng dng & s h tr ca cc h thng th vin

CSDL quan h

CSDL i tng

Hnh 7-1 Kin trc chung ca h thng

- 156 -

Phn tch, thit k hng i tng bng UML Mt s im cn lu trong kin trc nu trn

on Vn Ban

1. Cc gi giao din CSDL quan h v CSDL i tng cung cp cc c ch nht qun trao i vi cc CSDL khc. 2. Cc gi dch v hng i tng mc cao nh: lp bo co, giao din vi CSDL, m bo an ninh, trao i (truyn thng), v.v. c pht trin theo k ngh hng i tng v thng c cc nh pht trin phn mm h thng cung cp. Ngc li, dch v mc thp nh cc chc nng x l tp, Windows, hi thoi, v.v. thng c cung cp bi th vin chun ca ngn ng lp trnh hoc c mua trc tip ca cc hng sn xut phn mm. 3. Cc khung ng dng (Application Frameworks and Support Libraries) h tr to ra Windows, nh ngha cc phn t hp tc ng dng, truy cp ti tp v CSDL, trao i gia cc tin trnh, v.v. 4. Quan h ph thuc ca cc gi A v gi B ch ra rng gi A bit r v gi B, do vy A s dng c cc thnh phn ca B. Khi A khng c quan h ph thuc vo B th t A khng th quy chiu (tham kho) n cc lp, thnh phn, giao din, hm, hoc cc dch v ca B c. T chc cc gi v mi quan h gia chng 1. Hng dn nhm cc phn t thnh mt gi Nhm nhng phn t c cc dch v chung, c quan h hp tc, c kt tng h cao thnh mt gi. cng mc tru tng th mi gi c xem nh mt b phn, gm mt s phn t c cu kt v lin h cht ch vi nhau, hay cn c gi l h thng con. Ngc li, cc phn t hai gi khc nhau s lin kt vi nhau mc thp. 2. Kh nng quan st gia cc lp ca cc gi Gi trnh din (Presentation Package) c th nhn thy c nhiu lp trong min ng dng. Gi min ng dng (Domain Package) c th nhn c mt s lp i tng trong mi gi dch v c th.

7.2 Biu thnh phn


Biu thnh phn (Component Diagram) l biu m t cc thnh phn v s ph thuc ca chng trong h thng. Cc thnh phn ca h thng c th l: Thnh phn m ngun, c ngha vo thi im dch chng trnh. Thng thng n l tp cc chng trnh ci t cc lp. V d, trong C++, mi tp .cpp v .h l mt thnh phn. Trc khi pht sinh m chng trnh, phi thc

- 157 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

hin nh x tng tp vo thnh phn tng ng, thng thng mi lp c nh x vo hai tp (.cpp, v .h). Thnh phn m nh phn l m trnh nh phn c dch t m chng trnh ngun. N c th l tp m ch (.obj), tp th vin tnh (.lib) hay tp th vin ng (.dll). Thnh phn nh phn c s dng lin kt, hoc thc thi chng trnh (i vi th vin ng). Thnh phn thc thi l tp chng trnh c th thc thi c (cc tp .exe). N l kt qu ca chng trnh lin kt cc thnh phn nh phn. Vi biu thnh phn, ngi pht trin h thng thc hin dch, trin khai h thng s bit th vin m trnh no tn ti v nhng tp c th thc thi (.exe) khi dch v lin kt thnh cng. Gia cc thnh phn ch c mt loi quan h ph thuc c biu din bng ng mi tn t nt. Kt ni ph thuc cho bit thnh phn ph thuc phi dch sau thnh phn kia. Lu , nn trnh ph thuc vng trn trong biu thnh phn. V d: biu thnh phn m t s ph thuc gia cc thnh phn ca h thng.
Window Handler (whd.cpp) Window Handler (whd.obj)

Graphics Lib (graphics.dll)

Comm Handler (chd.cpp)

Comm Handler (chd.obj) MyProgram

MainClass (main.cpp)

Main Class (main.obj)

(System.exe)

Hnh 7-2 S ph thuc ca cc thnh phn trong biu thnh phn Trong UML (v Rose) c mt s biu tng biu din cho cc thnh phn, l: Thnh phn: biu tng thnh phn (hnh 7-3a) c s dng biu din module chng trnh c cc giao din. Trong c t c xc nh kiu Stereotype (AciveX, Applet, DLL, exe, v.v.).

- 158 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

c t v thn chng trnh con: biu tng thnh phn cho c t chng trnh con hnh 7-3b, v c t dng ci t ca chng trnh con hnh 7-3c. Chng trnh con khng cha cc nh ngha lp. Chng trnh chnh: biu tng thnh phn (tp) cha im vo ca chng trnh chnh hnh 7-3d, v d trong C/C++ l tp cha hm main(). c t v thn ca gi: c t gi hnh 7-3e l tp header cha thng tin v cc hm thnh phn ca lp, v d c gi trong C/C++ l tp .h nh ngha cc hm prototype. Biu tng cho thn gi hnh 7-3f gm m cc lnh ca cc hm thnh phn ca lp cha trong gi. Trong C/C++, thnh phn ny l tp .cpp. c t v ni dung nhim v: cc biu tng ny (hnh 7-3g, 7-3h) biu din cho phn c t v ni dung ca nhng nhim v c lp.

SubprogBody

SubprogSpec

MainSubprog

Component

(a) (b)
PackageSpec PackageBody TaskSpec TaskBody

(c)

(d)

(e)

(f)

(g)

(h)

Hnh 7-3 Cc thnh phn ca h thng Tng t nh cc phn t khc trong UML, i vi cc thnh phn cng c th b sung mt s c t chi tit: + Stereotype: mu rp khun cho cc biu tng s c s dng phn nhm cc thnh phn. N c th l mt trong cc la chn: <none>, c t chng trnh con, chng trnh chnh, c t gi, ni dung ca gi, c t nhim v, ni dung cng vic, ActiveX, Applet, ng dng, v.v. + Ngn ng: Rose cho php la chn ngn ng lp trnh cho tng thnh phn, nh C++, Java, Visual Basic, Oracle 8, v.v. + Khai bo: ph thuc c gp vo m chng trnh cho mi thnh phn. Lnh #include ca C++ c xem nh l lnh khai bo. + Lp: trc khi pht sinh m chng trnh th lp phi c nh x vo thnh phn. iu ny bo cho Rose bit m chng trnh ca lp s c ghi vo tp no. C th nh x mt hay nhiu lp vo mt thnh phn.

- 159 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Biu thnh phn c xem nh l tp cc biu tng thnh phn biu din cho cc thnh phn vt l trong mt h thng. tng c bn ca biu thnh phn l to ra cho nhng ngi thit k v pht trin h thng mt bc tranh chung v cc thnh phn ca h thng.

7.3 Biu trin khai


Biu trin khai (Deployment Diagram) ch ra cu hnh cc phn t x l lc chng trnh chy, cc nt trn mng v cc tin trnh phn mm thc hin trn nhng phn t . N ch ra mi quan h gia cc phn cng v phn mm ca h thng. Biu trin khai ch ra ton b cc nt trn mng, kt ni gia chng v cc tin trnh chy trn chng. V d, biu trin khai ca h thng c th t chc nh hnh 7-4.
TCP/IP ClientA: PC Application Server ClientB: PC TCP/IP TCP/IP DataBase Server

Hnh 7-4 Biu trin khai ca h thng Mi nt l mt i tng vt l (cc thit b) c ti nguyn tnh ton. Chng c th l my tnh, my in, my c nh, thit b truyn tin, v.v. Cc nt c kt ni vi nhau thng qua cc giao thc (protocol) nh cc giao thc TCP/IP hnh 7-4. Cc phn t (nt) ca biu trin khai B x l (Processor): b x l ca my tnh, my ch, trm lm vic, v.v. Cc b x l c c t chi tit bng cch b sung thm cc thng tin: + Stereotype: phn nhm cc b x l. + c tnh: m t cc tnh cht vt l ca mi b x l nh: tc tnh ton, dung lng b nh, v.v. + Lch biu (Schelduling): m t loi lch biu thi gian x l, bao gm: Preemptive cho php nhng tin trnh c mc u tin cao hn c th chim quyn x l i vi nhng tin trnh c mc u tin thp hn Non Preemptive khng c u tin, mt tin trnh ch dng khi n t kt thc Cyclic ch ra chu k iu khin gia cc tin trnh Executive: cc lch biu c iu khin bng thut ton, bng chng trnh Manual: tin trnh c iu khin bng ngi s dng.

Thit b: l my mc hay b phn phn cng nhng khng phi l b x l trung tm, nh: mn hnh, my in, my v, v.v. Thit b cng c th c t mt s thng tin chi tit nh: Stereotype v mt s tnh cht vt l.

- 160 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tin trnh (Process) l lung thc hin ca mt chng trnh trong mt b x l. Mt chng trnh thc thi c xem nh l mt tin trnh. Cc tin trnh thng c gn cc mc u tin v b x l s thc hin nhng tin trnh c mc u tin cao hn.

7.4 nh x cc thit k sang m chng trnh


y chng ta khng cp nhiu n pha lp trnh hng i tng m ch gii thiu mt s cch nh x nhng kt qu thit k sang m chng trnh. Hin nay nhiu cng c pht trin hin i cung cp nhng mi trng tin li nhanh chng chuyn i gia thit k v m ho chng trnh. Ci t bng mt ngn ng lp trnh hng i tng i hi phi vit m ngun cho: Cc phn nh ngha lp, Cc nh ngha hm thnh phn. Trong cc phn sau chng ta tho lun v phn sinh m trong C++ cho nhng thit k nu trn. 7.4.1 To lp cc nh ngha lp t nhng thit k biu lp Trong pha thit k, biu lp c xy dng chi tit m t y tn gi ca lp, tn cc thuc tnh, cc hm thnh phn v mi quan h ca cc i tng trong h thng. Nhng kt qu to ra cc nh ngha lp trong ngn ng lp trnh hng i tng nh C++. nh ngha lp vi cc hm v thuc tnh n T cc lp c thit k chi tit, thc hin nh x nh sau: Cc thuc tnh n c chuyn tng ng sang cc bin c kiu d liu ph hp, Cc hm c chuyn sang cc hm prototype.

V d, nh ngha lp DongBanHang trong C++ nh sau:


class DongBanHang{ DongBanHang(MoTaMatHang mTa, int soLuong); public float subtotal(); private int soLuong; }

DongBanHang soLuong: int subtotal(): Number

c-m-t-bi

MoTaMatHang upc: UPC giaBan: Number moTa: Text

Hnh 7-5 nh ngha lp da vo biu lp

- 161 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Lu : khi nh ngha, chng ta thng phi b sung thm hm to lp (constructor) to ra nhng i tng khi cn s dng trong chng trnh. iu ny cng c suy ra t biu cng tc hnh 6.20, trong :DongBanHang nhn c thng ip create(mt, n) to ra dng bn hng vi m t l mt v s lng l n. iu ny c ton t to lp trong C++ l hm c cng tn vi tn ca lp h tr. Chng ta cng nhn thy, d liu kt qu ca hm subtotal() l b thay i, t kiu Number trong thit k c chuyn thnh float. Ngha l ngi lp trnh c th chn nhng kiu d liu thch hp cho cc bin thuc tnh v cc hm, ch khng nht thit phi theo ng bn thit k. B sung thm cc thuc tnh tham chiu Thuc tnh tham chiu l thuc tnh c s dng tham chiu n i tng phc hp khc, khng phi l nhng kiu d liu nguyn thu. Thuc tnh tham chiu ca mt lp c xc nh bi nhng quan h kt hp v s iu khin trong thit k biu lp. V d: trong biu lp ca h thng bn hng, lp DongBanHang c quan h kt hp vi MoTaMatHang v mi tn iu khin ch hng gi thng ip khi trao i thng tin nh hnh 7-4. Trong C++, iu ny c ngha l trong lp DongBanHang phi khai bo bin tham chiu ti MoTaMatHang. Thuc tnh tham chiu thng l khng tng minh, chng c suy ra t cc mi quan h trong biu lp. i khi, nu vai tr ca u quan h c mt trong biu lp th chng ta cng c th s dng nh l tn ca thuc tnh tham chiu. nh ngha ca lp DongBanHang, do vy c nh ngha hon chnh nh hnh 7-6.
class DongBanHang{ DongBanHang(MoTaMatHang mTa, int soLuong); public float subtotal(); private int soLuong; private MoTaMatHang moTa; }

bin n bin tham chiu

DongBanHang soLuong: int subtotal(): Number

c-m-t-bi moTa

MoTaMatHang upc: UPC giaBan: Number moTa: Text

Tn ca vai tr c s dng trong tn ca thuc tnh

Hnh 7-6 B sung thm thuc tnh tham chiu vo lp

- 162 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Tng t nh trn, chng ta c th nh ngha cc lp khc, v d lp HBH c nh ngha nh hnh 7-7.


public class HBH{ HBH(DanhMucMatHang pc); public void endSale(); public void enterItems(); public void makePayment(float soTien); private PhienBanHang banHang ; private DanhMucMatHang muc; } HBH banHang endSale() enterItems() makePayment(soTien: Number) 1 1

muc 1

DanhMucMatHang specification()

1 PhienBanHang ngayBan: Date gioBan: Time isComplete: Boolean becomeComplete() makeLineItem() total()

Hnh 7-7 nh ngha lp HBH 7.4.2 nh ngha hm t biu cng tc Biu cng tc ch ra cch cc thng ip c gi n cho cc i tng bng cc li gi hm. Dy cc thng ip nhn c s c dch tng ng sang dy cc lnh trong nh ngha hm thnh phn ca mt lp. Chng ta hy xt biu cng tc m t nhim v enterItems (nhp d liu vo) v da vo nh ngha hm enterItems().
enterItems(upc, n) : HBH 1: [new] create() 3: makeLineItem(mt, n) 2: mt := specification(upc) :DanhMucMatHang 2.1: mt := find(upc) 1.1: create() 3.2: add(sLi) sLi: DongBanHang :PhienBanHang 3.1: create(mt,n)

:DongBanHang

:MoTaMatHang

Hnh 7-8 Biu cng tc cho enterItems Thng ip enterItems c gi cho mt i tng ca HBH, do vy, trong lp HBH s c hm enterItems() c nh ngha nh sau:

- 163 -

Phn tch, thit k hng i tng bng UML


public void enterItems(UPC upc, int soLuong);

on Vn Ban

Thng ip 1: Theo biu trn, thc hin c nhim v enterItems() th trc tin n phi to ra :PhienBanHang mi, nu l mt hng u tin c nhp vo. Ngha l
if (isNewSale()){banHang = new PhienBanHang();}

Hm u tin chng ta cn kho st l: isNewSale(). Hm ny c th khai bo private, lm nhim v kim tra xem bin i tng ca PhienBanHang c rng hay khng, ngha l i tng ca PhienBanHang cha c thit lp hoc l kt thc phin bn hng trc . Vy
private int isNewSale(){return (banHang == null) || banHang.isComplete();}

Lu : C++ khng c kiu Boolean, nhng n xem gi tr ca biu thc khc 0 l ng (true) v bng 0 l sai (false). Hm ny c b sung vo lp HBH ngoi nhng hm c xc nh nh hnh 7.7. Thng ip 2: Tip theo, mt thng ip c gi cho :DanhMucMatHang xc nh cc thng tin v mt hng c m l upc.
DanhMucMatHang moTa = muc.specification(upc);

muc l mt i tng ca DanhMucMatHang. Thng ip 3: Thng ip th ba makeLineItem c gi cho :PhienBanHang xc lp mt dng bn hng thng qua i tng banHang.
banHang.makeLineItem(moTa, soLuong);

Tm li, mi thng ip c gi i thc hin mt yu cu ca thng ip u tin trong biu cng tc, s c nh x thnh dy cc cu lnh tng ng trong nh ngha hm thnh phn ng vi tng thng ip . Theo nguyn tc , hm enterItems() c nh ngha y nh sau:
public void enterItems(UPC upc, int soLuong){ if (isNewSale()){banHang = new PhienBanHang();} DanhMucMatHang moTa = muc.specification(upc); banHang.makeLineItem(moTa, soLuong); }

nh ngha hm makeLineItem() Xt tip biu cng tc cho enterItems(upc, soLuong) hnh 6-20, lp PhienBanHang nhn c thng ip makeLineItem(moTa, soLuong). thc hin c yu cu ny, n li phi gi i hai thng ip: 3.1: create(moTa, soLuong) cho sl: DongBanHang v 3.2: adds(sl) cho tp cc i tng :DongBanHang. Do , hm makeLineItem() trong lp PhienBanHang s c nh ngha nh sau:
public void makeLineItem(MoTaMatHang moTa, int soLuong){

- 164 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

lineItem.addElement(new DongBanHang(moTa, soLuong);

} Th t ci t cc lp Cc lp cn c ci t t nhng lp cp b yu dn n nhng lp cp b cao hn. V d, nhng lp u tin c th chn ci t trong h HBH l: hoc ThanhToan, hoc MoTaMatHang, sau l DanhMucMatHang, PhienBanHang, ri n HBH v CuaHang, v.v. nh hnh 7-9. CuaHang
1 diaChi: Address tenGoi: String addSale() 1 S-dng 1 1 Cha 1

MoTaMatHang
maSanPham: UPC giaBan: Number moTa: Text

7
S-dng

DanhMucMatHang
specification() loadProdSpecs()

2
c-m-t-bi
1

1 C 1

1 1

DongBanHang
soLuong: Int subtotal() Cha 1 1..*

HBH
Ghi-Nhn

PhienBanHang
ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() * 1

enterItems() Qun-l endSale() makePayment()

ThanhToan
tongsoTien: Number

5
c-tr-bi 1

Hnh 7-9 Th t ci t cc lp

7.5 Danh sch mt s lp c nh ngha trong C++


1. Lp ThanhToan
class ThanhToan{ private: float tongSoTien; public: ThanhToan(float soTien){ tongSoTien = soTien; } float getAmount(){return tongSoTien;} };

2. Lp MoTaMathang
#include <string.h>

- 165 -

Phn tch, thit k hng i tng bng UML


public class MoTaMatHang{ private: int upc = 0; float giaBan = 0.0; String moTa = ""; public: MoTaMatHang(int ma, float p, String mt){ upc = ma; giaBan = p; strcpy(moTa, mt); } MoTaMatHang(int ma, float p, String mt){ upc = 0; giaBan = 0; strcpy(moTa, ""); } int getUPC(){return upc;} float getPrice(){return giaBan;} String getDescrip(){return moTa;} };

on Vn Ban

3. Lp DanhMucMatHang
#define N 100 public class DanhMucMatHang{ private: MoTaMatHang danhSachMH[N]; public: DanhMucMatHang(){ for(inh k = 0; k < N; k++) danhSachMH[k] = new MoTaMatHang(); } MoTaMatHang find(int upc){ for(k = 0; k < N; k++) if (danhSachMH[k].getUPC() == upc) return danhSachMH[k]; } };

4. Lp DongBanHang
class DongBanHang{ private: int soLuong; MoTaMatHang moTa; public: DongBanHang(MoTaMatHang mt, int n){ moTa = mt; soLuong = n; } float subtotal(){ return soLuong * moTa.getPrice(); } };

- 166 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

5. Lp PhienBanHang
#define M 20 class PhienBanHang{ private: DongBanHang danhSachBan[M]; Date ngayBan; // Kiu ngy/thng/nm Time gioBan; // Kiu gi/pht/giy int soDong = 0; int isComplete = 0; // false ThanhToan traTien; public: getBalance(){ return traTien.getAmount() - total(); } void becomeComplete(){isComplete = 1;} int isComplete() {return isComplete;} void makeLineItem(MoTaMatHang mt, int sl){ lineItem[soDong++]= new DongBanHang(mt, sl); } float total(){ float t = 0.; for (int k = 0; k < soDong; k++) t += lineItem[k].subtotal(); return t; } void makePayment(float soTien){ traTien = new ThanhToan(soTien); } };

6. Lp HBH
class HBH{ private: DanhMucMatHang catalog; PhienBanHang banHang; public: HBH(DanhMucMatHang danhMuc){ catalog = danhMuc;} void endSale(){ banHang.becomeComplete();} void enterItems(int upc, int soLuong){ if (isNewSale(){ banHang = new PhienBanHang(); } MoTaMatHang mt = catalog.find(upc); banHang.makeLineItem(mt, soLuong); } void makePayment(soTien){ banHang.makePayment(soTien);

- 167 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

} int isNewSale(){ return (banHang == null) || (banHang.isComplete()); } };

7. Lp CuaHang
class CuaHang{ private: DanhMucMatHang dm = new DanhMucMatHang(); HBH post = new HBH(dm); public: HBH getPOST() {return post;} };

Tng t, d dng nh ngha cho tt c cc lp khc ca h thng HBH.

7.6 Thc hnh trn Rose


7.6.1 Xy dng biu thnh phn + To lp mi hoc m mt biu thnh phn c to lp trc, + B sung, loi b cc thnh phn, + c t chi tit cc thnh phn: gn Stereotype, chn ngn ng Language, chn lp gn Assign, + Thit lp cc mi quan h ph thuc gia cc thnh phn. 7.6.2 Xy dng biu trin khai + To lp mi hoc m mt biu trin khai c to lp trc, + B sung, loi b cc nt, cc phn t x l Processor, + c t chi tit cc phn t x l: gn Stereotype, b sung mt s c tnh nh Preemtive, Non preemtive, Cyclic, v.v. v gn Schelduling, + B sung cc thit b Device v c t chng, + Thit lp cc mi quan h kt ni gia cc nt, + B sung v hu b cc tin trnh Process. 7.6.3 Pht sinh m trnh bng Rose C su bc c bn thc hin pht sinh m chng trnh: 1. Thit lp cc thuc tnh ca m hnh 2. Kim tra m hnh 3. To lp cc thnh phn 4. Gn cc lp vo thnh phn 5. Chn lp, thnh phn hay gi pht sinh m.

- 168 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

6. Pht sinh m chng trnh. Khng phi ngn ng no cng cn y cc bc nu trn. V d, khi pht sinh m chng trnh bng C++ (hay Java) cho cc lp c thit k chi tit th ch cn thc hin bc 5 v 6, hay bc mt cng khng bt buc phi thc hin. Tuy nhin, v mt qui trnh cng nghip nn thc hin c su bc trn. Bc 1: Thit lp cc c tnh ca m hnh C nhiu c tnh c s dng pht sinh m ngun c th gn cho lp, vai tr (Role), thuc tnh, hm v cc thnh phn khc ca lp. + Cc c tnh ca lp bao gm: cc ton t to lp, hu t, ton t to lp nhn bn, php i snh, cc phng thc truy cp d liu (get/set methods) + Cc c tnh ca vai tr bao gm: thit lp cc phng thc truy cp, lp cha + Cc c tnh ca phng thc bao gm: nhng php ton chung nh phng thc abstract, virtual, static, friend, v.v. Cc c tnh ny iu khin vic pht sinh m chng trnh t ng. V d, c tnh GenrateGetOperation trong C++ s iu khin sinh m cc hm c tip u ng l getX c d liu b che giu (khai bo private) trong lp nu n c chn. Trc khi pht sinh m chng trnh nn xem xt cc c tnh ca m hnh v c th b sung, hay thay i chng nu cn. quan st c tnh ca m hnh c th chn Tools > Options (hoc nhn p vo Model Properties t Browser), sau chn ngn ng lp trnh, v d chn C++ nh hnh 7-10. Bn c th thay i Value v Source ca cc c tnh bng nhn chut vo nhng c tnh cn thay i v la chn cc i lng tng ng trong thc n y xung. Tp c tnh tm thi. Thay v nhng c tnh mc nh, ta c th to lp c tnh tm thi s dng. to lp tp c tnh tm thi cho C++, bn c th chn Tools > Model Properties > Edit > C++ tab > Edit Set sau nhn nt Close trong ca s Clone the Property Set v nhp tn mi cho tp c tnh . Khi khng cn cn n tp c tnh tm thi th c th chn Remove loi b n.

- 169 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Hnh 7-10 Cc c tnh ca m hnh sinh m cho lp trong C++ Bc 2: Kim tra m hnh Chc nng Check Model Tools c thit k kim tra s nht qun gia cc n th khi m hnh ca bn c lu trnh nhiu n v iu khin. Kim tra m hnh pht hin nhng sai phm, nhng im khng thng nht v cc li trong m hnh. Sau khi chn Tools > Check Model, li ca m hnh s c hin th ca s Log. Cc li hay xy ra l cc thng ip trong biu tng tc khng c nh x thnh cc phng thc ca lp tng ng. Mc Access Violation s tm ra nhng vi phm khi c nhng quan h gia hai lp hai gi khc nhau, nhng hai gi li khng c quan h vi nhau. Chn Report > Show Access Violation bit c nhng vi phm . Bc 3: To lp thnh phn hay m biu thnh phn Ta c th sinh m trnh cho tng lp hoc cho tng thnh phn cha mt s lp nht nh v cc mu rp khun (stereotype). Cc thnh phn cn thit nh x cc lp trong m hnh sang ngn ng lp trnh xc nh v cc n th phn mm. C nhiu loi thnh phn nh thnh phn cha m ngun, tp thc thi (.exe), tp th vin, v.v. Cc lp v cc giao din phi c gn vo mt thnh phn ca mt ng ci t hoc c gn vo mt s thnh phn ca cng mt ngn ng. 3.1 To lp thnh phn mi 1. Chn Component view vng Browser (thng hin th bn tri nht).

- 170 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

2. Nhn chut phi hin th thc n tt (shortcut). Chn New > Package hoc New > Component ri t tn cho chng, nu khng chng s c t tn mc nh. Bn chn package nu mun to lp mt gi mi cha mt s lp pht sinh m chng trnh. 3. Hoc nhn chut phi m thc n tt v nhn p chut m Open Specification. Trong bn c th chn mu rp khun cho thnh phn trong Stereotype v gn ngn ng cho thnh phn hp Language (xem hnh 7-11).

Hnh 7-11 To lp thnh phn mi Lu : to ra header file th chn Package Specification, cn nu mun to ra tp ni dung th chn Package Body Stereotype. 3.2 M biu v to lp cc thnh phn to lp cc thnh phn trong biu thnh phn chng ta lm nh sau: 1. M Component Diagram 2. S dng biu tng Component trong thanh cng c b sung nhng loi thnh phn mi vo biu . Bc 4: Gn lp, giao din vo cho thnh phn Mi thnh phn m ngun biu din tp m ngun ca mt hay mt vi lp. Trong C++, mi lp c gn vo hai thnh phn m ngun: tp header .h v tp cha thn ca lp .cpp. Vi C++, Rose c th khng qua bc ny, khi pht sinh m chng trnh cho mt lp n c th yu cu gn trc tip vo thnh phn la chn. Mt lp hoc giao din c th c gn vo thnh phn ca ngn ng lp trnh hoc gn vo mt s thnh phn ca cng mt ngn ng nh sau: 1. Chn lp Browser, hoc biu , v m Open Specification ca lp . 2. mc Components tab, chn Show All Components. 3. Nhn chut phi thnh phn tng ng v kch vo Assign gn lp chn vo thnh phn .

- 171 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Lu : Bn cng c th chn thnh phn Browser di chut ko n n lp tng ng mt biu Browser, hoc m Components tab phn c t lp (Class Specification). Sau khi lp c gn vo cho thnh phn th Browser, tn ca lp c nh vi tn ca thnh phn trong ngoc n. gn nhiu lp (giao din) vo mt thnh phn ta lm nh sau: 1. Chn thnh phn Browser, hoc biu thnh phn, v m Open Specification ca thnh phn . 2. V Realizes tab, kch vo mc Show All Classes. 3. i vi nhng lp cn gn vo thnh phn ny th nhn chut phi vo lp v kich vo Assign gn n vo thnh phn chn. 4. V mc General tab, c th t tn mi cho thnh phn hp Name, chn kiu cho thnh phn hp Stereotype, v gn ngn ng ci t cho thnh phn ny hp Language. Lu : Tng t nh trn, bn cng c th chn tng lp (giao din) v di chut gn nhng lp chn ti thnh phn tng ng trong biu hoc Browser. gn mt ngn ng cho mt lp (tng t i vi thnh phn): 1. M phn c t Open Specification ca lp (nhn chut phi tn lp). 2. V mc Components tab, kch vo mc Show All Components. trng Language hin th ngn ng c gn cho thnh phn. 3. Nhn chut phi thnh phn m bn nh gn lp vo v nhn Assign. tm xem ngn ng no c gn cho mt lp ta thc hin nh sau: 1. M phn c t Open Specification ca lp (nhn chut phi tn lp). 2. Bn s nhn thy ngn ng lp trnh c gn cho lp trng Language khi chn mc Component (xem hnh 7-11). Bc 5: Chn lp, thnh phn hay gi Bn c th chn lp, thnh phn hay gi Browser pht sinh m chng trnh ng thi. Nu pht sinh m chng trnh t gi Logical View biu lp hay biu thnh phn Component View. Bc 6: Pht sinh m chng trnh Nu ci t Rose Enterprise, bn c th la chn kh nhiu ngn ng ci t chng trnh. hin th hay n cc la chn ngn ng, hy chn Add-Ins > Add-In Manager Khi chn lp hay thnh phn pht sinh m, hy chn ngn ng tng ng trong thc n trn. sinh m chng trnh cho mt lp hay thnh phn c th thc hin theo hai cch.

- 172 -

Phn tch, thit k hng i tng bng UML Cch th nht thc hin nh sau: 1. Chn lp, thnh phn, hay gi biu hoc Browser.

on Vn Ban

2. T Tools chn ngn ng lp trnh, v d C++ ri nhn Code Generation. Mi lp s to ra hai tp tng ng nh ni trn. Khi bn mun xem m chng trnh th chn lp tng ng, nhn chut phi, v C++ ri nhn Browse Header hoc Browse Body tu bn mun hin th header file hay thn ca lp. Cch th hai thc hin nh sau: 1. Chn lp, hay thnh phn biu hoc Browser. 2. Nhn chut phi lp, thnh phn chn, v chn ngn ng (C++) ri nhn Code Generation. Nu c li (Errors) hay cnh bo (Warning) trong qu trnh sinh m th nhng li, hay cnh bo s hin th ca s Log. Lu : Bn cng c th sinh m chng trnh cho lp hoc thnh phn m khng cn phi thc hin nhng bc nu trn. sinh m chng trnh trc tip ta thc hin nh sau: 1. Trc tin chn lp (thnh phn) biu . 2. T Tools, chn ngn ng, v d C++. 3. Chn Code Generation pht sinh m chng trnh bng C++ cho lp chn. Nu chn Java th trc khi pht sinh m chng trnh, bn phi chn th mc v cc lp tng ng ri nhn Map nh x nhng chng trnh c pht sinh vo th mc chn nh hnh 7-12.

Hnh 7-12 Pht sinh m bng Java cho lp NewClass7 Ci g c pht sinh? Khi pht sinh m chng trnh, Rose tp hp cc thng tin t Logical View v Component View. Rose ch pht sinh khung chng trnh bao gm. Class: mi lp trong m hnh u c th c pht sinh m chng trnh, Attribute: thuc tnh c xc nh min tc ng, kiu d liu v gi tr mc nh,

- 173 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Operation: cc thao tc c khai bo km theo danh sch cc tham s, kiu ca tham s, kiu d liu tr li, Relationships: mt s mi quan h s c pht sinh m tng ng, Component: mi thnh phn s c ci t trong mt tp m ngun tng ng. Lu : Rose khng hng vo thit k giao din ho. Do vy, sau khi pht sinh khung chng trnh nh trn, nhim v tip theo ca ngi pht trin l tp hp nhng tp ngun c to lp, lp trnh chi tit cho nhng thao tc ca lp cha c sinh m v thit k giao din ho cho h thng ng dng.

Bi tp v cu hi
7.1 Hy cho bit nhng mnh sau ng hay sai (true / false), gii thch ti sao? + Kin trc vt l th hin cc lp i tng, cc quan h v s cng tc hnh thnh chc nng ca h thng. + Kin trc ph bin chung hin nay cho cc h thng phn mm l kin trc ba tng: tng giao din, tng tc nghip v tng lu tr. + Biu thnh phn m t cc thnh phn v s ph thuc ca chng trong h thng. + C th chn m hnh d liu quan h lu tr d liu cho h thng c phn tch, thit k hng i tng. + Tt c cc tn gi, bin v kiu d liu ca cc lp trong biu lp c thit k phi c chuyn tng ng sang m chng trnh trong cc nh ngha lp ngn ng lp trnh c la chn.
7.2 Xy dng biu thnh phn cho h thng ng k mn hc. 7.3 Xy dng biu thnh phn cho h thng Qun l th vin (tip theo bi 6.3). 7.4 Thc hin sinh m t ng trong Rose cho cc lp hnh 7.8. 7.5 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v kin trc ca h thng phn mm.

Kin trc phn mm l [(1)] v cc h thng con, [(2)] v [(3)] gia chng. Cc h thng con v [(2)] c xc nh theo nhiu gc nhn khc nhau ch ra cc [(4)] v ca h thng phn mm. Kin trc h thng c chia thnh hai loi: logic v vt l. Chn cu tr li: a. thuc tnh chc nng b. mi quan h c. cc thnh phn d. mt m t e. phi chc nng

- 174 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

7.6 Chn t danh sch di y nhng thut ng thch hp in vo cc ch [()] trong on vn m t v biu thnh phn. Biu thnh phn c xem nh l tp cc biu tng thnh phn biu din cho cc [(1)] vt l trong mt [(2)]. tng c bn ca biu [(1)] l to ra cho nhng [(3)] v pht trin mt bc tranh chung v cc thnh phn ca [(2)]. Chn cu tr li: a. h thng b. ngi thit k c. thnh phn vt l d. mt m t

- 175 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

TI LIU THAM KHO


[1] Binder R. V., Testing Object-Oriented Systems: Models, Patterns and Tools, Addison-Wesley, 1999. [2] Booch G., Rumbaugh J. and Jacobson I., The Unified Software Development Process, Addision Wesley, 1998. [3] Booch G., Rumbaugh J. and Jacobson I., The Unified Modeling Language User Guide, Addision Wesley, 1999. [4 ] Coad, P., Yourdon E., Object-Oriented Analisys, Prentice Hall, Englewood Cliffs, 1991. [5] Coad, P., Yourdon E., Object-Oriented Design, Prentice Hall, Englewood Cliffs, 1991. [6] Date C. J. , An Introduction to Database Systems, Eddison-Wesley, 2000 [7] Hussain K M., Hussain D., Information Systems: Analysis, Design and Implementation, McGraw-Hill, 1998. [8] Fong J., Siu B., Multimedia, Knowledge-Based & Object-Oriented Databases, Springer, 1996. [9] Kendall P., Introduction to System Analysis and Design: A structured Approach, Wm. C. Brown Publishers, 2001. [10] Larman C., Applying UML and Patterrns: An Instruction to Object-Oriented Analysis and Design, Prentice Hall, 1997. [11] Liang Y., From use cases to classes: a way of building object model with UML, Information and Software Technology, 45 (2003) 83-93, www.elservier.com/locate/infsof. [12] Maier D., Object-Oriented Database Theory: An Introduction and Indexing in OODBS, Database Hall of Fame,2001, http://www.csc.ogi.edu. [13] Meyer B., Object-Oriented Software Construction, Prentice Hall, Englewood Cliffs, 1988. [14] Michael B., William P., Object Oriented Modeling and Design for Database Applications, Prentice Hall, New Jersey 1998 [15] Oestereich B., Developing Software with UML, Object-Oriented Analysis and Design in Practice, Addision Wesley, 2000. [16] OMG, The OMG Unified Modeling Language Specification, http:// www.omg.org/uml , 1999. [17] Quatrani T., Visual Modeling With Rational Rose and UML, Addison-Wesley, http:// www.rational.com, 2000. [18] Rumbaugh J., Blaha M., Premerlani V., Eddy F., Lorensen V., Object-Oriented Modeling and Design, Prentice-Hall, NJ 1991.

- 176 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

[19] Sommerville I., Software Engineering, 4th Edition, Addition Wesley, 1994 [20] Vafadarafshar R., Document a brief introduction of ObjectStore, 2002, http://www.cs.concordia.ca. [21] Zhiming L., Object-Oriented Software Development Using UML, UNU /IIST, Macau 2001. [22] ng Vn c, Phn tch thit k hng i tng bng UML (Thc hnh vi Rational Rose), NXB Khoa hc v K thut, H Ni 2002. [23] ng Vn Hng, on Vn Ban, Nguyn Ngc Thun, Maintaining the amount of global information in local states of processes of distributed systems, Proceeding of the National Centre for Science and Technology of Vietnam, Volume 9, No 2, 1997. [24] on Vn Ban, Phn tch, thit k v lp trnh hng i tng, NXB Thng K 1997. [25] on vn Ban, S dng phng php phn tch hng i tng pht trin nhng h thng ln tch hp, Tp ch Tin hc v iu khin hc, Tp 13, s 4, 1997 (1-10). [26] on vn Ban, Mt s tnh cht ca qu trnh tha k kiu trong m hnh c s d liu hng i tng, Tp ch Tin hc v iu khin hc, Tp 15, s 3, 1999 (1-7). [27] on vn Ban, H Vn Hng, Cc gii php kt ni Web vi c s d liu, Tp ch Tin hc v iu khin hc, Tp 16, s 2, 2000 (25-31). [28] on vn Ban, Mt s tnh cht ca qu trnh tha k kiu trong m hnh c s d liu hng i tng, Tp ch Tin hc v iu khin hc, Tp 16, s 2, 2000 (25-31). [29] on vn Ban, Tnh ng n ca lc c s d liu hng i tng, Tp ch Tin hc v iu khin hc, Tp 16, s 3, 2000 (7-15). [30] on Vn Ban, Hong Quang, Chuyn i cc biu thc i s quan h thnh cu truy vn trong m hnh d liu hng i tng, Tp ch Khoa hc v Cng ngh, Tp 40-S B, 2002 (120-129). [31] on vn Ban, Nguyn Hu Ng, H Vn Hng, A Formal Specification of the Correctness Criteria for Concurrent Executions of a Transaction System in RealTime Databases, Tp ch Tin hc v iu khin hc, Tp 19, s 3, 2003 (263-273). [32] on Vn Ban, C s d liu hng i tng, gio trnh Khoa CNTT, HN 2003 [33] on Vn Ban, Lp trnh hng i tng vi Java, Nh xut bn Khoa hc, H Ni, 2003. [34] on Vn Ban, L Mnh Thnh v Hong Bo Hng, S tng ng trong biu din ngn ng truy vn OQL v i s i tng, Tp ch Tin hc v iu khin hc, Tp 20, s 2, 2004 ( 11 trang).

- 177 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

[35] Nguyn Vn Ba, Phn tch v thit k h thng thng tin, Nh xut bn i hc Quc gia H Ni, 2003. [36] Ban iu hnh n 112 Chnh ph, Chng trnh tng th Ci cch hnh chnh, Gii php kh thi h thng qun l vn bn v h s cng vic ca Tnh (Tp) (Ti liu mu), H Ni 2004. [37] Ban iu hnh n 112 Chnh ph, Chng trnh tng th Ci cch hnh chnh, Gii php kh thi h thng thng tin tng hp kinh t - x hi phc v iu hnh trn a bn Tnh (Tp) (Ti liu mu), H Ni 2004. [38] Ban iu hnh n 112 Chnh ph, Chng trnh tng th Ci cch hnh chnh, Xy dng khung trang thng tin in t phc v iu hnh ca cc B, Tnh (Tp) (Ti liu mu), H Ni 2004.

- 178 -

Phn tch, thit k hng i tng bng UML

on Vn Ban

Danh sch thut ng v cc t vit tt


1. T vit tt ting Anh
UML OOA OOD API CASE OMT OOSE OCL GRASP ODMG USPD RUP UP OCL GUI Unified Modeling Language Object Oriented Analysis Object Oriented Design Application Programming Interface Computer Aided Software Engineering Object Modeling Technique Object-Oriented Software Engineering Object Constraints Language General Responsibility Assignment Software Patterrn Object Data Management Group Unified Software Development Process Rational Unified Process Unified Process Object Constraints Language Graphics User Interface Cng ngh thng tin C s d liu Ngi s dng Cng ngh phn mm H thng bn hng C s d liu quan h C s d liu hng i tng H qun tr c s d liu

2. T vit tt ting Vit


CNTT CSDL NSD CNPM HBH CSDLQH CSDLHT QTCSDL 3. Cc thut ng Vit Anh
Bao gi Biu ca s dng Biu cng tc Biu hnh ng Biu lp Biu thnh phn Biu trng thi Biu trin khai Biu trnh t Biu i tng B phn kim duyt sc B phn kim duyt th tn dng Bi s, bn s (c s) Cc h thng k thut Encapsulation Use case diagram Collaboration diagram Activity diagram Class diagram Component diagram State diagram, Deployment diagram Sequence diagram Object diagram Check Authorization Service Credit Authorization Service Multiplicity Technical Systems

- 179 -

Phn tch, thit k hng i tng bng UML


Cc h thng nghip v Cc h thng nhng thi gian thc Cch tip cn hng i tng Cch tip hng chc nng Che giu thng tin Ch s, ch mc Chia tr C kt Cng ngh th h th t 4GT a x, a hnh nh danh D liu thnh phn c hng dn bi ca s dng Giao din Gi Hm thnh phn H thng phn mm H thng thng tin Hin thc ho Hng th tc Hu t K tha K tha bi K tha n Kt nhp chia s Kt nhp hp thnh Kt nhp thng thng Kh nng duy tr hot ng Khung cng vic Lin kt Lp Lp bin Lp iu khin Lp hin thc Lp mu Lp tham s ho Lp thc th Lp tch cc Lp tin ch Lung Mu rp khun M hnh thc nc M hnh xon c Np chng Nguyn mu Phm vi quan st ca thuc tnh Phng thc Quan h kt hp Business Systems Embedded Real_time Systems Object-Oriented Approach Functional-Oriented Approach Information hidding Index Devide and conquer Cohension Fourth Generation Technology Polymorphism Identifier (ID) Data member Use-case-driven Interface Package Member function Software System Information System Realisation Procedure-Oriented Destructor Inheritance Multiple inheritance Single inheritance Shared Aggregation Composition Aggregation Normal aggregation Maintainability Framework Link Class Boundary class Control class Instantiated class Template class Parameterized Class Entity class Active class Class utility Thread Stereotype Waterfall model Spiral model Overloading Prototype Attribute visibility Method Association relationship

on Vn Ban

- 180 -

Phn tch, thit k hng i tng bng UML


Quan h kt nhp Quan h ph thuc Quan st logic Quan st thnh phn Quan st theo ca s dng Quan st trin khai Quan st tng tranh Qui tc rng buc Qui tc suy dn Siu d liu S kt hp Tc nhn Tp trung vo kin trc Tn ca vai tr Thnh phn Thao tc Thng ip Thuc tnh Tnh hiu qu Tnh tin dng Tnh tin cy Ton t to lp (hu t) Tng qut ha T in thut ng Tuyn tp Vt phm Aggregation relationship Depedency relationship Logic view Component view Use case view Deployement view Concurrency view Constraint rule Derivation rule Meta data Association Actor Architecture-centric Role name Component Operation Message Attribute Efficiency Usability Dependability Constructor Generalization Glossary Collection Artifact

on Vn Ban

- 181 -

You might also like