You are on page 1of 126

Ti liu tham kho h tr mn hc

Cng ngh phn mm

H ni, 2009

Chng 1. Tng quan v cng ngh phn mm


1.1. i iu v vn thut ng

Theo ting Anh th cng ngh l technology, cn phn mm l software. Nh vy cng ngh phn mm phi chng theo ting Anh l software technology? Tuy nhin thc t li khng phi vy. Trong ting Anh khng c thut ng software technology trong cc t in tin hc hay bch khoa ton th, m ch c thut ng software engineering. T engineering c ngha l k ngh. Cng chnh v vy m trong mt s ti liu c mt s tc gi dng thut ng k ngh phn mm. Vit nam ngi ta quen dng t "cng ngh" hn. Do phn ln cc trng vn gi mn hc software engineering l cng ngh phn mm. y chng ti cng dng thut ng ny trn tinh thn nh vy. Ngy nay kho kin thc ca loi ngi ngy cng c m rng, nhiu ngnh khoa hc p dng cc thnh tu ca nhau v do ranh gii gia chng khng cn r rng nh trc y. Vic nh ngha chnh xc cc khi nim cng tr nn kh khn v kh nht qun. Cng mt khi nim, cng mt thut ng nhng trong mt hon cnh nht nh li c hiu khc i. Ly v d ngay trong lnh vc tin hc: thut ng "h thng" (system) c khi c hiu l mt tp hp cc chng trnh gii quyt mt vn no , v d operating system hay management information system; nhng c khi bao hm c cc chng trnh v thit b phn cng, v d computer system hay the flight control system... Chnh Stephen R. Schach, tc gi cun "Object-Oriented and Classical Software Engineering" cng phi tht ln rng, tc gi qu mt khi phi nh vt vi ci xay gi (tc gi m ch vic s dng thut ng) v mong cc bn c thng cm. Trong bi cnh , cc nh ngha chng ti nu ra sau y ch nhm mc ch cung cp cho cc bn mt s hnh dung v cc khi nim. Nh vy cc bn ch cn hiu, v c th din t li theo cch suy ngh ca mnh, ch khng cn hc thuc tng ch cc khi nim ny. C mt s khi nim cc bn c th cha hiu ngay khi c ln u. Trong trng hp ny cc bn c tm chp nhn ri tm hiu sau.
1.2. Cc nh ngha v thut ng

1.2.1. Mt s khi nim chung Khoa hc (science) l h thng cc tri thc do con ngi khm ph ra. Khoa hc tp trung vo vic tm hiu v rt ra cc quy lut thc t (ca t nhin v ca con ngi). Cc quy lut ny thng c pht biu di dng cc nh l, cc mnh , cc cng thc ton hc, cc bi vit...v d nh lut vn vt hp dn, nh l Pitagor, quy lut gi tr thng d...Khoa hc c chia thnh cc nghnh nh ton hc, ha hc, sinh hc, vn hc, lch s, ... K thut (technique) l ch ra mt cch thc tin hnh mt cng vic c th no . Cch lm ny thng c p dng kin thc khoa hc v c h thng thnh cc bc sao cho nhng ngi khc cng c th hc v lm theo. V d k thut hn, k thut tn trang xe my. Trong tin hc ta ni n k thut phn mm bao gm k thut vit h iu hnh, k thut lm chng trnh iu khin. Ta cng hay ni k thut lp trnh tc l cch thc vit chng trnh sao cho ti u theo mt ngha no . Cng ngh (technology) ni ti cch thc hay phng php lm mt vic g , c th hoc tru tng, c p dng cc thnh tu ca khoa hc v c thc hin mt cch c bi bn, h thng. Ta thng ni cng ngh sinh

Chng 1. Tng quan v cng ngh phn mm

hc, cng ngh jen, hay cng ngh gio dc... Nh th, cng ngh c th c hiu l khi nim rng hn khi nim k thut. K thut ni ti cch thc hin chi tit, cn cng ngh th nhn mnh tnh h thng, bi bn. K ngh (engineering) l vic s dng phi hp cc cng ngh cn thit to ra cc sn phm. Cng nghip (industry) l khi nim bao trm c mt nghnh ln, trong bn cnh yu t k ngh cn c thm cc yu t khc nh kinh t, ti chnh, t chc x hi. Cu sau y cho chng ta cch hnh dung v mi lin quan ca cc khi nim va ni (tr khi nim khoa hc): Trong ngnh cng nghip xe hi, k ngh xe hi cn n cc k thut c hn... ca cng ngh c kh, k thut lm lp xe ca cng ngh cao... 1.2.2. Mt s khi nim lin quan n cng ngh phn mm Phn cng (hardware) l cc thit b cu kin mang tnh vt l c th tip xc bng tay c nh my in, a, my qut, cc mch tch hp (IC). Ngha n gin nht ca phn mm (software) l cc chng trnh cha cc dng lnh ch th cho my tnh thc hin mt cng vic no . Tuy nhin thng ngi ta hiu phn mm l mt tp hp cc chng trnh v c d liu phc v cho mt cng vic c tin hc ha no . V d phn mm qun l cc dch v bay, phn mm iu khin l phn ng ht nhn, phn mm iu khin dch v mobile phone...i khi ngi ta gi phn mm l chng trnh, cho d thc t th phn mm gm nhiu chng trnh v d liu. V d: chng trnh qun l nhn s, chng trnh qun l tn dng... Trong cng ngh phn mm, ngi ta hiu phn mm khng ch l cc chng trnh, d liu, m cn gm c cc ti liu lin quan nh cc bn c t, thit k, hng dn s dng. Chng trnh (program): i khi ngi ta gi phn mm l chng trnh. Hay chnh xc hn, ngi ta thng gi phn c ci t trn my tnh chy l chng trnh. Vi cch hiu nh vy th phn mm = chng trnh + ti liu. Tuy nhin, trong thc t c khi ngi ta ng nht hai khi nim ny. V d ngi ta ni rng "phn mm c ci t trn my tnh khch hng". K ngh phn mm (software engineering) l cch lm phn mm tun theo nhng nguyn tc tng t nh cc nguyn tc ca k ngh truyn thng (v d k ngh xy dng cu, k ngh lm ng,...) Nh chng ti ni ti trn, do thi quen, chng ta dng t cng ngh phn mm thay cho t c dch ng ngha hn l k ngh phn mm. Vng i phn mm (software life-cycle) l cc bc m mt phn mm phi tri qua, bt u t kho st nhu cu khch hng cho n khi phn mm khng cn c s dng. Pht trin phn mm (software developement) qu trnh xy dng phn mm t bt u cho n khi chuyn giao cho khch hng. Ngi pht trin (software developer) l tn gi chung cho nhng ngi tham gia xy dng phn mm. 3

Nhm m bo cht lng phn mm (software quality assurance group = SQA group) nhm chuyn kim tra cht lng phn mm, kim tra kt qu ca tng giai on xy dng phn mm. Quy trnh phn mm (software process) l cch thc lm ra phn mm, bao gm vng i phn mm, cc cng c v nhng ngi pht trin phn mm. Pha (phase) l mt giai on trong qu trnh xy dng phn mm. V d pha xc nh yu cu, pha phn tch... Yu cu (requirements) l pha u tin trong qu trnh xy dng phn mm. Pha ny thng c tn gi l tm hiu khi nim (concept exploration). Ngi pht trin v khch hng ngi li vi nhau. Khch hng nu ra nhng yu cu m phn mm phi c. Nhng ngi pht trin ghi chp li. Nu dch theo ting Anh "requirements phase" l pha yu cu. Tuy nhin cch gi qu n gin nh th ny c th hi kh hiu, do ta s gi l pha xc nh yu cu. c t (specification) hoc phn tch (analysis): Trn c s nhng yu cu ca khch hng, ngi pht trin m t li chnh xc hn cc yu cu m phn mm phi c. Cch m t ny c tnh chuyn mn v i khi s dng cc cng c tr gip. Pha ny tr li cu hi "phn mm lm ci g?" Phn tch h thng (system analysis) ngi ta thng gp hai pha yu cu v phn tch thnh mt pha v gi l pha phn tch h thng. Thit k (design) l pha tip theo pha c t. Cn c vo ti liu c t, pha ny m t cch thc m phn mm thc hin cc cng vic c th. Pha ny tr li cu hi "phn mm lm nh th no?". Pha thit k thng c hai phn: thit k kin trc (architecture design) v thit k chi tit (detail design). Ci t (implementation) hoc m ha (coding) hay lp trnh (programming): vit chng trnh bng mt ngn ng c th no . Tch hp (integration) kt ni cc phn chng trnh vit thnh mt phn mm thng nht v chy th, hiu chnh cho n khi chy tt. Pha ny i khi c gi l kim th hoc kim chng hay n gin l th. Bo tr (maintenance) hay i khi c gi l h tr (trong ti liu ting Vit): Khi chng trnh c ci t trn my ca khch hng vn c th c li pht sinh cn loi tr hoc phi hiu chnh li phn mm theo yu cu khch hng. K hoch qun l d n phn mm (software project management plan SPMP) bn k hoch c son tho sau khi hon thnh pha c t, trong m t chi tit k hoch xy dng phn mm (c c thi gian hon thnh v gi c). Trong cc phn sau chng ta s cn nu li cc khi nim ny. Nh vy cc bn c th thy, trong tin hc cc thut ng khng c s

Chng 1. Tng quan v cng ngh phn mm

dng mt cch chnh xc nh ton hc. 1.2.3. Vn dch cc thut ng ting Anh ra ting Vit Phn ln cc thut ng tin hc u c xut x ting Anh, khi dch sang ting Vit thng rt kh dch chnh xc, v mt t ting Anh tng ng vi rt nhiu t ting Vit. V d t "process" c cc ngha l x l, qu trnh, quy trnh, trong t qu trnh c s dng nhiu hn. Tuy nhin khi dch cm t "software process" sang ting Vit, nu dch l "qu trnh phn mm" s nghe l tai v kh hiu. C tc gi dch l "tin trnh phn mm" tuy c d nghe hn nhng vn hi kh hiu. Theo chng ti c mt s tc gi dch l "quy trnh phn mm" c l nghe xui tai v d hiu hn c. Khi ta ni "quy trnh lm s " c l d hiu hn l ni "tin trnh lm s ". Mt s t khc, v d "implementation" c hai ngha nh nhau l thc hin, thi hnh. V v th trong quy trnh lm phn mm th vic dch thut ng "implementation phase" l "pha thc hin" c th coi l cch dch duy nht. Tuy nhin t "thc hin" li c dng rt nhiu ni vi ngha khc, ch khng hn l vit chng trnh. V vy nu ni "pha thc hin" th i vi ngi cha quen vi tin hc nghe rt kh hiu. Lm sao h c th hiu c "thc hin phn mm" li l vit chng trnh? V vy c tc gi dng t "ci t" thay th, v dch "implementation phase" l pha ci t. Bn thn ti cng ng h cch dch ny, v Vit nam vn quen dng t "ci t" ch vic vit chng trnh, v d: ci t thut ton Euclid bng ngn ng Pascal. Tuy nhin t "ci t" vn c th nhm vi ngha ca t "installation" hay "setup", tc l ci t (ch khng phi vit chng trnh) mt phn mm ln my tnh phn mm ny c th chy c. C l chng ta nh chp nhn t "ci t" c hai ngha vy: mt ngha tng ng vi t "setup" trong ting Anh, cn mt ngha l "writing code", tc l vit chng trnh. Nh vy nu cc bn gp cc thut ng: lp trnh, ci t, thc hin, vit m, vit code, m ha, th thc ra chng ch l mt m thi. C th ni rng tin hc l lnh vc ang pht trin nn ngay M vic dng thut ng cng khng c s thng nht. Ly v d ngay trong m hnh vng i phn mm, th c ngi gi pha "c t" l pha "phn tch", hay gp hai pha "yu cu" v pha "phn tch" thnh pha phn tch h thng. Cch dch st nhiu khi lm cho cu kh hiu. V d nh chng ti ni n trong phn trc, nu dch "requirements phase" l pha yu cu th kh hiu hn l dch thot : pha xc nh yu cu. Nh vy, khi s dng cc ti liu ting Anh chng ti s p dng cch dch thot nu thy cn thit. Khi c cc ti liu khc nhau, cc bn s thy nhng thut ng c s dng khng nht qun. Chng ti ngh rng iu i vi cc bn khng qu quan trng cc bn phi bn khon. Cc bn hy dng mt cch gi no m cc bn thy thch hp, iu quan trng l cc bn phi nm c ngha thc s ca n.
1.3. Phm vi ca cng ngh phn mm

1.3.1.M u Mc tiu ca cng ngh phn mm l sn xut ra cc phn mm khng c li, c hon thnh ng thi hn vi kinh ph cho php v tha mn yu cu khch hng. Hn na phn mm phi d sa i khi ngi s dng cn. t c iu ny cc k s phn mm phi c trang b cc k nng v k thut cng nh v qun l. Cc k nng ny khng ch th hin khi vit ch5

ng trnh, m phi c p dng trong cc pha xy dng phn mm, bt u t kho st yu cu khch hng cho n giai on bo tr. C nhiu ngi tng vit nhng chng trnh my tnh, thm ch tham gia vit nhiu chng trnh ng dng trong thc t m cha h bit v "cng ngh phn mm". Mt iu ng ni l khng phi v th m chng trnh ca h km hiu qu. Vy th "cng ngh phn mm" liu c ch li g, c thc s cn thit i vi nhng ngi pht trin phn mm khng? Chng ta hy xem mt v d thc t: gi s bn cn xy dng mt ngi nh. Nu bn l th xy v ngi nh nh th bn c th xy m khng cn thit k trn giy. Thc ra th trc v trong qu trnh xy nh, bn cng hnh dung ra cng vic mnh cn lm, bn tng tng ra ngi nh ca mnh, ngha l bn cng c thit k, nhng khng ghi ra trn giy m thi. Nu cng l ngi nh nhng bn li nh mt ngi khc th sao? R rng bn phi gii thch cho ngi bit cn phi lm g. Khng t trng hp xy ra l cho d bn gii thch rt r, nhng ngi th vn lm khng ng bn. C th bui sng bn cn dn ngi th phi xy cu thang nh th no nhng bui chiu v bn li thy mt chic cu thang khc hn iu bn m t v kt qu l phi ph i lm li. l vic "xy ngi nh nh". Nu cng trnh ta cn xy dng l c mt ta nh hay chic cu bc qua sng ln th khng th thiu bn thit k chi tit. Bn thit k phi c tho lun rt nhiu trc khi i n phng n cui cng. Bn thit k phi r rng sao cho ngi k s thi cng v nhng nhi th phi hiu c chnh xc, khng b nhm ln. i vi vic vit chng trnh cng vy. Nu l vn nh nh tnh nh thc ma trn hay tnh xp x tch phn, bn ch cn bit thut ton ri bt tay vo vit nhng dng lnh trn my. Thm ch i vi bi ton ln hn nh qun l bn hng mt ca hng nh chng hn, vi mt phn mm qun tr c s d liu c sn nh foxpro, bn ch cn trao i i iu vi khch hng ri c th bt tay vo va vit va hiu chnh cho n khi nhn c sn phm c th s dng c. Chng trnh my tnh c mt c im khc vi cc sn phm khc l c tnh "mm" nh tn gi ca n: ta c th hiu chnh cc dng lnh hoc xa i vit li tng on chng trnh m khng tn nhiu cng sc v khng nh hng n kt qu cui cng. Trong thc t c nhng vic khin chng ta phi cn nhc rt k trc khi thc hin. Nu l xy mt bc tng ta c th ph i tng phn xy li, cho d nh th c th tn mt s vt liu v cng sc. Nhng vi ngi bc s phu thut th anh ta phi suy ngh v cng cn thn khi a li dao ct i mt phn no ca c th ngi, v nu anh ta sai st th hu qu tht khn lng v i khi khng th sa cha c. Ngy nay c nhng h phn mm cn hng trm ngi lm trong nhiu nm nh h phn mm dng cho chng trnh khng gian ca M. Thm ch c nhng h cn n hng ngn ngi trong nhiu nc lm trong nhiu nm nh chng trnh iu khin tng i in thoi hin c bn khp ni trn th gii. Khc vi cc sn phm khc, phn mm khng bao gi gi nguyn m khng ngng c thay i. V d nh chng trnh qun l kt qu thi i hc chng hn. C th mi nm li c mt chnh sch khc v phi sa li cho ph hp. Chng trnh qun l nhn s ca mt c quan, chng trnh qun l du lch, ... cng vy. Thng th sau mt thi gian ci t v s dng, khch hng li c thm mt s yu cu v h mun phn mm c sa li theo yu cu . Nu lc h phi tm li tc gi c th tht l kh khn. iu ny t ra thm mt yu cu cho phn mm: phn mm phi c xy dng sao cho cc chuyn gia phn mm khc (m khng phi l tc gi) c th hiu v bo tr c. Tm li, c th nu mt vi l do khin chng ta phi nghin cu

Chng 1. Tng quan v cng ngh phn mm

cc cch thc xy dng phn mm mt cch c khoa hc l: Ngy nay phn ln phn mm c xy dng theo n t hng. Nh vy cn c mt ngn ng chung gia ngi xy dng phn mm v khch hng. Phn mm thng khng do mt ngi m gm rt nhiu ngi xy dng. Nhng ngi cng pht trin mt phn mm phi hiu r cng vic ca mnh v cng vic chung, mi lin h gia cng vic ca tng c nhn hoc tng nhm. Cn c mt cch thc din t cc cng vic lm phn mm sao cho mi k s phn mm u c th trao i d dng cc tng v cng vic ca mnh vi cc k s trong nhm lm vic. Phn mm cng l mt th hng ha nh nhng th hng ho khc v do phi tun th nguyn tc ca kinh t th trng l sn phm phi c lp vi ngi sn xut. Ngha l sau khi mua hng, ngi mua khng b l thuc vo ngi bn. Mun vy th sn phm phn mm ngoi chng trnh chy trn my, cn c thm cc ti liu sao cho ngi khc c th tm hiu v bo tr c. Vy th cn mt ngn ng, mt cch trnh by chung cho cc sn phm phn mm. 1.3.2. Cng ngh phn mm nhn t gc lch s My tnh in t u tin cho mc ch thng mi l my UNIVAC-1 c sn xut nm 1951 M. T khong nhng nm 1955 th bt u c cc phn mm, tc l cc chng trnh my tnh. Cho n nay, nu ly phng php v mc phc tp lm cn c, th c th chia qu trnh pht trin phn mm thnh 3 giai on: 1955 - 1970, 1971 - 1985, 1986 n nay. Tt nhin s phn chia ny ch l tng i m thi. c im ca tng giai on l: - 1955 - 1970: Tnh ton v qun l ri rc, qun l nh. c t nhng yu cu ca khch hng lc cn dng ngn ng t nhin thng thng. V d cc cu kiu nh: ti mun c tp d liu cha nhng thng tin v bn sn phm nh s ha n, ngi bn, mt hng,...D liu s c nhp t bn phm, c kim tra ri mi a vo tp. Hng thng ti mun ly thng tin v doanh thu, li, s hng bn....Thit k thi y khng c son tho ra giy m ch hnh thnh trong t duy ca ngi lp trnh. Ngi lp trnh va vit chng trnh va suy ngh v cch t chc d liu, cch s dng cc thut ton sao cho chng trnh chy tt, p ng c yu cu ca khch hng. Chng trnh hi ch gm khong trn di vi trm dng lnh. Phng php lp trnh c s dng thi l lp trnh tuyn tnh, tc l cch vit chng trnh trong phn ln cc lnh c t theo trnh t thc hin ca chng, ngha l lnh cn thc hin trc s c vit trc, lnh thc hin sau c vit sau. - 1971 - 1985: Lc ny c nhu cu xy dng cc phn mm thi gian thc (ngha l tnh ton v s dng ngay kt qu, v d tnh ton trong l phn ng ht nhn phi c ngay kt qu iu khin kp thi). Lc ny c nhu cu xy dng cc mng cc b v kt ni cc c s d liu. c t thi ch trng vo c t u vo u ra, d liu v cc lung d liu (data flow). V d nhng tp d liu lu tr nhng thng tin g, trong qu trnh x l th d liu c tnh ton v di chuyn ra sao. u ra ca tp d liu ny sau khi x l li c th tr thnh u vo ca 7

tp khc...Thit k thi ch trng ti cu hnh h thng (system configuration). Vn cu trc i vi d liu v gii thut cng c ch , v vn ln cn phi c m t c cu trc cho d hiu. Cc chng trnh tiu biu thi c th k ti h iu hnh DOS, UNIX...Lc cng c nhng c s d liu c th truy cp t xa. Do nhu cu thc t, cc ngn ng lp trnh ra i giai on ny c kh nng h tr phng php lp trnh c cu trc, ngha l chng trnh c phn chia thnh cc chng trnh con, mi chng trnh con c tn v cc chc nng x l ring, c th giao tip vi cc chng trnh con khc thng qua cc i s v kiu tr v (nu c). - T 1986 n nay: y l thi k ca my vi tnh PC, thi ni mng tm rng, mng ton cu Internet. c t d n c bit nhiu l hng i tng, cng c CASE (Computer Aided Software Engineering). Trong thit k ngi ta ch n mun (module), i tng (object), giao thc (protocol) v giao din (interface). Giao thc hay giao din ni v s trao i gia cc i tng. Khi ci t trn my tnh ngi ta thng dng ngn ng hng i tng. Ngoi cc phn mm c vit theo t hng, ngi ta ch trng n cc phn mm ng gi nh: Netscape, Internet Explorer, Word, Excel... Ngy nay phn mm ngy cng ln, cng tch hp. Phn mm ngy nay cn c truy cp khp ni trn th gii thng qua Internet. Ngi ta cho rng vic xy dng mt phn mm cng cn tun theo nhng nguyn tc v k lut ging nh khi xy dng mt chic cu hay thc hin nhng cng vic k ngh khc. Nu mt chic cu b li khi xy dng v do b sp th tc hi gy ra rt ln. Mt phn mm quan trng nh phn mm iu khin h thng tn la n o ca mt nc m c li, cho kt qu tnh ton sai th hu qu n gy ra cng tht l kinh khng. Chnh v vy mt nhm nghin cu ca NATO trong nm 1967 s dng thut ng "Software engineering". H mun rng khi xy dng phn mm th cc k s cng cn p dng cc nguyn tc ca k ngh truyn thng. Tuy nhin, c nhiu s khc bit gia sn phm ca k ngh truyn thng v cng ngh phn mm. V d nh chic cu v h iu hnh chng hn. S c cu sp rt t khi xy ra v nu xy ra th cch khc phc thng l xy dng li. Cn h iu hnh nu c s c c khi ch cn tt my khi ng li l li chy tt. Phn mm c th sa li, c khi l ti 50% c th chy trn my tnh c cu hnh khc hoc thc hin thm cc chc nng khc. Cn chic cu mun sa li 50% th rt kh, nhiu khi xy dng mi cn d thc hin hn. 1.3.3. T gc kinh t Trong k ngh truyn thng, khi c nhiu cch thc sn xut mt sn phm no , v d chit xut du la t than chng hn, cc k s thng chn phng n r nht. Khi xy dng phn mm cng vy, ngi ta thng la chn cch thc chi ph t nht. Mt phng php lp trnh mi c th vit chng trnh nhanh hn, nhng chi ph hun luyn s dng v cng bo tr c th ln hn khin ngi ta phi cn nhc khi la chn. 1.3.4. V vn bo tr Dy cc bc m mt phn mm tri qua, bt u t nhng kho st ban u cho n khi phn mm khng cn c s dng c gi l vng i ca

Chng 1. Tng quan v cng ngh phn mm

phn mm (software life cycle). Cho n nhng nm 70 ca th k trc, vic sn xut mt phn mm c coi l kt qu ca hai giai on ni tip nhau: pht trin (developement) v bo tr (maintenance). Dn dn quan im ny tr nn khng ph hp. Ta c th ly mt v d n gin: phn mm ngy nay c th c pht trin trong mt vi nm. Trong khong thi gian c th c nhng phn hon thin theo ng thit k ban u nhng khch hng li b sung nhng yu cu mi v phi thit k li, vit li... Cng vic ny c th xem l bo tr. C quan im cho rng cng vic sa li hay hiu chnh nhng phn chng trnh hon thin theo thit k ban u th nn coi l cng vic bo tr. Tuy nhin cho n nay thng ngi ta vn coi cng tc bo tr l nhng hot ng sau khi phn mm hon chnh v c ci t s dng. Trong ti liu ny ch yu chng ta cng hiu t "bo tr" vi ngha nh vy. Trong nhng nm cui ca thp k 70 ca th k trc, phn ln cc cng ty khi sn xut cc phn mm s dng m hnh vng i phn mm m ngy nay ngi ta gi l m hnh thc (waterfall). M hnh ny bao gm 7 giai on nh sau: 1. Xc nh yu cu (Requirements phase) 2. Phn tch hay cn gi l c t (Analysis or specification phase) 3. Thit k (Design phase) 4. Ci t (Implementation phase) 5. Tch hp (Integration phase) 6. Bo tr (Maintenance phase) 7. Thi s dng (Retirement) Trong thc t c th mt vi pha c b qua hoc c thay th bi cc pha khc. V d ngi ta hp nht hai pha u tin thnh pha h thng. Ngi ta li cho rng vic tch hp phi c thc hin trong qu trnh ci t, ci t xong th phi c mt thi gian kim th, v nh th m hnh gm cc giai on sau: 1. Phn tch h thng 2. Thit k (kin trc v chi tit) 3. Ci t (v tch hp) 4. Kim th 5. Bo tr 6. Thi s dng Cng c quan im cho rng thc ra kim tra (verify) hoc kim th (test) l cng vic cn c thc hin mi ni. V d vi pha c t, kim tra l xem xt i chiu xem ti liu c t m t y v chnh xc cc yu cu khch hng hay cha, cn kim th chnh l xem xt xem tng im trong pha c t c th hin trong cc pha sau hay khng. V vy khng nn tch ring kim th thnh mt pha. Theo quan im ca chng ti th khng nn gp hai pha yu cu v c t. Vi phn mm ln, nhiu ngi vit th vic tch hp l rt quan trng v nn ring thnh mt pha, cn vi phn mm va v nh th nn kt hp ci t v tch hp thnh mt pha, trong bao hm c tch hp, nh trong bng sau: PM nh PM ln Yu cu Yu cu c t c t Thit k Thit k Ci t v tch hp Ci Tch t hp Bo tr Bo tr Thi s dng Thi s dng

ngha ca cc pha: 1. Xc nh yu cu: Tm hiu cc yu cu ca khch hng, a ra cc khi nim v vn . 2. Phn tch: Phn tch cc yu cu ca khch hng. M t cc kt qu phn tch di dng "ti liu c t". Cui giai on ny l k hoch qun l d n phn mm c a ra, m t chi tit qu trnh pht trin phn mm. Cu hi m pha ny cn cho cu tr li l: "phn mm s lm g?" (What the product is supposed to do?). 3. Thit k: Pha thit k bao gm hai giai on ni tip nhau: thit k kin trc (architechtural design) v thit k chi tit (detailed design). Thit k kin trc phn chia phn mm thnh cc thnh phn gi l module. Thit k chi tit l thit k tng module mt cch chi tit. Cu hi cn tr li trong pha ny l: phn mm thc hin cc cng vic nh th no? (How the product is to do it?). 4. Ci t: Tng thnh phn khc nhau c lp trnh v kim th. 5. Tch hp: Cc thnh phn ca sn phm c kt hp vi nhau v kim th tng th. Sau khi nhng ngi pht trin kim th v cho rng tt c cc chc nng ca phn mm hot ng tt th n lt khch hng kim th. S kim th ca khch hng c gi l kim th chp nhn (acceptance testing). Khi s kim th ca khch hng kt thc v khch hng va lng vi sn phm th phn mm c ci t trn my ca khch hng. Trong thc t th pha tch hp c tin hnh song song vi pha ci t. Khi mi thnh phn ca sn phm c hon thnh th ngi ta tin hnh th lun. 6. Bo tr: Sn phm c s dng thc hin cc cng vic t ra trc . Trong qu trnh ny c th xy ra nhng s c: c th l cc li chng trnh cha c loi tr ht, hay kt qu khng c nh khch hng mong i. Ngi ta phn chia cng vic bo tr thnh hai loi: bo tr sa li (software repair) v bo tr cp nht (softwair update). Trong ting Anh bo tr sa li cn c gi l corrective maintenance, bo tr cp nht cn c gi l software enhancement. Bo tr sa li nh tn gi ca n, l sa cc li c th vn cn xut hin trong khi chy chng trnh. Bo tr cp nht li c chia lm hai loi: bo tr hon thin (perfective maintenance) v bo tr thch nghi (adaptive maintenance). Bo tr hon thin l sa i phn mm theo khch hng nng cao hiu qu. Bo tr thch nghi l sa i phn mm thch nghi vi mi trng mi, v d sa i cng thc tnh lng theo chnh sch mi ban hnh hay hiu chnh chng trnh ph hp vi phin bn mi ca ngn ng lp trnh...(S phn chia ny cng ch l tng i m thi). Ngi ta tnh ton rng bo tr sa cha v thch nghi chim thi gian gn bng nhau v khong 20% mi loi, cn bo tr hon thin chim thi gian khong gp 3 ln mi loi bo tr kia (khong 60%). Ngi ta thng ngh rng "sn phm xu" mi phi bo tr. Tuy nhin thc t th ngc li: "sn phm xu" b vt vo st rc, cn "sn phm tt" th c hiu chnh, nng cp v s dng trong nhiu nm (tc l c bo tr). Phn mm l m hnh ca th gii thc, m th gii thc th bin i khng ngng, do phn mm cng phi c bo tr thng xuyn phn nh ng th gii thc. Trong thc t cng vic bo tr chim mt lng thi gian v chi ph kh ln so vi cc pha khc. Nu ta gi cc pha 1-5 thnh tn chung l cc pha pht trin, phn cn li l pha bo tr th thc t cho thy rng trung bnh pha bo tr thng chim khong hai phn ba (67%) chi ph sn phm. Thm ch c nhiu cng ty phn chi ph

Chng 1. Tng quan v cng ngh phn mm

cho bo tr c th ln ti 80%. T l % thi gian thc hin cc pha pht trin c th thy trong bng sau: Cc d n t 1976132 d n gn y ca Cc pha 1981 Hewlett-Packard Phn tch h 21 18 thng Thit k 18 19 Ci t 36 34 Tch hp 24 29 Tng 99 100 7. Thi s dng. 1.3.5. Vn phn tch v thit k Cc chuyn gia pht trin phn mm cng l nhng ngi bnh thng v do khng th trnh c sai st trong cng vic. Nh vy trong phn mm h pht trin c th cha li. Li c th cha trong mi pha. D thy rng li trong pha trc cng s gy nn li pha sau. Do nu pht hin li cng chm th chi ph sa cha cng ln. Chi ph tn km nht l khi phn mm c chuyn giao v ci t cho khch hng. Lc khng nhng phn lnh phi vit li m c th cc bo co trc cng phi sa cha. Sau khi phn mm c sa cha th li tn cng phn phi v ci t li... Trong cc pha xc nh yu cu, phn tch thit k th sn phm cn nm trn giy v vic sa cha thng ch cn n ty v bt ch. V vy nn thc hin cc pha ny tht k sao cho c t sai st nht. Ngi ta cng s dng mt s k thut tm li nhanh trong cc pha yu cu v pha phn tch. 1.3.6. Vn lp trnh theo nhm Ngy nay nh s pht trin rt nhanh ca k thut, cc cng ty c th trang b nhng my tnh c cu hnh cao, c th chy c nhng chng trnh ln. Nhiu phn mm tr thnh qu ln v khng th vit c bi mt ngi. V d ngi ta cn c sn phm trong khong thi gian mt nm, nhng nu mt ngi lm th mt 15 nm, r rng lc ny phn mm phi c lm bi nhiu ngi. Tuy nhin khng ging nh vic xy nh hoc o knh rch, vic pht trin phn mm theo nhm thng gp kh khn trong vic phn chia v kt hp cng vic gia cc thnh vin. V d A v B ng thi vit code cho hm p v q. Hm p c li gi ti hm q. chng trnh khng bo li, khi vit p A phi khai bo nguyn mu cho q. Nu khng c s trao i cn thn, c th B xy dng hm q vi cc tham s khng hon ton ging vi nguyn mu m A khai bo, v d th t cc tham s khc chng hn, khi vic kt hp s khng thnh cng. Thc t chng t rng khng phi nhiu ngi lm l thi gian c gim xung t l vi s ngi. Gi s mt phn mm c lm trong mt nm bi mt ngi. Khi nu c 3 ngi lm th thi gian khng phi l 4 thng nh ta ngh m c th l gn 1 nm v cht lng c th km hn phn mm do mt ngi xy dng. Vn lm vic theo nhm qu thc l vn rt kh v l mt lnh vc m cng ngh phn mm cn nghin cu. 1.3.7. Phng php hng i tng Trc 1975 phn ln cc cng ty phn mm u khng s dng mt k thut no c bit. Thng th mi cng ty c cch lm phn mm ring. T 11

th?ng b?o

g?i ti?n

t?nh s? d? th?ng b?o

th?ng b?o r?t ti?n

1975 - 1985 phng php cu trc (structured paradigm) ra i, nh du mt s thay i ng k trong k thut lm phn mm. K thut ny bao gm: phn tch h thng c cu trc (structured system analysis), phn tch dng d liu (data flow analysis), lp trnh cu trc (structured programming) v kim th theo cu trc (structured testing). Lc mi ra i, phng php cu trc t ra c rt nhiu ha hn v cng c p dng kh hiu qu. Tuy nhin, khi ln ca cc phn mm tng ln th phng php ny bc l nhng nhc im. Theo thi gian, ngi ta rt ra 2 nguyn nhn hn ch kh nng ca k thut ny: Th nht, ngi ta nhn thy rng phong cch lp trnh cu trc t ra khng ph hp vi nhng phn mm cha khong trn 5000 dng lnh (tc l khong 100 trang). Cc phn mm ngy nay c th cha n 500 000 , thm ch cha n 5 triu dng lnh hoc hn. Th hai, khi xy dng phn mm ngi ta d kin v trung bnh th kinh ph bo tr chim khong hai phn ba tng kinh ph (66%). Tuy nhin trong thc t th phng php cu trc khng lm c iu ny. Rt nhiu cng ty dng n 80% kinh ph cho cng vic bo tr. Nguyn nhn lm cho lp trnh cu trc cha tht thnh cng l v phng php ny hoc l nh hng hnh ng (action oriented) hoc l nh hng d liu (data oriented), ch khng phi l c hai. Cc thnh phn c bn ca mt phn mm chnh l cc hnh ng v d liu m cc hnh ng ny tc ng ln. V d vic xc nh chiu cao trung bnh bao gm hai thao tc: thu thp chiu cao (d liu), v tnh chiu cao trung bnh. Mt vi k thut cu trc, v d phn tch dng d liu (xem [6], mc 13.3), l nh hng thao tc. Ngha l k thut ny ch hn cc thao tc, d liu ch l th yu. Ngc li, k thut khc nh h thng Jackson (xem [6], mc 13.5) li l nh hng d liu. y s nhn mnh li l d liu, cn thao tc l th yu. Phng php hng i tng li xem d liu v hnh ng u quan trng nh nhau. Ngi ta xem i tng l mt thnh phn ca phn mm trong bao gm d liu v cc hnh ng thao tc trn d liu ny. Ti khon ngn hng l mt v d v i tng. D liu ca i tng l s d ti khon. Cc hnh ng tc ng ln s d ti khon l vic gi tin, rt tin v tnh s d. Nhn t quan im phng php cu trc th phn mm gii quyt bi ton ny bao gm mt thnh phn d liu l s d ti khon v 3 hnh ng l gi tin, rt tin v tnh li s d. Theo quan im hng i tng th ti khon ngn hng l mt i tng bao gm 3 thnh phn trn. Ta c th biu din cc phng php ny trong cc hnh sau y:

Chng 1. Tng quan v cng ngh phn mm

(a) (b) Hnh 1.1. So snh s tnh ton ti khon ngn hng bng (a) phng php cu trc v (b) phng php hng i tng. Nhn v hnh thc th ta cha thy r lm s khc bit gia phng php cu trc v phng php hng i tng. S khc bit c bn c th hin trong cch thc i tng vn hnh. Trong phng php cu trc, s d ti khon c khai bo sao cho cc hnh ng gi tin, rt tin, hay tnh ton s d c th tc ng ln n. y l cc thao tc bn ngoi, do s d phi c khai bo sao cho cc hm bn ngoi u bit r cc thng tin kiu d liu l g; khai bo nh bin c lp hay l mt trng ca mt cu trc khc... Nh vy ngoi 3 hnh ng trn y, s d c th b thay i bi mt thao tc (hm) khc. Trong phng php HT th s d ch c th chu tc ng ca 3 thao tc ca i tng. Bn ngoi nu mun bit thng tin v s d th ch c th gi thng bo n i tng (ngi ta ni gi thng bo n i tng c ngha l chy mt hm thnh phn ca i tng). V d nu khch hng gi 10$ th s gi thng bo v kch hot hm gi tin, v hm gi tin s tng s d ln 10 $. ch li ca phng php HT cn th hin trong qu trnh bo tr phn mm. Tr li v d trn y. Gi s kiu d liu ca s d b thay i do mt l do no . Trong phng php cu trc th tt c cc phn ca chng trnh lin quan n s d u phi sa i. Ngc li, trong phng php HT th s d ch b tc ng bi cc hm ca chnh i tng cha n, v vy ch cn sa i cc hm ny. Phng php HT c thit k tt th cc i tng l nhng phn c lp, t ph thuc ln nhau, v nh vy chng c th c xy dng mt cch c lp v do d phn chia cng vic cho nhiu ngi thc hin. Mt phn mm c xy dng theo phng php cu trc th thng c coi l mt n th duy nht (v cho d n cha nhiu thnh phn nhng cc thnh phn li ph thuc ln nhau), do phng php ny khng thch hp cho phn mm kch c ln. Cng nh tnh c lp ca cc i tng m kh nng s dng li ca phng php HT cao hn. Nu s dng phng php HT, vng i phn mm s c sa i cht t nh trong hnh sau: Phng php cu trc 1. Xc nh yu cu 2. Phn tch (xc nh phn mm lm g?) Phng php hng i tng 1. Xc nh yu cu 2. Phn tch hng i tng (xc nh phn mm lm g, phn mm gm cc i tng no?) 3. Thit k hng i tng (thit k chi tit cc i tng)

3. Thit k (thit k kin trc, tc l phn chia phn mm thnh cc module, v thit k chi tit, tc l thit k chi tit cc module) 4. Lp trnh hng i tng 4. Ci t (vit chng trnh) 5. Tch hp 5. Tch hp 6. Bo tr 6. Bo tr 7. Thi s dng 7. Thi s dng 13

Trong phng php cu trc, pha phn tch tr li cu hi: "phn mm lm g?" , cn pha thit k tr li cu hi: "lm nh th no?". Pha thit k gm hai pha con: thit k kin trc (phn mm c chia thnh cc module nh th no?) v thit k chi tit (mi module c thit k nh th no?) Vi phng php HT, trong pha phn tch th ngoi vic xc nh phn mm s lm nhng g (nh phng php cu trc) cn phi xc nh cc i tng trong phn mm; nh vy trong pha thit k khng phi xc nh cc i tng na, m ch cn thit k chi tit cc i tng. Nh vy trong phng php HT cc bc chuyn tip t pha ny sang pha khc mn hn, v do gim c cc li trong qu trnh pht trin.

Chng 2. Quy trnh lm phn mm


2.1. M u

Quy trnh lm phn mm (hay gi n gin theo ting Anh: software process - quy trnh phn mm) l qu trnh to ra phn mm. Quy trnh ny l s kt hp m hnh vng i phn mm, cc cng c c s dng v quan trng hn ht, l nhng ngi xy dng nn phn mm . Cc cng ty phn mm khc nhau c cc quy trnh phn mm khc nhau. V d hy xem vn ti liu. C mt s cng ty cho rng chnh bn thn phn mm vi cc m ngun l ti liu v phn mm. H cho rng phn mm c th hiu c bng cch c cc m ngun ny. Mt s cng ty khc chun b ti liu rt chi tit. Ngay c khi phn mm ci t cho khch hng v chuyn sang giai on bo tr, th mi s sa i phn mm cng c ghi chp li, cc bn thit k cng c thay i cho ph hp. T thc t c th thy rng mt phn mm c kim th k lng v c cc ti liu bo co y trong tng pha th cht lng s tt hn v cng vic bo tr cng thun li hn. Ni chung, mt quy trnh phn mm thng tri qua 7 pha: xc nh yu cu, phn tch, thit k, ci t, tch hp, bo tr v thi s dng. Trong mt s trng hp th tn cc pha ny c th khc. V d ngi ta hp nht hai pha xc nh yu cu v phn tch thnh pha phn tch h thng. Mt vi pha khc li c chia nh hn, v d pha thit k c chia thnh pha thit k kin trc v thit k chi tit. Hai pha ci t v tch hp c kt hp thnh pha ci t v tch hp. Nhng l do sau y tr li cu hi v sao cc pha ca vng i phn mm cn c kim th k v bo co thnh ti liu chi tit bi nhm thc hin trc khi tin hnh cc pha tip theo: - V s thc p v thi gian hon thnh nn nhng phn ti liu b tr hon thng t khi c tip tc hon thin. - Trch nhim v mt pha no c th c chuyn giao cho nhm khc thm ch mt cng ty phn mm khc. - Phn mm thng lin tc thay i trong qu trnh xy dng. V d thit k c th b thay i trong pha ci t. R rng nu ti liu thit k c bin son y th s sa i s thun li hn.
2.2. Khch hng, ngi pht trin v ngi s dng

(Client, developer, and user) Khch hng l c nhn hoc cng ty c nhu cu s dng phn mm. Nhng ngi pht trin l nhng ngi nhn trch nhim xy dng phn mm do khch hng yu cu. Ngi s dng l ngi trc tip s dng phn mm khi n c ci t cho khch hng. Khch hng, ngi pht trin v ngi s dng c th cc cng ty khc nhau hoc ngay trong mt cng ty. Cng c khi h l nhng ngi lao ng t do. Thng th khch hng v ngi s dng cng mt cng ty, cn nhng ngi pht trin l thnh vin ca mt cng ty phn mm no . Nu xt v mt gi c th ngi ta phn cc phn mm thnh hai loi: phn mm c xy dng cho mt khch hng thng c gi cao, v phn mm ng gi c bn cho nhiu khch hng v d nh Microsoft Word, Microsoft Excel...thng c gi r hn.

Chng 2. Quy trnh lm phn mm

2.3. Pha xc nh yu cu

2.3.1. Gii thiu Trong nhng ln gp u tin gia khch hng v ngi pht trin, khch hng phc tho cc yu cu, chc nng, cc cng vic cn thc hin ca phn mm m h mun t hng. Theo cch nhn nhn ca ngi pht trin th nhng iu khch hng m t c th m h, c nhng iu khng hp l, thm ch mu thun hay khng kh thi. Nhim v ca ngi pht trin l phi tm hiu xem thc cht khch hng cn g. Ngoi nhng yu cu v chc nng v cng vic, h cn phi tm hiu xem cc iu kin v phn mm l g? V d nh phn mm phi hon thnh trong thi gian bao lu, phn mm cn lm vic vi h iu hnh no, trn my tnh c cu hnh ra sao, gi c khong bao nhiu th chp nhn c. Thng th chnh khch hng hi li ngi pht trin gi ca phn mm, v ngi pht trin phi cn nhc khi tr li cu hi ny. Nhng kho st ban u v nhu cu khch hng c gi l tm hiu vn (concept exploration). Cc bui gp tip theo s bn k hn v cc chc nng ca phn mm, cc vn k thut lin quan v kinh ph. Thng th mi vic trong pha xc nh yu cu c v nh c thc hin sun s. Khch hng v ngi pht trin hiu nhau, cng vic c chuyn qua pha tip theo. Tuy nhin thc t li chng t rng, thng th pha xc nh yu cu khng c thnh cng lm. Sau ny khi sn phm c ci t v a vo s dng, khch hng bng n gp nhng ngi pht trin v phn nn rng "qu tnh l cc anh lm ng nhng g ti yu cu, nhng by gi ti mi nhn ra l c l phn mm ti cn li khng hn l ci m cc anh xy dng". Trong nhng trng hp ny, phn mm li phi sa i, cc ti liu phi vit li,... Nhng tnh hung trn y rt hay xy ra trong cc trng hp khch hng hiu bit t v my tnh. Lc ny ngi pht trin v khch hng thng b "bt ng ngn ng". khc phc tnh trng ny, ngi pht trin thng vit nhanh mt phn mm thc hin nhng iu m khch hng yu cu. Trong phn mm ny cha cn giao din p, cha cn kim tra nhp d liu,...ct l khch hng c th dng th xem n c thc hin ng nhng iu h mun khng. Phin bn th nghim ny c gi l bn mu nhanh (rapid prototype). Phng php xc nh yu cu s dng bn mu c gi l k thut dng bn mu. T y c lc ta s gi n gin pha xc nh yu cu l pha yu cu, ng nh thut ng ting Anh: requirements phase. 2.3.2. Kim th pha yu cu Trong mi cng ty phn mm cn c mt nhm lm vic m nhim v chnh ca h l bo m rng phn mm hot ng tt v p ng ng cc yu cu ca khch hng. Nhm ny c gi l nhm bo m cht lng phn mm (SQA = software quality assurance). Nhm SQA bt u thc hin vai tr ca mnh ngay t pha khi u. Nu s dng bn mu th trong pha ny nhm cng khch hng kim th phin bn cui cng ca bn mu xem n thc hin ng cc yu cu m khch hng cn khng. 2.3.3. Ti liu bo co trong pha yu cu Ti liu c bin son trong pha yu cu bao gm bn mu v cc ghi chp trong qu trnh trao i vi khch hng. Nhng ghi chp ny chnh l c s nhng ngi pht trin xy dng v sa i bn mu. Nu nhm pht trin khng lm bn mu th ti liu s m t nhng yu cu ca khch 16

hng. Ti liu ny c kim tra bi khch hng v mt s ngi s dng trc khi c nhm SQA kim tra k lng v chi tit.
2.4. Pha c t (hay phn tch)

2.4.1. Gii thiu Khi khch hng cho rng nhm pht trin hiu c cc yu cu ca h th cng vic c chuyn sang pha c t. Nhm c t (hay phn tch) s bin son ti liu c t. Nhng iu c nu trong ti liu ca pha yu cu s c chi tit v chnh xc ha. Cc chc nng ca phn mm c m t mt cch r rng, tng minh. Nhng iu kin rng buc v phn mm c lit k y . Ti liu c t cn ch r u vo (input) v u ra (output) ca phn mm. V d, nu yu cu ca khch hng l phn mm tnh bng lng ca mt c quan th u vo l cc mc lng ca mi nhn vin, bng ghi cc ngy lm vic, cc thng tin v thu thu nhp ca tng ngi... u ra l bng lng cng vi bo co v phn khu tr vo bo him x hi, bo him y t...Bo co c t l c s to ra bn hp ng. Hay ni chnh xc hn, bo co c t l nhng iu kin ca bn hp ng. Nhng ngi pht trin phn mm s c coi nh hon thnh hp ng nu sn phm tha mn cc tiu chun nu ra trong bn c t. Chnh v vy bn c t khng cha nhng t khng c ngha chnh xc nh: ni chung, thch hp, tng i, phong ph... Ti liu c t phi c vit sao cho c th s dng nh l chng c khi c vn cn a ra phn x ta n, ngay c khi phn mm c vit s dng trong ni b mt c quan (v nh vy kh nng kin tng s khng xy ra). Ti liu c t ng vai tr quan trng trong vic kim th v bo tr phn mm. Ta c th cn c vo ti liu ny kim tra xem phn mm tha mn cc mc tiu t ra cha. Nu nhu cu khch hng thay i th phn no ca ti liu c t cn thay i cho ph hp... Cc thiu st sau c th xy ra trong pha c t: - Mt li m nhm c t thng vi phm l din t vn khng chnh xc, i lc c th hiu nhiu ngha. V d: sp xp mng A ri chn phn t u tin. y t sp xp cha cho cch hiu duy nht, sp tng dn hay gim dn? - Ti liu cha y : V d nu d liu c li th gii quyt nh th no? Sau khi ti liu c t c bin son xong th tip theo l xy dng k hoch chi tit v c lng thi gian hon thnh v gi tr phn mm. Khch hng s khng chp nhn d n phn mm nu cha bit cc thng tin l d n s ko di trong bao lu v chi ph ht bao nhiu. Cc vn ny rt kh. Nu gi c thp th cng ty b thit, cao th c th khch hng li chn mt cng ty khc chp nhn gi r hn. Nu thi gian c lng qu ngn, khng kp hon thnh th cng ty phn mm hoc b mt lng tin i vi khch hng, hoc nu khch hng kin th c th b pht. Nu thi hn hon thnh qu di th khch hng c th chn i tc khc lm nhanh hn. Ngoi vic c lng thi gian v gi c, nhng ngi pht trin cn phi phn cng nhn s mt cch thch hp cho tng giai on. V d nhm vit chng trnh cha th bt u khi cc ti liu thit k cha c nhm SQA kim tra v chp nhn. Nhm thit k li khng th bt u cng vic nu nhm c t cha hon thnh cng vic ca h. Tm li, k hoch qun l d n phn mm (SPMP) cn c bin son k lng nhm phn nh cc

Chng 2. Quy trnh lm phn mm

giai on khc nhau ca qu trnh pht trin phn mm, nhng thnh vin tham gia trong tng giai on v thi hn cn hon thnh. Thi im sm nht bt u xy dng SPMP l khi phn c t kt thc. Trc th d n vn cha nh hnh nn khng th vit k hoch c. D nhin cng c nhng phn ca d n c th lp k hoch sm hn, c th ngay khi bt u; tuy nhin cho n khi nhng ngi pht trin xc nh c l cn xy dng ci g th h khng th xem xt mi kha cnh ca d n v xy dng k hoch c. Nhng thnh phn chnh ca k hoch l: nhng phn sn phm chuyn giao cho khch hng, cc mc thi gian cn chuyn giao, chi ph ca cc phn sn phm ny. Bn k hoch m t t m quy trnh phn mm bao gm: m hnh vng i phn mm c s dng, c cu t chc ca cng ty phn mm, nhng mc tiu ca d n, cc k thut v cc cng c CASE c s dng, lch trnh lm vic chi tit, chi ph ... 2.4.2. Kim th pha c t Nh ni dn trong chng 1, phn ln cc li trong phn mm chuyn giao cho khch hng thng do li trong ti liu c t gy nn. Cc li ny ch b pht hin khi phn mm c ci t trn my tnh ca khch hng. V vy nhm SQA cn phi kim tra ti liu c t mt cch k lng, nhn ra nhng iu mu thun, m h hoc cha y . Ngoi ra, nhm SQA cn phi xem xt tnh kh thi ca c t, v d cc phn cng ni n trong phn ny thc s c ph hp vi vic ci t phn mm khng, dung lng cc b nh trn my khch hng c vn hnh phn mm khng. Ti liu c t phi c th kim th c, v d c th da vo ti liu ny m kim tra tin cng vic thc hin, c th so snh vi tng mc trong pha yu cu. Ti liu c t cng nn c cc phn, cc mc c nh s tng ng vi ti liu xc nh yu cu tin theo di. Nu c bn mu trong pha yu cu th trong ti liu c t cng nn c cc mc tng ng vi cc chc nng trong bn mu. Cch tt nht kim tra ti liu c t l xem xt. i din ca nhm c t v nhm khch hng cng ngi li di s ch ta ca thnh vin nhm SQA, xem xt k lng bn c t, pht hin nhng sai st, nhng iu cha chnh xc... Sau khi khch hng va lng vi bn c t th chuyn sang xem xt bn k hoch thc hin d n. Cng nh vi bn c t, cch tt nht kim tra bn k hoch l xem xt. Hai yu t cn ch l thi gian thc hin v chi ph. Thng th cc c lng v thi gian v chi ph c hai hoc nhiu nhm nghin cu c lp nhau, sau cng trao i a ra kt lun thng nht. 2.4.3. Ti liu bo co trong pha c t Ti liu c bin son trong pha c t bao gm hai ti liu: bn bo co c t v bn k hoch qun l d n phn mm (SPMP).

18

2.5. Pha thit k

2.5.1. Gii thiu Pha c t cho chng ta bit "phn mm lm g?", cn pha thit k li tr li cu hi "lm nh th no?" Vi vic tm hiu nghin cu bn bo co c t, nhm thit k xc nh cu trc bn trong ca phn mm. H phn chia phn mm thnh cc module, l nhng phn m lnh c lp nhau v c cc giao tip ph hp vi cc phn cn li ca phn mm. (i tng cng l mt trng hp c bit ca module). Cc giao tip ca mt module l cc tham s vo v cc tham s ra ca n. V d nu module l tnh li sut tit kim th u vo l s tin gi, thi gian gi, loi tit kim (khng k hn, 3 thng, 6 thng hay 1 nm...) v u ra l s tin li. Sau khi kt thc vic phn chia phn mm thnh cc module (thit k kin trc), nhm lm vic bt u cng vic thit k chi tit cho tng module. Vi mi module cn chn cc thut ton v cc cu trc d liu thch hp. Trong qu trnh phn chia phn mm thnh cc module, nhm lm vic cn ghi chp li cc bc quyt nh v l do la chn. Lm nh vy c hai iu li: Th nht, c th i khi cng vic i n ch b tc, ngi ta phi quay li v sa i mt s quyt nh ca cc bc trc . Nu c bn ghi chp y th vic quay li ny d dng hn. Th hai, vic ghi chp y s rt tt cho cng tc bo tr. Chng ta bit rng phn mm khng bao gi gi nguyn m thng hay b sa i. Mt phn mm tt phi c tnh m (open-ended), c ngha l ta c th thm vo, bt i hoc thay i mt s module m khng phi thay i nhiu cc phn cn li. Tuy nhin iu ny trong thc t rt kh thc hin. Do sc p v thi gian, nhm lm vic ch yu tp trung vo vic thit k phn mm theo cc yu cu hin c m t khi suy ngh n vic m rng nng cp trong tng lai. Nhm lm vic thng chn s tha hip l thit k v ghi chp li sao cho sau ny khi cn nng cp phn mm th bit c cn thay i module no, sao cho s sa i cng t cng tt. Thm ch ngay c trong trng hp phn mm phi thit k li hon ton th bn thit k c vi ghi chp y cng s cung cp nhiu thng tin b ch. 2.5.2. Kim th pha thit k Nh nhc n, mt tnh cht rt quan trng ca mt sn phm (ti liu bo co, phn mm) l tnh theo di c (traceable). Trong trng hp thit k th iu ny c ngha l bn thit k phi l s ni tip ca bn bo co c t. Nhn vo bn thit k ta phi bit c cc phn tng ng vi bo co c t. Bn thit k cng phi c xem xt k, xem n thc s ph hp vi bo co c t cha. Tuy nhin, khc vi bo co yu cu v bo co c t, bn thit k mang tnh chuyn nghip v nu khch hng khng phi l k s tin hc th s rt kh hiu. Chnh v vy khi kim tra bn thit k th thng khch hng khng c mt. Cng vic xem xt ny c nhm SQA thc hin. Cc li thng c pht hin trong pha ny thng l: li logic, li giao tip, thiu phn x l cc trng hp ngoi l, v quan trng nht l khng tng hp vi bo co c t. Ngoi ra nhm SQA cn ch nhn ra nhng li trong cc pha trc nhng cha c pht hin. 2.5.3. Ti liu bo co trong pha thit k Sn phm chnh trong pha ny chnh l bn thit k. Bn ny gm hai phn: kin trc v chi tit. Cc bn thit k chi tit s c chuyn cho cc lp trnh vin thc hin cng vic lp trnh.

Chng 2. Quy trnh lm phn mm

2.6. Pha ci t

2.6.1. Gii thiu Trong pha ny cc lp trnh vin vit chng trnh cho cc module theo thit k chi tit. 2.6.2. Kim th pha ci t Mi module cn kim th trong khi thc hin v sau khi hon thnh (desk checking). Cc module c chy th vi s liu th (test case). V d vi module tnh li sut th ta th nhp s liu l s tin gi, thi gian gi, loi hnh tit kim ri chy th cho kt qu. S liu nn n gin hoc c tnh ton trc bng cch no , sao cho ta c th bit c chng trnh cho kt qu ng hay sai. Cng vic th tng module ny c ngi lp trnh thc hin. Sau nhm SQA s dng mt s phng php c th li cc module. Cng vi vic chy th cc s liu mu, vic xem xt cc m ngun cng l mt cch kim th hiu qu tm ra li lp trnh. Ngi lp trnh s gii thiu cc dng lnh, cch hot ng ca cc module. Nhm xem xt m ngun cn c i din ca nhm SQA. Cng ging nh vic xem xt bo co c t hay thit k, hot ng kim th trong pha ny ca nhm SQA cng phi c ghi chp li. 2.6.3. Ti liu bo co trong pha ci t Ti liu trong pha ci t chnh l cc m ngun ca mi module cng vi cc li gii thch. Cc lp trnh vin phi b sung bn cnh m ngun nhng ti liu khc h tr cho vic bo tr sau ny, v d cc s liu v kt qu mu dng th chng trnh.
2.7. Pha tch hp

2.7.1. Gii thiu Trong pha ci t th tng module c kim th. Trong pha tch hp cc module s c kt hp thnh phn mm v chng ta cn kim tra xem cc chc nng ca phn mm c hot ng chnh xc khng. Thc t chng t rng nn tch hp cc module lc c th, ch khng ch n lc tt c cc module u c xy dng. Ngha l nn thc hin pha ci t v tch hp song song vi nhau. 2.7.2. Kim th pha tch hp Mc ch kim th y l kim tra xem cc module c c kt hp mt cch chnh xc to nn phn mm thc hin ng nhng yu cu nu trong bo co c t hay khng. Lc ny cn ch n phn giao tip gia cc module. V d cc tham s thc t v cc tham s hnh thc phi cng loi, chng cng l thc, nguyn hay chui k t chng hn. Tuy nhin c nhng ngn ng lp trnh li khng i hi kht khe v kiu d liu. Sau khi kim tra tch hp v thy rng cc module c ghp ni vi nhau mt cch chnh xc th nhm SQA chuyn sang kim th phn mm (product testing). Cc chc nng ca phn mm c kim tra theo cc rng buc c nu trong bo co c t. V d nh chng trnh tnh ton v cho kt qu c nhanh khng. Bi v mc tiu ca vic kim th phn mm l xc nh xem phn c t c c thc hin ng khng, v vy nn a ra nhiu trng hp th (tc l cc s liu v kt qu mu) khi kt thc 20

phn c t. Khng ch tnh chnh xc m c tnh n nh ca chng trnh cng c kim th. Ngi ta th xem chng trnh x l nh th no vi mt d liu sai. Chng trnh s sp hay c cch x l hp l hn nh thng bo v tm ngng ch d liu mi chng hn. Nu chng trnh c ci trn my khch hng cng vi mt phn mm khc th c gy s xung khc khng... Bc cui ca kim th tch hp l kim th chp nhn (acceptance testing). Chng trnh c ci t trn my khch hng, chy vi cu hnh v s liu thc. Cho d nhm pht trin s dng nhng s liu mu nh th no th thng vn c s khc bit rt ln gia s liu mu v s liu thc t. Phn mm s khng c coi l tha mn cc c t chng no cha tri qua kim th chp nhn. Trong trng hp phn mm ng gi th khng c khch hng c th. Vi phn mm loi ny th sau khi nhm pht trin xy dng v kim th xong, phn mm s c gi cho mt s khch hng c coi l nhng ngi s dng trong tng lai h dng th. Phn mm gi i c gi l phin bn alpha. Sau khi khch hng (c la chn) kim th v hiu chnh th phin bn alpha tr thnh phin bn beta. Phin bn beta thng c coi l gn vi phin bn cui cng. Li trong phn mm ng gi thng lm cho phn mm khng bn c v cng ty pht trin chu thua l ln. Cc phin bn alpha v beta c gi cho mt s cng ty c la chn v s dng vo cng vic ca h vi hy vng trong qu trnh s dng s pht hin ra cc li tim n. Cc cng ty th cc phin bn alpha v beta thng c ha l c cung cp min ph phn mm thnh phm. Tuy nhin cc cng ty ny cng phi chu s ri ro l rt c th trong qu trnh s dng th li trong phn mm lm cho h tn thi gian v ch, cc li ny c th lm tn hi nhng cng vic khc, v d nh c s d liu b sp chng hn. B li, i khi cc cng ty ny li c hng li trong cnh tranh do c s dng phn mm mi, cha ai c. 2.7.3. Ti liu bo co trong pha tch hp Sn phm trong pha tch hp l cc m ngun c hiu chnh cng cc li ch thch. Km theo l ti liu hng dn s dng, ti liu hng dn ci t v vn hnh chng trnh, gii thch cc c s d liu...Tm li tt c cc ti liu cn thit cng vi phn mm chuyn giao cho khch hng.
2.8. Pha bo tr

2.8.1. Gii thiu Nu phn mm c chp nhn bi khch hng v ci t trn my ca h th t lc mi thay i v phn mm u c gi l bo tr. Bo tr l mt phn ca quy trnh phn mm v thng c chi ph ln hn tt c cc pha khc cng li. Mt vn quan trng hay b lng qun trong pha bo tr l vn cp nht ti liu. Mi khi c thay i v phn mm trong pha bo tr th ng l cc ti liu trong cc pha trc u phi sa i. Tuy nhin ngi ta thng khng lm iu ny v ti liu trong pha bo tr thng ch c m ngun ca phn mm sa i. Trong nhiu trng hp, thi gian bo tr kh di v c th nhng ngi xy dng nn phn mm khng cn cng ty na, v vic bo tr cng tr nn kh khn. Ni chung pha bo tr l pha tri qua nhiu thch thc nht trong qu trnh sn xut phn mm.

Chng 2. Quy trnh lm phn mm

2.8.2. Kim th pha bo tr Khi mt phn ca phn mm b sa i th d nhin ta phi tin hnh kim th li. Vic kim th y bao gm hai phn: th nht cn kim tra xem phn mm c sa theo ng yu cu t ra cha. Th hai l sau khi sa i li mt phn ca phn mm th phn cn li c b nh hng khng. thc hin php kim th th hai ny ta phi gi li tt c cc trng hp th trc y. Vic dng cc d liu mu c th li cc chc nng khng lin quan n phn chng trnh va sa i c gi l php th li li hay php th hi quy (regression testing). 2.8.3. Ti liu bo co trong pha bo tr Ti liu quan trng trong pha bo tr l cc ghi chp v cc sa i c thc hin cng cc l do. Khi phn mm b sa i th cn thc hin php th hi quy. Do cc trng hp th hi quy cng l mt phn quan trng trong ti liu ny.
2.9. Thi s dng

Sau nhiu nm s dng c th phn mm tr nn khng cn thit v khng cn cn s bo tr na. Cc l do c th nh sau: 1. S thay i do khch hng a ra qu ln. Tt nht l xy dng mt phn mm khc thay th. 2. Sau nhiu ln thc hin cc sa i trn thit k ban u lm cho cc phn ca phn mm tr nn qu ph thuc ln nhau (mt cch tnh c ch khng phi l do yu cu ca phn mm) do mi ln thay i mt module nh cng c th lm nh hng n cc chc nng ca ton b phn mm nn vic bo tr tr nn qu kh khn. Tt nht l t li yu cu v thit k mi t u, tc l lm phn mm mi. 3. Sau nhiu ln sa i nhng cc ti liu li khng cp nht y nn khng kim sot c cc li hi quy. Tt nht l nn vit li phn mm. 4. Phn cng b thay i. Phn mm khng cn thch hp na, tt nht l nn vit li. Trong cc trng hp trn y, phn mm c c thay bng phn mm mi v quy trnh phn mm li c bt u. S kt thc s dng thc s thng t xy ra hn nhng khng phi l c bit. Nu mt phn mm tr nn li thi th d nhin ngi ta khng s dng chng na v xa khi cc my tnh ca h. V d Vit nam th cc phn mm son tho vn bn th h c c loi b v thay th cc phn mm hon ton mi.

22

Th?i s? d?ng Hi?u ch?nh cho ??n khi kh?ch h?ng ch?p nh?n S? d?ng v? b?o tr* X?y d?ng phi?n b?n ??u ti?n

Chng 3. Cc m hnh vng i phn mm Nh nu trong chng 1, dy cc bc m mt phn mm tri qua, bt u t nhng kho st u tin cho n khi phn mm khng cn c s dng c gi l vng i phn mm. Vng i phn mm ca mi sn phm nhiu khi c s khc bit rt ln. C phn mm dng mt vi nm cho pha kho st, tm hiu vn . Nhng trng hp nh th ny thng xy ra do cha c phn cng ph hp xy dng phn mm, hoc cn phi tin hnh kh nhiu nghin cu tm ra thut ton hiu qu. C sn phm c thit k v vit chng trnh rt nhanh nhng li tn hng nm bo tr do phi sa i chng trnh cho ph hp vi cc yu cu ca khch hng. Cng c nhng sn phm phn mm sau mt thi gian s dng ngi ta nhn thy rng c l nn vit hn mt sn phm mi hon ton th s tt hn l bo tr sn phm c. Cho n nay c rt nhiu m hnh vng i phn mm c s dng Tuy nhin y chng ta ch tm hiu mt vi m hnh tiu biu xt c v mt nhc im v mt u im.
3.1. M hnh xy dng-v-hiu chnh (build-and-fix model)

C kh nhiu phn mm c xy dng da trn m hnh xy dng-vhiu chnh. Trong m hnh ny khng c cc pha phn tch thit k. Phn mm c xy dng nh sau: ngi pht trin sau khi trao i vi khch hng s vit phin bn u tin. Tip theo, phn mm c chy th vi s quan st ca khch hng v lin tc c hiu chnh cho n khi khch hng va (tc l p ng c yu cu ca khch hng). Sau khi c khch hng chp nhn, phn mm c a vo s dng v bo tr. M hnh ny c th biu din trong s sau:

Hnh 3.1. M hnh xy dng-v-hiu chnh V sao cch thc ny c nhiu ngi s dng lm phn mm, nht l cc phn mm nh? Nu ni chnh xc hn th m hnh trn y khng c ti liu phn tch, thit k. V thc ra khi vit chng trnh th ngi pht trin cng phi hnh dung ra cc chc nng ca phn mm, nhng module phi c, nhng thut ton s dng... Ngha l phn no h cng c phn tch thit k, nhng h khng bin son li thnh ti liu m thi. Chc cc bn cng tng thy nhng bc th mc mit mi lm vic, chng thy c bn v thit k no m h vn lm ra nhng chic t, chic ging rt p. D nhin l h khng lm mt cch v thc m theo mt cch thc c sn trong tr nh ca h. Nu phn mm do mt ngi vit v d dng trao i vi

Chng 3. Cc m hnh vng i phn mm

khch hng th c l m hnh xy dng-v-hiu chnh l cch nhanh nht i ti sn phm. Sau khi vit phin bn u tin, ngi pht trin hiu kh r yu cu ca khch hng, h cng hiu r cc dng lnh va vit. V vy khi khch hng nu yu cu hiu chnh phn mm th h bit ngay cn phi hiu chnh phn no ca chng trnh. Cng vic thng c thc hin kh nhanh chng v phn mm sm c hon thnh v a vo s dng. V hnh thc, cch lm phn mm theo kiu xy dng-v hiu chnh cng ging nh lm bn mu. Tuy nhin c mt s khc bit, l khi lm bn mu ta b qua cc yu t quan trng khc m ch tp trung m t cc yu cu ca khch hng; cn trong m hnh xy dng-v-hiu chnh th ta ch ti c cc c trng ny khi xy dng phn mm. Nhc im ca m hnh th hin r trong giai on bo tr. Cng vic bo tr thng l sa li v cp nht. Nu phn mm va mi c a vo s dng v tc gi vn cn chu trch nhim cng vic ny th khng c vn g lm. Tuy nhin nu phn mm c s dng sau mt thi gian di, khin cho chnh ngi vit chng trnh cng qun i ngha cc dng lnh; hoc vic bo tr li do mt ngi khc thc hin th s rt kh khn. Nu bn th c chng trnh ngun ca mt tc gi khc m khng c ti liu gii thch km theo th bn s thy rt kh hiu. i khi bn tm hiu vn ri vit mi chng trnh c l cn n gin hn l sa li chng trnh ca ngi khc. R rng m hnh xy dng-v-hiu chnh ch thch nghi cho phn mm nh, mt ngi vit v t kh nng phi sa i trong qu trnh s dng. Ngy nay cc phn mm thng ln, do nhiu ngi vit do cch thc ny tr nn khng thch hp. Khi c nhu cu lm phn mm, ta cn la chn m hnh vng i thch hp (i khi ta ni n gin l m hnh). M hnh ny phi c c nhm lm phn mm nht tr, sau cng vic pht trin phn mm mi thc s c bt u. Cho n u nhng nm 1980 m hnh c s dng rng ri nht l m hnh thc (waterfall) m ta s nghin cu sau y.
3.2. M hnh thc (waterfall model)

M hnh thc l m hnh pht trin phn mm c a ra ln u tin bi W.W. Royce vo nm 1970. Trong m hnh ny, qu trnh pht trin phn mm c coi nh mt dng chy tri qua cc pha yu cu, phn tch, thit k, ci t, tch hp v bo tr. Thc ra, Royce c m t tnh lp ca tng pha, ngha l nu trong mt pha ngi ta pht hin ra iu g sai st hoc khng ph hp th s quay li hiu chnh pha trc. Hnh 3.2 l s biu din m hnh thc .

24

Hnh 3.2. M hnh thc (waterfall model) M hnh thc l m hnh c nht v c s dng rng ri nht trong cng ngh phn mm. Tuy nhin cng c nhiu kin ch trch v cho rng m hnh ny c mt s nhc im nh sau: Cc d n trong thc t him khi tun theo dng chy tun t m m hnh ngh. Mc du m hnh cho php lp, nhng iu ch lm gin tip. Kt qu l nhng thay i c th gy ra ln ln khi nhm pht trin lm vic. Khch hng thng kh pht biu mi yu cu mt cch tng minh ngay t u. M hnh tun t tuyn tnh i hi iu ny v thng kh thch hp vi s khng chc chn t nhin tn ti vo lc u ca nhiu d n. Khch hng phi kin nhn ch i, v bn lm vic c ca chng tnh ch c c vo cui ca thi gian d n. Mt sai lm ng ngn, nu n lc c chng trnh lm vic mi pht hin ra, c th l mt thm ha. Vi vic phn tch mt s d n hin ti, Bradax thy rng bn cht tuyn tnh ca vng i c in dn ti "cc trng thi tc nghn", ngha l c mt s thnh vin ca nhm pht trin phi ch i s chuyn giao t nhm khc hon thnh cng vic pha trc. Trong thc t, thi gian ch i c th vt qu thi gian sn xut. Trng thi nghn c xu hng xy ra vo thi gian u v cui ca quy trnh phn mm. Tuy nhin, m hnh vng i c in c mt v tr quan trng v n a ra mt hnh mu v cc bc m mt phn mm cn phi tri qua l: phn tch h thng, thit k, ci t, tch hp v bo tr. Nhiu m hnh sau ny l ci tin m hnh ny, nhng vn gi li nhng im ct li.
3.3. M hnh bn mu (rapid prototyping model)

M hnh bn mu thc cht cng l m hnh thc , nhng phn xc nh yu cu c thay bng bn mu. M hnh ny c th biu din bi s sau:

Chng 3. Cc m hnh vng i phn mm

Hnh 3.3. M hnh bn mu (rapid prototyping model) Cng nh m hnh thc , cc pha t bn mu n thit k u c kim tra (verify), cc pha ci t v tch hp c kim th (test). Thng thng khch hng xc nh c mt tp cc mc tiu tng qut cho phn mm, nhng cn cha nhn din c u vo, u ra, nhng ci cn x l. Trong cc trng hp khc ngi pht trin c th khng chc v tnh hiu qu ca thut ton, vic thch nghi h iu hnh hay dng mn hnh giao din cn c. Trong trng hp ny v nhiu trng hp khc, cch lm bn mu c th a ra cch tip cn tt nht. lm bn mu, u tin ngi ta thu thp yu cu khch hng. Ngi pht trin v khch hng cng ngi li vi nhau xc nh cc mc tiu tng th cho phn mm, xc nh xem yu cu no r rng, yu cu no cn phi xc nh thm. Tip theo l vic "thit k nhanh". Thit k nhanh ch tp trung vo vic biu din cc kha cnh ca phn mm thy c i vi ngi dng, v d mn hnh nhp d liu, cc chc nng tm kim, truy xut thng tin, cc bo co. Ngi pht trin c th kt hp th nghim mt thut ton. Tuy nhin mc ch chnh l th hin c cc yu cu ca khch hng trong phn mm m cha n tnh ti u, tc , s hp l... Thit k nhanh dn ti vic xy dng mt bn mu. Bn mu c gii thiu vi khch hng v c th h dng th v nh gi, gp kin. Trn c s kin khch, hng ngi pht trin lm mn dn bn mu cho n khi khch hng thy va (ch yu l ci vo, ci ra, giao din...). Cn c vo bn mu ngi pht trin cng hiu r hn yu cu khch hng, nhng yu cu v cu hnh, v cc thut ton, cu trc d liu, ngn ng lp trnh ph hp...

26

Hnh 3.4. M thc lm bn mu Mt cu hi t ra l: bn mu c hiu chnh cho n khi khch hng va , vy c nn s dng ngay bn mu ny hoc hon thin thm thnh bn chnh chuyn giao cho khch hng khng? V vn ny Brook nu cu tr li nh sau:
Trong hu ht cc d n, h thng u tin him khi s dng c. N c th l qu chm, qu ln, cng knh trong s dng hay tt c nhng nhc im ny. Khng c cch no khc l bt u li, au n nhng tinh khn hn, v xy dng li mt phin bn trong nhng vn ny c gii quyt.

Mt cch l tng, bn mu ch c xem nh mt c ch xc nh cc yu cu ca phn mm. Khch hng thng khng bit c cht lng thc s ca bn mu. H khng bit c rng trong khi x y cho bn mu th hin c nhng yu cu khch hng th ngi ta khng n cht lng tng th hay tnh bo tr lu di ca phn mm. Khi c thng bo li l sn phm c xy dng li n t ti mc cht lng cao th khch hng thng ku tri v i hi rng "phi t sa cha". Cch tt nht l ngay t u nn xc nh vi khch hng l bn mu ch s dng xc nh ng yu cu khch hng m thi. So snh m hnh thc v m hnh bn mu Trong m hnh thc , mc ch ca pha xc nh yu cu l lm sao nm bt c nhng yu cu ca khch hng. Tuy nhin vic ny thng gp kh khn do khch hng i khi khng din t c chnh xc yu cu ca mnh v c th ngi pht trin i khi hiu sai ca khch hng. Vic s dng bn mu trong pha xc nh yu cu s khc phc c phn no tnh trng ny. Khch hng d kim tra li cc yu cu ca mnh qua vic chy th cc chc nng ca phn mm bn mu. Thc cht th m hnh bn mu cng l m hnh thc nhng k thut kho st c s dng l bn mu. Vic s dng bn mu cn c im li l gip cc nh pht trin c c hi p dng th v nh gi nhng cng ngh v k thut mi v c th gim thiu nhng ri ro khi s dng nhng cng ngh mi ny.
3.4. M hnh tng dn (incremental model)

Phn mm c xy dng tng bc, cng nh xy mt ngi nh vy. Nu nh khi xy dng ngi nh c lc ngi ta phi ph i xy li mt bc tng khng va th khi lm phn mm chng ta cng c th sa i thm ch b i nhng module chng trnh khng ph hp...Mt phn mm ra i, c a vo s dng. Trong qu trnh s dng ngoi vic pht hin v sa cha sai st, ngi ta thy cn nng cp cht lng bng cch ci tin mt vi thut ton, thm mt s chc nng... V d nh khi lm phn mm son tho vn bn chng hn. Phin bn u c th cha c chc nng kim tra chnh t, cha c chc nng chn hnh nh...Ngi ta nng cp phin bn ny bng cch b sung cc chc nng ny. Sau khi hon thnh cng vic ny ngi ta li thy nn

Chng 3. Cc m hnh vng i phn mm

thm chc nng v th, thm kh nng tnh ton trong bng. Mi ln nng cp nh vy ngi ta li da trn nn tng phn mm c v xem xt sa i li ti liu cc pha. T nhn xt rng phn mm c th c xy dng tng bc a n vic ra i mt m hnh mi l m hnh tng dn. Trong m hnh tng dn, ngi ta xem phn mm bao gm nhiu thnh phn (build) tng i c lp nhau. Vi h iu hnh chng hn, l thnh phn scheduler, thnh phn file management system,.. Mi thnh phn nh vy c coi nh mt phn mm nh, c thit k, lp trnh, kim th v a cho khch hng s dng theo m hnh thc ri kt hp dn thnh phn mm hon chnh tha mn tt c cc yu cu ca khch hng. Ban u ngi ta cha ch n ton b cc yu cu ca phn mm m ch ch n nhng nt c trng nht v xy dng phin bn u tin ca phn mm bao gm cc c trng ny ri a cho khch hng s dng. Chng trnh c hiu chnh theo kin phn hi ca khch hng. Tip theo ngi ta li xy dng phn mm th hai tha mn cc c trng quan trng th hai v li a cho khch hng s dng v c kin. Phn mm th hai ny sau khi hiu chnh li c tch hp vo phn mm u tin thnh mt phn mm ln hn. Phn mm tch hp ny li c kim th bo m vic ghp ni thnh cng v chng trnh chy tt. C nh vy, thay v xy dng phn mm hon chnh, ngi ta xy dng cc phn mm con ri tch hp dn cho ti khi t c sn phm mong mun. S sau m t m hnh tng dn.

Hnh 3.5. M hnh tng dn (incremental model) Nhn xt m hnh tng dn Vi m hnh thc hoc bn mu, sn phm c chuyn giao cho khch hng chnh l phin bn hon chnh tha mn tt c cc yu cu ca khch hng v c th s dng ngay. Thi gian hon thnh phn mm c quy nh trong hp ng v c th sm hoc mun hn. Vi m hnh tng dn th phn mm c chia ra nhiu phn (thng l t 5 n 25 phn). Phn u 28

tin cha ng nhng c trng quan trng nht c nhanh chng xy dng v chuyn giao cho khch hng s dng. Thi gian hon thnh phn u tin ny thng rt ngn so vi thi gian xy dng ton b phn mm hon chnh. Nh vy khch hng c s dng sn phm trong thi gian ngn nht v h c th c hng li t vic s dng phn mm. Khi mi phn sau c hon thnh v c tch hp th h c s dng ngay. Nh vy h c lm quen tng bc vi sn phm v s t b ng khi sn phm cha ng nhng cng ngh mi. Nh theo st tng bc pht trin ca phn mm m khch hng c th c nhng kin xc ng, gip cho nh pht trin i ng hng v sn phm cui cng s tha mn c cc yu cu t ra, thm ch qua vic s dng mt s phn u, khch hng nhn thy rng khng nn pht trin tip v s khng mang li li ch kinh t. Kh khn trong vic s dng m hnh tng dn chnh l s tch hp phn mi pht trin vi phn chng trnh c. Thit k ca m hnh ny do vy phi c tnh m v tnh mm do thch nghi vi vic m rng dn. Ta c th nhn thy rng, trong m hnh tng dn khng c s khc bit gia s pht trin phn mm v bo tr cp nht (nng cao). Nu vn dng khng hp l, m hnh ny c th suy thoi thnh m hnh xy dng-v-hiu chnh. S iu khin ton b quy trnh pht trin phn mm c th b mt v sn phm nhn c thay v c tnh m li l ni kinh hong cho nhng ngi bo tr. trnh c iu ny, ngi pht trin ngay t u phi c cch nhn ton cc v sn phm, phi a ra thit k tng th ca sn phm v s phn chia cc thnh phn pht trin sau ny cng phi trn c s thit k ton cc . Nh s 3.5. ch ra, cc pha yu cu, c t v thit k kin trc phi c thc hin trc khi cc thnh phn nh hn c bt u xy dng. Nu khng c nhng nh chuyn mn trnh cao th sn phm pht trin theo m hnh ny c th tr thnh sn phm km cht lng. Khi no nn s dng m hnh tng dn? Nu phn mm c th phn chia thnh nhng thnh phn tng i c lp nhau th c th p dng m hnh ny. Vi nhng bi ton nh xy dng phn mm qun l dch v bay cc cng ty hng khng, chng trnh qun l tn dng ngn hng chng hn, tnh lin kt gia cc thnh phn kh cao nn khng nn p dng m hnh ny.
3.5. M hnh tng dn ng thi (concurrent incremental model)

M hnh tng dn ng thi c cng ty Fujitsu (Nht) s dng xy dng phn mm truyn thng c ln vo khong nm 1993. Sau ny K. Beck chnh xc ha khi nim ny vo nm 1999 v t tn l "lp trnh cc im" (extreme programming). Tuy nhin chng ta s gi l m hnh tng dn ng thi cho d hnh dung. C th tm tt m hnh ny nh sau: Trc ht ngi ta tm hiu nhu cu khch hng ri phn chia thnh nhm cc c trng tng ng vi tng phn ca phn mm cn xy dng. Sau nhm c t tin hnh xy dng c t ca phn th nht, sau khi hon thnh th trao kt qu cho nhm thit k thc hin thit k, nhm li chuyn qua c t thnh phn th hai,... c nh vy cc thnh phn c xy dng song song, v mi nhm s dng cc thng tin nhn c t cc thnh phn trc . Cch tip cn ny thc s gy ra ri ro l cc thnh phn c th khng tng thch vi nhau. Vi m hnh tng dn, kh nng ri ro phn no c gim thiu v thit k kin trc c thc hin trc khi phn mm c chia

Chng 3. Cc m hnh vng i phn mm

nh thnh tng phn v c xy dng. S m hnh ny nh sau:

...

Hnh 3.6. M hnh tng dn ng thi (concurrent incremental model) y l m hnh cn c nhiu tranh ci. Thc cht l m hnh tng dn, nhng cc phn c thc hin ng thi. M hnh ny c tnh ri ro cao hn m hnh tng dn thng thng. Bc u tin nhm pht trin phn mm da vo kin khch hng xc nh cc c trng khc nhau ca phn mm. Vi mi c trng nh vy h thng bo cho khch hng l phi xy dng trong bao lu v gi c bao nhiu. Tip theo khch hng la chn nhng c trng cho cc phn cn xy dng da trn phn tch gi c v li nhun (costbenifit analysis), tc l phn tch da trn thi gian v gi c nu ra bi nhm pht trin v li nhun d tnh ca cng ty h. Mi phn c la chn li c chia thnh tng phn nh hn, c gi l cc nhim v. Mi lp trnh vin trc ht nu ra cc trng hp th cho tng nhim v sau cng lm vic vi cng s ca h trc mt mn hnh (kiu lp trnh ny c gi l pair programming). Lp trnh vin hon thnh nhim v c giao v chy cc trng hp th bo m phn chng trnh h vit chy tt. Phn chng trnh ny sau c tch hp vo phin bn hin thi ca phn mm cn xy dng. Trng hp l tng l c phn lp trnh v tch hp cho mt nhim v ch ko di trong vi gi. Thng th cc cp lp trnh vin thc hin cc nhim v song song, nh th s tch hp s c tin hnh mt cch lin tip. Cc trng hp dng th cc nhim v c gi li cho cc php kim th tch hp sau ny. Mt s c trng ca lp trnh cc im (XP) c phn no hi khc thng: 1. My tnh ca cc nhm lp trnh cc im c t gia phng ln, trong cc phng nh c vch ngn. 2. i din ca khch hng lun lun lm vic cng nhm XP. 3. Khng ai lm vic qu gi trong hai tun lin tc. 4. Khng c phn cng c bit. Tt c cc thnh vin ca nhm XP u c th tham gia phn tch, thit k, lp trnh v kim th. 5. Nh s ch ra, khng c thit k tng th trc khi cc phn c xy dng. Thay vo , thit k s c hiu chnh khi sn phm c xy dng. Th tc ny c gi l ti phn tch nhn t (refactoring). Khi mt trng hp th khng chy tt th cc lnh s c vit li cho n khi nhm 30

lp trnh thy rng thit k l n gin, r rng v mi trng hp th u chy tt. M hnh ny c s dng hiu qu cho mt s phn mm va v nh,c dung lng cng vic t 9 ngi-thng cho n 100 ngi-nm. M hnh ny thc s c li khi yu cu ca khch hng khng r rng v hay thay i. Tuy nhin m hnh ny cn cha c s dng rng ri v do cng cha c iu kin kim chng li kt lun trn y.
3.6. M hnh ng b-v-n nh (synchronize-and-stabilize model)

Cng ty Microsoft l cng ty sn xut phn mm ng gi ln nht th gii. Hu ht phn mm ca h c xy dng da trn mt phin bn ca m hnh tng dn c tn gi l ng b-v-n nh ha (synchronize-andstabilize model). Pha xc nh yu cu c thc hin bng cch phng vn rt nhiu khch hng d kin v cc c trng ca nhu cu khch hng c lit k theo th t u tin. Sau ti liu c t c son tho. Tip theo, cng vic c chia lm ba hoc bn phn. Phn th nht cha cc c trng quan trng nht, phn th hai cha cc c trng quan trng th nh...Mi thnh phn s c xy dng bi mt s nhm nh lm vic song song. Cui mi ngy cc nhm ng b ha (synchrronize), tc l h hp li nhng phn h lm ring bit thnh mt thnh phn thng nht, kim tra, sa li v kim th. S n nh ha (stabilize) c thc hin giai on cui ca mi phn. Trong giai on ny nhng li cn st li c pht hin, c sa cha v thnh phn c ng gi (frozen), tc l khng thc hin thay i no i vi cc c t. Cc bc ng b ha c lp li bo m rng cc thnh phn khc nhau c th c kt hp v cng lm vic tt.Mt im li ca cch lm ny l nhng ngi pht trin c th sm nhn thy s hot ng ca phn mm v c th hiu chnh cc yu cu, c th l ngay trong qu trnh cc thnh phn c xy dng. M hnh ny c th p dng ngay c trong trng hp cc c t ban u khng hon thin.
3.7. M hnh xon c (spiral model)

M hnh xon c (do Boehm xut nm 1988) l kt hp cc kha cnh ca cc m hnh trn y. C th hn, m hnh xon c l s kt hp tnh lp ca m hnh bn mu v tnh h thng ca m hnh thc . V bn cht, m hnh m t s pht trin ca phn mm qua cc giai on tin ho, mi giai on c coi nh mt m hnh thc . Ban u ngi ta cha nh ngha h thng mt cch chi tit, m ch ch n nhng c trng ni bt nht. Sau phn c trng ny c xy dng v a cho khch hng xem xt, c kin (cng khng hn l s dng cho cng vic nh trong m hnh tng dn). Cng nhng thng tin phn hi t khch hng, ngi pht trin tr li thc hin cc c trng vi mc chi tit hn. Bn cht m hnh xon c nh tn gi ca n, l bt u t nhng ci khi qut nht ri i dn n chi tit. Trong qu trnh c lp k hoch cho tng giai on lm chi tit ha sn phm v phn tch ri ro. Ti liu ny chng hn, cng c bin son theo cch thc "xon c": ban u nu cc khi nim chung, v sau i su dn vo cc chi tit. Qu trnh xy dng phn mm thng cha ng nhng ri ro. V d ngi ch cht c th xin ngh vic trc khi phn mm c hon thnh. Cng ty ch to phn cng m phn mm s ci t b ph sn. Sau khi chi ph hng trm nghn la cho s pht trin phn mm bng c mt bc thay i t

Chng 3. Cc m hnh vng i phn mm

ph trong cng ngh lm cho phn mm tr nn v dng, phi thit k li hon ton. Cng ty c th nghin cu v pht trin h qun tr c s d liu, nhng trc khi sn phm c hon thnh v a ra th trng th mt cng ty khc li qung co mt h tng ng c gi r hn. C th cng ty s dng m hnh tng dn ng thi, nhng sau cc thnh phn khng th tch hp c vi nhau c phn mm nh yu cu t ra... Ni tm li, cc nh pht trin phn mm thng c th gp rt nhiu ri ro v h mun gim thiu cc kh nng ri ro n mc c th. Mt trong nhng cch lm gim thiu kh nng ri ro l s dng bn mu. Nh ta thy, s dng bn mu trong pha xc nh yu cu l cch thc tuyt vi ngn nga kh nng sn xut ra mt phn mm khng tha mn tt c cc yu cu ca khch hng. Trong cc pha tip theo ngi ta cng c th xy dng nhng bn mu thch hp. V d, cng ty in thoi c th va pht minh ra mt thut ton hiu qu cho vic phn tuyn cc cuc gi thng qua mng din rng. Nu phn mm c xy dng nhng khng lm vic c nh mong mun, th cng ty s b thit hi v kinh ph. Trong trng hp ny khch hng c th bc tc v chuyn sang la chn mt cng ty khc. Tnh trng ny c th c loi tr nu ta xy dng mt bn mu ch dng cho mc ch phn tuyn cc cuc gi v c kim th trn thit b m phng. Bng cch ny h thng tht s khng b nh hng, v gi ca cng lp trnh ch l thut ton phn tuyn. Sau khi th nghim, cng ty s quyt nh c l c nn p dng thut ton mi cho ton h thng ca h hay khng. tng lm gim thiu ri ro thng qua vic s dng cc bn mu v mt s cng c khc dn n mt m hnh mi mang tn: m hnh xon c( spiral model). Cch n gin nht xem xt m hnh ny chnh l m hnh thc trong mi pha (tr pha bo tr) c b sung phn phn tch ri ro trc. Trc khi bt u mt pha no ngi ta phn tch cc kh nng ri ro v cch thc gii quyt c th. Nu khng c cch no gii quyt c cc ri ro quan trng th d n s kt thc. Bn mu c th s dng mt cch hiu qu thu thp thng tin v s ri ro. V d rng buc v thi gian c th kim th bng cch xy dng mt bn mu v c lng thi gian hon thnh sn phm thng qua thi gian xy dng bn mu. Bn mu vi s liu hoc thit b m phng c th kim tra tnh thch hp ca mt thut ton mi... Tuy nhin cng c nhng ri ro khng th nh gi c thng qua bn mu. V d nh nu mt thnh vin ch cht xin thi vic trc khi sn phm hon thnh th liu c th thu c ngi thay th kp thi hay khng? Hoc trnh ca cc thnh vin trong nhm pht trin liu c p ng c vic pht trin phn mm quy m ln hay khng? Cc thnh vin cng ty lu nay vn thng xy dng cc phn mm s dng trong gia nh, nay phi xy dng phn mm phc tp s dng trong cng s th c lm c khng? Mt lnh vc khc m bn mu cng khng s dng c trong vic nh gi ri ro l nhng ha hn v s pht trin phn cng. Phn mm c pht trin c tnh ti s ra i ca cc thit b m cc cng ty phn cng ha hn, nhng thc t li khng xy ra nh vy... M hnh xon c cung cp cch thc lm phn mm bng cch a ra cc phin bn tng dn. S tng dn y khng phi l b sung thm cc thnh phn mi nh m hnh tng dn, m s tng y l s tin ha (evolution), tc l cng cc c trng y nhng c lm mn hn, chi tit hn. Phin bn sau cng chnh l phn mm hon chnh c th chuyn giao cho khch hng s dng. 32

M hnh xon c c chia thnh mt s khun kh hot ng, cng cn c gi l vng nhim v. V c bn, c khong t ba n su vng. V d bn vng nh sau: 1. Xc nh mc tiu, cc gii php khc nhau t c mc tiu, cc rng buc. 2. Phn tch ri ro v kh nng gii quyt (thng l xy dng bn mu). 3. Pht trin v kim tra. 4. Lp k hoch cho pha tip theo. biu din s cho m hnh xon c, ngi ta v hai ng thng vung gc ct nhau chia mt phng thnh 4 vng. Bn vng ny tng ng vi 4 vng cng vic: nu dch chuyn theo chiu kim ng h v bt u t gc phn t pha trn bn tri ta c cc vng tng ng l 1,2,3,4. Coi giao im ca hai ng thng l tm, ta v cc ng xon c i t pha trong ra ngoi cng theo chiu kim ng h. di ng xon c s biu din gi tch ly ca phn mm, Mt vng ca ng xon c s biu din mt pha. Nu i t trong ra ngoi gc phn t s 3 ta c m hnh thc . Mt pha bt u t gc phn t pha trn bn tri (gc 1) bng vic xc nh cc mc tiu ca pha, cc gii php khc nhau t c cc mc tiu ny v cc rng buc cho tng gii php. Kt qu ca giai on ny l chn c gii php thch hp. gc phn t th hai l phn tch ri ro cho gii php la chn. Mt vi bin php c a ra khc phc ri ro. Bin php thng c s dng l bn mu. Nu ri ro ln v khng c bin php khc phc th d n phi dng li. Trong mt s trng hp, d n vn c tip tc nhng vi quy m nh hn. Nu vn ri ro c gii quyt th chuyn sang gc phn t th ba l pht trin. gc cui cng l k hoch cho pha tip theo. ng xon c s c lp li chng no sn phm cha t mc hon chnh. Nhn xt m hnh xon c M hnh xon c l cch tip cn thc t cho vic pht trin cc phn mm quy m ln. Bi v phn mm c tin ha theo ng xon c, t tng quan cho n chi tit, nn ngi pht trin v khch hng hiu r hn v c phn ng thch hp vi ri ro ti tng mc tin ha. M hnh ny dng bn mu nh mt c ch lm gim ri ro. Bn mu cn gip cho khch hng nhn r tng bc pht trin ca phn mm v c kin gp kp thi nhng ngi pht trin i ng hng, nhanh chng a n phn mm hon thin. M hnh i hi xem xt trc tip cc ri ro k thut cng nh qun l ti mi giai on ca d n, v nu c p dng ng th c th lm gim ri ro trc khi nhng ri ro ny tr thnh vn thc s. Tuy nhin m hnh ny khng phi l s la chn tt nht cho mi d n. - Trc ht, phn tch ri ro s tn km, do m hnh ch c th p dng cho cc d n ln, khi m chi ph phn tch ri ro l khng ng k so vi tng chi ph ton b d n. - Phn tch ri ro c thc hin trong sut qu trnh pht trin phn mm. Tuy nhin nu l phn mm k hp ng m b dng li th cng ty pht trin s b pht. Do vi cc d n k hp ng th nh pht trin v khch hng phi phn tch ri ro trc khi hp ng c k, ch khng phi trn ng xon c nh m hnh m t. - Liu cc nh pht trin nhn thy ht cc ri ro khng? C th ri ro vn cn nhng h li ch quan cho rng ht v c th mc sai lm. Nh

Chng 3. Cc m hnh vng i phn mm

vy m hnh ny ch nn p dng nu cng ty phn mm c mt i ng chuyn gia phn tch ri ro trnh cao. Cui cng, chnh bn thn m hnh xon c cn cha c p dng rng ri nh m hnh thc hoc m hnh bn mu. Cn c thm thi gian xc nh tnh hiu qu m hnh ny.
3.8. M hnh hng i tng (object-oriented model)

Theo kinh nghim th trong phng php hng i tng, tnh lp gia cc pha v gia cc phn trong mt pha xy ra nhiu hn so vi phng php cu trc. Khi xy dng m hnh hng i tng ngi ta mun ch r c trng ny. Mt trong nhng m hnh nh vy l m hnh ni i c biu din bng cc hnh trn c mt phn chng ln nhau. Mi vng trn ch mt pha. Vng trn khng ri nhau ch ra rng cc pha c phn chung nhau. Bn trong cc vng trn c cc mi tn un cong ng ni rng trong mi pha cng c tnh lp gia cc phn. Cc pha c phn chung l: - Pha yu cu v pha phn tch hng i tng. - Pha thit k hng i tng, pha lp trnh v tch hp. - Pha s dng v bo tr.

34

Chng 5. Pha xc nh yu cu
5.1. Nm bt yu cu

Qu trnh khm ph cc yu cu ca khch hng c gi l s nm bt yu cu (requirements capture), hoc s gi m yu cu (requirements elicitation) hay tm hiu vn (concept exploration). Sau khi cc yu cu c xc nh th chng c xem xt hiu chnh, lc b bt hoc m rng. Qu trnh ny c gi l phn tch yu cu (requrements analysis). Pha yu cu thng c bt u bng vic gp g trao i gia mt vi thnh vin ca nhm yu cu v mt vi thnh vin i din cho cng ty khch hng cng nhau xc nh xem sn phm phn mm cn nhng g. Cuc trao i thng c thc hin theo cch l thnh vin ca nhm yu cu a ra cc cu hi c tnh gi m v lnh vc m phn mm c s dng. Cc thnh vin ca cng ty khch hng hoc tr li cc cu hi ca nhm yu cu, hoc ch ng nu ra cc vn m h cn. R rng nhng thnh vin tham gia khm ph yu cu ca khch hng phi c hiu vit v lnh vc m phn mm ng dng c th hiu c nhng iu khch hng ni v c th a ra cc cu hi c ngha. V vy vic nhim v u tin ca nhm yu cu chnh l tm hiu v lm quen vi lnh vc ng dng ca phn mm m khch hng mun c. V d nu phn mm l qun l cc chuyn bay ca mt hng hng khng th lnh vc cn tm hiu l cch thc qun l cc chuyn bay ca mt hng hng khng. Nu phn mm l chng trnh qun l th vin th nhm yu cu cn c hiu bit nht nh v lnh vc th vin... s dng t mt cch chnh xc, cc thnh vin nhm yu cu cn tm hiu cc thut ng. V d nu h ang chun b lm phn mm trong lnh vc sinh hc th cn tm hiu cc thut ng v sinh hc. Mt trong nhng phng php khc phc vn thut ng l xy dng b t vng v lnh vc ng dng. Mi ln gp mt thut ng mi th nhm yu cu cn tm hiu hiu c mt cch chnh xc v a thut ng ny vo b t vng. Sau khi c nhng hiu bit nht nh v lnh vc ng dng phn mm, cc thnh vin bt u khm ph, tm hiu cc yu cu khch hng theo cc cch thc sau: 5.1.1. Phng vn khch hng C hai kiu phng vn: c cu trc (structured) v khng c cu trc (unstructured). Vi kiu phng vn cu trc th cc cu hi ng (closeended) v c chun b trc. V d nh "cng ty s dng bao nhiu nhn vin bn hng", "lng trung bnh ca cc nhn vin trong cng ty l bao nhiu"... Trong cch phng vn khng c cu trc th cc cu hi c tnh m (openended) c a ra. V d nh "Hy nu ra mt vi im yu ca phn mm ang s dng m khch hng c nh thay th". Tuy nhin cng khng nn hi nhng cu qu chung chung, kh tr li nh "Hy ni cho ti bit v sn phm hin ti". Cc cu hi m nn a ra sao cho c th khch l ngi c phng vn c th cho cu tr li trong mt phm vi rng, tuy nhin cng khng nn rng qu m ch nm trong phm vi cc thng tin cn nm bt. Phng vn c hiu qu l cng vic khng d dng. iu kin quan trng u tin l ngi phng vn cn am hiu v lnh vc m h chun b phng vn. Cc cu hi a ra cng phi hp l ngi c phng vn c th ni ra nhng thng tin c ch cn thit mt cch t nhin, khng b g p hay e ngi g. i khi nhng cu hi qu thng thn v trc tip cha chc

Chng 5. Pha yu cu

nhn c cu tr li ng. V d nu hi rng "lng anh ch rt thp, nhng chi tiu th c v rt nhiu. Anh ch hy cho bit lm sao c c khon tin ngoi lng kia..." th thng l ngi c hi s tm cch n trnh cu tr li tht. Sau khi phng vn xong th ngi phng vn cn vit bo co v kt qu phng vn v nn a cho ngi c phng vn xem v gp kin. 5.1.2. Kch bn (scenario) Kch bn l mt k thut c s dng phn tch yu cu. Kch bn l m t cc thao tc cn thc hin trn phn mm cn xy dng hon thnh mt cng vic no (trong cc cng vic m phn mm cung cp). 5.1.3. Mt vi k thut nm bt yu cu khc Mt k thut khc hay c s dng nm bt cc yu cu khch hng l gi cc bng cu hi cho mt s thnh vin i din ca cng ty khch hng. Bng cch ny c th gi cho hng trm thnh vin v c th nhn c cc cu tr li di dng vit v c suy ngh k. Tuy nhin nu t bng cu hi c tr li, ngi phng vn c th a ra thm cc cu hi thch hp vi ngi c phng vn th c th nhn c cc thng tin b ch. i khi cc thng tin ny c ch hn nhiu so vi tr li vit c. Mt cch khc tm hiu v nm bt yu cu khch hng, c bit trong mi trng kinh doanh, l xem xt cc biu mu khc nhau m cc khch hng s dng. V d vic xem xt cc biu mu c in ra trong phng in n c th bit c cc dng bo co, c giy; ti liu vit v cch thc iu hnh hoc m t cng vic l nhng cngc rt hu ch gip tm ra cng vic g ang c thc hin v c thc hin nh th no cng ty khch hng. Gn y ngi ta thng p dng thm mt phng php na l quay bng video cnh lm vic cng ty khch hng (tt nhin l c s cho php ca cng ty v ca nhng ngi c quay). Nh vy c th bit c chnh xc nhng g ang xy ra. Tuy nhin cch ny c mt nhc im l phi tn kh nhiu thi gian xem li bng v phn tch rt ra nhng thng tin cn thit. Mt nhc im rt ln khc ca phng php ny l phn ln nhng ngi c quay khng thch mnh xut hin trong my quay v tr nn d dt khi hnh ng. Sau khi thu c cc thng tin ban u v yu cu khch hng th bc tip theo l phn tch cc yu cu rt ra nhng thng tin c bn nht c th gip ch cho vic xy dng phn mm.
5.2. Phn tch yu cu

Ti thi im ny, nhm yu cu c c tp hp khi u ca cc yu cu khch hng. Cc yu cu ny c phn lm hai loi: chc nng (functional) v phi chc nng (nonfunctional). Yu cu chc nng thng gn vi chc nng tng ng ca phn mm cn xy dng v th hin di dng cc mc chn ca thc n, v d nh: "Phn mm cung cp chc nng tm kim hng ha theo tn hng v ngy bn". c t phi chc nng dng ch r tnh cht no ca phn mm cn xy dng, v d tnh tin cy v bo tr c; hoc lin quan n mi trng m phn mm c s dng, v d: tt c cc m khch hng c nhp trc tip t bn phm v c lu trong mt tp bng d liu". Tm li yu cu chc nng l ni n mt cng vic c th, thng th hin bng cc mc chn trong 36

chng trnh; cn yu cu phi chc nng th ni v cc tnh cht ca phn mm, cc tnh cht ny khng th th hin c bng mt vic c th. Th d t cu "yu cu phn mm phi c giao din p, thn thin vi ngi s dng" ta khng th ni c c th l phi lm g. Mt iu rt quan trng l phn mm phi theo di c (traceable). iu ny c ngha l c th kim tra xem tt c cc yu cu c th hin trong bn c t cha; im no trong bn bo co yu cu tng ng vi im no trong bo co c t. Tng t bo co thit k hay chng trnh cng phi tng ng vi cc ti liu trc . Nh vy nhm bo m cht lng phn mm c th kim tra xem c phi tt c cc mc trong cc yu cu khch hng c thc hin cha. Tt c cc yu cu thu thp c ban u c a cho khch hng xem xt. H s sp xp cc mc yu cu theo th t quan trng, pht hin v hiu chnh nhng iu khng chnh xc hoc b i nhng mc khng cn thit... Tip theo, nhm yu cu s tho lun vi nhng khch hng c phng vn v xem xt li cc vn mt cch k cng, xem c iu g cn b b st khng. V nh chng ta bit, k thut phn tch yu cu hiu qu v chnh xc nht l lm bn mu, v vy nu c th th nhm chuyn qua bc lm bn mu a cho khch hng xem xt mt cch trc quan hn.
5.3. Lm bn mu (prototyping)

Bn mu c xem l k thut phn tch yu cu chnh xc nht. Bn mu l phn mm c xy dng nhanh ch yu th hin cc chc nng quan trng nht ca phn mm cn xy dng. Mc ch ca bn mu l th hin cc yu cu khch hng, do khi xy dng ngi ta ch nhiu n giao din v cc bo co in ra. Nhng vn quan trng khc m mt phn mm sn phm cn phi c nh tnh bo mt, an ton d liu, tc tnh ton, kim tra v khc phc li... u cha c ch khi lm bn mu; ngha l bn mu ch l th hin bn ngoi ca sn phm v b qua nhng phn c che du. Bn mu c ci t khch hng s dng th. Qua vic thao tc trc tip vi bn mu, h s thy c cc chc nng ca phn mm th hin ng cc yu cu ca h cha, ci g cn thm bt hay hiu chnh b sung. Nhng ngi pht trin s hiu chnh bn mu cho n khi khch hng va v cho rng mi yu cu ca h c bao hm trong phn mm (tt nhin l v hnh thc). Bn mu s c dng lm c s bin son ti liu c t. Nh tn gi ca n, bn mu nhanh (rapid prototype) c xy dng vi mc ch ngi pht trin v khch hng thng nht cng nhanh cng tt nhng iu m sn phm chnh cn lm. Nh vy c rt nhiu iu c th b qua khi lm bn mu. Bn mu c th thng xuyn gp s c v phi khi ng li; mn hnh nhp d liu c th cha p; bo co in ra cn thiu biu tng cng ty khch hng,...

Chng 5. Pha yu cu

5.4. Tnh thn thin vi ngi dng ca phn mm

Khch hng thao tc vi bn mu thng qua giao din ngi s dng (user interface) hay cn gi l "giao din ngi my" (human-computer interface, HCI). Nn khuyn khch khch hng lm quen v ch ti giao din ngi my. iu ny c th gip cho sn phm sau ny t c "tnh thn thin vi ngi s dng" (user-friendliness), mt tiu chn quan trng ca tt c cc phn mm. Mt phn mm c tnh thn thin vi ngi s dng c ngha l phn mm d hc s dng cho c nhng ngi t hiu bit v my tnh. Mt chng trnh thn thin vi ngi s dng thng bao gm cc yu t sau: dng thc n hoc cc biu tng thay cho lnh phi nh; lun c sn tr gip mn hnh mi khi n phm; cc chc nng ca chng trnh c t chc trn bn phm theo mt trt t logic; cc thng bo li c gii thch nguyn nhn v cch khc phc; cc tnh nng trung gian v phc tp c lm n, khng nhn thy khi gy ri mn hnh v ln ln cho ngi mi hc... Bn mu nn c xy dng c giao din ngi my thn thin vi ngi dng (user-friendly HCI). HCI ca bn mu gn ging vi HCI ca sn phm tht, nh vy sau ny khch hng s nhanh chng lm quen vi sn phm tht v cm thy l cc yu cu ca h c p ng.
5.5. Bn mu nh mt k thut c t

Bn mu c s dng nh mt cng c xc nh rng cc yu cu ca khch hng c nhn bit mt cch chnh xc. Khi bn c t hon thnh v c k duyt bi khch hng th vai tr ca bn mu cng kt thc. Tuy nhin c mt cch tip cn khc l ngi ta xem bn mu nh l c t hoc l mt phn quan trng ca c t. Nh vy khng cn tn thi gian vit bn c t v nhng kh khn thng gp trong phn c t nh s khng r rng, thiu cc thnh phn hoc c s mu thun s khng cn. V bn mu thay th c t, nn ta ch cn ghi ch rng sn phm tht s hot ng ging nh bn mu, ng thi lit k thm cc c trng khc m sn phm cn c nh cp nht tp, bo mt, x l li... Tuy nhin vic s dng bn mu nh c t cng c nhiu nhc im kh khc phc. c t l ti liu c khch hng k duyt v l cn c nh pht trin v khch hng k hp ng. R rng bn mu khng th thay th vai tr ny ca c t, khng th cn c vo bn mu kt lun rng im ny hay im khc ca hp ng cha c thc hin ng. Cho d phn mm c pht trin trong ni b c quan th vn c th c vn ny sinh gia ngi pht trin v ngi qun l. R rng cc nh pht trin khng th ch da vo bn mu thuyt phc cc nh qun l l h lm ng cc yu cu m c quan t ra. L do th hai khin cho vic s dng bn mu lm c t b hn ch l vn bo tr. Cho d c y cc ti liu th vic bo tr bao gi cng l cng vic kh khn v tn nhiu tin ca. Nu thiu ti liu c t vit th vic bo tr thc s tr thnh cn c mng. c bit vi cng vic bo tr nng cao (enhancement), tc l thay i cc yu cu ban u th cng vic thay i li thit k c bit kh khn nu khng c ti liu c t. Vy ch nn xem bn mu l mt k thut phn tch yu cu. N c s dng bo m rng cc yu cu ca khch hng c nm bt mt cch y v chnh xc. Bc tip theo l da vo bn mu bin son ti liu c t di dng vn bn.

38

5.6. C nn s dng li bn mu?

Thc t cho thy rng cho d v hnh thc bn mu ging vi sn phm tht v c th hiu chnh tr thnh sn phm tht, nhng v cht lng thc s th bn mu v sn phm tht cn mt khong cch rt ln. V d nh phn lu tr d liu hay mt s phn cht lng cao nh thut ton ti u, tnh bo mt,...cn cha c trong bn mu. Kinh nghim cho thy rng nn thit k li v xy dng li hon ton phn mm. Ch nn s dng mt s phn ca bn mu c to nn bi cc b cng c CASE nh b to mn hnh (screen generator), to bo co (report generator). Cng c khi bn mu v bn chnh khng s dng cng mt ngn ng lp trnh. Trong trng hp ny th vic vit li hon ton bn chnh l iu kh hin nhin, khng th khc c.
5.7. S dng cc cng c CASE trong pha yu cu

C th s dng mt ngn ng lp trnh no vit bn mu. Vai tr ca bn mu l cu ni gia ngi pht trin v khch hng ngi pht trin nm bt nhanh v y cc yu cu khch hng. Nh vy bn mu cn c vit cng nhanh cng tt. Ngi ta thy rng ngn ng lp trnh thng dch (interpreted language) kh thch hp cho vic xy dng bn mu, v khng mt thi gian dch hay lin kt nh ngn ng bin dch (compiler). Tnh hiu qu c nng cao nu cng c CASE c lin kt cng vi ngn ng lp trnh. Cc ngn ng c h tr cng c CASE nh Smalltalk, Java, Perl (Practical Extraction and Report Language) c th s dng xy dng bn mu nhanh v hiu qu. HTML cng l mt ngn ng lm bn mu c a chung. Nu bn mu chc chn c vt i th HTML cn mt li im na: tht kh hnh dung sn phm chuyn giao li c vit bng HTML, nh vy vic vit bn mu bng HTML gn nh c ngm hiu l bn mu s c vt i. Trong nhng nm gn y mt s ngn ng lp trnh thuc th h th 4 (fourth-generation laguage, 4GL) nh Oracle, PowerBuilder v DB2 cng c s dng lm bn mu. Mc ch thit k ca hu ht 4GL l vit t dng lnh hn cho cng mt chc nng so vi ngn ng th h th 3 nh Java, Ada hay C++. Phn ln 4GL l thng dch v c h tr cc cng c CASE tnh nng cao, do lm tng tc xy dng bn mu. Tuy nhin 4GL cng c nhc im. Mi trng CASE trong 4GL c nhng thng l mt phn ca mt tp hp ln hn cc cng c c s dng cho mt quy trnh phn mm y (complete software process). Cc nh cung cp 4GL thng khuyn khch s dng ngn ng ca h lm bn mu, sau hon thin dn thnh bn chnh thc. Cc nh cung cp khng nhn thc c rng bng cch ny quy trnh phn mm c th suy thoi thnh m hnh xy dng-v-hiu chnh (build-and-fixed model). ng tic l cc nh cung cp 4GL mun khch hng mua sn phm ca h v h qung co rng cng c CASE ca h c th thc hin mi phn cng vic ca mt d n phn mm. Gi s rng ngi qun l d n b ra kh nhiu tin mua cng c CASE h tr cho tt c cc pha ca quy trnh phn mm. Tht kh thuyt phc h b thm tin mua mt ngn ng khc pht trin phn mm chnh thc v b i bn mu va mi xy dng. Tuy nhin cn ch cho h thy rng cho d nh vy vn cn r hn l c gi li bn mu v pht trin n thnh sn phm chnh thc. S tn mt s tin khng l cho vic chuyn i bn mu thnh bn chnh thc v bo tr sau ny.

Chng 5. Pha yu cu

5.8. C khi nim yu cu hng i tng khng?

Mc ch ca pha yu cu l xc nh cc nhu cu thc ca khch hng, ngha l xc nh xem chc nng ca h thng cn xy dng l g. Pha yu cu khng cp n vic h thng s c xy dng nh th no. Nh vy y khng ni n phng php hng i tng hay phng php c in, khng c khi nim "yu cu hng i tng". Ti liu s dng (user manual) trong pha ny ch ni n vic ngi s dng cn thc hin cc bc thao tc nh th no khi chy chng trnh, ch khng ni n vic phn mm c xy dng nh th no. Nh vy trong pha yu cu ch tr li cu hi l "phn mm lm g" , cn cch thc m phn mm c xy dng th cha ni ti. Cho d trong pha yu cu ngi pht trin phi xy dng bn mu th mc ch ca h l bng cch no xy dng nhanh bn mu th hin c cc chc nng m khch hng cn. C th h s dng mt ngn ng c in nh C hay Lisp, hoc thm ch ngn ng h tr hng i tng nh C++, nhng h cha quan tm n vic thit k cc lp sao cho hp l, ngha l v thc cht khng th ni bn mu c vit theo phng php hng i tng hay khng.
5.9. Tm tt chng

Thc hin pha yu cu nh th no? Nm bt yu cu (requirements elicitation): - Phng vn cc thnh vin ca cng ty khch hng xc nh nhu cu ca h (determine their needs). Phn tch yu cu (requirements analysis): - Vit ti liu ghi li cc yu cu s khi ca khch hng (preliminary requirements). - Tinh ch li ti liu yu cu khch hng (refine the requirements document). - Xy dng bn mu th hin cc chc nng c bn ca phn mm cn xy dng. - Hiu chnh bn mu theo s gp ca cc thnh vin ca cng ty khch hng c la chn dng th bn mu.
5.10. Pha yu cu: tm hiu vn air gourmet

Gourmet theo ting Anh c ngha l ngi snh n, a gourmet restaurant c ngha l ca hng n phc v nhng ngi snh n, tc l ca hng gm cc thc n chn lc. Air Gourmet l dch v cung cp thc n c bit cho cc hnh khch trn cc chuyn bay. n gin trong cch vit, t y i lc thay v vit y Air Gourmet, chng ti ch vit l AG. Rt nhiu hnh khch i my bay c nhu cu n king, v mi hng hng khng u c gng cung cp thc n theo yu cu ca khch, nu ko s hnh khch c bit ny cho cng ty ca mnh. Vic phc v thc n c bit c mt s c im sau y: 1. Chi ph cho vic phc v thc n c bit thng cao hn so vi thc n thng thng. 2. V thng s ngi yu cu thc n king rt t, nn khng th tng doanh thu bng cch t mua loi thc n ny vi s lng ln. 3. Rt t cng ty hng khng chun b thc n king trong nh bp ca h, m h thng t mua mt nh hng khc, do chi ph b y ln cao. 4. Nhiu trung hp khch hng t ch v t thc n c bit xong li 40

chuyn sang i chuyn khc. Nh vy thc n c bit dnh cho h li c mt ngi khc s dng. 5. i khi thc n t ri nhng do mt s sai st nn khng a n c ng ngi yu cu. Cng ty Air Gourmet rt t ho v dch v cung cp thc n trn cc chuyn bay ca h. Cho n nay li nhun ca AG c bo m nh vo vic khch hng lun vui lng tr s tin cao hn gi v mt cht uc dng thc n c bit. Tuy nhin gn y th ng bin li nhun c phn chao o, v cc nh iu hnh AG ang tm cch gim bt chi ph. H nhn ra rng ch c mt t l nht nh cc thc n c bit n c ng ngi yu cu. Trc khi thc hin mt bin php no , cc nh qun l mun c c s liu tin cy lin quan n s thnh cng hoc tht bi ca dch v cung cp thc n c bit. Bi v thc n c bit c cung cp bi mt s nh hng bn ngoi, nn AG ng rng cht lng thc n khng t c chun nh cc nh bp ca AG vn lm. V vy mt cuc kho st kin khch hng cn c thc hin xc nh thi khch hng v loi thc n ny. AG cng mun bit rng c bao nhiu phn trm thc n c bit khng c a c n ng khch hng yu cu. Ging nh cc hng hng khng c phc v thc n king, 24 gi trc mi chuyn bay, c s d liu ca h thng t ch ca AG c truy cp v cc bo co c in ra cc nh cung cp chun b v chuyn thc n c bit n ng chuyn bay. Ngay sau khi my bay ct cnh, danh sch nhng hnh khch n king s c in ra trn my bay. Bo co ny bao gm m s t ch, h tn, s ch ngi, loi thc n m h yu cu. (Hnh khch khi ln my bay cn xut trnh mt loi phiu quy nh, do my tnh trn my bay c thng tin in bo co ny). c th nhn c cc thng tin do cc nh qun l yu cu, cn phi hiu chnh li phn mm ca AG. Trc ht, c mi ln c yu cu t thc n c bit th cn ghi li cc thng tin sau: m s t ch, s chuyn bay, ngy, gi, h tn v a ch hnh khch, loi thc n king c t. Cc thng tin ny l cn thit phn mm mi s dng khi phn tch s liu v thc n king. Th hai, danh sch cc mn n king c in trn my bay cn c thm mt ct gm cc vung bn cnh. Hnh khch tng ng s nh du vo vung nu h nhn c thc n ng yu cu. Sau chuyn bay, danh sch cc mn n s c duyt qua. i vi phiu c nh du, hnh khch tng ng s nhn c phiu nh gi v h c th nh gi cht lng thc n t 1->5 (km nht n tt nht). Thng tin phn hi ny s c lu vo c s d liu x l sau ny. Nh vy, cn thc hin 3 bc ni tip nhau phn tch s liu v thc n king: thng tin v cc thc n king c in ra 24 gi trc khi my bay ct cnh, x l cc phiu dng nh du cc hnh khch nhn c thc n yu cu, v x l cc phiu nh gi cht lng thc n. D liu c ghi li theo khun dng sau y: M s t ch (Reservation identifier) S chuyn bay (Flight number) Ngy bay (Flight date) S gh (Seat number) H tn hnh khch (Passenger name) a ch hnh khch (Passenger address) Thc n c bit (Special meal type) Hnh khch c mt trn chuyn bay khng? (Was the passenger on board the flight?)

Chng 5. Pha yu cu

Thc n king c c phc v khng? (Was the special meal loaded?) im nh gi cht lng thc n ca hnh khch (Perceived meal quality) Phn mm mi cn lu thng tin vo c s d liu v cho php ngi dng la chn in bn bo co. Vi mi bo co, ngi s dng cn nhp thi gian bt u v thi gian kt thc. Bn bo co nh sau: 1. Vi mi loi thc n c bit c th, cn in ra cc thng tin sau: T l phn trm loi thc n ny c c a n cho khch hng (trn tng s ln thc n ny c t). T l phn trm thc n ny c t trn tng s ln t. Phng quan h khch hng (Customer Relation Department) cn cc thng tin sau: 2. H tn v a ch ca tt c cc khch hng c t nht hai ln khng nhn c thc n t trong khong thi gian in bo co v thi im m nhng ln ny xy ra. 3. H tn v a ch ca tt c cc khch hng, nhng ngi cho rng thc n h nhn c khng phi l tt nht, im nh gi v thi gian m nhng ln ny xy ra. Cc nh hng cung cp thc n nht cn bit mt s thng tin iu chnh cht lng thc n ca h: 4. Vi loi thc n nht (low-sodium meal), in ra s chuyn bay, ngy bay v im nh gi. Cc nh qun l cng ty Air Gourmet rt quan tm n ri ro khi phi hiu chnh li phn mm c bng cch thm vo mt s chc nng mi. H cng rt min cng khi phi mua mt s my qut (scanner) dng qut cc phiu nhn c t hnh khch (phiu nh du khch hng nhn c thc n hay khng v phiu cho im). Yu cu phn mm l c s dng bng bn phm v c tnh c lp cao, c th nhp cc yu cu t ch, kim tra hnh khch, qut danh sch cc thc n c bit c in trn my bay (thay cho thao tc nhp t bn phm), qut cc phiu nh gi v a ra nhiu dng bo co khc nhau. cng vic c bo m tin cy, cng ty Air Gourmet thu mt cng ty phn mm bn ngoi pht trin phn mm ny.

42

Chng 6. Pha c t c cu trc Pha c t hay cn c gi l pha phn tch, l pha tip theo pha yu cu. Nu gi l pha phn tch th d nhm vi giai on phn tch yu cu trong pha yu cu, do ngi ta thng gi l pha c t (specification). Ti liu bo co ca pha ny phi tha mn hai yu cu tri ngc nhau. Mt mt, ti liu phi r rng, d hiu i vi khch hng, thng l nhng ngi khng phi l chuyn gia my tnh. Mt khc, ti liu c t li phi y v chi tit, bi v y gn nh l ngun duy nht son tho thit k. Nh vy ti liu c t l m t sn phm trong mt khun dng khng mang tnh k thut qu, sao cho c th d hiu i vi khch hng, nhng ng thi cng phi chnh xc sao cho cn c vo c th xy dng c phn mm khng c li v ng nh yu cu ca khch hng. Chng ta s tm hiu hai k thut c t: k thut c in hay cn gi l k thut c t c cu trc (hoc cn gi l phn tch c cu trc) v phn tch hng i tng. Chng ny chng ta s tm hiu k thut c t c cu trc, cn trong chng 7 tip theo ta s nghin cu k thut c t hng i tng hay cn c gi n gin l phn tch hng i tng. Lu rng trong thut ng "phn tch c cu trc" th t "cu trc" ng vai tr tnh t b ngha cho phn tch. Thut ng ny c dch t ting Anh l "structured analysis" hoc "structured specification". Nh vy nu dch ng th phi l "phn tch theo kiu cu trc". T "cu trc" y khc vi ngha ca t "cu trc" trong cu "phn tch cu trc cu", v trong cu ny th t "cu trc" l danh t. Thut ng "phn tch hng i tng" cng c dch t thut ng ting Anh l "object-oriented analysis", v cng c ngha l "phn tch theo kiu hng i tng". Nh vy, cng mt h thng cn xy dng, nhng ta c th nhn nhn v xem xt h thng theo phng php cu trc hoc theo phng php hng i tng. bn c trnh c s hiu nhm, chng ti i khi s gi l "phn tch (hay c t) theo phng php cu trc" v "phn tch theo phng php hng i tng". Tuy nhin thng th chng ti cng vit n gin l "phn tch c cu trc" v "phn tch hng i tng" nh cc ti liu khc thng s dng. Chng ta s s dng kh nhiu ln thut ng "h thng". T "h thng" y l ni ti phn mm cn xy dng c t trong mi trng n c ng dng. Cho nn ta ni "phn tch h thng" c ngha l ta xem xt chng trnh cn xy dng cng vi cc yu t lin quan. V d vi chng trnh qun l bn hng th ta xem xt chng trnh cng vi cc thao tc lin quan n ngi bn hng v khch hng... Tm li khi ni "phn tch h thng" th ta hiu chnh l phn tch phn mm cn xy dng.
6.1. Ti liu c t

Ta bit rng ti liu trong pha yu cu hoc l bn mu, tc l chng trnh trong ch ch n giao din, ct th hin c cc yu cu ca khch hng; hoc l ti liu m t cc yu cu ca khch hng c vit bng ngn ng t nhin. Nhim v ca pha c t l m t phn mm thc hin cc yu cu . Phi m t y v chi tit sao cho c th da vo nh gi phn mm sau ny c p ng c yu cu t ra hay khng. Ti liu c t cn l c s thc hin thit k. Nu nh ti liu c t tr li cu hi "phn mm phi lm nhng vic g?" th ti liu thit k li a ra cu tr li cho cu hi "phi lm nhng vic nh th no?". Vo nhng nm 60, 70 ca th k trc, ngi ta vn dng ngn ng t nhin

Chng 6. Pha c t c cu trc

vit ti liu c t. Tuy nhin ngi ta pht hin ra rng ti liu bin son theo kiu nh th ny rt hay c li v c nhiu iu mp m. V d ch vi ti liu c t ca Naur (1969) cho vn x l vn bn m t c th vit thnh chng trnh khong t 25 n 30 dng lnh, ngi ta pht hin ra nhiu li. Trong nm 1985, Mayer vit mt bi bo ni v vn ny. Mayer a ra kt lun rng nu dng ngn ng t nhin vit c t th s dn n tnh trng ti liu c t cha ng cc mu thun, nhng iu nhp nhng khng hiu c ngha chnh xc hoc b thiu, khng y . ng ngh s dng cc thut ng ton hc biu din c t mt cch hnh thc. Mayer dng cch ny c t vn x l vn bn v t c t ton hc ng chuyn i thnh c t bng ting Anh. Tuy nhin ngi ta li tm thy nhng iu nhp nhng trong c t ting Anh ny. Vy ngn ng t nhin khng phi l cch thc tt biu din c t. Vo nhng nm 70, c mt s tc gi dng cc biu tng trc quan ( ha) biu din c t. C ba k thut ha tr thnh ni ting v c s dng nhiu. l ca DeMarco (1978), Gane v Sarsen (1979), Yourdon v Constantine (1979). C ba k thut ny u kh tt v v c bn l tng ng. Tuy nhin k thut ca Gane v Sarsen c s dng nhiu hn v do chng ta s tm hiu k thut ny trong cc phn tip theo.
6.2. Phn tch h thng bng phng php cu trc

Phng php phn tch c cu trc (structured analysis, SA) do DeMacro v nhng ngi khc xut vo khong nhng nm 70 ca th k trc. Phng php ny ngy nay vn cn pht huy tc dng, c bit l vi cc h thng thng tin qun l. N vn l nn tng ca mt s phn mm tr gip phn tch v thit k ni ting, nh Designer 2000 ca Oracle chng hn. c im ca phng php ny l n gin, d thc hin nhng khng qu s lc. Cng c chnh c s dng l biu lung d liu (data flow diagram, DFD) m ta s tm hiu trong cc phn sau. Mc ch ca SA l tin hnh phn tch cc chc nng ca h thng thc t thnh lp mt m hnh logic cho h thng, di dng mt hay nhiu DFD. N vn dng ba k thut: - K thut phn mc, hay cn gi l phn tch t trn xung (top-down analysis): thc cht l phn r yu t phc tp thnh cc yu t n gin hn. - K thut chuyn i DFD vt l (trong cha ng cc yu t vt l nh a, bng t, giy, my in...) thnh DFD logic ( loi b cc yu t vt l). - K thut chuyn i DFD ca h thng c thnh DFD ca h thng mi bng cch thm, bt, hiu chnh li cc yu t trn DFD c. 6.2.1. Mt s k thut thng s dng trong cng ngh phn mm Cc k s phn mm thng s dng hai loi cng c: loi cng c dng phn tch (analytical tool) nh tinh chnh tng bc (stepwise refinement) hoc phn tch mi quan h vn-li (cost-benefit analysis), v cc phn mm c dng pht trin v bo tr cc phn mm khc. Cc b phn mm ng vai tr nh my ci pht trin cc phn mm khc c gi l cng c CASE (computer-aided software engineering). Trong phn ny chng ta s ch xem xt k thut tinh chnh tng bc, l k thut c lm nn tng cho rt nhiu k thut khc ca cng ngh phn mm. Bn cht ca tinh chnh l "hon a ra cc quyt nh v chi tit n chng no c th, nhm tp trung vo cc im trng yu nht". L do s dng k thut tinh chnh chnh l nh 44

lut do Miller a ra vo nm 1956, trong ni rng con ngi ta cng lc ch c th tp trung s ch ca h vo 7 2 vn . Khi pht trin phn mm thng c kh nhiu vn cn xem xt trong cng thi gian. V d nh class thng c nhiu hn 7 thuc tnh v phng thc, mi khch hng thng c nhiu hn 7 yu cu... K thut tinh chnh gip cho cc k s phn mm ch cn ch ti khong 7 vn thch hp nht ti mi thi im trong qu trnh pht trin phn mm. 6.2.2. Mt s dng biu thng s dng Nh chng ti ni ti, vic dng ha biu din cc vn c s dng t kh lu v t ra kh hiu qu, khng ch ring trong lnh vc cng ngh phn mm m c trong cc lnh vc khc. Biu din ha cho chng ta mt hnh nh trc quan, d nm bt hn l vit hoc s dng li ni. Trong cng ngh phn mm, k thut ny ch yu c dng t pha c t, nhng i khi c s dng c trong pha yu cu lm cho vn c r rng hn. V d trong pha yu cu c th dng s biu din t chc mt c quan, s trao i thng tin gia cc b phn... Ta thng gp nhng dng s sau y trong cng ngh phn mm:

a. Biu phn cp chc nng (FD)


Biu phn cp chc nng (functional diagram, FD) l loi biu c cu trc cy din t s phn r dn dn cc chc nng t i th n chi tit.Mi nt trong biu l mt chc nng, v quan h duy nht gia cc nt l quan h bao hm: chc nng trong nt cha bao gm cc chc nng trong cc nt con. Hnh 6.1. sau l biu biu din cc chc nng qun l ca mt doanh nghip.

Chng 6. Pha c t c cu trc

Hnh 6.1. Mt biu phn cp chc nng c im ca biu chc nng l: - Cho mt cch nhn khi qut, t i th n chi tit v cc chc nng, nhim v cn thc hin. - D xy dng, bng cc phn r dn cc chc nng t trn xung. - Thiu s trao i thng tin gia cc chc nng. i vi h thng phc tp th s trao i thng tin gia cc chc nng l khng th thiu, do biu ny ch c s dng lm m hnh chc nng nh phn m u ca pha c t, hoc thm ch c s dng trong pha yu cu hoc trong phn ring v tm hiu lnh vc ng dng. i vi h thng n gin, cc chc nng c x l mt cch c lp (tc l khng c trao i thng tin cho nhau) th m hnh phn tch chc nng c th s dng lm ti liu c t cho h thng. C th thy rng nhng x l thc s ch xy ra cc nt l, v chc nng nt cha li c phn r thnh cc chc nng cc nt con ca n. Thng th chc nng nt l l kh n gin, c th gii thch trc tip m khng cn phn r tip. Cch din t thao tc cn thc hin nt l c gi l c t chc nng v gi tt l Pspec (process specification). M t ny thng c trnh by mt cch ngn gn, khng vt qu mt trang giy A4, v gm hai phn: u v thn. u gm tn chc nng, cc d liu vo, d liu hoc kt qu ra. Phn thn m t ni dung x l, v d cng thc ton hc, bng hoc cy quyt nh, s khi, ngn ng t nhin cu trc ha. Hnh sau l mt v d v c t chc nng. u : Tn chc nng:Tr cng u vo: H s lng a v s ngy cng n trong thng u ra: Lng Thn: Lng = n*a*10 Hnh 6.2. Mt P-spec Ch . Cn phn bit FD vi s t chc mt c quan. V d nh s sau:

46

Kh?ch h?ng

Hnh 6.3. Mt s t chc Bi s phn cp qun l cng thng c p dng trong cc c quan, cho nn s t chc cng c dng cy. Ni chung cng c s tng ng gia t chc v chc nng, nhng s tng ng ny khng nht thit l 1-1, do cu trc cy phn cp chc nng c th khng c dng nh cy s t chc. Cc nt trn cy chc nng biu th cc chc nng tc l cng vic cn thc hin; cn cc nt trn cy s t chc li l tn cc b phn... S t chc ch c dng khi cn thit trong pha yu cu hoc trong phn ring v tm hiu lnh vc ng dng.

b. Cc lu h thng (SD)
Lu h thng (systematic diagram, SD) l mt loi biu c s dng din t qu trnh x l thng tin ca mt h thng vi cc c im sau: - S din t l mc vt l, ngha l ch r c phng tin x l, v d a thng tin ra trn giy hay bng t, a t... - Ch r cc cng vic cn thc hin. - Ch r trnh t cc cng vic v cc thng tin c chuyn giao gia cc cng vic . Loi biu ny c IBM xut. SD phc v cho s din t mc vt l v cng kh d hiu. SD c s dng nhiu vo nhng nm 60-70 ca th k trc. Chng thng c s dng giai on kho st h thng c hoc giai on thit k. Ngy nay cc phng tin x l v lu tr thng tin kh a dng, nn vic xy dng biu qu chi tit, ch r c cc phng tin lu tr s lm cho biu tr nn qu phc tp v b hn ch trong ng dng, do ngi ta t s dng.

c. Biu lung d liu (DFD)


Biu lung d liu, tn ting Anh l "data flow diagram" (DFD), l mt loi biu c s dng din t qu trnh x l thng tin ca mt h thng vi cc c im sau: - S din t l mc logic (ngha l khng ch r phng tin x l v lu tr thng tin). - Ch r cc cng vic cn thc hin. - Ch r trnh t cc cng vic v cc thng tin c chuyn giao gia cc cng vic . Cc tc gi s dng mt s biu tng khc nhau biu din DFD. Sau y l 4 biu tng m Gane v Sarsen s dng: (1)Cc tc nhn: Mt tc nhn (hay cn c gi chnh xc hn l tc nhn ngoi hay im mt), l mt thc th ngoi h thng, c trao i thng tin vi h thng. (Thc th l mt i tng tn ti trong th gii thc, v d ngi, d n,
xe my...)

Tc nhn trong DFD c biu din bng mt hnh vung, bn trong l tn tc nhn. V d tc nhn "khch hng" c biu din nh sau:

Chng 6. Pha c t c cu trc

(Mt s tc gi s dng biu tng hnh ch nht) (2) Cc chc nng: Mt chc nng l mt thao tc bin i d liu (thao tc ny c th gm nhiu thao tc khc nn cn c gi l qu trnh). Chc nng c biu din bng hnh ch nht c gc trn. V d chc nng "lp ha n" c biu din nh sau:

(Mt s tc gi s dng hnh trn hoc hnh van. (3) Cc lung d liu: Mt lung d liu l mt tuyn truyn dn thng tin. Lung d liu c biu din bng mi tn, pha trn mi tn l tn ca lung d liu. V d lung d liu "ha n lp" c biu din nh sau:

(4) Cc kho d liu: Mt kho d liu l ni cha d liu s dng v sau. Tn kho d liu c cha trong mt hnh ch nht m v pha bn phi. V d kho d liu "Hng ha" cha danh sch cc mt hng c biu din nh sau:

C tc gi s dngbiu tng l hai on thng song song, gia l tn kho d liu. V d kho d liu "khch hng" cha danh sch cc khch hng c biu din nh sau:

Ghi ch. T nh ngha cc biu tng, ta c th rt ra mt s iu cn lu nh sau: - Khng c lung d liu gia hai tc nhn ngoi. V d vi h thng phn mm h tr bn hng ca ca hng H c th c cc tc nhn ngoi l khch hng K v nh cung cp C. R rng c th c mi lin h gia khch hng K vi nh cung cp C, nhng mi lin h ny khng lin quan n h thng nn khng c a vo biu . - Khng c lung d liu trc tip gia hai kho d liu (v khng c hai kho khc nhau cha cng mt loi d liu) - Nu lung d liu cng tn vi u ra ca chc nng th khng cn vit ln lung d liu. V d:

Khi s dng DFD lm ti liu c t ngi ta thng b sung thm mt s yu t na. V d ngi ta thm vo biu nhng biu tng din t s iu khin. Cng ging vi biu phn cp chc nng, trong DFD i vi cc chc nng n gin mc cui cng phi c thm P-spec, tc l bn c t chc nng. 48

d. Mt s dng biu khc


Ngoi cc dng biu ni trn ngi ta cn s dng nhiu dng biu khc, nh biu MERISE chng hn. Thm ch i khi nu thy cn thit, ngi ta c th t to ly biu din t vn ca mnh (v d biu din t qu trnh trao i cng vn giy t mt c quan chng hn). Ni cho cng, mc tiu ca chng ta l xy dng c phn mm ng nh mong i, va d bo tr li hot ng chnh xc. Nu bng cch no c th lm c iu ny v c th gii thch cho mi ngi hiu th ta c th lm. Nhng kin thc v cng ngh phn mm m con ngi tch ly c d nhin l ngun tham kho qu gi.

e. Cc phng tin c t chc nng


Mt im chung trong FD v DFD l din t mt yu t, ta phn r n thnh cc yu t n gin hn. V d nh vi FD chng hn, ta phn r cc chc nng theo s hnh cy cho n khi gp chc nng n gin nht khng phn r c na th dng li. Trn cy biu din th chc nng khng phn r c th hin bng nt l v phi gii thch c th. Cch gii thch ny c gi l c t chc nng (P-Spec) nh chng ta xem xt phn trn. v d trn, ta dng mt cng thc ton hc lm phng tin m t trong phn thn ca P-spec (Lng= n*a*10). Ngi ta cn s dng mt s phng tin khc nh sau: - Cc bng quyt nh v cy quyt nh. c s dng khi chc nng c c t thc cht l mt s phn chia cc trng hp ty thuc vo mt iu kin no . - Cc s khi. S khi s dng 3 loi biu tng: hnh thoi biu din iu kin, hnh ch nht biu din hnh ng phi lm v mi tn biu din s chuyn giao iu khin (chuyn giao quyn thc hin). Vi vn n gin th vic din t bng s khi kh d hiu, v vy n thch hp cho ngi mi lp trnh. Nu nh cc DFD ch tp trung din t nhng vic phi lm th s khi ngoi cc vic phi lm cn ch ra cch dn dt thc hin cc vic . V vy vi vn ln, c nhiu yu t v nhiu mi quan h th s khi rt phc tp v kh xy dng. Do s khi khng thch hp cho vic din t cc chc nng phc tp. - Ngn ng gi lp trnh (m gi). V hnh thc trng ging ngn ng lp trnh nhng b i nhng chi tit c th. Mc ch l gip ngi c hiu c thut ton v cch thc vit chng trnh cho mt ngn ng lp trnh bt k no . 6.2.3. Phn tch c cu trc mt h thng c th C th ni rng khng c mt chun mc chung theo c thc hin tng bc l c th xy dng nn mt phn mm p ng c yu cu t ra. Cho d c nhng nguyn l chung, nhng vi tng vn c th, mi k s phn mm li c cch nhn nhn v phn tch khc nhau, v do a ra cc cch gii quyt vn khc nhau. By gi chng ta s bt u cng vic phn tch theo phng php cu trc cho mt bi ton c th: xy dng phn mm h tr cng vic bn hng cho mt ca hng chuyn bn cc a CD lu tr cc phn mm my tnh, nh a ci t Vietkey, Microsoft Office, VB, a tr chi... Gi s ch nhn ca ca hng c tn l Hoa. Hoa mua cc phn mm t cc nh cung cp khc nhau v bn li cho khch hng. C lu tr cc a c

Chng 6. Pha c t c cu trc

nhiu ngi a chung v t mua cc loi a khc nu cn. Hoa cho mt vi c quan v c nhn c th mua chu. C th hnh dung cng vic hng ngy ca Hoa din ra nh sau: Khi c khch hng n, hoc l h xem catalog cha danh sch cc bng a, hoc h ni ra tn bng a cn mua. Hoa s xem trn cc ngn a, hoc trong catalog tm a m khch yu cu. Nu tm thy th Hoa s xem trong danh sch khch hng xem ngi khch ny cn n khng. Nu khch ng mua th hoc l Hoa vit ho n thanh ton bng tin mt, hoc li ghi vo s n. Gi s bn l ngi gip Hoa tin hc ha cng vic bn hng ny, v Hoa tr thnh khch hng t bn lm phn mm. Gane v Sarsen ngh mt k thut gm 9 bc phn tch nhu cu khch hng ( y l khch hng t lm phn mm, vy chnh l Hoa) nh sau: Bc 1. Xy dng DFD (biu lung d liu). Cn c vo vn thc t, bc u tin ta c th xy dng DFD logic nh sau:

Hnh 6.4. DFD u tin trong qu trnh tinh chnh Cn c vo biu ny ta c th hnh dung ra hai cch din t nh sau: Cch din t 1: Kho d liu a CD cha nhiu a, v d 900 a chng hn. Cc a c xp trn cc ngn. Trong ngn ko c mt vi catalog cha danh sch cc a ny. Kho d liu khch hng chnh l tp cc danh thip ca khch hng c buc bng dy cao su, km theo l danh sch cc khch hng m tin n qu hn. Thao tc "x l yu cu mua hng" c ngha l khi c khch hng yu cu mua a no , Hoa s tm trn cc gi a v c th l trong cc catalog. Sau Hoa li tm trong tp danh thip, ri danh sch khch hng kim tra khch hng cn n cha tr khng. Nu mi vic n th Hoa bt u vit ha n a cho khch hng. y l m t cc thao tc trong thc t, cha h c bng dng ca my tnh, n phn nh ng nhng thao tc m Hoa thc hin hng ngy. Cch din t 2: Kho d liu a CD hoc danh sch khch hng l cc tp c lu tr trn a cng. Cn thao tc x l yu cu c ngha l Hoa nhp t bn phm tn khch hng v tn a cn mua. My tnh sau s tm kim trn tp cha danh sch cc a v danh sch khch hng. Trong trng hp vic tm kim c kt qu v mi iu kin cn thit tha mn th ha n s c in ra cho khch hng. Cc din t ny tng ng vi gii php tin hc ha vi mi thng tin c cung cp trc tuyn (available online). Trn y l hai cch din t. Thc ra cn c th c nhiu cch din t khc. iu quan trng l DFD 6.4. biu din cc lung thng tin, mt yu cu mua hng c th khng phi l quan trng. By gi chng ta s tinh chnh biu 50

ny. Ta thy rng thao tc "x l yu cu khch hng" cn qu n gin. Trong thc t khi khch hng mun mua mt a m khng c th thng ch hng ghi li thng tin ny. Nu c nhiu khch hng hi mua th ch hng s gi yu cu ca h ti cc nh cung cp mua loi a mi ny. Ta s tinh chnh DFD 6.4. bng cch chi tit ho thao tc "x l yu cu khch hng" nh sau: nu khch hng yu cu th Hoa xem xt kho a, ng thi kim tra cc thng tin v khch hng. Nu a c trong kho v thng tin v khch hng khng c vn g th ha n s c lp v gi cho khch hng. Nu a khng c trong kho th yu cu ny tm thi c a vo kho d liu "cc yu cu ang treo", tc l cc yu cu cha c p ng. Nu s yu cu ang treo t n mt s no hoc yu cu ch 5 ngy th mt n t hng trong lit k cc yu cu ang treo (tc l danh sch cc a khch hng yu cu m khng c trong kho) ri gi ti cc nh cung cp. T nhng iu m t ny ta c DFD sau:

Hnh 6.5. DFD trong bc tinh chnh th hai Tuy nhin DFD ny cng cha phi l ci cui cng. V d cn thiu thng tin v lung d liu biu th cc a c nhp t cc nh cung cp v cch thc thanh ton... DFD y ca bi ton ny c th chim ti 6 trang giy. y ch mi l bi ton nh. i vi vn ln th khng th biu din trong mt DFD. Lc nhiu DFD c xy dng v c sp xp theo kiu phn tng. Mi nt ti mt mc no s c pht trin thnh mt DFD y mc thp hn. Bc 2. Quyt nh s tin hc ha phn no trong cc cng vic ni trn, v theo cch g, x l theo b hay tng tc? (batched processing or interactive processing, nguyn bn l x l theo b hay trc tuyn, online). Sau khi xc nh c phn cn tin hc ha th trong 3 bc tip theo ca k thut Gane v Sarsen l tinh chnh tng bc cc lung d liu, cc thao tc v cc kho d liu. Bc 3. Xc nh chi tit ca cc lung d liu. Trc ht xc nh xem nhng mc d liu no c trong lung d liu. Trong

Chng 6. Pha c t c cu trc

v d trn y th mt yu cu t khch hng c th bao gm:

52

Yu cu: nh danh yu cu (order identification hay vit tt l order ID) Thng tin v khch hng (h tn, gii tnh, a ch...) Thng tin v cc a cn mua (tn a, gi c...) Tip theo l tinh chnh cc mc d liu. i vi vn ln th cn xy dng t in d liu ghi li cc gii thch cn thit ca tt c cc thnh phn d liu. V d nh order_ID l s nguyn 10 ch s, l s khng c lp li v c t ng to ra bi mt th tc c tn l gen_order_ID chng hn. Tt nhin l t in d liu cn c trnh by theo dng vn bn c cu trc, v d theo cc ct: tn, m t, gii thch,... Trong t in ny ngoi tn cc mc d liu cn c cc hm (th tc) nu cn thit. V d vi lung d liu "yu cu" c th c th tc very_order_is_valid chng hn, vi u vo l cc thng tin v yu cu v u ra l c hp l hay khng. Bc 4. nh ngha logic ca cc chc nng (cc thao tc x l). Sau khi cc lung d liu c xc nh, bc tip theo l nh ngha cc chc nng x l chng, tc l cn m t iu g xy ra trong cc nt chc nng. Gi s h thng c mt thao tc "gim gi cho k s CNTT", lc Hoa cn cho ngi lm phn mm bit thng tin v s gim gi, v d nu k s CNTT mua trn 4 a th c gim gi 15%, mua t hn c gim 10%. trnh m t bng ngn ng t nhin, ta c th biu din nhng iu ny bng cy quyt nh nh sau:

Hnh 6.6. Cy quyt nh din t s gim gi Bc 5. nh ngha cc kho d liu. Trong bc ny cn xc nh nhng d liu c cha trong mi kho d liu v khun dng ca chng. Bc 6. nh ngha cc ti nguyn vt l. Trong phn ny ta xc nh c th cch lu tr d liu. V d nu ta s dng h qun tr c s d liu thao tc vi d liu nh Foxpro, Access,... th ta phi nh ngha cu trc cc bng. Bc 7. Xc nh cc c t vo ra. Xc nh mn hnh nhp liu, cc dng biu mu xem thng tin, cc dng bo co cn in ra. Bc 8. Xc nh kch c. Phn ny cn tch ton kch c cc tp d liu, tnh thng xuyn ca thao tc nhp d liu: hng ngy hay hng gi, thi gian in n cc bo co nh k... Bc 9. Xc nh cc yu cu phn cng. Trn c s tnh ton bc 8, xc nh cc yu cu phn cng: cn CPU nh th no, tc bao nhiu, RAM bao nhiu MB, cng c dung lng bao nhiu,

Chng 6. Pha c t c cu trc

cn my in mu hay in en trng... Tm li k thut c t ca Gane v Sarsen gm 9 bc nh sau: (1) Xy dng biu lung d liu. (2) Xc nh phn no ca DFD s c tin hc ha. (3) Xc nh chi tit ca cc lung d liu. (4) nh ngha logic ca cc chc nng. (5) nh ngha cc kho d liu. (6) nh ngha cc ngun ti nguyn vt l. (7) Xc nh cc c t vo ra. (8) Xc nh kch c. (9) Xc nh cc yu cu phn cng. Cho d c nhiu u im, phng php trn y khng phi l hon ho. Vn cn nhiu vn cn cha c cu tr li. V d thi gian cn thit a ra kt qu tnh ton cho mt yu cu no , hay s knh vo ra cn thit cho trng hp tt nht,... K thut ny c tnh hnh thc hn k thut c t dng ngn ng t nhin nhng cha phi l hnh thc hon ton. K thut ca Gane v Sarsen thuc loi na hnh thc (semiformal technique). Cn mt s k thut bn hnh thc tng t nh k thut trn y. C mt vi k thut hnh thc hon ton, nh cc my trng thi hu hn, li Petri,... nhng s dng nhng cng c ny i hi cc kin thc ton kh tt, l iu kh thc hin i vi cc k s phn mm v c bit l vi cc khch hng.
6.3. Phn tch h thng v d liu

SA l phng php phn tch da vo cc hnh ng (chc nng). V cc hnh ng trong mt h thng phn ln l x l d liu, do trong m hnh SA th d liu cng c th hin, nhng ch ng vai tr th yu sau hnh ng m thi. i vi cc h thng ln, c bit l cc h thng thng tin qun l, th d liu thng rt ln, v do vic t chc d liu mt cch hp l s lm cho tnh hiu qu ca h thng tng ln, v d c th cp nht d liu nhanh, truy xut thng tin, in n bo co nhanh v chnh xc... Trong nhiu trng hp, bn cnh vic phn tch h thng v mt chc nng, ngi ta cn tin hnh phn tch v mt d liu (data-oriented analysis, DOA) v hai vic phn tch ny c tin hnh c lp nhau, bi v ngi ta mun tp trung nghin cu cu trc tnh ca d liu (khng ph thuc vo cc x l, khng ph thuc vo thi gian). Mc ch ca phn tch h thng v d liu l lp lc khi nim v d liu, lm cn c cho vic thit k c s d liu ca h thng sau ny. S d n c gi l lc khi nim ( phn bit vi lc vt l), bi v khi thit k cn phi chnh sa t nhiu mi ph hp cho vic ci t trn my tnh. Ni rng vic phn tch h thng v mt d liu c tin hnh c lp vi vic phn tch theo chc nng khng c ngha l ta b qua mi lin h tt yu gia cc x l v d liu, m ta ch tm hon vic xem xt mi lin quan ny cho ti giai on thit k, khi cn lp lc vt l ca c s d liu. Lc khi nim v d liu c thnh lp theo m hnh thc th-lin kt (entity-relationship modeling, ERM), ri c hon chnh theo m hnh c s d liu quan h (Relational Database Model, RDM). Trong mc ny chng ta ch xem xt s lc m hnh ERM cng m hnh quan h c pht trin t n. 54

6.3.1. Thc th (entity) Theo t in ting Vit th thc th l ci c s tn ti c lp. Nh vy con ngi l thc th, cn cc thuc tnh nh mu sc khng phi l thc th. Trong m hnh tin hc ta cng dng khi nim thc th ch ci tn ti trong th gii thc, nhng c phn khi qut hn mt cht. Thc th c th l vt nhn thy c v c th tip xc c bng tay nh con ngi, ht ct, mt hng; nhng cng c th l khi nim tru tng nh d n, k hoch... Thng thng khi xy dng m hnh d liu, cc thc th c biu din bng nhng hnh ch nht, v d: Khch hng v mt thc th khi i din cho mt lp i tng trong thc t, ch khng ch mt trng hp c th. V d thc th "khch hng" s ch tp hp cc khch hng ca mt ca hng m ta ang quan tm kho st. Khi khch hng c th c tn l "Trn Nguyn n", a ch 14 L S, H Ni l mt th hin ca thc th "khch hng". (Cng c ti liu nh ngha thc th l i tng c th, cn kiu thc th, hay entity type, mi ch mt lp cc i tng c m t bi cng mt s thuc tnh). 6.3.2. Thuc tnh Trong mt h thng tin, ta cn la chn mt s tnh cht c trng din t mt thc th, cc tnh cht ny c gi l cc thuc tnh ca thc th. V d. Cc thuc tnh: H tn, a ch, ngy sinh ca thc th "Sinhvin". Cc thuc tnh: Tn, gi ca thc th "Mt hng". Gi tr cc thuc tnh ca mt thc th cho php din t mt trng hp c th ca thc th v c gi l th hin ca thc th . V d. ("Nguyn Cao Ro", "10 L c - H ni",{19/02/1982}) l mt th hin ca thc th "Sinh vin". ("Xe my Dream II",29 000 000) l th hin ca thc th "Mt hng". Mt thuc tnh c gi l s cp hay n tr khi ta khng cn phn tch n thnh nhiu thuc tnh khc. Th d khi lu tr thng tin nhn s th thuc tnh "Phn l lch bn thn" bao gm cc thuc tnh H tn, Ngy sinh, Qu qun, Gii tnh...Do thuc tnh "Phn l lch bn thn" khng phi l n tr. Thng thng mt thc th tng ng vi mt bng (hay mt quan h ca Codd). Mi thc th phi c mt tp thuc tnh m mi gi tr ca n va cho php nhn din mt cch duy nht mt th hin ca thc th, tp cc thuc tnh ny c gi l cc thuc tnh nhn dng hay l kha. Tp kha c khi ch l mt thuc tnh, nhng cng c khi cha nhiu thuc tnh. Mt thc th c th cha nhiu kha. Trong trng hp ngi ta chn mt kha lm kha chnh (hay kha s cp, trong Access kha ny c gi l Primary key) cc kha cn li c gi l cc kha ph hay kha th cp. Gi tr ca mt kha lun lun xc nh cc gi tr khc ca cc thuc tnh. V d. S chng t l thuc tnh nhn dng hay l kha ca thc th ha n.

Chng 6. Pha c t c cu trc

Khng th c hai hay nhiu ha n c cng s chng t trong cng mt h thng qun l thng tin trong mt ca hng no chng hn. Thc th ha n c th c cc thuc tnh nh sau: Ha n S chng t Khch hng Ngy bn Gi tin 6.3.3. Mi lin h (relationship) Khi nim mi lin h mc ny c dng vi ngha l lin quan, nhm nhm hai hay nhiu thc th vi nhau biu hin mt mi lin quan tn ti trong th gii thc gia cc thc th ny (vy khi nim ny khc vi khi nim quan h theo cch Codd nh ngha, v vy chng ti dng t mi lin h trnh s nhm ln). S thc th tham gia trong mi lin h c th l mt s nguyn bt k. Tuy nhin trong thc t ngi ta trnh dng nhng mi lin h c qu nhiu thc th tham gia. Trong mt m hnh d liu, cc quan h c biu din bng nhng hnh thoi. Trong mt s trng hp, mi lin h cng c th c nhng thuc tnh ring. Phn loi cc mi lin h Mi lin h 1-1 (mt-mt): Ta ni rng thc th A v thc th B c mi lin h 1-1 nu mi th hin ca thc th A c kt hp vi 0 hoc 1 th hin ca thc th B v ngc li. V d. Mi c gi mt thi im ch c c mt quyn sch.

Hnh 6.7. Mi quan h 1-1 Mi lin h 1- n (mt-nhiu): mi th hin ca thc th A c kt hp vi 0, 1 hoc nhiu th hin ca thc th B v mi th hin ca thc th B c kt hp vi mt th hin duy nht ca A. y l mt loi mi lin h thng dng v n gin nht V d. Trong thc t ta thy rng trong mt ca hng mt nhn vin bn hng c th bn nhiu mt hng, nhng mt mt mt hng ch do mt nhn vin bn, do ta ni rng c mi lin h mt-nhiu gia cc nhn vin bn hng trong mt ca hng v cc mt hng ca ca hng .

Hnh 6.8. Mi quan h 1-n Mi lin h n - m (nhiu-nhiu): mi th hin ca thc th A c kt hp 56

vi 0 , 1 hoc nhiu th hin ca thc th B v ngc li. V d.Mt ha n dng thanh ton mt hay nhiu sn phm. Mt sn phm c th xut hin trong 0,1 hay nhiu ha n.

Hnh 6.9. Mi quan h nhiu-nhiu 6.3.4. M hnh c s d liu quan h C th a ra nh ngha c tnh trc quan sau y v m hnh c s d liu quan h: M hnh c s d liu quan h (rerational database model, RDM) hay gi n gin l m hnh quan h l mt m hnh dng biu din d liu, trong d liu c biu din trong cc bng hai chiu. Thng th mi bng tng ng vi mt kiu thc th trong thc t, tuy nhin cng c trng hp thng tin v mt thc th trong thc t c th c lu tr trong nhiu bng (v d thc th "nhn vin" trong c quan c th c lu tr trong bng "thng tin c nhn" v bng "cng vic" chng hn). Dng u tin ca mi bng biu din tn cc thuc tnh ca thc th, cn cc dng tip theo trong bng l gi tr cc thuc tnh ca mt c th thuc thc th ny, v d nh bng sau: V d. Bng h s cc nhn vin ca mt c quan:
STT 1 2 3 4 MS 01 02 03 04 HOTEN Quang Huy Trn Kim Thu Lan Tuyt Mai NS 1982 1979 1956 1964 TD i hc Cao ng Tin s Trung cp QUE Ha Bnh Yn Bi Hi Dng Nam nh GT Nam Nam N N LUONG 450 390 480 425

V hnh thc c v nh khng c s khc bit gia ERM v RDM. Thc ra th vn c s khc bit: ERM tp trung vo mi lin h gia cc thc th, cn RDM li ch hn n mi lin h gia cc thuc tnh trong mt bng, gia cc thuc tnh trong cc bng. Trong RDM mi lin h gia cc bng cng c kho st thng qua mi lin h gia cc thuc tnh. Ni tm li ERM c th xem l m hnh ban u, cn RDM l mt m hnh c c s ton hc vng chc. Tuy nhin v mt thc hnh th hai m hnh khc bit khng nhiu. ERM khng phi l k thut mi. N c a ra t nm 1976 bi P.P.Chen. Tuy nhin hin nay ERM nh ang c hi sinh v n tr thnh mt phn t ca OOA.

Chng 7. Tng quan v UML v phng php hng i tng


7.1. S ra i ca phng php hng i tng

Phn tch h thng theo phng php hng i tng (object-oriented analysis, OOA) l mt k thut c t na hnh thc. Hin nay cng c kh nhiu k thut phn tch hng i tng, nhng v bn cht chng tng ng nhau. Ging nh cc k thut na hnh thc, phn tch hng i tng cng dng cc biu tng ha biu din cc i tng v cc qu trnh x l. OOA ra i vo u nhng nm 90 ca th k trc. Nm 1991, Rumbaugh (New york) v cc cng s a ra k thut m hnh ha hng i tng (object modeling technique, OMT) c s dng cho phn tch v thit k hng i tng. Nm 1994 Grady Booch (Rational, California) cng pht trin mt k thut OOA m v bn cht cng tng t nh ca Rumbaugh. Nm 1994 Rumbaugh gp Booch ti Rational v hai ng cng nhau pht trin cng c gi l phng php lun thng nht (unified methodology), tuy nhin hai ng nhanh chng nhn ra rng thc cht khng phi l phng php, m n thun ch l cc biu tng dng biu din sn phm phn mm hng i tng (HT), v i tn cng c thnh "ngn ng m hnh ha thng nht" (unified modeling language, gi tt l UML). Nm 1995 Ivar Jacobson, ngi tin phong trong lnh vc cng ngh phn mm HT, gp Rumbaugh v Booch ti Rational. Jacobson nghin cu phng php HT t nm 1967 v nm 1992 cho ra i phng php mang tn "cng ngh phn mm hng i tng" (object-oriented software engineering). Phin bn 1.0 ca ngn ng UML c xut bn nm 1997, c coi l cng trnh chung ca ba tc gi Rumbaugh, Jacobson v Booch. UML hin nay tr thnh chun quc t, v ang c hiu chnh v pht trin di s gim st ca nhm qun l hng i tng (Object Management Group), l hip hi cc cng ty trn phm vi ton th gii c hot ng tch cc trong phng php HT. Jacobson, Booch v Rumbaugh cng nhau xy dng cng c c gi l Rational Unified Process l quy trnh pht trin phn mm thng nht da trn UML u tin. (Quy trnh ny c tn l Rational, l ni cng c ny ra i). Mt phng php quan trng khc da vo UML l Catalysis do D'Souza v Wills xy dng nm 1999. UML c chp nhn rng ri trn ton th gii v c th khng nh gn nh chc chn rng, cc phng php pht trin phn mm trong tng lai cng s ly UML lm c s. Trong ti liu ny UML c dng biu din c phn tch v thit k HT. Phn tch hng i tng chnh l cch nhn nhn phn mm c to thnh bi cc i tng c mi lin quan vi nhau. V OOA hay OOD u s dng UML lm cng c din t, do trc ht chng ta s tm hiu qua v ngn ng ny.
7.2. Tng quan v ngn ng UML

7.2.1. UML l g? UML l ngn ng trc quan (tc l s dng cc biu tng m t cc vn v cng vic) c dng trong pha phn tch v pha thit k trong quy trnh xy dng mt phn mm hng i tng. UML l mt ngn ng c t na hnh thc (semiformal specification language, tuy nhin cng c ti liu cho rng UML l ngn ng hnh thc). Ging nh nhng ngn ng khc (ngn ng t nhin, ngn ng lp trnh, ngn ng cho ngi khim thnh...), UML cng c mt tp cc phn t v tp cc quy tc din t vn . Tuy nhin UML khng phi l ngn ng

Chng 7. Tng quan v UML v phng php hng i tng

lp trnh, ngha l bn khng th s dng n vit chng trnh. UML cng khng phi l mt phng php, phng php lun hay quy trnh pht trin phn mm. Hu ht cc phn t ca UML l cc biu tng ha nh on thng, hnh ch nht, hnh van... Cc phn t ny thng c nhn ch r tc dng ca n. C th s dng UML to ra mt m hnh c dng chun d liu (ging nh CORBA v XMI DTD). Tuy nhin cch biu din bng hnh nh ca UML vn c s dng nhiu hn v d hiu hn. 7.2.2. Mt s khi nim v thnh phn c bn ca UML - M hnh (Model) Theo t in ting Vit, t m hnh c hai ngha: 1. l vt cng hnh dng nhng lm thu nh li nhiu ln, dng lm m phng cu to v hot ng ca mt vt khc trng by v nghin cu (v d: m hnh my bay trin lm m hnh nh kiu mi. 2. l hnh thc din t ht sc gn theo mt ngn ng no cc c trng ch yu ca mt i tng nghin cu i tng y. M hnh ha (modeling) l to ra m hnh trn m hnh y nghin cu mt i tng no . Trong UML t m hnh c hiu theo ngha th hai, nhng ngn ng s dng l ngn ng trc quan. Tuy nhin thng th m hnh khng ch mt biu din c th, m l tp hp ca mt s biu din, v d m hnh use-case c ngha l tp hp cc biu use-case, m hnh ng l tp hp cc biu biu din s thay i theo thi gian nh biu trng thi, biu tng tc, biu hot ng... - Hng nhn (View): Hng nhn (c mt s ti liu gi l khung nhn, hay gc nhn) l mt khi nim trong UML, ch khng phi l mt thnh phn biu din c th nhn thy c nh use-case, biu , lp... Trong i thng, khi quan st mt vt th phc tp ta phi nhn t nhiu hng khc nhau. Khi biu din cc vt trn giy cng khng th ch biu din trong mt bn v duy nht m phi dng nhiu bn v, mi bn v biu din vt t mt hng nhn. Vi mt phn mm phc tp cng vy, ta cng phi quan st t nhng hng khc nhau. Tuy nhin hng y khng cn c hiu theo ngha en na, v phn mm khng phi l mt vt c th quan st mt cch r rng nh ngi nh, chic cu... Hng nhn y c hiu l cc kha cnh khc nhau cn m t, m hnh ho v tru tng ho ca h thng. Mi hng nhn gm mt s loi biu khc nhau. Cc hng nhn thng s dng l: Use-case view (Hng nhn theo trng hp s dng)
M t cc chc nng ca h thng c ngha cho cc tc nhn. Tc nhn ay c th l ngi s dng hoc mt h thng khc. Hng nhn use-case mang tnh trung tm, v n l c s cho cc hng nhn khc.

Logical view (Hng nhn logic)


Ngc li vi hng nhn use-case, hng nhn logic nhn vo bn trong h thng. N m t cc cu trc tnh (lp, i tng, quan h), cng nh tng tc ng gia cc i tng.

Component view (Hng nhn theo thnh phn) Deployment view (Hng nhn trin khai) Concurrency view (Hng nhn song song) Trong cc hng nhn trn y th hng nhn use-case v hng nhn logic ng vai tr quan trng ct yu trong phn tch v thit k hng i tng. - Biu (Diagram): Mi biu l mt loi hnh v m t phn mm trong mt khung nhn. Cc dng biu thng gp (cc biu hay s dng hn c in m): 59

Use-case diagram (biu trng hp s dng) Class diagram (biu lp) Object diagram (biu i tng) Activity diagram (biu hot ng) State diagram (biu trng thi) Sequence diagram (biu tun t) Collaboration diagram (biu tng tc) Component diagram (biu thnh phn) Deployment diagram (biu trin khai) Concurrency diagram (biu song song) Trong cc biu trn th hai loi biu quan trng nht l biu usecase v biu lp. Cc biu use-case cho ta bc tranh ton cnh v nhng g ang xy ra trong h thng (hin ti hoc d nh xy dng), hay ni mt cch khc th m hnh ny cung cp mt cch nhn tng th v nhng g h thng s lm v ai s dng n.

Chng 7. Tng quan v UML v phng php hng i tng

Biu lp (gm cc lp cng mi quan h gia chng) cho ta mt cch nhn tnh v cu trc ca cc thnh phn (lp) to nn phn mm. Nh vy biu ny phn no cho ta cch nhn vo "bn trong" ca h thng. Biu hot ng m mt dng c bit ca n l biu trng thi cho ta bit nhng hot ng hay trng thi no cn phi tri qua i t mt hot ng hoc trng thi ny n hot ng hoc trng thi khc. Ba khi nim quan trng c s dng trong loi biu ny l hot ng (activity), trng thi (state) v chuyn tip (transition). Thc ra hai khi nim trng thi v hot ng gn nh tng ng nhau. Theo mt ngha no th c th xem khi nim trng thi l khi nim rng hn, v trng thi cng c th thc hin cc hnh ng. Tuy nhin thng thng th hot ng phi thc hin hnh ng, cn trng thi ngm ch vic ch i. V d my in thoi ang trng thi gc my hay my bn. Ta cng c th ni my in thoi ang trng thi quay s (hot ng) hay b ngt kt ni. Mc d rt kh phn bit hai khi nim biu trng thi v biu hot ng, nhng ngi ta vn xem xt hai loi biu ny mt cch ring bit. Nu nh s ch c tp trung vo cc hot ng th ta gi biu l biu hot ng. Khi biu c th c cc trng thi nhng trng thi ch biu din cc im ch trc khi xy ra hot ng tip theo. Nu s ch l cc trng thi, th biu c th cha cc hot ng, nhng ch nhm m t hng ng xy ra trc khi chuyn n mt trng thi mi. Nu nh cc "im dng" gia cc chuyn tip trong biu hot ng l hot ng hoc trng thi th trong biu tng tc (interaction diagram) cc "im dng" li l cc i tng hoc tc nhn (tc nhn cng l i tng). Biu ny m t cc tng tc theo th t thi gian gia cc i tng thc hin mt cng vic g (thng l cng vic gn vi use-case). C hai loi biu tng tc l tun t (sequence diagram) v cng tc (collaboration diagram). C hai loi biu u ch ra trnh t thc hin cc hnh ng, nhng nu thi gian c nhn mnh th ngi ta s dng biu tun t, cn nu hnh ng c nhn mnh th ngi ta dng biu cng tc. - Phn t m hnh (Model element): Mi khi nim c s dng trong biu c gi l phn t m hnh. - Gi (package): UML c t chc thnh cc gi, mi gi cha mt s biu . - H thng con (sub-system): H thng con biu din cc b phn ca h thng vt l, chng c th c t chc trong cc package. - Khun mu (Stereotype): c s dng nh ngha mt loi phn t m hnh mi da vo mt loi phn t c. c t (Specification) M t chi tit mt phn t. C ch chung (General Merchanism) Trang tr (Adornment) Ghi ch (Note) Gi tr nh km (Tagged value). Rng buc (Constraint)

61

- Cc cng c (Tools )
7.3. M hnh use-case

7.3.1. Biu use-case Use-case nh tn gi ca n, l mt trng hp s dng ca h thng, n m t mt chui hnh ng m h thng s thc hin t c kt qu c ngha i vi mt tc nhn no . Tc nhn (actor) y c th l ngi hoc h thng tng tc vi use-case. Thng actor l mt ngi s dng h thng. Trong UML tc nhn thng l mt lp. Mt biu use-case (use-case diagram) c to ra t cc hnh van (biu din use-case) v hnh ngi (biu din tc nhn s dng user-case). Tn ca tc nhn (actor) c t pha di hnh ngi, tn ca use-case c t bn trong hnh van hoc pha di. Chng c lin kt vi nhau bng cc on thng ch r tc nhn no s dng use-case no. Cc biu use-case (s c gi l m hnh use-case) cung cp mt bc tranh ton cnh v nhng g ang xy ra trong h thng (hin ti hay d nh xy dng), c th hn, m hnh use-case cho ta cu tr li cho cu hi: ai (hoc h thng no) s dng phn mm v s dng lm g. Cc use-case c Jacobson a ra vo nm 1992, ban u c c thc hin trong cng ty Ericsson, Thy in. Trong cch tip cn ca Jacobson th use-case l im bt u trong qu trnh xy dng mt h thng phn mm mi. Trong thut ng UML th gi use-case l mt gi con (sub-package) ca gi Behavioural Element (phn t hnh vi). Ngha l n c s dng xc nh hnh vi ca mt thc th. Use-case khng xc nh chi tit cc hnh vi c thc hin nh th no, chi tit ny s c tho lun trong cc m hnh khc ca quy trnh thit k h thng. Thng thng, cch thc hin mt use-case c nh ngha trong mt hoc nhiu m hnh cng tc (collaboration diagram) nhm biu din s tng tc gia cc i tng cng hot ng. Mc ch ca biu use-case: - Dng m hnh ha cc chui hnh ng ca h thng. - Cung cp mt cch nhn tng th v nhng g m h thng s lm v ai s dng n. - a ra c s xc nh giao tip ngi-my ca h thng. - Dng m hnh ha cc kch bn (scenario) cho mt trng hp s dng. - ngi dng cui c th hiu c v c th giao tip vi h thng mc tng th. - Lm c s cho vic phc tho ra cc c t kim tra. V d v use-case: Trong mt h thng qun l cng vn ca mt c quan c th c biu use-case nh sau:

Nu cc use-case l cc thnh phn ca mt h thng hoc h thng con th chng c nhm li trong mt hnh ch nht c t tn (chnh l tn h thng). V d: H thng bn hng

Chng 7. Tng quan v UML v phng php hng i tng

Hnh 7.1. Cc use-case trong mt h thng (con) Tm Actor bng cch tr li cu hi:Actor no thao tc vi h thng v vai tr ca actor l g? Xc nh Use-case bng cch tr li cu hi: Mt Actor s lm g thao tc vi h thng?

63

Cc kiu kt hp (association) v quan h (relationship) gia cc usecase: Kt hp generalization (tng qut ha): + Kt hp generalization gia cc use-case. Kt hp ny c biu din bng mt on thng c mi tn hnh tam gic i t mt use-case n use-case tng qut hn.

Hnh 7.2. Kt hp generalization gia cc use-case Hnh 7.2. ch s kt hp tng qut ho gia cc use-case nhp s liu vi nhp t bn phm v nhp t tp. y nhp s liu l use-case tng qut, cn cc use-case cn li l cc trng hp ring. i khi mt use-case tng qut c th khng bao gi tn ti trong h thng thc. N ch ng vai tr chung cho cc use-case c th (nh trng hp trn y). Trong trng hp ny chng ta gi l abstract use-case. Tn ca loi use-case ny c in nghing. Cc use-case khng phi l abstract th c gi l concret use-case hoc real use-case. + Kt hp generalization gia cc Actor. Kt hp ny c biu din bng mt on thng c mi tn hnh tam gic i t mt Actor n Actor tng qut hn, v d:

Hnh 7.3. Kt hp generalization gia cc Actor Hnh 7.3. c ngha l tc nhn vn th l trng hp ring ca tc nhn nhn vin. iu ny ph hp vi thc t: vn th cng l nhn vin c quan, nhng nhn vin c quan c th khng phi l vn th. Vy vn th l trng hp ring ca nhn vin. Trong cc ngn ng lp trnh h tr HT, generalization thng c ci t bng k thut k tha (inheritance). C 2 loi quan h gia cc use-case: + Quan h include (bao hm) gia cc use-case. Quan h ny c biu din bng mi tn t nt t use-case bao hm n use-case con. T <<include>> c t cnh on thng ny nh hnh 7.4. V d:

Chng 7. Tng quan v UML v phng php hng i tng

Hnh 7.4. Quan h include gia cc use-case Hnh 7.4. c ngha l: thao tc Bn hng bao gm mt s thao tc, trong c thao tc In ha n. iu ny c ngha l nu Bn hng th phi In ha n nhng ngc li th cha chc. + Quan h extend (m rng) gia cc use-case. Quan h ny cng c biu din bng mi tn t nt t use-case cn m rng n use-case c m rng. T <<extend>> c t cnh on thng ny nh hnh 7.5. V d:

Hnh 7.5. Quan h extend gia cc use-case Hnh 7.5. c ngha l use-case bn hng c m rng sang use-case k hp ng bo hnh. iu ny c ngha l: trong iu kin bnh thng th thao tc bn hng khng dn ti vic k hp ng bo hnh. Ch trong mt s iu kin no th mi c s m rng, v d nh khi bn cc thit b tin hc chng hn. Vy use-case m rng ( hnh 7.5 l "k hp ng bo hnh") c th coi l mt tnh hung pht sinh t use-case c m rng ( trn l "bn hng"). Tuy nhin trong cch biu din th c phn ngc vi cch suy ngh, cng ging nh generalization, mi tn i t ci pht sinh n ci gc. ch r iu kin pht sinh, ngi ta vit thm iu kin trong use-case gc v gi phn iu kin ny l cc im m rng (extension points). V d vi use-case bn hng c th vit nh sau:

Hnh 7.5b. Quan h extend gia cc use-case C th so snh s khc bit gia generalization, extend v include thng qua hnh sau y:

65

Hnh 7.6. So snh gia generalization, extend v include. Ta c th c nh sau: Thao tc giao hng c thc hin bng mt trong hai cch: giao ca hng hoc mang n tn nh. Hai cch giao hng ny c th c mt thao tc chung l "ng gi hng" nm nt giao hng. Nh vy trong kt hp generalization th cc thao tc chung nm nt gc (nu c), cn cc trng hp ring nm cc nt con. Thao tc bn hng c thc hin bng hai thao tc: In ha n v xut hng. Thao tc bn hng trong iu kin bnh thng th c thc hin sun s. Tuy nhin c mt tnh hung pht sinh lm cho thao tc bn hng khng thc hin c l tnh hng ht hng. Tnh hung ht hng c th pht sinh tnh hung nhp hng t nh cung cp. Vy thao tc nhp hng t nh cung cp cng c th coi l c pht sinh t thao tc bn hng. Ch . Trong UML phin bn 1.1, include v extend c gi l uses v extends. Ngoi ra cc use-case lin quan n nhau c th c nhm li thnh gi, v d:

Hnh 7.7. Cc gi cha use-case 7.3.2. M hnh use-case M hnh use-case l tp hp cc biu use-case. Biu use-case li l tp hp ca mt s use-case cng cc kt hp v cc tc nhn s dng chng. Trong UML, use-case c s dng nm bt cc yu cu mc ngoi v chc nng s dng ca h thng (to capture high level userfunctional requirements of the system). Nn lu l use-case khng nn s dng m t cc yu cu phi chc nng hay "bn trong" cc chc nng (tc l cch thc thi cc chc nng), v use-case trc ht l k thut phi hnh thc v khng hon ton chnh xc. Tuy nhin use-case gip chng ta xc nh cu trc v cc yu cu chnh ca sn phm phn mm. M hnh use-case a ra cu tr li cho cu hi: h thng lm g khi quan st t bn ngoi? Use-case l mt thnh phn ca d ton v l thnh phn nh b nht ca sn phm chuyn giao. Nu sn phm c tinh chnh theo nhiu bc v chuyn giao nhiu ln th mi ln chuyn giao li c mt m hnh use-case km theo. Cc use-case khng phi l m hnh phn r chc nng, cng khng phi nhm nm bt tt c cc yu cu ca h thng. M hnh use-case ch l bc ban u. din t su hn cu trc v cch hot ng ca h thng, ta cn n cc k thut m hnh ha khc. M hnh i tng (Object model) m t cu trc tnh ca h thng v quan h gia cc lp. M hnh ng gm cc biu nh biu tun t, biu trng thi, s m t chi tit cch ng x ca h thng, nhm tr li cho cu hi: h thng thc hin cc chc nng nh th no. M hnh quy trnh cng vic (business process model) s cho bit trnh t cc cng vic c thc

Chng 7. Tng quan v UML v phng php hng i tng

hin nh th no, c phn tin hc ha v phn th cng. Use-case khng phi l k thut bt buc trong m hnh ha hng i tng. V cng khng c l do c bn no ngn cn vic ng dng n nh mt cng c ban u ca phng php pht trin c cu trc. Tuy nhin chng khng c dng trong phn tch c cu trc v nhng ngi sng to ra chng ang tp trung s ch vo vic pht trin cc phng php hng i tng. 7.3.3. Xy dng m hnh use-case nh th no? Nh ni n trong phn trc, theo thut ng ca UML th ngi hoc h thng s dng phn mm m ta ang xem xt c gi l tc nhn ca phn mm , cn use-case nh tn gi ca n, l mt trng hp s dng ca phn mm lin quan n tc nhn no . xy dng m hnh ny, ta cn tr li hai cu hi: 1) Ai (hoc h thng no) trc tip s dng phn mm? Cu tr li s a ra danh sch cc tc nhn. T danh sch cc tc nhn u tin ta chn ra tc nhn quan trng nht, sau l tc nhn quan trng th nh,... Vi mi tc nhn ta nu cu hi: 2) Tc nhn mun lm g vi h thng (tc l phn mm)? Cu tr li s l cc use-case. Ban u mi tc nhn cng cc use-case lin quan s l mt biu . Tuy nhin sau ta cn xem xt cc use-case ca cc tc nhn khc nhau. Nu ta thy c nhiu im chung th nn dng mt use-case cho cc tc nhn. V d use-case mn sch ca tc nhn bn c cng tng t nh use-case cho mn sch ca th th nn ta gp hai use-case ny thnh mt v gi l use-case mn sch. Nu trnh by mt cch c h thng th xc nh mt use-case n gin (a simple use-case recipe) ta cn thc hin 8 bc nh sau: Bc 1. Nhn din xem ai s l ngi trc tip s dng h thng, v d ngi s ngi vo bn phm v g vo bn phm s dng chng trnh. H l cc tc nhn. Tc nhn c th l mt h thng khc, tm tc nhn loi ny ta nu cu hi: h thng no tng tc vi h thng ny? Bc 2. Hy chn mt phn t trong cc tc nhn. V d l th k nhn n t hng (sales order clerk), m ta s gi n gin l ngi bn hng. Bc 3. Hy xc nh xem tc nhn ny mun lm g vi h thng. Nhng vic tc nhn ny mun thc hin trn h thng s tr thnh cc use-case. Bc 4. Vi mi use-case hy xc nh dng cng vic (course) thng xuyn nht khi actor s dng h thng (the most usual course when the actor is using the system). Bc 5. M t dng cng vic c s ny trong phn din t use-case (the description for the use-case). Hy m t theo cch "tc nhn lm ci g , h thng s lm ci g ...", tuy nhin ch gi mc bn ngoi. Bn hy ch m t nhng iu h thng lm m tc nhn nhn bit c v ngc li, nhng iu tc nhn 67

lm m h thng nhn bit c. Trc mt cha cn quan tm n cc quan h c bit nh <<extend>> hay <<include>>.

Hnh 7.17. Din t dng cng vic cho mi use-case

Chng 7. Tng quan v UML v phng php hng i tng

Bc 6. Nu bn cm thy va lng vi cc dng cng vic c bn th hy xem xt n cc kh nng khc v b sung cc kh nng ny.

Hnh 7.18. B sung thm use-case ng vi kh nng khc Bc 7. c li cc din t v i chiu so snh. Nu pht hin thy c phn chung th nn tch ra thnh cc use-case cho cc dng cng vic chung.

69

Hnh 7.19. Tch dng cng vic chung thnh use-case dng chung (Ta thy rng use-case "Nhp li v khng tm thy khch hng" c m rng t use-case "Hin thng tin chi tit v khch hng", c ngha l use-case " Hin thng tin... " lm ny sinh use-case "Nhp li v khng tm thy..."). Bc 8. Lp li cc bc t 2 n 7 cho tt c cc tc nhn. Trn y l cch khi u tt cho qu trnh m hnh ha use-case. Tuy nhin mt li thng gp l qu nhiu use-case c a vo m hnh. Vy bc tip theo chng ta xem xt vn : ci g khng nn a vo m hnh usecase? 7.3.4. Ci g khng nn a vo m hnh use-case? Trong qu trnh xy dng m hnh use-case, c th cn c mt s thng tin cn thit v chi tit m bn cn biu din. ng vi a vo m hnh usecase. Tt hn l bn nn s dng mt k thut m hnh ha khc thch hp hn. Nu bn mun m t thng tin v mi quan h c bit gia cc i tng, v d mt n t hng c th cha mt hoc nhiu dng thng tin v cc mt hng, hay khch hng ngoi h ra cn c tn ring, a ch v cc thng tin khc... th tt hn l bn nn dng m hnh lp. Hoc nu bn mun m t rng danh sch khch hng c th chn t hp ListBox th bn nn dng biu tun t hay mt bn mu GUI hoc c hai... Bn cng cn thn trong trong vic b sung thm cc use-case theo cc quan h include v extend trnh tnh trng i qu xa, lm cho m hnh tr nn qu phc tp. Ch nn pht trin mc va phi, trong phm vi mc ch ca m hnh use-case l: m t cc chc nng s dng ca phn mm mc cao, tc l mc bn ngoi, lm c s cho vic c lng chi ph v chuyn giao. 7.3.5. Cn chnh li m hnh use-case S cn chnh m hnh use-case chnh l s la chn mt m hnh ph hp gia trng hp qu phc tp (v cha qu nhiu use-case dng chung v usecase m rng) v trng hp n gin nht l khng cha cc quan h m rng hoc s dng gia cc use-case. Xut pht t m hnh n gin ban u, bn b sung dn cc use-case bng cch tr li cu hi: a thm usecase ny vo th c ch hn cho m hnh khng? Tuy nhin bn phi lu rng khng th m hnh ha tt c bng m hnh use-case. Trong nhiu trng hp, bn cnh m hnh use-case n gin, nu c thm scenario hoc mt vi loi biu na th m hnh s d hiu hn, nh v d v phn mm iu khin hot ng thang my sau y. 7.3.6. M t use-case (use-case description) R rng t biu use-case ta mi c nim rt s lc v chc nng ca mi use-case thng qua tn ca n. V vy i vi mi use-case ngi ta thm phn m t bn di. M t use-case khngc bt k quy tc c php no c, bn c th m t bng bt k dng no bn thch. Tt nhin nu bn lm vic trong mt cng ty no th bn phi tun th nhng cch thc m cng ty quy c. C hai cch thng dng nht c s dng m t use-case l:

Chng 7. Tng quan v UML v phng php hng i tng

Vit thnh mt on vn (nh trong cc hnh 7.15-7.17). Lit k thnh hai ct, mt ct l hot ng ca tc nhn, ct cn li l p ng ca h thng. C th thy rng cch th hai ging nh mt v kch c hai vai: tc nhn v h thng, v vy ngi ta gi cch trnh by ny l kch bn (scenario). V cch trnh by theo ct c phn bt tin, v s p ng ca h thng thng chim phn nhiu hn, lm cho hai ct khng cn i, v vy ngi ta thng trnh by theo chiu dc nh khi ngi ta trnh by mt v kch thng thng (xem v d trong mc 7.3.6 sau y). 7.3.7. Xy dng m hnh use-case cho bi ton iu khin hot ng thang my Gi s cn xy dng phn mm iu khin n thang my trong ngi nh c m tng. Cc thang my hot ng theo cch thc nh sau: 1. Mi thang my c m nt bm, mi nt tng ng vi mt tng. Cc nt c nh s bng s tng tng ng. Khi mt nt c nhn th n s sng ln v thang my s c chuyn n tng tng ng. Khi thang my n c tng cn thit th th n nt bm s tt. V d khi nt s 5 c nhn th n sng ln, thang my s dch chuyn n tng s 5 v khi n c tng s 5 th n nt s 5 cng tt. 2. Mi tng, tr tng u tin v tng trn cng, u c 2 nt bm: mt nt yu cu thang my i ln (up-elevator) v nt cn li yu cu thang my i xung(down-elevator). Cc nt ny s bt sng mi khi c nhn. By gi chng ta s xy dng biu use-case cho vn ny theo cc bc nh gi trn. Trc ht ta tr li cu hi: ai trc tip s dng thang my? Cu tr li l: ngi mun i ti cc tng bng thang my, m ta gi n gin l ngi s dng. Tip theo l tr li cu hi: ngi s dng lm g? Cu tr li l "ngi s dng nhn nt". Ta c biu n gin u tin nh sau:

Hnh 7.20. Biu use-case u tin cho bi ton thang my Tuy nhin ta thy rng thao tc nhn nt cha phi l thao tc c th thc hin v c hai loi nt: nt thang my v nt tng. Do ta dng kt hp generalization tch use-case ny thnh hai use-case nh hnh sau:

Hnh 7.21. Biu use-case sau bc tinh chnh th hai Tuy nhin cng l tr li cu hi "ngi s dng lm g?", ta cng c th tr li l "ngi s dng nhn nt thang my hoc nt tng. V t y ta c biu 71

use-case tng ng vi biu trn nhng hnh thc biu din c khc:

Hnh 7.22. Use-case cho vn thang my Mi use-case m t mt chc nng ca phn mm cn xy dng. N cung cp m t chung v chc nng; cn cc scenario li l cc th hin c th ca use-case, cng ging nh cc i tng l cc th hin ca lp vy. Scenario cho ta hiu r hn v use-case, v n ch r use-case x l cc tnh hung nh th no khi nhn c cc ch th t cc tc nhn. Cc use-case cho ta bc tranh ton cnh v cc tc ng qua li gia cc lp ca phn mm vi nhau v vi nhng tc nhn s dng phn mm. Cc scenario chnh l tp hp cc tc ng c th gia cc i tng v nhng ngi s dng. Ch c cc kh nng tng tc gia ngi s dng v cc lp l ngi s dng bm vo nt trn thang my thang my chuyn ng hoc bm vo nt tng nh yu cu thang my dng li khi i n tng . Bng vic phi hp cc thao tc ny ta c th a ra rt nhiu scenario. Sau y l mt scenario chun v mt scenario ngoi l (UML cung cp hai loi biu l tun t v tng tc biu din cc scenario. Tuy nhin cc biu ny thch hp hn cho giai on thit k). Scenario chun (normal scenario): 1. Ngi s dng A ang tng 3 v mun ln tng 7. Anh ta nhn vo nt (up-elevator) gi thang my n. 2. Nt up-floor bt sng. 3. Thang my n tng 3 v mang theo ngi s dng B. B vo thang my tng 1 v nhn nt bn trong thang my ln tng 9. 4. Nt tt. 5. Ca thang my m ra. 6. Bt u thi gian ch i (thang my trng thi ng yn). A bc vo thang my. 7. A nhn vo nt s 7 trong thang my. 8. Nt s 7 trong thang my sng ln. 9. Ca thang my ng li. 10. Thang my chuyn n tng 7. 11. Nt s 7 trong thang my tt. 12. Ca thang my m ra ( A bc ra ngoi). 13. Bt u thi gian ch i. A bc ra khi thang my. 14. Ca thang my ng li sau mt khong thi gian ch. 15. Thang my tip tc chuyn ng ln tng 9 mang theo B. Sau y l scenario ngoi l: A mun xung tng 1 nhng li nhn nhm vo nt , Scenario ngoi l (an exception scenario):

Chng 7. Tng quan v UML v phng php hng i tng

1. Ngi s dng A ang tng 3 v mun xung tng 1. Anh ta nhn nhm vo nt . 2. Nt bt sng. 3. Thang my n tng 3 v mang theo ngi s dng B. B vo thang my tng 1 v nhn nt bn trong thang my ln tng 9. 4. Nt tt. 5. Ca thang my m ra. 6. Bt u thi gian ch i. A bc vo thang my. 7. A nhn vo nt s 1 trong thang my. 8. Nt s 1 trong thang my sng ln. 9. Ca thang my ng li. 10. Thang my chuyn n tng 9. 11. Nt s 9 trong thang my tt. 12. Ca thang my m ra ( B bc ra ngoi). 13. Bt u thi gian ch i. B bc ra khi thang my. 14. Ca thang my ng li sau mt khong thi gian ch. 15. Thang my chuyn ng xung tng 1 mang theo A. Ngoi cc scenario trn y c th a ra nhiu scenario na gip cho nhm pht trin hiu r hn cch hot ng ca h thng cn m hnh ha. Cc thng tin ny cn thit cho bc tip theo: xy dng cc lp v m hnh lp. Scenario s cn c dng trong bc thit k.

73

7.4. M hnh lp

7.4.1. Biu lp Biu lp bao gm cc lp cng vi cc k hiu khc biu din mi quan h gia chng. Biu lp m t cc kiu i tng trong h thng v cc mi quan h tnh gia chng (Class diagrams describe the types of objects in the system and the various kinds of static relationships that exist among them). Lp l khi nim nn tng trong phn tch v thit k HT. y l khi nim kh, cc nh ngha trong cc ti liu hin c khng hon ton nht qun v i khi khng cht ch. V d, rt nhiu ti liu a ra nh ngha: lp l tp hp cc i tng c chung cc thuc tnh v hnh vi, v d lp khch hng l tp hp cc khch hng (ca ca hng ang kho st). Nu ni nh vy th khng th ni rng h tn, gii tnh,... l thuc tnh ca lp; v y l thuc tnh ca cc phn t thuc tp hp. nh ngha UML v lp theo nguyn vn ting Anh l: "a description of a set of objects that share the same attributes, operations, methods, relationships, and semantics". Nh vy nu ch lu n nhng t quan trng th c th a ra nh ngha lp nh sau: Lp l khi nim c dng m t cc i tng c cng loi thuc tnh v hnh vi. Nh th, phn ln cc ti liu b qua t "m t", l mt t m theo chng ti l rt quan trng. Lp khng phi l tp hp cc i tng, m l s m t ca nhm cc i tng c chung mt s c trng no m thi. Nh vy lp khch hng khng phi l tp hp cc khch hng, m l s m t cc khch hng. Nh th cc c trng chung ca cc i tng s c m t trong lp. Lp ng vai tr nh mt ci khung hay nh mt t khai cha c thng tin c th. V d vi cc khch hng ca mt ca hng no th ngi ta cn lu li cc thuc tnh nh h tn, gii tnh, s in thoi; v ta bit rng nhng hnh ng h thng lm l tm kim hng, mua hng... Vi mt khch hng c th th cc thuc tnh v hnh vi c xc nh, v ta gi khch hng c th l i tng thuc lp khch hng. Ngi ta cng thng ni i tng l th hin ca lp. Nh th, theo chng ti c th a ra nh ngha r hn v lp nh sau: Lp l tp hp cc thuc tnh v phng thc c lin quan vi nhau. Lp c t tn v thng c dng m t cc i tng c cng loi thuc tnh v hnh vi. nh ngha ny m ra kh nng cho php chng ta xy dng thm cc lp mi trong phn mm cho vic phn tch thit k c n gin hn. Cc lp mi ny c th ch n gin l mt nhm cc d liu v hm c lin quan vi nhau trong phn mm v khng nht thit phi c mt lp cc i tng tng ng trong thc t. Ngi ta cng thng dng cch ni trc quan: Cc lp l nhng phn t hay cc "vt" to nn phn mm. Trong biu UML lp c biu din bng hnh ch nht. Tn lp thng c vit m, cc t c vit lin nhau nhng ch u t c vit hoa, v d BankAccount (khng vit l Bank Account). Th hin ca lp, tc l cc i tng, c quy c l vit c gch chn, theo mu: <tn i tng>:<tn lp tng ng> , :<tn lp> hoc <tn i tng> . V d aDoc:Document, :Document, aDoc. Cc loi kt hp: aggregation, composition v generalization K hiu aggregation (kt tp), v d:

Chng 7. Tng quan v UML v phng php hng i tng

a) b) c ngha l hnh khch l thnh phn ca chuyn bay, nhng hnh khch cng c th tn ti c lp. Nh vy th hin ca chuyn bay (tc l mt chuyn bay c th no ), c cha cc th hin ca hnh khch (tc l cc hnh khch c th). Mt chuyn bay cha bao nhiu hnh khch th ty thuc vo multiplicity u cui ca kt hp. V d hnh b) c ngha l mt chuyn bay c th khng c hnh khch no hoc c mt hoc nhiu hnh khch. K hiu composition (hp thnh), v d:

a) b) c ngha l section l thnh phn ca document, nhng section khng tn ti c lp. Nh vy th hin ca document, c cha cc th hin ca section. Khi document b xa th section cng b xa. Nh vy cc kt hp aggregation v composition u l biu din cu trc whole-part gia hai lp. S khc bit l: part trong aggregation c th tn ti c lp, cn trong composition th part l thnh phn cng gn kt vi whole (coincident lifetime). K hiu generalization (tng qut ha hay k tha), v d:

c ngha l th k l trng hp ring ca nhn vin, hay nhn vin l tng qut ha ca th k. Nu nhn vin c thuc tnh g th th k cng c cc thuc tnh . Tuy nhin th k c th c cc thuc tnh m nhn vin khng c. Dng ti thiu ca biu din lp l mt hnh ch nht trong c tn lp. V d v biu lp:

Hnh 7.8. Cc biu lp Gii thch cc k hiu: Lp HangMua c dn xut t lp Hang, hay lp HangMua l lp tha k ca lp Hang. Quan h ny l quan h tng qut ha (generalization). Ta cng gi lp Hang l lp cha, lp HangMua l lp con. No (No l phn n, Co l phn c ca ti khon) l thnh phn ca TaiKhoan, tuy nhin n ph thuc vo TaiKhoan. Nu pha TaiKhoan b xa th pha No 75

cng b xo theo (Co cng vy). Quan h ny l composition, c th coi l trng hp ring ca aggregation. Khi biu din lp, ngoi thnh phn bt buc l tn lp, cn c th c cc thuc tnh v cc phng thc, v d: Hang TenHan g GiaHang Nhap() Xem() 7.4.2. Xy dng m hnh lp (class modeling) nh th no? M hnh lp ng vai tr tr ct trong phn tch v thit k hng i tng. Thnh phn ca m hnh lp l cc biu lp, trong biu din cc lp cng cc mi quan h gia chng. M hnh i tng chnh l th hin ca m hnh lp, trong bao gm cc biu i tng l th hin ca cc biu lp. Cc biu lp c phn lm hai loi. Trong bc phn tch c gi l biu lp khi nim (conceptual class diagram).Trong bc ny cc lp cng cc thuc tnh s c a ra v biu din theo biu thc th-quan h (entity-relationship diagram). Hin ti ch xc nh cc thuc tnh ca cc lp. Cc phng thc (cc hm thnh phn) ca cc lp s c a vo trong giai on thit k (cng c ti liu cho rng cn nu c phng thc, nhng ch cn theo ngn ng ca ngi s dng). Biu lp trong giai on thit k c gi l biu lp thit k (design class diagram). Mt trong nhng phng php xc nh cc lp l dn xut chng t cc use-case. iu ny c ngha l cc nh pht trin cn xem xt k cc kch bn, c trng hp chun v ngoi l, t rt ra nhng thnh phn tham gia trong cc use-case. V d trong bi ton thang my th t cc scenario trn y ta c th rt ra cc lp ng c vin l: cc nt thang my, cc nt mi tng, cc thang my, cc ca, v cc dng c o thi gian (timers). Nh chng ta s thy, cc lp ng c vin ny kh gn vi cc lp thc c a ra trong qu trnh xy dng m hnh lp. Tuy nhin trong thc t c rt nhiu scenario v do s lp ng c vin c th rt ln. i vi nhng ngi pht trin t kinh nghim th vic la chn ra cc lp thch hp nht l iu kh kh khn. Thng th vic thm mt lp d hn l loi b mt lp t tp c. Mt cch tip cn khc trong vic la chn cc lp kh hiu qu l s dng cc th CRC (class-responsibility-collaboration). Tuy nhin i vi nhng k s phn mm cha quen lnh vc ny th nn dng k thut trch danh t (noun extraction) s c gii thiu sau y. 7.4.3. K thut trch danh t (noun extraction) K thut trch danh t c thc hin trong ba bc sau y: Bc 1. Pht biu bi ton mt cch gn v c ng (concise problem definition). M t vn cng ngn cng tt, v nn gi gn trong mt cu. V d vi bi ton thang my c th m t nh sau:
Cc nt trong thang my v trn mi tng iu khin hot ng ca thang my trong ngi nh c m tng. n

Bc 2. Din t hot ng ca h thng (hay cn gi l chin lc phi hnh thc, informal strategy). M t hot ng ca h thng mt cch ngn gn, tt nht l trong mt on vn (paragraph). on ny thng bao gm phn pht biu ngn gn bi ton ri b sung thm cc iu kin rng

Chng 7. Tng quan v UML v phng php hng i tng

buc. V d vi vn thang my c th din t nh sau:


Cc nt trong thang my v trn mi tng iu khin hot ng ca n thang my trong ngi nh c m tng. Cc nt bt sng mi khi c nhn yu cu thang my dng li mt tng no . S bt sng kt thc khi yu cu c thc hin xong. Khi khng c yu cu th thang my dng tng v ca ca n ng.

Bc 3. nh du cc danh t. By gi ta nh du cc danh t m t cc vt tn ti trong thc t.


Cc nt trong thang my v trn mi tng iu khin hot ng ca n thang my trong ngi nh c m tng. Cc nt bt sng mi khi c nhn yu cu thang my dng li mt tng no . S bt sng kt thc khi yu cu c thc hin xong. Khi khng c yu cu th thang my dng tng v ca ca n ng.

Nh vy c cc danh t nt, thang my, tng, ngi nh v ca. Tuy nhin trong cc danh t ny th c mt s nm ngoi phm vi quan tm ca bi ton, v d: tng, ngi nh, ca. Vy ch cn li hai danh t l thang my v nt. Vy ta s c hai lp l thang my v nt. Theo cch t tn do UML quy nh th tn lp c vit hoa ch u, khng cha du cch. Tuy nhin chng ta s thc hin iu ny khi t tn lp trong lp trnh, cn by gi ta s vit bng ting Vit c du cho d hiu. Tuy nhin trong thc t th nt c phn lm hai loi: nt thang my v nt tng nh. Hai loi nt ny tng ng vi cc lp con dn xut t lp nt. V thang my hot ng theo cc thng tin gi t cc nt nn ta c biu lp u tin nh sau:

77

Hnh 7.23. Biu lp u tin Trong thc t th cc nt khng gi thng tin trc tip n cc thang my, m gi n mt b iu khin thang my. B ny s x l v quyt nh thang my no s p ng yu cu. Do ta c s lp trong bc tinh chnh th hai nh sau:

Hnh 7.24. Biu lp bc tinh chnh th hai By gi ta xem xt cc thuc tnh c th ca mi lp. Da vo scenario ta c th thy rng thuc tnh c th thy ngay ca lp nt l chiu sng hay khng, thuc tnh ca thang my l ca thang my m hay ng. Cc thuc tnh ny ch nhn hai gi tr c hoc khng, vy chng c kiu logic, hay cn c gi l kiu boolean. Cc lp khc hin ti cha thy thuc tnh no c bc l r rng. Ta c bng sau y, vi tn lp c t li sau ny tin cho vic lp trnh:
Button (Nt) illuminated:Boole an ElevatorController (iu khin thang my) Elevator (Thang my) ElevatorButt on (Nt thang my) FloorButto n (Nt tng)

Chng 7. Tng quan v UML v phng php hng i tng

DoorOpened:Boolea n

Trn y ch l m hnh lp trong vi bc u tin. M hnh ny s cn c sa i cho ph hp trong cc pha sau ny. S sa i c th thc hin cho n pha tch hp. Ghi ch. Trong thc t, vic p dng k thut trch danh t i khi khng d dng. Bng cch ny ta a ra c mt danh sch cc danh t l ng c vin cho lp, nhng vic lc ra cc danh t thc s cn thit th li l vn kh. Ly v d ta cn vit chng trnh qun l bn hng chng hn. Ta thy ngay l c th rt ra cc danh t cn xy dng lp l khch hng, nhn vin bn hng, ha n... C th c nhiu danh t khc, nhng c v y l ba danh t khng th loi b. C l v th trong hu ht cc chng trnh mu v bn hng u c lp khch hng. Tuy nhin nu mt siu th ln, khch hng rt nhiu v thng xuyn thay i th vic qun l khch hng tr nn khng cn thit. Mc du khi khch hng mua hng ta vn cn lu thng tin v h nh h tn, a ch, s in thoi... khi c s c c th lin h gii quyt, nhng r rng thng tin v mi khch hng ch c ngha khi gn vi ha n. Trong trng hp ny ta ch nn xem thng tin v khch hng l cc thuc tnh ca ha n m thi. Vn s khc i mt c s bn bun. R rng y ngi ta thung xuuyn lin h vi mi khch hng. Mi ln tr tin c th ta li phi tnh c cc ha n cn n trc y; hay vi khch hng mua nhiu c th gim gi, khuyn mi (k c cc ln mua trc). R rng trong trng hp ny vai tr ca khch hng vt ra ngoi ha n c th, v nh vy khng th xem ch l thuc tnh ca ha n, m nn xem l mt lp c lp. Cn c vo iu ny, chng ti pht trin k thut trch danh t theo cch nh sau: Bng k thut trch danh t, ta c c danh sch cc danh t l ng c vin to lp, ta gi danh sch ny l danh sch (1). Tip theo ta tm hiu nghip v lin quan n phn mm, m cch tt nht l tm hiu cc biu mu v lnh vc ng dng ca phn mm. Mi biu mu s l cc lp u tin c chn. Sau ta xc nh xem danh t no trong danh sch (1) xut hin trong biu mu v vi vai tr g. Nu vai tr ca danh t ch gn vi biu mu th ta ch danh t nh l thuc tnh ca lp biu mu tng ng; cn nu vai tr ca n vt ra bn ngoi biu mu th nn l lp. Lu l danh t c th xut hin trong biu mu di dng n. V d biu mu "Phiu ng k lm th th vin" c dng nh hnh bn. Ta thy rng khng c danh t "Bn c", nhng thc ra danh t ny xut hin rt nhiu: S th bn c, H tn bn c,... V th vin th thng tin v bn c rt cn qun l nn ta to lp BanDoc tng ng. 7.4.4. K thut th CRC Trong nhiu nm, cc th CRC (class-responsibility-collaboration card) c s dng trong pha phn tch hng i tng. i vi mi lp, nhm pht trin in vo cc thng tin nh: tn lp, cc chc nng ca lp (responsibility) v danh sch cc lp gi n cc chc nng ca lp ny (collaboration). Cch tip 79

cn ny v sau c m rng. Trc ht th CRC bao hm mt cch tng minh cc thuct tnh v cc phng thc ca lp, ch khng ch l cc chc nng c m t bng ngn ng t nhin. Cng ngh cng thay i. Thay v s dng cc th, mt s cng ty phn mm ghi tn cc lp trn cc mu giy ghi ch (Post-it note) ri dch chuyn vng quanh trn bng trng; cc on thng c v trn bng ni cc mu giy biu th s tng tc. Ngy nay ton b cch lm ny c t ng ha: cc cng c CASE nh System Architect c cha cc module c th to ra v cp nht cc th CRC trn mn hnh. im mnh ca th CRC l, khi lm vic theo nhm th nh s trao i gia cc thnh vin c th pht hin ra nhng iu cn thiu hay khng chnh xc trong cc lp. Mi quan h gia cc lp cng c lm r. im mnh nht ca k thut ny l c th phn pht cc th cho cc thnh vin, mi thnh vin s xem xt k hn cc lp m h chu trch nhim, ng thi c th xem xt v c kin ng gp cho cc lp khc. Nh s lm vic trong s trao i hp tc nh vy, biu lp s c y v chnh xc hn. im yu ca k thut CRC l khng c phng php tt nhn din cc lp, nu cc thnh vin khng am hiu nhiu v lnh vc ng dng tng ng. Tuy nhin, nu bng cch no cc nh pht trin xc nh c kh nhiu lp th thng qua s cng tc, trao i th CRC l cng c tuyt vi bo m rng m hnh lp a ra l y v chnh xc.

Chng 7. Tng quan v UML v phng php hng i tng

7.4.5. Xc nh cc thuc tnh, phng thc v mi quan h ca cc lp a. Xc nh cc thuc tnh Kim tra cc danh t cc thuc tnh d tuyn. Tm thuc tnh:"Nu l i tng, th i tng phi c nhng thng tin g?" Gn cc thuc tnh ti lp tng ng: "Thuc tnh ny thuc lp no" b. Xc nh cc phng thc Kim tra cc ng t trong kch bn, use-case xc nh phng thc. Tm phng thc: "Nu l mt i tng, th i tng phi lm g ?" Gn cc phng thc ti lp tng ng: "Phng thc ny thuc lp no ?" Cc phng thc c th c tm t bn ngoi i tng c. Xc nh cc quan h gia cc lp i tng (Relationships) Kim tra cc ng tv lin h vi th t. V d trong th vin th mt bn c ti mt thi im ch mn c ti a la 2 quyn sch. Vy ta c quan h

7.4.6. V vn ci t lp trong mt s ngn ng lp trnh Nu bn tng hc ngn ng lp trnh h tr hng i tng nh C++ hay Java, bn s thy c khi nim lp (class). Vy c s tng ng gia khi nim lp trong phn tch thit k v lp trong ngn ng lp trnh khng? Cc nh sng to cc ngn ng lp trnh HT c s dng khi nim lp trong ngn ng lp trnh ci t cc lp trong phn tch thit k. Ngn ng Java chng hn, h tr rt mnh cho vic ci t cc lp. Tuy nhien c nhiu ngn ng lp trnh rt mnh nhng li khng h tr y kh nng hng i tng, v d Visual Basic, Visual Foxpro... Chng l phn tch v thit k HT ch c th thc thi trn Java hay sao? Vi C++ th kh nng qun tr CSDL khng tht mnh m li phc tp nn t c a chung trong vic ci t cc h thng thng tin. Theo kin ca cc chuyn gia tin hc hng u th gii, phn tch thit k HT nn c ci t bng ngn ng h tr mnh v HT, nhng iu ny khng bt buc. Chng ta c th ci t bng mt ngn ng lp trnh khc, min sao cc biu trong phn tch thit k vn c th c s dng kim tra chng trnh. Ngha l vic lp trnh thc hin ng nhng cng vic m phn tch thit k yu cu. Lc ny lp trong lp trnh c th l mt khi cng vic thc hin ng nhng g m lp trong thit k yu cu.
7.5. Biu hot ng

Biu hot ng (activity diagram) l mt phng tin m t cc dng cng vic (workflow) v c dng theo nhiu cch khc nhau. Nh mt cng c phn tch, n c dng : M t cc dng nghip v (business flow). M t cc dng trong use-case hoc gia cc use-case. mc thit k, biu hot ng c dng : M t chi tit bn trong mt thao tc. 81

Ngoi ra trc khi xc nh cc use-case, n cn c dng xc nh cc yu cu nghip v mc cao. L phng tin m t cc use-case v cc hnh vi phc tp bn trong i tng. Cc biu hot ng b sung cho biu tng tc, v c quan h mt thit vi biu trng thi. Biu hot ng gm hot ng (activity), trng thi (state) v chuyn tip (transition). Nu cc hot ng l ch yu th ta gi l biu hot ng; cn nu trng thi l ch yu th ta gi l biu trng thi. Ni chung th khi nim biu hot ng rng hn, v c th xem trng thi cng l mt dng hot ng (v d nh ch chng hn). Sau y l mt vi v d v biu hot ng:

b) Hnh 7.9. Cc biu hot ng Gii thch ngha ca mt s biu tng: Hot ng (activity) l mt cng vic cn thc hin. K hiu ca hot ng l hnh ch nht gc trn. Trng thi (state) thng l mt im ch mt bin c xy ra. Trng thi cng c th thc hin hnh ng, nh vy c th xem l tng t nh hot ng. Tuy nhin hot ng th phi thc hin hnh ng, cn trng thi th ngm ch vic ch i. Trng thi cng c biu din bng hnh ch nht trn gc nh hot ng, (nhng hnh ch nht biu din hot ng c cc gc hai u trn hn, tuy nhin nu khng c cng c th cc ban c th v ging nhau cng c). C 2 trng thi c bit l trng thi bt u (biu din bng chm en c nh km nhn) v trng thi kt thc (biu din bng chm en vi vng trn bao bn ngoi v cng nh km nhn). Trong mt biu ch c mt trng thi bt u nhng c th c nhiu trng thi kt thc. S chuyn tip (transition) l s thay i t hot ng ny sang hot ng khc hoc t trng thi ny sang trng thi khc, hoc t hot ng sang trng thi hay ngc li. Transition c biu din bng mi tn. Chuyn

a)

Chng 7. Tng quan v UML v phng php hng i tng

tip c th khng c bin c, v d hnh sau biu din mt chuyn tip khng c bin c t hnh ng sang trng thi: Thng thng th cc chuyn tip thng c bin c nh hnh sau:

im quyt nh (decision point) l mt im trn dng cng vic (c biu din bng hnh thoi) m ti thng l c mt iu kin quyt nh cho vic r nhnh ca dng cng vic. Swimlane (ng phn dng nghip v): trong mt m hnh phc tp, ngi ta nhm cc hot ng thnh cc swimlane v b tr thnh cc ct, mi ct tng ng vi mt swimlane. Cc hot ng trn biu c sp xp vo trong cc ct tng ng v cho ta cch nhn r rng hn l hnh ng hoc trng thi ang dng nghip v no, v d nh hnh sau y m t dng nghip v chnh trong use-case "ng k dch v dng chung xe":

83

Kh?ch h?ng

Hnh 7.10. Dng nghip v chnh trong use-case "ng k dch v dng chung xe" By gi, bt u t ng dn chnh, chng ta xt cc nhnh khc. chng hn xem iu g xy ra nu khng tm thy a ch trong CSDL.

Hnh 7.11. Mt nhnh khc trn use-case "ng k dch v dng chung xe" Biu hot ng c th c s dng xc nh hoc hiu r hn cc use-case. V d trong h thng dch v dng chung xe (Car Sharer) th usecase ng k

c biu din r hn bng biu hot ng 7.9.a. T biu ny ta

Chng 7. Tng quan v UML v phng php hng i tng

hiu c qu trnh ng k c thc hin nh sau: trc tin thnh vin mi tm hiu cc dch v, sau ng ng k, thanh ton l ph v cui cng c CarMatch chp nhn. i vi nhng thao tc phc tp th biu hot ng cn c s dng m t cc dng phc tp bn trong.

85

V d vi i tng CarSharer c hm thnh phn addRequirement() nh hnh bn c m t bi biu hot ng 7.9.b. (Du - c ngha l private, + c ngha l public). Trong thc hnh khng phi tt c cc thao tc u c m t theo cch ny. Mi hot ng s nh x ti mt vi ch th n gin trong ngn ng lp trnh, v c th t cc ch th ny bn trong biu hot ng. Cc biu hot ng c th c dng trong sut mt d n, t khu phn tch nghip v n thit k chng trnh. Chng c th c nh km vi nhiu loi i tng, chng hn nh cc use-case nghip v, use-case h thng, cc hot ng v cc thao tc khc. Fork v Join (phn nhnh v kt hp) i khi c mt s hot ng c tin hnh song song. Mt transition c th c chia thnh nhiu nhnh (im chia c gi l fork) v ngc li cc nhnh c th c kt hp thnh mt transition (im kt hp c gi l Join) bng cch dng mt thanh ng b ha.

Khi no s dng biu hot ng? Biu hot ng m t cc ng x (hot ng) qua nhiu use-case din t dng cng vic ca ton b qu trnh. Biu ny c bit hu dng din t mt cch tng quan nhng qu trnh din ra ng thi i vi nhiu i tng mc tng tc cao nht (pha ngoi nht). Khng dng biu hot ng m t s tng tc gia cc i tng. Biu tng tc thch hp hn cho trng hp ny. Biu hot ng khng m t chnh xc ng x ca cc i tng trong thi gian sinh tn ca chng. Biu trng thi thch hp hn.
7.6. Biu trng thi

Biu trng thi (state diagram) l mt phng tin m t cc s thay i trng thi ca cc lp (thc ra l cc i tng). V hnh thc biu trng thi ging biu hot ng, trong cng vic c thay bng trng thi. Biu hot ng ch yu c dng m t cc dng cng vic (workflow), cn biu trng thi li c dng m t s thay i trng thi ca mt lp (thc cht l th hin ca lp, tc l i tng). V d my in thoi c th c cc trng thi: ang gc my, ang quay s, my bn v b ngt kt ni. Nh vy, biu trng thi ch yu c dng m t hnh vi ca cc lp. Tuy nhin chng cng c dng m t hnh vi ca cc phn t khc, nh use-case, actor, h thng con v thao tc. Cc biu trng thi cn c s dng trong quy trnh phn tch m t hnh vi phc tp ca cc phn t trong mi trng h thng, chng hn nh hnh vi ca mt khch hng. Biu trng thi l mt trong nhng biu ca UML dng

Chng 7. Tng quan v UML v phng php hng i tng

m t cc dng (cc biu khc l: biu hot ng, biu tun t v biu cng tc). Tuy nhin, biu trng thi m hnh ha cc hnh vi t gc mt thc th, chng hn nh mt lp; cn biu hot ng v biu cng tc c th lp m hnh hnh vi cho nhiu thc th.

87

Khi no s dng biu trng thi? Biu trng thi dng biu din s thay i trng thi ca mt lp tng ng vi cc thng ip m lp gi i hoc nhn c. Biu trng thi c s dng m t ng x ca mt i tng tri qua nhiu use-case. Hy v biu trng thi cho nhng lp m cc ng x ca chng khng d hiu va do cn m t chi tit hn. Nu bn cn m t nhiu i tng cng tham gia vo mt use-case th nn s dng biu tng tc. din t cc ng x ca nhiu i tng qua nhiu use-case th s dng biu hot ng. Biu trng thi khng phi l cng c tt m t cch ng x ca cc i tng khi tng tc vi nhau. Tm li, biu trng thi khng phi l cng c tt m t cch ng x ca cc i tng khi tng tc vi nhau. Biu trng thi ch yu c dng m t cc trng thi v cc s kin, hot ng trong vng i ca mt i tng. V d. Biu trng thi ca i tng ho n

Ch . C th vit biu trng thi cho mt i tng trong c h thng hay mt s chc nng. Nhng ch nn xy dng cho cc i tng c nhiu trng thi.
7.7. Biu tun t

Trong cc h thng HT, tc v c thc hin nh cc i tng tng tc vi nhau bng cch gi thng ip. Trong UML c hai loi biu c coi l biu tng tc (interaction diagram) l biu tun t (sequence diagram) v biu cng tc (collaboration diagram). Biu cng tc l mt phng tin m t cc s tng tc gia cc lp hoc cc i tng (th hin ca lp). Cc tng tc c nh s th t theo trnh t thc hin ca chng. Cc biu tun t biu din mt s thng tin tng t, nhng khng phi l tt c. Chng ch biu din cc th hin ng vai tr trong tng tc (khng biu din cc quan h cu trc gia cc i tng) mt cch trc quan bng cch dng trc ng ca biu biu din thi gian. K hiu ca biu tun t: Trong biu tun t, cc i tng thng c sp xp theo hng ngang, cn thi gian c biu din trn trc ng t trn xung. Tn ca i tng c vit c gch di, trong hnh ch nht, theo mu: <tn i tng>:<tn lp tng ng> , :<tn lp> hoc <tn i tng> Vi dng :<tn lp> th c ngha l mt i tng v danh ca lp <tn lp> Cc v d tn cc i tng trong biu tun t: DoiTuong:LopTuongUng, TenHang:CComboBox, Insert, :KhachHang Th t ca cc i tng khng quan trng, nhng theo quy c th cc tc nhn

Procedure or synchronous

Flat

Asynchronous Kh?ch h?ng

Return Kh?ch h?ng

Chng 7. Tng quan v UML v phng php hng i tng

bn ngoi v cc i tng giao din c t bn tri. Khc vi tn i tng, tn tc nhn khng c gch di. v d: ng sinh tn (lifeline) v s hot ng (activation). Cc th hin ca i tng c biu din bi mt ng thng ng t nt, vi k hiu i tng trn nh, v d:

Nu mt i tng tn ti trc khi s tng tc bt u v vn tip tc khi s tng tc kt thc th ng sinh tn ca n chy sut t trn xung di biu . Trong biu tun t, mt thng ip hoc mt hnh ng ca tc nhn c biu th bng mt mi tn t i tng gi n i tng nhn, vi cc dng quy c nh sau:

Hnh 7.12. Cc loi k hiu dng thng ip - Procedure or synchronous (th tc hoc ng b): Mt thng ip c gi i t mt i tng n i tng khc v i tng gi s ch cho n khi kt qu hon tt ri mi chuyn sang cng vic khc. - Flat: Khng n tnh ng b hay khng ng b ca hnh ng. - Asynchronous (khng ng b): i tng gi thng ip khng cn ch cho n khi hnh ng hon tt m c th thc hin ngay cng vic khc. - Return (tr v): Biu din vic tr iu khin cho i tng gi thng ip. Trn ng sinh tn ca mt i tng ta thng thy nhng hnh ch nht hp, bao ly ng sinh tn. l vng tiu im kim sot, n cho bit i tng ang thc hin cc tc v no .

Hnh 7.13. Biu tun t Thi gian hot ng ca mt i tng c th c m t bng cch bi en vng tiu im kim sot (c dng cho cc th tc hoc ng b), v d: 89

Hnh 7.14. Biu tun t vi vng tiu im kim sot c bi en


7.8. Biu cng tc

Biu cng tc c dng trong qu trnh din t t m biu lp nhm gip ngi phn tch hiu c cc nhm i tng tham gia thc hin mt usecase nh th no. Biu cng tc c s dng khi biu lp khng din t c ht ngha tng tc gia cc i tng. Ngoi ra biu cng tc cn c dng xc nh cc i tng c lin quan trong cc thao tc. Lun nh rng trong nhiu d n hng i tng, qu trnh pht trin h thng l mt qu trnh lp. Vic dng biu cng tc hoc tun t c th dn n cc lp mi, thuc tnh v thao tc mi. V nh vy biu lp cn c hiu chnh li. Mt biu cng tc ch ra mt s tng tc ng, cng ging nh mt biu tun t. Vic la chn loi biu no c thc hin theo gi sau: nu trnh t thi gian l quan trng hn th hy chn biu tun t, cn nu vai tr lp trong tng tc quan trng hn th hy chn biu cng tc. Trong biu cng tc, cc thng ip c nh s th t ch th t thi gian thc hin chng. Sau y l biu tun t v biu cng tc cho thao tc in thng qua my ch.

Hnh 7.15. Biu tun t cho Printer Server

Chng 7. Tng quan v UML v phng php hng i tng

Hnh 7.16. Biu cng tc cho Printer Server

91

Chng 8. Pha phn tch hng i tng Pha c t cn c gi l pha phn tch, l nguyn nhn ta gi pha c t dng phng php hng i tng l phn tch hng i tng.
8.1. Phn tch hng i tng

OOA bao gm ba bc: 1. Xy dng m hnh use-case (use-case modeling) Xc nh xem nhng kt qu g c tnh ton bi h thng (cha cn n cch thc v trnh t tnh ton). Thc cht l xc nh cc usecase trong h thng v xy dng cc biu use-case cng cc kch bn km theo (kch bn, ting Anh l scenario, l mt th hin c th ca usecase). Bc ny cn c gi l m hnh ha chc nng (functional modeling), m phn ln l hng hnh ng (action oriented). Nh vy c th ni rng php phn tch trong giai on ny l phn tch hng chc nng. 2. Xy dng m hnh lp (class modeling) Xc nh cc lp v cc thuc tnh ca chng. Sau xc nh mi quan h v tc ng qua li gia cc lp. Hin ti cc thng tin di dng biu trng ging nh biu thc th-quan h v c gi l biu lp. Bc ny phn ln l nh hng d liu (data oriented). 3. Xy dng m hnh ng (dynamic modeling) Xc nh cc hnh ng c thc hin bi (ti) cc lp hoc cc lp con. Biu din cc thng tin ny trong dng biu gn ging vi biu cc my hu hn trng thi v gi l biu trng thi. Bc ny l hng hnh ng (action oriented). Trong thc t ba bc trn y khng phi bao gi cng c thc hin ln lt theo th t. Thay i trong mt bc s dn ti thay i trong cc bc kia. Nh vy ba bc trn y ca OOA thc cht c thc hin ng thi. Vic thc hin cc bc nh th no s ph thuc vo vn c th. C th ni rng thc hin tt pha phn tch, i hi s sng to v kinh nghim thc t ca cc k s phn mm. Sau y chng ta s tm hiu cch thc thc hin pha phn tch thng qua bi ton Air Gourmet c gii thiu trong mc 5.10.
8.2. Qun l thng tin v ch n c bit trn my bay

Trong mc 5.10. chng ta tm hiu bi ton xy dng phn mm qun l dch v cung cp thc n c bit cho hnh khch trn cc chuyn bay. cc bn tin theo di, chng ti xin nhc li vi nt chnh. Khi hnh khch i my bay th h c cung cp cc ba n. Do nhng iu kin hn ch, trn my bay ngi ta khng th chun b qu nhiu mn n cho khch hng la chn theo mnh. Do , khi khch hnh t v th nhn vin bn v hi v thc n m h yu cu. Cc yu cu ny sau s c x l, v ngi ta c gng phc v cc thc n c bit nh hnh khch yu cu. Thng tin phn hi cng c ghi nhn thng qua cc phiu nh gi ca hnh khch. Bi ton t ra l xy dng phn mm qun l thng tin v vn ny. Trong ti liu ting Anh ngi ta gi vn ny l the Air Gourmet. Nu dch ra ting Vit th t air gourmet c ngha l dch v cung cp thc n c bit cho cc hnh khch i my bay (gourmet

H?nh kh?ch

Air Gourmet

?i?n tho?i vi?n

Chng 8. Pha phn tch hng i tng

theo ting Anh c ngha l ngi snh n, a gourmet restaurant c ngha l ca hng n phc v nhng ngi snh n, tc l ca hng gm cc thc n chn lc). n gin trong cch vit, chng ti tm nguyn ting Anh. Bn mu nhanh vit bng C v Java ca air gourmet c th tm thy trang web www.mhhe.com/engcs/compsci/schach. Thc n chnh ca bn mu ny lit k danh sch cc use-case. Tuy nhin trong s cc use-case ch c mt vi use-case l ch cht m chng ti s gii thiu ngay sau y. Nhng use-case ng vai tr ph, thc cht l c m rng t cc use-case chnh, s khng c ni ti trong phn phn tch. Bng phng php gii thiu trn y, bc u ta c th xc nh c hai use-case chnh ca h thng nh sau: Use-case t ch:

Hnh 8.1. Use-case t ch hiu r hn use-case ny, ta cn s dng hai scenario: chun v ngoi l. Tuy nhin trong trng hp ny ta khng gi l scenario ngoi l (exception) m gi l m rng (extended scenario) ch nhng tnh hung khc c th xy ra. n gin trong cch vit, chng ta tm gi Air Gourmet l AG, c s d liu ca air gourmet l AGD, hnh khch l HK, in thoi vin (phone operator), ngi trc tip nghe in thoi ca hnh khch, l TV. Scenario chun: 1. HK gi in ti phng v xin t ch cho chuyn bay. 2. TV ngh hnh khch cho bit h tn v a ch. 3. HK cung cp cc thng tin c yu cu. 4. TV hi hnh khch ngy gi v s chuyn bay. 5. HK cung cp cc thng tin c yu cu. 6. TV hi HK xem c yu cu g v thc n c bit khng. 7. HK ni loi thc n c bit nu c yu cu. 8. TV hi xem HK c yu cu g v ch ngi khng. 9. KH ni ch ngi a thch. 10. TV yu cu tr tin. 11. HK cho bit s th tn dng. 12. TV chuyn cc thng tin t ch ti AGD. 13. AGD a ra m s t ch (reservation ID). 14. TV cho khch hng bit m s t ch v thng bo rng v s c chuyn ti khch hng trong thi gian ngn nht. Cc tnh hung khc: A. S chuyn bay c yu cu khng c trong ngy m khch hng mun bay. B. Chuyn bay m HK yu cu ht ch. C. HK yu cu thc n qu c bit m AG khng p ng c (v d mn c kh chng hn). D.S th tn dng ca HK c vn . 93

Khi xy dng bn mu cha nn a cc tnh hung khc vo, v mc ch ca bn mu l a ra nhng nt chnh ca sn phm phn mm trong thi gian nhanh nht. Use-case th hai l Use-case thu nhn v x l cc bn gp ca hnh khch:

Hnh 8.2. Use-case thu nhn v x l cc phiu nh gi ca hnh khch Cc scenario tng ng vi use-case ny l: Scenario chun: 1. Khi my bay h cnh, cc nhn vin ca AG gi cc bn gp cho cc HK nhn c thc n c bit. 2. HK nhn c phiu nh gi v cho im thc n ri gi li cho AG. 3. Sau khi nhn c cc phiu nh gi, cc nhn vin ca AG cp nht bn ghi v chuyn bay tng ng trong AGD ghi nhn kin nh gi ca HK. Cc tnh hung khc: A. Hnh khch khng nhn c phiu nh gi. B. Hnh khch nhn c nhng khng gi li phiu nh gi. C. HK nh du sai trong phiu nh gi, v d cho im ngoi vng quy nh chng hn. D.HK khng yu cu thc n c bit nhng vn nhn c phiu, nh du v gi li. C mt s use-case khc (create and shade a special meals list, transport special meals, view "low sodium" report, view "percentage statistics" report, view "meals not loaded" report, and view "poor quality" report) c th coi l cc use-case m rng t cc use-case trn y. V l do n gin ha, ta khng xt cc use-case ny. Bc tip theo l xy dng m hnh lp. Mc ch chnh ca bc ny l a ra nh ngha cc lp cng cc thuc tnh, xc nh cc quan h v cc tng tc gia chng. Hin ti ch xc nh cc thuc tnh ca cc lp. Cc phng thc (cc hm thnh phn) ca cc lp s c a vo trong giai on thit k (OOD). By gi chng ta s dng k thut trch danh t (noun extraction) tm cc lp. Bc 1 l nh ngha vn tht ngn gn v sc tch, tt nht l trong mt cu, v d: Trong bc 2 (theo ting Anh bc ny c gi l informal strategy), ta s m t

H thng tin hc ha l cn thit cung cp thng tin v tnh hiu qu ca dch v cung cp thc n c bit trn cc chuyn bay.

Chng 8. Pha phn tch hng i tng

vn mt cch ngn gn, tt nht l ch trong mt on vn (paragraph), v d:

Cn a ra cc bo co v tnh hiu qu ca dch v cung cp thc n c bit trn cc chuyn bay. Cc bo co cp n t l phn trm cc loi thc n c phc v trn cc chuyn bay, thng tin v chuyn bay, h tn v a ch ca cc hnh khch, cht lng thc n, cht lng thc n nht (hm lng natri thp).

Tip theo ta nh du cc danh t trong on vn ny:

Cn a ra cc bo co v tnh hiu qu ca dch v cung cp thc n c bit trn cc chuyn bay. Cc bo co cp n t l phn trm cc loi thc n c phc v trn cc chuyn bay, thng tin v chuyn bay, h tn v a ch ca cc hnh khch, cht lng thc n, cht lng thc n nht (hm lng natri thp).

Cc danh t l: bo co, tnh hiu qu, dch v, thc n, chuyn bay, t l phn trm, h tn, a ch, hnh khch, cht lng. Trong s cc danh t trn y th cc danh t: tnh hiu qu, dch v, t l phn trm, cht lng l cc danh t tru tng (tc l khng ch mt vt th tn ti v mt vt l trong thc t). H tn v a ch l cc thuc tnh ca hnh khch. S c hay thiu mt loi thc n c bit no trn chuyn bay l iu rt quan trng. Tuy nhin c mt iu cha tht sng t l nn chn c thc n v chuyn bay thnh cc lp hay mt trong hai hoc khng chn ci no c? V thng thng vic thm vo mt lp th d hn l b i mt lp, nn by gi tm thi ta cha xt n hai danh t ny, t nht l trong ln tinh chnh u tin (at least for the first iteration). Vy cn li hai danh t l bo co v hnh khch. Vy trongbc tinh chnh u tin ta c biu lp nh hnh 8.3. Biu ny bao gm hai lp ng c vin ni trn. Lp bo co c bn trng hp ring l cc lp con (subclass) l: bo co t l phn trm thc n, bo co v cc thc n khng c phc v, bo co v thc n cht lng km. bo co v thc n nht.

Hnh 8.3. Biu lp cho phn mm AG trong bc tinh chnh u tin (Lu * cng ging nh 0..*). Lp bo co cha cc trng (thuc tnh ) chung cho c bn lp con, l ngy bt u v ngy kt thc ca khong thi gian bo co. Mi lp con s cha cc trng ring. Nh ch ra trong mc 5.10, thng tin cn th hin trong bn bo co l: 1. Vi mi loi thc n c bit c th, cn in ra cc thng tin sau: T l phn trm loi thc n ny c c a n cho khch hng (trn 95

tng s ln thc n ny c t). T l phn trm thc n ny c t trn tng s ln t. 2. H tn v a ch ca tt c cc khch hng c t nht hai ln khng nhn c thc n t trong khong thi gian in bo co v thi im m nhng ln ny xy ra. 3. H tn v a ch ca tt c cc khch hng, nhng ngi cho rng thc n h nhn c khng phi l tt nht, im nh gi v thi gian m nhng ln ny xy ra. 4. Vi loi thc n nht (low-sodium meal), in ra s chuyn bay, ngy bay v im nh gi. C mt s im cn lu trong biu 8.3. nh sau: 1. thu thp c y thng tin cho cc bo co th d liu phi c ly tng chuyn bay lm c s (data are needed on a per-flight basis). V d xc nh t l phn trm s hnh khch c mt trn chuyn bay m h t thc n c bit, th d liu phi c t chc theo cc chuyn bay. 2. Mi bo co phi truy xut d liu t nhiu chuyn bay, v mi chuyn bay th c nhiu hnh khch. Trong bc tinh chnh th nht, cn hai danh t cha c a vo danh sch cc lp. Vn cn b ng l nn a chuyn bay hay thc n hay c hai vo m hnh. T nhn xt trn y ta nhn thy rng mc d cc bo co th hin cc thng tin v hnh khch, nhng ng thi thng tin v chuyn bay cng rt cn thit. Mi quan h gia bo co v hnh khch c th tch ra thnh hai quan h bo co - chuyn bay - hnh khch nh sau:

Chng 8. Pha phn tch hng i tng

Nh vy trong bc tinh chnh th hai ta c m hnh lp l:

Hnh 8.4. Biu lp cho phn mm AG trong bc tinh chnh th hai Nh nhc n trn, trong giai on phn tch, ta mi ch a ra inh ngha cc lp cng cc thuc tnh ca chng. Cc phng thc (tc l cc hm thnh phn) s c a ra trong gia on thit k. Hnh sau y cho bit cc thuc tnh ca cc lp trong biu 8.4.

Hnh 8.5. Cc lp trong biu 8.4 cng cc thuc tnh Bc th ba trong pha phn tch HT l xy dng m hnh ng. Da vo cc scenario ta c th xy dng biu trng thi nh hnh 8.6. Lu l biu trng thi thng biu din trng thi cc lp, ch khng biu din cc trng thi ca sn phm phn mm. Tuy nhin bi v cc lp ca AG khng chuyn t trng thi ny sang trng thi khc, nn biu trng thi c phn khc vi thng thng nh c th thy trn hnh 8.6.

97

Hnh 8.6. Biu trng thi cho phn mm Air Gourmet n y, pha phn tch hng i tng c th c coi l hon tt. Cn mt vic nn lm l xem xt li tng phn v c s hiu chnh nu thy cn thit. D nhin c khch hng ln nhm pht trin u khng b b buc v vic dng cc biu ca UML nh l ti liu c t thch hp. Ni cho cng th ti liu c t chnh l bn hp ng gia khch hng v nh pht trin. Ngoi cc biu UML, h c th s dng thm cc cng c khc lm cho ti liu r rng, d hiu v hai bn u cm thy va lng. V vy sau khi thc hin phn tch hng i tng th nhiu ti liu c t truyn thng khc cng c a ra. Trong trng hp AG cng vy. Tuy nhin v thi lng c hn v bi ton cng kh n gin nn chng ta tm kt thc pha phn tch y.
8.3. Nhng vn cn ch trong pha phn tch

Nh ni ti, yu cu ca ti liu trong pha c t l phi t c tnh hnh thc (informal enough) khch hng c th hiu c, mt khc cng phi bo m tnh chnh xc v cht ch (formal enough) nhm pht trin cn c vo xy dng phn mm. S mu thun ny l c hu v cc nh

Chng 8. Pha phn tch hng i tng

pht trin phi bit cn i, xc nh v tr thch hp nht gia "v da v v da". Mt vn na ca pha phn tch l ng ranh gii gia pha c t ("lm g?") v pha thit k ("lm nh th no?") rt kh phn nh. Lu l ti liu c t ch din t l "phn mm lm g?", v ng bao gi tr li cu hi "lm nh th no?". V d, nu khch hng i hi mt tnh ton no phi thc hin trong thi gian khng ln hn 0,05 giy, th trong ti liu c t ch nu chnh xc yu cu ny, khng ni g thm v vic s dng thut ton g t c iu ny. Nh vy ti liu c t ch nu nhng rng buc, m khng ni r cc rng buc c thc hin nh th no. Ngay trong trng hp phn tch c cu trc chng hn, cc hnh ch nht trn gc trong cc biu dng d liu (DFD) l cc nt ch hnh ng (action), ch khng phi l module. C th nhiu hnh ng mi c hp thnh mt module (v cng c th mt hnh ng phc tp li c thc hin bi nhiu module). Cch kt hp cc hnh ng vo module s c din t trong pha thit k. Nh th, trong pha phn tch ch ni hnh ng thc hin ci g, ch khng ni hnh ng thc hin nh th no, thm ch khng cn ni nhng hnh ng no cng hp thnh module. Nhng ngi lm thit k cn xem xt ti liu c t sao cho thit k ny dn n cch thc hin ti u bn c t.

99

Chng 9. Pha thit k Trong vng hn ba thp k qua c hng trm phng php thit k ra i. Trong s cng c mt s cn li dng dp trong cc phng php hin ang dng. C nhng phng php c hng chc ngn k s phn mm s dng, nhng cng c nhng phng php ch c tc gi ca chng s dng m thi. Mc d c rt nhiu phng php thit k, nhng chng vn thng c mt nt chung. Chng ta bit rng, mt sn phm phn mm thng c to nn bi hai loi thnh phn: d liu v cc thao tc trn d liu. Bi vy c hai cch c bn thit k mt sn phm phn mm l thit k hng hnh ng (action-oriented design), hay cng cn gi l thit k hng chc nng, v thit k hng d liu (data-oriented design). Trong phng php thit k hng hnh ng th hnh ng c ch trng hn d liu. V d nh trong phn tch dng d liu (data flow analysis) chng hn, mc tiu c t ra l thit k cc module c tnh c kt cao. Trong phn tch hng d liu, nh k thut ca Michael Jackson a ra nm 1975 chng hn, trc ht cu trc d liu c xc nh, sau cc th tc c xy dng ph hp vi d liu. im yu ca phng php hng hnh ng l tp trung ch vo hnh ng, d liu ch c xem l th yu. Tng t, im yu ca phng php hng d liu li tp trung ch vo d liu. R rng c nhng h thng m vai tr ca d liu v hnh ng u quan trng gn nh ngang nhau. Gii php dung ha l phng php HT, trong hnh ng v d liu c xem l c vai tr nh nhau. Bi v i tng l kt hp ca hnh ng v d liu, do thit k HT l s phi hp ca thit k hng hnh ng v thit k hng d liu. V vy nhng hiu bit c bn v hai loi thit k ny l cn thit cho s hiu bit y v thit k HT. Trong thc t phng php thit k hng d liu t c s dng hn so vi phng php hng hnh ng. c bit t khi phng php hng i tng ra i v bao gm bn trong n hai k thut ni trn, th hu nh phng php ny tr thnh lc hu, gn nh khng c s dng. Do trong ti liu ny chng ta b qua khng tm hiu phng php ny.
9.1. Thit k v s tru tng ha (design and abstraction)

Thit k mt sn phm phn mm gm ba cng vic: thit k tng th (general design), thit k chi tit (detailed design) v kim th thit k (design testing). u vo ca pha thit k l ti liu c t (specification document), m t h thng lm g (what the product is to do). u ra ca pha thit k l ti liu thit k, m t h thng thc hin nhng iu nu ra trong bn c t nh th no (how the product is to do it). Thit k tng th cn c cc tn gi l thit k kin trc (architectural design), thit k logic (logical design), hoc thit k mc cao (high-level design). Trong bc ny phn mm c phn gii thnh cc module (a modular decomposition of the product). Ngha l bn c t s c phn tch k lng, v cu trc module (module structure) ca phn mm s c to ra. u ra ca ca bc ny l danh sch cc module cng vi m t v mi lin kt gia chng. Khi m hnh HT c s dng, mt s thao tc thit k tng th c thc hin trong pha phn tch. Bi v bc th hai trong OOA, sau xy dng m hnh use-case, l xy dng m hnh lp, m vic u tin ca bc ny l xc nh cc lp v cc thuc tnh ca chng. Bi v lp cng l mt dng ca module, nn khi xy dng biu lp chnh l ta thc hin mt

Chng 9. Pha thit k

vi phn gii module , ngha l thc hin cng vic ca thit k tng th. Bc tip theo l thit k chi tit hay cn gi l thit k module (modular design), thit k vt l (physical design), thit k mc thp (low-level design). Trong bc ny tng module s c thit k chi tit. V d thut ton c th v cu trc d liu tng ng c chn. Nh vy, cng vic hai bc u tin cn thc hin l: chia phn mm thnh cc module (phn gii module), sau thit k chi tit tng module (thit k module) m cha cn ch ti vic mi module l mt thnh phn ca phn mm hon chnh. Hot ng th ba (the third activity) l kim th thit k. Chng ta khng gi l bc th ba, bi v kim th l hot ng c thc hin mi ni. Khng cn ch khi kt thc thit k tng th hoc thit k chi tit mi thc hin kim th, m mi ln thc hin xong mt cng vic no u phi kim tra li, so snh i chiu vi yu cu khch hng xem cng vic c c thc hin ng khng. Sau y chng ta s tm hiu mt s k thut thit k thng s dng.
9.2. Thit k hng hnh ng

Nh ni trn, bc u tin ca pha thit k l phn r module, ngha l cn xc nh xem phn mm cn xy dng gm nhng module g. C nhiu k thut phn r phn mm, trong c cc k thut mang tnh l thuyt v cc k thut c tnh thc hnh. y chng ta quan tm hn n k thut thc hnh. Hai k thut thit k hng hnh ng in hnh l phn tch dng d liu (data flow analysis) v phn tch giao dch (transaction analysis). V mt l thuyt, phn tch dng d liu (DFA) c th p dng khi cc c t c biu din bi DFD (data flow diagram). V bi v v mt l thuyt, mi sn phm phn mm u c th biu din bng biu dng d liu, do DFA c ng dng kh rng ri. Tuy nhin trong thc t cn c mt s k thut thit k khc c p dng, c bit trong cc trng hp m DFD ch ng vai tr th yu. V d nh trong cc h c s tri thc (rule-based system) hay cn gi l h chuyn gia (expert system) , c s d liu (databases), cc phn mm x l giao dch (transaction processing products). i vi cc phn mm x l giao dch (transaction processing products), v d nh phn mm iu khin hot ng ca my rt tin t ng (automated teller machine, ATM) chng hn, th k thut phn tch giao dch t ra thch hp hn. Tuy nhin trong ti liu ny chng ta ch tm hiu k thut phn tch dng d liu.
9.3. Phn tch dng d liu

Phn tch dng d liu (data flow analyis, DFA) l mt k thut phn r phn mm thnh cc module c tnh c kt cao (module with high cohesion). (Tnh c kt l khi nim ca cng ngh phn mm c nh ngha trong mt s ti liu, tuy nhin y chng ta s khng tm hiu qu chi tit v khi nim ny). Trc ht, cn c mt cht lu v thut ng. Chng ta ang pha thit k, vy t "phn tch dng d liu" c th gy s hiu nhm. Tuy nhin nu thay t "phn tch" bng t "thit k" th ngha b sai lch. Vy chng ta s dng t "phn tch" y vi ngha thc ca n (r rng bt k pha no cng cn phn tch vn a ti kt qu). C l v vy ngi ta hay gi "pha phn tch" l "pha c t". DFA c biu din trong s ni tip vi phn tch h thng c cu trc 101

(structured system analysis). u vo ca k thut ny l cc DFD. im mu cht l, vi mi DFD, ngi pht trin phn mm c c thng tin chnh xc lin quan n u vo v u ra ca phn mm. Tm thi ta gi s phn mm cn xy dng c biu din trong mt biu dng d liu ch c mt u vo v mt u ra, v trong qu trnh x l d liu khng b tch ra, v d nh dng d liu c biu din bi DFD trong hnh 9.1. Trong DFD, d liu vo (input) qua nhiu bc bin i v cui cng thnh d liu ra (output). Tuy nhin trong qu trnh bin i ny d liu ch thay i v cht mt s v tr. V d nh vi dng d liu c u vo l h tn mt ngi no , v u ra l chui k t trong dng ch in hoa cng vi k t xut hin nhiu nht trong trong h tn d v di ca chui. Gi s a l thao tc nhp tn, cn b l kim tra xem tn c hp l khng, v d nu tn c cha s chng hn th khng hp l. Nh th b khng lm bin i u vo ban u, nn b l hnh ng khng lm thay i d liu v cht (quality). Ngi ta gi im m trong thao tc tip theo d liu vo ban u s b bin i thc s v cht l im c mc tru tng cao nht ca u vo (point of highest abstraction of input). n gin trong cch vit, ta tm gi l im HA ca u vo. Tng t ta nh ngha c im HA ca u ra.

Hnh 9.1. DFD biu din dng cc d liu v hnh ng Gi s d liu vo ca DFD trong hnh 9.1 l h tn. Trong cc thao tc l: a: Nhp h tn l mt chui k t b: Kim tra tnh hp l c: Chuyn tt c cc k t sang dng ch hoa d: Loi du cch hai u e: Loi du cch tha trong chui k t f: m k t xut hin nhiu nht g: Tnh di ca chui h: Cho hin kt qu trn mn hnh Khi ta xc nh c cc im HA ca Input v Output nh trn hnh 9.2.

Hnh 9.2. Cc im HA trn biu dng d liu v cch phn r module Sau khi xc nh c cc im HA ca u vo v u ra, ta c th phn chia qu trnh thnh ba module vi tn gi nh trn hnh v. Tip theo ta xem xt dng d liu nm trong phn transform module v li thc hin phn chia tng t. Qu trnh ny c thc hin cho n khi module bin i (transform module) l kh n gin, khng cn phn chia na th kt thc. i vi nhng dng d liu phc tp, c nhiu nhnh th ta tch DFD

Chng 9. Pha thit k

thnh tng DFD con ch c mt nhnh v thc hin phn r nh va nu trn. Cch phn phn r mt dng d liu thnh cc module thng cn ty thuc vo cch nhn nhn ca ngi phn tch, v do cng mt DFD c th c nhiu cch phn r khc nhau. Sau khi c c cc module th bc tip theo l thit k chi tit cc module ny. Trc ht l bn m t tng module theo mu sau ( y chng ti in thng tin ca trng hp trn y cc bn tin theo di): Module name (tn module): Nhp v kim tra tnh hp l ca h tn Module type (kiu module): Function Return type (kiu tr v): Boolean Input arguments (cc tham s vo): H v tn: string Output arguments (cc tham s ra): H v tn: string Error messages (cc thng bo li): Khng Files accessed (nhng tp c truy cp): Khng Files changed (nhng tp b thay i): Khng Modules called (nhng module c gi): Khng Narrative (tng thut): Module ny c gi vi tham s vo l mt chui biu din h tn. Chui ny s c hin trn mn hnh v ngi s dng c th sa li hoc nhp h v tn mi. Chng trnh s kim tra tnh hp l. Nu kim tra thy rng chui ny l tn hp l th s tr v gi tr logic l true, nu khng hp l th tr v false. Tham s ra ca module cng chnh l tham s vo nhng c sa hoc nhp li. Hnh 9.3. Thit k chi tit ca mt module Thit k trong bng 9.3 l c lp vi ngn ng lp trnh. Tuy nhin nu ngi qun l quyt nh ngn ng lp trnh trc khi thc hin thit k chi tit th ngi ta thng dng ngn ng m t chng trnh (a program description language, PDL), hay cn gi l gi ngn ng lp trnh (pseudocode) biu din thit k chi tit. PDL thc cht l cc li ch dn c ni vi cc t kha ca ngn ng la chn. Sau y l mt on thit k chi tit c vit bng PDL tng ng vi C++ (on chng trnh ny m t thao tc m s t trong mt tp): void perform word count() {String validated file name; int word count; if (get intput (validated file name) is false) print "error 1: file does not exist"; else {set word count equal to count number of words (validated file name); if (word count is equal to -1) print "error 1: file does not exist"; else produce output (word count); } }
9.4. Thit k hng i tng

Thit k hng i tng (object-oriented design, OOD) chnh l thit k phn 103

mm da trn cc i tng, l th hin ca cc lp c xy dng trong pha phn tch. Cc ngn ng lp trnh c in nh COBOL, FORTRAN, PASCAL, C... khng cung cp cc kiu bin i tng nh th ny. Nh th, c v nh OOD khng thc hin c trong cc ngn ng lp trnh c in, m ch c th thc hin trong cc ngn ng lp trnh h tr hng i tng nh C++, Java...? Tuy nhin khng phi nh vy. Bn cht ca vic phn tch thit k l th hin quan im nhn nhn h thng. Mt phn mm bt k bao gi cng gm hai loi thnh phn: cc hnh ng v d liu. Vi k thut cu trc (structured technique) th ch ly mt trong hai yu t trn lm tiu chun phn chia h thng thnh cc thnh phn. iu khc bit ca k thut HT so vi k thut cu trc l xem vai tr hnh ng v d liu l ngang nhau v c hai cng tham gia vo vic phn chia h thng. Tuy nhin vic phn chia c ngha, cc hnh ng v d liu c nhm li thnh cc lp, sao cho lp mang mt ngha no trong thc t. Mt cch t nhin, ngi ta thy rng nn xy dng cc lp sao cho n i din cho cc i tng trong thc t. Vi cch nhn nhn nh vy th c th tin hnh phn tch v thit k hng i tng m khng cn da vo mt ngn ng lp trnh HT c th. Chng ta c th ci t bng mt ngn ng lp trnh khc, min sao cc biu trong phn tch thit k vn c th c s dng kim tra chng trnh: vic lp trnh thc hin ng nhng cng vic m phn tch thit k yu cu. Lc ny lp trong lp trnh c th l mt khi cng vic thc hin ng nhng g m lp trong thit k i hi. V d nh cc d liu thnh phn chng hn, trong ngn ng lp trnh HT th l cc thnh phn ca lp, c th c che du sao cho cc hm bn ngoi khng truy cp c. Nhng trong thc t th d liu rt ln, phi lu tr trn cc tp bn ngoi nh cc tp ca Foxpro, Access... Cc hm thnh phn cng vy. iu quan trng l cc hm x l ci g. Vi mt ngn ng lp trnh HT th nn trong mt lp. Tuy nhin nu mt lp qu ln, c hng trm hm thnh phn th c th cc hm bn ngoi lp, min l chc nng x l ca n khng thay i. Vi cch nhn nhn nh vy th c th dng mt hm bnh thng trong ngn ng khng h tr HT thc hin vai tr ca n nh mt hm thnh phn ca mt lp, cng ging nh d liu vy. Cn t tn cc hm sao cho chng ta c th bit c hm no thuc lp no. Khi cn s dng li, ta s a cc hm v d liu lin quan n mt lp sang phn mm mi. OOD gm bn bc sau y: 1. Xy dng cc biu tng tc cho cc scenario (interaction diagrams). 2. Xy dng biu lp chi tit (detailed class diagram). 3. Xy dng s bin din cc quan h i tng-khch (client-object relation). 4. Tin hnh thit k chi tit. Sau y OOD c minh ha bng mt v d c th l thit k HT phn mm Air gourmet. Bc 1. Xy dng biu tng tc (interaction diagram) cho tng scenario Biu tng tc bao gm biu tun t (sequence diagram) v biu cng tc (collaboration diagram). C th vi mt scenario ngi ta s dng c hai loi biu . Biu tun t m t cc hnh ng thc hin tun t

Chng 9. Pha thit k

theo thi gian, cn biu cng tc ngoi cc hnh ng cn ch r vai tr ca cc lp hay tc nhn. Biu tun t cho scenario ca use-case t ch c th hin trong hnh sau:

Hnh 9.4. Biu tun t ca scenario t ch xy dng biu tun t trc ht cn xc nh cc tc nhn ca scenario: hnh khch, in thoi vin, v c s d liu ca AG. Tn cc tc nhn c vit trong cc hp hnh ch nht v t hng trn cng, nu l tc nhn thc s trong m hnh use-case th vit tn bnh thng, khng c gch di, cn nu tc nhn thc ra l th hin ca lp (i tng) th c gch di, nh trong trng hp trn y th khch hng v in thoi vin l cc tc nhn thc s, cn c s d liu AG l mt i tng. Tip theo v cc ng thng kp theo chiu thng ng xut pht t cc hp tc nhn nh hnh v. ng kp m ch rng tc nhn hay i tng ang trng thi hot ng. By gi mi s kin ca scenario c xem xt v ln lt a vo biu theo trnh t thi gian. V d, s kin (event) u tin l hnh khch gi cho in thoi vin v yu cu t ch. S kin ny c biu din bi mt mi tin nm ngang i t ng thng ng hnh khch n ng thng ng in thoi vin v c gn nhn l: 1. Yu cu t ch, m ch rng hnh ng ny c kch hot bi khch hng v hng tc ng l in thoi vin. Cc s kin tip theo c biu din tng t. Vi scenario th hai ta khng nhn mnh n trnh t thi gian, v vy c th biu din bng biu cng tc (collaboration diagram) nh sau:

105

Hnh 9.5. Biu cng tc ca scenario x l phiu nh gi Cch xy dng biu cng tc cng c thc hin gn ging vi biu tun t vi mt vi khc bit c th thy trn hnh 9.5. Mi lin h gia cc tc nhn biu din bng cc on thng. Hng tc ng c biu din bng mi tn. Tn tc ng c ghi cnh mi tn. Bc 2. Xy dng biu lp chi tit. Trong pha phn tch HT chng ta xy dng biu lp, trong gm cc lp v cc thuc tnh. Trong phn ny chng ta s b sung thm cc hm thnh phn ca lp. Thng th trong biu lp ngi ta biu din lp thnh ba phn: tn lp, cc thuc tnh v cc hm thnh phn. Tuy nhin y chng ti hiu chnh mt cht tin cho cng vic son tho, in n: trong biu ch c tn cc lp, cn phn thuc tnh v hm thnh phn s c biu din ring. Nu vit chng trnh trong ngn ng C++ ta thy rng cha c kiu d liu Date, do y ta thm mt lp Date s dng trong cc lp khc. Bi v cch din t ting Anh ngn hn, nn t bc ny chng ta s dng ting Anh trong m t. Tn ting Vit cc lp c chuyn nh sau: chuyn bay flight, hnh khch passenger, Bo co report. Hm thnh phn ca cc lp c th phn lm ba loi: hm tr v thng tin s bt u bng ch get, v d trong lp Date th hm getday() s tr v ngy ca bin i tng, v d d = t.getday() s gn gi tr ngy ca bin i tng t cho d; hm gn gi tr cho mt bin thnh phn ca i tng bt u bng t set, v d setday(10) c ngha l t day =10; cc hm cn li thc hin cc cng vic khc nh hin ln mn hnh, in n, x l d liu... Chng ta tm dng k hiu hm bt u bng save l lu thng tin vo c s d liu. Hnh sau y l thit k chi tit ca cc lp:

Chng 9. Pha thit k

Hnh 9.6. Biu lp chi tit cho ci t bng C++

Hnh 9.6. Biu lp chi tit cho ci t bng C++ (tip theo) Bc 3. Thit k phn mm theo cc i tng v cc yu cu. Nu i tng C gi thng ip cho i tng O th C c gi l khch hng ca O. Biu tng tc c s dng biu din cc khch hng ca mi i tng. Thng ip gi t C n O c biu din bi mi tn t C n O. Mi quan h client-object cho ci t bng C++ ca bi ton AG c th hin trong biu 9.7. Biu quan h client-object khng thuc tp cc biu ca UML, v do Stephen R. Schach xut vi mc ch m t s gn kt gia cc thnh phn ca sn phm v lm cho thit k chi tit c thc hin d dng hn. Biu ny c xy dng bng cch xc nh xem hm thnh phn ca mi lp c li gi n cc hm thnh phn no ca cc lp khc. Nu hm thnh phn ca lp C c li gi n hm thnh phn ca O th ta ni rng C gi thng ip cho O v k hiu C O.

107

Hnh 9.7. Biu client-object cho ci t bng C++ Gii thch biu : Khi kch hot, chng trnh s bt u t hm main, sau thc n chnh (main menu) c kch hot. Thc n ny c hai la chn: nhp s liu cho cc chuyn bay v hnh khch v hin thc n bo co (display report menu). Thc n bo co c li gi n bn i tng l cc bo co. Cc bo co ny u c li gi n Report. Report li c li gi n Flight, v Flight gi n Passenger. C Report, Flight v Passenger u s dng Date.

Chng 9. Pha thit k

Hnh 9.8. Biu client-object cho ci t bng Java Gii thch biu : Khi kch hot, chng trnh s bt u t ng dng AG (AG application). ng dng ny s s dng cc tin ch ca n (utilities). Cc bc tip theo c gii thch tng t nh biu 9.7. Trong Java kiu d liu Date c sn nn khng cn xy dng. Vi li bnh lun v biu quan h client-object: Biu ny l s sng to ca Stephen R. Schach. Theo chng ti, trong trng hp cc biu lp kh r rng th khng cn s dng biu ny m thay vo l phn thit k giao din. Bc 4. Thit k chi tit. Cui cng l thc hin thit k chi tit y (complete detailed design) cc lp. Thit k chi tit c thc hin bng cch xem xt tng hm thnh phn hoc cc hm v xc nh c th xem chng lm g. Bng sau l mt v d v thit k chi tit hm trong phn mm Air Gourmet (cho ci t bng C+ +). d phn bit vi cc hm ci t bng ngn ng khc, bt u tn lp ta thm k t 'C'. Module name Module type Return type Input arguments Output arguments Error messages File accessed File changed Module called 109 CFlight::insert Method void None None None temp1.dat, temp2.dat temp1.dat CFlight::read,write

Narrative

Inserts the filght record object into the proper place in the file

Hnh 9.9. Thit k module CFlight::insert cho ci t bng C++ Gii thch ngha: Module name: tc l tn hm hoc phng thc. Trong v d trn th tn module chnh l phng thc insert, l hm thnh phn ca lp CFlight (chnh l lp Flight trong cc biu lp trn) Module type: Kiu ca module. Trong bng trn, kiu ca module l phng thc (tc l hm thnh phn ca mt lp). Return type: Kiu tr v, void c ngha l hm khng c kiu tr v. Input arguments, Output arguments: Cc tham s vo ra. bng trn c ngha l khng c cc tham s vo ra. File access: Danh sch nhng tp m hm ny c truy cp ti. Trong bng trn, hm insert c truy cp cc tp temp1.dat v temp2.dat. File changed: Danh sch nhng tp b thay i khi chy hm nyi. Nh trn l tp temp1.dat. Module called: Nhng hm no c gi. Nh trn l cc hm read() v write() ca chnh lp ny. Narrative: Tng thut, tc l m t r module ny thc hin ci g. Khi vit ti liu thit k bng ting Vit, cc bn c th ct bn tri bng tng Anh, cn ct bn phi nn vit ting Vit cho d hiu, c bit l phn narrative.
9.5. Nhng thch thc trong pha thit k hng i tng

Nh ni n cc phn trc, mt iu quan trng l khng nn lm qu nhiu trong pha c t. Trong pha thit k, nhm pht trin thng i theo hai cch thc sai lch: hoc l lm qu nhiu hoc lm qu t. C nhng k s thit k vit lun c cc m lnh cho cc module trong ngn ng no nh C++ hay Java. Thc ra lm nh vy l khng nn, s rt tn thi gian vit cc dng lnh v cha cc li pht sinh. Bn thit k ch nn dng li mc biu din bng PDL. Khuynh hng th hai cng cn trnh l lm qu t. V d nh trong bng m t module ch cha mt mc duy nht l narrative, l phn m t chc nng ca module, cn nhng phn khc ph mc cho ngi lp trnh. Lu l s m t ngn gn bng li nh vy nhiu khi khng cho ngha chnh xc v ngi lp trnh rt kh thc hin. Vy thch thc i vi cc nh thit k l lm sao h thc hin ng phn cng vic ca h, khng tha, khng thiu.
9.6. Thm mt s ghi ch v vn thit k hng i tng

trn chng ta nu ra bn bc cn thc hin khi thit k hng i tng mt sn phm phn mm. Tuy nhin trong thc t khng nht thit phi lun lun thc hin ng nhng bc ny. V d nh khi ta s dng mt cng c phn mm khc qun l d liu nh Access chng hn, th nn thm bc thit k c s d liu. Trong nhng trng hp nh vy, pha thit k c th gm nm bc nh sau: 1. Thit k c s d liu. 2. Xy dng biu tng tc (biu tun t v biu cng tc) 3. Xy dng biu lp chi tit.

Chng 9. Pha thit k

4. Thit k giao din. 5. Thit k chi tit.

111

Chng 10. Pha ci t v tch hp Ci t l qu trnh chuyn i thit k chi tit thnh cc m chng trnh. Ni nh cch thng thng l vit chng trnh thc hin nhng iu nu ra trong bn thit k. Nu chng trnh ch do mt ngi vit th qu trnh ny tng i d hiu. Tuy nhin, ngy nay phn mm cn xy dng thng rt ln, v do phi c thc hin bi nhiu ngi. V vy ngi ta s dng thut ng "lp trnh bi nhiu ngi" (programming-in-the-many) ch cch lp trnh gm nhiu ngi tham gia. Cho n nay ta vn xem ci t v tch hp l hai pha ring bit, c lp ln nhau. Mi module (i tng cng c xem l module) s c ci t (vit code) bi mt thnh vin ca nhm lp trnh v c kim th bi nhm bo m cht lng phn mm. Trong qu trnh tch hp th cc module c hp li v c kim th mt cch tng th. Thc ra ngi ta thy rng cch ny khng phi l hiu qu nht pht trin phn mm. Ngi ta thy rng hai pha ci t v tch hp nn c thc hin song song th tt hn. V vy ngi ta thng gp hai pha ny v gi chung l "pha ci t v tch hp". Thc ra th ci t v tch hp l hai hot ng khc hn nhau. Trong chng ny chng ta s xem xt cc hot ng ny khi chng c thc hin ng thi, hay chnh xc hn l an xen nhau. Trc ht chng ta s xem xt n vic la chn ngn ng ci t chng trnh.
10.1. La chn ngn ng lp trnh

Thc ra th vic la chn ngn ng lp trnh nn c thc hin ngay trong pha thit k. Nh chng ta thy, trong ti liu thit k c th c nhng phn mang tnh c th ca ngn ng lp trnh. Trong bn tht k bi ton AG chng hn, biu client-object cho ci t C++ v Java l khc nhau. Trong trng hp cha xc nh c ngn ng lp trnh th thit k nn dng mc t chi tit hn. Nu la chn ngn ng h tr HT nh C++ hay Java ci t OOD th khng c g phi bn ci. Cc lp trong thit k s c chuyn thnh kiu d liu class. R rng trong OOD th class l vin gch xy dng nn tt c, do vic quan trng nht cn thc hin trong ci t OOD cng chnh l vic ci t cc lp hoc i tng. Lu rng lp ch l phn t c tnh i din, khng xc nh r, cn i tng mi l phn t tham gia cc hot ng thc s ca chng trnh. Nu nh cc i tng ca mt lp khng ng thi hot ng th thay v lp ta c th xy dng i tng. V d gi s mt form nhp liu l th hin ca mt lp, trong cc thuc tnh l cc d liu trn form, cn cc phng thc l cc nt lnh. Nu cng lc ta cn s dng nhiu mn hnh nhp liu ging nhau th trc ht nn xy dng lp, sau khai bo cc i tng l cc form c th c cng dng nhng s hot ng c lp nhau. Tuy nhin nu ta khng dng ng thi cc form th c th xy dng form mt cch trc tip, tc l xy dng lun i tng, ch khng cn dng kiu d liu lp. Chnh Schach cng ni rng c th dng ngn ng bt k ci t OOD, thm ch ngay c vi cc ngn ng c to ra vo nhng nm 60 ca th k trc nh COBOL, trong thm ch khng th khai bo kiu d liu mi nh lnh type trong Pascal hoc typedef trong C. iu ny c ngha l c th dng Foxro for DOS, Access, Visual Foxpro (VF), Visual Basic (VB), Delphi hay bt c mt ngn ng no m bn nm chc ci t OOD. C++ l ngn ng tt ci t chng trnh minh ha, nhng li c qu t tin ch nn rt kh khn trong vic vit cc phn mm ng dng c

Chng 10. Pha ci t v tch hp

trong thc t nh qun l bn hng, th vin in t... Ngay c Visual C++ cng vy, nhng h tr v CSDL khng mnh bng VF hay VB nn t c dng vit cc ng dng v h thng thng tin qun l. Trong thc t, ngay c trong trng hp bn nm chc mt ngn ng no , nhng khch hng li mun s dng mt ngn ng khc thch hp vi h hn. V d cng ty ca h hin ang s dng cc chng trnh vit bng VB v h yu cu phn mm mi cng phi c vit bng ngn ng ny. Hoc my tnh mt ca hng n c cu hnh thp v ch c th ci t foxpro for DOS, nn ch ca hng cng ngh chng trnh ch vit bng Foxpro for DOS m thi... Nu gp trng hp ny, ngi pht trin ch c hai cch la chn: chp nhn vit chng trnh bng ngn ng nh sn, hoc khng k hp ng lm phn mm. Tuy nhin cng c nhiu trng hp khch hng yu cu phn mm c vit bng ngn ng thch hp nht, sao cho chng trnh chy nhanh v chnh xc, bo tr d dng... Trong trng hp ny vic la chn ngn ng lp trnh thch hp ph thuc vo kh nhiu yu t, v d phn cng v phn mm sn c, bi ton cn gii quyt, kinh nghim ca i ng lp trnh vin,... Tr li vn la chn ngn ng lp trnh. Hin nay cc bn cha hc Java. Cc ngn ng khc c s dng nhiu trong thc t nh VF, VB, Access u khng h tr HT y . V d trong VF bn ch c th khai bo mt lp mi t cc lp c s c nh Form, ToolBar, CommandButton... Trong VB th khng c kiu d liu class, m ch c module kiu class (class module), khng c tnh tha k. Tuy nhin cng c nhiu lp c s ging nh VF v bn c th khai bo cc bin i tng mi t cc lp c s ny, v d lnh dim t as form s khai bo bin t c kiu Form. V Acccess s dng VB lm cng c lp trnh (VB for application), nn cng ging nh VB. Trong chng 12 chng ta s tr li vn ny. Trong bi cnh hin nay ti ngh rng cc bn nn dng C vit bn mu v dng Acccess ci t OOD ca bi ton thc t l tng i ph hp.
10.2. Cc phng php ci t v tch hp

Gi s phn mm cn xy dng c 13 module lin h vi nhau theo biu nh hnh 9.1 sau y:

Hnh 10.1. Biu biu din mi quan h gia cc module (module interconnection diagram) 113

Theo cch thng thng th mi module c vit m v kim th mt cch ring bit, sau c kt ni v kim th mt cch tng th. y chng ta gp hai vn tr ngi. Trc ht hy xem module a. V a gi b, c v d nn a khng th kim th mt mnh. Nh vy kim th a th b,c, v d cn c ci t di dng module rng (v c gi l stub). Stub hiu qu hn mt cht th in ra thng bo. Stub tt nht l tr v gi tr tng ng vi s liu kim th mu. By gi ta xem xt module h. kim th h th cn c driver hoc module gi ti h. Nu c th th cn kim tra gi tr h tr v trong qu trnh kim th. Tng t, kim th d th cn driver v hai stub tng ng vi f v g. Nh vy trong qu trnh th ta phi to ra cc stub v driver, ri sau khi th xong li vt i. Nu cc module khng c ci t theo mt th t nht nh th nhiu khi s module cn ci t stub kh nhiu. iu tr ngi th hai quan trng hn l: nu sau khi hon tt phn ci t mi tin hnh kim th th khng c lp ha c li. Nu sau khi lp ghp sn phm chy c li th rt kh xc nh v tr li xy ra (v d nu c 103 module v 108 giao din th c khng t hn 211 v tr c th cha li). Gii php gii quyt tr ngi ny l phi hp c ci t v tch hp ng thi v theo mt th t nht nh. C hai cch ci t v kim th: top-down v bottom-up. Ci t v tch hp t trn xung (top-down) Trong phng php ci t v tch hp theo kiu trn xung (top-down implementation and integration), nu module A c li gi n module B th A c ci t v kim th trc B. kim th A th B cn c ci t di dng stub. Sau khi A c kim th th ci t stub ca B c m rng thnh ci t thc s... V d trong s hnh 9.1. th th t ci t v kim th l: a, b, c, d, e, f, g, h, i, j, k, l, m. Trc ht a c ci t. Sau b, c, d c ci t di dng stub v a c kim th. Sau khi kim th a th n lt stub ca b, c v d c m rng thnh ci t thc s. e, f v g c ci t di dng stub. C nh vy, khi ci t cc module mc k trong s hnh cy th ta cn ci t cc module mc k+1 di dng stub. Qu trnh kim th dng li khi tt c cc module u c ci t v kim th. Ci t v tch hp t di ln (bottom-up) Phng php ci t v tch hp theo kiu di ln (bottom-up) c thc hin ngc li vi phng php trn xung. u tin cc module mc di cng (hay i khi cn gi l mc cao nht nu ni v chiu cao ca cy) c ci t v kim th. Sau l cc module mc pha trn c ci t v kim th cng vi cc module mc di. C nh vy cho n khi cc module mc trn cng c ci t v kim th th qu trnh hon tt. C th thy rng phng php bottom-up c u im hn phng php topdown ch l khng phi to ci t dng stub (cc module tng di cng thng phi th vi cc driver). Tuy nhin n cng c mt nhc im kh ln l: nu li pht hin ra mun, tc l cc mc gn gc ca cy chng hn, lc ton b phn di ca cy phi xem xt li.
10.3. Kim th sn phm phn mm

Khi tt c cc module c kim th v kt hp li thnh sn phm phn mm hon chnh th cha c ngha l nhim v ca nhm pht trin kt thc.

Chng 10. Pha ci t v tch hp

Nhm SQA (software quality assurance) cn phi tin hnh mt s php kim th na bo m phn mm hon tt. C hai loi sn phm phn mm chnh: loi c ng gi bn ra th trng (commercial off-the-shelf software, COTS) v loi lm theo hp ng cho mt khch hng. Mc ch pht trin mt phn mm COTS l lm sao c c cng nhiu ngi mua cng tt. V vy khi tt c cc module ca COTS c tch hp th phn mm c chuyn cho nhm SQA tin hnh kim th ton b sn phm (product testing). Mc ch ca vic kim th ny l bo m rng sn phm khng c li. Khi vic kim th hon tt th sn phm c chuyn qua giai on kim th alpha v beta. Ngha l phin bn ban u c a cho mt s khch hng tng lai h s dng, Nhng thng tin phn hi t khch hng c nhm SQA xem xt v sn phm li c hiu chnh bi nhm pht trin nu c li c pht hin. i vi phn mm t hng (custom software) th cch thc kim th ton b sn phm c khc cht t. Nhm SQA tin hnh mt s kim th bo m rng sn phm c th vt qua c giai on kim th chp nhn (acceptance test), tc l giai on m chng trnh c ci t trn my khch hng, chy vi cu hnh v s liu thc v c kim tra bi khch hng. Kim th chp nhn chnh l ro cn cui cng m nhm pht trin phi vt qua. Nu kim th chp nhn b tht bi th s c rt nhiu iu bt li cho cng ty lm phn mm. Khch hng s ngh rng cng ty phn mm c i ng k s km nng lc v chuyn mn v v sau h khng t hng cng ty na. Vic ny c th cn nh hng n c cc mi quan h vi cc khch hng khc na ca cng ty, lm cho uy tn ca h b gim st v h mt dn khch hng. Vic kim th trc khi chuyn cho khch hng kim tra l v cng quan trng, do phi c thc hin mt cch thn trng qua cc bc nh sau: 1. Thc hin php th hp en cho ton b sn phm. Trong qu trnh tch hp cc module, ta mi ch kim th xem tng module c tha mn c t khng v phn mm sau tng bc lp ghp c hot ng tt khng. Sn phm sau khi c to ra phi c kim th mt cch ton din. Kim th hp en c ngha l kim tra xem chng trnh chy tt khng, tnh ton cho kt qu chnh xc khng, ngha l ta ch quan tm n phn bn ngoi ca phn mm. Phn cu trc bn trong b hp en (black-box) che khut. (Hp en y c dng vi ngha l khng ch n bn trong). 2. Cn kim th tnh n nh (robustness) ca sn phm mt cch ton cc. Tnh n nh ca cc module v tng phn ca phn mm c kim th trong qu trnh tch hp. Khi qu trnh tch hp kt thc th phi kim th tnh n nh ca phn mm mt cch ton cc. Cn c cc trng hp mu khc nhau th tnh n nh. c bit ch cc kim th cc im (stress testing) , tc l kim th c thc hin khi phn mm hot ng mc ti a, v d tt c cc mn hnh lm vic (terminal) u c s dng, hay nh vi phn mm iu khin my rt tin th tt c cc my rt tin u c khch hng s dng... Hay kim th dung lng (volume testing), v d phn mm c kh nng x l tp d liu u vo ln khng... 3. Nhm SQA cn kim tra xem phn mm tha mn tt c cc rng buc nu ra trong bn c t hay cha. V d, nu bn c t ni rng khi chng trnh ang lm vic mc ti a (working under full load) th 95% cc yu cu truy xut thng tin c tr li trong vng 3 giy chng 115

hn, th nhm SQA phi kim th xem c ng nh vy khng. Ngoi ra, cn kim tra nhng rng buc v kh nng lu tr d liu v tnh bo mt (storage constraints and security constraints). 4. Nhm SQA cn xem xt li tt c ti liu v chng trnh cn chuyn giao cho khch hng, c i chiu vi bn k hoch qun l d n phn mm. Kim tra cc ti liu c ph hp vi phn mm khng. V d xem li ti liu s dng v th dng n thao tc phn mm xem phn mm hot ng ng nh ti liu m t khng. Cc scenario (kch bn) l nhng c s rt tt cho cc php kim th phn mm hng i tng. C th da vo cc scenario kim tra hot ng ca cc module cng nh ton b phn mm. Scenario cn c th c s dng kim th thit k. Ln theo tng bc trong scenario, c th kim tra xem chng trnh c thc hin ng nhng g scenario m t khng. Sau khi vic kim th hon tt, ton b chng trnh vi cc m ngun v ti liu km theo c chuyn giao cho khch hng khch hng tin hnh giai on kim th chp nhn.
10.4. Kim th chp nhn

Kim th chp nhn (acceptance test) l kim th cui cng i vi phn mm v c thc hin bi khch hng. y l iu khc bit so vi tt c qu trnh kim th khc, v cho n nay tt c cc kim th u c thc hin bi nhm pht trin hoc nhm SQA. Khch hng s dng th sn phm v kim tra xem n c thc hin ng nhng g nu ra trong bn c t m nhm pht trin a ra khng. (Bn c t do nh pht trin a ra nhng c s thng nht ph duyt ca khch hng). Trong thc t, kim th chp nhn l do khch hng thc hin, tuy nhin trong trng hp khch hng hiu bit qu t v tin hc v khng bit vn hnh phn mm cho ng (v cha qua hun luyn s dng) th c th khch hng s thu nhm SQA thc hin vi s theo di gim st ca h. Kim th chp nhn cng tp trung vo bn yu t chnh ca phn mm l: tnh ng n, tnh n nh, cc cng vic thc hin v ti liu km theo (correctness, robustness, performance and documentation), ngha l cng ng nhng yu cu cn thc hin trong giai on kim th sn phm c thc hin bi nhm SQA. iu ny khng gy bt ng, bi v mc ch ca kim th sn phm chnh l chun b cho vic kim th chp nhn c sun s. V l thuyt, kim th chp nhn phi c thc hin trn d liu tht. Tuy nhin d liu tht thng ch c c khi ngi ta s dng phn mm vo cng vic thc s. Khch hng li mun rng ch khi no h thc s tin tng vo cht lng ca sn phm th h mi s dng vo cng vic thc s. Vy l ri vo vng lun qun v ngi ta c gng khc phc bng cch c to ra "d liu nh tht". Tuy nhin, "d liu nh tht" cn khc rt xa d liu tht, v cc chuyn gia khuyn rng nn c gng kim th bng d liu tht. Nu trn my tnh ca khch hng c phn mm c, v phn mm mi l bn nng cp ca phin bn c th vic kim th chp nhn c thc hin thun li hn. Lc ny khng nn xa phin bn c m nn dng song song c hai bn. Kt qu tnh ton nhn c bi phin bn c s c dng kim tra tnh ton tng t ca phin bn mi. D nhin vi nhng chc nng m phin bn c khng c th phi dng s liu thc. Ch khi no phin bn mi c kim tra k cng v chy n nh th mi xo phin bn c khi my tnh (tuy nhin vn nn lu ct trn thit b nh khc nh a CD).

Chng 11. Pha bo tr Sau khi sn phm tri qua kim th chp nhn v thnh cng, phn mm s c huyn giao cho khch hng. Thc ra, khi thc hin kim th chp nhn th phn mm cng c ci t trn my tnh ca khch hng, nhng ch vi mc ch kim th. Trong qu trnh ny nu pht hin li th nhm pht trin li hiu chnh phn mm. Cn s chuyn giao sau khi hon tt giai on kim th l s chuyn giao chnh thc theo hp ng. Sau phn mm s c khch hng s dng vo cng vic m h t ra ban u khi t hng xy dng phn mm. Nhiu ngi ngh rng vai tr ca nhm pht trin n y kt thc, v phn mm hon tt. Tuy nhin, mi phn mm c ch hu nh chc chn chuyn qua mt giai on hiu chnh m ngi ta gi l pha bo tr. Cng vic bo tr c phn lm hai loi: bo tr sa li (software repair), tc l sa cc li pht sinh m trong giai on kim th cha pht hin ra. Cho d vic kim th c tin hnh cn thn v chi tit n u th vn khng th khng nh l phn mm lm vic hon ho. V con ngi d rt thng minh cng khng th hnh dung trc c mi tnh hung. Loi bo tr th hai l bo tr cp nht (software update). Bo tr cp nht li bao gm bo tr hon thin (perfective maintenance) v bo tr thch nghi (adaptive maintenance). Bi v ngoi cc m ngun cn cc ti liu khc nh hng dn s dng, ti liu phn tch thit k,...nn mi s thay i hiu chnh trong cc phn ny u c gi l bo tr. Mt s tc gi dng t "tin ha" (evolution) thay cho t "bo tr" (maintenance) ch rng thc ra phn mm tri qua qu trnh tin ha, bt u t nhng kho st ban u cho n khi thi s dng.
11.1. V sao bo tr l cn thit?

C ba l do chnh sau y v s cn thit phi c giai on bo tr mt phn mm: 1. L do trc tin l sa li pht sinh, c th l li do c t, thit k, lp trnh, ti liu hoc mt dng bt k no . Vic sa li phn mm sau khi chuyn giao cho khch hng c gi l bo tr sa li. Qua kho st 69 cng ty phn mm, ngi ta thy rng cn khong 17.5% thi gian bo tr sa li sn phm, tc l thi gian dng cho bo tr sa li chim khong 17.5% tng thi gian bo tr. 2. Thc t cho thy rng, trong qu trnh s dng phn mm, khch hng s pht hin ra nhng iu bt tin cn ci tin hoc cn b sung thm chc nng mi. V d khi th vi s liu nh th chng trnh nhp d liu chy rt nhanh, nhng khi thao tc vi d liu tht c dung lng ln hn nhiu th tr nn chm chp. Lc ny nhm pht trin phi xem xt li thut ton v phi c s ci tin ph hp. C ngha l sn phm chuyn giao vn cha phi hon thin v mi mt, m cn tip tc hon thin tip. Nhng cng vic ci tin, lm cho phn mm hot ng tt hn c gi l bo tr hon thin (perfective maintenance). Bo tr hon thin l mt phn ca bo tr cp nht (gm bo tr hon thin v bo tr thch nghi). Thc t cho thy rng y l cng vic cn nhiu thi gian nht trong pha bo tr phn mm, trung bnh chim ti khong 60.5%. 3. Thng th phn mm c thit k v ci t ph hp vi mi trng lm vic ca khch hng. Tuy nhin trong qu trnh s dng, mi trng c th thay i, v d khch hng mua my tnh mi, ci t h iu hnh

Chng 11. Pha bo tr

mi...v rt c th phn mm khng hon ton ph hp vi mi trng mi ny. V d nh nu chng trnh vit bng foxpro for windows th s khng chy c trong windows 2000 hoc window NT, v foxpro for windows khng tng thch vi cc mi trng ny. Trong nhng trng hp nh th cn hiu chnh chng trnh sao cho n c th chy c trong mi trng mi. Cng vic bo tr kiu nh th ny c gi l bo tr thch nghi (adaptive maintenance) v chim khong 18% thi gian bo tr. Cn li 4% thi gian bo tr dnh cho cc cng vic bo tr khng thuc ba loi ni trn.
11.2. Bo tr phn mm hng i tng

u im ca phn mm hng i tng l tnh d bo tr. Phn mm hng i tng c to nn bi cc i tng. Cc i tng li l cc thnh phn tng i c lp, c ngha l hot ng ca n tng i c lp vi cc i tng khc. Cc i tung lin h vi nhau bng cch gi cc thng bo (thc cht l c li gi cc hm thnh phn ca nhau). Khi mt i tng nhn c thng bo th n tin hnh cng vic mt cch c lp. V vy li pht sinh trong phn mm hng i tng thng c th c lp c trong mt hoc mt nhm i tng m thi, v vy vic sa li d dng hn, trnh c phn ng dy chuyn.

118

Chng 12. Ci t OOD bng ngn ng lp trnh khng h tr HT Nhng iu ti trao i vi cc bn trong chng ny l kin ca ring ti. Cc bn c th tham kho v c kin phn hi, coi nh mt bui ta m vy. Nu cc bn thy rng ti ni iu g khng hp l th c pht biu kin, chng ta cng trao i hiu r hn vn . Mt s vn trong chng ny thc ra c cp trong chng 10 (Pha ci t v tch hp). Tuy nhin cc bn tin theo di, chng ti s nhc li nu thy cn thit.
12.1. M u

Khi bin son bn tho ny chng ti tham kho cc ti liu t nhiu ngun khc nhau (xem danh sch cc ti liu tham kho), trong hai ti liu chnh c s dng l "Object-Oriented and Classical Software Engineering" ca Stephen R. Schach v "Software Project Management, a practitioner's approach" ca E.M. Bennatan. Cun th hai c dch ra ting Vit bi PGS. Nguyn Quc Ton, i hc Quc gia H ni, vi tiu "Qun l d n phn mm, mt cch tip cn cho ngi thc hnh". S d ti chn cun sch ca Schach, v cch trnh by kh n gin v d hiu. Tc gi gii thiu cc vn l thuyt thng qua cc v d c th, bt u t pha pho st yu cu, n phn tch, thit k ri ci t, tch hp v bo tr. Cc bn c th tm thy cc ci t bng C++ v Java, cng mt phn ca cun sch ca Schach qua trang Web www.mhe.com/engcs/compsci/schach . Thc ra khi hc mn "Phn tch h thng hng i tng vi UML" cc bn cng lm quen vi cng ngh phn mm. Trong mn hc "Cng ngh phn mm v qun l d n CNTT" ny chng ta s tm hiu qui trnh xy dng mt phn mm mt cch y v ton din hn. c th nm chc c kin thc v sau ny p dng c vo thc t, ti ngh rng ngay by gi cc bn nn i tm hiu thc t v th xy dng mt phn mm d n gin, nhng p dng nhng kin thc hc, cc bn s thy hiu bi hc hn v dn dn cc bn c th tip cn v gii quyt c cc bi ton ln hn. Vn l nn la chn ngn ng lp trnh g ci t OOD? C l cu tr li m ai cng ngh ti l: nn chn ngn ng lp trnh HT nh C++ hay Java, v l nhng ngn ng h tr HT y nht. Tuy nhin. nu ci t mt phn mm c thao tc c s d liu th s dng C++ v thm ch Visual C++ s kh phc tp v t c dng; cn Java th cc bn cha c hc m s dng cng khng n gin. C mt vi ngn ng khc nh Visual Foxpro (VF) hay Visual Basic (VB) chng hn, cng h tr HT nhng khng y nh C++ v Java. V d trong VB khng c kiu d liu class, ch c module kiu class, VB c nhiu loi i tng c sn, nhng ch c tnh ng gi, khng c tnh k tha gia cc i tng, v v th, cng khng c tnh a hnh. Trong thc t nhiu khi vic chn ngn ng khng phi do ngi lp trnh quyt nh m cn do nhng yu t khc. V d khi bn cng tc mt ni m ngi ta ch s dng Foxpro for DOS thi chng hn, v h yu cu bn vit phn mm bng ngn ng ny th sao? R rng bn rt kh thuyt phc h dng Java, v Java l ngn ng thng dch, chng trnh Java ch chy c trn my c ci t Java m thi, v rt c th khch hng khng mun ci t Java trn my ca h tit kim b nh. Theo cc chuyn gia tin hc hng u th gii th phng php hng i tng

Chng 12.Ci t OOD bng ngn ng lp trnh khng h tr HT

hin nay v trong tng lai gn vn cn l phng php hiu qu nht (xem [6]). Ch l mt cng c mnh nh vy li ch c th dng mt vi ngn ng lp trnh thc hin hay sao? Tm li, c mt cu hi t ra l: thit k hng i tng c th c thc hin (lp trnh, ci t) bng mt ngn ng lp trnh khng h tr hng i tng, v d nh C, COBOL, FORTRAN...khng? Rt may cu tr li c cho bi Schach l: c (xem [6], 2002, trang 406). Theo Schach, th mt ngn ng lp trnh (nh COBOL chng hn) khng h tr thm ch c lnh nh ngha kiu d liu nh type trong Pascal v typedef trong C, cng c th ci t chng trnh theo thit k hng i tng. Vy cu tr li l c. Nu chng ta hi tip: vy lm nh th no ci t mt OOD bng mt ngn ng khng h tr hng i tng? Cc lp c ci t nh th no khi khng c kiu d liu class? Mt ln na chng ti li c cng tm mt v d mu, trong OOD c ci t bng ngn ng khng h tr hng i tng, nhng khng may l cho n nay chng ti cha tm c. Nu khng tm c th ch c cch l chng ta s lm theo cch m chng ta cm thy ng vy. Sau y ti xin a ra mt vi gi v cch ci t mt OOD trong ngn ng lp trnh khng h tr HT nh Foxpro for DOS, hoc c h tr hng i tng nhng khng y nh VB, Access. Cc bn ch nn xem y l cc gi , v nu ti chm bi cc bn th ti s cho rng cch lm nh th ny l ng. Ti cng khng dm chc l sau ny trong mt mi trng khc nu bn cng thc hin nh vy th s c ng h hay khng. Hin nay vic p dng cc thnh tu cng ngh thng tin vo thc t Vit nam cng cn c nhiu vn tranh ci, iu ti sp gi cho cc bn hin cha c ai lm, nn c th khng phi uc chp nhn nhng ni khc. Quan im ca ti l: cc bn c hc, c lm i. Nu c g cha n chng ta s hiu chnh dn cho ngy mt tt hn.
12.2. Ci t cc lp v cc i tng c lp

Trong phn tch v thit k HT, khi nim lp hoc i tng ng vai tr quan trng bc nht. Cng vic cn thc hin trong bc phn tch l xy dng ba loi m hnh: M hnh use-case gm cc biu use-case (use-case diagram) cung cp mt bc tranh ton cnh v nhng g ang xy ra trong h thng. Mi phn t ca m hnh ny thng l mt lp. M hnh lp gm cc biu lp m t cc lp cng vi kh nng cng tc gia chng. Lp (class) chnh l phn t c bn xy dng nn biu lp. M hnh ng gm cc biu tng tc (interaction diagram) biu din cc hnh ng c thc hin bi (ti) cc lp hoc cc lp con, v d biu trng thi. Nh vy khi nim lp tham gia mi ni trong m hnh HT. Trong cc ngn ng lp trnh HT th lp (class) l mt kiu d liu, cng ging nh kiu thc, nguyn...nhng li c s khc bit l lp c th c cc thnh phn l d liu hoc hnh ng. d hnh dung, c ngi ni rng lp l tp hp cc i tng, v cm t lp ca cc i tng cng hay c s dng. Tuy nhin nu i hi tnh cht ch th cch ni ny cha tht chnh xc. Ta khng th ni int l tp hp cc s nguyn, cn int x; l mt th hin ca lp s nguyn, m ch c th ni int l kiu d liu nguyn, cn int x; c ngha l bin x c kiu nguyn c 120

khai bo. Vy th khi ta vit class V {...}; V x; th c ngha l V l mt kiu d liu, cn x l mt bin c kiu V. Tuy nhin trong thc t ta vn chp nhn cch ni khng hon ton chnh xc vn d hiu hn. Nu ci t lp bng ngn ng lp trnh HT v s dng kiu d liu class th d nhin vn kh n gin, ta ch cn thc hin chuyn i t cch m t sang cc dng lnh mt cch tng ng. Tuy nhin nu ci t bng mt ngn ng khng h tr HT hoc khng dng kiu d liu class th s kh khn hn. Trc ht ta cn lm r khi nim lp trong m hnh UML. Trong cc m hnh UML th lp c hiu l phn t i din khng xc nh r ca mt tp hp cc i tng c chung mt s c trng no , cc c trng ny c th l thuc tnh hoc hnh ng. Nh vy i tng chnh l mt th hin ca lp. Gi s ta c lp Hng vi cc thnh phn c m t trong bng sau (ct th 2 l gii thch):

Chng 12.Ci t OOD bng ngn ng lp trnh khng h tr HT

Hng MAH TENHANG NOICC SOLUONG DONGIA TimKiem() NhapMoi() Xoa() Save()

Tn lp M hng Tn hng Ni cung cp S lng cn trong kho cha bn n gi Tm kim hng Nhp mt hng mi Xa mt hng Lu d liu

Nh cch hiu trn y th c th hiu lp Hng l mt bng gm cc thuc tnh v hm nh trn nhng cha c gi tr, cn i tng l bng nhng nhn gi tr c th: Hng MAH: TENHANG: NOICC: SOLUONG: DONGIA: TimKiem() NhapMoi() Xoa() Save() a) Lp Hng Hng MAH: VT TENHANG: My vi tnh NOICC: Cng ty FPT SOLUONG: 21 DONGIA: 6 000 000 TimKiem() NhapMoi() Xoa() Save() b) i tng My vi tnh ca lp Hng

Nu bn lm quen vi i tng Form trong Access th bn c th thy rng Form nhp d liu c dng nh sau l mt ci t hp l ca lp Hng:

a) Lp Hng b) i tng My vi tnh ca lp Hng Hnh 12.1. Dng Form ci t lp v i tng Chng ta c th thy rng nu thuc tnh thng thay i t i tng ny sang i tng khc th hm li khng nh vy. Thng th cc hm l nh nhau vi cc i tng khc nhau, ngha l cc hm thnh phn ca lp c xc nh ngay khi xy dng lp v khng thay i vi cc i tng khc nhau. 122

Tng t, chng ta c th thy rng mt s cng c khc nh i tng Report cng c th dng ci t cc lp trong m hnh UML. D liu trong thc t thng khng nm ngay bn trong i tng, m c lu trong bng d liu. D liu trong i tng ch l bn ghi hin thi, hoc l d liu tm thi trc khi a vo tp. Khi form nhp d liu c nhiu bn ghi (tc l khi d liu c hin ln theo chiu ngang) th form c th c xem l i tng ng vi bn ghi hin thi. Trong VF hoc VB c rt nhiu kiu bin i tng c nh ngha sn (tc l cc lp) nh cc lp Form, CommandButton, ToolBar... v bn nn tn dng cc lp ny to cc i tng mi. Phn quan trng th hin s tng tc thc s gia cc lp trong mt OOD l m hnh ng. Trong m hnh ny cc i tng ng vai tr ch o, v d nh trong biu tun t, biu cng tc. Khi ci t chng trnh th ranh gii gia lp v i tng i khi khng tht r rng, v nhiu khi bn cng khng cn bn tm qu l lp hay i tng. Vi lp Hng ni trn, nu ngn ng bn la chn ch c th to c cc hm th bn c th lp trnh to ra biu nhp d liu cng cc chc nng i km nh tm kim, nhp mi, xa, lu tr. Tt c cc hm ny c a vo mt module ring (v d mt tp chng trnh chng hn) c tn nh tn lp. V sau ny khi dng li cho phn mm khc th bn chuyn c module ny sang phn mm mi. Tm li, trong nhng ngn ng lp trnh c cc i tng th bn c th dng cc i tng ny ci t lp v i tng trong cc m hnh UML m khng cn a ra mt kiu d liu mi ging nh class. Cn trong ngn ng lp trnh khng h tr hng i tng th bn c th dng nhm cc hm v cc hm con biu din lp v i tng.
12.3. Ci t cc lp v cc i tng c tnh tha k

Gi s ta phi ci t lp bo co v hai lp tha k t n l bo co nhn s v bo co thu nhp. Lp bo co ch c hai thuc tnh l t ngy v n ngy, du c kiu ngy thng (Date). Hai lp con khng cha cc thuc tnh ny (tt nhin l mi lp c th c nhiu thuct tnh ring) m s dng lun cc thuc tnh ca lp cha.

Hnh 12.1. Tnh tha k trong m hnh UML Nu trong mt ngn ng lp trnh HT c h tr tnh tha k th cc lp c ci t ng nh tnh cht ca tha k : hai lp con c s dng cc thnh phn ca lp cha, ch cn b sung thm cc thuc tnh mi. Vi ngn ng lp trnh khng h tr tnh tha k th chng ta ci t c ba lp mt cch c lp v c ba u c cc thuc tnh t ngy v n ngy. Tuy nhin cc d

Chng 12.Ci t OOD bng ngn ng lp trnh khng h tr HT

liu thnh phn ny ch nhp trong lp cha (lp bo co), cn trong lp con th lun lun nhn gi tr t lp cha. V d mi ln gi i tng bo co nhn s th i tng ny gi n i tng tng ng thuc lp cha (lp bo co) v ly thng tin t ngy, n ngy trong lp cha cp nht cho cc thuc tnh t ngy, n ngy ca chnh n. Thc ra ci t kiu nh th ny th mi ng vi thc t. Tht vy, gi s anh Quang c tha hng t ng ni mi tc xon tt v vng hoe. R rng mi tc ca anh Quang ging ht mi tc ca ng, nhng l mi tc ca ring anh ta (ch khng dng chung mi tc vi ng nh nh ngha tha k trong ngn ng lp trnh HT). C th mt i ln nghe theo bn b anh ta nhum thnh tc en, nhng khi lm cng vic h ng nh tp trung gi chp g , anh ta li mun chng t mnh ng l ging ging ca ng ni nn li lm li tc theo ng hnh mu tc ca ng. Tr li v d trn y, cc bn c th lm mt form nhp thng tin t ngy, n ngy. Mi ln lm bo co nhn s hay bo co thu nhp bn s gi ti form ny nhp thng tin t ngy, n ngy cho bo co.
12.4. i li kt lun

Tm li, nu bn c mt cng c lp trnh HT m bn hiu r, th bn nn dng n ci t OOD. V d nay mai hc ngn ng lp trnh Java th bn hy th ci t xem. Cn nu khng c ngn ng lp trnh nh vy th bn cng ng v th m nao nng. Bn c th dng mt ngn ng lp trnh bt k ci t OOD.

124

Mt s thut ng v cch vit tt Vit tt Ngha ting Anh


Test case CASE COTS software DFD ERM FD IEEE MIS OOA OOD PDL P-spec RDM RFP RFT SA SPMP SPMP SQA group UML Software developer Computer aided software engineering Commercial-off-the-shelf software Shrink-wrapped software Click-wrapped software Data flow diagram Entity-relationship modeling Functional diagram Institute of Electrical and Electronic Engineers Management information system Object-oriented analysis Object-oriented design Program description language Process specification Rerational database model Requirement for proposal Requirement for tender Structured analysis Software project management plan Software project management plan Software quality assurance group Unified modeling laguage

Ngha ting Vit


S liu dng th phn mm, v d input v output mu. Ngi xy dng phn mm Cng ngh phn mm s dng tr gip ca my tnh Phn mm ng gi

Biu dng d liu M hnh thc th-lin kt Biu phn cp chc nng H thng tin qun l Phn tch hng i tng Thet k hng i tng Ngn ng m t chng trnh (m gi) c t chc nng M hnh c s d liu quan h Yu cu v h s mi thu Phn tch c cu trc k hoch qun l d n phn mm K hoch qun l d n phn mm Nhm bo m cht lng phn mm Ngn ng m hnh ha thng nht

Black-box testing: Khi ta kim th c t, ta xem chng trnh nh mt hp en (che kn nhng g c bn trong hp), ngha l ta khng quan tm n chng trnh c vit nh th no m ch quan tm xem n lm c ci g. V vy php th nh th ny gi l php th hp en. White-box testing: Khi ta kim th cc lnh (code), ta cn xem cu trc bn trong chng trnh. Nh vy nu xem chng trnh l mt chic hp th hp ny phi trong sut c th nhn thy. Ngi ta gi php th nh th ny l php th hp trng, i li vi hp en. C tc gi gi l php th hp thy tinh (glass-box testing) cho st ngha hn.

125

Regression testing: Dng cc d liu mu c th li cc chc nng khng lin quan n phn chng trnh va sa i c gi l php th li li hay php th hi qu

You might also like