You are on page 1of 138

HC VIN CNG NGH BU CHNH VIN THNG

PHN TCH THIT K H THNG THNG TIN


(Dng cho sinh vin h o to i hc t xa) Lu hnh ni b

H NI - 2007

PHN TCH & THIT K H THNG THNG TIN


Trn nh Qu Nguyn Mnh Sn

MC LC
MC LC.................................................................................................... ii LI NI U .............................................................................................. 1 CHNG 1 M U ................................................................................. 3
1.2 KHI QUT VNG I PHT TRIN H THNG THNG TIN...............4 1.3 CC CCH TIP CN PHN TCH THIT K H THNG.......................7 1.3.1 Phng php hng cu trc..............................................................8 1.3.2 Phng php hng i tng ...........................................................9 1.5 CC KHI NIM C BN CA HNG I TNG...........................10 1.6 CC BC PHN TCH THIT K HNG I TNG ....................11 TNG KT CHNG 1 .................................................................................13 CU HI V BI TP.....................................................................................13

CHNG 2 : UML V CNG C PHT TRIN H THNG ................. 15


2.1 GII THIU V UML ................................................................................15 2.1.1 Lch s ra i ca UML......................................................................15 2.1.2 UML Ngn ng m hnh ho hng i tng...............................16 2.1.3 Cc khi nim c bn trong UML.......................................................17 2.2 CC BIU UML ..................................................................................20 2.2.1 Biu use case................................................................................22 2.2.2 Biu lp.........................................................................................24 2.2.3 Biu trng thi ...............................................................................30 2.2.4 Biu tng tc dng tun t .........................................................33 2.2.5 Biu tng tc dng cng tc .......................................................35 2.2.6 Biu hot ng ..............................................................................36 2.2.7 Biu thnh phn ............................................................................39 2.2.8 Biu trin khai h thng.................................................................40 2.3 GII THIU CNG C RATIONAL ROSE...............................................41 TNG KT CHNG 2 .................................................................................44 CU HI BI TP .......................................................................................45

CHNG 3: PHN TCH HNG I TNG.................................... 46


3.1 TNG QUAN V PHN TCH HNG I TNG .............................46 3.1.1 Vai tr ca pha phn tch ...................................................................46 3.1.2 Cc bc phn tch hng i tng ...............................................47 3.1.3 V d...................................................................................................47 3.2 M HNH USE CASE V KCH BN........................................................48 3.2.1 Vai tr ca m hnh use case.............................................................48 3.2.2 Xy dng biu use case................................................................50 3.2.3 Xy dng biu use case trong Rational Rose ...............................57 3.3 M HNH LP ..........................................................................................63 3.3.1 Vn xc nh lp ...........................................................................63 3.3.2Xy dng biu lp trong pha phn tch ..........................................65 3.3.3Biu din biu lp trong Rational Rose..........................................67 3.4 M HNH NG DA TRN BIU TRNG THI.............................71 3.4.1 Khi qut v m hnh ng ................................................................71

ii

3.4.3 Xy dng biu trng thi ...............................................................74 3.4.3 Biu din biu trng thi trong Rational Rose ...............................75 TNG KT CHNG 3 .................................................................................78 CU HI BI TP .......................................................................................79

CHNG 4: PHA THIT K HNG I TNG .............................. 83


4.1 TNG QUAN V THIT K HNG I TNG ................................83 4.1.1 Vai tr ca pha thit k.......................................................................83 4.1.2 Cc bc thit k hng i tng...................................................84 3.2 CC BIU TNG TC ....................................................................84 4.2.2 Xy dng biu tun t...................................................................84 4.2.3 Xy dng biu cng tc ................................................................88 4.2.4 Biu din cc biu tng tc trong Rational Rose ........................89 4.3 BIU LP CHI TIT ...........................................................................91 4.3.1 Xc nh cc phng thc cho mi lp .............................................91 4.3.2 Xc nh mi quan h gia cc lp....................................................92 4.3.4 Hon chnh biu lp chi tit ...........................................................93 4.3 THIT K CHI TIT ..................................................................................95 4.3.1 Xy dng biu hot ng cho cc phng thc...........................96 4.3.2 Xy dng bng thit k chi tit...........................................................98 4.4 BIU THNH PHN V BIU TRIN KHAI.................................99 4.4.1 Xy dng biu thnh phn ............................................................99 4.4.2 Xy dng biu trin khai .............................................................100 4.4.3 Biu din biu thnh phn v trin khai trong Rational Rose......102 TNG KT CHNG 4 ...............................................................................104 CU HI BI TP .....................................................................................104

PH LC PHN TCH THIT K H THNG TH VIN IN T .... 108


1. GII THIU H THNG ..........................................................................108 1.1 Hot ng nghip v th vin .............................................................108 1.2 Yu cu h thng ................................................................................109 2 PHA PHN TCH .......................................................................................110 21 Xy dng biu use case..................................................................110 2.2 Xy dng biu lp phn tch ..........................................................113 2.3 Biu trng thi ................................................................................113 3. PHA THIT K .........................................................................................114 3.1 Cc biu tun t.............................................................................115 3.2 Biu lp chi tit ..............................................................................121 3.3 Thit k ring tng chc nng ............................................................122 3.4 Biu hot ng ...............................................................................126 3.5 Biu trin khai h thng..................................................................127

GI TR LI CC BI TP .............................................................. 129 TI LIU THAM KHO .......................................................................... 133

iii

LI NI U

LI NI U
Phng php lun pht trin cc h thng thng tin lun l mt trong nhng ch quan trng nht ca cng ngh thng tin. Tri qua mt giai on tin ho lu di, pht trin theo cch tip cn hng i tng dn dn chim u th v ngy cng tr nn ph bin v c chun ho trong cng nghip phn mm. Cng vi s ra i ca ngn ng m hnh ho thng nht UML v nhiu cng c h tr nh Rational Rose, AgroUMLphng php lun pht trin phn mm hng i tng c p dng rng ri trong cng nghip phn mm trn khp th gii. Ngn ng UML hin thi vn ang c pht trin p ng cho nhiu yu cu v nhiu dng h thng khc nhau nh h phn tn, h nhng Ti liu ny nhm gii thiu cho sinh vin cc khi nim c bn ca hng i tng v UML, sau trnh by cc bc phn tch thit k h thng thng tin da trn UML v cng c Rational Rose. Ni dung ca ti liu gm 4 chng v phn Ph lc: Chng 1: M u. Gii thiu cc dng h thng thng tin v cc khi nim c bn ca cch tip cn hng i tng; vng i pht trin h thng v so snh cc cch tip cn pht trin h thng. Chng 2: UML v Cng c pht trin h thng. Trnh by cc khi nim c bn ca UML, cc biu , cc k hiu UML v cc bc pht trin h thng s dng cc biu . Chng ny cng gii thiu cng c Rational Rose cho phn tch thit k h thng thng tin. Chng 3: Pha phn tch hng i tng. Trnh by cc bc phn tch h thng theo cc biu UML bao gm: xy dng m hnh use case, xy dng m hnh lp v biu trng thi. Ti liu cng a ra nhng gi cho tng bc v hng dn s dng cng c Rational Rose cho cc bc . Chng 4: Pha thit k hng i tng. Trnh by cc bc thit k h thng bao gm: xy dng cc biu tng tc, biu lp chi tit, thit k chi tit v xy dng biu trin khai h thng. Ti liu cng c nhng gi cho tng bc ca pha thit k.

LI NI U

Phn Ph lc. Trnh by ton b qu trnh phn tch thit k h thng qun l th vin v pht sinh m cho h thng ny. Mi chng u c phn cu hi, bi tp gip sinh vin hiu r hn kin thc c hc v kim tra kh nng p dng kin thc ca sinh vin vo cc bi ton thc t. Ti liu ny c xy dng nhm p ng nhu cu hc tp ca sinh vin t xa ca Hc vin Cng ngh Bu chnh Vin thng. Do thi gian c hn nn phin bn u tin ny chc chn cn nhiu hn ch v thiu st. Cc tc gi rt mong nhn c nhng ng gp kin ca cc ng nghip v cc bn sinh vin.

CHNG 1: M U

CHNG 1 M U
Chng ny tp trung trnh by cc ni dung sau y: Cc h thng thng tin v vn pht trin h thng thng tin Khi qut vng i pht trin h thng thng tin Cc cch tip cn phn tch v thit k h thng Cc khi nim c bn ca hng i tng

1.1 CC H THNG THNG TIN


Ngy nay, h thng thng tin c ng dng trong mi lnh va khc nhau ca i sng x hi. Tu theo quan im m c th phn loi cc h thng thng tin theo cc tiu ch khc nhau. Xt v mt ng dng, h thng thng tin c th c phn chia thnh mt s dng nh sau:
H thng thng tin qun l: Bao gm cc h thng thng tin h tr cc hot ng nghip v v qun l ca cc doanh nghip, cc t chc. V d cc h thng qun l nhn s, h thng k ton, h thng tnh cc v chm sc khch hng, h thng qun l th vin, h thng o to trc tuyn ... Cc h thng Website: l cc h thng c nhim v cung cp thng tin cho ngi dng trn mi trng mng Internet. Cc h thng Website c c im l thng tin cung cp cho ngi dng c tnh a dng (c th l tin tc hoc cc dng file a phng tin) v c cp nht thng xuyn. H thng thng mi in t: L cc h thng website c bit phc v vic trao i mua bn hng ho, dich v trn mi trng Internet. H thng thng mi in t bao gm c cc nn tng h tr cc giao thc mua bn, cc hnh thc thanh ton, chuyn giao hng ho ... H thng iu khin: l cc h thng phn mm gn vi cc thit b phn cng hoc cc h thng khc nhm mc ch iu khin v gim st hot ng ca thit b hay h thng .

Mi loi h thng thng tin c nhng c trng ring v cng t ra nhng yu cu ring cho vic pht trin h thng. V d, cc h thng iu khin i hi nhng yu cu v mi trng pht trin, h iu hnh v ngn ng lp trnh ring;

CHNG 1: M U

cc h website thc thi cc chc nng trn mi trng mng phn tn i hi cch pht trin ring...Do vy, khng c mt phng php lun chung cho tt c cc dng h thng thng tin. Phm vi ca ti liu ny nhm gii thiu mt s khi nim c bn ca UML cho pht phin cc h thng v d dng minh ho chng ta s xem xt vn pht trin dng h thng thng tin ph bin nht l h thng thng tin qun l.

1.2 KHI QUT VNG I PHT TRIN H THNG THNG TIN


Vic pht trin cc h thng thng tin khng ch n gin l lp trnh m lun c xem nh mt tin trnh hon chnh. Tin trnh phn mm l phng cch sn xut ra phn mm vi cc thnh phn ch yu bao gm: m hnh vng i pht trin phn mm, cc cng c h tr cho pht trin phn mm v nhng ngi trong nhm pht trin phn mm. Nh vy, tin trnh pht trin phn mm ni chung l s kt hp c hai kha cnh k thut (vng i pht trin, phng php pht trin, cc cng c v ngn ng s dng, ) v kha cnh qun l (qun l d n phn mm). M hnh vng i phn mm l cc bc pht trin mt sn phm phn mm c th. Mt vng i pht trin phn mm thng c cc pha c bn sau:
Pha xc nh yu cu: khm ph cc khi nim lin quan n vic pht trin phn mm, xc nh chnh xc yu cu v cc rng buc ca khch hng vi sn phm phn mm . Pha phn tch: m t chc nng ca sn phm, cc input ca sn phm v cc output c yu cu; khm ph cc khi nim trong min quan tm ca sn phm v bc u a ra gii php xy dng h thng. Pha thit k: xc nh c th phn mm s c xy dng nh th no. Pha thit k bao gm hai mc l thit k kin trc v thit k chi tit. Pha ci t tch hp: ci t chi tit v tch hp h thng phn mm da trn kt qu ca pha thit k. Pha bo tr: tin hnh sa cha phn mm khi c cc thay i. y l pha rt quan trng, tiu tn nhiu thi gian v chi ph nht trong tin trnh pht trin phn mm. Pha loi b: thc hin loi b phn mm hoc thay th phn mm bi mt phn mm hon ton mi.

CHNG 1: M U

Thng thng hai qu trnh khng th thiu c trong vng i pht trin phn mm l vit ti liu v kim th. Cc qu trnh ny khng tr thnh mt pha ring bit m c tin hnh song song vi tt c cc pha khc trong tin trnh phn mm ngha l tt c cc pha u phi vit ti liu v kim th vi cc mc khc nhau. C rt nhiu m hnh vng i phn mm nhng hai m hnh n gin v c s dng rng ri nht l m hnh thc nc v m hnh lm bn mu nhanh. 1.2.1 M hnh thc nc Theo m hnh thc nc, sau khi yu cu ca h thng c xc nh v kim tra bi nhm SQA, pha phn tch s c tin hnh xy dng ti liu. Sau khi ti liu phn tch c khch hng chp nhn, nhm pht trin s tin hnh lp k hoch v lch biu cho cc qu trnh pht trin tip theo. Sau , cc pha thit k, ci t v tch hp s ln lt c tin hnh ; mi pha ny u c phn kim tra khi cn c th quay li sa i ti liu ca pha trc . Khi phn mm c trin khai v chuyn sang pha bo tr; nu c li hoc thay i xy ra, nhm thit k s phi quay tr li sa i ti liu cho mt trong cc pha trc v nu cn c th quay tr li thay i mt s yu cu ban u ca h thng. V cc pha c ni tip nhau mt cch lin tc nh mt thc nc nn m hnh ny c gi l m hnh thc nc. Tin trnh phn mm theo m hnh thc nc c biu din nh trong Hnh 1.1. M hnh thc nc c mt s u im nh sau: C vng lp, cho php tr v pha trc trong vng i phn mm sa cha khi pht hin li hoc khi c thay i. Hng ti liu: tt c cc pha trong vng i phn mm theo m hnh thc nc u c vit ti liu cn thn v c kim tra bi nhm SQA trc khi chuyn sang pha tip theo. Do vy, h thng s d dng bo tr khi c nhng thay i.

Tuy nhin, m hnh thc nc cng c nhc im l sn phm phn mm cui cng c th khng tha mn nhu cu thc s ca khch hng. L do l khch hng ch c trao i mt ln duy nht v cha c hnh dung sn phm nn rt c th cc pha tip theo s khng thc hin ng nhng g khch hng cn.

CHNG 1: M U

Pha yu cu Kim tra Pha c t Kim tra

Thay i yu cu

Kim tra

Pha thit k Kim tra Pha ci t Kim tra Pht trin Bo tr Pha tch hp Kim tra Pha bo tr Pha loi b
Hnh 1.1: Tin trnh phn mm theo m hnh thc nc

1.2.2 M hnh lm bn mu nhanh Trong m hnh lm bn mu nhanh, bc u tin l nhm pht trin s xy dng mt bn mu v giao cho khch hng v ngi s dng h thng dng th. Khi khch hng ng chp nhn bn mu th nhm pht trin mi tip tc tin hnh cc pha khc ca vng i phn mm. Trong cc pha tip theo, do c bn mu nn cc pha s c tin hnh lin tc v khng c bc quay v pha trc . Ch khi h thng trin khai v chuyn sang pha bo tr, nu c thay i hay pht hin li th nhm pht trin mi quay li mt trong nhng pha trc , nhng khng quay li pha lm bn mu v bn mu c chp nhn. u im chnh ca m hnh ny l nhanh v hn na do sn phm phn mm c to ra t m hnh lm bn mu nn c kh nng cao l m bo tha mn yu cu thc s ca khch hng. Tuy nhin, m hnh lm bn mu nhanh

CHNG 1: M U

cng c nhc im do cc pha c tin hnh lin tc m khng c vit ti liu. M hnh lm bn mu nhanh c biu din nh trong Hnh 1.2.
Bn mu nhanh
Thay i yu cu

Kim tra Pha c t Kim tra

Kim tra

Pha thit k Kim tra Pha ci t Kim tra Pht trin Bo tr Pha tch hp Kim tra Pha bo tr Pha loi b
Hnh 1.2: Vng i pht trin phn mm theo m hnh lm bn mu nhanh

1.3 CC CCH TIP CN PHN TCH THIT K H THNG


Trong nhng nm 70 - 80, phng php hng cu trc c coi l phng php chun pht trin phn mm. Tuy nhin, phng php ny t ra khng ph hp trong pht trin cc h phn mm ln v c bit l km hiu qu trong s dng li - mt yu cu quan trng trong cng nghip phn mm. Thp nin 90 chng kin s n r trong nghin cu v xy dng phng php lun pht trin phn mm hng i tng v nhanh chng tr thnh ph bin trong cng nghip phn mm ngy nay. hiu r phn no s khc bit ny phn ny dnh so snh mt s khc bit gia hai phng php ny.

CHNG 1: M U

1.3.1 Phng php hng cu trc c trng ca phng php hng cu trc l phn chia chng trnh chnh thnh nhiu chng trnh con, mi chng trnh con nhm n thc hin mt cng vic xc nh. Trong phng php hng cu trc, phn mm c thit k da trn mt trong hai hng : hng d liu v hng hnh ng. Cch tip cn hng d liu xy dng phn mm da trn vic phn r phn mm theo cc chc nng cn p ng v d liu cho cc chc nng . Cch tip cn hng d liu s gip cho nhng ngi pht trin h thng d dng xy dng ngn hng d liu. Cch tip cn hng hnh ng li tp trung phn tch h phn mm da trn cc hot ng thc thi cc chc nng ca phn mm .

Cch thc thc hin ca phng php hng cu trc l phng php thit k t trn xung (top-down). Phng php ny tin hnh phn r bi ton thnh cc bi ton nh hn, ri tip tc phn r cc bi ton con cho n khi nhn c cc bi ton c th ci t c ngay s dng cc hm ca ngn ng lp trnh hng cu trc. Phng php hng cu trc c u im l t duy phn tch thit k r rng, chng trnh sng sa d hiu. Tuy nhin, phng php ny c mt s nhc im sau: Khng h tr vic s dng li. Cc chng trnh hng cu trc ph thuc cht ch vo cu trc d liu v bi ton c th, do khng th dng li mt modul no trong phn mm ny cho phn mm mi vi cc yu cu v d liu khc. Khng ph hp cho pht trin cc phn mm ln. Nu h thng thng tin ln, vic phn ra thnh cc bi ton con cng nh phn cc bi ton con thnh cc modul v qun l mi quan h gia cc modul s l khng phi l d dng v d gy ra cc li trong phn tch v thit k h thng, cng nh kh kim th v bo tr.

CHNG 1: M U

1.3.2 Phng php hng i tng Khc vi phng php hng cu trc ch tp trung hoc vo d liu hoc vo hnh ng, phng php hng i tng tp trung vo c hai kha cnh ca h thng l d liu v hnh ng. Cch tip cn hng i tng l mt li t duy theo cch nh x cc thnh phn trong bi ton vo cc i tng ngoi i thc. Vi cch tip cn ny, mt h thng c chia tng ng thnh cc thnh phn nh gi l cc i tng, mi i tng bao gm y c d liu v hnh ng lin quan n i tng . Cc i tng trong mt h thng tng i c lp vi nhau v phn mm s c xy dng bng cch kt hp cc i tng li vi nhau thng qua cc mi quan h v tng tc gia chng. Cc nguyn tc c bn ca phng php hng i tng bao gm : Tru tng ha (abstraction): trong phng php hng i tng, cc thc th phn mm c m hnh ha di dng cc i tng. Cc i tng ny c tru tng ha mc cao hn da trn thuc tnh v phng thc m t i tng to thnh cc lp. Cc lp cng s c tru tng ha mc cao hn na to thnh mt s cc lp c k tha ln nhau. Trong phng php hng i tng c th tn ti nhng lp khng c i tng tng ng, gi l lp tru tng. Nh vy, nguyn tc c bn xy dng cc khi nim trong hng i tng l s tru tng ha theo cc mc khc nhau. Tnh ng gi (encapsulation) v n du thng tin: cc i tng c th c nhng phng thc hoc thuc tnh ring (kiu private) m cc i tng khc khng th s dng c. Da trn nguyn tc n giu thng tin ny, ci t ca cc i tng s hon ton c lp vi cc i tng khc, cc lp c lp vi nhau v cao hn na l ci t ca h thng hon ton c lp vi ngi s dng cng nh cc h thng khc s dng kt qu ca n. Tnh modul ha (modularity): cc bi ton s c phn chia thnh nhng vn nh hn, n gin v qun l c. Tnh phn cp (hierarchy): cu trc chung ca mt h thng hng i tng l dng phn cp theo cc mc tru tng t cao n thp. u im ni bt ca phng php hng i tng l gii quyt c cc vn ny sinh vi phng php hng cu trc: 9

CHNG 1: M U

H tr s dng li m ngun : Chng trnh lp trnh theo phng php hng i tng thng c chia thnh cc gi l cc nhm ca cc lp i tng khc nhau. Cc gi ny hot ng tng i c lp v hon ton c th s dng li trong cc h thng thng tin tng t. Ph hp vi cc h thng ln: Phng php hng i tng khng chia bi ton thnh cc bi ton nh m tp trung vo vic xc nh cc i tng, d liu v hnh ng gn vi i tng v mi quan h gia cc i tng. Cc i tng hot ng c lp v ch thc hin hnh ng khi nhn c yu cu t cc i tng khc. V vy, phng php ny h tr phn tch, thit k v qun l mt h thng ln, c th m t cc hot ng nghip v phc tp bi qu trnh phn tch thit k khng ph thuc vo s bin d liu hay s lng thao tc cn thc hin m ch quan tm n cc i tng tn ti trong h thng .

1.5 CC KHI NIM C BN CA HNG I TNG


Mt s khi nim c bn trong hng i tng bao gm: i tng (object): mt i tng biu din mt thc th vt l, mt thc th khi nim hoc mt thc th phn mm. C th nh ngha mt i tng l mt khi nim, s tru tng hoc mt vt vi gii hn r rng v c ngha vi mt ng dng c th. Lp (Class): l m t ca mt nhm i tng c chung cc thuc tnh, hnh vi v cc mi quan h. Nh vy, mt i tng l th hin ca mt lp v mt lp l mt nh ngha tru tng ca i tng. Thnh phn (component): l mt phn ca h thng hot ng c lp v gi mt chc nng nht nh trong h thng. Gi (package): l mt cch t chc cc thnh phn, phn t trong h thng thnh cc nhm. Nhiu gi c th c kt hp vi nhau tr thnh mt h thng con (subsystem). K tha: Trong phng php hng i tng, mt lp c th c s dng li cc thuc tnh v phng thc ca mt hoc nhiu lp khc. Kiu quan h ny gi l quan h k tha, c xy dng da trn mi quan h k tha trong bi ton thc t. V d, gii s ta c lp Ngi gm cc thuc tnh : tn, ngy sinh, qu qun, gii tnh ; Lp Nhn Vin c quan h k tha t lp Ngi s c tt 10

CHNG 1: M U

c cc thuc tnh trn v b sung thm cc thuc tnh mi gm : chc v, lng. Vng i pht trin phn mm hng i tng cng c cc pha tng t nh cc vng i pht trin phn mm ni chung. Cc pha c bn c trng trong pht trin phn mm hng i tng bao gm: Phn tch hng i tng: xy dng mt m hnh chnh xc m t h thng cn xy dng l g. Thnh phn ca m hnh ny l cc i tng gn vi h thng thc. Thit k hng i tng: L giai on t chc chng trnh thnh cc tp hp i tng cng tc, mi i tng trong l thc th ca mt lp. Kt qu ca pha thit k cho bit h thng s c xy dng nh th no qua cc bn thit k kin trc v thit k chi tit. Lp trnh v tch hp: Thc hin bn thit k hng i tng bng cch s dng cc ngn ng lp trnh hng i tng (C++, Java, ).

1.6 CC BC PHN TCH THIT K HNG I TNG


Cc bc phn tch thit k hng i tng c xy dng da trn biu cc k hiu UML. l ngn ng m hnh ho thng nht c xy dng m hnh ho qu trnh pht trin h thng phn mm hng i tng. Cc vn c bn v UML s c gii thiu chi tit trong Chng 2. Phn ny ch nhm gii thiu mt cch khi qut cc bc trong phn tch v thit k hng i tng.

11

CHNG 1: M U

Biu use case Biu lp Biu trng thi Biu tun t Biu cng tc Pha thit k Pha phn tch

Biu hot ng Biu thnh phn Biu trin khai HT

Hnh 1.3: Cc bc pht trin h thng hng i tng

Pha phn tch


Xy dng Biu use case: Da trn tp yu cu ban u, ngi phn tch tin hnh xc nh cc tc nhn, use case v cc quan h gia cc use case m t li cc chc nng ca h thng. Mt thnh phn quan trng trong biu use case l cc kch bn m t hot ng ca h thng trong mi use case c th. Xy dng Biu lp: Xc nh tn cc lp, cc thuc tnh ca lp, mt s phng thc v mi quan h c bn trong s lp. Xy dng biu trng thi: M t cc trng thi v chuyn tip trng thi trong hot ng ca mt i tng thuc mt lp no .

Trong Pha thit k


Xy dng cc biu tng tc (gm biu cng tc v biu tun t): m t chi tit hot ng ca cc use case da trn cc scenario c v cc lp xc nh trong pha phn tch. Xy dng biu lp chi tit: tip tc hon thin biu lp bao gm b sung cc lp cn thiu, da trn biu trng thi b sung cc thuc tnh, da trn biu tng tc xc nh cc phng thc v mi quan h gia cc lp.

12

CHNG 1: M U

Xy dng biu hot ng: m t hot ng ca cc phng thc phc tp trong mi lp hoc cc hot ng h thng c s lin quan ca nhiu lp. Biu hot ng l c s ci t cc phng thc trong cc lp. Xy dng biu thnh phn: xc nh cc gi, cc thnh phn v t chc phn mm theo cc thnh phn . Xy dng biu trin khai h thng: xc nh cc thnh phn v cc thit b cn thit trin khai h thng, cc giao thc v dch v h tr.

TNG KT CHNG 1
Chng ny trnh by cc ni dung m u cho phn tch thit k h thng hng i tng. Cc ni dung c bn cn nh gm : C nhiu loi h thng thng tin khc nhau nh : h thng thng tin qun l, cc Website, cc h thng thng mi, cc h thng iu khin ... Mi loi h thng thng tin s tng ng vi mt phng php pht trin ring. Vic pht trin cc h thng thng tin ni chung c xem nh mt vng i vi cc pha : Xc nh yu cu, c t, thit k, ci t tch hp, bo tr v loi b. C hai m hnh vng i n gin v hay dng nht l m hnh thc nc v m hnh lm bn mu nhanh. Phng php pht trin phn mm hng i tng t ra c nhiu u im hn so vi phng php hng cu trc. Cc pha c trng trong vng i pht trin phn mm hng i tng l phn tch hng i tng, thit k hng i tng v lp trnh hng i tng. Cc bc pht trin phn mm hng i tng c xy dng da trn cc biu trong ngn ng m hnh ho thng nht UML. Chng 2 s trnh by chi tit v UML v tp k hiu cho cc bc pht trin h thng.

CU HI V BI TP
1. 2. 3. K tn mt s v d cho cc loi h thng thng tin: h thng thng tin qun l, h thng website thng mi in t, h thng iu khin ... V sao ni tin trnh phn mm l s kt hp kha cnh k thut v kha cnh qun l. So snh u, nhc im ca phng php pht trin phn mm hng cu trc v hng i tng.

13

CHNG 1: M U

4.

Trnh by cc khi nim trong hng i tng : lp, i tng, gi, thnh phn, k tha. Cho v d.

14

CHNG 2: UML V CNG C PHT TRIN H THNG

CHNG 2 UML V CNG C PHT TRIN H THNG


Chng ny nhm gii thiu v ngn ng m hnh ho thng nht UML v cng c pht trin phn mm hng i tng. Ni dung c th bao gm: Gii thiu UML Cc biu trong UML Cc bc phn tch thit k hng i tng s dng UML Gii thiu b cng c Rational Rose

2.1 GII THIU V UML


2.1.1 Lch s ra i ca UML Vic p dng rng ri phng php hng i tng t ra yu cu cn phi xy dng mt phng php m hnh ha c th s dng nh mt chun chung cho nhng ngi pht trin phn mm hng i tng trn khp th gii. Trong khi cc ngn ng hng i tng ra i kh sm, v d nh Simula-67 (nm 1967), Smalltalk (u nhng nm 1980), C++, CLOS (gia nhng nm 1980)th nhng phng php lun cho pht trin hng i tng li ra i kh mun. Cui nhng nm 80, u nhng nm 1990, mt lot cc phng php lun v ngn ng m hnh ha hng i tng mi ra i, nh Booch ca Grady Booch, OMT ca James Rambaugh, OOSE ca Ivar Jacobson, hay OOA and OOD ca Coad v Yordon. Mi phng php lun v ngn ng trn u c h thng k hiu ring, phng php x l ring v cng c h tr ring. Chnh iu ny thc y nhng ngi tin phong trong lnh vc m hnh ho hng i tng ngi li cng nhau tch hp nhng im mnh ca mi phng php v a ra mt m hnh thng nht chung. N lc thng nht u tin bt u khi Rumbaugh gia nhp nhm nghin cu ca Booch ti tp on Rational nm 1994 v sau Jacobson cng gia nhp nhm ny vo nm 1995. James Rumbaugh, Grady Booch v Ivar Jacobson cng c gng xy dng c mt Ngn Ng M Hnh Ho Thng Nht v t tn l UML (Unifield 15

CHNG 2: UML V CNG C PHT TRIN H THNG

Modeling Language) (Hnh 2.1). UML u tin c a ra nm 1997 v sau c chun ho tr thnh phin bn 1.0. Hin nay chng ta ang s dng ngn ng UML phin bn 2.0.

Hnh 2.1: S ra i ca UML

2.1.2 UML Ngn ng m hnh ho hng i tng UML (Unified Modelling Language) l ngn ng m hnh ho tng qut c xy dng c t, pht trin v vit ti liu cho cc kha cnh trong pht trin phn mm hng i tng. UML gip ngi pht trin hiu r v ra quyt nh lin quan n phn mm cn xy dng. UML bao gm mt tp cc khi nim, cc k hiu, cc biu v hng dn. UML h tr xy dng h thng hng i tng da trn vic nm bt kha cnh cu trc tnh v cc hnh vi ng ca h thng. Cc cu trc tnh nh ngha cc kiu i tng quan trng ca h thng, nhm ci t v ch ra mi quan h gia cc i tng . Cc hnh vi ng (dynamic behavior) nh ngha cc hot ng ca cc i tng theo thi gian v tng tc gia cc i tng hng ti ch.

16

CHNG 2: UML V CNG C PHT TRIN H THNG

Cc mc ch ca ngn ng m hnh ho thng nht UML: M hnh ho cc h thng s dng cc khi nim hng i tng. Thit lp s lin h t nhn thc ca con ngi n cc s kin cn m hnh ho. Gii quyt vn v mc tha k trong cc h thng phc tp vi nhiu rng buc khc nhau. To mt ngn ng m hnh ho c th s dng c bi ngi v my. UML quy nh mt lot cc k hiu v quy tc m hnh ho cc pha trong qu trnh pht trin phn mm hng i tng di dng cc biu . 2.1.3 Cc khi nim c bn trong UML a) Khi nim m hnh M hnh l mt biu din ca s vt hay mt tp cc s vt trong mt lnh vc p dng no theo mt cch khc. M hnh nhm nm bt cc kha cnh quan trng ca s vt, b qua cc kha cnh khng quan trng v biu din theo mt tp k hiu v quy tc no . Cc m hnh thng c xy dng sao cho c th v c thnh cc biu da trn tp k hiu v quy tc cho. Khi xy dng cc h thng, m hnh c s dng nhm tho mn cc mc ch sau: Nm bt chnh xc yu cu v tri thc min m h thng cn pht trin Th hn t duy v thit k h thng Tr gip ra quyt nh thit k da trn vic phn tch yu cu T chc, tm kim, lc, kim tra v sa i thng tin v cc h thng ln. Lm ch c cc h thng phc tp Ng ngha v biu din: Ng ngha l nhm a ra ngha, bn cht v cc tnh cht ca tp cc k hiu. Biu din l phng php th hin m hnh theo cch sao cho c th nhn thy c. Ng cnh: m t t chc bn trong, cch s dng m hnh trong tin trnh phn mm

Cc thnh phn trong mt m hnh bao gm:

b) Cc hng nhn (View) trong UML 17

CHNG 2: UML V CNG C PHT TRIN H THNG

Cc m hnh trong UML nhm mc ch h tr pht trin cc h thng phn mm hng i tng. Trong phng php lun hng i tng khng c s phn bit rch ri gia cc pha hay cc bc. Tuy nhin, thng thng UML vn c chia thnh mt s hng nhn v nhiu loi biu . Mt hng nhn trong UML l mt tp con cc biu UML c xy dng biu din mt kha cnh no ca h thng. S phn bit gia cc hng nhn l rt linh hot. C th c nhng biu UML c mt trong c hai hng nhn. Cc hng nhn cng cc biu tng ng c m t trong bng sau: Kha cnh chnh Hng nhn Cc biu Cc khi nim chnh
lp, lin h, k tha, ph thuc, giao din Use case, tc nhn, lin h, extend, include

Kha cnh Hng nhn tnh (static Biu lp cu trc h view) thng Hng nhn use case Biu use (Use case view) case

Hng nhn ci t Biu thnh Thnh phn, giao din, quan (implementation view) phn h ph thuc Hng nhn trin khai Biu trin Node, thnh phn, quan h (deployment view) khai ph thuc, v tr (location)

Kha cnh Hng nhn my trng Biu trng Trng thi, s kin, chuyn thi (state machine view) thi tip, hnh ng ng
Hng nhn hot ng Biu ng (activity view) Trng thi, s kin, chuyn tip, kt hp, ng b

Hng nhn tng tc Biu tun Tng tc, i tng, thng (interaction view) t ip, kch hot Biu cng Cng tc, vai tr cng tc, tc thng ip

Kha cnh Hng nhn qun l m Biu lp qun l m hnh hnh

Gi, h thng con, m hnh

18

CHNG 2: UML V CNG C PHT TRIN H THNG

Kha cnh Tt c kh nng m rng

Tt c

Cc rng stereotype,

buc,

Bng 2.1: Cc hng nhn trong UML

c) Cc phn t m hnh v cc quan h Mt s k hiu m hnh hng i tng thng gp trong UML c biu din trong Hnh 2.2. i km vi cc phn t m hnh ny l cc quan h. Cc quan h ny c th xut hin trong bt c m hnh no ca UML di cc dng khc nhau (nh quan h gia cc use case, quan h trong biu lp ) (Hnh 2.3).

Hnh 2.2: Mt s phn t m hnh thng gp trong UML

19

CHNG 2: UML V CNG C PHT TRIN H THNG

Dependency Generalization Association

Aggregation

Hnh 2.3: Mt s dng quan h trong UML

ngha ca cc phn t m hnh v cc quan h s c gii thch c th hn trong cc chng sau.

2.2 CC BIU UML


Thnh phn m hnh chnh trong UML l cc biu : Biu use case biu din s chc nng ca h thng. T tp yu cu ca h thng, biu use case s phi ch ra h thng cn thc hin iu g tho mn cc yu cu ca ngi dng h thng . i km vi biu use case l cc kch bn. Biu lp ch ra cc lp i tng trong h thng, cc thuc tnh v phng thc ca tng lp v cc mi quan h gia nhng lp . Biu trng thi tng ng vi mi lp s ch ra cc trng thi m i tng ca lp c th c v s chuyn tip gia nhng trng thi . Cc biu tng tc biu din mi lin h gia cc i tng trong h thng v gia cc i tng vi cc tc nhn bn ngoi. C hai loi biu tng tc: Biu tun t: Biu din mi quan h gia cc i tng v gia cc i tng v tc nhn theo th t thi gian. Biu cng tc: Biu din mi quan h gia cc i tng v gia cc i tng v tc nhn nhng nhn mnh n vai tr ca cc i tng trong tng tc. 20

CHNG 2: UML V CNG C PHT TRIN H THNG

Biu hot ng biu din cc hot ng v s ng b, chuyn tip cc hot ng, thng c s dng biu din cc phng thc phc tp ca cc lp. Biu thnh phn nh ngha cc thnh phn ca h thng v mi lin h gia cc thnh phn . Biu trin khai m t h thng s c trin khai nh th no, thnh phn no c ci t u, cc lin kt vt l hoc giao thc truyn thng no c s dng. Biu m hnh cu trc (Structural Modeling Diagrams): biu din cc cu trc tnh ca h thng phn mm c m hnh ho. Cc biu trong m hnh tnh tp trung biu din kha cnh tnh ca h thng, lin quan n cu trc c bn cng nh cc phn t chnh trong min quan tm ca bi ton. Cc biu trong m hnh tnh bao gm: Biu gi Biu i tng v lp Biu thnh phn Biu trin khai

Da trn tnh cht ca cc biu , UML chia cc biu thnh hai lp m hnh1:

Biu m hnh hnh vi (Behavioral Modeling Diagrams): Nm bt n cc hot ng v hnh vi ca h thng, cng nh tng tc gia cc phn t bn trong v bn ngoi h thng. Cc dng biu trong m hnh ng bao gm: Biu use case Biu tng tc dng tun t Biu tng tc dng cng tc Biu trng thi Biu ng

Chng ta s ln lt xem xt chi tit cc biu UML, mi biu s c trnh by ngha ca n, tp k hiu UML cho biu v mt v d.

Tham kho http://www.sparxsystems.com.au/resources/uml2_tutorial/

21

CHNG 2: UML V CNG C PHT TRIN H THNG

2.2.1 Biu use case a) ngha Biu use case biu din s chc nng ca h thng. T tp yu cu ca h thng, biu use case s phi ch ra h thng cn thc hin iu g tho mn cc yu cu ca ngi dng h thng . i km vi biu use case l cc kch bn (scenario). C th ni, biu use case ch ra s tng tc gia cc tc nhn v h thng thng qua cc use case. Mi use case m t mt chc nng m h thng cn phi c xt t quan im ngi s dng. Tc nhn l con ngi hay h thng thc khc cung cp thng tin hay tc ng ti h thng. Mt biu use case l mt tp hp cc tc nhn, cc use case v cc mi quan h gia chng. Cc use case trong biu use case c th c phn r theo nhiu mc khc nhau. b) Tp k hiu UML cho biu use case Mt biu Use Case cha cc phn t m hnh biu th h thng, tc nhn cng nh cc trng hp s dng v cc mi quan h gia cc Use Case. Chng ta s ln lt xem xt cc phn t m hnh ny: a) H thng: Vi vai tr l thnh phn ca biu use case, h thng biu din ranh gii gia bn trong v bn ngoi ca mt ch th trong phn mm chng ta ang xy dng. Ch rng mt h thng trong biu use case khng phi bao gi cng nht thit l mt h thng phn mm; n c th l mt chic my, hoc l mt h thng thc (nh mt doanh nghip, mt trng i hc, ). b) Tc nhn (actor): l ngi dng ca h thng, mt tc nhn c th l mt ngi dng thc hoc cc h thng my tnh khc c vai tr no trong hot ng ca h thng. Nh vy, tc nhn thc hin cc use case. Mt tc nhn c th thc hin nhiu use case v ngc li mt use case cng c th c thc hin bi nhiu tc nhn. c) Cc use case: y l thnh phn c bn ca biu use case. Cc use case c biu din bi cc hnh elip. Tn cc use case th hin mt chc nng xc nh ca h thng. d) Mi quan h gia cc use case: gia cc use case c th c cc mi quan h nh sau: 22

CHNG 2: UML V CNG C PHT TRIN H THNG

Include: use case ny s dng li chc nng ca use case kia. Extend: use case ny m rng t use case kia bng cch thm vo mt chc nng c th. Generalization: use case ny c k tha cc chc nng t use case kia.

Cc phn t m hnh use case cng vi ngha v cch biu din ca n c tng kt trong bng 2.2. Phn t m hnh Use case ngha Biu din mt chc nng xc nh ca h thng L mt i tng bn ngoi h thng tng tc trc tip vi cc use case Cch biu din Hnh ellip cha tn ca use case Biu din bi mt lp kiu actor (hnh ngi tng trng) <<extend>> <<include> K hiu trong biu
Usecase name

Tc nhn

Mi quan h Ty tng dng quan h Extend v include gia cc use c dng cc mi case tn t nt Generalization c dng mi tn tam gic. Bin ca h Tch bit phn bn c biu din thng trong v bn ngoi h bi mt hnh ch thng nht rng.

Bng 2.2: Cc phn t m hnh trong biu use case

c) V d biu use case Di y l mt use case cho h thng qun l th vin n gin. Ngi qun tr th vin (th th) thng qua ng nhp thc hin Cp nht thng tin v Qun l cc giao dch mn - tr sch. Bn c ch c th tm kim, tra cu thng tin sch. Chc nng tm kim sch c dng nh mt phn trong chc nng Cp nht v Qun l mn sch nn chng ta s dng quan h include. Chi tit hn v cch xy dng biu ny s trnh by trong chng 3.

23

CHNG 2: UML V CNG C PHT TRIN H THNG

Cap nhat

<<include>>

Thu thu

Dang nhap

<<include>>

Tim kiem

Ban doc

Quan ly Muon-Tra Sach

Hnh 2.4: Biu use case tng qut trong h thng qun l th vin

2.2.2 Biu lp a) ngha Trong phng php hng i tng, mt nhm i tng c chung mt s thuc tnh v phng thc to thnh mt lp. Mi tng tc gia cc i tng trong h thng s c biu din thng qua mi quan h gia cc lp. Cc lp (bao gm c cc thuc tnh v phng thc) cng vi cc mi quan h s to thnh biu lp. Biu lp l mt biu dng m hnh tnh nhm m t hng nhn tnh v mt h thng bng cc khi nim lp, cc thuc tnh, phng thc ca lp v mi quan h gia chng vi nhau. b) Tp k hiu UML cho biu lp Trong phn ny, ti liu s xem xt cc vn lin quan n biu din s lp trong UML. Cui phn ny s l mt bng tng kt cc k hiu UML s dng trong s lp. K hiu lp: trong UML, mi lp c biu din bi hnh ch nht gm 3 phn: tn lp, cc thuc tnh v cc phng thc. Thuc tnh: cc thuc tnh trong biu lp c biu din theo cu trc chung nh sau: phm_vi tn : kiu s_i_tng = mc_nh (Gi_ tr_gii_hn ) Trong : phm_vi cho bit phm vi truy nhp ca thuc tnh. C ba kiu xc nh thuc tnh ph bin l: +: thuc tnh kiu public #: thuc tnh kiu protected 24

CHNG 2: UML V CNG C PHT TRIN H THNG

-: thuc tnh kiu private. ~: thuc tnh c php truy nhp ti t cc lp trong cng package Cc phm vi ca thuc tnh c th c biu din di dng k hiu (+, #, -, ~) hoc biu din di dng cc t kho (public, protected, private). Tn: l xu k t biu din tn thuc tnh. kiu: l kiu d liu ca thuc tnh. s_i_tng: ch ra s i tng khai bo cho thuc tnh ng vi mt mc_nh: l gi tr khi u mc nh (nu c) ca thuc tnh. Gi_ tr_gii_hn: l gii hn cc gi tr cho thuc tnh (thng tin ny khng bt buc). V d mt khai bo thuc tnh y : purchaseDate:Date[1] =01-01-2000 (Saturday) Phng thc (method): cc phng thc trong UML c biu din theo cu trc chung nh sau [UNG]: phm_vi tn(danh_s ch_tham_s): kiu_tr_li { ki u_ph ng_thc} Trong : visibility biu din phm vi cho phng thc. Ging nh i vi thuc tnh, c ba dng kiu xc nh c bn cho phng thc l: - +: phng thc kiu public - #: phng thc kiu protected

- -: phng thc kiu private - ~: phng thc c php truy nhp ti t cc lp trong cng package
tn l xu k t xc nh tn ca phng thc. kiu_tr_li: ch ra kiu gi tr tr v ca phng thc. danh_sch_tham_s: biu din danh sch cc tham s trong khai bo ca phng thc. Mi tham s c biu din di dng chung: tn tham s: kiu gi tr = gi tr mc nh. ki u_ph ng_thc: khng bt buc, cho bit kiu phng thc. Phng thc c th nhn mt trong cc kiu c bit sau: abstract: phng thc kiu tru tng query: phng thc kiu truy vn.

25

CHNG 2: UML V CNG C PHT TRIN H THNG

V d mt khai bo phng thc cho mt lp: generatePurchaseList(prodID:int): String Cc kiu lp trong UML UML nh ngha mt s kiu lp c bit da trn vai tr ca n trong biu lp. Ngoi kiu lp thng thng trnh by trn, UML cn nh ngha mt s kiu lp b sung gm:
Lp thc th: l lp i din cho cc thc th cha thng tin v cc i tng xc nh no . Lp bin (lp giao din): l lp nm ranh gii gia h thng vi mi trng bn ngoi, thc hin vai tr nhn yu cu trc tip t cc tc nhn v chuyn cc yu cu cho cc lp bn trong h thng. Lp iu khin: thc hin cc chc nng iu khin hot ng ca h thng ng vi cc chc nng c th no vi mt nhm cc lp bin hoc lp thc th xc nh.

STT 1 2 3

Kiu lp Lp thc th Lp bin (lp giao din) Lp iu khin

K hiu UML

Bng 2.3: Cc kiu lp trong UML

Cc mi quan h trong biu lp Gia cc lp c cc dng quan h c bn nh sau: Quan h kt hp (Association): Mt kt hp (association) l mt s ni kt gia cc lp, cng c ngha l s ni kt gia cc i tng ca cc lp ny. Trong UML, mt quan h cnc nh nhm m t mt tp hp cc lin kt (links), tc l mt s lin quan v ng ngha (semantic connection) gia mt nhm cc i tng c biu din bi cc lp tng ng.

26

CHNG 2: UML V CNG C PHT TRIN H THNG

Mc nh, quan h kt hp c biu din bi on thng 2 chiu ni 2 i tng v c th km theo ng ngha ca quan h ti hai u ca on thng. Xem v d Hnh 2.5. Lp khch hng c quan h kt hp vi lp sn phm. Ng ngha ca quan h ny th hin ch: khch hng mua sn phm, cn sn phm c bn cho khch hng. Khch hng Bn cho Mua
Hnh 2.5: Quan h kt hp

Sn phm

Quan h kt hp cng c th c dng mt chiu. Xem v d Hnh 2.6. Khch hng a ch

Hnh 2.6: Quan h kt hp mt chiu

Khi qut ha (Generalization): Khi qut ha l mi quan h gia mt lp c cc c trng mang tnh khi qut cao hn v mt lp c tnh cht c bit hn. Trong s lp, mi quan h khi qut ha chnh l s k tha ca mt lp t lp khc. Quan h khi qut ho c biu din bng mt mi tn c tam gic rng gn u. Xem v d Hnh 2.7. Khch hng

Khch hng khng thng xuyn

Khch hng thng xuyn

Hnh 2.7: Quan h khi qut ho

27

CHNG 2: UML V CNG C PHT TRIN H THNG

Quan h cng hp (Aggregation): l dng quan h m t mt lp A l mt phn ca lp B v lp A c th tn ti c lp. Quan h cng hp c biu din bng mt mi tn gn hnh thoi rng u hng v lp bao hm. Xem v d Hnh 2.8. Lp Ho n l mt phn ca lp Khch hng nhng i tng Ho n vn c th tn ti c lp vi i tng khch hng. Khch hng

Ho n

Thuc v
Hnh 2.8: Quan h cng hp

Quan h gp (Composition): Mt quan h gp biu din mt quan h kiu tng th-b phn. Lp A c quan h gp vi lp B nu lp A l mt phn ca lp B v s tn ti ca i tng lp B iu khin s tn ti ca i tng lp A. Quan h ny c biu din bi mt mi tn gn hnh thoi c u. Xem v d Hnh 2.9.

a ch

C
Hnh 2.9: Quan h gp

Khch hng

Quan h ph thuc (Dependency): Ph thuc l mi quan h gia hai lp i tng: mt lp i tng A c tnh c lp v mt lp i tng B ph thuc vo A; mt s thay i ca A s nh hng n lp ph thuc B. Xem v d Hnh 2.10. Hng gim gi
Hnh 2.10: Quan h ph thuc

Ho n

Quan h thc thi (Realization): biu din mi quan h ng ngha gia cc thnh phn ca biu lp, trong mt thnh phn m t mt cng vic

28

CHNG 2: UML V CNG C PHT TRIN H THNG

dng hp ng v thnh phn cn li thc hin hp ng . Thng thng lp thc hin hp ng c th l cc giao din. Xem v d Hnh 2.11. <<interface>> B m tin
Hnh 2.11: Quan h thc thi

Ho n

Bng 2.4 tng kt cc phn t m hnh UML c s dng trong m hnh lp, ngha v k hiu tng ng trong cc biu . Phn t m hnh
Lp (class)

ngha

Cch biu din

K hiu trong biu

Biu din tn lp, Mt hnh ch nht cc thuc tnh v gm 3 phn tch phng thc ca bit. lp .

Tn lp Cc thuc tnh Cc phng thc

Quan h kiu Biu din quan h kt hp gia hai lp c lp, c lin quan n nhau. Quan h gp

Mt ng k lin nt (c tn xc nh) ni gia hai lp.

Tn

Biu din quan h ng k lin nt kiu b phn c hnh thoi u. tng th.

Quan h khi Lp ny tha Mi tn tam gic. qut ho (k hng cc thuc tnh - phng tha) thc ca lp kia Quan h ph Cc lp ph thuc Mi tn t nt. thuc. ln nhau trong hot ng ca h thng.
Bng 2.4: Tm tt cc phn t m hnh UML trong biu lp

c) V d biu lp

29

CHNG 2: UML V CNG C PHT TRIN H THNG

Di y l v d mt phn ca biu lp trong h thng qun l th vin trong cc lp Th th (ngi qun l th vin) v Bn c k tha t lp Person.

Nguoi ten : String diachi : String ngaysinh : Date getTen() setTen() getDiachi() setDiachi() getNgaysinh() setNgaysinh()

Bandoc maBandoc : string lop : string khoa : string

Thuthu maThuthu : String password : String vaitro : String getVaitro() setVaitro()

Hnh 2.12: Biu lp v d

2.2.3 Biu trng thi a) ngha Biu trng thi c s dng biu din cc trng thi v s chuyn tip gia cc trng thi ca cc i tng trong mt lp xc nh. Thng thng, mi lp s c mt biu trng thi (tr lp tru tng l lp khng c i tng). Biu trng thi c biu din di dng my trng thi hu hn vi cc trng thi v s chuyn tip gia cc trng thi . C hai dng biu trng thi: Biu trng thi cho mt use case: m t cc trng thi v chuyn tip trng thi ca mt i tng thuc mt lp no trong hot ng ca mt use case c th. Biu trng thi h thng m t tt c cc trng thi ca mt i tng trong ton b hot ng ca c h thng.

b) Tp k hiu UML cho biu trng thi Cc thnh phn trong mt biu trng thi bao gm: Trng thi (state). Bn trong cc trng thi c th miu t cc bin trng thi hoc cc hnh ng (action) tng ng vi trng thi .

30

CHNG 2: UML V CNG C PHT TRIN H THNG

Trng thi con (substate): l mt trng thi cha bn trong mt trng thi khc. Trng thi c nhiu trng thi con gi l trng thi t hp. Xem xt mt v d c trng thi con trong Hnh 2.13. Thc hin tnh ton Cha tnh ton Tinh() Thc hin kim tra Kim tra li Return() Tnh tng

tnh ton xong

Hnh 2.13: Biu trng thi c trng thi con Trng thi khi u (initial state): trng thi u tin khi kch hot i tng. Trng thi kt thc (final state): kt thc vng i i tng. Cc chuyn tip (transition): biu din cc chuyn i gia cc trng thi. S kin (event): s kin tc ng gy ra s chuyn i trng thi. Mi s kin c i km vi cc iu kin (guard) v cc hnh ng (action). S kin gi (call event): Yu cu thc hin mt hnh ng (mt phng thc) S kin tn hiu (signal event): Gi thng ip (cha cc gi tr thuc tnh tham s lin quan) gia cc trng thi. S kin thi gian (time event): Biu din qu trnh chuyn tip theo thi gian, thng km theo t m t thi gian c th.

Trong biu trng thi ca UML, mt s loi s kin sau y s c xc nh: -

Cc phn t m hnh UML v k hiu tng ng cho biu trng thi c tng kt nh trong Bng 2.5.

31

CHNG 2: UML V CNG C PHT TRIN H THNG

Hnh ch nht vng gc, gm 3 phn: tn, cc bin, v cc hot ng. Trng thi Khi u vng i Hnh trn c ca i tng. khi u Trng thi Kt thc vng i Hai hnh trn ca i tng. lng nhau kt thc Chuyn tip Chuyn t trng Mi tn lin nt (transition) thi ny sang trng vi tn gi l thi khc biu din ca chuyn tip . Biu din mt trng thi ca i tng trong vng i ca i tng .

Phn t m hnh Trng thi

ngha

Biu din

K hiu trong biu

Tn_chuyn_tip

Bng 2.5: Cc phn t m hnh UML trong biu trng thi

c) V d Biu trang thi Di y l biu trng thi ca lp th mn trong chc nng Qun l mn sch. Chi tit v xy dng biu trng thi ny s c trnh by trong Chng 3.

Hnh 2.14: V d biu trng thi

32

CHNG 2: UML V CNG C PHT TRIN H THNG

2.2.4 Biu tng tc dng tun t Cc biu tng tc biu din mi lin h gia cc i tng trong h thng v gia cc i tng vi cc tc nhn bn ngoi. C hai loi biu tng tc: Biu tun t v biu cng tc. a) ngha Biu tun t: Biu din mi quan h gia cc i tng, gia cc i tng v tc nhn theo th t thi gian. Biu tun t nhn mnh th t thc hin ca cc tng tc. b) Tp k hiu UML cho biu tun t Cc thnh phn c bn ca mt biu tun t l: Cc i tng (object): c biu din bi cc hnh ch nht, bn trong l tn ca i tng. Cch vit chung ca i tng l: tn i tng: tn lp. Nu ch vit :tn_lp th c ngha l bt c i tng no ca lp tng ng . Trong biu tun t, khng phi cc i tng u xut hin trn cng ca biu m chng ch xut hin (v mt thi gian) khi thc s tham gia vo tng tc. Cc message: c biu din bng cc mi tn hng t i tng gi sang i tng nhn. Tn cc message c th biu din di dng phi hnh thc (nh cc thng tin trong kch bn) hoc di dng hnh thc (vi dng ging nh cc phng thc). Biu tun t cho php c cc message t mt i tng ti chnh bn thn n. Trong biu tun t c th c nhiu loi message khc nhau tu theo mc ch s dng v tc ng ca message n i tng. Cc dng message c tng kt trong Bng 2.6 di y: Loi message Gi (call) Tr v (return) M t M t mt li gi t i tng ny n i tng kia. Tr v gi tr ng vi li gi Biu din Method()

STT 1 2

Gi tr tr v

33

CHNG 2: UML V CNG C PHT TRIN H THNG

Gi (send)

Gi mt tn hiu ti mt i tng To mt i tng

Send()

To (create)

<<create>>

Hu (destroy)

Hu mt i tng

<<destroy>>

Bng 2.6: Cc dng message trong biu tun t

ng lifeline: l mt ng k ni di pha di i tng, m t qu trnh ca i tng trong tng tc thuc biu . Ch thch: biu tun t cng c th c ch thch ngi c d dng hiu c ni dung ca biu .

c) V d biu tng tc dng tun t Di y l mt v d cho biu tun t cho chc nng Thm sch trong h thng qun l th vin. Trong biu ny c i tng giao din FormThemSach, i tng iu khin DK Thm sch v i tng thc th Sach. Chi tit v xy dng biu ny s c trnh by trong Chng 4.

34

CHNG 2: UML V CNG C PHT TRIN H THNG

: Thu thu

: FormThemSach Yeu cau Them sach

: DK_ThemSach

: Sach

Yeu cau nhap thong tin

Nhap thong tin sach m oi Tao doi tuong sach moi Kiem tra thong tin sach Nhap sach vao CSDL

Nhap thanh cong Nhap thanh cong Thong bao nhap thanh cong

Hnh 2.15: V d biu tun t

2.2.5 Biu tng tc dng cng tc a) ngha Biu cng tc: L biu tng tc biu din mi quan h gia cc i tng; gia cc i tng v tc nhn nhn mnh n vai tr ca cc i tng trong tng tc. Biu cng tc cng c cc messgage vi ni dung tng t nh trong biu tun t. Tuy nhin, cc i tng c t mt cch t do trong khng gian ca biu v khng c ng life line cho mi i tng. Cc message c nh s th hin th t thi gian. b) Tp k hiu UML cho biu cng tc Cc thnh phn c bn ca mt biu cng tc l: Cc i tng: c biu din bi cc hnh ch nht, bn trong l tn ca i tng. Cch vit chung ca i tng l: tn i tng: tn lp. Trong

35

CHNG 2: UML V CNG C PHT TRIN H THNG

biu cng tc, cc i tng tham gia tng tc lun xut hin ti mt v tr xc nh. Cc lin kt: gia hai i tng c tng tc s c mt lin kt ni 2 i tng . Lin kt ny khng c chiu. Cc message: c biu din bng cc mi tn hng t i tng gi sang i tng nhn bn cnh lin kt gia 2 i tng . Trong biu cng tc, cc message c nh s th t theo th t xut hin trong kch bn m t use case tng ng.

c) V d biu cng tc Di y l mt biu cng tc m t chc nng Thm sch trong h thng Qun l th vin.
3: Nhap thong tin sach moi

1: Yeu cau them sach

2: Yeu cau nhap thong tin

: Thu thu
9: Thong bao nhap thanh cong

: FormThemSach

8: Nhap thanh cong

4: Tao doi tuong sach moi

5: Kiem tra thong tin sach


6: Nhap sach vao CSDL

7: Nhap thanh cong

: DK_ThemSach

: Sach

Hnh 2.16: V d Biu cng tc

2.2.6 Biu hot ng a) ngha Biu hot ng biu din cc hot ng v s ng b, chuyn tip cc hot ng ca h thng trong mt lp hoc kt hp gia cc lp vi nhau trong mt chc nng c th.

36

CHNG 2: UML V CNG C PHT TRIN H THNG

Biu hot ng c th c s dng cho nhiu mc ch khc nhau, v d nh: xc nh cc hnh ng phi thc hin trong phm vi mt phng thc. xc nh cng vic c th ca mt i tng. ch ra mt nhm hnh ng lin quan ca cc i tng c thc hin nh th no v chng s nh hng n nhng i tng nm xung quanh. b) Tp k hiu UML Cc phn t m hnh UML cho biu hot ng bao gm: Hot ng (Activity): l mt quy trnh c nh ngha r rng, c th c thc hin bi mt hm hoc mt nhm i tng. Hot ng c th hin bng hnh ch nht trn cnh. Thanh ng b ha (Synchronisation bar): cho php ta m ra hoc l ng li cc nhnh chy song song trong tin trnh.

Hnh 2.17: Thanh ng b ho trong biu ng

iu kin (Guard Condition): cc biu thc logic c gi tr hoc ng hoc sai. iu kin c th hin trong ngoc vung, v d: [Customer existing]. Cc lung (swimlane): Mi biu ng c th biu din s phi hp hot ng trong nhiu lp khc nhau. Khi mi lp c phn tch bi mt lung (swimlane) ring bit. Cc lung ny c biu din n gin l cc khc nhau trong biu . ngha K hiu trong biu M t mt hot ng gm tn hot ng v c t ca n. NewActivity

Cc k hiu UML cho biu hot ng c tng kt trong Bng sau: Phn t m hnh Hot ng

Trng thi khi u

37

CHNG 2: UML V CNG C PHT TRIN H THNG

Trng thi kt thc Thanh ng b ngang Thanh ng b ho dc M t thanh ng b nm ngang M t thanh ng b theo chiu thng ng

Chuyn tip

Quyt nh
Cc lung (swimlane)

M t mt la chn iu kin.
Phn tch cc lp i tng Phn cch nhau bi mt khc nhau tn ti trong biu ng k dc t trn xung di biu hot ng

Bng 2.6: Cc phn t ca biu hot ng

c) V d biu hot ng Di y l v d biu hot ng ca hm thc hin chc nng mn sch trong lp Th mn (H thng qun l th vin). Chi tit v biu ny s c trnh by trong chng 4.

38

CHNG 2: UML V CNG C PHT TRIN H THNG

Yeu cau nhap lai

Nhan thong tin Sach muon

Yeu cau nhap lai

Kiem tra Ban doc Xac nhan dung

Kiem tra thong tin Sach Xac nhan dung

Kiem tra so luon sach Ban doc da muon

Gui yeu cau Muon Kiem tra so luong Sach con lai Xac nhan du sach

Xac nhan quyen muon sach

Xac nhan cho muon Het quyen muon sach In Phieu muon Khong co hoac khong du sach

Hnh 2.18: V d biu hot ng

2.2.7 Biu thnh phn a) ngha Biu thnh phn c s dng biu din cc thnh phn phn mm cu thnh nn h thng. Mt h phn mm c th c xy dng t u bng cch s dng m hnh lp nh trnh by trong cc phn trc ca ti liu, hoc cng c th c to nn t cc thnh phn sn c. Mi thnh phn c th coi nh mt phn mm nh hn, cung cp mt khi dng hp en trong qu trnh xy dng phn mm ln. Ni cch khc, cc thnh phn l cc gi c xy dng cho qu trnh trin khai h thng. Cc thnh phn c th l cc gi mc cao nh JavaBean, cc gi th vin lin kt ng dll, hoc 39

CHNG 2: UML V CNG C PHT TRIN H THNG

cc phn mm nh c to ra t cc thnh phn nh hn nh cc lp v cc th vin chc nng. b) Tp k hiu UML Tp k hiu UML cho biu thnh phn c tng kt trong bng sau: Phn t m hnh Thnh phn ngha
M t mt thnh phn ca biu , mi thnh phn c th cha nhiu lp hoc nhiu chng trnh con. M t giao tip gn vi mi thnh phn. Cc thnh phn trao i thng tin qua cc giao tip.

K hiu trong biu


Component

Giao tip

Mi quan h ph Mi quan h gia cc thnh phn (nu thuc gia cc c). thnh phn Gi (package) c s dng nhm mt s thnh phn li vi nhau.

NewPackage

Bng 2.7: Cc k hiu ca biu thnh phn

2.2.8 Biu trin khai h thng a) ngha Biu trin khai biu din kin trc ci t v trin khai h thng di dng cc nodes v cc mi quan h gia cc node . Thng thng, cc nodes c kt ni vi nhau thng qua cc lin kt truyn thng nh cc kt ni mng, lin kt TCPIP, microwave v c nh s theo th t thi gian tng t nh trong biu cng tc. b) Tp k hiu UML cho biu trin khai Tp k hiu UML cho biu trin khai h thng c biu din trong Bng sau:

40

CHNG 2: UML V CNG C PHT TRIN H THNG

Phn t m hnh

ngha

K hiu trong biu


Device

Cc nodes (hay cc Biu din cc thnh phn khng c b vi x l trong biu trin khai thit b) h thng Cc b x l Biu din cc thnh phn c b vi x l trong biu trin khai h thng

Processor

Cc lin kt truyn Ni cc thnh phn ca biu trin khai h thng. Thng m t mt thng giao thc truyn thng c th.
Bng 2.8: Cc k hiu ca biu trin khai h thng

2.3 GII THIU CNG C RATIONAL ROSE


Rational Rose l mt b cng c c s dng cho pht trin cc h phn mm hng i tng theo ngn ng m hnh ha UML. Vi chc nng ca mt b cng c trc quan, Rational Rose cho php chng ta to, quan st, sa i v qun l cc biu . Tp k hiu m Rational Rose cung cp thng nht vi cc k hiu trong UML. Ngoi ra, Rational Rose cn cung cp chc nng h tr qun l d n pht trin phn mm, cung cp cc th vin h tr sinh khung m cho h thng theo mt ngn ng lp trnh no . Mn hnh khi ng ca Rational Rose phin bn 2002 nh trong Hnh 2.19. Ngi s dng s c th chn th vin d nh s ci t h thng, Rational Rose s ti v cc gi tng ng trong th vin . Cc gi ny (cng cc lp tng ng) s xut hin trong biu lp, ngi s dng s tip tc phn tch, thit k h thng ca mnh da trn th vin . Nu s dng Rational Rose xy dng h thng t u th ngi s dng nn b qua chc nng ny.

41

CHNG 2: UML V CNG C PHT TRIN H THNG

Hnh 2.19: Mn hnh khi ng Rational Rose

Trong giao din ca Rational Rose (Hnh 2.19), ca s pha bn tri l ca s Browser cha cc View (hng nhn, quan im), trong mi View l cc m hnh tng ng ca UML. C th xem mi View l mt cch nhn theo mt kha cnh no ca h thng. Use Case View: xem xt kha cnh chc nng ca h thng nhn t pha cc tc nhn bn ngoi Logical View: xem xt qu trnh phn tch v thit k logic ca h thng thc hin cc chc nng trong Use Case View. Component View: xem xt kha cnh t chc h thng theo cc thnh phn v mi lin h gia cc thnh phn . Deployment View: xem xt kha cnh trin khai h thng theo cc kin trc vt l.

Ca s pha bn phi ca mn hnh Rational Rose l ca s biu (Diagram Windows) c s dng v cc biu s dng cc cng c v tng ng trong ToolBox. Hu ht cc k hiu s dng v biu trong Rational Rose u thng nht vi chun UML.

42

CHNG 2: UML V CNG C PHT TRIN H THNG

Hnh 2.20: Giao din chnh ca Rational Rose

Giao din chnh ca Rational Rose trong cc biu u c chia thnh cc phn nh trong Hnh 2.21. ngha chnh ca cc thnh phn ny nh sau: MenuBar v ToolBar cha cc menu v cng c tng t nh cc ng dng Windows khc. Phn Browser Window cho php ngi s dng chuyn tip nhanh gia cc biu trong cc View. Phn Doccumentation Window dng vit cc thng tin lin quan n cc phn t m hnh tng ng trong biu . Cc thng tin ny c th l cc rng buc, mc ch, cc t kha lin quan n phn t m hnh . Phn ToolBox cha cc cng c dng v biu . ng vi mi dng biu th s c mt dng toolbox tng ng.

43

CHNG 2: UML V CNG C PHT TRIN H THNG

Menu/ToolBar

Diagram Window Browser Window

ToolBox
Doccumentation Window Specification Window

Hnh 2.21: Cc thnh phn trong giao din Rational Rose

Phn Diagram Window l khng gian v v hiu chnh cc biu trong m hnh tng ng. Ca s Specification Window l c t chi tit ca mi phn t m hnh theo cc trng thng tin tng ng vi dng biu .

Vn s dng Rational Rose cho cc bc c th trong phn tch thit k h thng s c trnh by chi tit trong Chng 3 v 4 ca ti liu ny.

TNG KT CHNG 2
Chng 2 gii thiu ngn ng m hnh ho thng nht UML v cng c Rational Rose cho pht trin phn mm hng i tng. Cc ni dung chnh cn ghi nh: UML ra i t s kt hp cc phng php lun pht trin phn mm hng i tng khc nhau c trc . UML hin nay c coi l ngn ng m hnh ho chun cho pht trin cc phn mm hng i tng.

44

CHNG 2: UML V CNG C PHT TRIN H THNG

UML c chia thnh nhiu hng nhn, mi hng nhn quan tm n h thng phn mm t mt kha cnh c th. Nu xt theo tnh cht m hnh th UML c hai dng m hnh chnh l m hnh tnh v m hnh ng. Mi m hnh li bao gm mt nhm cc biu khc nhau. Mi biu UML c mt tp k hiu ring biu din cc thnh phn ca biu . Qu trnh biu din cc biu cng phi tun theo cc quy tc c nh ngha trong UML. Hin nay c rt nhiu cng c h tr phn tch thit k h thng hng i tng s dng UML trong b cng c Rational Rose l b cng c c s dng rt rng ri vi nhiu tnh nng u vit. Cc v d trong ti liu ny u c xy dng v biu din trn Rational Rose.

CU HI BI TP
1. UML ra i t cc ngn ng v phng php m hnh ha no? 2. Hng nhn l g? UML bao gm cc hng nhn no? 3. Lit k cc biu ca UML v tp k hiu UML cho tng biu . 4. Lit k cc bc pht trin phn mm hng i tng s dng UML 5. Phn bit m hnh tnh v m hnh ng trong UML? 6. Phn bit cc dng quan h trong biu lp nh: quan h khi qut ha, quan h kt hp, quan h cng hp, quan h gp. 7. Phn bit biu tun t v biu cng tc. Cc ch khi biu din hai biu ny.

45

CHNG 3: PHA PHN TCH HNG i TNG

CHNG 3 PHN TCH HNG I TNG


Chng ny trnh by cc bc phn tch hng i tng, cc khi nim v quy tc lin quan n qu trnh phn tch h thng. Ni dung c th gm: Tng quan cc bc ca pha phn tch hng i tng Bc xy dng m hnh use case v kch bn Bc xy dng m hnh lp Bc xy dng m hnh ng da trn biu trng thi

3.1 TNG QUAN V PHN TCH HNG I TNG


3.1.1 Vai tr ca pha phn tch Trong cc bc ca vng i pht trin phn mm ni chung, pha phn tch (hay c t) c cc nhim v sau: Thit lp mt cch nhn tng quan r rng v h thng v cc mc ch chnh ca h thng cn xy dng. Lit k cc nhim v m h thng cn thc hin. Pht trin mt b t vng m t bi ton cng nh nhng vn lin quan trong min quan tm ca bi ton. a ra hng gii quyt bi ton.

Nh vy, pha phn tch ch dng li mc xc nh cc c trng m h thng cn phi xy dng l g, ch ra cc khi nim lin quan v tm ra hng gii quyt bi ton ch cha quan tm n cch thc thc hin xy dng h thng nh th no. Nh cch ni trong ngn ng ting Anh, pha phn tch nhm tr li cho cu hi what, cn cu hi how s c tr li trong pha thit k.

46

CHNG 3: PHA PHN TCH HNG i TNG

3.1.2 Cc bc phn tch hng i tng Phn tch hng i tng c chia lm ba bc tng ng vi ba dng m hnh UML l: M hnh use case: bc ny nhm xy dng m hnh chc nng ca sn phm phn mm. Cc chc nng ny c nhn t quan im ca nhng ngi s dng h thng. Kt qu ca bc ny l mt biu use case c phn cp cng cc scenario tng ng ca tng use case, trong biu din y cc chc nng ca h thng v c khch hng chp nhn. M hnh lp: biu din cc lp, cc thuc tnh v mi quan h gia cc lp. T tp cc use case v scenario, nhm pht trin h thng s phi ch ra cc lp, xc nh cc thuc tnh, cc phng thc v cc mi quan h gia cc lp. M hnh ng: biu din cc hot ng lin quan n mt lp hay lp con. Cc hot ng ny c biu din di dng tng t nh s my trng thi hu hn v c gi l biu trng thi. Ngoi biu trng thi, trong m hnh ng cn c cc biu khc l: biu tng tc (gm c biu tun t, biu cng tc) v biu ng. Tuy nhin, trong pha phn tch, ngi pht trin h thng ch quan tm n biu trng thi cho mi lp xc nh c trong m hnh lp. 3.1.3 V d minh ha cho cc bc phn tch cng nh trong pha thit k Chng 4, chng ta hy xt mt h qun l th vin n gin. Gii hn ca h thng ny c th hin qua cc yu cu sau: Ti liu trong th vin bao gm: sch, bo, tp ch ... c m t chung gm cc thuc tnh: tn ti liu, tc gi, nh xut bn, nm xut bn, s lng hin c. i vi cc bn c: thc hin cc thao tc tm ti liu, mn, tr ti liu v xem xt cc thng tin v ti liu m mnh ang mn. Vic tm kim ti liu c thc hin trc tip qua mng. Tuy nhin, giao dch mn v tr sch phi thc hin trc tip ti th vin.

47

CHNG 3: PHA PHN TCH HNG i TNG

Qu trnh mn v tr ti liu thng qua mt th mn ghi y ni dung lin quan n bn c v ti liu c mn; thi gian bt u mn v thi hn phi tr. i vi ngi qun l th vin (th th): c php cp nht cc thng tin lin quan n ti liu v bn c.

Bi ton ny s c s dng lm v d trong qu trnh thc hin cc bc phn tch v thit k h thng (Chng 3, 4). Ti liu phn tch thit k h thng s c trnh by y trong phn Ph lc.

3.2 M HNH USE CASE V KCH BN


3.2.1 Vai tr ca m hnh use case Khi bt u xy dng mt sn phm phn mm, nhm pht trin phi xc nh cc chc nng m h thng cn phi thc hin l g. Biu use case c s dng xc nh cc chc nng cng nh cc tc nhn (ngi s dng hay h thng khc) lin quan n h thng . C th coi mt use case l tp hp ca mt lot cc kch bn (scenario) lin quan n vic s dng h thng theo mt cch thc no . Mi kch bn (scenario) m t mt chui cc s kin m mt ngi hay mt h thng khc kch hot vo h thng ang pht trin theo tun t thi gian. Nhng thc th to nn cc chui s kin nh th c gi l cc tc nhn (Actor). Mt h thng s bao gm nhiu use case, lin kt vi nhau bi cc mi quan h no . Biu use case c phn r thnh cc mc tng ng vi cc chc nng cc cp khc nhau, nhn t quan im ngi s dng h thng. S cn thit phi xy dng biu use case th hin qua mt s im sau: Use case l mt cng c tt ngi dng tip cn v m t cc chc nng ca h thng theo quan im ca mnh. Biu use case c biu din trc quan, do khch hng v nhng ngi dng tim nng ca h thng c th d dng m t c nhng nh thc s ca mnh. Biu use case s lm cho khch hng v ngi dng tim nng tham gia cng nhm pht trin trong bc khi u ca qu trnh phn tch thit k h thng. iu ny s gip cho nhm pht trin v khch hng c c s thng nht chung v cc chc nng thc s cn thit ca h thng.

48

CHNG 3: PHA PHN TCH HNG i TNG

Biu use case l c s cho nhng bc tip theo ca qu trnh phn tch thit k h thng phn mm. Da trn biu use case v cc scenario, ngi pht trin h thng s ch ra cc lp cn thit cng nh cc thuc tnh ca cc lp .

Cc mc tiu chnh cn t c ca cc use case l: - Cn ch ra v m t c cc yu cu mang tnh chc nng ca h thng, y l kt qu rt ra t s tha thun gia khch hng (v/hoc ngi s dng cui) v nhm pht trin phn mm. - a ra mt m t r rng v nht qun v vic h thng cn phi lm g, lm sao m hnh c th c s dng nht qun trong sut ton b qu trnh pht trin v to thnh nn tng cho vic thit k cc chc nng sau ny. - To nn mt nn tng cho cc bc kim th h thng, m bo h thng tha mn ng nhng yu cu do ngi s dng a ra. Trong thc t thng l tr li cu hi: Liu h thng cui cng c thc hin nhng chc nng m khi u khch hng ngh hay khng? - Cung cp kh nng theo di qu trnh chuyn cc yu cu v mt chc nng thnh cc lp c th cng nh cc phng thc c th trong h thng. - n gin ha vic thay i v m rng h thng qua vic thay i v m rng m hnh Use Case. Khi h thng cn thay i (thm bt cc chc nng no ), ngi pht trin h thng ch cn b sung trong biu use case cho ph hp, sau ch theo di ring nhng use case b thay i cng nhng nh hng ca chng trong thit k h thng v xy dng h thng. Nhng cng vic c th cn thit to nn mt m hnh Use Case bao gm: 1. Xc nh cc tc nhn v cc Use Case 2. Xc nh cc mi quan h v phn r biu use case 3. Biu din cc use case thng qua cc kch bn 4. Kim tra v hiu chnh m hnh Ni dung c th thc hin trong mi bc ny s c trnh by c th trong phn sau ca ti liu.

49

CHNG 3: PHA PHN TCH HNG i TNG

3.2.2 Xy dng biu use case Phn ny s trnh by qu trnh xy dng biu use case theo UML v p dng trong b cng c Rational Rose. Bc 1: Tm cc tc nhn v cc use case tm cc tc nhn, ngi pht trin h thng cn tr li cc cu hi sau:
Ai (hay h thng no) s l ngi s dng nhng chc nng chnh ca h thng? (tr li cu hi ny ta s tm c cc tc nhn chnh). Ai cn s h tr ca h thng thc hin nhng cng vic hng ngy ca h? Ai s cn bo tr, qun tr v m bo cho h thng hot ng (tc nhn ph)? H thng s phi x l v lm vic vi nhng trang thit b phn cng no? H thng cn phi tng tc vi cc h thng no khc? Cn phn bit h thng m chng cn phi xy dng vi cc h thng s tng tc vi n. Ngha l, cn xc nh r bin gii gia h thng yu cu xy dng vi h thng khc c th bao gm cc h thng my tnh cng nh cc ng dng khc trong chnh chic my tnh m h thng ny s hot ng trong tng lai. Ai hay ci g quan tm n kt qu m h thng s sn sinh ra?

Xem xt bi ton qun l th vin, cc chc nng chnh ca h thng qun l th vin c thc hin bi th th v bn c ca th vin . Nh vy, chng ta c hai tc nhn l th th v bn c, trong bn c khng phn bit l sinh vin hay gio vin. T cc tc nhn tm c trn, ngi pht trin h thng s tm ra cc use case qua vic xem xt cc cu hi sau trn mi tc nhn: Tc nhn cn chc nng no t h thng. Hnh ng chnh ca tc nhn ny l g? Tc nhn cn phi xem, cp nht hay lu tr thng tin g trong h thng? Tc nhn c cn thng bo cho h thng nhng s kin no hay khng? Nhng s kin nh th i din cho nhng chc nng no? H thng c cn thng bo cho tc nhn khi c thay i trong h thng hay khng? H thng cn c nhng chc nng g n gin ha cc cng vic ca tc nhn?

50

CHNG 3: PHA PHN TCH HNG i TNG

Trong bi ton qun l th vin m chng ta ang xt, tc nhn bn c, anh ta cn cc chc nng lin quan n tm kim ti liu, xem thng tin c nhn, ng k mn v tr sch. Cn tc nhn th th s thc hin cp nht cc thng tin lin quan n bn c v cc thng tin v ti liu, thc hin cc giao dch mn v tr sch. Da vo , ta xc nh c mt s use case nh: tm kim ti liu, cp nht, cp nht bn c, cp nht ti liu, qun l mn sch, qun l tr sch, xem thng tin c nhn. Ngoi ra, use case cn c xc nh thng qua cc cu hi khc nh sau: Ngoi cc tc nhn, cc chc nng ca h thng c c th c sinh ra bi s kin no khc (nh s kin thi gian, tc ng ca chc nng khc, ). H thng cn nhng thng tin u vo u ra no?

Trong bi ton qun l th vin, cp nht c thng tin, th th phi thng qua vic ng nhp h thng. Hay ni cch khc, s kin ng nhp h thng s l iu kin cho use case cp nht. Vy ta s cn thm use case cp nht.

Bc 2: Xc nh mi quan h v phn r biu use case


Trong s use case, cc dng quan h s c s dng trong cc trng hp tng ng nh sau: Quan h <<include>>: s dng ch ra rng mt use case c s dng bi mt use case khc. Quan h m rng <<extend>>: s dng ch ra rng mt use case c m rng t mt use case khc bng cch thm vo mt chc nng c th. Quan h generalization: biu th use case ny l tng qut cn use case kia l c th ha ca use case . Quan h kt hp: thng dng biu din mi lin h gia actor v cc use case (mt actor kch hot mt use case).

Da trn cc mi quan h trn, biu use case c biu din li thnh dng phn cp gi l phn r biu use case. Nguyn tc phn r biu use case nh sau: Xc nh s use case mc tng qut: t tp tc nhn v use case c xc nh bc trc, ngi pht trin cn tm ra cc chc nng chnh ca h thng. Cc chc nng ny phi c tnh tng qut, d dng nhn thy c trn quan im ca cc tc nhn. Cc dng quan h thng dng

51

CHNG 3: PHA PHN TCH HNG i TNG

trong s use case mc tng qut l quan h kt hp, quan h tng qut ha v quan h include. V d trong bi ton qun l th vin, xt trn quan im ca cc tc nhn bn c, th th, nu tm thi cha xt n cc chc nng mn v tr sch th cc chc nng tng qut ca h thng l: ng nhp, cp nht v tm kim. Trong cc use case ny, use case cp nht include chc nng ca use case tm kim (Hnh 3.1).

Thu thu

DangNhap

Cap nhat

<<include>>

Timkiem

Ban doc

Hnh 3.1: Biu use case mc tng qut trong bi ton qun l th vin

Phn r cc use case mc cao: ngi pht trin tin hnh phn r cc use case tng qut thnh cc use case c th hn s dng quan h extend. Cc use case con (mc thp) c la chn bng cch thm vo use case cha mt chc nng c th no v thng c m rng da trn c s s chuyn tip v phn r cc chc nng ca h thng. V d, trong bi ton qun l th vin, use case cp nht c th c phn r thnh cp nht bn c v cp nht ti liu (Hnh 3.2)

52

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.2: Phn r use case cp nht

Tip tc phn r s use case cho n khi gp use case nt l. Cc use case nt l thng gn vi mt chc nng c th trong h thng thc s tng tc vi cc tc nhn (gi kt qu n cc tc nhn hoc yu cu tc nhn nhp thng tin ). Trong cc s use case mc 2, nu cn c use case no cha phi l nt l th cn tip tc c phn r. Trong v d v bi ton qun l th vin, cc use case cp nht bn c v cp nht ti liu u c th tip tc phn r thnh cc use case con l thm bn c, thay i thng tin bn c v xa bn c hay thm ti liu, thay i thng tin ti liu v xa ti liu. Cc use case ny l nt l v n biu din mt chc nng c th ca h thng trong c tng tc gia tc nhn th th v h thng (Hnh 3.3 v Hnh 3.4).

53

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.3: Phn r use case Cp nht bn c

Hnh 3.4: Phn r use case cp nht ti liu

Hon thin biu use case: ngi pht trin tin hnh xem xt li xem tt c cc use case c biu din trong biu use case ( tt c cc mc) hay cha. Nu cn c use case cha c trong biu no, ngi pht trin phi xem xt xem chc nng m use case i din c thc hin bi cc use case khc cha b sung thm hoc loi b use case ra khi biu .

54

CHNG 3: PHA PHN TCH HNG i TNG

Bc 3: Biu din cc use case bi kch bn (scenario)


Sau khi hon thnh phn r biu use case, cng vic tip theo ca ngi pht trin h thng l biu din cc scenario tng ng vi cc use case . Cc scenario c biu din theo mu chung nh trong Bng 3.1. ngha
Tn Use case: Tc nhn chnh: Mc: Ngi chu trch nhim: Tin iu kin: Tn use case Tc nhn chnh ca use case Mc ca use case trong biu phn r Ngi chu trch nhim chnh trong hot ng ca use case Tin iu kin: khi no use case c kch hot. m bo ti thiu: m bo trong trng hp use case tht bi. m bo thnh cng: kt qu trong trng hp use case hon thnh. S kin tc ng kch hot use case. Scenario chun (trong trng hp thnh cng)

m bo ti thiu: m bo thnh cng: Kch hot: Chui s kin chnh: 1. 2. 3. Ngoi l: 1.a Ngoi l xy ra bc 1 1.a.1 1.a.2 3.a Ngoi l xy ra bc 3 3.a.1 3.a.2 .

Cc scenario ngoi l tng ng vi cc bc trong scenario chun.

Bng 3.1: Mu chung cho scenario

55

CHNG 3: PHA PHN TCH HNG i TNG

Bng 3.2 biu din scenario cho use case Thm sch trong bi ton qun l th vin.
Tn use case Tc nhn chnh Mc Ngi nhim chu

Thm sch Th th 3
trch Ngi qun l th vin

Tin iu kin m bo ti thiu

Th th ng nhp vo h thng. H thng loi b cc thng tin thm v quay lui li bc trc.

m bo thnh cng Thng tin v sch mi c b sung vo CSDL Kch hot Chui s kin chnh:

Th th chn chc nng cp nht sch trong menu.

1. H thng hin th form thm sch v yu cu th th a vo thng tin sch. 2. Th th nhp thng tin v sch mi v nhn Submit. 3. H thng kim tra thng tin sch v xc nhn thng tin sch hp l 4. H thng nhp thng tin sch mi vo CSDL 5. H thng thng bo nhp thnh cng. 6. Th th thot khi chc nng thm sch.
Ngoi l: 3.a H thng thng bo sch c trong CSDL.

3.a.1 H thng hi th th c thm s lng sch hay khng. 3.a.2 Th th thm s lng sch 3.a.3 H thng thm s lng cho sch c 3.a.4 H thng thng bo nhp thnh cng.
3.b H thng thng bo thng tin sch khng hp l

3.b.1 H thng yu cu th th nhp li thng tin. 3.b.2 Th th nhp li thng tin sch.
Bng 3.2: Scenario cho use case Thm sch

56

CHNG 3: PHA PHN TCH HNG i TNG

Bc 4: Hiu chnh m hnh


Bc ny thc hin kim tra li ton b biu use case, b sung hoc thay i cc thng tin nu cn thit. Trong bc ny, ton b biu use case cng cc scenario v cc ti liu khc lin quan s c chuyn cho khch hng xem xt. Nu khch hng c iu g cha nht tr, nhm pht trin s phi sa i li biu use case cho ph hp. Bc ny ch kt thc khi khch hng v nhm pht trin h thng c c s thng nht. 3.2.3 Xy dng biu use case trong Rational Rose Biu use case c xy dng trong Use Case View ca Rational Rose (Hnh 3.5). Cc cng c thng thng s dng trong biu use case gm use case, actor, cc quan h association v dependency u xut hin trong ToolBox tng ng ca biu use case. Cc bc xy dng biu use case trong Rational Rose l: 1. Biu din cc tc nhn 2. Biu din v c t cc use case mc tng qut 3. Biu din cc mi quan h 4. Phn r biu use case v c t cc use case mc thp

57

CHNG 3: PHA PHN TCH HNG i TNG

Package Use case Actor Association Dependency Generation

Hnh 3.5: Giao din ca biu use case

Bc 1: Biu din cc tc nhn. thm vo biu mt tc nhn, ta thc hin cc bc sau: B1. Chn cng c actor trn hp cng c B2. a con tr vo vng mn hnh diagram v t vo v tr thch hp B3. M ca s c t actor v vit tn ca tc nhn Bc 2: Biu din cc use case mc cao B1. Chn cng c use case trn hp cng c B2. a con tr vo mn hnh diagram v t use case cn to vo v tr thch hp B3. M ca s c t use case, t tn cho use case v m t cc thng tin khc. Ca s Specification ca mt use case c biu din nh trong Hnh 3.6. Trong ca s ny c cc thanh Tab: Tab General a ra cc thng tin chung v use case nh tn, kiu

58

CHNG 3: PHA PHN TCH HNG i TNG

Tab Diagram cho bit cc biu i km ca use case (khi m rng mt use case th biu mc di s xut hin y). Tab Relations lit k cc mi quan h ca use case vi cc use case v actor khc. Tab Files l cc file km theo use case (c th l cc scenario hoc cc dng file khc).

Hnh 3.6: Ca s c t mt use case

Bc 3: Biu din v c t cc quan h B1. Chn kiu quan h tng ng trong hp cng c: (quan h association, dependency). B2. t con tr vo i tng khi u quan h (actor hoc use case) v ko n i tng cui. B3. M ca s c t quan h chn kiu quan h v t tn quan h cng mt s thng tin khc. Tng t vi cc use case, quan h gia cc use case cng c mt ca s c t tng ng. Mt trong nhng im quan trng nht trong c t mt quan h gia cc use case l ch ra stereotype ca quan h . Hnh 3.7 l ca s c t quan h kiu ph thuc (Dependency). Hnh 3.8.a v 3.8.b l hai Tab khc nhau ca ca s c t quan h dng kt hp (association). 59

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.7: Ca s c t mt quan h dng Dependency

Hnh 3.8.a: c t quan h association Tab General

Hnh 3.8.b: c t quan h association Tab Role A General

Bc 4: Phn r biu use case.

60

CHNG 3: PHA PHN TCH HNG i TNG

Mt trong nhng nhim v ca bc xy dng biu use case l phi phn r biu use case. thc hin cng vic ny, chng ta lm theo hai bc sau: B1. Nhn chut phi vo use case tng ng cn phn r trong Browser Window v chn chc nng xy dng Use Case Diagram mi (Hnh 3.9). B2. V biu use case mc thp tng t nh biu use case mc cao. Khi to xong biu use case mc thp, biu ny s xut hin pha di use case tng ng trong Browser Window (Hnh 3.10).

Hnh 3.9: Phn r use case

61

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.10: Mt s use case mc 2

Rational Rose cng cho php gn km cc file vo trong biu use case. Chng ta c th li dng chc nng ny gn cc file biu din scenario vo trong use case tng ng (Hnh 3.11).

62

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.11: Gn file vo mt use case

3.3 M HNH LP
3.3.1 Vn xc nh lp Khi nim c bn nht trong phng php hng i tng l khi nim i tng. Mt i tng c hiu l mt thc th c thc hoc l mt thc th khi nim. Mi i tng c m t bi cc trng thi v hnh vi cho bit i tng s hnh ng nh th no khi nhn c thng ip t cc i tng khc. Hot ng ca h thng c th hin qua trng thi ca cc i tng v s tng tc gia cc i tng . Mt nhm i tng c chung thuc tnh v phng thc to thnh mt lp. Vn xc nh lp tr thnh mt trong nhng nhim v c bn ca phn tch, thit k h thng hng i tng.

63

CHNG 3: PHA PHN TCH HNG i TNG

Mi tng tc gia cc i tng trong h thng s c biu din thng qua mi quan h gia cc lp. Cc lp (bao gm c cc thuc tnh v phng thc) cng vi cc mi quan h s to thnh biu lp. Biu lp l mt biu dng m hnh tnh. Mt biu lp miu t hng nhn tnh ca mt h thng bng cc khi nim lp v mi quan h gia chng vi nhau. Mt trong cc mc ch ca biu lp l to nn tng cho cc biu khc, th hin cc kha cnh khc ca h thng (v d nh trng thi ca i tng hay cng tc ng gia cc i tng, c ch ra trong cc biu ng). Mt lp trong mt biu lp c th c thc thi trc tip trong mt ngn ng hng i tng c h tr trc tip khi nim lp. Mt biu lp ch ch ra cc lp, nhng bn cnh cn c mt bin tu hi khc i mt cht ch ra cc i tng tht s l cc thc th ca cc lp ny (biu i tng). Xc nh lp l mt trong nhng bc kh nht trong pht trin phn mm hng i tng. Khng c mt quy tc chung no cho vic xc nh lp trong mi h thng. Kt qu ca bc xc nh lp ph thuc nhiu vo kinh nghim ca cc nhm pht trin phn mm khc nhau. Cc phng php xc nh lp c a ra ch mang tnh nh hng cho nhm pht trin ch khng gip nhm pht trin tm ra c th lp no l cn thit hay khng cn thit, ng hay sai. C nhiu phng php xc nh lp khc nhau. Ba phng php xc nh lp sau y c xem l ph bin v nhiu nhm pht trin p dng: Phng php trch danh t: theo phng php ny, u tin ngi pht trin h thng cn nh ngha sn phm phn mm bng mt cu, sau kt hp cc rng buc pht trin thnh mt on. Da trn on vn m t ny, ngi pht trin s ly ra cc danh t, chia thnh cc nhm v c ra cc lp cng nh thuc tnh v phng thc ca cc lp Phng php dng th ghi CRC (class responsibility collaboration): da trn mt s lp phng php ny s dng mt th ghi cho mi lp trong biu din cc thng tin lin quan n trch nhim (responsibility) ca lp v cc lp phi hp vi n (collaboration). T th ghi ny, ngi pht trin s tm ra cc lp khc cn thit v quan trng hn l xc nh y cc thuc tnh, phng thc ca tng lp v mi quan h gia cc lp.

64

CHNG 3: PHA PHN TCH HNG i TNG

Phng php xc nh lp t use case v scenario: ngi pht trin nghin cu cn thn cc use case v scenario (c chun v ngoi l) tm ra cc thnh phn ng vai tr no trong cc use case. Cc thnh phn ny s c tp hp li v c ra cc lp. Cc danh t xut hin trong scenario biu din thng tin cho mt thnh phn nh vy c th tr thnh cc thuc tnh cn cc ng t xut hin trong mi quan h gia cc thnh phn c th tr thnh cc phng thc tng ng trong lp . Phng php xc nh lp t use case v scenario s c trnh by c th trong cc phn tip theo ca ti liu.

3.3.2Xy dng biu lp trong pha phn tch Biu lp l mt trong nhng biu quan trng nht, c tnh quyt nh trong tin trnh pht trin phn mm hng i tng. Trong pha phn tch, biu lp cha c xy dng hon chnh m ch c cc nhim v chnh l: Xc nh cc lp Xc nh cc thuc tnh v mt s phng thc c bn (cha chi tit cc phng thc). Bc u ch ra mt s mi quan h trong s lp.

Bc 1: Xc nh cc lp t cc use case v scenario Bc ny c thc hin theo nguyn tc chung nh sau: Nghin cu k tt c cc use case v scenario tm ra cc danh t c vai tr no trong cc scenario (khi u mt tng tc, bt u hay nhn mt hnh ng trong scenario, ). Cc danh t ny s tr thnh cc lp ng c vin. Loi b cc lp ng c vin khng thch hp. Cc danh t khng thch hp thuc vo mt trong cc trng hp sau: Lp d tha: do c hai hay nhiu danh t cng ch mt thc th nn ta ch cn gi li mt t duy nht v loi b cc t khc. Danh t khng thch hp: l cc danh t khng lin quan n phm vi ca bi ton.

65

CHNG 3: PHA PHN TCH HNG i TNG

Danh t m t nhng lp khng r rng: l cc danh t hoc khng biu din mt thc th c th hoc cc khi nim khng r ngha. Cc danh t ch l mt vai tr (role) trong mi quan h vi mt lp khc. Cc danh t biu din cc cng c xy dng phn mm hoc cc thut ng trong lp trnh hay thut ton (v d stack, list, array, ). Xem xt bi ton qun l th vin, t cc use case v scenario, ta c th lit k cc danh t nh sau: bn c, tn bn c, a ch bn c, th th, username, password, th mn, sch, ngy mn sch, ngy tr sch, s lng sch Da vo tp danh t ny, bc u ta c th xc nh mt s lp nh: bn c, th th, th mn, sch. Bc 2: Xc nh cc thuc tnh v mt s phng thc c bn Da trn tp cc lp c xc nh, ngi pht trin h thng tip tc nghin cu k cc use case v scenario v tr li cc cu hi sau: Vi mi lp, nhng danh t no m t thng tin ca lp . Tr li cu hi ny s gip ta tm ra cc thuc tnh. Nhng thng tin no ca lp thc s lin quan n lnh vc quan tm ca h thng. Tr li cu hi ny gip ta loi cc thuc tnh khng cn thit. Nhng thng tin no l thng tin ring ca lp (cc thuc tnh private), nhng thng tin no c th chia s trong mi quan h vi lp khc (cc thuc tnh protected hoc public).

Tip theo, ngi pht trin h thng xem xt cc ng t i km vi cc danh t biu din lp trong scenario v xem xt xem cc ng t y c tr thnh cc phng thc c hay khng. Tuy nhin, trong pha phn tch, chng ta ch c th xc nh mt s phng thc d nhn thy v cng cha cn xc nh chi tit gi tr tr v cng nh cc tham s. Cc thng tin ny s c c th ha trong pha thit k. Biu lp bc u ca h qun l th vin c biu din nh trong Hnh 3.12. Cc lp Bn c v Th th c k tha t mt lp chung tn l Ngi. Ti mt thi im, mt bn c c tng ng mt Th mn. Mt th mn c th cho mn cng mt lc mt hoc nhiu cun sch.

66

CHNG 3: PHA PHN TCH HNG i TNG

Nguoi ten : String diachi : String ngaysinh : Date getTen() setTen() getDiachi() setDiachi() getNgaysinh() setNgaysinh()

Thuthu maThuthu : String password : String vaitro : String getVaitro() setVaitro()

Bandoc maBandoc : string lop : string khoa : string


1 1...

Sach
Themuon maThemuon : string maBandoc : String ngayMuon : Date ngayTra_dukien : Date dsMasach 1 ngaytra_Thucte : Date tinhtrangHienthoi : String getThemuon() getBandoc()

1..n

maSach : string tenSach : string tacGia : string nhaXB : string phienban : string danhmuc : string namXB : int soTrang : int mota : memotext soluong : int ngayTao : Date ngayCapnhat : Date getTensach() getMaSach()

Hnh 3.12: S lp phn tch ca h thng qun l th vin

3.3.3Biu din biu lp trong Rational Rose Biu lp c xy dng trong Logical View. Cc cng c s dng xy dng biu ny c th hin nh trong Hnh 3.13. Mi lp trong Rational Rose cng c chia thnh 3 phn: tn lp, cc thuc tnh v cc phng thc. Cc bc biu din biu lp trong Rational Rose gm: 1. Biu din cc lp 2. c t cc thuc tnh v phng thc ca lp 3. c t chi tit cc lp 4. Biu din cc quan h

67

CHNG 3: PHA PHN TCH HNG i TNG

Class Interface Association Package Dependency Generation Realize Public Protected Private Implementation

Hnh 3.13: Giao din xy dng biu lp

Bc 1: Biu din cc lp biu din tng lp trong biu lp, ta thc hin cc bc sau: B1. Chn cng c class trong hp cng c B2. a vo mn hnh Class Diagram v a vo v tr thch hp B3. t tn cho lp. B4. Click vo vng th hai trong 3 vng ca biu din lp v thm vo tn cc thuc tnh. B5. Click vo cng th 3 thm vo cc tn cc phng thc cho lp. Bc 2: Biu din cc thuc tnh v phng thc B1. Nhn chut vo tng thuc tnh v phng thc cn c t B2. Chn phm vi truy nhp ca thuc tnh (v phng thc) (xem hnh 3.20) B3. c t kiu cho thuc tnh 68

CHNG 3: PHA PHN TCH HNG i TNG

B4. c t gi tr tr v v cc tham s cho phng thc Hnh 3.13 ch ra cc phm vi ca mt thuc tnh. Phm vi mc nh ca thuc tnh l private. Tng t, cc phm vi ca phng thc c biu din nh trong Hnh 3.14. Phm vi mc nh ca mt phng thc l public.

Public Protected Private Implementation

Hnh 3.14: Cc phm vi khc nhau ca phng thc

Bc 3: c t chi tit mt lp Ca s c t mt lp c biu din nh trong Hnh 3.15 vi rt nhiu Tab khc nhau. Tab General cung cp cc thng tin chung v lp (tn, kiu ). Cc Tab Operations v Attributes cho bit cc phng thc v thuc tnh tng ng ca lp. Tab Relations biu din cc mi quan h ca lp vi cc lp khc. Tab Components biu din cc thnh phn (nu c) ca lp. Tab Files cho bit cc file nh km vi lp .

69

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.15: Ca s c t ca mt lp

Bc 4: Biu din quan h gia cc lp B1. Chn loi quan h ph hp B2. Thc hin ko th gia hai lp cn xc nh quan h B3. c t quan h. Ca s c t mt mi quan h gia cc lp (kiu kt hp: association) c m t nh trong Hnh 3.16. Ngoi cc thng tin tng t nh mi quan h kt hp gia cc use case, trong ca s c t mi quan h gia cc lp cn cn ch r tnh nhiu (mulplicity) ca quan h . Tnh nhiu s c xc nh cho c hai lp tham gia trong quan h. Mt lp s ng vai tr l Role A, cn lp kia s ng vai tr l Role B.

70

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.16: Ca s c t mt mi quan h gia cc lp

3.4 M HNH NG DA TRN BIU TRNG THI


3.4.1 Khi qut v m hnh ng M hnh ng m t kha cnh ng trong phn mm hng i tng. Cc tng tc v hnh vi ng trong m hnh UML c chia thnh ba dng: Tng tc gia cc i tng trong thi gian chy. Tng tc ny c biu din thng qua m hnh tun t v/hoc m hnh cng tc Cc hnh ng tng qut biu din cc tin trnh kinh doanh hoc tng tc vi ngi dng. Tng tc ny c biu din qua biu ng. Cc chuyn i trng thi theo thi gian, c biu din qua biu trng thi.

Ta s ln lt xem xt tng dng m hnh ny. Biu tun t 71

CHNG 3: PHA PHN TCH HNG i TNG

Mc ch: biu din tng tc gia nhng ngi dng v nhng i tng bn trong h thng. Biu ny cho bit cc thng ip c truyn tun t nh th no theo thi gian. Th t cc s kin trong biu tun t hon ton tng t nh trong scenario m t use case tng ng. Biu din: Biu tun t c biu din bi cc i tng v message truyn i gia cc i tng .
Biu cng tc

Mc ch: tng t nh biu tun t, biu cng tc biu din tng tc gia nhng ngi dng v cc i tng bn trong h thng v gia nhng i tng ny vi nhau. Biu cng tc nhn mnh vo mi quan h v mt khng gian gia cc i tng. Biu din: Cc message trong biu cng tc c nh s theo th t thi gian nhng khc vi biu tun t, biu cng tc nhn mnh mi quan h v mt khng gian gia cc i tng trong h thng.
Biu hot ng

Mc ch: Biu ng c s dng biu din cc hot ng nh cc lung cng vic hoc cc tin trnh khc nhau trong h thng c xy dng. Biu ng s c biu din thng qua cc hot ng v cc chuyn tip xy ra khi chuyn tip cc hot ng khi c cc iu kin ph hp hoc khi cc hot ng trc c hon thnh. Biu din: Biu ng c biu din thng qua cc hot ng, cc ng b hay r nhnh v cc chuyn tip gia cc hot ng . Chi tit s c trnh by trong pha thit k hng i tng. Biu trng thi: Mc ch: Biu trng thi c s dng biu din cc trng thi v s chuyn tip gia cc trng thi ca cc i tng trong mt lp xc nh. Thng thng, mi lp s c mt biu trng thi (tr lp tru tng l lp khng c i tng). Biu din: Tng t nh biu ng, biu trng thi cng c biu din di dng my trng thi hu hn vi cc trng thi v s chuyn tip gia cc trng thi . Tuy nhin, trong biu trng thi khng c cc qu trnh ng b v r nhnh nh trong biu ng.

72

CHNG 3: PHA PHN TCH HNG i TNG

M hnh ng trong pha phn tch Trong pha phn tch, ngi pht trin ch tp trung vo xy dng biu trng thi cho cc lp tm c trong bc trc. Cc biu tng tc v biu ng ch yu c xy dng trong pha thit k, trong lm r mi quan h gia cc i tng cng nh cc hot ng ca h thng xy dng biu lp chi tit. Da trn cc lp tm ra trong m hnh lp, biu trng thi s c xy dng cho mi lp. Biu ny s cho bit cc trng thi c th c ca cc i tng lp v cc iu kin chuyn i gia cc trng thi. Da trn cc biu tng tc, ngi phn tch h thng s xem xt li s lp b sung cc thuc tnh cho cc lp cng nh bc u xc nh c cc mi quan h gia cc lp. C hai dng biu trng thi: Biu trng thi cho mt use case: m t cc trng thi v chuyn tip trng thi ca mt i tng thuc mt lp no trong hot ng ca mt use case c th. Biu trng thi h thng m t tt c cc trng thi ca mt i tng trong ton b hot ng ca c h thng.

Biu trng thi cho mi use case d xc nh hn v chng ta c th da trn biu use case v cc scenario c xc nh trng thi. Cn biu trng thi h thng ch c c khi ta xem xt tt c cc use case. Tuy nhin, biu trng thi h thng s h tr tt hn cho ngi phn tch trong vic b sung cc thuc tnh cn thiu cho biu lp v cc phng thc ca bn thn lp . Hnh 3.17 biu din mt biu trng thi ca lp th mn trong bi ton qun l th vin. y ch xt ring cc trng thi ca lp ny trong chc nng qun l mn sch. Trong biu ny ta c cc trng thi cha c sch , ch i v c sch.

73

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.17: Biu trng thi lp Th mn

3.4.3 Xy dng biu trng thi Biu trng thi cho mi lp c xy dng theo cc bc sau: Bc 1: Nhn bit cc trng thi v s kin Bc 2: Xy dng biu Bc 3: Hiu chnh biu Bc 1: Nhn bit cc trng thi v s kin Qu trnh pht hin s kin v trng thi ca mt i tng c thc hin bng vic tr li cc cu hi sau: Mt i tng c th c nhng trng thi no?: Hy lit k ra tt c nhng trng thi m mt i tng c th c trong vng i ca n. Nhng s kin no c th xy ra?: V s kin gy ra vic thay i trng thi nn nhn ra cc s kin l mt bc quan trng nhn din trng thi. Trng thi mi s l g?: Sau khi nhn bit s kin, ngi thit k cn xem xt sau khi s kin ny xy ra th trng thi mi sinh ra s l g. C nhng th tc nh hng n trng thi ca mt i tng?.

74

CHNG 3: PHA PHN TCH HNG i TNG

Nhng s kin v s chuyn tip no l khng th xy ra? Ci g khin cho mt i tng c to ra?: i tng thng c to ra do mt s kin no . Cu hi ny gip xc nh chuyn tip u tin trong biu trng thi. Ci g khin cho mt i tng b hy?: i tng s b hy i khi chng khng cn vai tr g na. Tr li cu hi ny s gip tm ra cc chuyn tip cui cng trong biu . Bc 2: Xy dng biu Sau khi tr li cu hi trong bc 1, ngi pht trin s phi sp xp cc trng thi v s kin tm c vo trong mt biu . Xut pht t trng thi khi u, ngi thit k s xc nh cc trng thi tip theo v biu din cc chuyn tip gia cc trng thi . Gn vi mi chuyn tip l mt s kin. Cc s kin s c biu din theo cu trc chung nh sau: S kin [iu kin] hot ng Trong : tn s kin c t ln u, tip theo l iu kin (t trong 2 du ngoc vung) ca s kin v cui cng l hnh ng p ng ca s kin. Mi biu trng thi c th c mt hoc nhiu trng thi kt thc. Da trn qu trnh chuyn tip trng thi, ngi pht trin s phi xc nh chuyn tip no c th dn ti trng thi kt thc trong vng i i tng. Bc 3: Hiu chnh biu trng thi Ngi pht trin tin hnh xem xt li ton b cc biu trng thi cho tng lp v sa i li biu trng thi nu cn thit. Cc biu trng thi s c s dng xc nh y cc thuc tnh cho biu lp. V vy, bc hiu chnh biu trng thi c th tip tc cho n pha thit k. 3.4.3 Biu din biu trng thi trong Rational Rose Biu trng thi c xy dng cho mi lp. Cc bc thc hin thm biu trng thi nh sau: Bc 1. Trong Browser Window, t mt lp tng ng, ta nhn chut phi v chn New Statechart Diagram. V d trong Hnh 3.18 ta la chn xy dng biu trng thi cho lp Borrow-Card.

75

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.18: La chn xy dng biu trng thi cho mi lp

Bc 2. Trong ca s xy dng biu trng thi, chn cng c state thm cc trng thi vo biu Bc 3. c t trng thi s dng ca s c t. Hnh 3.19 v 3.20 l cc ca s c t trng thi v chuyn tip trng thi. Cc thng tin c t ny hon ton thng nht vi chun UML trnh by trong chng 2 ca ti liu ny. Bc 4. Biu din cc quan h (chuyn tip) trong biu trng thi.

76

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.19: c t trng thi

77

CHNG 3: PHA PHN TCH HNG i TNG

Hnh 3.20: c t chuyn tip trng thi

TNG KT CHNG 3
Chng 3 trnh by cc bc trong pha Phn tch hng i tng. Mt s ni dung sau cn ghi nh: Pha phn tch hng i tng gm 3 bc chnh c gn vi ba dng m hnh UML l: m hnh use case, m hnh lp v m hnh ng Bc xy dng m hnh use case gm 2 vic chnh l: xy dng v phn ra biu use case v biu din cc use case theo dng kch bn. Bc xy dng m hnh lp tin hnh xy dng biu lp. Biu lp trong pha phn tch ch yu l pht hin cc lp (dng lp thc th), xc nh cc thuc tnh v cc mi quan h n gin gia cc lp . Bc xy dng m hnh ng trong pha phn tch tp trung vo xy dng biu trng thi m t cc trng thi v chuyn tip trng thi ca cc i

78

CHNG 3: PHA PHN TCH HNG i TNG

tng ca cc lp. Da trn biu trng thi, ngi phn tch s c th hiu chnh li c biu lp, b sung cc thuc tnh cn thiu. Ti liu cng a ra nhng hng dn v gi thc hin cho mi bc nh trong pha phn tch.

CU HI BI TP
A. CU HI 1. Biu use case l g? Vai tr ca biu use case trong xc nh yu cu khch hng? 2. Phn bit cc quan h <<include>> v <<extend>> trong biu use case. 3. Khi nim k tha trong lp trnh hng i tng c tng ng vi quan h khi qut ho (generalization) gia cc lp trong UML khng. Ti sao 4. Mi quan h kt hp 2 chiu l g? Biu din quan h ny nh th no? 5. Phn bit mi quan h cng hp v quan h gp 6. Khi no c th s dng mi quan h thc thi (realization) trong biu lp. 7. Biu trng thi dng lm g 8. Phn bit s khc nhau gia biu trng thi cho mt use case v biu trng thi h thng B. BI TP 1. Xem hnh v sau:

79

CHNG 3: PHA PHN TCH HNG i TNG

1 Fullfill Ticket Purchase


TicketAgent

Search for Available Seat

Deliver Ticket 2

Direct Mailling

Call - Pick up

Cc nhn no sau y ph hp vi cc quan h tng ng vi cc ng 1, 2, 3? A. includes, includes, includes. B. includes, extends, extends. C. extends, includes, extends. D. extends, extends, includes. E. includes, includes, extends. 2. Xem xt biu lp phn tch trong h thng thng tin nhn s. Trong h thng ny , xt 2 lp: 3. Lp Employee (Nhn vin) cha thng tin v m nhn vin, tn, a ch v ngy sinh nhn vin. Lp Address (a ch) cha thng tin v s nh, ph, thnh ph.

Hy xc nh mi quan h gia lp Employee v lp Address Trong h thng thng tin khch hng, lp Bill (Ho n) sinh ra ho n thanh ton cho mi khch hng s dng gi tr tr v ca hm tnh tng s tin calculateAmt() trong lp Purchase. Xc nh mi quan h gia lp Bill v lp Purchase. Cho mt biu trng thi (hnh v). a ra 3 chui s kin (bt u t trng thi khi u) lm cho biu trng thi b dn ti tnh trng b tc. Gii thch.

4.

80

CHNG 3: PHA PHN TCH HNG i TNG

5.

Chuyn tip no trong biu trng thi sau l khng hp l

Available

Put on hold Release

On Hold

Sell Cancel

Sold

A. Put on hold B. Release C. Sell D. Cancel 6. K hiu hin hin (visibility) no sau y ch ra mt thuc tnh hay phng thc l hin hu vi cc lp trong cng mt gi. A. + B.

81

CHNG 3: PHA PHN TCH HNG i TNG

C. # D. ~ 7. Mi quan h no biu din mi quan h gia hai lp m s thay i trong phng thc v thuc tnh ca lp ny nh hng n cc thuc tnh v phng thc ca lp kia. A. Quan h ph thuc B. Quan h nhn bn (multiplicity) C. Quan h thc thi D. Quan h kt hp

82

CHNG 4: PHA THIT K HNG i TNG

CHNG 4 PHA THIT K HNG I TNG


Chng ny trnh by cc bc v qu trnh thc hin cc bc thit k hng i tng. Ni dung c th gm: Tng quan v thit k hng i tng Bc xy dng cc biu tng tc Bc xy dng biu lp chi tit Bc xy dng biu thnh phn v biu trin khai

4.1 TNG QUAN V THIT K HNG I TNG


4.1.1 Vai tr ca pha thit k Trong tin trnh pht trin phn mm ni chung, bc thit k hng i tng c vai tr nh sau: Tr li cu hi how thay v cu hi what nh trong pha phn tch. Mc tiu ca pha thit k l phi xc nh h thng s c xy dng nh th no da trn kt qu ca pha phn tch. a ra cc phn t h tr gip cu thnh nn mt h thng hot ng thc s. nh ngha mt chin lc ci t cho h thng. M hnh ha chi tit h thng da trn cc lp, cc i tng trong min ng dng ca h thng . Thit k da trn chin lng tru tng ho phn cp d liu (hierachical data abstraction) trong cc thnh phn s c thit k t cc lp, i tng, cc module v cc tin trnh. Cc phng thc thng c thit k trong mi quan h vi cc i tng xc nh hoc mt lp cc i tng .

Cc c trng ca pha thit k hng i tng bao gm:

83

CHNG 4: PHA THIT K HNG i TNG

4.1.2 Cc bc thit k hng i tng Da trn cc kt qu ca pha phn tch, pha thit k hng i tng c chia thnh cc bc nh sau: Xy dng cc biu tng tc, bao gm biu tun t v biu cng tc. Xy dng biu lp chi tit: thc hin hon chnh s lp, xc nh v biu din y cc phng thc cho tng lp, xc nh mi quan h gia cc lp. Thit k chi tit: xy dng cc biu ng cho cc phng thc phc tp trong cc lp v xy dng bng thit k chi tit cng nh k hoch ci t v tch hp. Xy dng biu thnh phn v biu trin khai h thng Pht sinh m, chun b cho ci t h thng Cc bc ny s c trnh by trong cc phn sau ca ti liu ny.

3.2 CC BIU TNG TC


Nh trnh by trong phn 3.4, cc biu tng tc biu din cc tng tc gia cc tc nhn bn ngoi v cc i tng bn trong h thng cng nh tng tc gia cc i tng bn trong h thng . Biu tng tc c hai dng l: Biu tun t (sequence diagram) nhn mnh th t thc hin cc tng tc Biu cng tc (collaboration diagram) nhn mnh n mi quan h v s b tr gia cc i tng trong tng tc .

Ty vo yu cu ca h thng c th, ngi pht trin h thng c th la chn mt trong hai biu hoc s dng c hai biu . Trong phn ny, ti liu s tp trung trnh by cc phn t m hnh UML s dng trong cc biu tng tc v cch thc xy dng cc biu tng tc . 4.2.2 Xy dng biu tun t Thng thng, cc biu tun t c gn vi cc use case. Cc message trong biu tun t s biu din li th t cc s kin trong scenario ca use case (c chun v ngoi l). Hnh 4.1 biu din mt v d v biu tun t n gin m t chc nng thm sch c xy dng nn t scenario trnh by trong chng trc. Trong

84

CHNG 4: PHA THIT K HNG i TNG

chc nng thm sch, cc i tng tham gia gm: Th th, Form Thm sch, i tng iu khin Thm sch v i tng Sch. Th t thc hin message trong biu l theo chiu t trn xung di. Nhn vo mt biu tun t nh vy ta c th thy c ngay th t thc hin cc hnh ng ca mt i tng trong chc nng (use case) ang xem xt. Biu tun t ny m t li kch bn (scenario) ca use case Thm sch nhng da trn cc i tng ca cc lp xc nh trong pha phn tch. Vi mi chc nng, thng thng chng ta s thm mt lp giao din (lp Form) v mt lp iu khin cho chc nng .

: Thu thu

: FormThemSach Yeu cau Them sach

: DK_ThemSach

: Sach

Yeu cau nhap thong tin

Nhap thong tin sach m oi Tao doi tuong sach moi Kiem tra thong tin sach Nhap sach vao CSDL

Nhap thanh cong Nhap thanh cong Thong bao nhap thanh cong

Hnh 4.1: Biu tun t cho use case Thm sch

Mt s ch khi v biu tun t: S kin c biu din km theo cc message nm ngang. i tng lun gn vi cc ng life line dc theo biu . im kt thc ca ng life line ny nh du thi im hu i tng hoc khi tng tc kt thc.

85

CHNG 4: PHA THIT K HNG i TNG

Trc thi gian c quy nh t trn xung di. Cc message trn s xy ra trc cc message pha di. Trong biu tun t c th xut hin cc message t mt i tng n chnh bn thn n. Tip theo, ta xem xt mt s vn phc tp hn khi xy dng biu tun t gm: biu din cc message lp, s dng cc message to v hu v phn nhnh cc i tng. Biu din cc message lp Trong biu tun t, c mt s trng hp ta cn biu din cc message c gi theo vng lp (nhiu ln lin tip) gia hai i tng. Khi , ta b sung thm cu trc: * [i=1..n] vo trc message; vi i l bin iu khin lp, n l s ln lp. Xem xt v d trong Hnh 4.2.

Hnh 4.2: Biu din message lp

S dng cc message to v hu Thng thng, cc message trong biu tun t c gi v nhn t cc i tng tn ti. Tuy nhin, trong trng hp cc i tng tham gia tng tc thuc v cc lp c quan h ph thuc th ta phi s dng cc message to v hu. Cc message to v hu c biu din trong v d Hnh 4.3.

86

CHNG 4: PHA THIT K HNG i TNG

Object1 <<create>> Object2

<<destroy> >
Hnh 4.3: S dng message to v hu

Biu din phn nhnh cc i tng Trong trng hp ng vi cc gi tr khc nhau ca tham s, i tng hot ng khc nhau th chng ta dng cch biu din phn nhnh i tng. Xem v d Hnh 4.4.

Object1 [j=0] message 1 [j=1] message 2

Object2

Hnh 4.4: Phn nhnh cc i tng

87

CHNG 4: PHA THIT K HNG i TNG

4.2.3 Xy dng biu cng tc Biu cng tc cng c cc messgage vi ni dung tng t nh trong biu tun t. Tuy nhin, cc i tng c t mt cch t do trong khng gian ca biu v khng c ng life line cho mi i tng. Cc message c nh s th hin th t thi gian. Mt s ch khi xy dng biu cng tc: Gia hai i tng c th c nhiu message. Cc message ny s cng c biu din trong khng gian gia hai i tng, km theo s th t ca n. Trong biu cng tc cng c th c cc message t mt i tng n bn thn n. Message ny s biu din bi mt ng v hng xut pht v kt thc trn i tng .

Hnh 4.5 m t mt biu tng tc kiu cng tc (collaboration diagram). Ni dung biu ny hon ton tng t nh trong biu tun t trong Hnh 4.1. Nu nh biu tun t nhn mnh n th t cc message th biu cng tc li nhn mnh n quan h gia cc i tng. Do , trong biu cng tc khng c cc ng life line. Cc i tng s c b tr t do trong biu theo hnh dung ca ngi thit k.
3: Nhap thong tin sach moi

1: Yeu cau them sach

2: Yeu cau nhap thong tin

: Thu thu
9: Thong bao nhap thanh cong

: FormThemSach

8: Nhap thanh cong

4: Tao doi tuong sach moi

5: Kiem tra thong tin sach


6: Nhap sach vao CSDL

7: Nhap thanh cong

: DK_ThemSach

: Sach

Hnh 4.5: Biu cng tc cho use case Thm sch

88

CHNG 4: PHA THIT K HNG i TNG

T Hnh 4.5, ta thy cc thnh phn c bn ca mt biu cng tc l: Cc i tng (object): trong biu cng tc, cc i tng vn c biu din vi dng hon ton tng t nh trong biu tun t nhng khng c ng life line pha di. Cc message c nh s th t: gia cc i tng c tng tc trong biu cng tc, ngi ta v cc ng lin kt v hng. Cc message s c biu din pha trn ng lin kt v mi message s c nh s th t tng ng vi th t xut hin v mt thi gian ca message .

4.2.4 Biu din cc biu tng tc trong Rational Rose Cc biu tng tc c th c xy dng t cc use case tng ng. Trong trng hp , ngi s dng c th nhn chut phi vo use case tng ng v la chn New ri n tn loi biu cn xy dng. a) Xy dng biu tun t Bc 1: Chn use case cn xy dng biu tun t. Click chut phi, chn New Sequence Diagram. Hnh 4.6 l la chn xy dng biu tun t, Hnh 4.7 l la chn xy dng biu cng tc.

Hnh 4.6: La chn xy dng biu tun t cho mi use case

89

CHNG 4: PHA THIT K HNG i TNG

Bc 2: Thm cc i tng vo biu tun t. Chn k hiu i tng trong hp cng c v ko vo ca s biu . Bc 3: Thm cc message. Bc 4: c t cc message: t tn hoc m t di dng hm. Mt biu tun t c dng nh trong Hnh 4.7. Hp cng c trong cc biu tun t v cng tc l cc i tng v cc dng mi tn biu din cc dng message khc nhau.

Hnh 4.7: Biu din mt biu tun t

b) Xy dng biu cng tc Bc 1: La chn use case cn xy dng biu cng tc. Xem hnh 4.8.

90

CHNG 4: PHA THIT K HNG i TNG

Hnh 4.8: La chn xy dng biu cng tc cho mi use case

Bc 2: Biu din cc i tng trong khng gian biu . Bc 3: Biu din cc message trong biu cng tc. Mi message km theo s th t ca message .

4.3 BIU LP CHI TIT


4.3.1 Xc nh cc phng thc cho mi lp Bc u tin trong xy dng biu lp chi tit l xc nh phng thc cho cc lp. Da trn cc biu tng tc va xy dng, qu trnh xc nh cc phng thc c thc hin theo cc nguyn tc sau: Xem xt cc message trong cc biu tng tc xc nh hnh ng tng ng vi message thuc trch nhim ca lp no. Cc phng thc no cn thit chuyn i cc trng thi trong biu trng thi ca mt lp. Xc nh xem vi mi lp, lp cn cc hm to v hm hy hay khng.

Sau khi xc nh y cc phng thc, cng vic tip theo l phi xc nh chi tit gi tr tr v v cc tham s lin quan vi mi phng thc. 91

CHNG 4: PHA THIT K HNG i TNG

4.3.2 Xc nh mi quan h gia cc lp Trong bc ny, ngi pht trin h thng phi xc nh y mi quan h gia cc lp v cc vn lin quan n cc mi quan h . Nhng cng vic c th phi thc hin trong bc ny l: Xc nh c th dng ca quan h gia cc lp Xc nh s lng trong mi mi quan h

Bc 1: Xc nh c th dng ca quan h gia cc lp Nh trnh by trong chng 2, c bn dng quan h c bn trong s lp l: quan h k tha, quan h kiu kt hp, quan h gp v quan h ph thuc. Trong bc ny, ngi pht trin phi tm ra cc quan h gia cc lp v xc nh c th quan h thuc dng no. Nu nh cc danh t gip chng ta tm ra lp th cc ng t trong cc scenario s gip chng ta tm ra cc quan h. Cc quan h s c phn loi da trn nguyn tc sau: Hai lp c mi quan h kiu kt hp vi nhau nu cc ng t trong tng tc gia cc lp biu hin mt s thay th, i din, s bao hm, s giao tip, s s hu hay yu cu tha mn iu kin no . Quan h gp thng c biu din qua cc ng t nh: c to thnh t, bao gm Hai lp c quan h k tha nu mt lp ny l khi qut ho (tru tng ho) ca lp kia. Hai lp c quan h ph thuc nu hot ng ca lp ny quyt nh lp kia.

Trong h thng qun l th vin, mi quan h gia cc lp Reader v Librarian vi lp Person l mi quan h k tha. Quan h gia cc lp Reader v Book vi lp Borrow_Card l quan h kt hp v ta c th biu din cc mi quan h ny thng qua cc cu nh: mn sch, bn c cn dng th mn, mi th mn c th mn c mt hay nhiu cun sch. Bc 2: Xc nh s lng (multiplicities) trong mi mi quan h Mi mi quan h trong s lp c th c s lng tng ng u mi lp. S lng ny xc nh s th hin c th c ca lp trong mi quan h vi lp kia. Cc kiu biu din s lng (multiplicities) c biu din nh trong Bng 4.2.

92

CHNG 4: PHA THIT K HNG i TNG

Multiplicities 0..1 0..* hoc * 1 1..n

ngha Khng c hoc c 1 th hin. Tng t n . . m s th hin c t n n m th hin. Khng gii hn s th hin ca lp (gm c gi tr 0). C chnh xc 1 th hin C t nht mt th hin

Bng 4.2: Cc kiu biu din s lng trong biu lp

Xem xt s lp phn tch trnh by trong chng 3, trong quan h gia lp Reader v lp Borrow_card, mi bn c c th c mt hoc nhiu th mn hoc cng c th khng c th mn no. Tuy nhin, mt th mn phi tng ng vi mt bn c no . Nh vy, s lng trong quan h ny s l: 1 pha Reader v 1..n pha Borrow_card. 4.3.4 Hon chnh biu lp chi tit y l bc cui cng ca s lp. Trong bc ny, ngi thit k phi thc hin cc cng vic sau: B sung cc lp cn thiu. Trong pha phn tch, chng ta xc nh c cc lp thc th. pha thit k, chng ta cn tip tc xc nh cc lp cn thiu hon chnh s lp. Cc lp cn thiu ny thng thuc mt trong cc dng sau: Cc lp bin: l cc lp lin quan n giao din h thng, thc hin nhn thng tin t ngi dng v gi n cc i tng bn trong h thng. Gi l cc lp bin v cc lp ny phn tch phn bn trong v bn ngoi h thng. Thng thng, mi form nhn thng tin s tr thnh mt lp nhng cng c trng hp nhiu form tng t nhau s c m t trong mt lp. Cc lp trung gian: gia hai lp c quan h mn (nhiu th hin ca lp ny tng ng vi nhiu th hin ca lp kia), ngi ta thng sinh ra thm mt lp trung gian chuyn quan h thnh 2 quan h dng 1..n. Cc lp ny cng c th i din cho mt thc th xc nh trong h thng nhng cng c th khng i din cho mt thc th xc

93

CHNG 4: PHA THIT K HNG i TNG

nh no. Trong trng hp khng i din cho thc th xc nh no, lp trung gian sinh ra ch c tc dng h tr cho qu trnh lp trnh v s c t tn theo mt quy nh chung no m nhm pht trin a ra. Cc lp tru tng: trong mt s trng hp, mt s lp c th c cc thuc tnh chung hoc phng thc chung. Khi , tin cho ci t, ngi thit k c th b sung thm cc lp tru tng, tc l cc lp khng c i tng. Cc lp tru tng khng i din cho mt thc th tham gia trong hot ng ca h thng, do vy, cc lp ny c th c dng c bit: hoc ch c thuc tnh m khng c phng thc, hoc ngc li, ch c phng thc m khng c thuc tnh. Cc lp iu khin: L cc lp ch lm nhim v iu khin hot ng ca h thng ng vi mt chc nng nht nh. Thng thng, mi use case phc tp u phi c mt lp iu khin tng ng. Lp iu khin nhn thng tin t cc lp bin (lp giao din), gi yu cu n cc lp thc th thc thi chc nng m n m nhim ri li tr v kt qu cho cc lp bin.

Hiu chnh m t thuc tnh v phng thc theo ng chun ca ngn ng s s dng trong pha ci t h thng. Kim th tnh ng n ca biu lp. Ngi thit k c th s dng mt s cng c kim tra tnh ng n ca biu lp, hoc tin hnh th sinh khung m theo ngn ng chn kim tra v xc nh li trong biu lp. Tuy nhin, nhng cch ny ch gip tm ra cc li c php. Mun tm c cc li v ng ngha, ngi thit k phi xem xt li tt c cc ti liu ca biu use case, scenario, biu trng thi, biu tng tc v biu ng.

Hnh 4.10 m t mt biu lp chi tit cho h thng qun l th vin. Trong biu ny cha xt n cc lp giao din (lp bin) v cha th hin cc c t y ca cc phng thc v thuc tnh. So vi s lp phn tch, s lp thit k cng b sung thm nhiu thuc tnh mi chi tit ho cc i tng.

94

CHNG 4: PHA THIT K HNG i TNG

Nguoi ten : String diachi : String ngaysinh : Date getTen() setTen() getDiachi() setDiachi() getNgaysinh() setNgaysinh() The muon maThemuon : string maBandoc : String ngayMuon : Date ngayTra_dukien : Date dsMasach ngaytra_Thucte : Date tinhtrangHienthoi : String getThemuon() getBandoc() 1 capnhatThemuon() xoaThemuon() getSachmuontheothang() getSachmuontheoten() getSachmuontheongay() themThemuon() muonSach() traSach()

Thuthu maThuthu : String password : String vaitro : String getVaitro() setVaitro() xacthucThuthu() thaydoiPassword() Sach maSach : string tenSach : string tacGia : string nhaXB : string phienban : string danhmuc : string namXB : int soTrang : int mota : memotext soluong : int ngayTao : Date ngayCapnhat : Date getTensach() getMaSach() timkiem() themSach() capnhatSach() xoaSach() getSachtheomuc() getSachtheongay()

Bandoc maBandoc : string lop : string khoa : string xacthucBandoc() themBandoc() capnhatBandoc() xoaBandoc() getMaBandoc() 1 thaydoiPassword()

1..n

1...

Hnh 4.9: Biu lp chi tit cho bi ton Qun l th vin

Sau khi c s lp nh trn, ngi thit k cn tip tc m rng s lp, b sung cc lp bin v cc lp trung gian cho ph hp vi ngn ng v mi trng lp trnh.

4.3 THIT K CHI TIT


Sau khi hon thnh biu lp, bc thit k chi tit l bc rt gn gi vi lp trnh ci dt h thng. Nhim v ca thit k chi tit l: Xy dng biu hot ng m t chi tit cc phng thc phc tp trong biu lp. Biu ng ny s l c s ngi lp trnh ci t chnh xc phng thc. Xy dng cc bng thit k chi tit. Cng vic ny thng gn lin vi qu trnh lp k hoch v phn cng cng vic trong qu trnh ci t h thng. 95

CHNG 4: PHA THIT K HNG i TNG

Bng thit k chi tit ca cc lp ngoi vic biu din cc thng tin v tn lp, cc thuc tnh v cc phng thc, cc tham s, kiu v gi tr tr v, cn cn ch r ngi chu trch nhim ci t lp (hay modul) v cc thng tin v thi gian yu cu. Hai nhim v ny s c trnh by chi tit trong hai phn tip theo ca ti liu. 4.3.1 Xy dng biu hot ng cho cc phng thc Biu hot ng c th c s dng cho nhiu mc ch khc nhau, v d nh: xc nh cc hnh ng phi thc hin trong phm vi mt phng thc. y l vai tr thng gp nht v quan trng nht ca biu hot ng. xc nh cng vic c th ca mt i tng. ch ra mt nhm hnh ng lin quan c thc hin nh th no v chng s nh hng n nhng i tng nm xung quanh. C th xem biu hot ng l mt loi s khi (Flow chart) miu t thut ton. im khc bit l cc s khi bnh thng ch c p dng i vi cc qu trnh tun t, cn biu hot ng c th x l c cc cc qu trnh song song. Cc phn t m hnh UML cho biu hot ng bao gm: Hot ng (Activity): l mt quy trnh c nh ngha r rng, c th c thc hin bi mt hm hoc mt nhm i tng. Hot ng c th hin bng hnh ch nht bo trn cnh. Thanh ng b ha (Synchronisation bar): chng cho php ta m ra hoc l ng li cc nhnh chy song song ni b trong tin trnh.

Hnh 4.10: Thanh ng b ho trong biu ng

iu kin (Guard Condition): cc biu thc logic c gi tr hoc ng hoc sai. iu kin c th hin trong ngoc vung, v d: [Customer existing]. Cc lung (swimlane): Mi biu ng c th biu din s phi hp hot ng trong nhiu lp khc nhau. Khi mi lp c phn tch bi mt

96

CHNG 4: PHA THIT K HNG i TNG

lung (swimlane) ring bit. Cc lung ny c biu din n gin l cc khc nhau trong biu . Hnh 4.11 m t mt biu hot ng cho phng thc mn sch trong lp Borrow_card. Trong biu ny, ta c th thy c hai thanh ng b ha tng ng vi trng thi ch trong biu trng thi. y, thanh ng b th nht s ch kt qu kim tra cc thng tin ngi dng nhp vo, thanh th hai s ch cc kt qu kim tra lin quan n iu kin c th mn sch.

Yeu cau nhap lai

Nhan thong tin Sach muon

Yeu cau nhap lai

Kiem tra Ban doc Xac nhan dung

Kiem tra thong tin Sach Xac nhan dung

Kiem tra so luon sach Ban doc da muon

Gui yeu cau Muon

Kiem tra so luong Sach con lai

Xac nhan quyen muon sach Xac nhan du sach

Xac nhan cho muon In Phieu muon Het quyen muon sach Khong co hoac khong du sach

Hnh 4.11: Biu hot ng cho phng thc Mn sch lp Th mn

Vn quan trng cn li trong vic xy dng biu hot ng l xc nh phng thc no cn xy dng biu hot ng? Ngi thit k ch cn xy dng biu hot ng cho nhng phng thc phc tp hoc c vai tr quyt

97

CHNG 4: PHA THIT K HNG i TNG

nh ti hot ng ca h thng. Vic nh gi mt phng thc c phc tp hay khng da theo cc tiu ch sau: Phng thc c cn xy dng theo mt thut ton phc tp hay khng? Phng thc c tham chiu ti nhiu phng thc ca cc lp khc trong qu trnh hot ng hay khng v ngc li kt qu ca phng thc c nh hng n nhiu lp khc hay khng. Kt qu ca phng thc c quyt nh mt chc nng (use case) c th no ca h thng hay khng.

4.3.2 Xy dng bng thit k chi tit Bng thit k chi tit c thit k ring cho tng lp. Mi nhm pht trin c th c mt bng thit k vi cu trc ring. Di y l mt mu bng thit k tham kho. Tn lp Ngi thit k Ngi ci t Thi gian Tn thuc tnh Thuoc_tinh_1 Thuoc_tinh_2 Tn phng thc Phuong_thuc_1 Phuong_thuc_2 on khung m cho lp
Bng 4.3: Mu bng thit k chi tit lp

M t

Kiu

Phm vi

M t

Gi tr tr v

Phm vi

98

CHNG 4: PHA THIT K HNG i TNG

4.4 BIU THNH PHN V BIU TRIN KHAI


Sau khi hon thnh biu lp chi tit v thit k chi tit s dng biu hot ng, trong bc ny ngi thit k cn xc nh r m hnh trin khai h thng v tin hnh pht sinh khung m chuyn sang pha ci t. Ni dung bc ny gm cc hot ng sau: Xy dng biu thnh phn Xy dng biu trin khai Pht sinh m cho h thng 4.4.1 Xy dng biu thnh phn M hnh thnh phn c s dng biu din cc thnh phn phn mm cu thnh nn h thng. Mt h phn mm c th c xy dng t u s dng m hnh lp nh trnh by trong cc phn trc ca ti liu, hoc cng c th c to nn t cc thnh phn sn c. Mi thnh phn c th coi nh mt phn mm nh hn, cung cp mt khi dng hp en trong qu trnh xy dng phn mm ln. Ni cch khc, cc thnh phn l cc gi c xy dng cho qu trnh trin khai h thng. Cc thnh phn c th l cc gi mc cao nh JavaBean, cc gi th vin lin kt ng dll, hoc cc phn mm nh c to ra t cc thnh phn nh hn nh cc lp v cc th vin chc nng. Hnh 4.12 ch ra cc thnh phn c mt trong h qun l th vin. H thng cn qun l cc thng tin lin quan n sch v bn c do vy s c hai thnh phn thc hin cc cng vic ny (Qun l sch v Qun l bn c). Cc thnh phn qun l ny s thao tc trn CSDL ca h thng nn chng ta c thnh phn ci t CSDL. Ngoi ra h thng cng cn mt cc thnh phn giao tip vi ngi dng gm Giao din bn c v Giao din th th c ci t ring trn cc my client. Thng thng, biu thnh phn thng kt hp vi biu trin khai tr thnh mt biu vt l chung ca c h thng.

99

CHNG 4: PHA THIT K HNG i TNG

Quan ly sach

Giao dien thu thu

CSDL

Quan ly ban doc

Giao dien ban doc

Hnh 4.12: Cc thnh phn ca h thng qun l th vin

4.4.2 Xy dng biu trin khai Biu trin khai biu din cc nodes v cc mi quan h gia chng. Thng thng, cc nodes c kt ni vi nhau thng qua cc lin kt truyn thng (communication association) nh cc kt ni mng, lin kt TCP-IP, microwave Mi quan h gia cc node trong biu trin khai c biu din thng qua cc lin kt truyn thng v c nh s theo th t thi gian tng t nh trong biu cng tc (collaboration diagram). Ch rng cc message truyn thng truyn i gia cc node c th l cc lung thng tin xc nh hoc cng c th l cc i tng ri rc, v d nh cc file, cc thng tin yu cu Hnh 4.14 biu din biu trin khai cho h qun l th vin. Biu ny cho bit h thng s c ci t trn ba dng my tnh khc nhau: cc my client dnh cho th th s ci t thnh phn giao din th th, qun l sch, qun l bn c; cc my client dnh cho bn c ch ci giao din bn c; CSDL v thnh phn iu khin CSDL c ci trn mt server chung gi l Server.

100

CHNG 4: PHA THIT K HNG i TNG

May Thu thu TCP/IP

Server

TCP/IP

May Ban doc

Hnh 4.13: Biu trin khai cho h qun l th vin

Cc dng lin kt truyn thng c th c trong biu trin khai l: TCP/IP: s dng b giao thc TCP/IP lin kt. Thng thng y l cc ng dng da trn Web. SNA: cng l ng dng da trn Web nhng s dng b giao thc SNA. Microwave: s dng lin kt bng sng v tuyn tn s cao. Hng ngoi: s dng lin kt hng ngoi. Giao thc khng dy: lin kt s dng cc dng giao thc khng dy khc.

Trong v d Hnh 4.13, cc lin kt u c thc hin trn nn giao thc TCP/IP thng qua kt ni mng Internet hoc kt ni mng LAN ni b. Ngoi cc lin kt truyn thng thng thng, gia cc node cn c th c mi quan h dng ph thuc. Mi quan h ph thuc s c biu din bi cc mi tn t nt vi kiu chnh l dng ph thuc gia hai node (hoc hai thnh phn). Kt qu ca biu trin khai kt hp vi biu thnh phn l mt m hnh trin khai h thng y vi cc node, lin kt gia cc node v cc thnh phn bn trong cc node . M hnh ny c gi chung l m hnh vt l (physical model) ca h thng v s l c s ci t, tch hp h thng cng nh trin khai h thng ti ngi s dng.

101

CHNG 4: PHA THIT K HNG i TNG

4.4.3 Biu din biu thnh phn v biu trin khai trong Rational Rose Biu thnh phn c xy dng trong Component View biu din cc thnh phn trong h thng. Cc bc xy dng biu thnh phn trong Rational Rose: B1. Thm cc thnh phn: la chn cng c thnh phn trong hp cng c v ko vo biu . B2. c t cc thnh phn (thng thng ch m t tn) B3. Biu din cc quan h gia cc thnh phn (nu c). B4. B sung cc thnh phn con (nu c) Mt biu thnh phn v d v ca s c t thnh phn c biu din nh trong Hnh 4.14.

Hnh 4.14: Xy dng biu thnh phn

102

CHNG 4: PHA THIT K HNG i TNG

Biu trin khai c xy dng trong Deployment View. Cc cng c chnh xy dng mt biu trin khai trong Rational Rose l cc Processcor, Device v cc Connection. Cc bc xy dng biu trin khai trong Rational Rose: B1. Thm cc Processor: la chn cng c processor trong hp cng c v ko vo biu . B2. Thm cc Device: la chn cng c Device trong hp cng c v ko vo biu . B3. Biu din cc quan h: la chn cng c protocol v ko gia cc processor hay device tng ng. Hnh 4.15 biu din mt s trin khai n gin trong c ba Processor i din cho cc my tnh c ci t h dch v th vin. Cc thnh phn ca server s c ci t trong Library Server, phn giao din vi bn c s ci t trong Student PC cn giao din vi cc th th s ci t trong Librarian PC.

Hnh 4.15: Xy dng biu trin khai

103

CHNG 4: PHA THIT K HNG i TNG

TNG KT CHNG 4
Chng 4 trnh by cc bc trong pha thit k hng i tng. Cc ni dung cn nm vng gm: Pha thit k hng i tng gm 4 bc: xy dng biu tng tc, xy dng biu lp chi tit, thit k chi tit v xy dng biu thnh phn v biu trin khai. Trong bc xy dng biu tng tc, ngi thit k biu din li cc use case ng vi cc i tng ca cc lp xc nh trong pha phn tch. C hai dng biu tng tc l: biu tun t (nhn mnh n th t thi gian cc message) v biu cng tc (nhn mnh n vai tr ca cc i tng trong tng tc). Bc xy dng biu lp chi tit thc hin b sung cc lp thit k (l bin, lp trung gian, lp iu khin ); xc nh v m t chi tit cc phng thc; v biu din cc quan h gia cc lp. Kt qu ca bc ny l mt biu lp thit k hon chnh. Bc thit k chi tit tin hnh xy dng biu hot ng biu din cc phng thc phc tp hoc cc hot ng phi hp nhiu i tng thuc nhiu lp khc nhau. Tip theo, bc thit k chi tit cng xy dng bng thit k chi tit phn cng trch nhim cho cc thnh vin trong nhm pht trin. Bc xy dng biu trin khai h thng tin hnh xc nh cc thnh phn, cc giao thc mng; quan tm n ngn ng lp trnh v mi trng ng dng xc nh m hnh kin trc trin khai h thng. Ti liu cng a ra nhng gi , hng dn v cc ch cho tng bc trong thit k hng i tng.

CU HI BI TP
A. CU HI 1. Phn bit s khc nhau gia biu trng thi cho mt use case v biu trng thi h thng 2. Biu tng tc dng lm g.

104

CHNG 4: PHA THIT K HNG i TNG

3. Phn bit hai kiu biu tng tc: biu tun t v biu cng tc 4. Mt lin kt trong biu cng tc biu din ci g 5. Biu hot ng dng lm g 6. Mt hot ng trong biu hot ng m t ci g 7. Mt chuyn tip trong biu hot ng biu din ci g. 8. Phn bit cc kiu lp: lp thc th, lp bin, lp iu khin, lp tru tng. B. BI TP 1. Cc biu tng tc c xy dng ch yu da trn ngun no sau y: A. Biu trng thi B. Cc biu use case C. Biu lp D. Biu hot ng 2. xem xt hot ng ca h thng c s phi hp ca cc i tng hoc trong vng i ca mt i tng, ta c th dng cc biu no sau y (Chn 2) A. Biu lp B. Biu use case C. Biu trng thi D. Biu hot ng 3. m t cc thnh phn (hoc cc i tng) ca h thng c t u trong mi trng vt l, chng ta dng biu no sau y: A. Biu hot ng B. Biu trng thi C. Biu thnh phn D. Biu trin khai 4. Biu tun t (sequence diagram) no sau y l khng ph hp nu n nm trong cng m hnh vi biu hat ng cho. Gii thch.

105

CHNG 4: PHA THIT K HNG i TNG

5. Cho biu gi nh hnh v. Cc hm trong lp Dog mun tham chiu n lp Shark th dng k php no sau y:

106

CHNG 4: PHA THIT K HNG i TNG

A. B. C. D. 6.

animals::fish::Shark fish::Shark animals::Shark Khng tham chiu c n lp Shark

a) S dng ngn ng C++ biu din lp Ngi c cc thng tin sau: tn, tui, gii, chiu cao, cn nng. Ci t phng thc to cho lp Ngi v hai hm gn Tn v gn Tui. b) Ci t tip lp Nhn vin c quan h k tha t lp Ngi, thm thuc tnh lng. Hm khi to ca lp Nhn vin s dng li hm khi to ca lp Ngi v gn lng mc nh bng 0. 7. Gi s c lp Ngi nh trong Bi 6. Hy ci t lin kt 1-1 gia ngi vi Ngi l quan h V-Chng s dng ngn ng C++ (b sung hai hm getVoChong() v setVoChong). 8. M rng lp Ngi trong Bi 6 ci t lin kt 1-1 v 1-nhiu gia Ngi vi Ngi xc nh Cha, M hay Con ca ngi (mt ngi c mt Cha, mt M nhng c th c nhiu con) s dng ngn ng C++. 9. B sung thm h thng trong Bi 6 hai lp Tay v Chn. Hy s dng ngn ng C++ ci t quan h gp (composition) gia lp Ngi v hai lp Tay, Chn.

107

PH LC: PHN TCH THIT K H THNG TH VIN IN T

PH LC PHN TCH THIT K H THNG TH VIN IN T


H thng qun l th vin c gii thiu v s dng lm cc v d trong chng 3 v 4 ca ti liu. Trong phn ph lc ny, ti liu s trnh by chi tit cc vn lin quan n h thng, xc nh y yu cu h thng v cc biu UML trong qu trnh phn tch thit k h thng. Trong pha thit k, sau pha xy dng biu lp thit k , h thng s c thit k theo tng chc nng (cc use case) trong mi chc nng c thit k gm cc thnh phn: giao din ca chc nng , lp iu khin v lp thc th. .

1. GII THIU H THNG


1.1 Hot ng nghip v th vin Theo nghip v qun l th vin thng thng, hot ng th vin ca mt trng i hc c th c tm tt nh sau: Th vin lm cc phch sch gm cc thng tin: m s sch, tn tc gi, tn sch, nh xut bn, nm xut bn, s trang, tm tt ni dung, s bn. Cc phch sch c th c phn theo chuyn ngnh hoc loi ti liu. Mi sinh vin c cp mt th th vin gm cc thng tin: tn, tui, a ch, lp, chuyn ngnh. Sinh vin mun mn sch th tra cu phch sch ri ghi vo phiu mn. V d mt phiu mn c th c dng nh sau: S phiu mn: S th TV: Ngy mn: S hiu sch Ngy tr: Thuc n v: Ngy hn tr: Tn sch: Tnh trng:

108

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Sau khi kim tra y thng tin trn phiu mn, th th kim tra iu kin mn ca sinh vin v xc nhn cho php mn sch. Mt s thng tin trong phiu mn c lu li qun l, phiu mn s c gi vao ch sch c ly i, sch c giao cho sinh vin. Khi sinh vin tr sch: T th sinh vin, xc inh phiu mn, vic tr sch c ghi nhn vo dng ngy tr v tnh trng. Phiu mn c lu li qun l v theo di. Sinh vin tr mun hn ngy hn tr s b pht

1.2 Yu cu h thng H thng qun l th vin c xy dng nhm mc ch gii quyt cc yu cu sau: 1. Gip sinh vin tra cu sch theo chuyn ngnh, theo ch , theo tn sch, theo tn tc gi, trn cc my tnh trm. 2. Cung cp cho th th cc thng tin v cc u sch mt sinh vin ang mn v hn phi tr; v cc cun sch cn ang c mn. 3. Thng k hng thng s sch cho mn theo cc ch , tc gi Thng k cc u sch khng c ngi mn trn 1 nm, 2 nm, 3 nm. 4. H tr th th cp nht thng tin sch, xc nhn cho mn sch v nhn li sch khi sinh vin tr sch. 5. H tr qun l cc thng tin v sinh vin da trn th th vin, thng tin th mn. 6. H tr chc nng qun tr chung h thng (admin) trong ngi qun tr chung c th thay i thng tin hoc thm bt cc th th. Cc yu cu phi chc nng: 1. H thng trin khai theo dng Website trn h thng mng ni b ca trng 2. Sinh vin c th tra cu thng tin sch trn mi trng mng. Tuy nhin vic mn v tr sch phi thc hin trc tip trn Th vin. Th th s dng h thng cp nht v qun l qu trinh mn tr sch. 3. Thng tin thng k phi m bo tnh chnh xc, khch quan. Cc hnh thc pht vi cc sinh vin qu hn s c lu li v thng bo cho sinh vin bit. 109

PH LC: PHN TCH THIT K H THNG TH VIN IN T

2 PHA PHN TCH


21 Xy dng biu use case a) Biu use case tng qut Da trn cc yu cu nh trn, biu use case tng qut ca h thng s m rng t biu use case trnh by trong Chng 3. Biu ny c biu din trong Hnh P.1.
He_Thong TVDT

Thu thu

DangNhap

Cap nhat

<<include>> <<include>>

Quan ly muon-tra sach

Timkiem
<<include>>

Ban doc

Thong ke

Hnh P.1: Biu use case tng qut ca h thng

b) Phn r biu use case Phn r use case Cp nht Qu trnh phn r use case Cp nht hon ton tng t nh trnh by trong chng 3 ca ti liu.

110

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Hnh P.2: Phn r use case cp nht

111

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Phn r use case Qun l mn tr sch Use case qun l mn tr sch c thc hin bi th th v c th c phn r thnh hai use case nh l Qun l mn v Qun l tr (Hnh P.3).

Quan ly muon <<extend>>

Quan ly muon-tra sach


(from Use Case View)

<<extend>>

Quan ly tra

Hnh P.3: Phn r use case Qun l mn tr sch

Phn r use case Thng k Use case thng k c th c phn r thnh hai use case nh hn l: Thng k thng tin bn c: cho bit danh sch cc bn c ang mn sch, cc bn c qu hn. Thng k thng tin sch mn: cho bit danh mc cc cun sch ang c mn, cc cun sch lu ngy khng c ai mn

<<extend>>

Thong ke thong tin ban doc

Thong ke
(from Use Case View)

<<extend>>

Thong ke thong tin sach muon

Hnh P.3: Phn r use case Thng k

112

PH LC: PHN TCH THIT K H THNG TH VIN IN T

2.2 Xy dng biu lp phn tch Biu lp phn tch c xy dng hon ton tng t nh trnh by trong chng 3 ca ti liu ny.
Nguoi ten : String diachi : String ngaysinh : Date getTen() setTen() getDiachi() setDiachi() getNgaysinh() setNgaysinh()

Thuthu maThuthu : String password : String vaitro : String getVaitro() setVaitro()

Bandoc maBandoc : string lop : string khoa : string


1 1...

Sach
Themuon maThemuon : string maBandoc : String ngayMuon : Date ngayTra_dukien : Date dsMasach 1 ngaytra_Thucte : Date tinhtrangHienthoi : String getThemuon() getBandoc()

1..n

maSach : string tenSach : string tacGia : string nhaXB : string phienban : string danhmuc : string namXB : int soTrang : int mota : memotext soluong : int ngayTao : Date ngayCapnhat : Date getTensach() getMaSach()

Hnh P.4: Biu lp phn tch ca h thng

2.3 Biu trng thi Phn ny trnh by hai biu trng thi cho lp Th mn (tng ng vi hai chc nng mn sch v tr sch).

113

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Hnh P.5: Biu trng thi lp Th mn - chc nng mn sch

Hnh P.6: Biu trng thi lp Th mn - chc nng tr sch

3. PHA THIT K
Trong phn ny, ti liu s trnh by cc biu UML c xy dng trong pha thit k h thng Qun l th vin. Sau khi xy dng cc biu tng tc (dng tun t), pha thit k s a ra biu lp thit k. Tuy nhin trong biu lp ny cha b sung cc lp giao din v iu khin. Phn 3.3 s trnh by thit k

114

PH LC: PHN TCH THIT K H THNG TH VIN IN T

chi tit theo tng chc nng trong mi chc nng c mt (hoc nhiu) lp giao din v mt (hoc nhiu) lp iu khin cng vi cc lp thc th tng ng. 3.1 Cc biu tun t Trong h thng qun l th vin, chng ta la chn biu tng tc dng tun t biu din cc tng tc gia cc i tng. xc nh r cc thnh phn cn b sung trong biu lp, trong mi biu tun t ca h thng qun l th vin s thc hin: Xc nh r kiu ca i tng tham gia trong tng tc (v d giao din, iu khin hay thc th). Mi biu tun t c th c t nht mt lp giao din (Form) tng ng vi chc nng (use case) m biu m t Mi biu tun t c th lin quan n mt hoc nhiu i tng thc th. Cc i tng thc th chnh l cc i tng ca cc lp c xy dng trong biu thit k chi tit.

Di y l mt s biu tun t cho cc chc nng ca h thng: a) Biu tun t cho chc nng ng nhp

115

PH LC: PHN TCH THIT K H THNG TH VIN IN T

: Thu thu

: Form DangNhap

: DK_Dangnhap

: Thuthu

Nhap Username va Password Kiem tra User Kiem tra

Xac thuc thanh cong Xac thuc thanh cong Thong bao dang nhap thanh cong

Chon thay doi Password

Hien chuc nang doi Password

Nhap va xac nhan Password moi


Thay doi Password Thay doi Password

Xac nhan thay doi thanh cong Xac nhan thay doi thanh cong Thong bao thay doi thanh cong

Hnh P.7: Biu tun t cho chc nng ng nhp

b) Biu tun t cho chc nng Tm kim

116

PH LC: PHN TCH THIT K H THNG TH VIN IN T

: Ban doc

: Form TimKiem

: DK_Tim kiem

: Sach

: Form KQTim kiem

Chon chuc nang Tim kiem

Hien danh muc chuc nang Tim kiem

Nhap dieu kien Tim kiem

Yeu cau tim kiem


Xu ly tu khoa Tim kiem

Tao cau truy van SQL


Thuc hien Tim kiem
Tra ve Ket qua Tim kiem
Thong bao ket qua Hien thi ket qua tim kiem
Hien thi ket qua Tim kiem

Hnh P.8: Biu tun t cho chc nng Tm kim

c) Biu tun t cho chc nng Qun l mn sch

117

PH LC: PHN TCH THIT K H THNG TH VIN IN T

: Ban doc

: Thu thu

: FormMuonSach

: DK_MuonSach

: Bandoc

: Sach

: TheMuon

Gui thong tin y eu cau muon Mo f orm Muon sach

Nhap thong tin muon sach v a Ban doc Xac thuc ban doc Xac thuc ban doc Xac thuc thanh cong Xac thuc thong tin sach Xac thuc thong tin sach

Xac nhan con sach trong Thu v ien

Xac nhan con sach trong thu v ien

Tao the muon moi

Tao the muon moi Hien thi the muon Tra the muon Tra the muon v a sach

Hnh P.9: Biu tun t cho chc nng Qun l mn sch

d) Biu tun t cho chc nng Qun l tr sch

118

PH LC: PHN TCH THIT K H THNG TH VIN IN T

: FormTraSach

: DK_MuonSach

: Bandoc

: TheMuon

Gui thong tin the muon


Nhap thong tin Yeu cau xac nhan thong tin
Xac nhan ban doc
Xac nhan thanh cong

Xac nhan thong tin Sach trong the muon Xac nhan dung

Xac nhan dung


Xac nhan dung

Yeu cau tra sach

Xac nhan da tra sach


Cap nhat thong tin the (da tra)

Hnh P.10: Biu tun t cho chc nng Qun l tr sch

e) Biu tun t cho chc nng Thng k thng tin sch

119

PH LC: PHN TCH THIT K H THNG TH VIN IN T

: Thu thu

: FormThongkeSach
Chon thong ke s...

: DK_ThongkeSach

: FormKQThongkeSach

: TheMuon

: Sach

Hien thi danh muc chuc nang thong ke s...

Chon thong ke sach theo th...

Yeu cau thong ke sach muon theo th...


Truy v an thong tin sach muon theo th...

Hien thi danh muc sach muon theo th...

Thong bao ket ...

Chon thong ke sach muon theo Nhom s...


Yeu cau thong ke sach muon theo N...
Truy v an thong tin sach muon theo n...

Yeu cau hien thi danh muc theo ten s...

Hien thi danh s...

Thong bao ket ...

Hnh P.11: Biu tun t cho chc nng Thng k thng tin sch

f) Biu tun t cho chc nng Thng k thng tin bn c

120

PH LC: PHN TCH THIT K H THNG TH VIN IN T

: Form ThongkeBandoc
Chon chuc nang Thong ke ban doc

: DK_ThongkeBandoc

: TheMuon

Hien thi Form Thong ke Ban doc

Chon thong ke danh sach ban doc


Yeu cau dua ra danh sach ban doc Truy van danh sach ban doc

Tra ket qua Danh sach Ban doc


Hien thi danh sach ban doc

Hien thi Danh sach ban doc

Chon thong ke Ban doc qua han Yeu cau thong tin ban doc qua han Truy van thong tin ban doc qua han
Tra danh sach an doc qua han Tra danh sach ban doc qua han

Thong bao ket qua

Hnh P.12: Biu tun t cho chc nng Thng k thng tin bn c

3.2 Biu lp chi tit Da trn biu lp trong pha phn tch v cc biu trng thi, biu tun t, biu lp thit k c xy dng nh trong Hnh P.13. Biu lp thit k b sung nhiu thuc tnh v phng thc so vi biu lp phn tch.

121

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Nguoi ten : String diachi : String ngaysinh : Date getTen() setTen() getDiachi() setDiachi() getNgaysinh() setNgaysinh() The muon maThemuon : string maBandoc : String ngayMuon : Date ngayTra_dukien : Date dsMasach ngaytra_Thucte : Date tinhtrangHienthoi : String getThemuon() getBandoc() 1 capnhatThemuon() xoaThemuon() getSachmuontheothang() getSachmuontheoten() getSachmuontheongay() themThemuon() muonSach() traSach()

Thuthu maThuthu : String password : String vaitro : String getVaitro() setVaitro() xacthucThuthu() thaydoiPassword() Sach maSach : string tenSach : string tacGia : string nhaXB : string phienban : string danhmuc : string namXB : int soTrang : int mota : memotext soluong : int ngayTao : Date ngayCapnhat : Date getTensach() getMaSach() timkiem() themSach() capnhatSach() xoaSach() getSachtheomuc() getSachtheongay()

Bandoc maBandoc : string lop : string khoa : string xacthucBandoc() themBandoc() capnhatBandoc() xoaBandoc() getMaBandoc() 1 thaydoiPassword()

1..n

1...

Hnh P.13: Biu lp thit k

3.3 Thit k ring tng chc nng Vi mi chc nng, pha thit k s xc nh: Cc lp giao din tng ng Lp iu khin Lp thc th Cc mi quan h gia cc lp trn trong chc nng

a) Chc nng ng nhp

122

PH LC: PHN TCH THIT K H THNG TH VIN IN T

DK_Dangnhap
(f rom Dieu khien)

Thuthu
(f rom Thuc the)

maLoi : int xacthuThuthu() getMessageLoi() getMaLoi() thaydoiPassword()

maThuthu : String password : String vaitro : Integer xacthucThuthu() thaydoiPassword() getVaitro()

FormDangnhap
(f rom Giao dien)

dangnhap() thaydoiPassword()

Hnh P.14: Thit k lp cho chc nng ng nhp

b) Chc nng Tm kim


DK_Timkiem
(f rom Dieu khien)

Sach
(f rom Thuc the)

FormTimkiemSach
(f rom Giao dien)

dsTieuchiTK dsThuoctinhTK dsThaotac dsKQTimkiem dinhdangSQL() xulyTukhoa() getKQTimkiem() timSach() setTieuchiTK()

timkiem() hienthiKQTimkiem()

maSach : Long tenSach : String tacGia : String nhaXB : String phienban : String danhmuc : String namXB : Date soTrang : Integer mota : Text ngayTao : Date ngayCapnhat : Date soluong : Integer getMaSach() getTensach() timkiem() themSach() getSach() getSachtheomuc() getSachtheongay() capnhatSach() xoaSach()

<<forward>>

FormKQTimkiem
(f rom Giao dien)

hienthiSach() henthiKQChitiet() sapxep()

Hnh P.15: Thit k lp cho chc nng Tm kim

123

PH LC: PHN TCH THIT K H THNG TH VIN IN T

c) Chc nng Qun l mn sch

Sach
(from Thuc the)

DK_Timkiem
(from Dieu khien)

dsTieuchiTK dsThuoctinhTK dsThaotac dsKQTimkiem dinhdangSQL() xuly Tukhoa() getKQTimkiem() timSach() setTieuchiTK()

maSach : Long tenSach : String tacGia : String nhaXB : String phienban : String danhmuc : String namXB : Date soTrang : Integer mota : Text ngay Tao : Date ngay Capnhat : Date soluong : Integer getMaSach() getTensach() timkiem() themSach() getSach() getSachtheomuc() getSachtheongay () capnhatSach() xoaSach()
Themuon
(from Thuc the)

FormMuonsach
(from Giao dien)

muonSach() xemThemuon() inThemuon()

Bandoc
(from Thuc the)

DK_MuonSach
(from Dieu khien)

maBandoc : String lop : String khoa : String xacthucBandoc() themBandoc() xoaBandoc() capnhatBandoc() getMaBandoc() thay doiPassword()

dsSachmuon maBandoc taoThemuon() xacthucBandoc() xacthucSach() getThemuon() do_Muonsach() setDS_Sachmuon() setMaBandoc()

maThemuon : Long maBandoc : String ngay Muon : Date ngay tra_Dukien : Date dsMasach_muon ngay tra_Thucte : Date tinhtrangHienthoi : String capnhatThemuon() xoaThemuon() getThemuon() getBandoc() getSachmuontheothang() getSachmuontheoten() getSachmuontheongay () themThemuon()

Hnh P.16: Thit k lp cho chc nng Qun l mn sch

d) Chc nng Qun l tr sch

124

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Themuon
(f rom Thuc the)

DK_MuonSach
(f rom Dieu khien)

dsSachmuon maBandoc taoThemuon() xacthucBandoc() xacthucSach() getThemuon() do_Muonsach() setDS_Sachmuon() setMaBandoc()

maThemuon : Long maBandoc : String ngayMuon : Date ngaytra_Dukien : Date dsMasach_muon ngaytra_Thucte : Date tinhtrangHienthoi : String capnhatThemuon() xoaThemuon() getThemuon() getBandoc() getSachmuontheothang() getSachmuontheoten() getSachmuontheongay() themThemuon()

FormTrasach
(f rom Giao dien)

Bandoc
(f rom Thuc the)

traSach() huyThemuon()

maBandoc : String lop : String khoa : String xacthucBandoc() themBandoc() xoaBandoc() capnhatBandoc() getMaBandoc() thaydoiPassword()

Hnh P.17: Thit k lp cho chc nng Qun l tr sch

e) Chc nng Thng k thng tin sch

125

PH LC: PHN TCH THIT K H THNG TH VIN IN T

DK_ThongkeSach
(f rom Dieu khien)

FormThongkeSach <<forward>>
(f rom Giao dien)

getSachmuontheoThang() getSachmuontheoChude() getSachmuontheoTG() getSachmuontheongay()

getDSSachmuon() Sach
(f rom Thuc the)

FormKQThongkeSach
(f rom Giao dien)

maSach : Long tenSach : String tacGia : String nhaXB : String phienban : String danhmuc : String namXB : Date soTrang : Integer mota : Text ngayTao : Date ngayCapnhat : Date soluong : Integer getMaSach() getTensach() timkiem() themSach() getSach() getSachtheomuc() getSachtheongay() capnhatSach() xoaSach()

Themuon
(f rom Thuc the)

maThemuon : Long maBandoc : String ngayMuon : Date ngaytra_Dukien : Date dsMasach_muon ngaytra_Thucte : Date tinhtrangHienthoi : String capnhatThemuon() xoaThemuon() getThemuon() getBandoc() getSachmuontheothang() getSachmuontheoten() getSachmuontheongay() themThemuon()

Hnh P.18: Thit k lp cho chc nng Thng k thng tin sch

3.4 Biu hot ng V a s cc chc nng (cc hm) thit k u tng i r rng nn h thng qun l th vin khng cn xy dng nhiu biu hot ng. Phn ny ch trnh by v d mt biu hot ng n gin ca chc nng mn sch (trong lp Th mn).

126

PH LC: PHN TCH THIT K H THNG TH VIN IN T

Yeu cau nhap lai

Nhan thong tin Sach muon

Yeu cau nhap lai

Kiem tra Ban doc Xac nhan dung

Kiem tra thong tin Sach Xac nhan dung

Kiem tra so luon sach Ban doc da muon

Gui yeu cau Muon

Kiem tra so luong Sach con lai

Xac nhan quyen muon sach Xac nhan du sach

Xac nhan cho muon In Phieu muon Het quyen muon sach Khong co hoac khong du sach

Hnh P.19: Biu hot ng ca chc nng mn sch

3.5 Biu trin khai h thng H thng c trin khai di dng Website v ci t khc nhau trn cc my Client cho th th v cho sinh vin. Biu trin khai h thng c m t n gin nh di y:

127

PH LC: PHN TCH THIT K H THNG TH VIN IN T

May Thu thu TCP/IP

Server

TCP/IP

May Ban doc

Hnh P.20: Biu trin khai h thng

128

GI TR LI CC BI TP

GI TR LI CC BI TP
CHNG 3 Bi 1. B Bi 2. Quan h cng hp (Composition) v Address l mt thnh phn ca lp Employee. Bi 3. Quan h ph thuc. Bi 4. b a->e->b a->d Bi 5. D Bi 6. C Bi 7. A CHNG 4 Bi 1. B Bi 2. C, D Bi 3. D Bi 4. B (V hm print() khng phi l phng thc ca i tng b) Bi 5. A Bi 6. class Nguoi{ private: char ten[40]; char gioi; int tuoi, chieucao, cannang; void setTen(char *s) {strcpy(ten,s);} void setTuoi(int a){tuoi=a;} void setGioi(char s){gioi=s;}

129

GI TR LI CC BI TP

public: Nguoi(char *ten, char s, int a ){ setTen(ten); setTuoi(a); setGioi(s); } ~Nguoi(){} }; class Nhanvien: public Nguoi{ private: int luong; public: Nhanvien(char *n, char s, int a, int l=0):Nguoi(n.s,a){ luong =l; } } Bi 7. class Nguoi{ private: char ten[40]; char gioi; int tuoi, chieucao, cannang; Nguoi* vochong; void setTen(char *s) {strcpy(ten,s);} void setTuoi(int a){tuoi=a;} void setGioi(char s){gioi=s;} public: Nguoi(char *ten, char s, int a ){ setTen(ten); setTuoi(a); setGioi(s); } ~Nguoi(){}; 130

GI TR LI CC BI TP

Nguoi* getVochong(){return vochong;} void setVochong(Nguoi *p){vochong = p; return;} }; Bi 8. class Nguoi{ private: char ten[40]; char gioi; int tuoi, chieucao, cannang; void setTen(char *s) {strcpy(ten,s);} void setTuoi(int a){tuoi=a;} void setGioi(char s){gioi=s;} Nguoi* Cha; Nguoi* Me; Nguoi* Con[]; void setCha(Nguoi* p){Cha = p; return;} void setMe(Nguoi* p){Me = p; return;} public: Nguoi(char *ten, char s, int a ){ setTen(ten); setTuoi(a); setGioi(s); } ~Nguoi(){}; Nguoi* getCha(){return Cha;} Nguoi* getMe(){return Me} Nguoi* c[] getCon(){return Con} }; Bi 9. class Tay{ 131

GI TR LI CC BI TP

.. }; class Chan{ } class Nguoi{ private: char ten[40]; char gioi; int tuoi, chieucao, cannang; Tay taytrai; Tay tayphai; Chan chantrai; Chan chanphai; void setTen(char *s) {strcpy(ten,s);} void setTuoi(int a){tuoi=a;} void setGioi(char s){gioi=s;} public: Nguoi(char *ten, char s, int a ){ setTen(ten); setTuoi(a); setGioi(s); } ~Nguoi(){} };

132

TI LIU THAM KHO

TI LIU THAM KHO


[1] Nguyn Vn Ba, Pht trin h thng hng i tng vi UML 2.0 v C++, Nh xut bn i hc Quc gia H Ni, 2005. [2] Dng Anh c, Bi ging Phn tch thit k hng i tng s dng UML, i hc KHTN - i hc Quc gia TP. HCM, 9-2000. [3] ng Vn c, Phn tch thit k hng i tng bng UML, Nh xut bn Gio dc 2001. [4] M. Fowler and K. Scott, UML Distilled Second Edition A Brief Guide to the Standard Object Modelling Langguage, Addison Wesley Book, August 18, 1999. [5] L. Mathiassen, A. Munk-Madsen, P.A. Nielsen, J. Stage, ObjectOriented Analysis&Design (OOA&D) Concept, Principles & Methodology, 2004. [6] R. LeMaster, D. Lebrknight, Object-Oriented Programming & Design, CSCI 4448, University of Colorado, 2002. [7] J. Jumbaugh, I. Jacobson, G. Booch, The Unified Modelling Language Reference Manual, 1999. [8] G. Sparks, An Introduction to modelling software systems using the Unified Modelling Language, http://www.sparxsystems.com.au/, 2000. [9] S. Sendall and A. Strhomeier, Requirements Analysis with Use Case, 2001 [10] Sun Microsystems, Object-Oriented Application Analysis and Design for Java Technology (UML) Student Guide, Revision B, March 2000. [11] The OMG Object Management Group, OMG Unified Modeling Language Specification Version 1.5, March 2003 [12] UML Notion Guide, online at http://etna.int-evry.fr/COURS/UML/notation/index.html.

133

PHN TCH THIT K H THNG THNG TIN


M s: 412PTH440
Chu trch nhim bn tho TRUNG TM O TO BU CHNH VIN THNG 1

You might also like