Bài giảng Kỹ nghệ Phần mềm - Nguyễn Việt Hà

pdf 75 trang huongle 5190
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ nghệ Phần mềm - Nguyễn Việt Hà", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ky_nghe_phan_mem_nguyen_viet_ha.pdf

Nội dung text: Bài giảng Kỹ nghệ Phần mềm - Nguyễn Việt Hà

  1. Bµi gi¶ng Kü nghÖ phÇn mÒm NguyÔn ViÖt Hµ Bé m«n C«ng nghÖ phÇn mÒm
  2. Môc lôc 1 PhÇn mÒm vµ kü nghÖ phÇn mÒm 1 1.1TÇmquanträngvµsùtiÕnhãacñaphÇnmÒm 1 1.1.1 TiÕn hãa cña phÇn mÒm . . 1 1.1.2 Sù øng dông cña phÇn mÒm 2 1.2Khãkh¨n,th¸chthøc®èivíiph¸ttriÓnphÇnmÒm 4 1.2.1 PhÇn mÒm vµ phÇn mÒm tèt 4 1.2.2 §Æc tr−ngph¸ttriÓnvµvËnhµnhphÇnmÒm 5 1.2.3 Nhu cÇu vµ ®é phøc t¹p . 6 1.3KünghÖphÇnmÒm 7 1.3.1 §Þnh nghÜa . . . . . . . . . 7 1.3.2 M« h×nh vßng ®êi cæ ®iÓn 8 1.3.3 M« h×nh lµm b¶n mÉu . . . 9 1.3.4 M« h×nh xo¾n èc . . . . . . 10 1.3.5 Kü thuËt thÕ hÖ thø t− 11 1.3.6 M« h×nh lËp tr×nh cùc ®oan 12 1.3.7 Tæ hîp c¸c m« h×nh . . . . 13 1.3.8 TÝnh kh¶ thÞ cña qu¸ tr×nh kü nghÖ . . . . . . . . . . . . . . . . 14 1.3.9 VÊn®Ògi¶mkÝchcìcñaphÇnmÒm 14 1.4 C¸i nh×n chung vÒ kü nghÖ phÇn mÒm 15 2 Ph©ntÝchvµ®Æct¶yªucÇu 18 2.1 §¹i c−¬ngvÒph©ntÝchvµ®Æct¶ . . 18 2.2 Nghiªn cøu kh¶ thi . . . . . . . 19 2.3 NÒn t¶ng cña ph©n tÝch yªu cÇu 21 2.3.1 C¸c nguyªn lý ph©n tÝch . 21 2.3.2 M« h×nh hãa . . . . . . . . 21 2.3.3 Ng−êiph©ntÝch 24 2.4 X¸c ®Þnh vµ ®Æc t¶ yªu cÇu . 24 2.4.1 X¸c ®Þnh yªu cÇu . . . . . 24 i
  3. 2.4.2 §Æct¶yªucÇu 25 2.4.3 ThÈm ®Þnh yªu cÇu . . . . . 26 2.5 Lµm b¶n mÉu trong qu¸ tr×nh ph©ntÝch 26 2.5.1 C¸c b−íclµmb¶nmÉu 27 2.5.2 Lîi Ých vµ h¹n chÕ cña ph¸t triÓn b¶n mÉu . . . . . . . . . . . . 27 2.6 §Þnhd¹ng®Æct¶yªucÇu . . 28 3 ThiÕt kÕ phÇn mÒm 32 3.1 Kh¸i niÖm vÒ thiÕt kÕ phÇn mÒm 32 3.1.1 Kh¸iniÖm 32 3.1.2 TÇm quan träng . . . . . . 32 3.1.3 Qu¸ tr×nh thiÕt kÕ . . . 33 3.1.4 C¬ së cña thiÕt kÕ . . . . 34 3.1.5 M«t¶thiÕtkÕ 35 3.1.6 ChÊt l−îngthiÕtkÕ 36 3.2 ThiÕt kÕ h−íngchøcn¨ng 39 3.2.1 C¸ch tiÕp cËn h−íng chøc n¨ng . . . . . 39 3.2.2 BiÓu ®å luång d÷ liÖu . 40 3.2.3 L−îc®åcÊutróc 40 3.2.4 C¸c tõ ®iÓn d÷ liÖu . . . 40 3.3 ThiÕt kÕ h−íng ®èi t−îng 40 3.3.1 C¸ch tiÕp cËn h−íng ®èi t−îng 40 3.3.2 Ba ®Æc tr−ng cña thiÕt kÕ h−íng ®èi t−îng 41 3.3.3 C¬ së cña thiÕt kÕ h−íng ®èi t−îng 41 3.3.4 C¸c b−ícthiÕtkÕ 42 3.3.5 ¦u nh−îc ®iÓm cña thiÕt kÕ h−íng ®èi t−îng 42 3.3.6 Quan hÖ gi÷a thiÕt kÕ vµ lËp tr×nh h−íng ®èi t−îng 43 3.3.7 Quan hÖ gi÷a thiÕt kÕ h−íng ®èi t−îng vµ h−íng chøc n¨ng . . 43 3.4 ThiÕt kÕ giao diÖn ng−êi sö dông . . . . . . . . 44 3.4.1 Mét sè vÊn ®Ò thiÕt kÕ . 45 3.4.2 Mét sè h−íngdÉnthiÕtkÕ 46 4LËptr×nh 48 4.1Ng«nng÷lËptr×nh 48 4.1.1 §Æc tr−ngcñang«nng÷lËptr×nh 48 4.1.2 Lùa chän ng«n ng÷ lËp tr×nh 49 4.1.3 Ng«n ng÷ lËp tr×nh vµ vµ sù ¶nh h−ëng tíi kü nghÖ phÇn mÒm . 50 4.2 Phong c¸ch lËp tr×nh . . . . 50 ii
  4. 4.2.1 Tµi liÖu ch−¬ngtr×nh 51 4.2.2 Khai b¸o d÷ liÖu . . . . . 51 4.2.3 X©y dùng c©u lÖnh . . . . 52 4.2.4 Vµo/ra 52 4.3 LËp tr×nh tr¸nh lçi . . . . . 53 4.3.1 LËp tr×nh thø lçi . . . . 54 4.3.2 LËp tr×nh phßng thñ . . . 54 4.4 LËp tr×nh h−íng hiÖu qu¶ thùc hiÖn . . 55 4.4.1 TÝnh hiÖu qu¶ ch−¬ngtr×nh 55 4.4.2 HiÖu qu¶ bé nhí . . . . . . . 56 4.4.3 HiÖu qu¶ vµo/ra . . . . . . 56 5 X¸c minh vµ thÈm ®Þnh 57 5.1 §¹i c−¬ng 57 5.2Kh¸iniÖmvÒphÐpthö 58 5.3 Thö nghiÖm chøc n¨ng vµ thö nghiÖm cÊu tróc . . . . . . . . . . . . . . 58 5.3.1 Thö nghiÖm chøc n¨ng . . 58 5.3.2 Thö nghiÖm cÊu tróc . . . 60 5.4 Qu¸ tr×nh thö nghiÖm . . . . 60 5.4.1 Thö nghiÖm g©y ¸p lùc . . . 61 5.5 ChiÕn l−îcthönghiÖm 61 5.5.1 Thö nghiÖm d−íilªn 61 5.5.2 Thö ngiÖm trªn xuèng . . . . 62 6 Qu¶n lý dù ¸n ph¸t triÓn phÇn mÒm 63 6.1 §¹i c−¬ng 63 6.2§é®ophÇnmÒm 64 6.2.1 §o kÝch cì phÇn mÒm . . . 64 6.2.2 §é ®o dùa trªn thèng kª . 65 6.3 ¦íc l−îng 65 6.4Qu¶nlýnh©nsù 66 6.5 Qu¶n lý cÊu h×nh . . . . . . . . 67 6.6Qu¶nlýrñiro 68 iii
  5. Danh môc h×nh 1.1 M«h×nhvßng®êicæ®iÓn 9 1.2 M«h×nhlµmb¶nmÉu . . . . 10 1.3 M«h×nhxo¾nèc . . . . . . . 11 2.1 Qu¸ tr×nh h×nh thµnh c¸c yªu cÇu 19 2.2Kýph¸pDFD 22 2.3BiÓu®åluångd÷liÖucñaméthÖthèngb¸nvÐtÇu 23 2.4 M« h×nh thùc thÓ quan hÖ ng−êi - ph−¬ng tiÖn giao th«ng. . . . . . . . 24 3.1 Vai trß cña thiÕt kÕ phÇn mÒm trong qu¸ tr×nh kü nghÖ. . . . . . . . . . 33 3.2 TÝnh m«®un vµ chi phÝ phÇn mÒm 35 iv
  6. Danh môc b¶ng biÓu 1.1 N¨ng lùc biÓu diÔn cña ng«n ng÷ 15 6.1 COCOMO-C¸cthamsèc¬së . 65 v
  7. Ch−¬ng 1 PhÇn mÒm vµ kü nghÖ phÇn mÒm 1.1 TÇm quan träng vµ sù tiÕn hãa cña phÇn mÒm M¸y tÝnh kh¸c víi c¸c m¸y mãc th«ng th−êngë®iÓmnãcãthÓthùchiÖnc¸cnhiÖm vô rÊt kh¸c nhau b»ng c¸ch sö dông c¸c phÇn mÒm kh¸c nhau. Tøc lµ phÇn mÒm t¹o ra sù kh¸c biÖt gi÷a c¸c m¸y tÝnh vµ còng quyÕt ®Þnh n¨ng lùc cña m¸y tÝnh. Cho ®Õn nh÷ng n¨m 1990, xu h−íng cña ngµnh c«ng nghiÖp m¸y tÝnh lµ ph¸t triÓn phÇn cøng nh»m gi¶m gi¸ thµnh hÖ thèng vµ t¨ng n¨ng lùc xö lý còng nh− l−utr÷d÷ liÖu. Do nhu cÇu phÇn mÒm t¨ng lªn nhanh chãng, th¸ch thøc hay môc tiªu cña ngµnh c«ng nghiÖp m¸y tÝnh hiÖn nay lµ sù c¶i thiÖn chÊt l−îng vµ gi¶m gi¸ thµnh cña phÇn mÒm. Cã thÓ nãi kh¶ n¨ng cña phÇn cøng biÓu thÞ cho tiÒm n¨ng cña hÖ thèng cßn phÇn mÒm lµ mét c¬ chÕ gióp chóng ta khai th¸c tiÒm n¨ng nµy. Chóngtah·yxemxÐttÇmquanträngcñaphÇnmÒmtrªnkhÝac¹nhsùtiÕnhãavµ ph¹m vi øng dông cña chóng. 1.1.1 TiÕn hãa cña phÇn mÒm Sù tiÕn hãa cña phÇn mÒm g¾n liÒn víi sù tiÕn hãa cña phÇn cøng vµ cã thÓ chia lµm 4 giai ®o¹n: a. Nh÷ng n¨m ®Çu (tõ 1950 ®Õn 1960): - Giai ®o¹n nµy phÇn cøng thay ®æi liªn tôc, sè l−îng m¸y tÝnh rÊt Ýt vµ phÇn lín mçi m¸y ®Òu ®−îc ®Æt hµng chuyªn dông cho mét øng dông ®Æc biÖt. -Ph−¬ng thøc chÝnh lµ xö lý theo l« (batch), tøc lµ “gãi” c¸c ch−¬ng tr×nh cã sö dông kÕt qu¶ cña nhau l¹i thµnh mét khèi dÓ t¨ng tèc ®é thùc hiÖn. -ThêikúnµylËptr×nhm¸ytÝnh®−îc coi lµ nghÖ thuËt “theo b¶n n¨ng”, ch−acã ph−¬ng ph¸p hÖ thèng. ViÖc ph¸t triÓn phÇn mÒm ch−a®−îc qu¶n lý. -M«itr−êng lËp tr×nh cã tÝnh chÊt c¸ nh©n; thiÕt kÕ, tiÕn tr×nh phÇn mÒm kh«ng t−êng minh, th−êng kh«ng cã tµi liÖu. S¶n xuÊt cã tÝnh ®¬n chiÕc, theo ®¬n ®Æt hµng. Ng−êi lËp tr×nh th−êng lµ ng−êi sö dông vµ kiªm c¶ viÖc b¶o tr× vµ söa lçi. 1
  8. b. Thêi kú tr¶i réng tõ nh÷ng n¨m 1960 ®Õn gi÷a nh÷ng n¨m 1970: - C¸c hÖ thèng ®a nhiÖm, ®a ng−êi sö dông (vÝ dô: Multics, Unix, ) xuÊt hiÖn dÉn ®Õnkh¸iniÖmmíivÒt−¬ng t¸c ng−êi m¸y. Kü thuËt nµy më ra thÕ giíi míi cho c¸c øng dông vµ ®ßi hái møc ®é tinh vi h¬n cho c¶ phÇn mÒm vµ phÇn cøng. - NhiÒu hÖ thèng thêi gian thùc víi c¸c ®Æc tr−ng thu thËp, ph©n tÝch vµ biÕn ®æi d÷ liÖu tõ nhiÒu nguån kh¸c nhau vµ ph¶n øng (xö lý, t¹o output) trong mét kho¶ng thêi gian nhÊt ®Þnh xuÊt hiÖn. -TiÕnbél−u tr÷ trùc tuyÕn lµm xuÊt hiÖn thÕ hÖ ®Çu tiªn cña hÖ qu¶n trÞ CSDL. -Sèl−îng c¸c hÖ thèng dùa trªn m¸y tÝnh ph¸t triÓn, nhu cÇu ph©n phèi më réng, th− viÖn phÇn mÒm ph¸t triÓn, quy m« phÇn mÒm ngµy cµng lín lµm nÈy sinh nhu cÇu söa ch÷a khi gÆp lçi, cÇn söa ®æi khi ng−êi dïng cã yªu cÇu hay ph¶i thÝch nghi víi nh÷ng thay ®æi cña m«i tr−êng phÇn mÒm (phÇn cøng, hÖ ®iÒu hµnh, ch−¬ng tr×nh dÞch míi). C«ng viÖc b¶o tr× phÇn mÒm dÇn dÇn tiªu tèn nhiÒu c«ng søc vµ tµi nguyªn ®Õn møc b¸o ®éng. c. Thêi kú tõ gi÷a nh÷ng n¨m 1970 ®Õn ®Çu nh÷ng n¨m 1990: - HÖ thèng ph©n t¸n (bao gåm nhiÒu m¸y tÝnh, mçi m¸y thùc hiÖn mét chøc n¨ng vµ liªn l¹c víi c¸c m¸y kh¸c) xuÊt hiÖn lµm t¨ng quy m« vµ ®é phøc t¹p cña phÇn mÒm øngdôngtrªnchóng. - M¹ng toµn côc vµ côc bé, liªn l¹c sè gi¶i th«ng cao ph¸t triÓn m¹nh lµm t¨ng nhu cÇuth©mnhËpd÷liÖutrùctuyÕn,n¶ysinhyªucÇulínph¸ttriÓnphÇnmÒmqu¶nlý d÷ liÖu. - C«ng nghÖ chÕ t¹o c¸c bé vi xö lý tiÕn bé nhanh khiÕn cho m¸y tÝnh c¸ nh©n, m¸y tr¹m ®Ó bµn, vµ c¸c thiÕt bÞ nhóng (dïng cho ®iÒu khiÓn trong robot, « t«, thiÕt bÞ y tÕ, ®å ®iÖn gia dông, ) ph¸t triÓn m¹nh khiÕn cho nhu cÇu vÒ phÇn mÒm t¨ng nhanh. -ThÞtr−êng phÇn cøng ®i vµo æn ®Þnh, chi phÝ cho phÇn mÒm t¨ng nhanh vµ cã khuynh h−íng v−ît chi phÝ mua phÇn cøng. d. Thêi kú sau 1990: -KünghÖh−íng ®èi t−îng lµ c¸ch tiÕp cËn míi ®ang nhanh chãng thay thÕ nhiÒu c¸ch tiÕp cËn ph¸t triÓn phÇn mÒm truyÒn thèng trong c¸c lÜnh vùc øng dông. - Sù ph¸t triÓn cña Internet lµm cho ng−êi dïng m¸y tÝnh t¨ng lªn nhanh chãng, nhu cÇu phÇn mÒm ngµy cµng lín, quy m« vµ ®é phøc t¹p cña nh÷ng hÖ thèng phÇn mÒm míicòngt¨ng®¸ngkÓ. - PhÇn mÒm trÝ tuÖ nh©n t¹o øng dông c¸c thuËt to¸n phi sè nh− hÖ chuyªn gia, m¹ng n¬ ron nh©n t¹o ®−îc chuyÓn tõ phßng thÝ nghiÖm ra øng dông thùc tÕ më ra kh¶ n¨ngxölýth«ngtinvµnhËnd¹ngkiÓuconng−êi. 1.1.2 Sù øng dông cña phÇn mÒm ChóngtacãthÓchiaphÇnmÒmtheomiÒnøngdôngthµnh7lo¹inh− sau: a. PhÇn mÒm hÖ thèng -LµméttËphîpc¸cch−¬ng tr×nh ®−îc viÕt ®Ó phôc vô cho c¸c ch−¬ng tr×nh kh¸c 2
  9. -Xölýc¸ccÊutrócth«ngtinphøct¹pnh−ng x¸c ®Þnh (tr×nh biªn dÞch, tr×nh so¹n th¶o,tiÖnÝchqu¶nlýtÖp) -§Æctr−ng bëi t−¬ng t¸c chñ yÕu víi phÇn cøng m¸y tÝnh - Phôc vô nhiÒu ng−êi dïng - CÊu tróc d÷ liÖu phøc t¹p vµ nhiÒu giao diÖn ngoµi b. PhÇn mÒm thêi gian thùc PhÇn mÒm ®iÒu phèi, ph©n tÝch hoÆc kiÓm so¸t c¸c sù kiÖn thÕ giíi thùc ngay khi chóngxuÊthiÖn®−îc gäi lµ phÇn mÒm thêi gian thùc. §iÓn h×nh lµ c¸c phÇn mÒm ®iÒu khiÓn c¸c thiÕt bÞ tù ®éng. PhÇn mÒm thêi gian thùc bao gåm c¸c thµnh tè: - Thµnh phÇn thu thËp d÷ liÖu ®Ó thu vµ ®Þnh d¹ng th«ng tin tõ m«i tr−êng ngoµi - Thµnh phÇn ph©n tÝch ®Ó biÕn ®æi th«ng tin theo yªu cÇu cña øng dông - Thµnh phÇn kiÓm so¸t hoÆc ®−ara®¸pøngm«itr−êng ngoµi - Thµnh phÇn ®iÒu phèi ®Ó ®iÒu hßa c¸c thµnhphÇnkh¸csaochocãthÓduytr×viÖc ®¸p øng thêi gian thùc HÖthèngthêigianthùcph¶i®¸pøngnh÷ngrµngbuécthêigianchÆtchÏ. c. PhÇn mÒm nghiÖp vô Lµ c¸c phÇn mÒm phôc vô c¸c ho¹t ®éng kinh doanh hay c¸c nghiÖp vô cña tæ chøc, doanhnghiÖp.§©ycãthÓcoilµlÜnhvùcøngdôngphÇnmÒmlínnhÊt.§iÓnh×nhlµ c¸c hÖ thèng th«ng tin qu¶n lý g¾n chÆt víi CSDL, c¸c øng dông t−¬ng t¸c nh− xö lý giao t¸c cho c¸c ®iÓm b¸n hµng. d. PhÇn mÒm khoa häc vµ c«ng nghÖ -§−îc ®Æc tr−ng bëi c¸c thuËt to¸n (tÝnh to¸n trªn ma trËn sè, m« pháng ). -Th−êng ®ßi hái phÇn cøng cã n¨ng lùc tÝnh to¸n cao. e. PhÇn mÒm nhóng - N»m trong bé nhí chØ ®äc vµ ®−îc dïng ®Ó ®iÒu khiÓn c¸c s¶n phÈm vµ hÖ thèng cho ng−êi dïng vµ thÞ tr−êng c«ng nghiÖp. - Cã c¸c ®Æc tr−ng cña phÇn mÒm thêi gian thùc vµ phÇn mÒm hÖ thèng. f. PhÇn mÒm m¸y tÝnh c¸ nh©n - Bïng næ tõ khi xuÊt hiÖn m¸y tÝnh c¸ nh©n, gi¶i quyÕt c¸c bµi to¸n nghiÖp vô nhá nh− xölýv¨nb¶n,trangtÝnh,®åhäa,qu¶ntrÞCSDLnhá - YÕu tè giao diÖn ng−êi-m¸y rÊt ®−îc chó träng. g. PhÇn mÒm trÝ tuÖ nh©n t¹o - Dïng c¸c thuËt to¸n phi sè ®Ó gi¶i quyÕt c¸c vÊn ®Ò phøc t¹p mµ tÝnh to¸n hay ph©n tÝch trùc tiÕp kh«ng qu¶n lý næi - C¸c øng dông chÝnh lµ: hÖ chuyªn gia (hÖ c¬ së tri thøc), nhËn d¹ng (h×nh ¶nh vµ tiÕngnãi),chøngminh®Þnhlývµch¬itrßch¬i,m«pháng. Ngoµi ra, chóng ta cßn cã thÓ kÓ ®Õn mét d¹ng phÇn mÒm ®Æc biÖt lµ phÇn mÒm phôc vô kü nghÖ phÇn mÒm. §ã lµ c¸c phÇn mÒm nh− ch−¬ng tr×nh dÞch, phÇn mÒm gì rèi, c¸c c«ng cô hç trî ph©n tÝch thiÕt kÕ (CASE) C¸c phÇn mÒm nµy cã thÓ xuÊt hiÖn d−íi d¹ng phÇn mÒm m¸y tÝnh c¸ nh©n, phÇn mÒm hÖ thèng hoÆc lµ phÇn mÒm 3
  10. nghiÖp vô. 1.2 Khã kh¨n, th¸ch thøc ®èi víi ph¸t triÓn phÇn mÒm Tõ nh÷ng n¨m 60, nhiÒu dù ¸n phÇn mÒm lín kh«ng thµnh c«ng nh− c¸cdù¸nOS360 (tiªu tèn mét sè tiÒn vµ thêi gian gÊp nhiÒu lÇn dù kiÕn) vµ TSS 360 (kh«ng ®¹t c¸c chØtiªuküthuËt,hÇunh− kh«ng ho¹t ®éng) cña IBM. Do ®ã, viÖc ph¸t triÓn phÇn mÒm dÇn dÇn ®· ®−îc nhËn thøc lµ mét lÜnh vùc ®Çy khã kh¨n vµ chøa nhiÒu rñi ro. Chóng ta sÏ xem xÐt c¸c khã kh¨n vµ th¸ch thøc trªn c¸c khÝa c¹nh ®Æc tr−ng, qui m« vµ nhu cÇu cña phÇn mÒm. 1.2.1 PhÇn mÒm vµ phÇn mÒm tèt PhÇn mÒm th«ng th−êng ®−îc ®Þnh nghÜa bao gåm: - c¸c lÖnh m¸y tÝnh nh»m thùc hiÖn c¸c chøc n¨ng x¸c ®Þnh -c¸ccÊutrócd÷liÖuchophÐpch−¬ng tr×nh thao t¸c víi d÷ liÖu - c¸c tµi liÖu gióp cho ng−êi dïng cã thÓ vËn hµnh ®−îc phÇn mÒm Bèn thuéc tÝnh chñ chèt mµ mét hÖ phÇn mÒm tèt ph¶i cã lµ: • Cã thÓ b¶o tr× ®−îc: phÇn mÒm tuæi thä dµi ph¶i ®−îc viÕt vµ ®−îc lËp t− liÖu sao cho viÖc thay ®æi cã thÓ tiÕn hµnh ®−îc mµ kh«ng qu¸ tèn kÐm. §©y ®−îc coi lµ ®Æc tÝnh chñ chèt nhÊt cña mét phÇn mÒm tèt. §Ó cã thÓ b¶o tr× ®−îc, phÇn mÒm ph¶i cã mét thiÕt kÕ tèt cã tÝnh modun hãa cao, ®−îc viÕt b»ng ng«n ng÷ bËc cao vµ ®−îc lËp tµi liÖu (tµi liÖu ph©n tÝch, thiÕt kÕ, chó thÝch m· nguån, h−íng dÉn ng−êi dïng ) ®Çy ®ñ. • §¸ng tin cËy: phÇn mÒm ph¶i thùc hiÖn ®−îc ®iÒu mµ ng−êi tiªu dïng mong mái vµ kh«ng thÊt b¹i nhiÒu h¬n nh÷ng ®iÒu ®· ®−îc ®Æc t¶. §iÒu nµy cã nghÜa lµ phÇnmÒmph¶itháam·n®−îc nhu cÇu cña ng−êi dïng. §Ó ®¹t ®−îc yÕu tè ®¸ng tin cËy, tr−íc tiªn ng−êi ph¸t triÓn cÇn ph¶i hiÓu mét c¸ch ®óng ®¾n yªu cÇu cña ng−êidïngvµsau®ãcÇntháam·n®−îc c¸c yªu cÇu nµy b»ng c¸c thiÕt kÕ vµ cµi ®Æt tèt. • Cã hiÖu qu¶: phÇn mÒm khi ho¹t ®éng ph¶i kh«ng l·ng phÝ tµi nguyªn hÖ thèng nh− bé nhí, bé xö lý. NÕu phÇn mÒm ch¹y qu¸ chËm hay ®ßi hái qu¸ nhiÒu bé nhí th× dï cã ®−îc cµi ®Æt rÊt nhiÒu chøc n¨ng còng sÏ kh«ng ®−îc ®−avµo sö dông. Tuy nhiªn, ngo¹i trõ c¸c phÇn mÒm nhóng hay thêi gian thùc ®Æc biÖt, ng−êi ta th−êng kh«ng cùc ®¹i hãa møc ®é hiÖu qu¶ v× r»ng viÖc ®ã cã thÓ ph¶i dïng ®Õm c¸c kü thuËt ®Æc thï vµ cµi ®Æt b»ng ng«n ng÷ m¸y khiÕn cho chi phÝ t¨ng cao vµ phÇn mÒm rÊt khã thay ®æi (tÝnh b¶o tr× kÐm). • DÔ sö dông: giao diÖn ng−êi sö dông ph¶i phï hîp víi kh¶ n¨ng vµ kiÕn thøc cña ng−êi dïng, cã c¸c tµi liÖu h−íng dÉn vµ c¸c tiÖn Ých trî gióp. §èi t−îng chÝnh 4
  11. cña c¸c phÇn mÒm nghiÖp vô th−êng lµ ng−êi kh«ng am hiÓu vÒ m¸y tÝnh, hä sÏ xa l¸nh c¸c phÇn mÒm khã häc, khã sö dông. Cã thÓ thÊy râ, viÖc tèi −u hãa ®ång thêi c¸c thuéc tÝnh nµy lµ rÊt khã kh¨n. C¸c thuéc tÝnh cã thÓ mÉu thuÉn lÉn nhau, vÝ dô nh− tÝnh hiÖu qu¶ vµ tÝnh dÔ sö dông, tÝnh b¶o tr×. Quan hÖ gi÷a chi phÝ c¶i tiÕn vµ hiÖu qu¶ ®èi víi tõng thuéc tÝnh kh«ng ph¶i lµ tuyÕn tÝnh. NhiÒu khi mét c¶i thiÖn nhá trong bÊt kú thuéc tÝnh nµo còng cã thÓ lµ rÊt ®¾t. Mét khã kh¨n kh¸c cña viÖc ph¸t triÓn phÇn mÒm lµ rÊt khã ®Þnh l−îng c¸c thuéc tÝnh cña phÇn mÒm. Chóng ta thiÕu c¸c ®é ®o vµ c¸c chuÈn vÒ chÊt l−îngphÇnmÒm. VÊn ®Ò gi¸ c¶ ph¶i ®−îc tÝnh ®Õn khi x©y dùng mét phÇn mÒm. Chóng ta sÏ x©y dùng ®−îc mét phÇn mÒm dï phøc t¹p ®Õn ®©u nÕu kh«ng h¹n chÕ vÒ thêi gian vµ chi phÝ. §iÒu quan träng lµ chóng ta ph¶i x©y dùng mét phÇn mÒm tèt víi mét gi¸ c¶ hîp lý vµ theo mét lÞch biÓu ®−îc ®Þnh tr−íc. 1.2.2 §Æc tr−ng ph¸t triÓn vµ vËn hµnh phÇn mÒm Chóng ta cã thÓ thÊy khã kh¨n hµng ®Çu cña viÖc ph¸t triÓn phÇn mÒm lµ do tÝnh chÊt phÇn mÒm lµ hÖ thèng logic, kh«ng ph¶i lµ hÖ thèng vËt lý. Do ®ã nã cã ®Æc tr−ng kh¸c biÖt ®¸ng kÓ víi c¸c ®Æc tr−ng cña phÇn cøng. D−íi ®©y lµ 3 yÕu tè chÝnh t¹o ra sù phøc t¹p trong qu¸ tr×nh ph¸t triÓn còng nh− sö dông, b¶o tr× phÇn mÒm. a. PhÇn mÒm kh«ng ®−îc chÕ t¹o theo nghÜa cæ ®iÓn PhÇn mÒm còng ®−îc ®−îc thiÕt kÕ, ph¸t triÓn nh− phÇn cøng, nh−ng nã kh«ng ®Þnh h×nh tr−íc. ChØ khi ph¸t triÓn xong ng−êi ta cã s¶n phÈm cô thÓ vµ hiÓu ®−îc nã cã hiÖu qu¶ hay kh«ng. Tøc lµ ë c¸c b−íc trung gian, chóng ta rÊt khã kiÓm so¸t chÊt l−îng cña phÇn mÒm. Gi¸ thµnh cña phÇn cøng chñ yÕu bÞ chi phèi bëi gi¸ thµnh nguyªn vËt liÖu vµ chóng ta t−¬ng ®èi dÔ kiÓm so¸t. Trong khi ®ã, gi¸ thµnh phÇn mÒm chñ yÕu tËp chung vµo chi phÝ nh©n c«ng. Qu¸ tr×nh ph¸t triÓn phÇn mÒm phô thuéc vµo con ng−êi (hiÓu biÕt, kh¶ n¨ng vËn dông, kinh nghiÖm vµ c¸ch thøc qu¶n lý) vµ ®−îc tiÕn hµnh ph¸t triÓn trong ®iÒu kiÖn m«i tr−êng (kü thuËt, x· héi) ®a d¹ng vµ kh«ng ngõng thay ®æi. Do ®ã chóng ta rÊt khã −íc l−îng ®−îc chi phÝ còng nh− hiÖu qu¶ cña phÇn mÒm. b. PhÇn mÒm kh«ng háng ®i nh−ng tho¸i hãa theo thêi gian PhÇn mÒm kh«ng c¶m øng ®èi víi nh÷ng t¸c ®éng cña m«i tr−êng vèn g©y cho phÇn cøng bÞ mßn cò ®i, nh−ng nã còng tho¸i hãa theo thêi gian. Thùc tÕ, phÇn mÒm tr¶i qua thêi gian sö dông cÇn ph¶i ®−îc thay ®æi (b¶o tr×) ®Ó ®¸p øng nhu cÇu lu«n thay ®æi cña tæ chøc sö dông nã. Mçi khi thay ®æi, sÏ xuÊt hiÖn thªm mét sè khiÕm khuyÕt míi kh«ng thÓ tr¸nh lµm cho sè lçi tiÒm Èn trong phÇn mÒm t¨ng lªn. DÇn dÇn, phÇn mÒm bÞ tho¸i hãa dotûlÖsaihángngµycµngt¨nglªn®Õn møc g©y ra nh÷ng thiÖt h¹i kh«ng thÓ chÊp nhËn ®−îc. ViÖc b¶o tr× phÇn mÒm phøc t¹p h¬n nhiÒu vµ cã b¶n chÊt kh¸c h¼n so víi b¶o tr× phÇn cøng do sù phøc t¹p cña hÖ thèng phÇn mÒm vµ sù kh«ng cã s½n phÇn thay thÕ 5
  12. cho bé phËn bÞ lçi. Chóng ta kh«ng thay thÕ bé phËn bÞ lçi b»ng c¸i cã s½n mµ thùc tÕ ph¶i t¹o ra mét m«®un míi. Do ®ã, th«ng th−êng chØ cã nhµ s¶n xuÊt phÇn mÒm míi b¶o tr× (söa ch÷a) ®−îc háng hãc. SÏ rÊt khã −íc l−îng ®−îc chi phÝ cho b¶o tr× phÇn mÒm. c. PhÇn lín phÇn mÒm ®Òu ®−îc x©y dùng tõ ®Çu, Ýt khi ®−îc l¾p r¸p tõ thµnh phÇn cã s½n • PhÇn mÒm kh«ng cã danh môc c¸c thµnh phÇn cè ®Þnh nh− phÇn cøng. • PhÇn mÒm th−êng ®−îc ®Æt hµng theo mét ®¬n vÞ hoµn chØnh, theo yªu cÇu riªng cña kh¸ch hµng. • PhÇn mÒm Ýt khi cã thÓ l¾p r¸p theo mét khu«n mÉu cã s½n. Yªu cÇu víi phÇn mÒm thay ®æi theo m«i tr−êngcôthÓmµë®ãnã®−îc x©y dùng. M«i tr−êng cña phÇn mÒm (gåm phÇn cøng, phÇn mÒm nÒn, con ng−êi vµ tæ chøc) kh«ng thÓ ®Þnh d¹ng tõ tr−íc vµ l¹i thay ®æi th−êng xuyªn. Nh÷ng yÕu tè nµy dÉn ®Õn chi phÝ cho phÇnmÒmcaovµrÊtkh㮶mb¶o®−îc lÞch biÓu cho ph¸t triÓn phÇn mÒm. 1.2.3 Nhu cÇu vµ ®é phøc t¹p Tuy ngµnh c«ng nghiÖp m¸y tÝnh ®· b−íc sang giai ®o¹n ph¸t triÓn thø t− nh−ng c¸c th¸ch thøc ®èi víi ph¸t triÓn phÇn mÒm m¸y tÝnh kh«ng ngõng gia t¨ng v× nh÷ng nguyªn nh©n sau: - Kh¶ n¨ng x©y dùng c¸c ch−¬ng tr×nh míi kh«ng gi÷ ®−îc cïng nhÞp víi nhu cÇu vÒ phÇn mÒm t¨ng lªn nhanh chãng, ®Æc biÖt khi Internet ph¸t triÓn vµ sè l−îng ng−êi dïng t¨ng cao. Ngµy nay, s¶n xuÊt phÇn mÒm ®· trë thµnh mét ngµnh c«ng nghiÖp kh«nglåtuyvËyn¨ngsuÊtkh«ng cao, kh«ng ®¸p øng ®−îc ®ßi hái cña x· héi vµ ®iÒu nµy ¶nh h−ëng lín ®Õn gi¸ thµnh vµ chÊt l−îng phÇn mÒm. Ngoµi ra, cßn tån t¹i rÊt nhiÒu ch−¬ng tr×nh ®−îc thiÕt kÕ vµ lËp tµi liÖu s¬ sµi khiÕn cho viÖc b¶o tr× rÊt khã kh¨n vµ kÐm tµi nguyªn. Ph¸t triÓn c¸c phÇn mÒm míi dÔ b¶o tr× ®Ó thay thÕ c¸c hÖ thèng cò trë thµnh nhu cÇu cÊp b¸ch. - Cïng víi sù ph¸t triÓn cña phÇn cøng, quy m« vµ ®é phøc t¹p cña c¸c phÇn mÒm míi ngµy cµng t¨ng. Mét sè phÇn mÒm hiÖn ®¹i cã kÝch th−íc ®−îc tÝnh b»ng ®¬n vÞ triÖu dßng lÖnh (H§H Unix, Windows ). Mét vÊn ®Ò khã kh¨n trong s¶n xuÊt phÇn mÒm lín lµ ®é phøc t¹p t¨ng vät, c¸c kinh nghiÖm s¶n xuÊt s¶n phÈm nhá kh«ng øng dông ®−îc cho m«i tr−êng lµm viÖc theo nhãm vµ ph¸t triÓn s¶n phÈm lín. - Sù tinh vi vµ n¨ng lùc cña phÇn cøng ®· v−ît xa kh¶ n¨ng x©y dùng phÇn mÒm ®ÓcãthÓsödông®−îc c¸c tiÒm n¨ng cña nã. TÊt c¶ c¸c khã kh¨n vµ th¸ch thøc nªu trªn ®· dÉn ®Õn viÖc chÊp nhËn thùc hµnh kü nghÖ phÇn mÒm ®Ó cã thÓ t¹o nhanh c¸c phÇn mÒm cã nhÊt l−îngngµymétcao, cãquym«vµsèl−îngngµymétlínvµcãnh÷ngtÝnhn¨ngt−¬ng øng víi tiÒm n¨ng phÇn cøng. 6
  13. 1.3 Kü nghÖ phÇn mÒm 1.3.1 §Þnh nghÜa Mét ®Þnh nghÜa ban ®Çu vÒ kü nghÖ phÇn mÒm do Fritz Bauer nªu ra lµ: ViÖc thiÕt lËp vµ sö dông c¸c nguyªn lý c«ng nghÖ ®óng ®¾n ®Ó thu ®−îc phÇn mÒm métc¸chkinhtÕvõatincËyvõalµmviÖchiÖuqu¶trªnc¸cm¸ythùc. Kü nghÖ phÇn mÒm lµ mét qu¸ tr×nh gåm mét lo¹t c¸c b−íc chøa ®ùng 3 yÕu tè chñ chèt: • Ph−¬ng ph¸p • C«ng cô • Thñ tôc C¸c yÕu tè nµy gióp ng−êi qu¶n lý kiÓm so¸t ®−îc tiÕn tr×nh ph¸t triÓn phÇn mÒm, cung cÊp cho ng−êi kü s− phÇn mÒm mét nÒn t¶ng ®Ó x©y dùng phÇn mÒm chÊt l−îng cao theo mét c¸ch thøc hiÖu qu¶, trong nh÷ng giíi h¹n nhÊt ®Þnh. a. C¸c ph−¬ng ph¸p ChØ ra c¸ch lµm vÒ mÆt kü thuËt ®Ó x©y dùng phÇn mÒm, ®−îc sö dông trong c¸c b−íc: lËp kÕ ho¹ch, −íc l−îngdù¸n,ph©ntÝchyªucÇuhÖthèngvµphÇnmÒm,thiÕt kÕ cÊu tróc d÷ liÖu, kiÕn tróc ch−¬ng tr×nh vµ thñ tôc thuËt to¸n, m· hãa kiÓm thö vµ b¶o tr×. C¸c ph−¬ng ph¸p cho kü nghÖ phÇn mÒm th−êng ®−a ra c¸c ký ph¸p ®å häa hay h−íng ng«n ng÷ ®Æc biÖt, c¸ch thøc thùc hiÖn vµ mét tËp c¸c tiªu chuÈn vÒ chÊt l−îng cña s¶n phÈm phÇn mÒm. b. C¸c c«ng cô CungcÊpsùhçtrîtù®énghayb¸ntù®éng®Óph¸ttriÓnphÇnmÒmtheotõng ph−¬ng ph¸p kh¸c nhau. Khi c¸c c«ng cô ®−îc tÝch hîp ®Õn møc c¸c th«ng tin do chóng t¹o ra cã thÓ ®−îc dïng cho c¸c c«ng cô kh¸c th× hÖ thèng hç trî ph¸t triÓn phÇn mÒm ®· ®−îc thiÕt lËp vµ cßn ®−îc gäi lµ kü nghÖ phÇn mÒm cã m¸y tÝnh hç trî (CASE -ComputerAidedSoftware Engineering). c. C¸c thñ tôc C¸c thñ tôc lµ chÊt keo d¸n c¸c ph−¬ng ph¸p vµ c«ng cô l¹i víi nhau lµm cho chóng ®−îc sö dông hîp lý vµ ®óng h¹n trong qu¸ tr×nh ph¸t triÓn phÇn mÒm. Thñ tôc bao gåm: - X¸c ®Þnh ra tr×nh tù c¸c ph−¬ng ph¸p sÏ ®−îc ¸p dông cho mçi dù ¸n. - T¹o s¶n phÈm cÇn bµn giao (tµi liÖu b¸o c¸o, b¶n mÉu, ) cÇn cho viÖc kiÓm so¸t ®Ó ®¶m b¶o chÊt l−îng vµ ®iÒu hßa thay ®æi. - X¸c ®Þnh nh÷ng cét mèc mµ t¹i ®ã cã c¸c s¶n phÈm nhÊt ®Þnh ®−îc bµn giao ®Ó cho ng−êi qu¶n lý phÇn mÒm n¾m ®−îc tiÕn ®é vµ kiÓm so¸t ®−îc kÕt qu¶. Sau ®©y, chóng ta sÏ xem xÐt mét sè c¸ch tiÕp cËn (cßn gäi lµ m« h×nh hay khu«n c¶nh)c¬b¶ntrongtiÕntr×nhph¸ttriÓnphÇnmÒm. 7
  14. 1.3.2 M« h×nh vßng ®êi cæ ®iÓn D−íi ®©y m« t¶ kü nghÖ phÇn mÒm ®−îc tiÕn hµnh theo m« h×nh vßng ®êi cæ ®iÓn, ®«i khi cßn ®−îcgäilµm«h×nhth¸cn−íc (h×nh 1.1). M« h×nh nµy yªu cÇu tiÕp cËn mét c¸chhÖthèng,tuÇntùvµchÆtchÏ(xongb−íc nµy míi chuyÓn sang b−íc sau) ®èi víi viÖcph¸ttriÓnphÇnmÒm,b¾t®Çuëmøcph©n tÝch hÖ thèng vµ tiÕn dÇn xuèng ph©n tÝch, thiÕt kÕ, m· hãa, kiÓm thö vµ b¶o tr×: a. Kü nghÖ vµ ph©n tÝch hÖ thèng Kü nghÖ vµ ph©n tÝch hÖ thèng bao gåm viÖc thu thËp yªu cÇu ë møc hÖ thèng víi mét l−îng nhá thiÕt kÕ vµ ph©n tÝch ë møc ®Ønh. Môc ®Ých cña b−íc nµy lµ x¸c ®Þnh kh¸iqu¸tvÒph¹mvi,yªucÇucòngnh− tÝnh kh¶ thi cña phÇn mÒm. b.Ph©ntÝchyªucÇuphÇnmÒm -Ph©ntÝchyªucÇu®−îc tËp trung viÖc thu thËp vµ ph©n tÝch c¸c th«ng tin cÇn cho phÇn mÒm, c¸c chøc n¨ng cÇn ph¶i thùc hiÖn, hiÖu n¨ng cÇn cã vµ c¸c giao diÖn cho ng−êi sö dông. -KÕtqu¶cñaph©ntÝchlµt− liÖu vÒ yªu cÇu cho hÖ thèng vµ phÇn mÒm (®Æc t¶ yªu cÇu) ®Ó kh¸ch hµng duyÖt l¹i vµ dïng lµm tµi liÖu cho ng−êi ph¸t triÓn. c. ThiÕt kÕ -Lµqu¸tr×nhchuyÓnhãac¸cyªucÇuphÇnmÒmthµnhc¸cm«t¶thiÕtkÕ - ThiÕt kÕ gåm nhiÒu b−íc, th−êngtËptrungvµo4c«ngviÖcchÝnh:thiÕtkÕkiÕn tróc phÇn mÒm, thiÕt kÕ cÊu tróc d÷ liÖu, thiÕt kÕ chi tiÕt c¸c thñ tôc, thiÕt kÕ giao diÖn vµ t−¬ng t¸c. -LËpt− liÖu thiÕt kÕ (lµ mét phÇn cña cÊu h×nh phÇn mÒm) ®Ó phª duyÖt d. M· hãa BiÓu diÔn thiÕt kÕ b»ng mét hay mét sè ng«n ng÷ lËp tr×nh vµ dÞch thµnh m· m¸y thùc hiÖn ®−îc. e. KiÓm thö TiÕn tr×nh kiÓm thö bao gåm viÖc i) ph¸t hiÖn vµ söa lçi phÇn logic bªn trong ch−¬ng tr×nh hay cßn gäi lµ lçi lËp tr×nh, ii) kiÓm tra xem phÇn mÒm cã ho¹t ®éng nh− mong muèn kh«ng, tøc lµ ph¸t hiÖn vµ söa lçi vÒ chøc n¨ng nh− thiÕu hôt, sai sãt vÒ chøc n¨ng; vµ kiÓm tra xem phÇn mÒm cã ®¶m b¶o tÝnh hiÖu qu¶ trong thùc hiÖn hay kh«ng. f. B¶o tr× Bao gåm c¸c c«ng viÖc söa c¸c lçi ph¸t sinh khi ¸p dông ch−¬ng tr×nh hoÆc thÝch øng nã víi thay ®æi trong m«i tr−êng bªn ngoµi (hÖ ®iÒu hµnh míi, thiÕt bÞ ngo¹i vi míi, yªu cÇu ng−êidïng)hoÆcyªucÇubæsungchøcn¨nghayn©ngcaohiÖun¨ngcÇn cã. Mét sè c¸c vÊn ®Ò cã thÓ gÆp ph¶i khi dïng m« h×nh vßng ®êi cæ ®iÓn lµ: 1. C¸c dù ¸n thùc hiÕm khi tu©n theo dßng ch¶y tuÇn tù mµ m« h×nh ®Ò nghÞ. Bao giê viÖc lÆp l¹i còng xuÊt hiÖn vµ t¹o ra c¸c vÊn ®Ò trong viÖc ¸p dông m« h×nh nµy. 8
  15. 2.Kh¸chhµngth−êng khã ph¸t biÓu mäi yªu cÇu mét c¸ch t−êngminhtõ®Çu.Vßng ®êicæ®iÓn®ßihái®iÒunµyvµth−êng khã thÝch hîp víi sù bÊt tr¾c tù nhiªn tån t¹i vµo lóc ®Çu cña nhiÒu dù ¸n. 3. §ßi hái kh¸ch hµng ph¶i kiªn nhÉn. B¶n lµm viÖc ®−îc cña ch−¬ng tr×nh chØ cã ®−îc vµo lóc cuèi cña thêi gian dù ¸n. Mét sai sãt nhá trong ph©n tÝch/thiÕt kÕ nÕu ®Õn khi cã ch−¬ng tr×nh lµm viÖc míi ph¸t hiÖn ra, cã thÓ sÏ lµ mét th¶m häa. TuyvËy,m«h×nhvßng®êicæ®iÓncãmétvÞtrÝquanträngtrongc«ngviÖcvÒkü nghÖ phÇn mÒm. Nã ®−a ra mét tiªu b¶n trong ®ã cã thÓ bè trÝ c¸c ph−¬ng ph¸p cho ph©n tÝch, thiÕt kÕ, m· hãa, kiÓm thö vµ b¶o tr×. Vßng ®êi cæ ®iÓn vÉn cßn lµ mét m« h×nh ®−îc sö dông réng r·i, nhÊt lµ ®èi víi c¸c dù ¸n võa vµ nhá. Ph©n t›ch Thi’t k’ M ha Ki”m thˆ Bo tr H×nh 1.1: M« h×nh vßng ®êi cæ ®iÓn. 1.3.3 M« h×nh lµm b¶n mÉu C¸ch tiÕp cËn lµm b¶n mÉu cho kü nghÖ phÇn mÒm lµ c¸ch tiÕp cËn tèt nhÊt khi: - Môc tiªu tæng qu¸t cho phÇn mÒm ®· x¸c ®Þnh, nh−ng ch−a x¸c ®Þnh ®−îc input vµ output. -Ng−êi ph¸t triÓn kh«ng ch¾c vÒ hiÖu qu¶ cña thuËt to¸n, vÒ thÝch nghi hÖ ®iÒu hµnh hay giao diÖn ng−êi m¸y cÇn cã. Khi ®· cã b¶n mÉu, ng−êi ph¸t triÓn cã thÓ dïng ch−¬ngtr×nh®·cãhayc¸cc«ng cô phÇn mÒm trî gióp ®Ó sinh ra ch−¬ng tr×nh lµm viÖc. Lµm b¶n mÉu lµ t¹o ra mét m« h×nh cho phÇn mÒm cÇn x©y dùng. M« h×nh cã thÓ cã3d¹ng: 1. B¶n mÉu trªn giÊy hay trªn m¸y tÝnh m« t¶ giao diÖn ng−êi-m¸y lµm ng−êi dïng hiÓu ®−îc c¸ch c¸c t−¬ng t¸c xuÊt hiÖn. 2. B¶n mÉu cµi ®Æt chØ mét tËp con chøc n¨ng cña phÇn mÒm mong ®îi. 3. B¶n mÉu lµ mét ch−¬ng tr×nh cã thÓ thùc hiÖn mét phÇn hay tÊt c¶ chøc n¨ng mong muèn nh−ng ë møc s¬ l−îc vµ cÇn c¶i tiÕn thªm c¸c tÝnh n¨ng kh¸c tïy theo kh¶ n¨ng ph¸t triÓn. 9
  16. Tr−íc hÕt ng−êi ph¸t triÓn vµ kh¸ch hµng gÆp nhau vµ x¸c ®Þnh môc tiªu tæng thÓ cho phÇn mÒm, x¸c ®Þnh c¸c yªu cÇu ®· biÕt, c¸c miÒn cÇn kh¶o s¸t thªm. TiÕp theo lµ giai ®o¹n thiÕt kÕ nhanh, tËp trung vµo viÖc biÓu diÔn c¸c khÝa c¹nh cña phÇn mÒm thÊy ®−îc ®èi víi ng−êi dïng (input vµ output), vµ x©y dùng mét b¶n mÉu. Ng−êi dïng ®¸nhgi¸vµlµmmÞnc¸cyªucÇuchophÇnmÒm.TiÕntr×nhnµylÆp®ilÆpl¹icho®Õn khi b¶n mÉu tho¶ m·n yªu cÇu cña kh¸ch hµng, ®ång thêi gióp ng−êi ph¸t triÓn hiÓu kü h¬n nhu cÇu nµo cÇn ph¶i thùc hiÖn (h×nh 1.2). Mét biÕn thÓ cña m« h×nh nµy lµ m« h×nh th¨m dß, trong ®ã c¸c yªu cÇu ®−îc cËp nhËt liªn tôc vµ b¶n mÉu ®−îc tiÕn hãa liªn tôc ®Ó trë thµnh s¶n phÈm cuèi cïng. M« h×nh lµm b¶n mÉu cã mét sè vÊn ®Ò nh−: • Do sù hoµn thiÖn dÇn (tiÕn hãa) cña b¶n mÉu, phÇn mÒm nhiÒu khi cã tÝnh cÊu tróc kh«ng cao, dÉn ®Õn khã kiÓm so¸t, khã b¶o tr×. • Kh¸ch hµng nhiÒu khi thÊt väng víi viÖc ph¸t triÓn phÇn mÒm do hä nhÇm t−ëng b¶nmÉulµs¶nphÈmcuèicïngh−íng tíi ng−êi sö dông. Kh¸ch hµng còng cã thÓ kh«ng dµnh nhiÒu c«ng søc vµo ®¸nh gi¸ b¶n mÉu. K’t thÛc Bæt Æ«u TÀp hÓp Sn ph»m yu c«u cuËi cÔng Thi’t k’ Lµm mn nhanh yu c«u X©y dng ßnh gi bn mu cÒa khch hµng H×nh1.2:M«h×nhlµmb¶nmÉu. 1.3.4 M« h×nh xo¾n èc M« h×nh xo¾n èc ®−îc Boehm ®−a ra n¨m 1988. M« h×nh nµy ®−a thªm vµo viÖc ph©n tÝch yÕu tè rñi ro. Qu¸ tr×nh ph¸t triÓn ®−îc chia thµnh nhiÒu b−íc lÆp l¹i, mçi b−íc b¾t ®Çu b»ng viÖc ph©n tÝch rñi ro råi t¹o b¶n mÉu, c¶i t¹o vµ ph¸t triÓn b¶n mÉu, duyÖt l¹i, vµ cø thÕ tiÕp tôc (h×nh 1.3). Néi dung mét b−íc gåm bèn ho¹t ®éng chÝnh: - LËp kÕ ho¹ch: x¸c ®Þnh môc tiªu, c¸c gi¶i ph¸p vµ rµng buéc -Ph©ntÝchrñiro:ph©ntÝchc¸cph−¬ng ¸n vµ x¸c ®Þnh/gi¶i quyÕt rñi ro - Kü nghÖ: ph¸t triÓn s¶n phÈm “møc tiÕp theo” - §¸nh gi¸: ®¸nh gi¸ cña kh¸ch hµng vÒ kÕt qu¶ cña kü nghÖ 10
  17. Víi mçi lÇn lÆp xo¾n èc (b¾t ®Çu tõ t©m), c¸c phiªn b¶n ®−îc hoµn thiÖn dÇn. NÕu ph©n tÝch rñi ro chØ ra r»ng yªu cÇu kh«ng ch¾c ch¾n th× b¶n mÉu cã thÓ ®−îc sö dông tronggiai®o¹nkünghÖ;c¸cm«h×nhvµc¸cm«phángkh¸ccòng®−îc dïng ®Ó lµm râ h¬n vÊn ®Ò vµ lµm mÞn yªu cÇu. T¹imétvßngxo¾nèc,ph©ntÝchrñiroph¶i®i®ÕnquyÕt®Þnh“tiÕnhµnhtiÕphay dõng”. NÕu rñi ro qu¸ lín th× cã thÓ ®×nh chØ dù ¸n. M« h×nh xo¾n èc còng cã mét sè vÊn ®Ò nh− khã thuyÕt phôc nh÷ng kh¸ch hµng lín r»ng c¸ch tiÕp cËn tiÕn hãa lµ kiÓm so¸t ®−îc. Nã ®ßi hái tri thøc chuyªn gia ®¸nh gi¸ rñi ro chÝnh x¸c vµ dùa trªn tri thøc chuyªn gia nµy mµ ®¹t ®−îc thµnh c«ng. M« h×nh xo¾n èc ®ßi hái n¨ng lùc qu¶n lý cao, nÕu kh«ng qu¶n lý tèt th× rÊt dÔ r¬i vµo tr¹ng th¸i söa ®æi côc bé kh«ng cã kÕ ho¹ch cña m« h×nh lµm b¶n mÉu (th¨m dß). Vµ m« h×nh nµy cßn t−¬ng ®èi míi vµ cßn ch−a®−îc sö dông réng r·i nh− vßng ®êi hoÆc lµm b¶n mÉu. CÇn ph¶i cã thªm mét sè n¨m n÷a tr−íc khi ng−êi ta cã thÓ x¸c ®Þnh ®−îctÝnhhiÖuqu¶cñam«h×nhnµyvíisùch¾cch¾nhoµntoµn. LÀp k’ hoch Ph©n t›ch rÒi ro k’ hoch ban Æ«u rÒi ro ban Æ«u rÒi ro da trn k’ k’ hoch da trn hoch sˆa ÆÊi Ænh gi cÒa khch hµng lµm ti’p ? bn mu Æ«u tin Ænh gi cÒa bn mu ti’p theo khch hµng ßnh gi K¸ ngh÷ H×nh 1.3: M« h×nh xo¾n èc. 1.3.5 Kü thuËt thÕ hÖ thø t− ThuËt ng÷ kü thuËt thÕ hÖ thø t− (4GT - fourth generation technology) bao gåm mét ph¹m vi réng c¸c c«ng cô phÇn mÒm cã c¸c ®iÓm chung: 1. Cho phÐp ng−êi ph¸t triÓn x¸c ®Þnh mét sè ®Æc tr−ng cña phÇn mÒm ë møc cao. 2. Tù ®éng sinh ra m· ch−¬ng tr×nh gèc theo nhu cÇu cña ng−êi ph¸t triÓn. HiÓn nhiªn lµ phÇn mÒm ®−îc biÓu diÔn ë møc trõu t−îng cµng cao th× ch−¬ng tr×nh cã thÓ ®−îc x©y dùng cµng nhanh h¬n. M« h×nh 4GT ®èi víi kü nghÖ phÇn mÒm tËp trung vµo kh¶ n¨ng x¸c ®Þnh phÇn mÒm ®èi víi mét m¸y ë møc ®é gÇn víi ng«n ng÷ tù nhiªn hay dïng mét ký ph¸p ®em l¹i chøc n¨ng cã ý nghÜa. HiÖn t¹i, mét m«i tr−êng ph¸t triÓn phÇn mÒm hç trî cho khu«n c¶nh 4GT bao gåm mét sè hay tÊt c¶ c¸c c«ng cô sau: 1. ng«n ng÷ phi thñ tôc ®Ó truy vÊn CSDL 11
  18. 2. bé sinh b¸o c¸o 3. bé thao t¸c d÷ liÖu 4. bé t−¬ng t¸c vµ x¸c ®Þnh mµn h×nh 5. bé sinh ch−¬ng tr×nh 6. kh¶ n¨ng ®å häa møc cao 7. kh¶ n¨ng lµm trang tÝnh 8. kh¶ n¨ng t¹o tµi liÖu Mçi mét trong nh÷ng c«ng cô nµy ®· tån t¹i, nh−ng chØ cho vµi lÜnh vùc øng dông ®Æcthï.VÝdô:c¸ctÝnhn¨ngmacrotrongc¸cphÇnmÒmb¶ngtÝnh,c¬sëd÷liÖu,kh¶ n¨ng tù sinh m· trong c¸c c«ng cô thiÕt kÕ giao diÖn “kÐo - th¶” Víi nh÷ng øng dông nhá, cã thÓ chuyÓn trùc tiÕp tõ b−íc thu thËp yªu cÇu sang cµi ®Æt b»ng c«ng cô 4GT. Tuy nhiªn víi nh÷ng hÖ thèng lín, cÇn ph¶i cã mét chiÕn l−îc thiÕt kÕ. ViÖc dïng 4GT thiÕu thiÕt kÕ (víi c¸c dù ¸n lín) sÏ g©y ra nh÷ng khã kh¨n nh− chÊt l−îng kÐm, khã b¶o tr× khiÕn cho ng−êi dïng khã chÊp nhËn. VÉn cßn nhiÒu tranh c·i xung quanh viÖc dïng khu«n c¶nh 4GT: -Ng−êi ñng hé cho lµ 4GT lµm gi¶m ®¸ng kÓ thêi gian ph¸t triÓn phÇn mÒm vµ lµm t¨ng rÊt nhiÒu hiÖu suÊt cña ng−êi x©y dùng phÇn mÒm. - Nh÷ng ng−êi ph¶n ®èi cho lµ c¸c c«ng cô 4GT hiÖn t¹i kh«ng ph¶i tÊt c¶ ®Òu dÔ dïng h¬n c¸c ng«n ng÷ lËp tr×nh, r»ng ch−¬ng tr×nh gèc do c¸c c«ng cô nµy t¹o ra lµ kh«ng hiÖu qu¶, vµ r»ng viÖc b¶o tr× c¸c hÖ thèng phÇn mÒm lín ®−îc ph¸t triÓn b»ng c¸ch dïng 4GT l¹i më ra vÊn ®Ò míi. Cã thÓ tãm t¾t hiÖn tr¹ng cña c¸ch tiÕp cËn 4GT nh− sau: 1. LÜnh vùc øng dông hiÖn t¹i cho 4GT míi chØ giíi h¹n vµo c¸c øng dông hÖ th«ng tin nghiÖp vô, ®Æc biÖt, viÖc ph©n tÝch th«ng tin vµ lµm b¸o c¸o lµ nh©n tè chñ chèt cho c¸c c¬ së d÷ liÖu lín. Tuy nhiªn, còng ®· xuÊt hiÖn c¸c c«ng cô CASE míi hç trî cho viÖc dïng 4GT ®Ó tù ®éng sinh ra khung ch−¬ng tr×nh. 2. §èi víi c¸c øng dông võa vµ nhá: thêi gian cÇn cho viÖc t¹o ra phÇn mÒm ®−îc gi¶m ®¸ng kÓ vµ khèi l−îng ph©n tÝch/thiÕt kÕ còng ®−îc rót bít. 3. §èi víi øng dông lín: c¸c ho¹t ®éng ph©n tÝch, thiÕt kÕ vµ kiÓm thö chiÕm phÇn lín thêi gian vµ viÖc lo¹i bá bít lËp tr×nh b»ng c¸ch dïng 4GT nhiÒu khi ®em l¹i hiÖu qu¶ kh«ng ®¸ng kÓ so víi tÝnh r−êm rµ, kÐm hiÖu qu¶ cña phÇn mÒm x©y dùng b»ng ph−¬ng ph¸p nµy. Tãm l¹i, 4GT ®· trë thµnh mét phÇn quan träng cña viÖc ph¸t triÓn phÇn mÒm nghiÖp vô vµ rÊt cã thÓ sÏ ®−îc sö dông réng r·i trong c¸c miÒn øng dông kh¸c trong thêi gian tíi. 1.3.6 M« h×nh lËp tr×nh cùc ®oan LËp tr×nh cùc ®oan (XP - eXtreme Programming) do Kent Beck ®Ò xuÊt lµ mét ph−¬ng ph¸p tiÕp cËn míi cho ph¸t triÓn phÇn mÒm. XP ®−a ra nhiÒu h−íng dÉn míi, ®«i khi tr¸i ng−îc l¹i víi c¸c c¸ch thøc ph¸t triÓn phÇn mÒm ®−îc ®Ò xuÊt tõ tr−íc ®Õn nay. 12
  19. Hai kh¸i niÖm ®éc ®¸o míi vµ quan träng hµng ®Çu trong XP lµ “t¹o c¸c ca thö nghiÖm tr−íc tiªn” vµ “lËp tr×nh ®«i”. a) T¹o c¸c ca thö nghiÖm tr−íc tiªn Th«ng th−êng, thö nghiÖm (vµ tr−íc ®ã lµ t¹o ca thö nghiÖm) ®−îc tiÕn hµnh vµo giai ®o¹n cuèi cña qu¸ tr×nh ph¸t triÓn, khi b¹n ®· cã m· nguån vµ chuyÓn sang kiÓm chøng tÝnh ®óng ®¾n cña nã. NhiÒu tr−êng hîp viÖc kiÓm thö kh«ng ®−îc coi träng vµ chØ ®−îc tiÕn hµnh khi b¹n cßn thêi gian vµ kinh phÝ. XP thay ®æi quan niÖm nµy b»ng c¸ch ®Æt cho kiÓm thö mét tÇm quan träng ngang b»ng (cã thÓ lµ lín h¬n) viÖc viÕt m·. C¸c ca kiÓm thö ®−îc thiÕt kÕ tr−íc khi viÕt m· vµ ph¶i ®−îc thùc hiÖn thµnh c«ng mçi khi ch−¬ng tr×nh ®Ých ®−îc t¹o ra. T¹o ca thö nghiÖm tr−íc ®em l¹i nhiÒu lîi thÕ. Thø nhÊt, nã gióp b¹n x¸c ®Þnh mét c¸ch râ rµng giao diÖn cña modun. H¬n thÕ, ®Ó t¹o ®−îc ca thö nghiÖm, b¹n cÇn ph¶i hiÓu râ chøc n¨ng cña nã. Tøc lµ, XP yªu cÇu b¹n ph¶i hiÓu mét c¸ch râ rµng c¸c yªu cÇucñamoduntr−íc khi b¹n b¾t tay vµo ph¸t triÓn nã. b) LËp tr×nh ®«i XP ®−arakh¸iniÖmmangtÝnhc¸chm¹ng(vµtr¸ing−îc l¹i quan niÖm tõ tr−íc ®Õn nay) lµ m· nguån cña mét m«®un ph¶i ®−îc viÕt bëi 2 lËp tr×nh viªn dïng chung mét m¸y tÝnh. Gi¸ trÞ cña lËp tr×nh ®«i lµ trong khi mét ng−êi viÕt m· th× ng−êi thø hai nghÜ vÒ nã. Ng−êi thø hai nµy sÏ cã trong ®Çu mét bøc tranh toµn thÓ vÒ vÊn ®Ò cÇn gi¶i quyÕt, chø kh«ng chØ lµ gi¶i ph¸p cña ®o¹n m· lóc ®ã. §iÒu nµy sÏ gi¸n tiÕp ®¶m b¶o mét chÊt l−îng tèt h¬n vµ dÉn tíi mét gi¶i ph¸p mang tÝnh tæng thÓ h¬n. §ång thêi, ®iÒu nµy gióp cho hä theo ®−îc c¸c chØ dÉn cña XP, ®Æc biÖt lµ viÖc “t¹o ca thö nghiÖm tr−íc”. NÕu chØ mét ng−êi lËp tr×nh, hä sÏ rÊt dÔ tõ bá viÖc nµy, nh−ng víi hai ng−êi lËp tr×nh cïng lµm viÖc th× hä cã thÓ thay ®æi nhau vµ gi÷ ®−îc c¸c nguyªn t¾c cña XP. 1.3.7 Tæ hîp c¸c m« h×nh Chóng ta ®· xem xÐt c¸c m« h×nh kü nghÖ phÇn mÒm nh− lµ c¸c c¸ch tiÕp cËn kh¸c nhau tíi kü nghÖ phÇn mÒm chø kh«ng ph¶i lµ c¸c c¸ch tiÕp cËn bæ sung cho nhau. Tuy nhiªn trong nhiÒu tr−êng hîp chóng ta cã thÓ vµ còng nªn tæ hîp c¸c khu«n c¶nh ®Ó ®¹t ®−îc søc m¹nh cña tõng khu«n c¶nh cho mét dù ¸n riªng lÎ. VÝ dô, khu«n c¶nh xo¾n èc thùc hiÖn ®iÒu nµy mét c¸ch trùc tiÕp, tæ hîp c¶ lµm b¶n mÉu vµ c¸c yÕu tè cña vßng ®êi cæ ®iÓn trong mét c¸ch tiÕp cËn tiÕn hãa tíi kü nghÖ phÇn mÒm. C¸c kü thuËt thÕ hÖ thø t− cã thÓ ®−îc dïng ®Ó cµi ®Æt b¶n mÉu hay cµi ®Æt hÖ thèng s¶n xuÊt trong b−íc m· hãa cña vßng ®êi cæ ®iÓn. Chóng ta cã thÓ lµm b¶n mÉu trong b−íc ph©n tÝch cña m« h×nh vßng ®êi cæ ®iÓn. KÕt luËn ë ®©y lµ chóng ta kh«ng nªn bÞ lÖ thuéc víi bÊt cø khu«n c¶nh cô thÓ nµo. TÝnh chÊt vµ qui m« cña phÇn mÒm cÇn ph¸t triÓn sÏ lµ yÕu tè quyÕt ®Þnh tíi chän khu«n c¶nh. Mçi c¸ch tiÕp cËn ®Òu cã −u ®iÓm riªng vµ b»ng c¸ch tæ hîp khÐo lÐo c¸c c¸ch tiÕp cËn th× chóng ta sÏ cã mét ph−¬ng ph¸p hçn hîp −u viÖt h¬n c¸c ph−¬ng ph¸p ®−îc dïng ®éc lËp. 13
  20. 1.3.8 TÝnh kh¶ thÞ cña qu¸ tr×nh kü nghÖ Do ®Æc ®iÓm lµ c¸c phÇn tö l«gic nªn qu¸ tr×nh ph¸t triÓn phÇn mÒm rÊt khã kiÓm so¸t. Ng−êi ta t×m c¸ch kh¾c phôc vÊn ®Ò nµy b»ng c¸ch lµm cho qu¸ tr×nh ph¸t triÓn trë nªn “nh×n thÊy ®−îc”,tøclµëmçib−íc (ho¹t ®éng) trong tiÕn tr×nh ph¸t triÓn ph¶i t¹o ra mét s¶n phÈm hay tµi liÖu t−¬ng øng. Ng−êi qu¶n lý dù ¸n vµ c¶ kh¸ch hµng sÏ tiÕn hµnh xÐt duyÖt c¸c tµi liÖu nµy. C¸c tµiliÖusÏtrënªnrÊth÷uÝchchoc«ng®o¹nkiÓmthövµn©ngcÊpphÇnmÒm. VÝ dô, ®èi víi ho¹t ®éng ph©n tÝch chóng ta cã c¸c tµi liÖu nh−: b¸o c¸o nghiªn cøu kh¶ thi, m« h×nh hÖ thèng, ph¸c häa yªu cÇu, ®Æc t¶ yªu cÇu Chóng ta h·y so s¸nh tÝnh kh¶ thÞ cña c¸c khu«n c¶nh ®· biÕt: -vßng®êicæ®iÓncãtÝnhkh¶thÞcaodoc¸cb−íc ph¸t triÓn t−êng minh, m« h×nh xo¾n èc còng cã tÝnh kh¶ thÞ tèt. -§èivíim«h×nhlµmb¶nmÉu,nÕutÇnsèsöa ch÷a lµ lín th× tÝnh kh¶ thÞ kÐm vµ viÖc t¹o ra tµi liÖu lµ kh«ng hiÖu qu¶. - 4GT th× míi chØ dïng víi nh÷ng øng dông nghiÖp vô ®Æc thï nªn khã ph¸t biÓu g× vÒ tÝnh kh¶ thÞ cña nã. ViÖc x©y dùng tµi liÖu còng cã nh÷ng vÊn ®Ò nh−: - t¹o ra c¸c chi phÝ phô lµm chËm tiÕn tr×nh ph¸t triÓn - khi ph¸t hiÖn vÊn ®Ò vÒ thiÕt kÕ, nhiÒu khi do kh«ng muèn thay ®æi c¸c tµi liÖu ®· ®−îc xÐt duyÖt, ng−êiph¸ttriÓncãxuh−íngdïngc¸cgi¶iph¸pcôcbékh«nghiÖu qu¶. C¸cm«h×nhph¸ttriÓntruyÒnthèngth−êng chó träng tíi kh©u lËp tµi liÖu ®Ó n©ng cao tÝnh kh¶ thÞ. Ng−îc l¹i, m« h×nh lËp tr×nh cùc ®oan (XP) l¹i kh«ng khuyÕn khÝch viÖc t¹o nhiÒu tµi liÖu. 1.3.9 VÊn ®Ò gi¶m kÝch cì cña phÇn mÒm Nh− chóng ta ®· biÕt, phÇn mÒm hiÖn nay cµng lín, cµng phøc t¹p. Mét mÆt, n¨ng lùc cña nhãm lËp tr×nh kh«ng ph¶i lµ tuyÕn tÝnh so víi n¨ng lùc cña tõng c¸ nh©n. §é phøc t¹p còng t¨ng theo cÊp sè nh©n, kÐo theo chi phÝ còng t¨ng theo cÊp sè nh©n so víi kÝch cì cña ch−¬ng tr×nh cÇn ph¸t triÓn. Do ®ã, viÖc t×m c¸ch gi¶m kÝch cì, ®é phøc t¹p cña ch−¬ng tr×nh lµ −u tiªn hµng ®Çu cña kü nghÖ phÇn mÒm. T¹i c¸c b−íc ph©n tÝch thiÕt kÕ, gi¶m kÝch cì ®−îc thùc hiÖn th«ng qua ¸p dông chiÕn l−îc “chia ®Ó trÞ”. Tøc lµ chóng ta chia phÇn mÒm thµnh c¸c modun con cã tÝnh ®éc lËp cao. §é phøc t¹p cña tõng modun sÏ nhá h¬n nhiÒu so víi c¶ hÖ thèng, c¸c modun con còng cã thÓ ®−îcph¸ttriÓnsongsong. T¹i giai ®o¹n m· hãa, gi¶m kÝch cì cã thÓ thùc hiÖn ®−îc th«ng qua c¸c ph−¬ng thøc nh−: - dïng l¹i: dïng l¹i c¸c th− viÖn ®· ph¸t triÓn, c¸c th− viÖn th−¬ng m¹i - tù sinh m·: sö dông c¸c c«ng cô tù ®éng hç trî kü nghÖ phÇn mÒm (visual 14
  21. modeling tools, GUI builders, CASE tools ) - kü thuËt h−íng ®èi t−îng: kü thuËt h−íng ®èi t−înghçtrîph¸ttriÓnmoduncã tÝnh dïng l¹i cao nhê cã c¬ chÕ che dÊu th«ng tin vµ kh¶ n¨ng kÕ thõa - dïng c¸c ng«n ng÷ bËc cao (c¸c ng«n ng÷ cã cÊu tróc vµ n¨ng lùc biÓu diÔn cao) Chóng ta xem xÐt vÝ dô vÒ viÖc lùa chän ng«n ng÷. ViÖc chän ng«n ng÷ phô thuéc nhiÒu vµo miÒn øng dông, c¸c rµng buéc vÒ hiÖu n¨ng cña phÇn mÒm, tuy nhiªn n¨ng lùc biÓu diÔn cña ng«n ng÷ còng lµ mét yÕu tè quan träng. B¶ng 1.1 ®−aramétthèng kª liªn quan ®Õn n¨ng lùc biÓu diÔn cña ng«n ng÷: sè dßng lÖnh/®¬n vÞ chøc n¨ng. VB kh«ng ph¶i lµ mét ng«n ng÷ cã cÊu tróc cao nh−ng ®−îc sö dông réng r·i trong c¸c øng dông võa vµ nhá cho m«i tr−êng Windows. Ngoµi tÝnh dÔ häc, dÔ dïng, mét trong nh÷ng nguyªn nh©n gióp VB lan réng chÝnh lµ n¨ng lùc biÓu diÔn cao. B¶ng 1.1: N¨ng lùc biÓu diÔn cña ng«n ng÷ Ng«n ng÷ LOC/FP Assembly 320 C 128 FORTRAN 77 105 COBOL 85 91 Ada 83 71 C++ 56 Ada 95 55 Java 55 Visual Basic 35 1.4 C¸i nh×n chung vÒ kü nghÖ phÇn mÒm TiÕn tr×nh ph¸t triÓn kü nghÖ phÇn mÒm chøa ba giai ®o¹n chÝnh bÊt kÓ m« h×nh kü nghÖ phÇn mÒm ®−îc chän lùa. Ba giai ®o¹n nµy lµ x¸c ®Þnh, ph¸t triÓn vµ b¶o tr×, ®−îc gÆpph¶itrongmäidù¸nph¸ttriÓnphÇnmÒm,bÊtkÓtíimiÒnøngdông,kÝchcìvµ ®é phøc t¹p. Giai ®o¹n x¸c ®Þnh tËp trung vµo kh¸i niÖm c¸i g×. Tøc lµ trong khi x¸c ®Þnh, ng−êi ph¸ttriÓnphÇnmÒmcèg¾ngtËptrung vµo x¸c ®Þnh th«ng tin nµo cÇn ®−îc xö lý, chøc n¨ng vµ hiÖu n¨ng nµo lµ cÇn cã, giao diÖn nµo cÇn ®−îc thiÕt lËp, rµng buéc thiÕt kÕ nµohiÖncãvµtiªuchuÈnhîplÖnµocÇncã ®Ó x¸c ®Þnh ra mét hÖ thèng thµnh c«ng. Yªu cÇu chñ chèt cña hÖ thèng vµ phÇn mÒm còng ®−îc x¸c ®Þnh. MÆc dÇu c¸c ph−¬ng ph¸p ®−îc ¸p dông trong giai ®o¹n x¸c ®Þnh thay®æitïytheom«h×nhkünghÖphÇn mÒm (hay tæ hîp c¸c m« h×nh) ®−îc ¸p dông, cã ba b−íc riªng vÉn xuÊt hiÖn d−íi d¹ng: 1. Ph©n tÝch hÖ thèng: Ph©n tÝch hÖ thèng x¸c ®Þnh ra vai trß cña tõng phÇn tö trong mét hÖ thèng dùa trªn m¸y tÝnh, tøc lµ v¹ch ra vai trß mµ phÇn mÒm (cÇn ph¸t triÓn) 15
  22. sÏ gi÷. 2. LËp kÕ ho¹ch dù ¸n phÇn mÒm: Mét khi vai trß cña phÇn mÒm ®· ®−îc thiÕt lËp, rñi ro ®· ®−îc ph©n tÝch, tµi nguyªn ®· ®−îc cÊp ph¸t, chi phÝ ®· ®−îc −íc l−îng th× ph¶ix¸c®ÞnhcôthÓc¸cc«ngviÖccÇnthùchiÖnvµlËplÞchthùchiÖnchóng. 3. Ph©n tÝch yªu cÇu: Trong b−íc ph©n tÝch hÖ thèng chóng ta chØ x¸c ®Þnh ®−îc vai trß chung cña phÇn mÒm. Sau khi ®· chÝnh thøc quyÕt ®inh ph¸t triÓn phÇn mÒm, chóng ta cÇn ph¶i ph©n tÝch ®Ó x¸c ®Þnh chi tiÕt lÜnh vùc th«ng tin, c¸c chøc n¨ng còng nh− c¸c rµng buéc khi vËn hµnh cña phÇn mÒm. Ph©n tÝch yªu cÇu lµ kh©u kü thuËt quan träng ®Çu tiªn ®Ó ®¶m b¶o chÊt l−îng (tÝnh ®¸ng tin cËy) cña phÇn mÒm. NÕu x¸c®ÞnhsaiyªucÇuth×c¸cb−íc kü thuËt kh¸c cã tèt ®Õn ®©u th× phÇn mÒm còng sÏ kh«ng ®−îc ®−a vµo sö dông. Giai ®o¹n ph¸t triÓn tËp trung vµo kh¸i niÖm thÕ nµo. Tøc lµ, trong giai ®o¹n nµy ng−êi ph¸t triÓn phÇn mÒm tõng b−íc x¸c ®Þnh c¸ch cÊu tróc d÷ liÖu vµ kiÕn tróc phÇn mÒm cÇn x©y dùng, c¸ch c¸c chi tiÕt thñ tôc ®−îc cµi ®Æt, c¸ch dÞch thiÕt kÕ vµo ng«n ng÷lËptr×nh(hayng«nng÷phithñtôc)vµc¸chthùchiÖnkiÓmthö.Ph−¬ng ph¸p ®−îc ¸p dông trong giai ®o¹n ph¸t triÓn sÏ thay ®æi tïy theo m« h×nh nh−ng cã ba b−íc ®Æc thïbaogiêcòngxuÊthiÖnd−íi d¹ng: 1. ThiÕt kÕ phÇn mÒm: Lµ qu¸ tr×nh “dÞch” c¸c yªu cÇu phÇn mÒm thµnh mét tËp c¸cbiÓudiÔn(dùatrªn®åhäa,b¶ng,hayng«nng÷),m«t¶chocÊutrócd÷liÖu,kiÕn tróc, thñ tôc thuËt to¸n vµ ®Æc tr−ng giao diÖn. 2. M· hãa: C¸c biÓu diÔn thiÕt kÕ ph¶i ®−îc biÓu diÔn bëi mét (hay mét vµi) ng«n ng÷ nh©n t¹o (ng«n ng÷ lËp tr×nh qui −íc hay ng«n ng÷ phi thñ tôc ®−îc dïng trong khu«n c¶nh 4GT) mµ sÏ t¹o ra kÕt qu¶ lµ c¸c lÖnh thùc hiÖn ®−îc trªn m¸y tÝnh. 3. KiÓm thö phÇn mÒm: Mét khi phÇn mÒm ®· ®−îc cµi ®Æt d−íi d¹ng m¸y thùc hiÖn ®−îc, cÇn ph¶i kiÓm thö nã ®Ó ph¸t hiÖn c¸c lçi ph©n tÝch, thiÕt kÕ, cµi ®Æt vµ ®¸nh gi¸ tÝnh hiÖu qu¶. Giai ®o¹n b¶o tr× tËp trung vµo nh÷ng thay ®æi g¾n víi viÖc söa lçi, thÝch øng khi m«i tr−êng phÇn mÒm tiÕn hãa vµ sù n©ng cao g©y ra bëi sù thay ®æi yªu cÇu cña ng−êi dïng. Giai ®o¹n b¶o tr× ¸p dông l¹i c¸c b−íc cña giai ®o¹n x¸c ®Þnh vµ ph¸t triÓn, nh−ng lµ viÖc thùc hiÖn trong hoµn c¶nh phÇn mÒm hiÖn cã. Cã ba kiÓu thay ®æi gÆp ph¶itronggiai®o¹nb¶otr×: 1. Söa ®æi: Cho dï cã c¸c ho¹t ®éng b¶o ®¶m chÊt l−îng tèt nhÊt, vÉn cã thÓ lµ kh¸ch hµng sÏ ph¸t hiÖn ra khiÕm khuyÕt trong phÇn mÒm. B¶o tr× söa ®æi lµm thay ®æi phÇn mÒm ®Ó söa c¸c khiÕm khuyÕt (lçi lËp tr×nh, thuËt to¸n, thiÕt kÕ ). 2. ThÝch nghi: Qua thêi gian, m«i tr−êngban®Çu(nh− CPU, hÖ ®iÒu hµnh, ngo¹i vi) ®Ó ph¸t triÓn phÇn mÒm cã thÓ sÏ thay ®æi. B¶o tr× thÝch nghi thùc hiÖn viÖc söa ®æi phÇn mÒm ®Ó thÝch hîp víi nh÷ng thay ®æi m«i tr−êng ngoµi. 3. N©ng cao: Khi phÇn mÒm ®−îc dïng, kh¸ch hµng/ng−êi dïng sÏ nhËn ra nh÷ng chøc n¨ng phô sÏ cã lîi. B¶o tr× hoµn thiÖn më réng phÇn mÒm ra ngoµi c¸c yªu cÇu chøc n¨ng gèc cña nã. 16
  23. Tæng kÕt PhÇn mÒm ®· trë thµnh phÇn tö chñ chèt cña c¸c hÖ thèng m¸y tÝnh. Ph¸t triÓn phÇn mÒm ®· tiÕn hãa tõ x©y dùng mét c«ng cô xö lý th«ng tin thµnh mét ngµnh c«ng nghiÖp. PhÇn mÒm lµ phÇn tö l«gÝc cho nªn viÖc kiÓm so¸t nã khã h¬n nhiÒu so víi phÇn tö vËt lý. Khã cã thÓ tèi −u hãa ®ång thêi c¸c tÝnh n¨ng cÇn cã cña phÇn mÒm. VÝ dô, c¸ctÝnhn¨ngnh− giao diÖn ®å häa dÔ sö dông vµ sù ho¹t ®éng hiÖu qu¶, tÝch kiÖm tµi nguyªn hÖ thèng trong hÇu hÕt c¸c tr−êng hîp lµ lo¹i trõ lÉn nhau. Th¸ch thøc lín ®èi víi viÖc ph¸t triÓn phÇn mÒm lµ chóng ta ph¶i x©y dùng phÇn mÒm tèt theo mét lÞch tr×nh vµ kinh phÝ ®Þnh tr−íc. Kü nghÖ phÇn mÒm lµ mét bé m«n tÝch hîp c¶ c¸c ph−¬ng ph¸p, c«ng cô vµ thñ tôc®Óph¸ttriÓnphÇnmÒmm¸ytÝnh.Cãmét sè m« h×nh kh¸c nhau cho kü nghÖ phÇn mÒm, mçi m« h×nh ®Òu cã nh÷ng mÆt m¹nh vµ ®iÓm yÕu, nh−ng nãi chung tÊt c¶ ®Òu cã mét d·y c¸c giai ®o¹n tæng qu¸t lµ: x¸c ®Þnh, ph¸t triÓn vµ b¶o tr×. 17
  24. Ch−¬ng 2 Ph©n tÝch vµ ®Æc t¶ yªu cÇu 2.1 §¹i c−¬ngvÒph©ntÝchvµ®Æct¶ Ph©ntÝchvµ®ÞnhrâyªucÇulµb−íc kü thuËt ®Çu tiªn trong tiÕn tr×nh kü nghÖ phÇn mÒm. C«ng viÖc ë b−íc nµy lµ t×m hiÓu xem chóng ta ph¶i ph¸t triÓn c¸i g×, chø kh«ng ph¶i lµ ph¸t triÓn nh− thÕ nµo. §Ých cuèi cïng cña kh©u ph©n tÝch lµ t¹o ra ®Æc t¶ yªu cÇu, lµ tµi liÖu rµng buéc gi÷a kh¸ch hµng vµ ng−êi ph¸t triÓn vµ lµ c¬ së cña hîp ®ång. Ho¹t ®éng ph©n tÝch lµ ho¹t ®éng phèi hîp gi÷a kh¸ch hµng vµ ng−êi ph©n tÝch (bªn ph¸t triÓn). Kh¸ch hµng ph¸t biÓu yªu cÇu vµ ng−êi ph©n tÝch hiÓu, cô thÓ hãa vµ biÓu diÔn l¹i yªu cÇu. Ho¹t ®éng ph©n tÝch gi÷ mét vai trß ®Æc biÖt quan träng trong ph¸t triÓn phÇn mÒm, gióp cho ®¶m b¶o chÊt l−îng cña phÇn mÒm (phÇn mÒm ®¸ng tin cËy). PhÇn mÒm ®¸ng tin cËy cã nghÜa lµ ph¶i thùc hiÖn ®−îcchÝnhx¸c,®Çy®ñyªucÇucñang−êi sö dông. NÕu ph©n tÝch kh«ng tèt dÉn ®Õn hiÓu lÇm yªu cÇu th× viÖc söa ch÷a sÏ trë nªn rÊt tèn kÐm. Chi phÝ ®Ó söa ch÷a sai sãt vÒ yªu cÇu sÏ t¨ng lªn gÊp béi nÕu nh− sai sãt ®ã ®−îc ph¸t hiÖn muén, vÝ dô nh− ëb−íc thiÕt kÕ hay m· hãa. ViÖc ph©n tÝch, n¾m b¾t yªu cÇu th−êng gÆp c¸c khã kh¨n nh− -c¸cyªucÇuth−êng mang tÝnh ®Æc thï cña tæ chøc ®Æt hµng nã, do ®ã nã th−êng khã hiÓu, khã ®Þnh nghÜa vµ kh«ng cã chuÈn biÓu diÔn - c¸c hÖ thèng th«ng tin lín cã nhiÒu ng−êi sö dông th× c¸c yªu cÇu th−êng rÊt ®a d¹ng vµ cã c¸c møc −u tiªn kh¸c nhau, thËm chÝ m©u thuÉn lÉn nhau -ng−êi ®Æt hµng nhiÒu khi lµ c¸c nhµ qu¶n lý, kh«ng ph¶i lµ ng−êi dïng thùc sù do ®ã viÖc ph¸t biÓu yªu cÇu th−êngkh«ngchÝnhx¸c Trong ph©n tÝch cÇn ph©n biÖt gi÷a yªu cÇu vµ môc tiªu cña hÖ thèng. Yªu cÇu lµ mét ®ßi hái mµ chóng ta cã thÓ kiÓm tra ®−îc cßn môc tiªu lµ c¸i trõu t−îng h¬n mµ chóng ta h−íng tíi. VÝ dô, giao diÖn cña hÖ thèng ph¶i th©n thiÖn víi ng−êi sö dông lµ mét môc tiªu vµ nã t−¬ng ®èi kh«ng kh¸ch quan vµ khã kiÓm tra. Cã nghÜa lµ víi mét ph¸t biÓu chung chung nh− vËy th× kh¸ch hµng vµ nhµ ph¸t triÓn khã ®Þnh ra ®−îc mét ranh giíi râ rµng ®Ó nãi r»ng phÇn mÒm ®· tháa m·n ®−îc ®ßi hái ®ã. Víi mét môc tiªu nh− vËy, mét 18
  25. yªucÇuchonhµph¸ttriÓncãthÓlµgiao diÖn ®å häa mµ c¸c lÖnh ph¶i ®−îc chän b»ng menu. Môc ®Ých cña giai ®o¹n ph©n tÝch lµ x¸c ®Þnh râ c¸c yªu cÇu cña phÇn mÒm cÇn ph¸t triÓn. Tµi liÖu yªu cÇu nªn dÔ hiÓu víi ng−êi dïng, ®ång thêi ph¶i chÆt chÏ ®Ó lµm c¬ së cho hîp ®ång vµ ®Ó cho ng−êi ph¸t triÓn dùa vµo ®ã ®Ó x©y dùng phÇn mÒm. Do ®ã yªu cÇu th−êng ®−îc m« t¶ ë nhiÒu møc chi tiÕt kh¸c nhau phôc vô cho c¸c ®èi t−îng ®äc kh¸c nhau. C¸c møc ®ã cã thÓ lµ: • §Þnh nghÜa (x¸c ®Þnh) yªu cÇu: m« t¶ mét c¸ch dÔ hiÓu, v¾n t¾t vÒ yªu cÇu, h−íng vµo ®èi t−îng ng−êi®äclµng−êi sö dông, ng−êi qu¶n lý • §Æc t¶ yªu cÇu: m« t¶ chi tiÕt vÒ c¸c yªu cÇu, c¸c rµng buéc cña hÖ thèng, ph¶i chÝnh x¸c sao cho ng−êi ®äc kh«ng hiÓu nhÇm yªu cÇu, h−íng vµo ®èi t−îng ng−êi®äclµc¸cküs− phÇn mÒm (ng−êi ph¸t triÓn), kü s− hÖ thèng (sÏ lµm viÖc b¶o tr×) C¸c tµi liÖu yªu cÇu cÇn ®−îc thÈm ®Þnh ®Ó ®¶m b¶o tháa m·n nhu cÇu ng−êi dïng. §©y lµ c«ng viÖc b¾t buéc ®Ó ®¶m b¶o chÊt l−îng phÇn mÒm. §«i khi viÖc x¸c ®Þnh ®Çy®ñyªucÇutr−íc khi ph¸t triÓn hÖ thèng lµ kh«ng thùc tÕ vµ khi ®ã viÖc x©y dùng c¸c b¶n mÉu ®Ó n¾m b¾t yªu cÇu lµ cÇn thiÕt. Nghin cu Ph©n t›ch kh thi yu c«u Xc Ænh yu c«u ßc t Bo co yu c«u kh thi M hnh h÷ thËng Tµi li÷u Ænh ngh‹a yu c«u Tµi li÷u Tµi li÷u yu c«u Æc t yu c«u H×nh 2.1: Qu¸ tr×nh h×nhthµnhc¸cyªucÇu. 2.2 Nghiªn cøu kh¶ thi §©ylµgiai®o¹ncãtÇmquanträng®ÆcbiÖt, v× nã liªn quan ®Õn viÖc lùa chän gi¶i ph¸p. Trong giai ®o¹n nµy ng−êi ph©n tÝch ph¶i lµm râ ®−îc c¸c ®iÓm m¹nh vµ ®iÓm yÕu cña hÖ thèng cò, ®¸nh gi¸ ®−îc møc ®é, tÇm quan träng cña tõng vÊn ®Ò, ®Þnh ra c¸c vÊn ®Ò cÇn ph¶i gi¶i quyÕt (vÝ dô: nh÷ng dÞch vô míi, thêi h¹n ®¸p øng, hiÖu qu¶ 19
  26. kinh tÕ). Sau ®ã ng−êi ph©n tÝch ph¶i ®Þnh ra mét vµi gi¶i ph¸p cã thÓ (s¬ bé) vµ so s¸nh c©n nh¾c c¸c ®iÓm tèt vµ kh«ng tèt cña c¸c gi¶i ph¸p ®ã (nh− tÝnhn¨ngcñahÖ thèng, gi¸ c¶ cµi ®Æt, b¶o tr×, viÖc ®µo t¹o ng−êi sö dông ). §ã lµ viÖc t×m ra mét ®iÓm c©n b»ng gi÷a nhu cÇu vµ kh¶ n¨ng ®¸p øng. Mäi dù ¸n ®Òu kh¶ thi khi nguån tµi nguyªn v« h¹n vµ thêi gian v« h¹n. Nh−ng viÖc x©y dùng hÖ thèng l¹i ph¶i lµm víi sù h¹n hÑp vÒ tµi nguyªn vµ khã (nÕu kh«ng ph¶i lµ kh«ng hiÖn thùc) b¶o ®¶m ®óng ngµy bµn giao. Ph©n tÝch kh¶ thi vµ rñi ro cã liªn quan víi nhau theo nhiÒu c¸ch. NÕu rñi ro cña dù ¸n lµ lín th× tÝnh kh¶ thi cña viÖc chÕ t¹o phÇn mÒm cã chÊt l−îng sÏ bÞ gi¶m ®i. Tronggiai®o¹nnghiªncøukh¶thi,chóngtatËptrungvµobènlÜnhvùcquant©m chÝnh: 1. Kh¶ thi vÒ kinh tÕ: chi phÝ ph¸t triÓn cÇn ph¶i c©n xøng víi lîi Ých mµ hÖ thèng ®−îc x©y dùng ®em l¹i. TÝnh kh¶ thi vÒ kinh tÕ thÓ hiÖn trªn c¸c néi dung sau: - Kh¶ n¨ng tµi chÝnh cña tæ chøc cho phÐp thùc hiÖn dù ¸n. - Lîi Ých mµ dù ¸n ph¸t triÓn HTTT mang l¹i ®ñ bï ®¾p chi phÝ ph¶i bá ra x©y dùng nã. - Tæ chøc chÊp nhËn ®−îc nh÷ng chi phÝ th−êng xuyªn khi hÖ thèng ho¹t ®éng Mét thuËt ng÷ hay dïng ®Ó chØ tµi liÖu nghiªn cøu kh¶ thi vÒ kinh tÕ lµ luËn chøng kinh tÕ. LuËn chøng kinh tÕ nãi chung ®−îc coi nh− nÒn t¶ng cho hÇu hÕt c¸c hÖ thèng (c¸c ngo¹i lÖ lµ hÖ thèng quèc phßng, hÖ thèng luËt, c¸c hÖ thèng phôc vô cho c¸c nghiªn cøu ®Æc biÖt). LuËn chøng kinh tÕ bao gåm: - c¸c mèi quan t©m, nhÊt lµ ph©n tÝch chi phÝ/lîi Ých -chiÕnl−îc ph¸t triÓn dµi h¹n cña c«ng ty - sù ¶nh h−ëng tíi c¸c s¶n phÈm lîi nhuËn kh¸c - chi phÝ cho tµi nguyªn cÇn cho viÖc x©y dùng vµ ph¸t triÓn thÞ tr−êng tiÒm n¨ng 2. Kh¶ thi vÒ kü thuËt: kh¶o cøu vÒ chøc n¨ng, hiÖu suÊt vµ rµng buéc cã thÓ ¶nh h−ëng tíi kh¶ n¨ng ®¹t tíi mét hÖ thèng chÊp nhËn ®−îc. Nãi c¸ch kh¸c, kh¶ thi kü thuËt lµ xem xÐt kh¶ n¨ng kü thuËt hiÖn t¹i cã ®ñ ®¶m b¶o thùc hiÖn gi¶i ph¸p c«ng nghÖ dù ®Þnh ¸p dông hay kh«ng. Kh¶ thi kü thuËt th−êng lµ lÜnh vùc khã th©m nhËp nhÊt t¹i giai ®o¹n ph©n tÝch. §iÒu thùc chÊt lµ tiÕn tr×nh ph©n tÝch vµ x¸c ®Þnh nhu cÇu cÇn ®−îc tiÕn hµnh song song víi viÖc x¸c nhËn tÝnh kh¶ thi kü thuËt. C¸c xem xÐt th−êng ®−îc g¾n víi tÝnh kh¶ thi kü thuËt bao gåm: Rñi ro x©y dùng: liÖu c¸c phÇn tö hÖ thèng cã thÓ ®−îc thiÕt kÕ sao cho ®¹t ®−îc chøc n¨ng vµ hiÖu suÊt cÇn thiÕt tháa m·n nh÷ng rµng buéc trong khi ph©n tÝch kh«ng? Cã s½n tµi nguyªn: cã s½n c¸c nh©n viªn choviÖcx©ydùngphÇntöhÖthèng®ang xÐt kh«ng? C¸c tµi nguyªn cÇn thiÕt kh¸c (phÇn cøng vµ phÇn mÒm) cã s½n cho viÖc x©y dùng hÖ thèng kh«ng ? C«ng nghÖ: c«ng nghÖ liªn quan ®· ®¹t tíi tr¹ng th¸i s½n sµng hç trî cho hÖ thèng ch−a? 3. Kh¶ thi vÒ ph¸p lý: nghiªn cøu vµ ®−a ra ph¸n quyÕt vÒ cã hay kh«ng sù x©m 20
  27. ph¹m, vi ph¹m ph¸p luËt hay khã kh¨n ph¸p lý tõ viÖc x©y dùng vµ vËn hµnh hÖ thèng. TÝnh kh¶ thi ph¸p lý bao gåm mét ph¹m vi réng c¸c mèi quan t©m kÓ c¶ hîp ®ång, nghÜa vô ph¸p lý, sù vi ph¹m vµ v« sè c¸c bÉy ph¸p lý kh¸c mµ th−êng lµ c¸c nh©n viªn kü thuËt kh«ng biÕt tíi. Trong n−íc, vÊn ®Ò kh¶ thi vÒ ph¸p lý vÉn ch−a®−îc coi träng mét c¸ch ®óng møc mÆc dï ®· cã mét sè luËt liªn quan ®Õn CNTT vµ b¶o hé b¶n quyÒn. 4. TÝnh kh¶ thi vÒ ho¹t ®éng: ®¸nh gi¸ tÝnh kh¶ thi cña viÖc vËn hµnh hÖ thèng. Trong mçi ph−¬ng¸nng−êi ta cÇn xem xÐt hÖ thèng cã thÓ vËn hµnh tr«i ch¶y hay kh«ng trong khu«n khæ tæ chøc vµ ®iÒu kiÖn qu¶n lý mµ tæ chøc ®ã (ng−êi dïng, kh¸ch hµng) cã. Møc ®é c¸c ph−¬ng ¸n ®−îcxemxÐttíitrongnghiªncøukh¶thith−êng bÞ giíi h¹nbëic¸crµngbuécvÒchiphÝvµthêigian. 2.3 NÒn t¶ng cña ph©n tÝch yªu cÇu 2.3.1 C¸c nguyªn lý ph©n tÝch TrªnhaithËpkØqua,ng−êi ta ®· x©y dùng ra mét sè ph−¬ng ph¸p ph©n tÝch vµ ®Æc t¶ phÇn mÒm. Nh÷ng ng−êi nghiªn cøu ®· x¸c ®Þnh ra c¸c vÊn ®Ò vµ nguyªn nh©n cña chóng, vµ ®· x©y dùng ra c¸c qui t¾c vµ thñ tôc ®Ó v−ît qua chóng. Mçi ph−¬ng ph¸p ®Òu cã kÝ ph¸p vµ quan ®iÓm riªng. Tuy nhiªn, tÊt c¶ c¸c ph−¬ng ph¸p nµy ®Òu cã quan hÖ víi mét tËp hîp c¸c nguyªn lý c¬ b¶n: 1. MiÒn th«ng tin cña vÊn ®Ò ph¶i ®−îc biÓu diÔn l¹i vµ hiÓu râ. 2. C¸c m« h×nh m« t¶ cho th«ng tin, chøc n¨ng vµ hµnh vi hÖ thèng cÇn ph¶i ®−îc x©y dùng. 3.C¸cm«h×nh(vµvÊn®Ò)ph¶i®−îcph©nho¹chtheoc¸ch®Ólérac¸cchitiÕt theo kiÓu ph©n tÇng (hay cÊp bËc). 4.TiÕntr×nhph©ntÝchph¶i®itõth«ngtinb¶nchÊth−íngtíichitiÕtcµi®Æt. B»ng c¸ch ¸p dông nh÷ng nguyªn lý nµy, ng−êi ph©n tÝch tiÕp cËn tíi vÊn ®Ò mét c¸ch hÖ thèng. MiÒn th«ng tin cÇn ®−îc xem xÐt sao cho ng−êi ta cã thÓ hiÓu râ chøc n¨ng mét c¸ch ®Çy ®ñ. C¸c m« h×nh ®−îc dïng ®Ó cho viÖc trao ®æi th«ng tin ®−îc dÔ dµng theo mét c¸ch ng¾n gän. ViÖc ph©n ho¹ch vÊn ®Ò ®−îc sö dông ®Ó lµm gi¶m ®é phøc t¹p. Nh÷ng c¸ch nh×n nhËn c¶ tõ gãc ®é b¶n chÊt vµ gãc ®é cµi ®Æt vÒ phÇn mÒm ®Òu cÇn thiÕt ®Ó bao hµm ®−îcc¸crµngbuéclogicdoyªucÇuxölý¸p®Ætnªncïng c¸c rµng buéc vËt lý do c¸c phÇn tö hÖ thèng kh¸c ¸p ®Æt nªn. 2.3.2 M« h×nh hãa Chóngtat¹orac¸cm«h×nh®Óthu®−îchiÓubiÕtrâh¬nvÒthùcthÓthùctÕcÇnx©y dùng. Khi thùc thÓ lµ mét vËt vËt lý (nh− toµ nhµ, m¸y bay, m¸y mãc) th× ta cã thÓ x©y dùng mét m« h×nh gièng hÖt vÒ h×nh d¹ng, nh−ng nhá h¬n vÒ qui m«. Tuy nhiªn, khi 21
  28. thùc thÓ cÇn x©y dùng lµ phÇn mÒm, th× m« h×nh cña chóng ta ph¶i mang d¹ng kh¸c. Nã ph¶i cã kh¶ n¨ng m« h×nh hãa th«ng tin mµ phÇn mÒm biÕn ®æi, c¸c chøc n¨ng (vµ chøc n¨ng con) lµm cho phÐp biÕn ®æi ®ã thùc hiÖn ®−îc, vµ hµnh vi cña hÖ thèng khi phÐp biÕn ®æi x¶y ra. Trong khi ph©n tÝch c¸c yªu cÇu phÇn mÒm, chóng ta t¹o ra c¸c m« h×nh vÒ hÖ thèng cÇn x©y dùng. C¸c m« h×nh tËp trung vµo ®iÒu hÖ thèng ph¶i thùc hiÖn, kh«ng chó ý ®Õn c¸ch thøc nã thùc hiÖn. Trong nhiÒu tr−êng hîp, c¸c m« h×nh chóng ta t¹o ra cã dïng kÝ ph¸p ®å ho¹ m« t¶ cho th«ng tin, xö lý, hµnh vi hÖ thèng, vµ c¸c ®Æc tr−ng kh¸c th«ng qua c¸c biÓu t−îng ph©n biÖt vµ dÔ nhËn diÖn. Nh÷ng phÇn kh¸c cña m« h×nh cã thÓ thuÇn tóy v¨n b¶n. Th«ng tin m« t¶ cã thÓ ®−îc cung cÊp b»ng c¸ch dïng métng«nng÷tùnhiªnhaymétng«nng÷chuyªndôngchom«t¶yªucÇu. C¸c m« h×nh ®−îc t¹o ra trong khi ph©n tÝch yªu cÇu cßn ®ãng mét sè vai trß quan träng: • M« h×nh trî gióp cho ng−êi ph©n tÝch trong viÖc hiÓu vÒ th«ng tin, chøc n¨ng vµ hµnh vi cña hÖ thèng, do ®ã lµm cho nhiÖm vô ph©n tÝch yªu cÇu ®−îc dÔ dµng vµ hÖ thèng h¬n. • M« h×nh trë thµnh tiªu ®iÓm cho viÖc xem xÐt vµ do ®ã, trë thµnh phÇn mÊu chèt cho viÖc x¸c ®Þnh tÝnh ®Çy ®ñ, nhÊt qu¸n vµ chÝnh x¸c cña ®Æc t¶. • M« h×nh trë thµnh nÒn t¶ng cho thiÕt kÕ, cung cÊp cho ng−êi thiÕt kÕ mét c¸ch biÓu diÔn chñ yÕu vÒ phÇn mÒm cã thÓ ®−îc “¸nh x¹” vµo hoµn c¶nh cµi ®Æt. D−íi ®©y lµ mét sè m« h×nh (ph−¬ng ph¸p) hay ®−îc dïng trong ph©n tÝch: 1. BiÓu ®å luång d÷ liÖu Khith«ngtin®iquaphÇnmÒmnãbÞthay®æi bëi mét lo¹t c¸c phÐp biÕn ®æi. BiÓu ®åluångd÷liÖu(DataFlowDiagram-DFD)lµmétküthuËtvÏraluångd÷liÖudi chuyÓn trong hÖ thèng vµ nh÷ng phÐp biÕn ®æi ®−îc ¸p dông lªn d÷ liÖu. Ký ph¸p c¬ b¶n cña biÓu ®å luång d÷ liÖu ®−îc minh häa trªn h×nh 2.2. tc nh©n kho d li÷u luÂng d li÷u ti’n trnh H×nh 2.2: Ký ph¸p DFD. BiÓu®åluångd÷liÖucãthÓ®−îc dïng ®Ó biÓu diÔn cho mét hÖ thèng hay phÇn mÒmëbÊtk×møctrõut−îng nµo. Trong thùc tÕ, DFD cã thÓ ®−îc ph©n ho¹ch thµnh nhiÒu møc biÓu diÔn cho chi tiÕt chøc n¨ng vµ luång th«ng tin ngµy cµng t¨ng. Do ®ã ph−¬ngph¸pdïngDFDcßn®−îc gäi lµ ph©n tÝch cã cÊu tróc. Mét DFD møc 0, còng cßn ®−îc gäi lµ biÓu ®å nÒn t¶ng hay biÎu ®å ng÷ c¶nh hÖ thèng, biÓu diÔn cho toµn bé phÇn tö phÇn mÒm nh− mét h×nh trßn víi d÷ liÖu vµo vµ ra ®−îc chØ ra bëi c¸c mòi tªn tíi vµ ®i t−¬ngøng.MétDFDmøc1côthÓhãacñaDFDmøc0vµcãthÓchøanhiÒu 22
  29. h×nh trßn (chøc n¨ng) víi c¸c mòi tªn (luång d÷ liÖu) nèi lÉn nhau. Mçi mét trong c¸c tiÕn tr×nh ®−îc biÓu diÔn ë møc 1 ®Òu lµ chøc n¨ng con cña toµn bé hÖ thèng ®−îc m« t¶ trong biÓu ®å ng÷ c¶nh. H×nh 2.3 minh häa mét DFD cho hÖ thèng b¸n vÐ tÇu. Æt v– H÷ thËng Khch hµng bn v– v– DFD mc 0 Bng gi t«u Khch hµng Ki”m tra Ph©n t›ch gi t«u ƨn Æt v– ßt chÁ Pht hµnh Khch hµng v– ChÁ Æ Æt Bng gi v– DFD mc 1 H×nh 2.3: BiÓu ®å luång d÷ liÖu cña mét hÖ thèng b¸n vÐ tÇu. 2. BiÎu ®å thùc thÓ quan hÖ Ký ph¸p nÒn t¶ng cho m« h×nh hãa d÷ liÖu lµ biÓu ®å thùc thÓ - quan hÖ (Entity - Relation Diagram). TÊt c¶ ®Òu x¸c ®Þnh mét tËp c¸c thµnh phÇn chñ yÕu cho biÓu ®å E-R: thùc thÓ, thuéc tÝnh, quan hÖ vµ nhiÒu chØ b¸o kiÓu kh¸c nhau. Môc ®Ých chÝnh cñabiÓu®åE-RlµbiÓudiÔnd÷liÖuvµmèiquanhÖcñac¸cd÷liÖu(thùcthÓ). Kýph¸pcñabiÓu®åE-Rcòngt−¬ng ®èi ®¬n gi¶n. C¸c thùc thÓ ®−îc biÓu diÔn b»ng c¸c h×nh ch÷ nhËt cã nh·n. Mèi quan hÖ ®−îc chØ ra b»ng h×nh thoi. C¸c mèi nèi gi÷a sù vËt d÷ liÖu vµ mèi quan hÖ ®−îc thiÕt lËp b»ng c¸ch dïng nhiÒu ®−êng nèi ®Æc biÖt (h×nh 2.4). 23
  30. thc th” thuÈc t›nh quan h÷ k’ thıa Ph¨ng ti÷n Ngi C Bi”n Æ®ng k› giao thng Xe my H×nh 2.4: M« h×nh thùc thÓ quan hÖ ng−êi - ph−¬ng tiÖn giao th«ng. 2.3.3 Ng−êi ph©n tÝch Ng−êi ph©n tÝch ®ãng vai trß ®Æc biÖt quan träng trong tiÕn tr×nh ph©n tÝch. Ngoµi kinh nghiÖm, mét ng−êi ph©n tÝch tèt cÇn cã c¸c kh¶ n¨ng sau: - Kh¶ n¨ng hiÓu thÊu c¸c kh¸i niÖm trõu t−îng, cã kh¶ n¨ng tæ chøc l¹i thµnh c¸c ph©n tÝch logic vµ tæng hîp c¸c gi¶i ph¸p dùa trªn tõng d¶i ph©n chia. - Kh¶ n¨ng rót ra c¸c sù kiÖn thÝch ®¸ngtõc¸cnguånxungkh¾cvµlÉnlén. - Kh¶ n¨ng hiÓu ®−îc m«i tr−êng ng−êi dïng/kh¸ch hµng. - Kh¶ n¨ng ¸p dông c¸c phÇn tö hÖ thèng phÇn cøng vµ/hoÆc phÇn mÒm vµo m«i tr−êng ng−êi sö dông/kh¸ch hµng. - Kh¶ n¨ng giao tiÕp tèt ë d¹ng viÕt vµ nãi. - Kh¶ n¨ng trõu t−îng hãa/tæng hîp vÊn ®Ò tõ c¸c sù kiÖn riªng lÎ. 2.4 X¸c ®Þnh vµ ®Æc t¶ yªu cÇu 2.4.1 X¸c ®Þnh yªu cÇu X¸c®ÞnhyªucÇulµm«t¶trõut−îng vÒ c¸c dÞch vô mµ hÖ thèng cÇn cung cÊp vµ c¸c rµng buéc mµ hÖ thèng cÇn tu©n thñ khi vËn hµnh. Nã chØ m« t¶ c¸c hµnh vi bªn ngoµi cña hÖ thèng mµ kh«ng liªn quan tíi c¸c chi tiÕt thiÕt kÕ. Yªu cÇu nªn ®−îc viÕt sao cho cã thÓ hiÓu mµ kh«ng cÇn mét kiÕn thøc chuyªn m«n ®Æc biÖt nµo. C¸c yªu cÇu ®−îc chia thµnh hai lo¹i: 1)C¸cyªucÇuchøcn¨ng:c¸cdÞchvômµhÖthèngcÇncungcÊp 2) C¸c yªu cÇu phi chøc n¨ng: c¸c rµng buéc mµ hÖ thèng cÇn tu©n thñ. 24
  31. C¸c yªu cÇu phi chøc n¨ng cã thÓ chia lµm 3 kiÓu: i) Yªu cÇu s¶n phÈm: c¸c yªu cÇu vÒ tèc ®é, bé nhí, ®é tin cËy, vÒ tÝnh kh¶ chuyÓn vµ t¸i sö dông ii) Yªu cÇu vÒ qu¸ tr×nh: yªu cÇu ®èi víi qu¸ tr×nh x©y dùng s¶n phÈm nh− c¸c chuÈn ph¶i tu©n theo, c¸c ph−¬ng ph¸p thiÕt kÕ, ng«n ng÷ lËp tr×nh iii) Yªu cÇu kh¸c: c¸c yªu cÇu kh«ng thuéc hai nhãm trªn nh− vÒ tÝnh ph¸p lý, vÒ chi phÝ, vÒ thµnh viªn nhãm ph¸t triÓn C¸c yªu cÇu phi chøc n¨ng th−êng rÊt ®Æc thï víi tõng kh¸ch hµng vµ do ®ã khã ph©n tÝch vµ ®Æc t¶ mét c¸ch ®Çy ®ñ vµ chÝnh x¸c. VÒ nguyªn t¾c, yªu cÇu cña hÖ thèng ph¶i võa ®Çy ®ñ võa kh«ng ®−îc m©u thuÉn nhau. §èi víi c¸c hÖ thèng lín phøc t¹p th× chóng ta khã ®¹t ®−îc hai yÕu tè nµy trong c¸c b−íc ph©n tÝch ®Çu. Trong c¸c b−íc duyÖt l¹i yªu cÇu cÇn ph¶i bæ sung, chØnh lý t− liÖu yªu cÇu. 2.4.2 §Æc t¶ yªu cÇu Tµi liÖu x¸c ®Þnh yªu cÇu lµ m« t¶ h−íng kh¸ch hµng vµ ®−îc viÕt bëi ng«n ng÷ cña kh¸ch hµng. Khi ®ã cã thÓ dïng ng«n ng÷ tù nhiªn vµ c¸c kh¸i niÖm trõu t−îng. Tµi liÖu dÆc t¶ yªu cÇu (®Æc t¶ chøc n¨ng) lµ m« t¶ h−íng ng−êi ph¸t triÓn, lµ c¬ së cña hîp ®ång lµm phÇn mÒm. Nã kh«ng ®−îc phÐp m¬ hå, nÕu kh«ng sÏ dÉn ®Õn sù hiÓu nhÇm bëi kh¸ch hµng hoÆc ng−êi ph¸t triÓn. Víi mét yªu cÇu m¬ hå th× ng−êi ph¸t triÓn sÏ thùc hiÖn nã mét c¸ch rÎ nhÊt cßn kh¸ch hµng th× kh«ng muèn vËy. Do ®ã kh¸ch hµng cã thÓ ®ßi hái söa ®æi chøc n¨ng phÇn mÒm khi nã ®· gÇn hoµn thiÖn khiÕn cho chi phÝ t¨ng vµ chËm thêi ®iÓm bµn giao. Chi phÝ cho söa c¸c sai sãt trong ph¸t biÓu yªu cÇu lµ rÊt lín, ®Æc biÖt lµ khi c¸c sai sãt nµy ®−îc ph¸t hiÖn khi ®· b¾t ®Çu x©y dùng hÖ thèng. Theo mét sè thèng kª th× 85% m· ph¶i viÕt l¹i do thay ®æi yªu cÇuvµ12%lçiph¸thiÖntrong3n¨m®Çusö dông lµ do ®Æc t¶ yªu cÇu kh«ng chÝnh x¸c. Do ®ã, viÖc ®Æc t¶ chÝnh x¸c yªu cÇu lµ mèi quan t©m ®−îc ®Æt lªn hµng ®Çu. Cã hai ph−¬ng ph¸p ®Æc t¶ lµ 1. §Æc t¶ phi h×nh thøc: lµ c¸ch ®Æc t¶ b»ng ng«n ng÷ tù nhiªn 2. §Æc t¶ h×nh thøc: lµ c¸ch ®Æc t¶ b»ng c¸c ng«n ng÷ nh©n t¹o (ng«n ng÷ ®Æc t¶), c¸cc«ngthøcvµbiÓu®å §Æc t¶ phi h×nh thøc (ng«n ng÷ tù nhiªn) thuËn tiÖn cho viÖc x¸c ®Þnh yªu cÇu nh−ng nhiÒu khi kh«ng thÝch hîp víi ®Æc t¶ yªu cÇu v×: i) Kh«ng ph¶i lóc nµo ng−êi ®äc vµ ng−êi viÕt ®Æc t¶ b»ng ng«n ng÷ tù nhiªn còng hiÒu c¸c tõ nh− nhau. ii) Ng«n ng÷ tù nhiªn qu¸ mÒm dÎo do ®ã c¸c yªu cÇu liªn quan ®Õn nhau cã thÓ ®−îc biÓu diÔn b»ng c¸c h×nh thøchoµntoµnkh¸cnhauvµng−êi ph¸t triÓn kh«ng nhËn ra c¸c mèi liªn quan nµy. iii) C¸c yªu cÇu khã ®−îcph©nho¹chmétc¸chh÷uhiÖudo®ãhiÖuqu¶cñaviÖc 25
  32. ®æi thay chØ cã thÓ x¸c ®Þnh ®−îc b»ng c¸ch kiÓm tra tÊt c¶ c¸c yªu cÇu chø kh«ng ph¶i mét nhãm c¸c yªu cÇu liªn quan. C¸cng«nng÷®Æct¶(®Æct¶h×nhthøc)kh¾cphôc®−îc c¸c h¹n chÕ trªn, tuy nhiªn ®a sè kh¸ch hµng l¹i kh«ng th«ng th¹o c¸c ng«n ng÷ nµy. Thªm n÷a mçi ng«n ng÷ ®Æc t¶ h×nh thøc th−êng chØ phôc vô cho mét nhãm lÜnh vùc riªng biÖt vµ viÖc ®Æc t¶ h×nh thøc lµ mét c«ng viÖc tèn kÐm thêi gian. Métc¸chtiÕpcËnlµbªnc¹nhc¸c®Æct¶h×nhthøcng−êi ta viÕt c¸c chó gi¶i b»ng ng«n ng÷ tù nhiªn ®Ó gióp kh¸ch hµnh dÔ hiÓu. 2.4.3 ThÈm ®Þnh yªu cÇu Mét khi c¸c yªu cÇu ®· ®−îc thiÕt lËp th× cÇn thÈm ®Þnh xem chóng cã tháa m·n c¸c nhu cÇu cña kh¸ch hµng hay kh«ng. NÕu thÈm ®Þnh kh«ng ®−îc tiÕn hµnh chÆt chÏ th× c¸csaisãtcãthÓlantruyÒnsangc¸cgiai®o¹nthiÕtkÕvµm·hãakhiÕnchoviÖcsöa ®æi hÖ thèng trë nªn rÊt tèn kÐm. Môc tiªu cña thÈm ®Þnh lµ kiÓm tra xem yªu cÇu mµ ng−êi ph©n tÝch x¸c ®Þnh cã tháa m·n 4 yÕu tè sau kh«ng: 1. Tháa m·n nhu cÇu cña ng−êi dïng: cÇn ph¶i tháa m·n ®−îc c¸c nhu cÇu b¶n chÊt cña ng−êi dïng (kh¸ch hµng). 2. C¸c yªu cÇu kh«ng ®−îc m©u thuÉn nhau: víi c¸c hÖ thèng lín c¸c yªu cÇu rÊt ®a d¹ng vµ cã kh¶ n¨ng sÏ m©u thu©n nhau. Khi ®ã ng−êi ph©n tÝch ph¶i lo¹i bít c¸c yªu cÇu (kh«ng chñ chèt) ®Ó sau cho c¸c yªu cÇu ®−îc m« t¶ trong tµi liÖu yªu cÇu kh«ng m©u thuÉn nhau. 3. C¸c yªu cÇu ph¶i ®Çy ®ñ: cÇn chøa mäi chøc n¨ng vµ rµng buéc mµ ng−êi dïng ®· nh¾m ®Õn. 4. C¸c yªu cÇu ph¶i hiÖn thùc: yªu cÇu ph¶i hiÖn thùc vÒ c¸c khÝa c¹nh kü thuËt, kinh tÕ vµ ph¸p lý. 2.5 Lµm b¶n mÉu trong qu¸ tr×nh ph©n tÝch §èi víi c¸c hÖ thèng phøc t¹p, nhiÒu khi chóng ta kh«ng n¾m ch¾c ®−îc yªu cÇu cña kh¸ch hµng, chóng ta còng khã ®¸nh gi¸ ®−îc tÝnh kh¶ thi còng nh− hiÖu qu¶ cña hÖ thèng. Mét c¸ch tiÕp cËn ®èi víi tr−êng hîp nµy lµ x©y dùng b¶n mÉu. B¶n mÉu võa ®−îc dïng ®Ó ph©n tÝch yªu cÇu võa cã thÓ tiÕn hãa thµnh s¶n phÈm cuèi cïng. B¶n mÉu phÇn mÒm hoµn toµn kh¸c víi b¶n mÉu phÇn cøng. Khi ph¸t triÓn c¸c hÖ thèng phÇn cøng, th× thùc tÕ ng−êi ta ph¸t triÓn mét b¶n mÉu hÖ thèng ®Ó thÈm ®Þnh thiÕt kÕ hÖ thèng. Mét b¶n mÉu hÖ thèng ®iÖn tö cã thÓ ®−îc thùc hiÖn vµ ®−îc thö nghiÖm b»ng c¸ch dïng c¸c thµnh phÇn ch−a®−îc l¾p r¸p vµo vá tr−íc khi ®Çu t− vµo c¸c m¹ch tÝch hîp chuyªn dông ®¾t tiÒn ®Ó thùc hiÖn mét ®êi s¶n phÈm míi cña hÖ thèng. B¶n mÉu phÇn mÒm kh«ng ph¶i nh»m vµo viÖc thÈm ®Þnh thiÕt kÕ (thiÕt kÕ cña nã th−êng lµ hoµn toµn kh¸c víi hÖ thèng ®−îc ph¸t triÓn cuèi cïng), mµ lµ ®Ó thÈm 26
  33. ®Þnh yªu cÇu cña ng−êi sö dông. 2.5.1 C¸c b−íc lµm b¶n mÉu X©y dùng b¶n mÉu bao gåm 6 b−íc sau: B−íc 1: §¸nh gi¸ yªu cÇu phÇn mÒm vµ x¸c ®Þnh liÖu phÇn mÒm cÇn x©y dùng cã xøng ®¸ng ®Ó lµm b¶n mÉu kh«ng Kh«ng ph¶i tÊt c¶ c¸c phÇn mÒm ®Òu cã thÓ ®−a tíi lµm b¶n mÉu. Ta cã thÓ x¸c ®Þnh mét sè nh©n tè lµm b¶n mÉu: lÜnh vùc øng dông, ®é phøc t¹p øng dông, ®Æc tr−ng kh¸chhµngvµ®Æctr−ng dù ¸n. §Ó ®¶m b¶o tÝnh t−¬ng t¸c gi÷a kh¸ch hµng víi b¶n mÉu, chóng ta cÇn ®¶m b¶o c¸c ®iÒu kiÖn: 1. Kh¸ch hµng ph¶i cam kÕt dïng tµi nguyªn ®Ó ®¸nh gi¸ vµ lµm mÞn b¶n mÉu (chi tiÕt hãa yªu cÇu) 2.Kh¸chhµngph¶icãkh¶n¨ng®−a ra nh÷ng quyÕt ®Þnh vÒ yªu cÇu mét c¸ch kÞp thêi B−íc 2: Víi mét dù ¸n chÊp thuËn ®−îc, ng−êi ph©n tÝch x©y dùng mét c¸ch biÓu diÔn v¾n t¾t cho yªu cÇu. Tr−íc khi cã thÓ b¾t ®Çu x©y dùng mét b¶n mÉu, ng−êi ph©n tÝch ph¶i biÓu diÔn miÒn th«ng tin vµ c¸c lÜnh vùc, hµnh vi vµ chøc n¨ng cña vÊn ®Ò råi x©y dùng mét c¸ch tiÕpcËnhîplýtíiviÖcph©nho¹ch.CãthÓøng dông c¸c nguyªn lý ph©n tÝch nÒn t¶ng (ph©ntÝchtop-down)vµc¸cph−¬ng ph¸p ph©n tÝch yªu cÇu. B−íc 3: Sau khi ®· duyÖt xÐt m« h×nh yªu cÇu, ph¶i t¹o ra mét ®Æc t¶ thiÕt kÕ v¾n t¾t cho b¶n mÉu ViÖc thiÕt kÕ ph¶i xuÊt hiÖn tr−íc khi b¾t ®Çu lµm b¶n mÉu. Tuy nhiªn thiÕt kÕ tËp trung chñ yÕu vµo c¸c vÊn ®Ò thiÕt kÕ d÷ liÖu vµ kiÕn tróc møc ®Ønh chø kh«ng tËp trung vµo thiÕt kÕ thñ tôc chi tiÕt. B−íc 4: PhÇn mÒm b¶n mÉu ®−îc t¹o ra, kiÓm thö vµ lµm mÞn. B¶nmÉunªn®−îc x©y dùng mét c¸ch nhanh chãng vµ víi mét chi phÝ nhá. Mét c¸ch lý t−ëng, b¶n mÉu nªn ®−îc l¾p r¸p tõ c¸c khèi chøc n¨ng (th− viÖn ) ®· cã. Cã thÓ dïng c¸c ng«n ng÷ bËc cao hay c¸c c«ng cô tù ®éng ®Ó x©y dùng b¶n mÉu. B−íc5:Kh¸chhµng®¸nhgi¸vµlµmmÞnyªucÇu B−íc nµy lµ cèt lâi cña c¸ch tiÕp cËn lµm b¶n mÉu. ChÝnh ë ®©y mµ kh¸ch hµng cã thÓ xem xÐt c¸ch biÓu diÔn ®−îc cµi ®Æt cho yªu cÇu phÇn mÒm, gîi ý nh÷ng thay ®æi lµm cho phÇn mÒm ®¸p øng tèt h¬n víi c¸c nhu cÇu thùc tÕ. B−íc 6: LÆp l¹i c¸c b−íc 4 vµ 5 cho tíi khi tÊt c¶ c¸c yªu cÇu ®· ®−îc h×nh thøc hãa ®Çy ®ñ hay cho tíi khi b¶n mÉu ®· tiÕn hãa thµnh mét phÇn mÒm hoµn thiÖn. 2.5.2 Lîi Ých vµ h¹n chÕ cña ph¸t triÓn b¶n mÉu Ph¸t triÓn b¶n mÉu ®em l¹i c¸c lîi Ých sau: 27
  34. 1. Sù hiÓu lÇm gi÷a nh÷ng ng−êi ph¸t triÓn phÇn mÒm vµ nh÷ng ng−êi sö dông phÇn mÒm cã thÓ ®−îc nhËn thÊy râ khi c¸c chøc n¨ng cña hÖ thèng ®−îc tr×nh diÔn. 2. Sù thiÕu hôt c¸c dÞch vô ng−êi dïng cã thÓ ®−îc ph¸t hiÖn. 3. Sù khã sö dông hoÆc sù nhÇm lÉn c¸c dÞch vô ng−êi dïng cã thÓ ®−îc thÊy râ vµ ®−îc söa l¹i. 4. §éi ngò ph¸t triÓn phÇn mÒm cã thÓ t×m ra ®ù¬c c¸c yªu cÇu kh«ng ®Çy ®ñ hoÆc kh«ngkiªn®Þnhkhihäph¸ttriÓnb¶nmÉu. 5. Mét hÖ thèng ho¹t ®éng ®−îc (mÆc dÇu lµ h¹n chÕ) lµ b»ng chøng thuyÕt minh cho tÝnh kh¶ thi vµ tÝnh h÷u Ých cña øng dông cho c¸c nhµ qu¶n lý. 6. B¶n mÉu ®ã ®−îc dïng lµm c¬ së cho viÖc viÕt ®Æc t¶ mét s¶n phÈm. MÆc dï môc tiªu chñ yÕu cña viÖc t¹o b¶n mÉu lµ ®Ó ph¸t triÓn, thÈm ®Þnh c¸c yªu cÇuphÇnmÒm,nãcòngcãc¸clîiÝchkh¸cnh−: 1. Dïng ®Ó huÊn luyÖn ng−êi sö dông ngay tõ tr−íc khi hÖ thèng ®−îc ph©n phèi. 2. Dïng trong qu¸ tr×nh thö nghiÖm hÖ thèng. §iÒu ®ã nghÜa lµ cïng c¸c tr−êng hîp thö nh− nhau võa dïng cho thö b¶n mÉu võa cho thö hÖ thèng. KÕt qu¶ kh¸c nhaucãnghÜalµcãsaisãt. T¹o b¶n mÉu lµ mét kü thuËt gi¶m bít rñi ro. Mét rñi ro lín trong viÖc ph¸t triÓn phÇn mÒm lµ c¸c sai sãt mµ ®Õn giai ®o¹n cuèi míi ph¸t hiÖn vµ viÖc chØnh söa vµo thêi ®iÓm ®ã lµ rÊt tèn kÐm. Kinh nghiÖm cho thÊy viÖc t¹o b¶n mÉu sÏ gi¶m bít sè c¸c vÊn ®Ò cña ®Æc t¶ yªu cÇu vµ gi¸ c¶ tæng céng cña viÖc ph¸t triÓn cã thÓ lµ thÊp h¬n nÕu ta ph¸t triÓn b¶n mÉu. H¹nchÕcñac¸chtiÕpcËnt¹ob¶nmÉulµ: 1. §Ó ®¬n gi¶n hãa viÖc t¹o b¶n mÉu ng−êitacãthÓbáquac¸cyªucÇuphøct¹p. Sù thËt h¼n lµ kh«ng thÓ t¹o b¶n mÉu mét vµi phÇn quan träng nhÊt cña hÖ thèng nh− c¸c ®Æc ®iÓm vÒ sù an toµn - nguy kÞch. 2. C¸c yªu cÇu phi chøc n¨ng nh− ®étincËy,®éantoµnhayhiÖun¨ngth−êng kh«ng ®−îc biÓu thÞ ®Çy ®ñ trong b¶n mÉu. 3. Do tÝnh ch−a hoµn thiÖn vÒ chøc n¨ng/hiÖu n¨ng, ng−êi dïng cã thÓ kh«ng dïng b¶nmÉuynh− c¸ch dïng mét hÖ thèng thùc ®ang ho¹t ®éng. Do ®ã, chÊt l−îng ®¸nh gi¸ cña kh¸ch hµng nhiÒu khi kh«ng cao. 2.6 §Þnh d¹ng ®Æc t¶ yªu cÇu KÕt qu¶ cña b−íc ph©n tÝch lµ t¹o ra b¶n ®Æc t¶ yªu cÇu phÇn mÒm (Software Requirement Specification - SRS). §Æc t¶ yªu cÇu ph¶i chØ râ ®−îc ph¹m vi cña s¶n phÈm, c¸c chøc 28
  35. n¨ng cÇn cã, ®èi t−îng ng−êi sö dông vµ c¸c rµng buéc khi vËn hµnh s¶n phÈm. Cã nhiÒu chuÈn kh¸c nhau trong x©y dùng tµi liÖu, d−íi ®©y lµ mét ®Þnh d¹ng RSR th«ng dông (theo chuÈn IEEE 830-1984). 1GiíithiÖu 1.1 Môc ®Ých Môc nµy giíi thiÖu môc ®Ých cña tµi liÖu yªu cÇu. Th−êng chØ ®¬n gi¶n lµ ®Þnh nghÜa “®©y lµ tµi liÖu yªu cÇu vÒ phÇn mÒm XYZ”. 1.2 Ph¹m vi Nªu pham vi ®Ò cËp cña tµi liÖu yªu cÇu. 1.3 §Þnh nghÜa §Þnh nghÜa c¸c kh¸i niÖm, c¸c tõ viÕt t¾t, c¸c chuÈn ®−îc sö dông trong tµi liÖu yªu cÇu. 1.4 Tµi liÖu tham kh¶o Nªu danh môc c¸c tµi liÖu tham kh¶o dïng ®Ó t¹o ra b¶n ®Æc t¶ yªu cÇu. 1.5 M« t¶ chung vÒ tµi liÖu M« t¶ kh¸i qu¸t cÊu tróc tµi liÖu, gåm cã c¸c ch−¬ng, môc, phôc lôc chÝnh nµo. 2 M« t¶ chung 2.1 Tæng quan vÒ s¶n phÈm M« t¶ kh¸i qu¸t vÒ s¶n phÈm. 2.2 Chøc n¨ng s¶n phÈm Kh¸i qu¸t vÒ chøc n¨ng s¶n phÈm. 2.3 §èi t−îng ng−êi dïng M« t¶ vÒ ®èi t−îng ng−êi dïng. 29
  36. 2.4 Rµng buéc tæng thÓ Kh¸i qu¸t vÒ c¸c rµng buéc cña phÇn mÒm: rµng buéc phÇn cøng, m«i tr−êng sö dông, yªu cÇu kÕt nèi víi c¸c hÖ thèng kh¸c 2.5Gi¶thiÕtvµsùlÖthuéc M« t¶ c¸c gi¶ thiÕt khi ¸p dông tµi liÖu: vÝ dô nh− tªnphÇncøng,phÇnmÒm,hÖ®iÒu hµnh cô thÓ. 3 Yªu cÇu chi tiÕt M« t¶ c¸c yªu cÇu 3.1 Yªu cÇu chøc n¨ng M« t¶ chi tiÕt vÒ c¸c yªu cÇu chøc n¨ng. 3.1.1YªucÇuchøcn¨ng1 3.1.1.1 Giíi thiÖu 3.1.1.2 D÷ liÖu vµo 3.1.1.3 Xö lý 3.1.1.4. KÕt qu¶ 3.1.2YªucÇuchøcn¨ng2 3.1.nYªucÇuchøcn¨ngn 3.2 Yªu cÇu giao diÖn ngoµi M« t¶ c¸c giao diÖn cña phÇn mÒm víi m«i tr−êng bªn ngoµi. 3.2.1 Giao diÖn ng−êi dïng 3.2.2GiaodiÖnphÇncøng 3.2.3GiaodiÖnphÇnmÒm 3.2.4 Giao diÖn truyÒn th«ng 30
  37. 3.3YªucÇuhiÖusuÊt M« t¶ vÒ hiÖu suÊt, vÝ dô nh− thêi gian ph¶n håi víi sù kiÖn, sè giao dÞch ®−îc thùc hiÖn/gi©y, 3.4 Rµng buéc thiÕt kÕ M« t¶ c¸c rµng buéc thiÕt kÕ, vÝ dô c¸c rµng buéc vÒ ng«n ng÷, vÒ c«ng nghÖ, vÒ c¬ së d÷ liÖu vµ vÒ chuÈn giao tiÕp. 3.5 Thuéc tÝnh M« t¶ c¸c thuéc tÝnh cña phÇn mÒm. 3.5.1 TÝnh b¶o mËt, an toµn vµ kh¶ n¨ng phôc håi Møc ®é b¶o mËt d÷ liÖu, c¸ch thøc truy cËp vµo hÖ thèng. §é an toµn cña hÖ thèng ®èi víi c¸c tr−êng hîp bÊt th−êng nh− mÊt ®iÖn Kh¶ n¨ng phôc håi cña hÖ thèng sau khi gÆp sù cè. 3.5.2TÝnhb¶otr× C¸c chøc n¨ng, giao diÖn ®ßi hái ph¶i dÔ söa ®æi (dÔ b¶o tr×). 3.6 C¸c yªu cÇu kh¸c C¸cyªucÇukh¸cliªnquan®Õns¶nphÈm. Tæng kÕt Ph©ntÝchvµ®ÞnhrâyªucÇulµb−íc kü thuËt ®Çu tiªn trong tiÕn tr×nh kü nghÖ phÇn mÒm. T¹i b−íc nµy c¸c ph¸t biÓu chung vÒ ph¹m vi phÇn mÒm ®−îc lµm mÞn thµnh mét b¶n ®Æc t¶ cô thÓ ®Ó trë thµnh nÒn t¶ng cho mäi ho¹t ®éng kü nghÖ phÇn mÒm sau ®ã. ViÖc ph©n tÝch ph¶i tËp trung vµo c¸c miÒn th«ng tin, chøc n¨ng vµ hµnh vi cña vÊn ®Ò.§ÓhiÓurâyªucÇu,ng−êi ta t¹o ra m« h×nh, ph©n ho¹ch vÊn ®Ò vµ t¹o ra nh÷ng biÓu diÔn m« t¶ cho b¶n chÊt cña yªu cÇu råi sau ®ã ®i vµo c¸c chi tiÕt. Trong nhiÒu tr−êng hîp, kh«ng thÓ nµo ®Æc t¶ ®−îc®Çy®ñmäivÊn®Òt¹igiai®o¹n ®Çu. ViÖc lµm b¶n mÉu th−êng gióp chØ ra c¸ch tiÕp cËn kh¸c ®Ó tõ ®ã cã thÓ lµm mÞn thªm yªu cÇu. §Ó tiÕn hµnh ®óng ®¾n viÖc lµm b¶n mÉu, cã thÓ cÇn tíi c¸c c«ng cô vµ kü thuËt ®Æc biÖt. KÕt qu¶ cña viÖc ph©n tÝch lµ t¹o ra b¶n ®Æc t¶ c¸c yªu cÇu phÇn mÒm. §Æc t¶ cÇn ®−îc xÐt duyÖt ®Ó ®¶m b¶o r»ng ng−êi ph¸t triÓn vµ kh¸ch hµng cã cïng nhËn biÕt vÒ hÖ thèng cÇn ph¸t triÓn. 31
  38. Ch−¬ng 3 ThiÕt kÕ phÇn mÒm 3.1 Kh¸i niÖm vÒ thiÕt kÕ phÇn mÒm 3.1.1 Kh¸i niÖm Cã thÓ ®Þnh nghÜa thiÕt kÕ lµ mét qu¸ tr×nh ¸p dông nhiÒu kü thuËt vµ c¸c nguyªn lý ®Ó t¹o ra m« h×nh cña mét thiÕt bÞ, mét tiÕn tr×nh hay mét hÖ thèng ®ñ chi tiÕt mµ theo ®ã cã thÓ chÕ t¹o ra s¶n phÈm vËt lý t−¬ng øng víi nã. B¶n chÊt thiÕt kÕ phÇn mÒm lµ mét qu¸ tr×nh chuyÓn hãa c¸c yªu cÇu phÇn mÒm thµnh mét biÓu diÔn thiÕt kÕ. Tõ nh÷ng m« t¶ quan niÖm vÒ toµn bé phÇn mÒm, viÖc lµm mÞn (chi tiÕt hãa) liªn tôc dÉn tíi mét biÓu diÔn thiÕt kÕ rÊt gÇn víi c¸ch biÓu diÔn cña ch−¬ng tr×nh nguån ®Ó cã thÓ ¸nh x¹ vµo mét ng«n ng÷ lËp tr×nh cô thÓ. Môc tiªu thiÕt kÕ lµ ®Ó t¹o ra mét m« h×nh biÓu diÔn cña mét thùc thÓ mµ sau nµy sÏ ®−îc x©y dùng. M« h×nh chung cña mét thiÕt kÕ phÇn mÒm lµ mét ®å thÞ cã h−íng, c¸c nót biÓu diÔn c¸c thùc thÓ cã trong thiÕt kÕ, c¸c liªn kÕt biÓu diÔn c¸c mçi quan hÖ gi÷a c¸c thùc thÓ ®ã. Ho¹t ®éng thiÕt kÕ lµ mét lo¹i ho¹t ®éng ®Æc biÖt: - Lµ mét qu¸ tr×nh s¸ng t¹o, ®ßi hái cã kinh nghiÖm vµ sù nhanh nh¹y vµ s¸ng t¹o -CÇnph¶i®−îc thùc hµnh vµ häc b»ng kinh nghiÖm, b»ng kh¶o s¸t c¸c hÖ ®ang tån t¹i, chØ häc b»ng s¸ch vë lµ kh«ng ®ñ. 3.1.2 TÇm quan träng TÇm quan träng cña thiÕt kÕ phÇn mÒm cã thÓ ®−îc ph¸t biÓu b»ng mét tõ “chÊt l−îng”. ThiÕtkÕlµn¬ichÊtl−îng phÇn mÒm ®−îc nu«i d−ìng trong qu¸ tr×nh ph¸t triÓn: cung cÊpc¸chbiÓudiÔnphÇnmÒmcãthÓ®−îc x¸c nhËn vÒ chÊt l−îng, lµ c¸ch duy nhÊt mµ chóng ta cã thÓ chuyÓn hãa mét c¸ch chÝnh x¸c c¸c yªu cÇu cña kh¸ch hµng thµnh s¶n phÈm hay hÖ thèng phÇn mÒm cuèi cïng. ThiÕt kÕ phÇn mÒm lµ c«ng cô giao tiÕp lµm c¬ së ®Ó cã thÓ m« t¶ mét c¸ch ®Çy 32
  39. m hnh thng tin m hnh thi’t k’ chc n®ng ki’n trÛc Thi’t k’ c u trÛc cc yu c«u d li÷u khc LÀp trnh thi’t k’ thuÀt ton m Æun ch¨ng trnh H×nh 3.1: Vai trß cña thiÕt kÕ phÇn mÒm trong qu¸ tr×nh kü nghÖ. ®ñ c¸c dÞch vô cña hÖ thèng, ®Ó qu¶n lý c¸c rñi ro vµ lùa chän gi¶i ph¸p thÝch hîp. ThiÕt kÕ phÇn mÒm phôc vô nh− mét nÒn t¶ng cho mäi b−íc kü nghÖ phÇn mÒm vµ b¶o tr×: - Kh«ng cã thiÕt kÕ cã nguy c¬ s¶n sinh mét hÖ thèng kh«ng æn ®Þnh - mét hÖ thèng sÏ thÊt b¹i. Mét hÖ thèng phÇn mÒm rÊt khã x¸c ®Þnh ®−îc chÊt l−îng chõng nµo ch−a ®Õn b−íc kiÓm thö. ThiÕt kÕ tèt lµ b−íc quan träng ®Çu tiªn ®Ó ®¶m b¶o chÊt l−îng phÇn mÒm. 3.1.3 Qu¸ tr×nh thiÕt kÕ ThiÕt kÕ phÇn mÒm lµ qu¸ tr×nh chuyÓn c¸c ®Æc t¶ yªu cÇu dÞch vô th«ng tin cña hÖ thèng thµnh ®Æc t¶ hÖ thèng phÇn mÒm. ThiÕt kÕ phÇn mÒm tr¶i qua mét sè giai ®o¹n chÝnh sau: 1. Nghiªn cøu ®Ó hiÓu ra vÊn ®Ò. Kh«ng hiÓu râ vÊn ®Ò th× kh«ng thÓ cã ®−îc thiÕt kÕ h÷u hiÖu. 2. Chän mét (hay mét sè) gi¶i ph¸p thiÕt kÕ vµ x¸c ®Þnh c¸c ®Æc ®iÓm th« cña nã. Chän gi¶i ph¸p phô thuéc vµo kinh nghiÖm cña ng−êi thiÕt kÕ, vµo c¸c cÊu kiÖn dïng l¹i ®−îc vµ vµo sù ®¬n gi¶n cña c¸c gi¶i ph¸p kÐo theo. NÕu c¸c nh©n tè kh¸c lµ t−¬ng tù th× nªn chän gi¶i ph¸p ®¬n gi¶n nhÊt. 3. M« t¶ trõu t−îng cho mçi néi dung trong gi¶i ph¸p. Tr−íc khi t¹o ra c¸c t− liÖu chÝnh thøc ng−êi thiÕt kÕ cÇn ph¶i x©y dùng mét m« t¶ ban ®Çu s¬ khai råi chi tiÕt hãa nã. C¸c sai sãt vµ khiÕm khuyÕt trong mçi møc thiÕt kÕ tr−íc ®ã ®−îc ph¸t hiÖn vµ ph¶i ®−îc chØnh söa tr−íc khi lËp t− liÖu thiÕt kÕ. 33
  40. KÕt qu¶ cña mçi ho¹t ®éng thiÕt kÕ lµ mét ®Æc t¶ thiÕt kÕ. §Æc t¶ nµy cã thÓ lµ mét ®Æct¶trõut−îng, h×nh thøc vµ ®−îc t¹o ra ®Ó lµm râ c¸c yªu cÇu, nã còng cã thÓ lµ mét ®Æc t¶ vÒ mét phÇn nµo ®ã cña hÖ thèng ph¶i ®−îc thùc hiÖn nh− thÕ nµo. Khi qu¸ tr×nh thiÕt kÕ tiÕn triÓn th× c¸c chi tiÕt ®−îc bæ sung vµo ®Æc t¶ ®ã. C¸c kÕt qu¶ cuèi cïnglµc¸c®Æct¶vÒc¸cthuËtto¸nvµc¸ccÊutrócd÷liÖu®−îc dïng lµm c¬ së cho viÖc thùc hiÖn hÖ thèng. C¸c ho¹t ®éng thiÕt kÕ chÝnh trong mét hÖ thèng phÇn mÒm lín: C¸c néi dung chÝnh cña thiÕt kÕ lµ: - ThiÕt kÕ kiÕn tróc: X¸c ®Þnh hÖ tæng thÓ phÇn mÒm bao gåm c¸c hÖ con vµ c¸c quan hÖ gi÷a chóng vµ ghi thµnh tµi liÖu -§Æct¶trõut−îng: c¸c ®Æc t¶ trõu t−îngchomçihÖconvÒc¸cdÞchvômµnã cung cÊp còng nh− c¸c rµng buéc chóng ph¶i tu©n thñ. - ThiÕt kÕ giao diÖn: giao diÖn cña tõng hÖ con víi c¸c hÖ con kh¸c ®−îc thiÕt kÕ vµ ghi thµnh tµi liÖu; ®Æc t¶ giao diÖn kh«ng ®−îc m¬ hå vµ cho phÐp sö dông hÖ con ®ã mµ kh«ng cÇn biÕt vÒ thiÕt kÕ néi t¹i cña nã. - ThiÕt kÕ c¸c thµnh phÇn: c¸c dÞch vô mµ mét hÖ con cung cÊp ®−îc ph©n chia cho c¸c thµnh phÇn hîp thµnh cña nã. - ThiÕt kÕ cÊu tróc d÷ liÖu: thiÕt kÕ chi tiÕt vµ ®Æc t¶ c¸c cÊu tróc d÷ liÖu (c¸c m« h×nh vÒ thÕ giíi thùc cÇn xö lý) ®−îc dïng trong viÖc thùc hiÖn hÖ thèng. - ThiÕt kÕ thuËt to¸n: c¸c thuËt to¸n ®−îc dïng cho c¸c dÞch vô ®−îc thiÕt kÕ chi tiÕt vµ ®−îc ®Æc t¶. Qu¸ tr×nh nµy ®−îc lÆp l¹i cho ®Õn khi c¸c thµnh phÇn hîp thµnh cña mçi hÖ con ®−îc x¸c ®Þnh ®Òu cã thÓ ¸nh x¹ trùc tiÕp vµo c¸c thµnh phÇn ng«n ng÷ lËp tr×nh, ch¼ng h¹n nh− c¸c gãi, c¸c thñ tôc vµ c¸c hµm. 3.1.4 C¬ së cña thiÕt kÕ PhÇn mÒm ®−îcchiathµnhc¸cthµnhphÇncãtªnriªngbiÖtvµx¸c®Þnh®−îc ®Þa chØ, gäi lµ c¸c m« ®un, ®−îc tÝch hîp ®Ó tháa m·n yªu cÇu cña vÊn ®Ò. Ng−êi ta nãi r»ng: tÝnh m«®un lµ thuéc tÝnh riªng cña phÇn mÒm cho phÐp mét ch−¬ng tr×nh trë nªn qu¶n lý ®−îc theo c¸ch th«ng minh. Ng−êi ®äc kh«ng thÓ nµo hiÓu thÊu phÇn mÒm nguyªn khèi (nh− mét ch−¬ng tr×nh lín chØ gåm mét m«®un). §iÒu nµy dÉn ®Õn kÕt luËn “chia ®Ó trÞ” sÏ dÔ gi¶i quyÕt mét vÊn ®Ò phøc t¹p h¬n khi chia nã thµnh nh÷ng phÇn qu¶n lý ®−îc. Víi cïng mét tËp hîp c¸c yªu cÇu, nhiÒu m«®un h¬n cã nghÜa lµ kÝch cì tõng m«®un nhá; ®é phøc t¹p gi¶m vµ chi phÝ cho ph¸t triÓn m«®un gi¶m. Nh−ng khi sè c¸c m« ®un t¨ng lªn th× nç lùc liªn kÕt chóng b»ng viÖc lµm giao diÖn cho c¸c m«®un còng t¨ng lªn. §Æc tr−ng nµy dÉn ®Õn ®−êngcongtængchiphÝ(nçlùc)nh− trong h×nh 3.2. Chóng ta nªn m« ®un hãa nh−ng cÇn ph¶i duy tr× chi phÝ trong vïng l©n cËn cña chi phÝ tèi thiÓu. M«®un hãa cßn ch−a ®ñ hay qu¸ møc ®Òu nªn tr¸nh. Mét gîi ý cho 34
  41. kÝch cì cña c¸c m«®un c¬ së lµ mçi m«®un ®¶m nhËn mét chøc n¨ng c¬ b¶n. tÊng chi ph› chi ph› chi ph› lin k’t chi ph› m Æun sË m Æun H×nh 3.2: TÝnh m«®un vµ chi phÝ phÇn mÒm. 3.1.5 M« t¶ thiÕt kÕ Mét b¶n thiÕt kÕ phÇn mÒm lµ mét m« h×nh m« t¶ mét ®èi t−îng cña thÕ giíi thùc cã nhiÒu thµnh phÇn vµ c¸c mèi quan hÖ gi÷a chóng víi nhau. ViÖc m« t¶ thiÕt kÕ cÇn ®¶m b¶o thùc hiÖn ®−îc c¸c yªu cÇu: - lµm c¬ së cho viÖc triÓn khai ch−¬ng tr×nh -lµmph−¬ng tiÖn giao tiÕp gi÷a c¸c nhãm thiÕt kÕ c¸c hÖ con - cung cÊp ®ñ th«ng tin cho nh÷ng ng−êi b¶o tr× hÖ thèng ThiÕt kÕ th−êng ®−îc m« t¶ ë hai møc: thiÕt kÕ møc cao (high level design) vµ thiÕt kÕ chi tiÕt (low level design). ThiÕt kÕ møc cao hay thiÕt kÕ kiÕn tróc chØ ra: -m«h×nhtængthÓcñahÖthèng -c¸chthøchÖthèng®−îc ph©n r· thµnh c¸c m«®un - mèi quan hÖ (gäi nhau) gi÷a c¸c m«®un - c¸ch thøc trao ®æi th«ng tin gi÷a c¸c m«®un (giao diÖn, c¸c d÷ liÖu dïng chung, c¸c th«ng tin tr¹ng th¸i) Tuy nhiªn thiÕt kÕ møc cao kh«ng chØ ra ®−îcthøtùthùchiÖn,sèlÇnthùchiÖncña m«®un, còng nh− c¸c tr¹ng th¸i vµ ho¹t ®éng bªn trong cña mçi m«®un. Néi dung cña c¸c m«®un ®−îc thÓ hiÖn ë møc thiÕt kÕ chi tiÕt. C¸c cÊu tróc c¬ së cña thiÕt kÕ chi tiÕt hay cßn gäi lµ thiÕt kÕ thuËt to¸n lµ: - cÊu tróc tuÇn tù - cÊu tróc rÏ nh¸nh - cÊu tróc lÆp MäithuËtto¸n®ÒucãthÓm«t¶dùatrªn3cÊutróctrªn.Cãbalo¹ih×nhm«t¶ th−êng ®−îc sö dông trong thiÕt kÕ: - D¹ng v¨n b¶n phi h×nh thøc: M« t¶ b»ng ng«n ng÷ tù nhiªn c¸c th«ng tin kh«ng 35
  42. thÓh×nhthøchãa®−îc nh− c¸c th«ng tin phi chøc n¨ng. Bªn c¹nh c¸c c¸ch m« t¶ kh¸c, m« t¶ v¨n b¶n th−êng ®−îc bæ sung ®Ó lµm cho thiÕt kÕ ®−îc®Çy®ñvµdÔhiÓuh¬n. - C¸c biÓu ®å: C¸c biÓu ®å ®−îc dïng ®Ó thÓ hiÖn c¸c mèi quan hÖ gi÷a c¸c thµnh phÇnlËplªnhÖthèngvµlµm«h×nhm«t¶thÕgiíithùc.ViÖcm«t¶®åthÞcñac¸c thiÕtkÕlµrÊtcãlîiv×tÝnhtrùcquanvµcho mét bøc tranh tæng thÓ vÒ hÖ thèng. Trong thêi gian gÇn ®©y, ng−êi ta ®· x©y dùng ®−îc mét ng«n ng÷ ®å thÞ dµnh riªng cho c¸c thiÕt kÕ phÇn mÒm víi tªn gäi: ng«n ng÷ m« h×nh hãa thèng nhÊt (Unified Modeling Model - UML). T¹i møc thiÕt kÕ chi tiÕt, cã mét sè c¸c d¹ng biÓu ®å hay ®−îc sö dông lµ flow chart, JSP, Nassi-Shneiderman diagrams. - Gi¶ m· (pseudo code): HiÖn nay, gi¶ m· lµ c«ng cô ®−îc −a chuéng ®Ó m« t¶ thiÕt kÕ ë møc chi tiÕt. C¸c ng«n ng÷ nµy thuËn tiÖn cho viÖc m« t¶ chÝnh x¸c thiÕt kÕ, tuy nhiªn l¹i thiÕu tÝnh trùc quan. D−íi ®©y lµ mét vÝ dô sö dông gi¶ m·: Procedure Write Name if sex = male write "Mr." else write "Ms." endif write name end Procedure Nãichungth×c¶balo¹ibiÓudiÔntrªn®©y®Òu®−îc sö dông trong thiÕt kÕ hÖ thèng. ThiÕt kÕ kiÕn tróc th−êng ®−îc m« t¶ b»ng ®å thÞ (structure chart)vµ ®−îc bæ sung v¨n b¶n phi h×nh thøc, thiÕt kÕ d÷ liÖu l«gic th−êng ®−îc m« t¶ b»ng c¸c b¶ng, c¸c thiÕt kÕ giao diÖn, thiÕt kÕ cÊu tróc d÷ liÖu chi tiÕt, thiÕt kÕ thuËt to¸n th−êng ®−îc m« t¶ b»ng pseudo code. 3.1.6 ChÊt l−îng thiÕt kÕ Kh«ng cã c¸ch nµo hay ®Ó x¸c ®Þnh ®−îc thÕ nµo lµ thiÕt kÕ tèt. Tiªu chuÈn dÔ b¶o tr× lµ tiªu chuÈn tèt cho ng−êi dïng. Mét thiÕt kÕ dÔ b¶o tr× cã thÓ thÝch nghi víi viÖc c¶i biªn c¸c chøc n¨ng vµ viÖc thªm c¸c chøc n¨ng míi. Mét thiÕt kÕ nh− thÕ ph¶i dÔ hiÓu vµ viÖc söa ®æi chØ cã hiÖu øng côc bé. C¸c thµnh phÇn thiÕt kÕ ph¶i lµ kÕt dÝnh (cohesive) theo nghÜa lµ tÊt c¶ c¸c bé phËn trong thµnh phÇn ph¶i cã mét quan hÖ logic chÆt chÏ, c¸c thµnh phÇn ghÐp nèi (coupling) víi nhau lµ láng lÎo. GhÐp nèi cµng láng lÎo th× cµng dÔ thÝch nghi, nghÜa lµ cµng dÔ söa ®æi ®Ó phï hîp víi hoµn c¶nh míi. §Ó xem mét thiÕt kÕ cã lµ tèt hay kh«ng, ng−êi ta tiÕn hµnh thiÕt lËp mét sè ®é ®o chÊt l−îng thiÕt kÕ: 36
  43. 1) Sù kÕt dÝnh (Cohesion) Sù kÕt dÝnh cña mét m«®un lµ ®é ®o vÒ tÝnh khíp l¹i víi nhau cña c¸c phÇn trong m«®un ®ã. NÕu mét m«®un chØ thùc hiÖn mét chøc n¨ng logic hoÆc lµ mét thùc thÓ logic, tøc lµ tÊt c¶ c¸c bé phËn cña m«®un ®ã ®Òu tham gia vµo viÖc thùc hiÖn mét c«ng viÖc th× ®é kÕt dÝnh lµ cao. NÕu mét hoÆc nhiÒu bé phËn kh«ng tham gia trùc tiÕp vµo viÖc chøc n¨ng logic ®ã th× møc ®é kÕt dÝnh cña nã lµ thÊp. ThiÕt kÕ lµ tèt khi ®é kÕt dÝnh cao. Khi ®ã chóng ta sÏ dÔ dµng hiÓu ®−îc tõng m«®un vµ viÖc söa ch÷a mét m«®unsÏkh«ng(Ýt)¶nhh−ëng tíi c¸c m«®un kh¸c. Constantine vµ Yourdon ®Þnh ra 7 møc kÕt dÝnh theo thø tù t¨ng dÇn sau ®©y: a. KÕt dÝnh gom gãp: c¸c c«ng viÖc kh«ng liªn quan víi nhau, song l¹i bÞ bã vµo mét m«®un. b.KÕtdÝnhlogic:c¸cthµnhphÇncïngthùchiÖnc¸cchøcn¨ngt−¬ngtùvÒlogic ch¼ng h¹n nh− vµo/ra, xö lý lçi, ®−îc ®Æt vµo cïng mét m« ®un. c. KÕt dÝnh thêi ®iÓm: tÊt c¶ c¸c thµnh phÇn cïng ho¹t hãa mét lóc, ch¼ng h¹n nh− c¸c thao t¸c khëi t¹o ®−îc bã l¹i víi nhau. d. KÕt dÝnh thñ tôc: c¸c phÇn tö trong m«®un ®−îc ghÐp l¹i trong mét d·y ®iÒu khiÓn. e. KÕt dÝnh truyÒn th«ng: tÊt c¶ c¸c phÇn tö cña m«®un cïng thao t¸c trªn mét d÷ liÖu vµo vµ ®−a ra cïng mét d÷ liÖu ra. f.KÕtdÝnhtuÇntù:trongmétm«®un,®ÇuracñaphÇntönµylµ®ÇuvµocñaphÇn tö kh¸c. g. KÕt dÝnh chøc n¨ng: Mçi phÇn cña m«®un ®Òu lµ cÇn thiÕt ®Ó thi hµnh cïng mét chøc n¨ng nµo ®ã. C¸c líp kÕt dÝnh nµy kh«ng ®−îc ®Þnh nghÜa chÆt chÏ vµ còng kh«ng ph¶i lu«n lu«n x¸c ®Þnh ®−îc. Mét ®èi t−îng kÕt dÝnh nÕu nã thÓ hiÖn nh− mét thùc thÓ ®¬n: tÊt c¶ c¸c phÐp to¸n trªn thùc thÓ ®ã ®Òu n»m trong thùc thÓ ®ã. VËy cã thÓ x¸c ®Þnh mét líp kÕt dÝnh n÷a lµ: h. KÕt dÝnh ®èi t−îng: mçi phÐp to¸n ®Òu liªn quan ®Õn thay ®æi, kiÓm tra vµ sö dông thuéc tÝnh cña mét ®èi t−îng, lµ c¬ së cung cÊp c¸c dÞch vô cña ®èi t−îng. 2) Sù ghÐp nèi (Coupling) GhÐp nèi lµ ®é ®o sù nèi ghÐp víi nhau gi÷a c¸c ®¬n vÞ (m«®un) cña hÖ thèng. HÖ thèng cã nèi ghÐp cao th× c¸c m«®un phô thuéc lÉn nhau lín. HÖ thèng nèi ghÐp láng lÎo th× c¸c m«®un lµ ®éc lËp hoÆc lµ t−¬ng ®èi ®éc lËp víi nhau vµ chóng ta sÏ dÔ b¶o tr× nã. C¸c m« ®un ®−îc ghÐp nèi chÆt chÏ nÕu chóng dïng c¸c biÕn chung vµ nÕu chóng trao ®æi c¸c th«ng tin ®iÒu khiÓn (ghÐp nèi chung nhau vµ ghÐp nèi ®iÒu khiÓn). GhÐp nèi láng lÎo ®¹t ®−îc khi b¶o ®¶m r»ng c¸c th«ng tin côc bé ®−îc che dÊu trong c¸c m«®un vµ c¸c m«®un trao ®æi th«ng tin th«ng qua danh s¸ch tham sè (giao diÖn) x¸c 37
  44. ®Þnh. Cã thÓ chia ghÐp nèi thµnh c¸c møc tõ chÆt chÏ ®Õn láng lÎo nh− sau: a. GhÐp nèi néi dung: hai hay nhiÒu m«®un dïng lÉn d÷ liÖu cña nhau, ®©y lµ møc xÊu nhÊt, th−êng xÈy ra ®èi víi c¸c ng«n ng÷ møc thÊp dïng c¸c d÷ liÖu toµn côc hay l¹mdônglÖnhGOTO. b. GhÐp nèi chung: mét sè m«®un dïng c¸c biÕn chung, nÕu xÈy ra lçi thao t¸c d÷ liÖu, sÏ khã x¸c ®Þnh ®−îc lçi ®ã do m«®un nµo g©y ra. c. GhÐp nèi ®iÒu khiÓn: mét m«®un truyÒn c¸c th«ng tin ®iÒu khiÓn ®Ó ®iÒu khiÓn ho¹t ®éng cña mét m«®un kh¸c. d. GhÐp nèi d− thõa: m«®un nhËn th«ng tin thõa kh«ng liªn quan trùc tiÕp ®Õn chøc n¨ng cña nã, ®iÒu nµy sÏ lµm gi¶m kh¶ n¨ng thÝch nghi cña m«®un ®ã. e. GhÐp nèi d÷ liÖu: C¸c m«®un trao ®æi th«ng tin th«ng qua tham sè vµ gi¸ trÞ tr¶ l¹i. f. GhÐp nèi kh«ng cã trao ®æi th«ng tin: m«®un thùc hiÖn mét chøc n¨ng ®éc lËp vµ hoµn toµn kh«ng nhËn tham sè vµ kh«ng cã gi¸ trÞ tr¶ l¹i. ¦u viÖt cña thiÕt kÕ h−íng ®èi t−îng lµ do b¶n chÊt che dÊu th«ng tin cña ®èi t−îng dÉn tíi viÖc t¹o ra c¸c hÖ ghÐp nèi láng lÎo. ViÖc thõa kÕ trong hÖ thèng h−íng ®èi t−îng l¹i dÉn tíi mét d¹ng kh¸c cña ghÐp nèi, ghÐp nèi gi÷a ®èi t−îng møc cao vµ ®èi t−îng kÕ thõa nã. 3) Sù hiÓu ®−îc (Understandability) Sù hiÓu ®−îc cña thiÕt kÕ liªn quan tíi mét sè ®Æc tr−ng sau ®©y: a. TÝnh kÕt dÝnh: cã thÓ hiÓu ®−îc thµnh phÇn ®ã mµ kh«ng cÇn tham kh¶o tíi mét thµnh phÇn nµo kh¸c hay kh«ng? b. §Æt tªn: ph¶i ch¨ng lµ mäi tªn ®−îc dïng trong thµnh phÇn ®ã ®Òu cã nghÜa? Tªn cã nghÜa lµ nh÷ng tªn ph¶n ¸nh tªn cña thùc thÓ trong thÕ giíi thùc ®−îc m« h×nh bëi thµnh phÇn ®ã. c. So¹n t− liÖu: Thµnh phÇn cã ®−îc so¹n th¶o t− liÖu sao cho ¸nh x¹ gi÷a c¸c thùc thÓ trong thÕ giíi thùc vµ thµnh phÇn ®ã lµ râ rµng. d. §é phøc t¹p: ®é phøc t¹p cña c¸c thuËt to¸n ®−îc dïng ®Ó thùc hiÖn thµnh phÇn ®ã nh− thÕ nµo? §é phøc t¹p cao ¸m chØ nhiÒu quan hÖ gi÷a c¸c thµnh phÇn kh¸c nhau cña thµnh phÇnthiÕtkÕ®ãvµmétcÊutróclogicphøct¹pmµnãdÝnhlÝu®Õn®és©ulångnhau cña cÊu tróc if-then-elsse. C¸c thµnh phÇn phøc t¹p lµ khã hiÓu, v× thÕ ng−êi thiÕt kÕ nªn lµm cho thiÕt kÕ thµnh phÇn cµng ®¬n gi¶n cµng tèt. §a sè c«ng viÖc vÒ ®o chÊt l−îng thiÕt kÕ ®−îctËptrungvµocèg¾ng®o®éphøc t¹pcñathµnhphÇnvµtõ®ãthu®−îc mét vµi ®é ®o vÒ sù dÔ hiÓu cña thµnh phÇn. §é phøc t¹p ph¶n ¸nh ®é dÔ hiÓu, nh−ng còng cã mét sè nh©n tè kh¸c ¶nh h−ëng ®Õn ®é dÔ hiÓu, ch¼ng h¹n nh− tæ chøc d÷ liÖu vµ kiÓu c¸ch m« t¶ thiÕt kÕ. C¸c sè ®o ®é phøc t¹pcãthÓchØcungcÊpmétchØsècho®édÔhiÓucñamétthµnhphÇn. 38
  45. 4) Sù thÝch nghi ®−îc (Adaptability) Mét thiÕt kÕ dÔ b¶o tr× th× nã ph¶i s½n sµng thÝch nghi ®−îc,nghÜalµc¸cthµnhphÇn cña chóng nªn ®−îc ghÐp nèi láng lÎo. Mét thµnh phÇn cã thÓ lµ ghÐp nèi láng lÎo theo nghÜa lµ chØ hîp t¸c víi c¸c thµnh phÇn kh¸c th«ng qua viÖc truyÒn c¸c th«ng b¸o. Sù thÝch nghi ®−îc cßn cã nghÜa lµ thiÕt kÕ ph¶i ®−îc so¹n th¶o t− liÖu tèt, dÔ hiÓu vµ nhÊt qu¸n. §Ó cã ®é thÝch nghi th× hÖ thèng cßn cÇn ph¶i ph¶i tù chøa. Muèn lµ tù chøa mét c¸ch hoµn toµn th× mét hÖ thèng kh«ng nªn dïng c¸c thµnh phÇn kh¸c ®−îc x¸c ®Þnh ngo¹i lai. Tuy nhiªn, ®iÒu ®ã l¹i m©u thuÉn víi kinh nghiÖm nãi r»ng c¸c thµnh phÇn hiÖn cã nªn lµ dïng l¹i ®−îc.VËylµcÇncãmétc©nb»nggi÷atÝnh−u viÖt cña sù dïng l¹i c¸c thµnh phÇn vµ sù mÊt m¸t tÝnh thÝch nghi ®−îc cña hÖ thèng. Mét trong nh÷ng −uviÖtchÝnhcñakÕthõatrongthiÕtkÕh−íng ®èi t−îng lµ c¸c thµnh phÇn nµy cã thÓ s½n sµng thÝch nghi ®−îc. C¬ cÊu thÝch nghi ®−îc nµy kh«ng dùa trªn viÖc c¶i biªn thµnh phÇn ®· cã mµ dùa trªn viÖc t¹o ra mét thµnh phÇn míi thõa kÕ c¸c thuéc tÝnh vµ c¸c chøc n¨ng cña thµnh phÇn ®ã. Chóng ta chØ cÇn thªm c¸c thuéc tÝnh vµ chøc n¨ng cÇn thiÕt cho thµnh phÇn míi. C¸c thµnh phÇn kh¸c dùa trªn thµnhphÇnc¬b¶n®ãsÏkh«ngbÞ¶nhh−ëng g×. 3.2 ThiÕt kÕ h−íng chøc n¨ng 3.2.1 C¸ch tiÕp cËn h−íng chøc n¨ng ThiÕt kÕ h−íng chøc n¨ng lµ mét c¸ch tiÕp cËn thiÕt kÕ phÇn mÒm trong ®ã b¶n thiÕt kÕ ®−îc ph©n gi¶i thµnh mét bé c¸c ®¬n thÓ t¸c ®éng lÉn nhau, mµ mçi ®¬n thÓ cã mét chøc n¨ng ®−îc x¸c ®Þnh râ rµng. C¸c chøc n¨ng cã c¸c tr¹ng th¸i côc bé nh−ng chóng chia sÎ víi nhau tr¹ng th¸i hÖ thèng, tr¹ng th¸i nµy lµ tËp trung vµ mäi chøc n¨ng ®Òu cã thÓ truy cËp ®−îc. NhiÒu tæ chøc ®· ph¸t triÓn c¸c chuÈn vµ c¸c ph−¬ngph¸pdùatrªnsùph©ngi¶i chøc n¨ng. NhiÒu ph−¬ng ph¸p thiÕt kÕ kÕt hîp víi c«ng cô CASE ®Òu lµ h−íng chøc n¨ng. V« khèi c¸c hÖ thèng ®· ®−îcph¸ttriÓnb»ngc¸chsödôngph−¬ng ph¸p tiÕp cËn h−íngchøcn¨ng.C¸chÖthèng®ãsÏ®−îc b¶o tr× cho mét t−¬ng lai xa x«i. Bëi vËy thiÕt kÕ h−íng chøc n¨ng vÉn sÏ cßn ®−îctiÕptôcsödôngréngr·i. Trong thiÕt kÕ h−íng chøc n¨ng, ng−êi ta dïng c¸c biÓu ®å luång d÷ liÖu (m« t¶ viÖc xö lý d÷ liÖu), c¸c l−îc ®å cÊu tróc (nã chØ ra cÊu tróc cña phÇn mÒm), vµ c¸c m« t¶ thiÕt kÕ chi tiÕt. ThiÕt kÕ h−íng chøc n¨ng g¾n víi c¸c chi tiÕt cña mét thuËt to¸n cña chøc n¨ng ®ã nh−ng c¸c th«ng tin tr¹ng th¸i hÖ thèng lµ kh«ng bÞ che dÊu. ViÖc thay ®æi mét chøc n¨ng vµ c¸ch nã sö dông tr¹ng th¸i cña hÖ thèng cã thÓ g©y ra nh÷ng t−¬ng t¸c bÊt ngê ®èi víi c¸c chøc n¨ng kh¸c. C¸ch tiÕp cËn chøc n¨ng ®Ó thiÕt kÕ lµ tèt nhÊt khi mµ khèi l−îng th«ng tin tr¹ng th¸i hÖ thèng ®−îc lµm nhá nhÊt vµ th«ng tin dïng chung nhau lµ râ rµng. 39
  46. 3.2.2 BiÓu ®å luång d÷ liÖu BiÓu ®å luång d÷ liÖu chØ ra c¸ch thøc biÕn ®æi d÷ liÖu vµo thµnh d÷ liÖu ra th«ng qua mét d·y c¸c phÐp biÕn ®æi. B−íc thø nhÊt cña thiÕt kÕ h−íngchøcn¨nglµph¸ttriÓn mét biÓu ®å luång d÷ liÖu hÖ thèng. BiÓu ®å nµy kh«ng nhÊt thiÕt bao gåm c¸c th«ng tin®iÒukhiÓnnh−ng nªn lËp t− liÖu c¸c phÐp biÕn ®æi d÷ liÖu. BiÓu ®å luång d÷ liÖu lµ mét phÇn hîp nhÊt cña mét sè c¸c ph−¬ng ph¸p thiÕt kÕ vµc¸cc«ngcôCASEth−êng trî gióp cho viÖc t¹o ra biÓu ®å luång d÷ liÖu. 3.2.3 L−îc ®å cÊu tróc L−îc ®å cÊu tróc chØ ra cÊu tróc c¸c thµnh phÇn theo thø bËc cña hÖ thèng. Nã chØ ra r»ngc¸cphÇntöcñamétbiÓu®åluångd÷liÖucãthÓ®−îc thùc hiÖn nh− thÕ nµo víi t− c¸ch lµ mét thø bËc cña c¸c ®¬n vÞ ch−¬ng tr×nh. L−îc ®å cÊu tróc cã thÓ ®−îc dïng nh− lµ mét m« t¶ ch−¬ng tr×nh nh×n thÊy ®−îc víi c¸c th«ng tin x¸c ®Þnh c¸c sù lùa chän vµ c¸c vßng lÆp. L−îc ®å cÊu tróc ®−îc dïng ®Ó tr×nh bµy mét tæ chøc tÜnh cña thiÕt kÕ. 3.2.4 C¸c tõ ®iÓn d÷ liÖu Tõ ®iÓn d÷ liÖu võa cã Ých cho viÖc b¶o tr× hÖ thèng võa cã Ých trong qu¸ tr×nh thiÕt kÕ. Víi mçi kh¸i niÖm thiÕt kÕ, cÇn cã mét tõ khãa m« t¶ øng víi tõ khãa (entry) cña tõ ®iÓn d÷ liÖu cung cÊp th«ng tin vÒ kh¸i niÖm ®ã (kiÓu, chøc n¨ng cña d÷ liÖu ). §«i khi ng−êi ta gäi c¸i nµy lµ mét m« t¶ ng¾n cña chøc n¨ng thµnh phÇn. C¸c tõ ®iÓn d÷ liÖu dïng ®Ó nèi c¸c m« t¶ thiÕt kÕ kiÓu biÓu ®å vµ c¸c m« t¶ thiÕt kÕkiÓuv¨nb¶n.Métvµibéc«ngcôCASE cung cÊp mét phÐp nèi tù ®éng biÓu ®å luångd÷liÖuvµtõ®iÓnd÷liÖu. 3.3 ThiÕt kÕ h−íng ®èi t−îng 3.3.1 C¸ch tiÕp cËn h−íng ®èi t−îng ThiÕt kÕ h−íng ®èi t−îng dùa trªn chiÕn l−îc che dÊu th«ng tin cÊu tróc vµo bªn trong c¸c thµnh phÇn. C¸i ®ã ngÇm hiÓu r»ng viÖc kÕt hîp ®iÒu khiÓn logic vµ cÊu tróc d÷ liÖu ®−îc thùc hiÖn trong thiÕt kÕ cµng chËm cµng tèt. Liªn l¹c th«ng qua c¸c th«ng tin tr¹ng th¸i dïng chung (c¸c biÕn tæng thÓ) lµ Ýt nhÊt, nhê vËy kh¶ n¨ng hiÓu ®−îc n©ng lªn. ThiÕt kÕ lµ t−¬ng®èidÔthay®æiv×sùthay®æicÊutrócmétthµnhphÇncãthÓ kh«ng cÇn quan t©m tíi c¸c hiÖu øng phô trªn c¸c thµnh phÇn kh¸c. ViÖc che dÊu th«ng tin trong thiÕt kÕ h−íng ®èi t−îng lµ dùa trªn sù nh×n hÖ phÇn mÒm nh− lµ mét bé c¸c ®èi t−îng t−¬ngt¸cvíinhauchøkh«ng ph¶i lµ bé c¸c chøc n¨ng nh− c¸ch tiÕp cËn chøc n¨ng. C¸c ®èi t−îng cã mét tr¹ng th¸i riªng ®−îc che dÊu 40
  47. vµ c¸c phÐp to¸n trªn tr¹ng th¸i ®ã. ThiÕt kÕ biÓu thÞ c¸c dÞch vô ®−îc yªu cÇu cïng víi nh÷ng hç trî mµ c¸c ®èi t−îngcãt−¬ng t¸c víi nã cung cÊp. 3.3.2 Ba ®Æc tr−ng cña thiÕt kÕ h−íng ®èi t−îng ThiÕt kÕ h−íng ®èi t−îng bao gåm c¸c ®Æc tr−ng chÝnh sau: 1. Kh«ng cã vïng d÷ liÖu dïng chung. C¸c ®èi t−îngliªnl¹cvíinhaub»ngc¸ch trao ®æi th«ng b¸o. 2. C¸c ®èi t−îng lµ c¸c thùc thÓ ®éc lËp, dÔ thay ®æi v× r»ng tÊt c¶ c¸c tr¹ng th¸i vµc¸cth«ngtinbiÓudiÔnchضnhh−ëng trong ph¹m vi chÝnh ®èi t−îng®ãth«i.C¸c thay ®æi vÒ biÓu diÔn th«ng tin cã thÓ ®−îc thùc hiÖn kh«ng cÇn sù tham kh¶o tíi c¸c ®èi t−îng kh¸c. 3. C¸c ®èi t−îng cã thÓ ph©n t¸n vµ cã thÓ ho¹t ®éng tuÇn tù hoÆc song song. §©y lµ mét trong nh÷ng lý do khiÕn cho thiÕt kÕ h−íng ®èi t−îng ®−îc sö dông réng r·i trong c¸c hÖ thèng nhóng. 3.3.3 C¬ së cña thiÕt kÕ h−íng ®èi t−îng C¬ së cña thiÕt kÕ h−íng ®èi t−înglµc¸clíp.Líplµméttrõut−îng m« t¶ cho mét nhãm sù vËt. §èi t−îng cña mét líp lµ mét thùc thÓ (cô thÓ hãa) cña líp ®ã. ThiÕt kÕ cña mét líp bao gåm: - cÊu tróc d÷ liÖu (thuéc tÝnh) - hµm, thñ tôc (chøc n¨ng) - giao diÖn (cung cÊp kh¶ n¨ng trao ®æi d÷ liÖu ®èi víi c¸c líp kh¸c, vÒ b¶n chÊt lµ c¸c chøc n¨ng cña ®èi t−îng) ViÖc cµi ®Æt c¸c giao diÖn lµ mét yÕu tè quan träng ®Ó ®¶m bao che dÊu cÊu tróc d÷ liÖu. Tøc lµ thiÕt kÕ néi t¹i cña ®èi t−îng ®éc lËp víi giao diÖn do ®ã chóng ta cã thÓ söa ®æi thiÕt kÕ mµ kh«ng sî ¶nh h−ëng tíi c¸c ®èi t−îng kh¸c. C¸c ®èi t−îng trao ®æi víi nhau b»ng c¸ch truyÒn c¸c th«ng b¸o. Tøc lµ mét ®èi t−îng yªu cÇu mét ®èi t−îng kh¸c thùc hiÖn mét chøc n¨ng nµo ®ã. Th«ng b¸o bao gåm: tªn ®èi t−îng, tªn ph−¬ngthøc,vµc¸cthamsè. Vßng ®êi cña mét ®èi t−îng khi hÖ thèng ho¹t ®éng nh− sau: - khëi t¹o: hÖ thèng t¹o ra ®èi t−îngb»ngc¸chx¸clËpvïngd÷liÖu®ångthêitù ®éng thùc hiÖn c¸c chøc n¨ng liªn quan ®Õn khëi t¹o ®èi t−îng. - ho¹t ®éng: ®èi t−îng nhËn c¸c th«ng b¸o vµ thùc hiÖn c¸c chøc n¨ng ®−îc yªu cÇu. - ph¸ hñy: hÖ thèng gi¶i phãng vïng nhí ®· ®−îc cÊp ph¸t sau khi thùc hiÖn tù ®éng c¸c thao t¸c cÇn thiÕt ®Ó hñy ®èi t−îng. Nhê cã chøc n¨ng khëi t¹o vµ ph¸ hñy ®−îc gäi tù ®éng chóng ta cã thÓ tù ®éng hãa ®−îcmétsèc«ngviÖcvµtr¸nh®−îc nhiÒu sai sãt trong lËp tr×nh nh− quªn khëi t¹o d÷ liÖu, quªn cÊp ph¸t hay quªn gi¶i phãng vïng nhí ®éng. 41
  48. Sù kÕ thõa KÕ thõa lµ mét kh¸i niÖm quan träng trong thiÕt kÕ h−íng ®èi t−îng. Mét líp cã thÓ ®−îc ®Þnh nghÜa dùa trªn sù kÕ thõa mét hoÆc nhiÒu líp ®· ®−îc ®Þnh nghÜa. KÕ thõa 뮩ybaogåm -kÕthõacÊutrócd÷liÖu -kÕthõachøcn¨ng Kh¶ n¨ng kÕ thõa gióp cho rót gän ®−îc ch−¬ngtr×nhvµn©ngcaotÝnht¸isödông. Mét chiÕn l−îc chung lµ tr−íc tiªn t¹o ra c¸c líp trõu t−îng (®Ó cã thÓ dïng chung) vµ ®èi víi c¸c bµi to¸n cô thÓ t¹o ra c¸c líp kÕ thõa b»ng c¸ch thªm c¸c th«ng tin ®Æc thï. 3.3.4 C¸c b−íc thiÕt kÕ ThiÕt kÕ h−íng ®èi t−îng bao gåm c¸c b−íc chÝnh sau: 1. X¸c ®Þnh líp ®èi t−îng. 2. X¸c ®Þnh thuéc tÝnh cho líp: c¸c biÕn cña líp 3. X¸c ®Þnh hµnh vi (chøc n¨ng): c¸c hµm 4. X¸c ®Þnh t−¬ng t¸c gi÷a c¸c líp ®èi t−îng: giao diÖn (th«ng b¸o). 5. ¸pdôngtÝnhkÕthõa:x©ydùngc¸clíptrõut−îng cã c¸c thuéc tÝnh chung, ®©y lµ mét kh©u ®Æc tr−ng cña thiÕt kÕ h−íng ®èi t−îng. VÝ dô, gi¶ sö cÇn x©y dùng c¸c líp h×nh trßn, elÝp vµ ®a gi¸c. Cã thÓ thÊy elip vµ h×nh trßn cã mét sè c¸c thuéc tÝnh chung nh− täa ®é t©m, chóng ta cã thÓ x©y dùng líp h×nh nãn chøa c¸c thuéc tÝnh chung nµy. Gi÷a h×nh nãn vµ ®a gi¸c l¹i cã thÓ t×m ra c¸c thuéc tÝnh chung nh− mÇu nÒn, mÇu biªn , vµ cã thÓ x©y dùng líp trõu t−îng h×nh h×nh häc chøa c¸c thuéc tÝnh nµy. Ph−¬ng ph¸p x¸c ®Þnh ®èi t−îng X¸c ®Þnh ®èi t−îng lµ mét trong nh−ng c«ng ®o¹n thiÕt kÕ quan träng, phô thuéc nhiÒu vµo kinh nghiÖm vµ bµi to¸n cô thÓ. Cã mét sè ph−¬ng ph¸p ®−îc ®Ò xuÊt, mét trong c¸c ph−¬ng ph¸p nµy lµ ph©n tÝch tõ vùng cña “c©u yªu cÇu”. Cô thÓ lµ danh tõ trong c©u yªu cÇu sÏ ®−îc coi lµ ®èi t−îngvµ®éngtõsÏ®−îc coi lµ chøc n¨ng. VÝ dô: Víi yªu cÇu PhÇn mÒm Email cung cÊp cho user kh¶ n¨ng göi th−,®äcth− vµ so¹n th¶o th− ®iÖn tö.,chóngtacãthÓs¬bét¹orac¸c®èit−îng phÇn mÒm, user, email vµ c¸c chøc n¨ng göi, nhËn, so¹n th¶o. 3.3.5 ¦u nh−îc ®iÓm cña thiÕt kÕ h−íng ®èi t−îng ThiÕt kÕ h−íng ®èi t−îngcãc¸c−u ®iÓm chÝnh sau: • DÔ b¶o tr× v× c¸c ®èi t−îng lµ ®éc lËp. C¸c ®èi t−îngcãthÓhiÓuvµc¶ibiªnnh− lµ mét thùc thÓ ®éc lËp. Thay ®æi trong thùc hiÖn mét ®èi t−îng hoÆc thªm c¸c 42
  49. dÞch vô sÏ kh«ng lµm ¶nh h−ëng tíi c¸c ®èi t−îng hÖ thèng kh¸c. • C¸c ®èi t−îng lµ c¸c thµnh phÇn dïng l¹i ®−îc thÝch hîp do tÝnh ®éc lËp cña chóng vµ kh¶ n¨ng kÕ thõa cao. • Cã mét vµi líp hÖ thèng thÓ hiÖn ph¶n ¸nh quan hÖ râ rµng gi÷a c¸c thùc thÓ cã thùc (ch¼ng h¹n nh− c¸c thµnh phÇn phÇn cøng) víi c¸c ®èi t−îng®iÒukhiÓnnã trong hÖ thèng. §iÒu nµy ®¹t ®−îc tÝnh dÔ hiÓu cña thiÕt kÕ. Nh−îc ®iÓm chÝnh cña thiÕt kÕ h−íng ®èi t−îng lµ sù khã nhËn ra c¸c ®èi t−îng cña mét hÖ thèng. C¸ch nh×n tù nhiªn ®èi víi nhiÒu hÖ thèng lµ c¸ch nh×n chøc n¨ng. 3.3.6 Quan hÖ gi÷a thiÕt kÕ vµ lËp tr×nh h−íng ®èi t−îng ThiÕt kÕ h−íng ®èi t−îng lµ mét chiÕn l−îc thiÕt kÕ, kh«ng phô thuéc vµo ng«n ng÷ thùc hiÖn cô thÓ nµo. C¸c ng«n ng÷ lËp tr×nh h−íng ®èi t−îngcãc¸ckh¶n¨ngbaogãi ®èi t−îng,vµkÕthõalµmchoviÖcthùchiÖnthiÕtkÕh−íng ®èi t−îngantoµnh¬nvµ ®¬n gi¶n h¬n. Mét thiÕt kÕ h−íng ®èi t−îngcòngcãthÓ®−îc thùc hiÖn trong mét ng«n ng÷ thñ tôc kiÓu nh− PASCAL hoÆc C (kh«ng cã c¸c ®Æc ®iÓm bao gãi nh− vËy). Ada kh«ng ph¶i lµ ng«n ng÷ lËp tr×nh h−íng ®èi t−îng v× nã kh«ng trî gióp sù thõa kÕ cña c¸c líp, nh−ng l¹i cã thÓ thùc hiÖn c¸c ®èi t−îng trong Ada b»ng c¸ch sö dông c¸c gãi hoÆc c¸c nhiÖmvô(tasks),do®ãAdacòng®−îc dïng ®Ó m« t¶ c¸c thiÕt kÕ h−íng ®èi t−îng. Tuy nhiªn, còng ph¶i nhÊn m¹nh r»ng chóng ta cã thÓ m« t¶ thiÕt kÕ h−íng ®èi t−îng trªn c¸c ng«n ng÷truyÒnthèngnh−ng chóng ta kh«ng thÓ kiÓm tra ®−îc sù tu©n thñ t− t−ëng h−íng ®èi t−îng trªn c¸c ng«n ng÷ nµy, nghÜa lµ ng−êi ph¸t triÓn vÉn cã thÓ truy cËp ®Õn cÊu tróc d÷ liÖu vËt lý cña ®èi t−îng vµ viÖc ®ã lµm v« nghÜa kh¸i niÖm che dÊu th«ng tin. ViÖc chÊp nhËn thiÕt kÕ h−íng ®èi t−îng nh− lµ mét chiÕn l−îc h÷u hiÖu dÉn ®Õn sù ph¸t triÓn réng r·i c¸c ph−¬ng ph¸p thiÕt kÕ h−íng ®èi t−îng vµ c¸c ng«n ng÷ lËp tr×nh h−íng ®èi t−îng. 3.3.7 Quan hÖ gi÷a thiÕt kÕ h−íng ®èi t−îng vµ h−íng chøc n¨ng Cã nhiÒu quan niÖm kh¸c nhau vÒ quan hÖ gi÷a thiÕt kÕ h−íng ®èi t−îng vµ thiÕt kÕ h−íng chøc n¨ng. Cã ng−êi cho r»ng, hai chiÕn l−îc thiÕt kÕ nµy hç trî lÉn nhau, cô thÓ lµ -DFDd−aram«h×nhvÒc¸cthuéctÝnhvµchøcn¨ng - luång giao t¸c ®−arah−íng dÉn vÒ t−¬ng t¸c gi÷a c¸c ®èi t−îng(th«ngb¸o) -M«h×nhE-R®−arah−íng dÉn x©y dùng ®èi t−îng Thªm n÷a, thiÕt kÕ néi t¹i cña líp ®èi t−îng cã nhiÒu ®iÓm t−¬ng®ångvíithiÕtkÕ h−íng chøc n¨ng. 43
  50. Mét quan ®iÓm kh¸c cho r»ng thiÕt kÕ h−íng ®èi t−îng vµ thiÕt kÕ h−íng chøc n¨ng lµ hai c¸ch tiÕp cËn hoµn toµn kh¸c nhau, c¸c kh¸i niÖm nh− che dÊu th«ng tin, kÕ thõa lµ ®Æc tr−ng quan träng vµ b¶n chÊt cña thiÕt kÕ h−íng ®èi t−îng vµ nÕu kh«ng døt bá c¸ch nh×n thiÕt kÕ h−íng chøc n¨ng th× kh«ng thÓ khai th¸c hiÖu qu¶ c¸c ®Æc tr−ng nµy. 3.4 ThiÕt kÕ giao diÖn ng−êi sö dông ThiÕt kÕ hÖ thèng m¸y tÝnh bao gåm mét phæ rÊt réng c¸c c«ng viÖc tõ thiÕt kÕ phÇn cøng cho ®Õn thiÕt kÕ giao diÖn ng−êi sö dông. Giao diÖn cña hÖ thèng th−êng lµ tiªu chuÈn so s¸nh ®Ó ph¸n xÐt vÒ hÖ thèng. Giao diÖn ®−îc thiÕt kÕ kÐm sÏ g©y ra nh÷ng nhÇm lÉn cho ng−êi sö dông, khiÕn cho hä kh«ng sö dông ®−îc c¸c chøc n¨ng cÇn thiÕt vµ trong tr−êng hîp xÊu cã thÓ thùc hiÖn c¸c thao t¸c nguy hiÓm nh− ph¸ hñy th«ng tin cÇn thiÕt. TÇm quan träng cña giao diÖn cßn ®−îc xem xÐt trªn hai yÕu tè: - khÝa c¹nh nghiÖp vô: ng−êi dïng th«ng qua giao diÖn ®Ó t−¬ng t¸c víi hÖ thèng, ®©ylµkh©unghiÖpvôthñc«ngduynhÊtdo®ãnÕu®−îc thiÕt kÕ tèt sÏ n©ng cao tèc ®é xö lý c«ng viÖc vµ dÉn tíi hiÖu qu¶ kinh tÕ cao. - khÝa c¹nh th−¬ng m¹i: ®èi víi c¸c s¶n phÈm b¸n hµng lo¹t, giao diÖn ®−îc thiÕt kÕ tèt (dÔ sö dông, ®Ñp) sÏ g©y Ên t−îng víi kh¸ch hµng vµ lµ yÕu tè chÝnh khi kh¸ch hµng chän mua s¶n phÈm. Ngoµi c¸c yÕu tè hiÖu qu¶ c«ng viÖc, ®Ñp, dÔ häc dÔ sö dông, mét thiÕt kÕ giao diÖn hiÖn ®¹i nªn cã tÝnh ®éc lËp cao víi khèi ch−¬ng tr×nh xö lý d÷ liÖu. §èi víi nhiÒu hÖ thèng, giao diÖn lµ bé phËn cã tÇm quan träng chñ chèt vµ cã yªu cÇu söa ®æi th−êng xuyªn. Do ®ã, ®Ó tiÖn cho viÖc söa ®æi, giao diÖn nªn ®−îc thiÕt kÕ cã tÝnh m«®un hãa cao vµ nªn cã ®é ®éc lËp tèi ®a víi khèi ch−¬ng tr×nh xö lý d÷ liÖu. §iÒu nµy còng dÉn ®Õn kh¶ n¨ng chóng ta cã thÓ x©y dùng nhiÒu giao diÖn kh¸c nhau cho c¸c ®èi t−îng sö dông kh¸c nhau hay ch¹y trªn c¸c hÖ thèng kh¸c nhau. Cã hai dßng giao diÖn chÝnh lµ: - giao diÖn dßng lÖnh: lµ lo¹i giao diÖn ®¬n gi¶n nhÊt, th−êng ®−îc thiÕt kÕ g¾n chÆt víi ch−¬ngtr×nhvµcãtÝnhdichuyÓncao(t−¬ng ®−¬ng víi ch−¬ng tr×nh). Giao diÖn dßng lÖnh phï hîp víi c¸c øng dông thuÇn tóy xö lý d÷ liÖu, nhÊt lµ ®èi víi c¸c ch−¬ng tr×nh mµ ®Çu ra lµ ®Çu vµo cña ch−¬ngtr×nhkh¸c.GiaodiÖndßnglÖnhgän nhÑ, dÔ x©y dùng nh−ng th−êng khã häc, khã sö dông vµ chØ phï hîp víi ng−êi dïng chuyªn nghiÖp trong c¸c øng dông ®Æc thï. - giao diÖn ®å häa: sö dông c¸c cöa sæ, menu, icon cho phÐp ng−êi dïng cã thÓ truy cËp song song ®Õn nhiÒu th«ng tin kh¸c nhau; ng−êi dïng th−êng t−¬ng t¸c b»ng c¸ch phèi hîp c¶ bµn phÝm vµ con chuét; giao diÖn ®å häa dÔ häc, dÔ sö dông vµ trë nªn rÊt th«ng dông vµ cã ®é chuÈn hãa cao. Nh×n trªn khÝa c¹nh ®éc lËp víi khèi ch−¬ngtr×nhxölý,cãmétsèc¸chthøcx©y dùng giao diÖn kh¸c nhau: - giao diÖn ®å häa (GUI) truyÒn thèng: lµ giao diÖn ®å häa ®−îc thiÕt kÕ cã ®é liªn 44
  51. kÕt cao víi ch−¬ng tr×nh (®−îc x©y dùng cïng ng«n ng÷, cïng bé c«ng cô ), hÇu hÕt c¸c ch−¬ngtr×nhtrªnm¸ytÝnhc¸nh©nsödônglo¹igiaodiÖnnµy. - X protocol: giao diÖn ®å häa sö dông giao thøc X protocol, phæ biÕn trªn c¸c m¸y Unix/Linux. Lo¹i giao diÖn nµy cã −u diÓm lµ cã thÓ ho¹t ®éng ®éc lËp víi khèi ch−¬ng tr×nh cßn l¹i, tøc lµ ta cã thÓ ch¹y giao diÖn trªn mét m¸y tÝnh trong khi ®ã phÇn xö lý bªn trong l¹i ho¹t ®éng trªn mét m¸y kh¸c. §¸ng tiÕc lµ ph−¬ng thøc nµy vÉn ch−a phæ biÕn trªn c¸c m¸y tÝnh c¸ nh©n (ch¹y hÖ ®iÒu hµnh MS Windows). - client/server: mét c¸ch tiÕp cËn ®Ó h−íng tíi tÝnh ®éc lËp vµ kh¶ chuyÓn cña giao diÖnlµx©ydùnggiaodiÖnnh− lµ mét ch−¬ng tr×nh client, t−¬ng t¸c víi khèi ch−¬ng tr×nhxölý(server)th«ngquac¸cgiaothøc trao ®æi th«ng tin trªn m¹ng (TCP/IP). - web based: mét trong c¸c c¸ch thøc x©y dùng giao diÖn phæ biÕn hiÖn nay lµ dùa trªnnÒnweb,södôngc¸ctr×nhduyÖtweb®Ótraodæith«ngtinvíiserver.Tuycãmét sè nh−îc ®iÓm vÒ an toµn th«ng tin vµ tèc ®é nh−ng víi tÝnh ®éc lËp hoµn toµn víi phÇn xö lý, ®é chuÈn hãa cao vµ kh¶ n¨ng s½n cã trªn hÇu hÕt c¸c thiÕt bÞ nèi m¹ng, ph−¬ng thøc nµy ®ang ®−îc øng dông réng r·i. ThiÕt kÕ giao diÖn kh¸c víi thiÕt kÕ c¸c chøc n¨ng kh¸c cña phÇn mÒm ë ®iÓm h−íng tíi ng−êi sö dông, cÇn ng−êi sö dông ®¸nh gi¸. C¸c c«ng ®o¹n thiÕt kÕ kh¸c nh− thiÕt kÕ d÷ liÖu, thiÕt kÕ thuËt to¸n che dÊuho¹t®éngküthuËtchitiÕtkháikh¸ch hµng. Ng−îc l¹i, kh¸ch hµng (ng−êi dïng tiÒm Èn) nªn tham gia vµo qu¸ tr×nh thiÕt kÕ giao diÖn. Kinh nghiÖm vµ kh¶ n¨ng cña hä cÇn ph¶i ®−îc tÝnh ®Õn khi thiÕt kÕ giao diÖn. 3.4.1 Mét sè vÊn ®Ò thiÕt kÕ TrongthiÕtkÕgiaodiÖn,cÇnchóýtíimétsèvÊn®Òsau: 1. Thêi gian ph¶n håi Chóng ta cÇn quan t©m tíi hai lo¹i thêi gian lµ • Thêi gian ®¸p øng trung b×nh: lµ thêi gian trung b×nh mµ hÖ thèng ph¶n håi ®èi víi mét yªu cÇu cña ng−êi dïng. Thêi gian ®Ó sinh ra “kÕt qu¶ thùc sù” cña yªu cÇu sÏ phô thuéc vµo b¶n chÊt yªu cÇu, thuËt to¸n, tèc ®é cña m¸y tÝnh, tuy nhiªn chóng ta cÇn quan t©m khÝa c¹nh t©m lý lµ nÕu ng−êi dïng ®îi qu¸ l©u mµ kh«ng nhËn ®−îc th«ng tin g× th× hä sÏ nghÜ lµ cã vÊn ®Ò vµ cã thÓ sÏ tiÕn hµnh c¸c thao t¸c ngoµi mong ®îi nh− lÆp l¹i thao t¸c hay dõng hÖ thèng. • §ébiÕnthiªncñathêigian:®ébiÕnthiªncñathêigiancònglµ®¹il−îng cÇn quan t©m. NÕu ®é biÕn thiªn lín, vÝ dô mét thao t¸c th−êng ®−îc ®¸p øng trong 1gi©ymµcãtr−êng hîp ph¶i mÊt 5 gi©y míi hoµn thµnh th× còng cã thÓ lµm cho ng−êi dïng ®−arac¸cthaot¸csai. 45
  52. 2. C¸c tiÖn Ých MétgiaodiÖntètcÇncãc¸ctiÖnÝch®Ótrîgiópng−êi sö dông. Cã c¸c lo¹i tiÖn Ých sau • TÝch hîp: lµ tiÖn Ých ®−îc tÝch hîp vµo giao diÖn nh− nót Help cung cÊp c¸c thuyÕt minh vÒ thao t¸c. • Phô thªm: lµ c¸c tiÖn Ých phô thªm nh− c¸c tµi liÖu trùc tuyÕn. • Macro: mét sè ch−¬ng tr×nh cßn cho phÐp ng−êi dïng tù ®éng hãa mét sè thao t¸c b»ng c¸c lÖnh kiÓu macro. 3. Th«ng b¸o C¸c th«ng b¸o do hÖ thèng ®−aracÇn • Cã nghÜa: mäi th«ng b¸o cÇncãnghÜa®èivíing−êi dïng. • Ng¾n gän: c¸c th«ng b¸o cÇn ng¾n gän ®i vµo b¶n chÊt vÊn ®Ò, ®Æc biÖt lµ ®èi víi kiÓu giao diÖn dßng lÖnh. • Cã tÝnh x©y dùng: th«ng b¸o nªn cã tÝnh x©y dùng nh− ®−a ra c¸c nguyªn nh©n vµ c¸c h−íng kh¾c phôc. 3.4.2 Mét sè h−íng dÉn thiÕt kÕ D−íi ®©y lµ mét sè yÕu tè mµ giao diÖn tèt nªn cã: • H−íng ng−êi dïng: ®èi t−îng ng−êi dïng ph¶i râ rµng, giao diÖn nªn ®−îc thiÕt kÕ cã tÝnh ®Õn n¨ng lùc, thãi quen cña lo¹i ®èi t−îng ®ã. • Cã kh¶ n¨ng tïy biÕn cao: giao diÖn nªn cã kh¶ n¨ng tïy biÕn cao ®Ó phôc vô cho c¸c c¸ nh©n cã c¸ch sö dông kh¸c nhau, c¸c m«i tr−êng ho¹t ®éng kh¸c nhau. C¸c phÇn mÒm trªn hÖ UNIX víi giao diÖn theo chuÈn X protocol th−êng ®−îc thiÕt kÕ cã ®é tïy biÕn rÊt cao. • NhÊt qu¸n: c¸c biÓu t−îng, th«ng b¸o, c¸ch thøc nhËp d÷ liÖu ph¶i nhÊt qu¸n vµ nªn tu©n theo c¸c chuÈn th«ng th−êng. • An toµn: nªn cã chÕ ®é x¸c nhËn l¹i ®èi víi c¸c thao t¸c nguy hiÓm (nh− xãa d÷ liÖu) vµ nªn cã kh¶ n¨ng phôc håi tr¹ng th¸i cò (undo). • DÔ häc, dÔ sö dông: giao diÖn lu«n cÇn ®−îc thiÕt kÕ h−íng tíi tÝnh dÔ häc, dÔ sö dông, tøc lµ kh«ng ®ßi hái ng−êi dïng ph¶i cã c¸c n¨ng lùc ®Æc biÖt. VÝ dô nh− kh«ng cÇn nhí nhiÒu thao t¸c, kh«ng ®ßi hái ph¶i thao t¸c nhanh, c¸c th«ng tin trªn mµn h×nh dÔ ®äc Mét c¸ch tèt nhÊt ®Ó x©y dùng giao diÖn dÔ häc dÔ sö dông lµ tu©n theo c¸c chuÈn giao diÖn th«ng dông. 46