Nhập môn kỹ nghệ phần mềm - Chương 4
lượt xem 57
download
lập trình hiệu quả IV.1.Các đặc tr-ng ngôn ngữ lập trình IV.1.1.Đặc tr-ng tâm lí IV.1.2.Mô hình cú pháp/ngữ nghĩa IV.1.3.H-ớng quan điểm kỹ nghệ IV.1.4.Việc chọn ngôn ngữ IV.1.5.Ngôn ngữ lập trình và kỹ nghệ phần mềm IV.2.Nền tảng của ngôn ngữ lập trình IV.2.1.Kiểu dữ liệu và định kiểu dữ liệu IV.2.2 .Ch-ơng trình con IV.2.3.Cấu trúc điều khiển IV.2.4.Cách tiếp cận h-ớng đối t-ợng IV.2.5.Các lớp ngôn ngữ IV.2.6.Các công cụ lập trình IV.3.Phong cách lập trình IV.3.1.Tài liệu ch-ơng trình IV.3.2.Khai báo dữ liệu IV.3.3.Xây dựng câu lệnh IV.3.4.Vào/ra IV.4.Tính hiệu quả IV.4.1.Kỹ thuật lập trình...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Nhập môn kỹ nghệ phần mềm - Chương 4
- http://www.ebook.edu.vn Ch−¬ng IV lËp tr×nh hiÖu qu¶ IV.1.C¸c ®Æc tr−ng ng«n ng÷ lËp tr×nh IV.1.1.§Æc tr−ng t©m lÝ IV.1.2.M« h×nh có ph¸p/ng÷ nghÜa IV.1.3.H−íng quan ®iÓm kü nghÖ IV.1.4.ViÖc chän ng«n ng÷ IV.1.5.Ng«n ng÷ lËp tr×nh vµ kü nghÖ phÇn mÒm IV.2.NÒn t¶ng cña ng«n ng÷ lËp tr×nh IV.2.1.KiÓu d÷ liÖu vµ ®Þnh kiÓu d÷ liÖu IV.2.2 .Ch−¬ng tr×nh con IV.2.3.CÊu tróc ®iÒu khiÓn IV.2.4.C¸ch tiÕp cËn h−íng ®èi t−îng IV.2.5.C¸c líp ng«n ng÷ IV.2.6.C¸c c«ng cô lËp tr×nh IV.3.Phong c¸ch lËp tr×nh IV.3.1.Tµi liÖu ch−¬ng tr×nh IV.3.2.Khai b¸o d÷ liÖu IV.3.3.X©y dùng c©u lÖnh IV.3.4.Vµo/ra IV.4.TÝnh hiÖu qu¶ IV.4.1.Kü thuËt lËp tr×nh h−íng hiÖu qu¶ IV.4.2.§é tin cËy cña phÇn mÒm IV.4.3.TÝnh di chuyÓn ®−îc cña hÖ øng dông IV.4.4.Mét vµi h−íng dÉn lËp tr×nh h−íng hiÖu qu¶ IV.5.ThÈm ®Þnh vμ x¸c minh IV.5.1.§¹i c−¬ng vÒ viÖc thÈm ®Þnh vµ x¸c minh IV.4.2.S¬ l−îc vÒ tiÕn tr×nh thö nghiÖm Ch−¬ng IV - 89 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn Ch−¬ng IV lËp tr×nh hiÖu qu¶ IV.1.C¸c ®Æc tr−ng ng«n ng÷ lËp tr×nh Ng«n ng÷ lËp tr×nh lµ ph−¬ng tiÖn ®Ó liªn l¹c gi÷a con ng−êi vµ m¸y tÝnh. TiÕn tr×nh lËp tr×nh - sù liªn l¹c th«ng qua ng«n ng÷ lËp tr×nh - lµ mét ho¹t ®éng con ng−êi. LËp tr×nh lµ b−íc cèt lâi trong tiÕn tr×nh kÜ nghÖ phÇn mÒm. IV.1.1.§Æc tr−ng t©m lÝ Trong cuèn s¸ch T©m lÝ phÇn mÒm,Ben Shneiderman ®· viÕt vÒ vai trß cña nhµ t©m lÝ phÇn mÒm: “tËp trung vµo mèi quan t©m cña con ng−êi nh− tÝnh dÔ dïng, ®¬n gi¶n khi häc, n©ng cao ®é tin cËy, gi¶m tÇn suÊt lçi vµ t¨ng sù tho¶ m·n víi ng−êi dïng, trong khi kh«ng quªn vÒ tÝnh hiÖu qu¶ cña m¸y, kh¶ n¨ng phÇn mÒm vµ sù rµng buéc phÇn cøng”. Mét nhµ t©m lÝ häc phÇn mÒm kh¸c, Gerald Weinberg gîi ý r»ng chóng ta cã thÓ më réng chuyÖn ngô ng«n “Ng−êi thî may thiªn tµi” thµnh c©u chuyÖn vÒ ng−êi thiÕt kÕ thiªn tµi. Ng−êi thiÕt kÕ ng«n ng÷ lËp tr×nh th−êng bãp c¸ch tiÕp cËn tíi vÊn ®Ò sao cho c¸ch tiÕp cËn sÏ khíp víi nh÷ng rµng buéc do ng«n ng÷ lËp tr×nh riªng ¸p ®Æt. V× nh©n tè con ng−êi cã tÇm quan trong chñ chèt trong thiÕt kÕ lËp tr×nh nªn c¸c ®Æc tr−ng t©m lý cña ng«n ng÷ cã t¸c ®éng m¹nh mÏ lªn sù thµnh c«ng cña thiÕt kÕ ®Ó dÞch vµ cµi ®Æt. Mét sè ®Æc tr−ng cña t©m lý xuÊt hiÖn nh− kÕt qu¶ cña thiÕt kÕ ng«n ng÷ lËp tr×nh. MÆc dÇu nh÷ng ®Æc tr−ng nµy kh«ng ®o ®−îc theo bÊt cø c¸ch thøc ®Þnh l−îng nµo, chóng ta thõa nhËn biÓu hiÖn cña chóng trong mäi ng«n ng÷ lËp tr×nh. TÝnh ®ång ®Òu: chØ ra møc ®é theo ®ã ng«n ng÷ kÝ ph¸p nhÊt qu¸n . TÝnh m¬ hå: ng«n ng÷ lËp tr×nh ®−îc ng−êi lËp tr×nh c¶m nhËn. Tr×nh biªn dÞch bao giê còng diÔn gi¶i mét c©u lÖnh theo mét c¸ch, nh−ng ®éc gi¶ con ng−êi cã thÓ hiÓu c©u lÖnh ®ã theo c¸ch kh¸c. T¹i ®©y cã sù m¬ hå t©m lý. ViÖc thiÕu tÝnh ®ång ®Òu vµ sù xuÊt hiÖn sù m¬ hå t©m lý th−êng ®i kÌm nhau. NÕu ng«n ng÷ lËp tr×nh ®Ó lé ra nh÷ng khÝa c¹nh tiªu cùc cña c¸c ®Æc tr−ng nµy th× ch−¬ng tr×nh gèc sÏ khã ®äc vµ viÖc dÞch tõ thiÕt kÕ ra dÔ sinh lçi nhiÒu h¬n. TÝnh gän gµng: chØ dÉn vÒ khèi l−îng th«ng tin h−íng ch−¬ng tr×nh mµ trÝ nhí con ng−êi ph¶i ghi nhí. Trong c¸c thuéc tÝnh ng«n ng÷ ®o tÝnh gän gµng cã: • Møc ®é ng«n ng÷ hç trî cho c¸c kÕt cÊu cã cÊu tróc vµ “ gi¶i quyÕt viÖc khã “ theo l«gic . • Lo¹i tõ kho¸ vµ c¸ch viÕt t¾t cã thÓ ®−îc dïng • Sù phong phó cña c¸c kiÓu d÷ liÖu vµ ®Æc tr−ng mÆc ®Þnh • Sè c¸c phÐp to¸n logic vµ sè häc • Sè c¸c hµm cã s½n Apl lµ mét ng«n ng÷ lËp tr×nh gän gµng ngo¹i lÖ (thµnh khã ®äc vµ khã hiÓu). C¸c ®Æc tr−ng cña ký øc con ng−êi cã mét t¸c ®éng m¹nh lªn c¸ch ta dïng ng«n ng÷. KÝ øc con ng−êi vµ viÖc nhËn d¹ng con ng−êi vµ viÖc nhËn d¹ng con ng−êi cã thÓ ®−îc chia thµnh c¸c lÜnh vùc toµn th¸i vµ tuÇn tù. KÝ øc toµn th¸i cho phÐp chóng ta nhí vµ nhËn l¹i mäi thø nh− mét tæng thÓ. Ch¼ng h¹n ta nhËn ra khu«n mÆt ng−êi ngay tøc th×; chóng ta kh«ng tÝnh to¸n cã ý thøc vÒ tõng phÇn riªng biÖt cña khu«n mÆt tr−íc khi nhËn d¹ng. KÝ øc tuÇn tù cung cÊp mét ph−¬ng tiÖn ®Ó nhí l¹i phÇn tö tiÕp trong mét d·y (nh− dßng tiÕp theo trong bµi h¸t, khi ®−îc cho nh÷ng dßng tr−íc ®ã). Mçi ®Æc tr−ng nµy ®Òu cã ¶nh h−ëng tíi ®Æc tr−ng ng«n ng÷ lËp tr×nh vÉn ®−îc gäi lµ tÝnh côc bé vµ Ch−¬ng IV - 90 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn tÝnh tuyÕn tÝnh. TÝnh côc bé lµ ®Æc tr−ng toµn th¸i cña ng«n ng÷ lËp tr×nh.TÝnh côc bé ®−îc lµm næi bËt khi c¸c c©u lÖnh cã thÓ ®−îc tæ hîp thµnh c¸c khèi, khi c¸c kÕt cÊu cã cÊu tróc cã thÓ ®−îc cµi ®Æt trùc tiÕp, vµ khi thiÕt kÕ vµ ch−¬ng tr×nh gèc ®Òu mang tÝnh m« ®un vµ cè kÕt cao ®é. Mét ®Æc tr−ng cu¶ ng«n ng÷ hç trî hay khuyÕn khÝch cho xö lÝ biÖt lÖ (nh− xö lý ®iÒu kiÖn ON trong PL/1 hay ERR= trong b¶n më réng cña FOTRAN) ®Òu vi ph¹m vµo tÝnh côc bé nµy. TÝnh tuyÕn tÝnh lµ mét ®Æc tr−ng t©m lý cã liªn quan chÆt chÏ víi kh¸i niÖm b¶o tr× cña lÜnh vùc chøc n¨ng. Tøc lµ, nhËn biÕt con ng−êi ®−îc thuËn lîi khi gÆp mét d·y tuyÕn tÝnh c¸c thao t¸c l«gic. Nh÷ng nh¸nh nh¶y xa (c¸c chu tr×nh lín) vi ph¹m tÝnh tuyÕn tÝnh cña xö lý. Mét lÇn n÷a, viÖc cµi ®Æt th«ng tin trùc tiÕp cho c¸c kÕt cÊu cã cÊu tróc trî gióp cho tÝnh tuyÕn tÝnh cña ng«n ng÷ lËp tr×nh. Kh¶ n¨ng cña chóng ta häc mét ng«n ng÷ míi bÞ ¶nh h−ëng bëi truyÒn thèng. C¸c kÕt cÊu lµ t−¬ng tù nhau, h×nh d¹ng th× t−¬ng thÝch vµ c¶m gi¸c vÒ “®Þnh d¹ng” ng«n ng÷ lËp tr×nh ®−îc b¶o toµn. TruyÒn thèng còng ¶nh h−ëng tíi møc ®é ®æi míi trong thiÕt kÕ cña ng«n ng÷ lËp tr×nh míi. MÆc dÇu ng«n ng÷ lËp tr×nh míi th−êng ®−îc tiÕn ho¸ kh«ng ngõng. Ch¼ng h¹n, PASCALkh¸ gÇn víi ALGOL. Tuy nhiªn, mét c¶i tiÕn chñ yÕu trong ng«n ng÷ PASCAL lµ viÖc cµi ®Æt kiÓu d÷ liÖu trõu t−îng, mét d¹ng kh«ng tån t¹i trong c¸c ng«n ng÷ tr−íc ®ã cã g¾n víi PASCALtheo truyÒn thèng. Ada, mét ng«n ng÷ ®· tr−ëng thµnh tõ truyÒn thèngALGOL-PASCAL, më réng c¶ hai ng«n ng÷ nµy víi nhiÒu cÊu tróc vµ kiÓu ®æi míi . C¸c ®Æc tr−ng t©m lý cña ng«n ng÷ lËp tr×nh cã ý nghÜa quan träng tíi kh¶ n¨ng cña chóng ta trong viÖc häc, ¸p dông vµ duy tr× chóng. Tãm l¹i, ng«n ng÷ lËp tr×nh t¹o ra mÇu s¾c cho chóng ta c¸ch nghÜ vÒ ch−¬ng tr×nh vµ giíi h¹n cè h÷u c¸ch chóng ta liªn l¹c víi m¸y tÝnh. IV.1.2.M« h×nh có ph¸p/ng÷ nghÜa Shniderman ®· ph¸t triÓn mét m« h×nh có ph¸p - ng÷ nghÜa cho tiÕn tr×nh lËp tr×nh cã liªn quan ®Õn viÖc xem xÐt c¸c b−íc lËp tr×nh. Khi ng−êi lËp tr×nh ¸p dông c¸c ph−¬ng ph¸p kÜ nghÖ phÇn mÒm (nh− ph©n tÝch yªu cÇu,thiÕt kÕ) vèn ®éc lËp víi ng«n ng÷ lËp tr×nh th× ®éng tíi vÊn ®Ò tri thøc ng÷ nghÜa. Tri thøc ng÷ nghÜa mÆt kh¸c l¹i lµ ®éc lËp víi ng«n ng÷, tËp trung vµo c¸c ®Æc tr−ng cña mét ng«n ng÷ x¸c ®Þnh. VÒ c¸c kiÓu tri thøc nµy, tri thøc ng÷ nghÜa lµ khã thu nhËn ®−îc h¬n c¶ vµ ®ßi hái dïng nhiÒu trÝ tuÖ. TÊt c¶ c¸c b−íc kÜ nghÖ phÇn mÒm tr−íc phÇn lËp tr×nh ®Òu dïng rÊt nhiÒu tri thøc ng÷ nghÜa. B−íc lËp tr×nh ¸p dông tri thøc có ph¸p vèn lµ “bÊt kú vµ theo lÖnh” ®−îc häc theo kiÓu vÑt. Khi häc mét ng«n ng÷ lËp tr×nh míi th× th«ng tin có ph¸p míi ®−îc thªm vµo kÝ øc Mét ng«n ng÷ lËp tr×nh míi cã thÓ buéc ng−êi kÜ s− phÇn mÒm ph¶i häc th«ng tin ng÷ nghÜa míi. NhiÒu vÊn ®Ò liªn quan tíi phÇn mÒm m¸y tÝnh ®· kh«ng lµ quan träng do viÖc thiÕu tri thøc có ph¸p, nh−ng l¹i quan träng trong ph¹m vi tri thøc ng÷ nghÜa vµ kh¶ n¨ng cña chóng ta ®Ó ¸p dông nã. Môc tiªu cña kÜ nghÖ phÇn mÒm lµ më réng tri thøc vÒ ng÷ nghÜa cña viÖc ph¸t triÓn phÇn mÒm. IV.1.3.H−íng quan ®iÓm kü nghÖ C¸ch nh×n kÜ nghÖ phÇn mÒm vÒ c¸c ®Æc tr−ng cña ng«n ng÷ lËp tr×nh tËp trung vµo nhu cÇu x¸c ®Þnh dù ¸n ph¸t triÓn phÇn mÒm riªng. MÆc dÇu ng−êi ta vÉn cÇn c¸c yªu cÇu riªng cho ch−¬ng tr×nh gèc, cã thÓ thiÕt lËp ®−îc mét tËp hîp tæng qu¸t nh÷ng ®Æc tr−ng kÜ nghÖ: (1) dÔ dÞch thiÕt kÕ sang ch−¬ng tr×nh, (2) cã tr×nh biªn dÞch hiÖu qu¶, (3) kh¶ chuyÓn ch−¬ng tr×nh gèc, (4) cã s½n c«ng cô ph¸t triÓn, (5) dÔ b¶o tr×. B−íc lËp tr×nh b¾t ®Çu sau khi thiÕt kÕ chi tiÕt ®· ®−îc x¸c ®Þnh, xÐt duyÖt vµ söa ®æi nÕu cÇn. VÒ lý thuyÕt, viÖc sinh ch−¬ng tr×nh gèc tõ mét ®Æc t¶ chi tiÕt nªn lµ trùc tiÕp. DÔ dÞch thiÕt kÕ sang ch−¬ng tr×nh ®−a ra mét chØ dÉn vÒ viÖc mét ng«n ng÷ lËp tr×nh ph¶n x¹ gÇn gòi ®Õn møc nµo Ch−¬ng IV - 91 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn cho mét biÓu diÔn thiÕt kÕ. Mét ng«n ng÷ cµi ®Æt trùc tiÕp cho c¸c kÕt cÊu cã cÊu tróc, c¸c cÊu tróc d÷ liÖu phøc t¹p, vµo/ ra ®Æc biÖt, kh¶ n¨ng thao t¸c bit, vµ c¸c kÕt cÊu h−íng sù vËt sÏ lµm cho viÖc dÞch tõ thiÕt kÕ sang ch−¬ng tr×nh gèc dÔ h¬n nhiÒu (nÕu c¸c thuéc tÝnh nµy ®−îc x¸c ®Þnh trong thiÕt kÕ). MÆc dÇu nh÷ng tiÕn bé nhanh chãng trong tèc ®é xö lý vµ mËt ®é nhí ®· b¾t ®Çu lµm gi¶m nhÑ nhu c©ï” ch−¬ng tr×nh siªu hiÖu qu¶”, nhiÒu øng dông vÉn cßn ®ßi hái c¸c ch−¬ng tr×nh ch¹y nhanh, “gän” (yªu cÇu bé nhí thÊp). C¸c ng«n ng÷ víi tr×nh biªn dÞch tèi −u cã thÓ lµ hÊp dÉn nÕu hiÖu n¨ng phÇn mÒm lµ yªu cÇu chñ chèt. TÝnh kh¶ chuyÓn ch−¬ng tr×nh gèc lµ mét ®Æc tr−ng ng«n ng÷ lËp tr×nh cã thÓ ®−îc hiÓu theo ba c¸ch kh¸c nhau: 1. Ch−¬ng tr×nh gèc cã thÓ ®−îc chuyÓn tõ bé xö lý nµy sang bé xö lý kh¸c vµ tõ tr×nh biªn dÞch nä sang tr×nh biªn dÞch kia víi rÊt Ýt hoÆc kh«ng ph¶i söa ®æi g×. 2. Ch−¬ng tr×nh gèc vÉn kh«ng thay ®æi ngay c¶ khi m«i tr−êng cña nã thay ®æi (nh− viÖc cµi ®Æt b¶n míi cña hÖ ®iÒu hµnh ). 3. Ch−¬ng tr×nh gèc cã thÓ ®−îc tÝch hîp vµo trong c¸c bé tr×nh phÇn mÒm kh¸c nhau víi Ýt hay kh«ng cÇn thay ®æi g× v× c¸c ®Æc tr−ng cña ng«n ng÷ lËp tr×nh. Trong sè ba c¸ch hiÓu vÒ tÝnh kh¶ chuyÓn nµy th× c¸ch thø nhÊt lµ th«ng dông nhÊt.ViÖc chuÈn ho¸ (do tæ chøc tiªu chuÈn quèc tÕ IFO vµ /hoÆc ViÖn tiªu chuÈn quèc gia MÜ-ANSI) nh»m n©ng cao tÝnh kh¶ chuyÓn ng«n ng÷ lËp tr×nh. TÝnh s½n cã cña c«ng cô ph¸t triÓn cã thÓ lµm ng¾n bít thêi gian cÇn ®Ó sinh ra ch−¬ng tr×nh gèc vµ cã thÓ c¶i thiÖn chÊt l−îng cña ch−¬ng tr×nh. NhiÒu ng«n ng÷ lËp tr×nh cã thÓ cÇn tíi mét lo¹t c«ng cô kÓ c¶ tr×nh biªn dÞch gì lçi, trî gióp ®Þnh d¹ng ch−¬ng tr×nh gèc, c¸c tiÖn nghi so¹n th¶o cã s½n, c¸c c«ng cô kiÓm so¸t ch−¬ng tr×nh gèc ,th− viÖn ch−¬ng tr×nh con më réng trong nhiÒu lÜnh vùc øng dông, c¸c tr×nh duyÖt , tr×nh biªn dÞch chÐo cho ph¸t triÓn bé vi xö lý, kh¶ n¨ng bé xö lý macro,c«ng cô kÜ nghÖ ng−îc vµ nh÷ng c«ng cô kh¸c. Trong thùc tÕ, kh¸i niÖm vÒ “m«i tr−êng ph¸t triÓn phÇn mÒm” tèt (bao hµm c¶ c¸c c«ng cô) ®· ®−îc thõa nhËn nh− nh©n tè ®ãng gãp chÝnh cho kÜ nghÖ phÇn mÒm thµnh c«ng. TÝnh dÔ b¶o tr× cña ch−¬ng tr×nh gèc cã tÇm qu¹n träng chñ chèt cho tÊt c¶ c¸c nç lùc ph¸t triÓn phÇn mÒm kh«ng tÇm th−êng. ViÖc b¶o tr× kh«ng thÓ ®−îc tiÕn hµnh chõng nµo ng−êi ta cßn ch−a hiÓu ®−îc phÇn mÒm. C¸c yÕu tè cña cÊu h×nh phÇn mÒm (nh− tµi liÖu thiÕt kÕ ) ®−a ra mét nÒn t¶ng cho viÖc hiÓu biÕt, nh−ng cuèi cïng th× ch−¬ng tr×nh gèc vÉn ph¶i ®−îc ®äc vµ söa ®æi theo nh÷ng thay ®æi trong thiÕt kÕ . TÝnh dÔ dÞch thiÕt kÕ sang ch−¬ng tr×nh lµ mét yÕu tè quan träng ®Ó dÔ b¶o tr× ch−¬ng tr×nh gèc. Bªn c¹nh ®ã, c¸c ®Æc tr−ng tù lµm tµi liÖu cña ng«n ng÷ (nh− chiÒu dµi ®−îc phÐp cña tªn gäi, ®Þnh d¹ng nh·n, ®Þnh nghÜa kiÓu, cÊu tróc d÷ liÖu) cã ¶nh h−ëng m¹nh ®Õn tÝnh dÔ b¶o tr×. IV.1.4.ViÖc chän ng«n ng÷ ViÖc chän ng«n ng÷ lËp tr×nh cho mét dù ¸n riªng ph¶i tÝnh tíi c¶ c¸c ®Æc tr−ng kÜ nghÖ vµ t©m lý. Tuy nhiªn, vÊn ®Ò liªn quan ®Õn viÖc chän lùa cã thÓ bµn tíi chØ nÕu mét ng«n ng÷ lµ cã s½n hay ®−îc quy ®Þnh bëi ng−êi yªu cÇu. Meek gîi ý mét quan ®iÓm tæng qu¸t khi ph¶i chän mét ng«n ng÷ lËp tr×nh: "...nghÖ thuËt chän ng«n ng÷ lµ b¾t ®Çu tõ vÊn ®Ò, quyÕt ®Þnh xem c¸i g× lµ yªu cÇu cña nã vµ tÇm quan träng t−¬ng ®èi cña chóng, v× cã thÓ sÏ kh«ng thÓ nµo tho¶ m·n ®−îc chóng nh− nhau (víi mét ng«n ng÷ ) ...c¸c ng«n ng÷ cã s½n nªn ®−îc s¸nh víi danh s¸ch c¸c yªu cÇu..." C¸c tiªu chuÈn ®−îc ¸p dông khi ®¸nh gi¸ vÒ ng«n ng÷ cã s½n. MiÒn øng dông cña dù ¸n lµ mét tiªu chuÈn hay ®−îc ¸p dông nhÊt trong viÖc lùa chän c¸c ng«n ng÷ . C th−êng lµ mét ng«n ng«n ng÷ hay ®−îc chän cho viÖc ph¸t triÓn hÖ thèng phÇn mÒm,trong khi c¸c ng«n ng÷ nh− Ada,C,Modula-2 (cïng víi FOTRAN vµ hîp ng÷) hay gÆp trong øng dông thêi gian thùc. COBOL lµ ng«n ng÷ cho øng dông kinh doanh nh−ng viÖc ngµy cµng dïng nhiÒu c¸c ng«n ng÷ thÕ hÖ thø t− ®· thay thÕ dÇn nã ë vÞ trÝ tréi v−ît. Trong lÜnh vùc kÜ nghÖ /khoa häc th× FOTRAN vÉn cßn lµ ng«n ng÷ thèng trÞ (mÆc dÇu ALGOL, PL/1,PASCAL vµ C còng ®−îc dïng réng r·i). Nh÷ng øng dông phÇn mÒm nhóng dïng cïng c¸c ng«n ng÷ ®−îc ¸p dông trong c¸c hÖ thèng Ch−¬ng IV - 92 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn vµ øng dông thêi gian thùc. Ng«n ng÷ thèng trÞ cho ng−êi dïng m¸y tÝnh c¸ nh©n vÉn lµ BASIC nh−ng ng«n ng÷ ®ã hiÕm khi ®−îc nh÷ng ng−êi ph¸t triÓn C, dïng. C¸c øng dông trÝ tuÖ nh©n t¹o dïng c¸c ng«n ng÷ nh− LISP, PROLOG hay OPS5 mÆc dÇu nhiÒu ng«n ng÷ lËp tr×nh qui −íc kh¸c còng ®−îc dïng. Xu h−íng ph¸t triÓn phÇn mÒm h−íng ®èi t−îng xuyªn suèt phÇn lín c¸c miÒn øng dông ®· më ra nhiÒu ng«n ng÷ míi vµ c¸c dÞ b¶n ng«n ng÷ qui −íc. C¸c ng«n ng÷ lËp tr×nh h−íng ®èi t−îng ®−îc dïng réng r·i nhÊt lµ Smalltalk ,C+ +Objective C. Ngoµi ra cßn cã Eiffel,Object- PASCAL,Flavos vµ nhiÒu ng«n ng÷ kh¸c. Sù ph¸t triÓn gia t¨ng cña c¸c ng«n ng÷ lËp tr×nh”míi vµ tèt h¬n vÉn tiÕp tôc”. MÆc dÇu nhiÒu ng«n ng÷ nµy kh¸ hÊp dÉn, ®«i khi tèt h¬n c¶ vÉn lµ chän ng«n ng÷ “yÕu h¬n” (cò) ®· cã tµi liÖu ch¾c ch¾n vµ phÇn mÒm hç trî, quen thuéc víi nhiÒu ng−êi trong nhãm ph¸t triÓn phÇn mÒm vµ ®· tõng ¸p dông thµnh c«ng trong qu¸ khø. Tuy nhiªn, nªn cã ®¸nh gi¸ kÜ cµng vÒ c¸c ng«n ng÷ míi vµ viÖc chuyÓn dÞch tõ ng«n ng÷ cò sang ng«n ng÷ míi nÕu cã, víi viÖc thõa nhËn sù kh¸ng cù vÒ t©m lý ®èi víi thay ®æi th−êng hay gÆp ph¶i trong mäi tæ chøc. IV.1.5.Ng«n ng÷ lËp tr×nh vµ kü nghÖ phÇn mÒm BÊt kÓ ®Õn khu«n c¶nh kÜ nghÖ phÇn mÒm, ng«n ng÷ lËp tr×nh sÏ cã t¸c ®éng tíi viÖc v¹ch kÕ ho¹ch dù ¸n, ph©n tÝch, thiÕt kÕ, lËp tr×nh, kiÓm thö vµ b¶o tr×. Trong khi lËp kÕ ho¹ch dù ¸n, hiÕm khi ng−êi ta tiÕn hµnh xem xÐt c¸c ®Æc tr−ng kÜ thuËt cña ng«n ng÷ lËp tr×nh. Tuy nhiªn, viÖc lËp kÕ ho¹ch cho c¸c c«ng cô hç trî cã liªn quan tíi tµi nguyªn cÇn cã, cã thÓ yªu cÇu r»ng mét tr×nh biªn dÞch chuyªn dông (vµ phÇn mÒm liªn kÕt) hay m«i tr−êng lËp tr×nh ®−îc x¸c ®Þnh. Mét khi c¸c yªu cÇu phÇn mÒm ®· ®−îc thiÕt lËp, th× c¸c ®Æc tr−ng cña ng«n ng÷ lËp tr×nh øng cö viªn trë thµnh quan träng h¬n. NÕu cÇn tíi cÊu tróc d÷ liÖu phøc t¹p th× ng«n ng÷ víi sù hç trî cho c¸c cÊu tróc d÷ liÖu phøc t¹p (nh− Pascal hay c¸c ng«n ng÷ kh¸c) nªn ®−îc tÝnh tíi mét c¸ch cÈn thËn. NÕu cÇn kh¶ n¨ng cao, thêi gian thùc th× ng«n ng÷ ®−îc thiÕt kÕ cho øng dông thêi gian thùc (nh− Ada) hay hiÖu qu¶ vÒ tèc ®é nhí (nh− C) cã thÓ ®−îc x¸c ®Þnh. NÕu cÇn ®−a ra nhiÒu b¸o c¸o vµ thao t¸c tÖp th× c¸c ng«n ng÷ nh− COBOL hay RPG cã thÓ thÝch hîp. Mét c¸ch lý t−ëng, c¸c yªu cÇu phÇn mÒm nªn kÕt tinh viÖc chän lùa ng«n ng÷ thÝch hîp nhÊt cho viÖc xö lý cÇn thùc hiÖn. Tuy nhiªn trong thùc hµnh, mét ng«n ng÷ th−êng ®−îc chän lùa bëi v×”nã lµ ng«n ng÷ duy nhÊt mµ chóng ta cã ch¹y trªn m¸y cña m×nh !”. ChÊt l−îng cña thiÕt kÕ phÇn mÒm ®−îc thiÕt lËp theo c¸ch ®éc lËp víi c¸c ®Æc tr−ng ng«n ng÷ lËp tr×nh (mét ngo¹i lÖ ®¸ng ®−îc l−u ý lµ thiÕt kÕ h−íng sù vËt). Tuy nhiªn thuéc tÝnh ng«n ng÷ ®ãng mét vai trß trong chÊt l−îng cña thiÕt kÕ ®−îc cµi ®Æt vµ ¶nh h−ëng (c¶ cã ý thøc lÉn v« thøc) tíi c¸ch thiÕt kÕ ®−îc x¸c ®Þnh.Mét sè ®é ®o ®Þnh tÝnh vµ ®Þnh l−îng cña thiÕt kÕ tèt. C¸c kh¸i niÖm vÒ tÝnh modul vµ sù ®éc lËp modul còng ®−îc nhÊn m¹nh.C¸c ®Æc tr−ng kÜ thuËt cña nhiÒu ng«n ng÷ lËp tr×nh cã thÓ ¶nh h−ëng tíi nh÷ng kh¸i niÖm nµy trong viÖc cµi ®Æt thiÕt kÕ. ThiÕt kÕ d÷ liÖu còng cã thÓ bÞ ¶nh h−ëng bëi c¸c ®Æc tr−ng ng«n ng÷. C¸c ng«n ng÷ lËp tr×nh nh− Ada, C++, Smalltalk ®Òu hç trî cho kh¸i niÖm vÒ kiÓu d÷ liÖu trõu t−îng– mét c«ng cô quan träng trong thiÕt kÕ vµ ®Æc t¶ d÷ liÖu. C¸c ng«n ng÷ th«ng dông kh¸c, nh− PASCAL, cho phÐp ®Þnh nghÜa c¸c kiÓu d÷ liÖu do ng−êi dïng x¸c ®Þnh vµ viÖc cµi ®Æt trùc tiÕp danh s¸ch mãc nèi vµ nh÷ng cÊu tróc d÷ liÖu kh¸c. C¸c tÝnh n¨ng nµy cung cÊp cho ng−êi thiÕt kÕ ph¹m vi réng h¬n trong c¸c b−íc thiÕt kÕ s¬ bé vµ chi tiÕt ¶nh h−ëng cña c¸c ®Æc tr−ng ng«n ng÷ tíi c¸c b−íc thiÕt kÕ bao gåm khã kh¨n trong viÖc ®¸nh gi¸ kiÓm thö phÇn mÒm. C¸c ng«n ng÷ trùc tiÕp hç trî cho c¸c kÕt cÊu cã cÊu tróc cã khuynh h−íng gi¶m bít ®é phøc t¹p cña ch−¬ng tr×nh, do ®ã mét c¸ch nµo ®ã lµm cho nã dÔ dµng kiÓm thö. C¸c ng«n ng÷ hç trî cho viÖc ®Æc t¶ c¸c ch−¬ng tr×nh con vµ thñ tôc ngoµi (nh− FOTRAN) th−êng lµm cho viÖc kiÓm thö tÝch hîp Ýt sinh lçi h¬n. MÆt kh¸c mét sè ®Æc tr−ng kÜ thuËt cña ng«n ng÷ cã thÓ g©y trë ng¹i cho viÖc kiÓm thö. Ch¼ng h¹n cÊu tróc khèi trong ALGOL cã thÓ ®−îc x¸c ®Þnh theo c¸ch lµm mÊt d÷ liÖu trung gian khi viÖc ra khái khèi xuÊt hiÖn, do ®ã lµm cho tr¹ng th¸i cña ch−¬ng tr×nh khã x¸c nhËn h¬n. Gièng nh− kiÓm thö, hiÖu qu¶ cu¶ c¸c ®Æc tr−ng Ch−¬ng IV - 93 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn ng«n ng÷ lËp tr×nh vÒ mÆt b¶o tr× phÇn mÒm còng ch−a ®−îc hiÓu thËt ®Çy ®ñ . IV.2.NÒn t¶ng cña ng«n ng÷ lËp tr×nh NÒn t¶ng cña ng«n ng÷ lËp tr×nh ®−îc thÓ hiÖn trong ng÷ c¶nh bèn chñ ®Ò ®¹i thÓ: ®Þnh kiÓu, c¬ chÕ ch−¬ng tr×nh con, cÊu tróc ®iÒu khiÓn vµ hç trî cho c¸ch tiÕp cËn h−íng ®èi t−îng. Mäi ng«n ng÷ lËp tr×nh ®Òu cã thÓ ®−îc ®Æc tr−ng theo nh÷ng chñ ®Ò nµy vµ chÊt l−îng toµn bé cña mét ng«n ng÷ lËp tr×nh cã thÓ ®−îc ®¸nh gi¸ theo ®iÓm m¹nh vµ ®iÓm yÕu cã liªn quan ®Õn tõng chñ ®Ò. IV.2.1.KiÓu d÷ liÖu vµ ®Þnh kiÓu d÷ liÖu Ngµy nay, Ých lîi cña c¸c ng«n ng÷ lËp tr×nh ®−îc ®¸nh gÝa kh«ng chØ ë có ph¸p vµ sù phãng kho¸ng cña c¸c kÕt cÊu thñ tôc cña nã. §Þnh kiÓu d÷ liÖu ,vµ c¸c kiÓu d÷ liÖu ®Æc biÖt ®−îc ng«n ng÷ lËp tr×nh hç trî lµ khÝa c¹nh quan träng cña chÊt l−îng ng«n ng÷. Pratt m« t¶ kiÓu d÷ liÖu vµ ®Þnh kiÓu d÷ liÖu lµ “...mét líp c¸c ®èi t−îng d÷ liÖu cïng víi mét tËp c¸c phÐp to¸n ®Ó t¹o ra vµ thao t¸c trªn chóng". Mét ®èi t−îng d÷ liÖu kÕ thõa mét tËp c¸c thuéc tÝnh nÒn t¶ng cña kiÓu d÷ liÖu mµ nã thuéc vµo. Mét ®èi t−îng d÷ liÖu cã thÓ lÊy mét gi¸ trÞ n»m bªn trong miÒn gi¸ trÞ hîp lÖ cho kiÓu d÷ liÖu ®ã vµ cã thÓ bÞ c¸c phÐp to¸n cña kiÓu d÷ liÖu ®ã thao t¸c. C¸c kiÓu d÷ liÖu ®¬n tr¶i trªn mét miÒn réng bao gåm c¸c kiÓu sè (nh− nguyªn, phøc, sè dÊu phÈy ®éng), kiÓu liÖt kª (nh− kiÓu d÷ liÖu do ng−êi dïng ®Þnh nghÜa cã trong PASCAL), kiÓu logic (nh− true hay false) vµ kiÓu x©u string (nh− d÷ liÖu ch÷ sè). C¸c kiÓu d÷ liÖu phøc t¹p h¬n bao gåm c¸c cÊu tróc d÷ liÖu tr¶i qua hÕt tõ m¶ng mét chiÒu ®¬n gi¶ (vect¬) cho tíi c¸c cÊu tróc danh s¸ch tíi c¸c m¶ng vµ b¶n ghi ®a t¹p phøc t¹p. C¸c phÐp to¸n cã thÓ ®−îc thùc hiÖn trªn mét kiÓu d÷ liÖu ®Æc biÖt vµ theo c¸ch thøc mµ trong ®ã c¸c kiÓu kh¸c nhau cã thÓ ®−îc thao t¸c trong cïng c©u lÖnh sÏ ®−îc ®iÒu khiÓn bëi viÖc kiÓm tra kiÓu vèn ®−îc cµi ®Æt bªn trong tr×nh biªn dÞch hay th«ng dÞch ng«n ng÷ lËp tr×nh. Fairley ®−a ra n¨m møc kiÓm tra kiÓu th−êng gÆp trong c¸c ng«n ng÷ lËp tr×nh: Møc 0: Phi kiÓu Møc 1: Bã buéc kiÓu tù ®éng Møc 2: KiÓu hçn hîp Møc 3: KiÓm tra kiÓu gi¶ m¹nh Møc 4: KiÓm tra kiÓu m¹nh Ng«n ng÷ lËp tr×nh phi kiÓu kh«ng cã ý nghÜa t−êng minh ®èi víi viÖc ®Þnh kiÓu vµ do ®ã kh«ng buéc viÖc kiÓm tra kiÓu. C¸c ng«n ng÷ nh− BASIC, APL, LISP vµ ngay c¶ COBOL ®Òu r¬i vµo ph¹m trï nµy. MÆc dÇu tõng ng«n ng÷ ®Òu cã thÓ cho phÐp ng−êi dïng ®Þnh nghÜa ra cÊu tróc d÷ liÖu nh−ng biÓu diÏn cña d÷ liÖu ®−îc chøa trong tõng sù vËt d÷ liÖu lµ ®Þnh s½n. Bã buéc kiÓu tù ®éng lµ mét c¬ chÕ kiÓm tra kiÓu cho phÐp ng−êi lËp tr×nh trén lÉn nhiÒu kiÓu d÷ liÖu, nh−ng råi tù chuyÓn c¸c to¸n h¹ng vÒ kiÓu t−¬ng hîp, do vËy cho phÐp c¸c phÐp to¸n cÇn cã xuÊt hiÖn. Ch¼ng h¹n, PL/1 g¸n gi¸ trÞ sè 0 cho gi¸ trÞ logic false vµ gi¸ trÞ sè 1 cho gi¸ trÞ true. Do ®ã c¸c phÐp to¸n sè häc (th«ng th−êng ®−îc ¸p dông cho c¸c kiÓu d÷ liÖu sè ) cã thÓ ®−îc ¸p dông cho kiÓu d÷ liÖu boolean trong PL/1. ChuyÓn ®æi mèt kiÓu hçn hîp t−¬ng tù vÒ nhiÒu ph−¬ng diÖn víi bã buéc kiÓu tù ®äng. C¸c kiÓu d÷ liÖu kh¸c nhau bªn trong cïng ph¹m trï kiÓu (nh− hai kiÓu sè kh¸c nhau) ®−îc chuyÓn ®æi thµnh mét kiÓu ®Ých ®Ó cã thÓ øng dông ®−îc mét phÐp to¸n x¸c ®Þnh. Sè häc hçn hîp cña FORTRAN (mét tÝnh n¨ng nªn tr¸nh nhÊt) cã thÓ lµm cho c¸c sè nguyªn vµ thùc ®−îc dïng trong mét c©u lÖnh ng«n ng÷ lËp tr×nh. KiÓm tra kiÓu gi¶ m¹nh cã tÊt c¶ c¸c ®Æc tr−ng cña kiÓm tra kiÓu m¹nh nh−ng ®−îc cµi ®Æt theo c¸ch ®−a ra mét hay nhiÒu lç hæng. Ch¼ng h¹n, mÆc dÇu PASCAL kiÓm tra tÝnh t−¬ng hîp giao diÖn bªn trong mét ch−¬ng tr×nh ®· biªn dÞch, nã kh«ng lµm nh− vËy cho c¸c thñ tôc ®−îc dÞch t¸ch biÖt (m« ®un)- do ®ã, cã mét lç hæng trong viÖc b¾t buéc kiÓm tra kiÓu m¹nh. IV.2.2 .Ch−¬ng tr×nh con Ch−¬ng tr×nh con lµ mét thµnh phÇn cña ch−¬ng tr×nh dÞch ®−îc t¸ch biÖt cã chøa d÷ liÖu vµ cÊu Ch−¬ng IV - 94 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn tróc ®iÒu khiÓn. M« ®un lµ c¸ch biÓu hiÖn tæng qu¸t cña ch−¬ng tr×nh con. Tuú theo ng«n ng÷ lËp tr×nh mµ mét ch−¬ng tr×nh con cã thÓ ®−îc gäi lµ tr×nh con, thñ tôc, hµm hay bÊt k× tªn gäi ®Æc biÖt nµo. BÊt kÓ ®Õn tªn cña nã, ch−¬ng tr×nh con vÉn béc lé ra mét tËp c¸c ®Æc tr−ng tæng qu¸t: (1) PhÇn m« t¶ cã chøa tªn cña nã vµ m« t¶ giao ®iÖn ; (2) PhÇn cµi ®Æt cã chøa d÷ liÖu vµ cÊu tróc ®iÒu khiÓn; (3) Mét c¬ chÕ kÝch ho¹t lµm cho ch−¬ng tr×nh con ®−îc gäi tíi tõ mét n¬i nµo ®ã kh¸c trong ch−¬ng tr×nh. Trong c¸c ng«n ng÷ lËp tr×nh qui −íc ,mçi ch−¬ng tr×nh con b¶n th©n nã ®Òu lµ mét thùc thÓ, vËn hµnh trªn d÷ liÖu theo mét c¸ch ®−îc chØ ®¹o bëi cÊu tróc ®iÒu khiÓn cña ch−¬ng tr×nh lín h¬n. Trong c¸c ng«n ng÷ lËp tr×nh h−íng ®èi t−îng, c¸ch nh×n líp ch−¬ng tr×nh con ®−îc thay thÕ bëi ®èi t−îng. IV.2.3.CÊu tróc ®iÒu khiÓn T¹i møc c¬ b¶n ,mäi ng«n ng÷ lËp tr×nh hiÖn ®¹i ®Òu cho phÐp ng−êi lËp tr×nh biÓu diÔn sù tuÇn tù, tuyÓn chän vµ lÆp - c¸c kÕt cÊu logic lËp tr×nh cã cÊu tróc.PhÇn lín c¸c ng«n ng÷ hiÖn ®¹i ®Òu ®−a ra mét có ph¸p cho ®Æc t¶ trùc tiÕp vÒ if-then-else ,do-while repeat-until (còng nh− CASE). C¸c ng«n ng÷ kh¸c nh− LISP vµ APL ®ßi hái ng−êi lËp tr×nh ph¶i m« pháng c¸c kÕt cÊu bªn trong giíi h¹n có ph¸p cña ng«n ng÷ ®ã. Bªn c¹nh c¸c kÕt cÊu thñ tôc c¬ së cña lËp tr×nh cã cÊu tróc, c¸c cÊu tróc ®iÒu khiÓn kh¸c còng cã thÓ cã. §Ö qui t¹o ra sù kÝch ho¹t lÇn thø hai cña ch−¬ng tr×nh con trong lÇn kÝch ho¹t thø nhÊt. Tøc lµ, ch−¬ng tr×nh con gäi tíi hay kÝch ho¹t b¶n th©n nã nh− mét phÇn cña thñ tôc ®· x¸c ®Þnh. T−¬ng tranh ®−a ra sù hç trî cho viÖc t¹o ra nhiÒu nhiÖm vô, ®ång bé ho¸ c¸c nhiÖm vô nµy vµ liªn l¹c nãi chung gi÷a c¸c nhiÖm vô Êy. TÝnh n¨ng ng«n ng÷ nµy lµ v« gi¸ khi ph¶i thùc hiÖn c¸c øng dông hÖ thèng hay thêi gian thùc. Cã tÝnh n¨ng ng«n ng÷ lËp tr×nh ®Æt bÉy c¸c ®iÒu kiÖn lçi hÖ thèng hay cña ng−êi dïng råi truyÒn ®iÒu khiÓn cho bé ®iÒu khiÓn ®Æc biÖt ®Ó xö lý. IV.2.4.C¸ch tiÕp cËn h−íng ®èi t−îng VÒ lý thuyÕt, viÖc t¹o ra c¸c ®èi t−îng vµ kÕt cÊu cña phÇn mÒm h−íng ®èi t−îng cã thÓ ®−îc thùc hiÖn b»ng c¸ch dïng bÊt k× ng«n ng÷ lËp tr×nh qui −íc nµo (nh− C hay PASCAL). Nh−ng trong thùc tÕ, viÖc hç trî cho c¸c c¸ch tiÕp cËn h−íng ®èi t−îng nªn ®−îc x©y dùng trùc tiÕp bªn trong ng«n ng÷ lËp tr×nh sÏ ®−îc dïng ®Ó cµi ®Æt thiÕt kÕ h−íng ®èi t−îng. Ng«n ng÷ lËp tr×nh h−íng ®èi t−îng nªn cung cÊp sù hç trî trùc tiÕp cho ®Þnh nghÜa líp, kÕ thõa, bao bäc vµ truyÒn th«ng b¸o. §Þnh nghÜa vÒ líp lµ c¬ së cho c¸ch tiÕp cËn h−íng ®èi t−îng. Ng«n ng÷ lËp tr×nh h−íng ®èi t−îng ®Þnh nghÜa tªn mét líp vµ x¸c ®Þnh c¸c thµnh phÇn chung vµ riªng cña líp ®ã. Mét líp míi cã thÓ ®−îc suy dÉn tõ ®Þnh nghÜa líp c¬ së. C¸c ®èi t−îng ®−îc suy tõ líp míi cã thÓ dïng tÊt c¶ c¸c ph−¬ng ph¸p ®−îc x¸c ®Þnh cho “líp cha”. §Þnh nghÜa vÒ líp bao qu¸t c¶ trõu t−îng d÷ liÖu vµ thµnh phÇn ch−¬ng tr×nh (ph−¬ng ph¸p) vËn hµnh trªn chóng. C¸c chi tiÕt cµi ®Æt vµ thuËt ng÷ cho ®Þnh nghÜa líp, kÕ thõa, bao bäc vµ truyÒn th«ng b¸o sÏ thay ®æi tõ ng«n ng÷ nä sang ng«n ng÷ kia, nh−ng kh¸i niÖm nÒn t¶ng vÒ líp vÉn kh«ng thay ®æi. T−¬ng tù kÕ thõa, bao bäc vµ truyÒn th«ng b¸o ®−îc cµi ®Æt víi víi mét có ph¸p kh¸c, nh−ng cïng nÒn t¶ng. Mçi kÕt cÊu sÏ cã s½n trong bÊt k× ng«n ng÷ nµo thùc sù h−íng ®èi t−îng. IV.2.5.C¸c líp ng«n ng÷ Cã hµng tr¨m ng«n ng÷ lËp tr×nh ®· ®−îc sö dông vµo lóc nµy lóc kh¸c trong nh÷ng nç lùc ph¸t triÓn phÇn mÒm nghiªm chØnh. Cã bèn thÕ hÖ ng«n ng÷ lËp tr×nh ®¹i diÖn: 1.Ng«n ng÷ thÕ hÖ thø nhÊt. ThÕ hÖ ng«n ng÷ thø nhÊt lËp tr×nh theo møc m· m¸y (mét sè c«ng viÖc víi ng«n ng÷ thÕ hÖ thø nhÊt vÉn cßn tiÕp tôc ®Õn ngµy nay). Ch−¬ng tr×nh m· m¸y vµ d¹ng t−¬ng ®−¬ng cña nã dÔ ®äc Ch−¬ng IV - 95 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn h¬n cho con ng−êi. Hîp ng÷ biÓu thÞ cho thÕ hÖ ng«n ng÷ thø nhÊt. C¸c ng«n ng÷ phô thuéc m¸y nµy tr−ng bÇy møc ®é trõu t−îng thÊp nhÊt mµ mét ch−¬ng tr×nh cã thÓ ®−îc biÓu diÔn. Cã nhiÒu hîp ng÷ nh− c¸c kiÕn tróc bé xö lý víi tËp lÖnh rót gän theo yªu cÇu. Tõ quan ®iÓm cña kÜ nghÖ phÇn mÒm, nh÷ng ng«n ng÷ nh− vËy chØ nªn dïng khi ng«n ng÷ cÊp cao kh«ng thÓ ®¸p øng ®−îc hay kh«ng ®−îc hç trî. 2.Ng«n ng÷ thÕ hÖ hai. Ng«n ng÷ thÕ hÖ hai ®· ®−îc ph¸t triÓn tõ cuèi nh÷ng n¨m 1950 vµ ®Çu nh÷ng n¨m 1960 vµ phôc vô nh− nÒn t¶ng cho mäi ng«n ng÷ lËp tr×nh hiÖn ®¹i (thÕ hÖ ba). C¸c ng«n ng÷ thÕ hÖ hai ®−îc ®Æc tr−ng bëi viÖc sö dông réng r·i mét th− viÖn phÇn mÒm quen thuéc. FOFTRAN, COBOL, ALGOL vµ BASIC lµ c¸c ng«n ng÷ nÒn t¶ng. Víi nh÷ng øng dông chØ sö dông sè th× FORTRAN vÉn lµ ng«n ng÷ ®−îc lùa chän, nh−ng víi c¸c øng dông hÖ thèng, thêi gian thùc hay phÇn mÒm s¶n phÈm nhóng th× c¸c ng«n ng÷ kh¸c cã −u thÕ c¹nh tranh h¬n h¼n. COBOL, gièng nh− FORTRAN, ®· ®¹t tíi ®é chÝn muåi vµ lµ ng«n ng÷ “chuÈn” ®−îc chÊp nhËn cho c¸c øng dông xö lÝ d÷ liÖu th−¬ng m¹i. MÆc dÇu ng«n ng÷ nµy ®«i khi còng bÞ chØ trÝch lµ thiÕu tÝnh gän gµng, nã vÉn cã nh÷ng kh¶ n¨ng ®Þnh nghÜa d÷ liÖu tuyÖt vêi vµ cã kh¶ n¨ng tù lµm d÷ liÖu. ALGOL lµ ng−êi tiªn phong trong nhiÒu ng«n ng÷ lËp tr×nh thÕ hÖ ba vµ ®−a ra mét kho cùc k× phong phó c¸c kÕt cÊu thñ tôc vµ ®Þnh kiÓu d÷ liÖu. Ng«n ng÷ nµy ®−îc hç trî cho kh¸i niÖm cÊu tróc khèi, cÊp ph¸t bé nhí ®éng, ®Ö qui vµ nh÷ng ®Æc tr−ng kh¸c cã ¶nh h−ëng m¹nh lªn c¸c ng«n ng÷ hiÖn ®¹i theo sau. BASIC lµ ng«n ng÷ ban ®Çu ®−îc thiÕt kÕ ®Ó d¹y lËp tr×nh. Ng«n ng÷ nµy ®· l¹c hËu vµo ®Çu nh÷ng n¨m 1970, nh−ng råi l¹i t¸i sinh m¹nh mÏ víi sù kiÖn c¸c hÖ thèng m¸y tÝnh c¸ nh©n. 3.Ng«n ng÷ thÕ hÖ ba (Ng«n ng÷ lËp tr×nh cã cÊu tróc) Ng«n ng÷ thÕ hÖ ba ®−îc ®Æc tr−ng bëi kh¶ n¨ng cÊu tróc d÷ liÖu vµ thñ tôc m¹nh. C¸c ng«n ng÷ líp nµy cã thÓ ®−îc chia thµnh ba ph¹m trï lín: ng«n ng÷ cÊp cao v¹n n¨ng, ng«n ng÷ cÊp cao h−íng ®èi t−îng vµ ng«n ng÷ chuyªn dông. + Ng«n ng÷ cÊp cao v¹n n¨ng: bao gåm PL/1,PASCAL,MODULA-2,C Ng«n ng÷ cÊp cao v¹n n¨ng ®Çu tiªn ALGOL (còng lµ ng«n ng÷ nÒn t¶ng) ®· phôc vô nh− mét m« h×nh cho c¸c ng«n ng÷ kh¸c trong ph¹m trï nµy. HËu thÕ cña nã, PL/1, PSACAL, Modula-2, C vµ Ada ®· ®−îc chÊp nhËn nh− nh÷ng ng«n ng÷ cã tiÒm n¨ng cho c¸c øng dông phæ réng (nh− ®Ó dïng trong kÜ nghÖ/khoa häc, c¸c s¶n phÈm nhóng, c¸c miÕn øng dông th−¬ng m¹i hoÆc hÖ thèng). PL/1 lµ ng«n ng÷ phæ réng ®óng nghÜa ®Çu tiªn, ®−îc x©y dùng víi mét ph¹m vi réng c¸c tÝnh n¨ng lµm cho nã ®−îc dïng trong nhiÒu lÜnh vùc øng dông kh¸c nhau. PL/1 cung cÊp sù hç trî cho c¸c øng dông kÜ nghÖ/khoa häc qui −íc vµ kinh doanh trong khi ®ång thêi cho phÐp ®Æc t¶ c¸c cÊu tróc d÷ liÖu phøc t¹p, ®a nhiÖm, vµo/ra phøc t¹p, xö lÝ danh s¸ch vµ nhiÒu tÝnh n¨ng kh¸c. Ng−êi ta ®· x©y dùng tËp con cña ng«n ng÷ nµy ®Ó d¹y lËp tr×nh (PL/C), ®Ó dïng trong c¸c øng dông bé vi xö lÝ (PL/M), vµ ®Ó lËp tr×nh hÖ thèng (PL/S). PASCAL lµ ng«n ng÷ lËp tr×nh hiÖn ®¹i ®· ®−îc ph¸t triÓn vµo ®Çu nh÷ng n¨m 1970 nh− mét ng«n ng÷ ®Ó d¹y kÜ thuËt hiÖn ®¹i (nh− lËp tr×nh cã cÊu tróc) trong ph¸t triÓn phÇn mÒm. PASCAL ®−îc dïng mét c¸ch réng r·i cho c¸c øng dông kÜ nghÖ/khoa häc vµ lËp tr×nh hÖ thèng. PASCAL lµ mét con ch¸u trùc tiÕp cña ALGOL vµ chøa nhiÒu tÝnh n¨ng cò: cÊu tróc khèi, ®Þnh kiÓu d÷ liÖu m¹nh, hç trî trùc tiÕp cho ®Ö qui vµ c¸c tÝnh n¨ng phô kh¸c. Nã ®· ®−îc cµi ®Æt trªn m¸y tÝnh ®ñ c¸c cì. Modula-2 lµ mét sù tr−ëng thµnh c¸ch m¹ng cña PASCAL vµ lµ mét ph−¬ng ¸n cã thÓ cho ng«n ng÷ lËp tr×nh Ada. Modula-2 nèi trùc tiÕp viÖc cµi ®Æt c¸c tÝnh n¨ng thiÕt kÕ nh− che dÊu th«ng tin , trõu t−îng vµ kiÓm tra kiÓu m¹nh víi c¸c cÊu tróc ®iÒu khiÓn ®Ó hç trî cho ®Ö qui vµ t−¬ng tranh. HiÖn t¹i, viÖc dïng Modula-2 cho c¸c øng dông c«ng nghiÖp ®· bÞ h¹n chÕ. Ng«n ng÷ lËp tr×nh C ban ®Çu ®−îc ph¸t triÓn nh− mét ng«n ng÷ cho ng−êi cµi ®Æt hÖ ®iÒu hµnh. HÖ ®iÒu hµnh UNIX ®−îc cµi ®Æt trong C. Tuy nhiªn ngµy nay mét l−îng rÊt lín c¸c s¶n phÈm phÇn mÒm, c¸c øng dông nhóng vµ phÇn mÒm hÖ thèng ®· ®−îc x©y dùng trong ng«n ng÷ C. C ®· ®−îc ph¸t triÓn cho kÜ nghÖ phÇn mÒm phøc t¹p vµ chøa c¸c tÝnh n¨ng m¹nh lµm cho nã mÒm dÎo ®¸ng kÓ. Gièng nh− c¸c ng«n ng÷ kh¸c trong ph¹m trï nµy, C hç trî cho c¸c cÊu tróc d÷ liÖu phøc t¹p vµ cã c¸c ®Æc tr−ng ®Þnh kiÓu hîp lÝ, cho phÐp dïng nhiÒu con trá vµ cã mét tËp phong phó c¸c to¸n tö ®Ó tÝnh to¸n vµ thao t¸c d÷ liÖu. + C¸c ng«n ng÷ h−íng ®èi t−îng: C¸c ng«n ng÷ h−íng ®èi t−îng lµm cho ng−êi kÜ s− phÇn mÒm cµi ®Æt ®−îc c¸c m« h×nh ph©n tÝch vµ thiÕt kÕ ®−îc t¹o ra b»ng c¸ch dïng OOA vµ OOD. MÆc dÇu hµng chôc ng«n ng÷ h−íng ®èi t−îng ®· ®−îc ®−a ra trong thËp kØ qua nh−ng chØ cã vµi ng«n ng÷ cã ®−îc chç ®øng cã ý nghÜa trªn thÞ tr−êng nh−: dÞ b¶n cña C (nh− C++, Objective-C), Ch−¬ng IV - 96 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn Smalltalk vµ Eiffel. C¸c dÞ b¶n h−íng ®èi t−îng cña C thu ®−îc viÖc sö dông réng r·i qua céng ®ång UNIX vµ víi nhiÒu ng−êi ph¸t triÓn c¸c hÖ thèng h−íng ®èi t−îng lÇn ®Çu tiªn. X©y dùng dùa trªn søc m¹nh cña C, c¸c dÞ b¶n h−íng sù vËt t¹o ra viÖc chuyÓn nhÞp nhµng tõ ng«n ng÷ cÊp cao, v¹n n¨ng ®−îc sö dông réng r·i nµy. Smalltalk lµ mét ng«n ng÷ h−íng ®èi t−îng “nÒn t¶ng”, ban ®Çu ®−îc ph¸t triÓn vµo ®Çu nh÷ng n¨m 1970 ®Ó th¸m hiÓm c¸c kh¸i niÖm h−íng ®èi t−îng. Ngµy nay c¸c b¶n Smalltalk ®· cã trªn mäi m¸y tÝnh, mÆc dÇu viÖc sö dông ng«n ng÷ nµy cho viÖc ph¸t triÓn c¸c s¶n phÈm vµ hÖ thèng mang tÝnh c«ng nghiÖp bÞ h¹n chÕ. Eiffel lµ mét trong nh÷ng ng«n ng÷ h−íng ®èi t−îng “míi” ®ñ m¹nh cho øng dông c«ng nghiÖp. Gièng nh− c¸c dÞ b¶n cña C vµ Smalltalk, Eiffel còng ®−a ra sù hç trî trùc tiÕp cho c¸c ®Þnh nghÜa líp, kÕ thõa, bao bäc vµ truyÒn th«ng b¸o. +C¸c ng«n ng÷ chuyªn dông: C¸c ng«n ng÷ chuyªn dông ®−îc ®Æc tr−ng bëi c¸c d¹ng có ph¸p bÊt th−êng ®· ®−îc ®Æc biÖt thiÕt kÕ cho mét øng dông riªng. Trong hµng tr¨m ng«n ng÷ chuyªn dông ®ang ®−îc dïng, cã mét sè c¸c ng«n ng÷ phæ biÕn trong kÜ nghÖ phÇn mÒm lµ: LISP, PROLOG, APL vµ FORTH. LISP lµ mét ng«n ng÷ ®Æc biÖt thÝch hîp cho thao t¸c kÝ hiÖu vµ xö lý danh s¸ch hay gÆp trong c¸c bµi to¸n tæ hîp. §−îc dïng gÇn nh− riªng cho céng ®ång trÝ tuÖ nh©n t¹o, ng«n ng÷ nµy ®Æc biÖt thÝch hîp cho viÖc chøng minh ®Þnh lÝ, t×m kiÕm theo c©y, vµ c¸c ho¹t ®éng gi¶i quyÕt vÊn ®Ò kh¸c. C¸c ch−¬ng tr×nh con ®−îc cµi ®Æt nh− c¸c hµm dïng ®Ö qui rÊt nhiÒu. V× mçi hµm LISP ®Òu lµ mét thùc thÓ riªng biÖt, nªn cã thÓ ®¹t tíi viÖc dïng l¹i b»ng c¸ch t¹o ra th− viÖn c¸c hµm nguyªn thuû. Trong nh÷ng n¨m gÇn ®©y, LIST ®· ®−îc dïng ®Ó ph¸t triÓn mét ph¹m vi réng c¸c hÖ chuyªn gia vµ “tr×nh biªn dÞch” hÖ chuyªn gia. PROLOG lµ mét ng«n ng÷ lËp tr×nh kh¸c ®· t×m ®−îc sù sö dông réng r·i trong x©y dùng hÖ chuyªn gia. Gièng nh− LISP, PROLOG ®−a ra c¸c tÝnh n¨ng hç trî cho biÓu diÔn tri thøc. Bªn trong ng«n ng÷ nµy, mét cÊu tróc d÷ liÖu thèng nhÊt gäi lµ term ®−îc dïng ®Ó x©y dùng mäi d÷ liÖu vµ mäi ch−¬ng tr×nh. Mçi ch−¬ng tr×nh bao gåm mét tËp c¸c mÖnh ®Ò biÓu diÔn cho sù kiÖn, qui t¾c vµ suy diÔn. C¶ LIST vµ PROLOG ®Òu ®Æc biÖt tu©n theo c¸c vÊn ®Ò xö lý ®èi t−îng vµ mèi quan hÖ cña chóng. Bëi lÝ do nµy, mét sè ng−êi coi LIST vµ PROLOG nh− c¸c ng«n ng÷ h−íng ®èi t−îng. Bªn c¹nh ®ã, b¶n chÊt h−íng ®èi t−îng cña LIST vµ PROLOG lµm cho mçi ng«n ng÷ ®Òu cã thÓ ®−îc ¸p dông bªn trong hoµn c¶nh cña khu«n c¶nh lµm b¶n mÉu ®èi víi kÜ nghÖ phÇn mÒm. APL lµ mét ng«n ng÷ m¹nh vµ cùc k× chÝnh x¸c ®Ó thao t¸c m¶ng vµ vÐc t¬. Ng«n ng÷ nµy gÇn nh− kh«ng hç trî cho c¸c kÕt cã cÊu tróc hay ®Þnh kiÓu d÷ liÖu. APL ®−a ra mét tËp hîp phong phó c¸c to¸n tö tÝnh to¸n vµ ®· thu ®−îc mét sè nhá ng−êi khao kh¸t gi¶i quyÕt c¸c bµi to¸n to¸n häc. RORTH lµ mét ng«n ng÷ ®−îc thiÕt kÕ cho ph¸t triÓn phÇn mÒm bé vi xö lÝ. Ng«n ng÷ nµy hç trî cho ®Þnh nghÜa c¸c hµm do ng−êi dïng x¸c ®Þnh ®−îc thùc hiÖn theo c¸ch thøc h−íng chång (stack) ®Ó cã hiÖu qu¶ vÒ tèc ®é vµ bé nhí. 4.Ng«n ng÷ thÕ hÖ thø t−: Trong toµn bé lÞch sö ph¸t triÓn phÇn mÒm, chóng ta ®· cã ý ®Þnh ph¸t sinh ra ch−¬ng tr×nh m¸y tÝnh ë møc trõu t−îng ngµy cµng cao. C¸c ng«n ng÷ thÕ hÖ thø nhÊt lµm viÖc ë møc tËp lÖnh m¸y, møc trõu t−îng thÊp nhÊt cã thÓ. C¸c ng«n ng÷ lËp tr×nh thÕ hÖ hai vµ ba ®· n©ng møc ®é biÓu diÔn ch−¬ng tr×nh m¸y tÝnh, nh−ng vÉn cßn ph¶i x¸c ®Þnh thñ tôc thuËt to¸n chi tiÕt hoµn toµn vµ ph©n biÖt. Trong thËp kØ qua, ng«n ng÷ thÕ hÖ thø t− (4GL) ®· n©ng møc ®é trõu t−îng lªn cao h¬n n÷a. Ng«n ng÷ thÕ hÖ thø t−, gièng nh− mäi ng«n ng÷ nh©n t¹o kh¸c, ®Òu cã chøa mét có ph¸p ph©n biÖt ®Ó biÓu diÔn ®iÒu khiÓn vµ cÊu tróc d÷ liÖu. Mét 4GL biÓu thÞ nh÷ng cÊu tróc nµy ë møc ®é trõu t−îng cao h¬n b»ng c¸ch xo¸ bá yªu cÇu x¸c ®Þnh chi tiÕt thuËt to¸n. C¸c ng«n ng÷ thÕ hÖ bèn tæ hîp c¸c ®Æc tr−ng thñ tôc vµ phi thñ tôc. Tøc lµ, ng«n ng÷ cã kh¶ n¨ng cho phÐp ng−êi dïng x¸c ®Þnh c¸c ®iÒu kiÖn vµ hµnh ®éng t−¬ng øng (thµnh phÇn thñ tôc) trong khi ®ång thêi cæ vò ng−êi dïng chØ ra kÕt qu¶ mong muèn (thµnh phÇn phi thñ tôc) vµ råi ¸p dông tri thøc chuyªn lÜnh vùc ®Ó ®iÒn c¸c chi tiÕt thñ tôc. Martin giíi thiÖu nh÷ng ph¹m trï ®¹i thÓ cña 4GL: +Ng«n ng÷ vÊn ®¸p: Ngµy nay, ®¹i ®a sè c¸c 4GL ®Òu ®· ®−îc ph¸t triÓn ®Ó dïng kÌm víi c¸c øng dông CSDL. Nh÷ng ng«n ng÷ vÊn ®¸p nh− thÕ cho phÐp ng−êi dïng thao t¸c th«ng tin chøa trong CSDL cã s½n theo mét c¸ch phøc t¹p. Mét sè ng«n ng÷ vÊn ®¸p yªu cÇu mét có ph¸p phøc t¹p kh«ng ®¬n gi¶n h¬n (vµ trong mét sè tr−êng hîp cßn tåi h¬n) ng«n ng÷ thÕ hÖ thø ba. +Bé sinh ch−¬ng tr×nh: Bé sinh ch−¬ng tr×nh biÓu thÞ cho mét líp c¸c 4GL kh¸c, h¬i phøc t¹p h¬n. Thay v× Ch−¬ng IV - 97 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn dùa trªn CSDL cã s½n nh− mét ®iÓm tËp trung, bé sinh ch−¬ng tr×nh cho phÐp ng−êi dïng t¹o ra c¸c ch−¬ng tr×nh ng«n ng÷ thÕ hÖ thø ba hoµn chØnh b»ng c¸ch dïng mét vµi c©u lÖnh cì lín. C¸c ng«n ng÷ lËp tr×nh møc rÊt cao nµy dïng rÊt nhiÒu trõu t−îng d÷ liÖu vµ thñ tôc. PhÇn lín c¸c bé sinh ch−¬ng tr×nh ngµy nay chØ hoµn toµn tËp trung vµo c¸c øng dông hÖ th«ng tin vµ sinh ra ch−¬ng tr×nh trong COBOL. + C¸c 4GL kh¸c: MÆc dÇu ng«n ng÷ vÊn ®¸p vµ bé sinh ch−¬ng tr×nh lµ c¸c 4GL th«ng dông nhÊt song vÉn tån t¹i c¸c ph¹m trï kh¸c nh− sau: - Ng«n ng÷ hç trî quyÕt ®Þnh: cho phÐp ng−êi “kh«ng biÕt lËp tr×nh”thùc hiÖn nhiÒu c¸ch ph©n tÝch c¸i g× x¶y ra nÕu thay ®æi tõ m« h×nh trang tÝnh hai chiÒu ®¬n gi¶n cho tíi c¸c hÖ thèng m« h×nh thèng kª phøc t¹p hay hÖ thèng m« h×nh nghiªn cøu t¸c nghiÖp. - Ng«n ng÷ lµm b¶n mÉu: ®−îc ph¸t triÓn ®Ó trî gióp cho viÖc t¹o ra c¸c b¶n mÉu b»ng c¸ch t¹o ®iÒu kiÖn thuËn tiÖn cho viÖc t¹o ra giao diÖn vµ ®èi tho¹i ng−êi dïng vµ ®−a ra mét ph−¬ng tiÖn lµm m« h×nh ho¸ d÷ liÖu. - C¸c ng«n ng÷ ®Æc t¶ h×nh thøc : cã thÓ ®−îc xem xÐt nh− 4GL khi ng«n ng÷ ®ã t¹o ra phÇn mÒm m¸y thùc hiÖn ®−îc . - C¸c c«ng cô ®−îc dïng trong m«i tr−êng m¸y tÝnh c¸ nh©n: cho phÐp ng−êi dïng lËp tr×nh ë møc trõu t−îng cao h¬n nh÷ng møc hiÖn cã. IV. 2.6 C¸c c«ng cô lËp tr×nh. IV. 2.6.1 C«ng tr×nh phÇn mÒm cã m¸y tÝnh trî gióp. CASE lµ bèn ch÷ c¸i ®Çu cña côm tõ tiÕng Anh nghÜa lµ c«ng tr×nh phÇn mÒm ®−îc trî gióp bëi m¸y tÝnh. HiÖn nay ®· cã rÊt nhiÒu c«ng cô CASE. Cã hai c¸ch ®Ó ph©n lo¹i c¸c c«ng cô CASE: i) H−íng ho¹t ®éng: dùa trªn c¸c ho¹t ®éng cña qu¸ tr×nh nh−: ®Æc t¶ yªu cÇu, thiÕt kÕ, thùc hiÖn ... ii) H−íng chøc n¨ng: dùa trªn chøc n¨ng cña c¸c c«ng cô ®ã chø kh«ng ph¶i lµ dùa trªn c¸c môc tiªu trî gióp. IV2.6.2 M«i tr−êng ph¸t triÓn phÇn mÒm. A.§¹i c−¬ng Mét m«i tr−êng ph¸t triÓn phÇn mÒm lµ mét bé c¸c c«ng cô phÇn cøng vµ phÇn mÒm chóng ®−îc kÕt l¹i ®Ó trî gióp cho viÖc s¶n sinh ra mét hÖ thèng phÇn mÒm trong mét miÒn øng dông chuyªn biÖt. Cã hai ®iÓm quan träng: i) M«i tr−êng ph¸t triÓn phÇn mÒm cã thÓ bao gåm c¸c c«ng cô phÇn cøng. ii) M«i tr−êng ph¸t triÓn phÇn mÒm th−êng chuyªn dông h¬n lµ kh¸i qu¸t. M«i tr−êng ph¸t triÓn phÇn mÒm vËn hµnh trªn mét hÖ thèng m¸y tÝnh host (hoÆc m¹ng) vµ phÇn mÒm ®−îc ph¸t triÓn nh»m vµo mét m¸y tÝnh môc tiªu. cã vµi lý do v× sao m« h×nh m¸y chñ – m¸y môc tiªu l¹i thÝch hîp nhÊt víi m«i tr−êng ph¸t triÓn phÇn mÒm: i) Trong mét sè tr−êng hîp phÇn mÒm øng dông ®ang ®−îc ph¸t triÓn cã thÓ lµ dµnh cho mét m¸y kh«ng cã c¸c tiÖn Ých ph¸t triÓn phÇn mÒm. ii) M¸y môc tiªu cã thÓ lµ h−íng øng dông nã kh«ng thÝch hîp víi c¸c m«i tr−êng ph¸t triÓn phÇn mÒm. iii) M¸y môc tiªu cã thÓ ®−îc dµnh cho viÖc vËn hµnh mét øng dông ®Æc biÖt vµ nã ph¶i lµ cã tÝnh −u tiªn trªn sù ph¸t triÓn phÇn mÒm (ch¼ng h¹n nh− hÖ xö lý giao t¸c). ¦u ®iÓm cña c¸ch thøc m¸y chñ - m¸y môc tiªu lµ c¸c tiÖn Ých vµ c¸c thµnh phÇn cho ng−êi ph¸t triÓn dïng m«i tr−êng ®ã kh«ng thÓ hîp t¸c víi nhau trong hÖ thèng øng dông ®−îc ph©n phèi. Cã thÓ ph©n lo¹i c¸c m«i tr−êng ph¸t triÓn phÇn mÒm nh− sau: i) M«i tr−êng lËp tr×nh: Trî gióp cho lËp tr×nh, thö nghiÖm, gì lçi. H¹n chÕ viÖc x¸c ®Þnh yªu cÇu, ®Æc t¶, thiÕt kÕ phÇn mÒm. ii) Bµn thî CASE : §©y lµ c¸c m«i tr−êng chñ yÕu h−íng vÒ ®Æc t¶ phÇn mÒm vµ thiÕt kÕ. Nã th−êng chØ cung cÊp mét sù trî gióp lËp tr×nh th« s¬ (ch¼ng h¹n c¸c ng«n ng÷ lËp tr×nh thÕ hÖ thø t− ). Nã th−êng thÝch hîp víi c¸c m¸y tÝnh c¸ nh©n vµ kÕt hîp víi Ch−¬ng IV - 98 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn c¸c m«i tr−êng lËp tr×nh. iii) M«i tr−êng c«ng tr×nh phÇn mÒm: Nã trî gióp s¶n sinh ra c¸c hÖ thèng lín, thä mµ chi phÝ cho viÖc b¶o tr× cßn v−ît qu¸ chi phÝ ph¸t triÓn vµ ®−îc s¶n sinh ra bëi mét ®éi chø kh«ng ph¶i lµ mét ng−êi lËp tr×nh riªng rÏ. Nã trî gióp cho tÊt c¶ mäi ho¹t ®éng ph¸t triÓn vµ b¶o tr×. Thùc tÕ biªn giíi gi÷a c¸c lo¹i ®ã kh«ng râ rµng. B.C¸c m«i tr−êng lËp tr×nh. C¸c m«i tr−êng lËp tr×nh cã thÓ ®−îc nhãm l¹i thµnh c¸c líp sau: i) C¸c m«i tr−êngmôc ®Ých kh¸i qu¸t. ii) C¸c m«i tr−êng h−íng ng«n ng÷. M«i tr−êng lËp tr×nh cã thÓ cã c¸c c«ng cô sau: i) PhÇn mÒm giao tiÕp m¸y chñ – m¸y môc tiªu. ii) PhÇn mÒm b¾t ch−íc m¸y môc tiªu. iii) C¸c bé biªn dÞch chÐo. iv) C¸c c«ng cô thö nghiÖm vµ gì lçi. v) C¸c c«ng cô qu¶n lý cÊu h×nh. vi) C¸c c«ng cô giao tiÕp. C.Bµn thî CASE C¸c thµnh phÇn ®iÓn h×nh cña bµn thî CASE lµ: i) HÖ so¹n th¶o biÓu ®å. ii) C¸c tiÖn Ých ph©n tÝch thiÕt kÕ vµ kiÓm tra. iii) C¸c tiÖn Ých ng«n ng÷ hái. iv) C¸c tiÖn Ých tõ ®iÓn d÷ liÖu. v) C¸c tiÖn Ých sinh ra b¸o c¸o. vi) C¸c c«ng cô t¹o d¹ng cho phÐp viÖc ®Þnh d¹ng mµn h×nh vµ t− liÖu lµ ®−îc ®Æc t¶. vii) C¸c tiÖn Ých xuÊt nhËp khÈu. viii) Trî gióp c¸c bé sinh m· cèt tù ®éng tõ thiÕt kÕ cã trong kho trung t©m. C¸c hÖ bµn thî CASE th−êng chñ yÕu dïng ®Ó ph¸t triÓn c¸c hÖ thèng xö lý d÷ liÖu. Cã ng−êi ®· minh ®Þnh mét sè c¸c khiÕm khuyÕt cña bµn thî CASE nh− sau: i) Nã kh«ng tÝch hîp ®−îc víi c¸c c«ng cô chuÈn bÞ t− liÖu kh¸c. TiÖn Ých xuÊt nhËp th−êng lµ g¾n víi v¨n b¶n ASCII. ii) ThiÕu chuÈn ho¸, trao ®æi th«ng tin gi÷a c¸c bµn thî kh¸c nhau lµ khã kh¨n hoÆc kh«ng thÓ. iii) ThiÕu tiÖn Ých cho phÐp mét ph−¬ng ph¸p kÕt nèi vµo mét øng dông hoÆc mét líp øng dông. iv) TiÖn Ých ®Ó t¹o ra tµi liÖu chÊt l−îng cao thiÕu phæ qu¸t. v) TiÖn Ých lËp biÓu ®å lµ chËm ch¹p. IV.3.Phong c¸ch lËp tr×nh Phong c¸ch lËp tr×nh bao hµm mét triÕt lÝ vÒ lËp tr×nh nhÊn m¹nh tíi tÝnh ®¬n gi¶n vµ râ rµng. C¸c yÕu tè cña phong c¸ch bao gåm: tµi liÖu (møc ch−¬ng tr×nh gèc) bªn trong, ph−¬ng ph¸p khai b¸o d÷ liÖu, c¸ch tiÕp cËn tíi viÖc x©y dùng c©u lÖnh vµ c¸c kÜ thuËt vµo/ra. IV.3.1.Tµi liÖu ch−¬ng tr×nh Tµi liÖu bªn trong cña ch−¬ng tr×nh gèc b¾t ®Çu víi viÖc chän lùa c¸c tªn gäi ®Þnh danh (biÕn vµ nh·n), tiÕp tôc víi vÞ trÝ vµ thµnh phÇn cña viÖc chó thÝch, vµ kÕt luËn víi c¸ch tæ chøc trùc quan cña Ch−¬ng IV - 99 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn ch−¬ng tr×nh. ViÖc lùa chän c¸c tªn gäi ®Þnh danh cã nghÜa chÝnh lµ ®iÒu chñ chèt cho viÖc hiÓu ch−¬ng tr×nh. Nh÷ng ng«n ng÷ giíi h¹n tªn biÕn hay nh·n chØ trong vµi kÝ tù tù nã ®· mang nghÜa m¬ hå. Cho dï mét ch−¬ng tr×nh nhá th× mét tªn gäi cã nghÜa còng lµm t¨ng tÝnh dÔ hiÓu. Theo ng«n tõ cña m« h×nh có ph¸p/ng÷ nghÜa tªn cã ý nghÜa lµm “®¬n gi¶n ho¸ viÖc chuyÓn ®æi tõ có ph¸p ch−¬ng tr×nh sang cÊu tróc ng÷ nghÜa bªn trong”. Mét ®iÒu râ rµng lµ: phÇn mÒm ph¶i chøa tµi liÖu bªn trong. Lêi chó thÝch cung cÊp cho ng−êi ph¸t triÓn mét ý nghÜa truyÒn th«ng víi c¸c ®éc gi¶ kh¸c vÒ ch−¬ng tr×nh gèc. Lêi chó thÝch cã thÓ cung cÊp mét h−íng dÉn râ rÖt ®Ó hiÓu trong pha cuèi cïng cña kÜ nghÖ phÇn mÒm-b¶o tr×. Cã nhiÒu h−íng dÉn ®· ®−îc ®Ò nghÞ cho viÖc viÕt lêi chó thÝch. C¸c chó thÝch më ®Çu vµ chó thÝch chøc n¨ng lµ hai ph¹m trï ®ßi hái c¸ch tiÕp cËn cã h¬i kh¸c. +Lêi chó thÝch më ®Çu nªn xuÊt hiÖn ë ngay ®Çu cña mäi modul. §Þnh d¹ng cho lêi chó thÝch nh− thÕ lµ: 1. Mét ph¸t biÓu vÒ môc ®Ých chØ râ chøc n¨ng m« ®un. 2. M« t¶ giao diÖn bao gåm: a) Mét mÉu “d·y lêi gäi”. b) M« t¶ vÒ mäi ®èi t−îng. c) Danh s¸ch tÊt c¶ c¸c m« ®un thuéc cÊp. 3. Th¶o luËn vÒ d÷ liÖu thÝch hîp (nh− c¸c biÕn quan träng vµ nh÷ng h¹n chÕ, giíi h¹n vÒ c¸ch dïng chóng) vµ c¸c th«ng tin quan träng kh¸c. 4. LÞch sö ph¸t triÓn bao gåm: a) Tªn ng−êi thiÕt kÕ modul (t¸c gi¶). b) Tªn ng−êi xÐt duyÖt (kiÓm to¸n) vµ ngµy th¸ng. c) Ngµy th¸ng söa ®æi vµ m« t¶ söa ®æi. +C¸c chó thÝch chøc n¨ng ®−îc nhóng vµo bªn trong th©n cña ch−¬ng tr×nh gèc vµ ®−îc dïng ®Ó m« t¶ cho c¸c hµm xö lý. Bªn c¹nh ®ã, lêi chó thÝch m« t¶ nªn : • M« t¶ c¸c khèi ch−¬ng tr×nh thay v× chó thÝch cho tõng dßng. • Dïng dßng trèng hay tôt lÒ ®Ó cho lêi chó thÝch cã thÓ ®−îc ph©n biÖt víi ch−¬ng tr×nh. • Ph¶i ®óng ®¾n: mét lêi chó thÝch kh«ng ®óng hay g©y ra hiÓu sai th× cßn tåi tÖ h¬n lµ kh«ng cã chó thÝch nµo c¶. Víi nh÷ng tªn gäi t−îng tr−ng ®óng ®¾n vµ viÖc chó thÝch tèt, viÖc lµm tµi liÖu bªn trong thÝch hîp sÏ ®−îc b¶o ®¶m. Khi mét thiÕt kÕ thñ tôc chi tiÕt ®−îc biÓu diÔn b»ng c¸ch dïng mét ng«n ng÷ thiÕt kÕ ch−¬ng tr×nh th× tµi liÖu thiÕt kÕ cã thÓ ®−îc nhóng trùc tiÕp vµo trong v¨n b¶n ch−¬ng tr×nh gèc nh− nh÷ng c©u chó thÝch. KÜ thuËt nµy ®Æc biÖt cã Ých khi viÖc lµm tµi liÖu ®−îc thùc hiÖn trong hîp ng÷ vµ gióp ®¶m b¶o r»ng c¶ ch−¬ng tr×nh vµ thiÕt kÕ sÏ ®−îc b¶o tr× khi nh÷ng thay ®æi ®−îc thùc hiÖn cho c¶ hai. D¹ng ch−¬ng tr×nh gèc nh− nã xuÊt hiÖn trong b¶n in lµ mét ®ãng gãp quan träng cho tÝnh dÔ ®äc. ViÖc tôt lÒ ch−¬ng tr×nh gèc chØ ra kÕt cÊu vµ khèi logic cña ch−¬ng tr×nh sao cho nh÷ng thuéc tÝnh nµy lµ thÊy ®−îc so víi lÒ bªn tr¸i. Gièng nh− viÖc chó thÝch, c¸ch tiÕp cËn tèt nhÊt tíi viÖc tôt lÒ lµ nªn ®Ó më cho tranh luËn. ViÖc tôt lÒ thñ c«ng cã thÓ trë nªn phøc t¹p khi cã sù söa ®æi ch−¬ng tr×nh vµ kinh nghiÖm chØ ra r»ng khi ®· tÝch luü ®ñ hiÓu biÕt th× sÏ t¨ng c−êng ®−îc viÖc ®Ó lÒ cho khíp. Cã lÏ c¸ch tiÕp cËn tèt nhÊt lµ dïng bé ®Þnh d¹ng ch−¬ng tr×nh tù ®éng (nh− c«ng cô CASE) sÏ ®Æt ®óng viÖc tôt lÒ cho ch−¬ng tr×nh gèc. B»ng c¸ch xo¸ bá ®i g¸nh nÆng cña viÖc lµm tôt lÒ cho ng−êi lËp tr×nh, cã thÓ c¶i thiÖn khu«n d¹ng ch−¬ng tr×nh víi t−¬ng ®èi Ýt c«ng søc. IV.3.2.Khai b¸o d÷ liÖu §é phøc t¹p vµ viÖc tæ chøc cÊu tróc d÷ liÖu ®−îc x¸c ®Þnh trong b−íc thiÕt kÕ. Phong c¸ch khai b¸o d÷ liÖu ®−îc thiÕt lËp khi ch−¬ng tr×nh ®−îc sinh ra. Mét sè h−íng dÉn t−¬ng ®èi ®¬n gi¶n Ch−¬ng IV - 100 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn cã thÓ ®−îc lËp ra ®Ó lµm cho d÷ liÖu ®−îc dÔ hiÓu h¬n vµ ®¬n gi¶n h¬n khi b¶o tr×. Thø tù khai b¸o d÷ liÖu nªn ®−îc chuÈn ho¸ cho dï ng«n ng÷ lËp tr×nh kh«ng cã yªu cÇu b¾t buéc nµo vÒ ®iÒu ®ã. Ch¼ng h¹n,thø tù khai b¸o cho mét m« ®un FOTRAN cã thÓ lµ: 1. Mäi khai b¸o t−êng minh (®Ó cã chÊt l−îng cao, mäi biÕn ®Òu nªn khai b¸o): INTEGER,REAL,DOUBLE PRECISION,... 2. Mäi khèi d÷ liÖu toµn côc: COMMON/tªn khèi/... 3. Mäi m¶ng côc bé: DIMENSION tªn m¶ng vµ chiÒu 4. Mäi khai b¸o tÖp: DEFINE FILE,OPEN,CLOSE Thø tù t¹o ra c¸c thuéc tÝnh ®Ó dÔ t×m, cho phÐp xóc tiÕn kiÓm thö ,gì lçi vµ b¶o tr×. Khi cã nhiÒu tªn biÕn ®−îc khai b¸o trong mét c©u lÖnh th× viÖc s¾p xÕp theo trËt tù ch÷ c¸i cho c¸c tªn gäi ®ã còng cã gi¸ trÞ. T−¬ng tù, d÷ liÖu toµn côc cã nh·n (nh− khèi chung trong FOTRAN) còng nªn ®−îc lËp thø tù theo b¶ng ch÷. NÕu thiÕt kÕ cã m« t¶ tr−íc cÊu tróc d÷ liÖu phøc t¹p th× nªn dïng viÖc chó thÝch nh÷ng ®iÓm ®Æc thï cè h÷u trong viÖc cµi ®Æt ng«n ng÷ lËp tr×nh. Ch¼ng h¹n, cÊu tróc d÷ liÖu danh s¸ch mãc nèi trong C hay kiÓu d÷ liÖu ng−êi dïng x¸c ®Þnh trong PASCAL cã thÓ yªu cÇu tµi liÖu bæ sung cã chøa trong lêi chó thÝch cña nã. IV.3.3.X©y dùng c©u lÖnh ViÖc x©y dùng luång logic phÇn mÒm ®−îc thiÕt lËp trong khi thiÕt kÕ. ViÖc x©y dùng tõng c©u lÖnh tuy nhiªn l¹i lµ mét phÇn cña b−íc lËp tr×nh. ViÖc x©y dùng c©u lÖnh nªn tu©n theo mét qui t¾c quan träng h¬n c¶: mçi c©u lÖnh nªn ®¬n gi¶n vµ trùc tiÕp; ch−¬ng tr×nh kh«ng nªn bÞ xo¾n xÝt ®Ó ®¹t tÝnh hiÖu qu¶. NhiÒu ng«n ng÷ lËp tr×nh cho phÐp nhiÒu c©u lÖnh trªn mét dßng.KhÝa c¹nh tiÕt kiÖm kh«ng gian cña t×nh n¨ng nµy khã mµ biÖn minh bëi tÝnh khã ®äc n¶y sinh. CÊu tróc chu tr×nh vµ c¸c phÐp to¸n ®iÒu kiÖn ®−îc chøa trong ®o¹n trªn ®Òu bÞ che lÊp bëi c¸ch x©y dùng nhiÒu c©u lÖnh trªn mét dßng. C¸ch x©y dùng c©u lÖnh ®¬n vµ viÖc tôt lÒ minh ho¹ cho c¸c ®Æc tr−ng logic vµ chøc n¨ng cña ®o¹n nµy. C¸c c©u lÖnh ch−¬ng tr×nh gèc riªng lÎ cã thÓ ®−îc ®¬n gi¶n ho¸ bëi: • ViÖc tr¸nh dïng c¸c phÐp kiÓm tra ®iÒu kiÖn phøc t¹p • Khö bá c¸c phÐp kiÓm tra ®iÒu kiÖn phñ ®Þnh • Tr¸nh lång nhau nhiÒu gi÷a c¸c ®iÒu kiÖn hay chu tr×nh • Dïng dÊu ngoÆc ®Ó lµm s¸ng tá c¸c biÓu thøc logic hay sè häc • Dïng dÊu c¸ch vµ/ hoÆc c¸c kÝ hiÖu dÔ ®äc ®Ó lµm s¸ng tá néi dung c©u lÖnh • ChØ dïng c¸c tÝnh n¨ng chuÈn ANSI • Suy nghÜ: LiÖu ta cã thÓ hiÓu ®−îc ®iÒu nµy nÕu ta kh«ng lµ ng−êi lËp tr×nh cho nã kh«ng ? Tõng h−íng dÉn trªn ®Òu cè g¾ng “gi÷ cho ®¬n gi¶n “ IV.3.4.Vµo/ra Phong c¸ch vµo vµ ra ®−îc thiÕt lËp trong khi ph©n tÝch thiÕt kÕ yªu cÇu phÇn mÒm, kh«ng ph¶i khi lËp tr×nh. Tuy nhiªn, c¸ch thøc mµ vµo/ ra ®−îc cµi ®Æt cã thÓ lµ ®Æc tr−ng x¸c ®Þnh viÖc céng ®ång ng−êi sö dông chÊp nhËn hÖ thèng. Phong c¸ch vµo vµ ra sÏ thay ®æi theo møc ®é t−¬ng t¸c con ng−êi. Víi vµo/ra theo l« th× c¸ch tæ chøc c¸i vµo l«gic, kiÓm tra lçi vµo/ra cã nghÜa, phôc håi lçi vµo/ra tèt vµ ®Þnh d¹ng b¸o c¸o ra hîp lý lµ nh÷ng ®Æc tr−ng mong muèn.Víi vµo/ra t−¬ng t¸c, mét s¬ ®å ®−a vµo cã h−íng dÉn, ®¬n gi¶n, viÖc kiÓm tra lçi kü l−ìng vµ phôc håi, c¸i ra cho con ng−êi vµ sù nhÊt qu¸n cña ®Þnh d¹ng vµo ra trë thµnh mèi quan t©m chñ yÕu. BÊt kÓ tíi b¶n chÊt theo l« hay t−¬ng t¸c cña phÇn mÒm, mét sè h−íng dÉn phong c¸ch vµo /ra nªn ®−îc xÐt tíi trongthiÕt kÕ vµ lËp tr×nh: • Lµm hîp lÖ mäi c¸i vµo • KiÓm tra sù tin cËy cña c¸c tæ hîp kho¶n môc vµo quan träng. Ch−¬ng IV - 101 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn • Gi÷ cho ®Þnh d¹ng c¸i vµo ®¬n gi¶n. • Dïng c¸c chØ b¸o cuèi d÷ liÖu thay v× yªu cÇu ng−êi dïng x¸c ®Þnh “sè c¸c kho¶n môc”. • §Æt nh·n cho yªu cÇu c¸i vµo t−¬ng t¸c, x¸c ®Þnh chän lùa cã s½n hay g¾n c¸c gi¸ trÞ • Gi÷ cho ®Þnh d¹ng c¸i vµo thèng nhÊt khi mét ng«n ng÷ lËp tr×nh cã c¸c yªu cÇu ®Þnh d¹ng nghiªm ngÆt. Phong c¸ch cña vµo/ra bÞ ¶nh h−ëng bëi nhiÒu ®Æc tr−ng kh¸c nh− thiÕt bÞ vµo/ra (nh− kiÓu thiÕt bÞ cuèi hay tr¹m lµm viÖc, thiÕt bÞ ®å ho¹ m¸y tÝnh, chuét v.v...), ®é phøc t¹p cña ng−êi dïng, vµ m«i tr−êng truyÒn thèng. IV.4.TÝnh hiÖu qu¶ Trong hÖ thèng kÜ nghÖ tèt, cã mét khuynh h−íng tù nhiªn ®Ó dïng c¸c tµi nguyªn chñ chèt mét c¸ch hiÖu qu¶. C¸c chu tr×nh bé xö lÝ vµ vÞ trÝ bé nhí th−êng ®−îc coi nh− c¸c tµi nguyªn chñ chèt. Thø nhÊt, tÝnh hiÖu qu¶ lµ mét yªu cÇu hoµn thiÖn vµ do ®ã nªn ®−îc thiÕt lËp trong ph©n tÝch yªu cÇu phÇn mÒm. Thø hai lµ tÝnh hiÖu qu¶ ®−îc c¶i thiÖn víi thiÕt kÕ tèt. Thø ba lµ tÝnh hiÖu qu¶ cña ch−¬ng tr×nh vµ tÝnh ®¬n gi¶n cña ch−¬ng tr×nh ®i ®«i víi nhau. Nãi chung, kh«ng nªn g¹t bá tÝnh râ rµng, dÔ ®äc hay tÝnh ®óng ®¾n chØ ®Ó cã ®−îc sù c¶i thiÖn nho nhá vÒ tÝnh hiÖu qu¶. IV.4.1.Kü thuËt lËp tr×nh h−íng hiÖu qu¶ LËp tr×nh lµ mét nghÒ thñ c«ng. Nã phô thuéc vµo kÜ x¶o c¸ nh©n, sù chó ý ®Õn c¸c chi tiÕt vµ kiÕn thøc vÒ viÖc lµm nh− thÕ nµo ®Ó sö dông c¸c c«ng cô s½n cã theo c¸ch thøc tèt nhÊt. Trong phÇn nµy chØ tËp trung vµo mét vµi kÜ thuËt chuyªn biÖt ®−îc dïng nh»m ®¹t ®−îc mét hÖ thèng tin cËy ®−îc, chuyÓn ®−îc vµ dïng l¹i ®−îc c¸c thµnh phÇn. Nhu cÇu c¸c hÖ thèng ®¸ng tin lµ ®ang t¨ng lªn hiÓn nhiªn lµ v× c¸c hÖ thèng m¸y tÝnh ®· lan kh¾p n¬i. HiÖn thêi cã hai kÜ thuËt ®Ó viÕt c¸c ch−¬ng tr×nh ®¸ng tin: tr¸nh lçi vµ thø lçi. A) Tr¸nh lçi: TÊt c¶ c¸c kÜ s− phÇn mÒm h¼n ®Òu muèn lµm ra c¸c phÇn mÒm kh«ng cã lçi. Mét qu¸ tr×nh ph¸t triÓn chØ dùa vµo viÖc ph¸t hiÖn lçi vµ khö lçi chø kh«ng ®Ó ý ®Õn tr¸nh lçi lµ mét qóa tr×nh ch−a thËt tèt. PhÇn mÒm kh«ng cã lçi nãi ë ®©y lµ phÇn mÒm tu©n theo ®óng ®Æc t¶. Nãi chung, nã cã thÓ cã lçi trong ®Æc t¶ hoÆc cã thÓ kh«ng ph¶n ¸nh ®óng c¸c nhu cÇu cña ng−êi sö dông. VËy lµ phÇn mÒm kh«ng cã lçi kh«ng nhÊt thiÕt lµ c¸c phÇn mÒm lu«n lu«n hµnh xö nh− ng−êi dïng dù ®o¸n. Chi phÝ Sè lçi cßn l¹i. H×nh 13: Chi phÝ tÝnh theo sè lçi cßn l¹i. ViÖc ph¸t triÓn phÇn mÒm kh«ng cã lçi ®ßi hái chi phÝ nhiÒu. Khi mµ mét sè lçi ®· ®−îc th¸o khái ch−¬ng tr×nh th× gi¸ c¶ cho viÖc t×m vµ th¸o c¸c lçi cßn l¹i cã xu h−íng t¨ng theo hµm sè mò. Do ®ã mét tæ chøc cã thÓ quyÕt ®Þnh chÊp nhËn mét vµi lçi cßn l−u l¹i. TÝnh vÒ mÆt gi¸ c¶ th× thµ r»ng chÞu tiÒn chi tr¶ cho c¸c phÝ tæn cña hÖ thèng do c¸c lçi ®ã g©y ra cßn h¬n lµ ®i ph¸t hiÖn vµ th¸o gì c¸c lçi ®ã tr−íc khi ph©n phèi. Ch−¬ng IV - 102 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn Tr¸nh lçi vµ ph¸t triÓn phÇn mÒm v« lçi dùa trªn: i) S¶n phÈm cña mét ®Æc t¶ hÖ thèng chÝnh x¸c. ii) ChÊp nhËn mét c¸ch tiÕp cËn thiÕt kÕ phÇn mÒm dùa trªn viÖc che dÊu th«ng tin vµ bao gãi th«ng tin. iii) T¨ng c−êng duyÖt l¹i trong qu¸ tr×nh ph¸t triÓn vµ thÈm ®Þnh hÖ thèng phÇn mÒm. iv) ChÊp nhËn triÕt lý chÊt l−îng tæ chøc: chÊt l−îng lµ b¸nh l¸i cña qu¸ tr×nh phÇn mÒm. v) ViÖc lËp kÕ ho¹ch cÈn thËn cho viÖc thö nghiÖm hÖ thèng ®Ó tr−ng ra c¸c lçi mµ c¸c lçi nµy ch−a ®−îc ph¸t hiÖn trong qu¸ tr×nh duyÖt l¹i vµ ®Ó ®Þnh l−îng ®é tin cËy cña hÖ thèng. Cã hai quan t©m lín hç trî tr¸nh lçi, ®ã lµ: • LËp tr×nh cã cÊu tróc ThuËt ng÷ nµy ®−îc ®Æt ra tõ cuèi nh÷ng n¨m 60 vµ cã nghÜa lµ lËp tr×nh mµ kh«ng dïng goto, lËp tr×nh chØ dïng c¸c vßng lÆp while vµ c¸c ph¸t biÓu if ®Ó x©y dùng ®iÒu khiÓn vµ trong thiÕt kÕ th× dïng c¸ch tiÕp cËn trªn- xuèng. ViÖc thõa nhËn lËp tr×nh cã cÊu tróc lµ quan träng bëi v× nã lµ b−íc ®Çu tiªn b−íc tõ c¸ch tiÕp cËn kh«ng khu«n phÐp tíi ph¸t triÓn phÇn mÒm. LËp tr×nh cã cÊu tróc buéc ng−êi lËp tr×nh ph¶i nghÜ cÈn thËn vÒ ch−¬ng tr×nh cña hä, vµ v× vËy nã Ýt t¹o ra sai lÇm trong khi ph¸t triÓn. LËp tr×nh cã cÊu tróc lµm cho ch−¬ng tr×nh cã thÓ ®−îc ®äc mét c¸ch tuÇn tù vµ do ®ã dÔ hiÓu vµ dÔ thanh tra. Tuy nhiªn nã chØ lµ b−íc ®Çu tiªn trong viÖc lËp tr×nh nh»m ®¹t ®é tin cËy tèt. N¨m 1968 Dijjkstra ®· nhËn thÊy r»ng ph¸t biÓu goto lµ mét cÊu tróc lËp tr×nh hay sai. Cã mét vµi cÊu tróc kh¸c còng thÕ, chóng hay dÉn tíi c¸c lçi trong hÖ thèng: i) C¸c sè thùc dÊu chÊm ®éng. ii) C¸c con trá. iii) Song song. iv) §Ö quy. v) C¸c ng¾t. C¸c cÊu tróc nµy cã Ých, nh−ng ng−êi lËp tr×nh nªn dïng chóng mét c¸ch cÈn thËn. • Ph©n quyÒn truy cËp d÷ liÖu: Nguyªn lý an ninh ®−îc thõa nhËn bëi c¸c tæ chøc vò trang lµ nguyªn lý nhu cÇu ®Ó biÕt. ChØ cã c¸c c¸ nh©n cã nhu cÇu biÕt mét mÈu th«ng tin nµo ®ã míi ®−îc tiÕn hµnh c¸c nhiÖm vô cho c¸c th«ng tin ®ã. C¸c th«ng tin kh«ng trùc tiÕp liªn quan ®Õn c«ng viÖc cña hä th× ph¶i bÞ kh−íc tõ. Khi lËp tr×nh ng−êi ta còng tu©n theo mét nguyªn lý t−¬ng tù cho viÖc truy cËp d÷ liÖu hÖ thèng. Mçi thµnh phÇn ch−¬ng tr×nh chØ ®−îc phÐp truy cËp ®Õn d÷ liÖu nµo cÇn thiÕt ®Ó thùc hiÖn chøc n¨ng cña nã. ¦u ®iÓm cña viÖc che dÊu th«ng tin lµ c¸c th«ng tin bÞ che dÊu kh«ng thÓ bÞ sËp ®æ bëi c¸c thµnh phÇn ch−¬ng tr×nh mµ ®−îc xem r»ng kh«ng dïng th«ng tin ®ã. BiÓu diÔn d÷ liÖu cã thÓ ®−îc thay ®æi mµ kh«ng ph¶i thay ®æi c¸c thµnh phÇn kh¸c cã sö dông th«ng tin ®ã. B) Thø lçi Ngay víi mét hÖ v« lçi th× vÉn cÇn mét tiÖn Ých thø lçi: ®ã lµ v× cã thÓ cã c¸c lçi ®Æc t¶. Mét tiÖn Ých thø lçi lµ cÇn thiÕt cho mét hÖ thèng ®¸ng tin. Cã bèn ho¹t ®éng cÇn ph¶i tiÕn hµnh nÕu hÖ thèng lµ thø lçi: i) Ph¸t hiÖn lçi. ii) §Þnh ra møc ®é thiÖt h¹i. iii) Håi phôc sau khi gÆp lçi. HÖ thèng ph¶i håi phôc vÒ tr¹ng th¸i mµ nã biÕt lµ an toµn. Ch−¬ng IV - 103 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn Còng cã thÓ lµ chØnh lý tr¹ng th¸i bÞ huû ho¹i (håi phôc tiÕn), còng cã thÓ lµ lui vÒ mét tr¹ng th¸i tr−íc mµ an toµn (håi phôc lïi). iv) Ch÷a lçi: C¶i tiÕn hÖ thèng ®Ó cho lçi ®ã kh«ng xuÊt hiÖn n÷a. trong nhiÒu tr−êng hîp sù thÊt b¹i cña phÇn mÒm lµ tµng h×nh vµ g©y ra bëi mét tæ hîp cña th«ng tin vµo. C) Xö lý bÊt th−êng Mét sai lÇm nµo ®ã hoÆc mét sù cè bÊt ngê xuÊt hiÖn ®−îc gäi lµ mét bÊt th−êng. C¸c bÊt th−êng cã thÓ do phÇn cøng còng cã thÓ do phÇn mÒm. Khi mµ mét bÊt th−êng kh«ng ®−îc dù ®o¸n th× bé ®iÒu khiÓn sÏ chuyÓn cho c¬ chÕ xö lý hÖ thèng bÊt th−êng. NÕu mét bÊt th−êng ®· ®−îc dù ®o¸n th× m· ph¶i baogåm c¶ viÖc ph¸t hiÖn vµ xö lý bÊt th−êng ®ã. HÇu hÕt c¸c ng«n ng÷ lËp tr×nh lµ kh«ng cã c¸c tiÖn Ých ®Ó ph¸t hiÖn vµ xö lý bÊt th−êng. C¸c bÊt th−êng cã thÓ ®−îc ghi l¹i b»ng c¸ch dïng mét biÕn Bool nh»m chØ ra r»ng cã mét bÊt th−êng ®· xuÊt hiÖn. D) LËp tr×nh phßng thñ LËp tr×nh phßng thñ lµ c¸ch ph¸t triÓn ch−¬ng tr×nh mµ ng−êi lËp tr×nh gi¶ ®Þnh r»ng c¸c m©u thuÉn hoÆc c¸c lçi ch−a ®−îc ph¸t hiÖn cã thÓ tån t¹i trong ch−¬ng tr×nh. Ph¶i cã phÇn mÒm kiÓm tra tr¹ng th¸i hÖ thèng sau khi biÕn ®æi vµ ph¶i ®¶m b¶o r»ng sù biÕn ®æi tr¹ng th¸i lµ kiªn ®Þnh. NÕu ph¸t hiÖn mét m©u thuÉn th× viÖc biÕn ®æi tr¹ng th¸i lµ ph¶i rót l¹i vµ tr¹ng th¸i ph¶i trë vÒ tr¹ng th¸i ®óng ®¾n tr−íc ®ã. LËp tr×nh phßng thñ lµ mét c¸ch thø lçi, mµ ®−îc tiÕn hµnh kh«ng cÇn bé ®iÒu khiÓn thø lçi. VÒ c¬ b¶n qu¸ tr×nh vÉn lµ: ph¸t hiÖn lçi, ®¸nh gi¸ lçi vµ phôc håi sau lçi. Nãi chung mét lçi g©y ra mét sù sôp ®æ tr¹ng th¸i: c¸c biÕn tr¹ng th¸i ®−îc g¸n c¸c trÞ kh«ng hîp luËt. Ng«n ng÷ lËp tr×nh nh− Ada cho phÐp ph¸t hiÖn ra c¸c lçi ®ã ngay trong thêi gian biªn dÞch. Tuy nhiªn viÖc kiÓm tra biªn dÞch chØ h¹n chÕ cho c¸c gi¸ trÞ tÜnh vµ mét vµi phÐp kiÓm tra thêi gian thùc lµ kh«ng thÓ tr¸nh ®−îc. Mét c¸ch ®Ó ph¸t hiÖn lçi trong ch−¬ng tr×nh Ada lµ dïng c¬ chÕ xö lý bÊt th−êng kÕt hîp víi ®Æc t¶ miÒn trÞ. Håi phôc lçi lµ mét qu¸ tr×nh c¶i biªn kh«ng gian tr¹ng th¸i cña hÖ thèng sao cho hiÖu øng cña lçi lµ nhá nhÊt vµ hÖ thèng cã thÓ tiÕp tôc vËn hµnh, cã lÏ lµ trong mét møc suy gi¶m. Håi phôc tiÕn liªn quan ®Õn viÖc cè g¾ng chØnh l¹i tr¹ng th¸i hÖ thèng. Håi phôc lïi liªn quan ®Õn viÖc l−u tr¹ng th¸i cña hÖ thèng ë mét tr¹ng th¸i ®óng ®· biÕt. Håi phôc tiÕn th−êng lµ mét chuyªn biÖt øng dông. Cã hai t×nh thÕ chung mµ khi ®ã håi phôc tiÕn cã thÓ thµnh c«ng: 1) Khi d÷ liÖu m· bÞ sôp. ViÖc sö dông kü thuËt m· ho¸ thÝch hîp b»ng c¸ch thªm c¸c d÷ liÖu d− thõa vµo d÷ liÖu cho phÐp söa sai khi ph¸t hiÖn lçi. 2) Khi cÊu tróc nèi bÞ sôp. NÕu c¸c con trá tiÕn vµ lïi ®· cã trong cÊu tróc d÷ liÖu th× cÊu tróc ®ã cã thÓ t¸i t¹o nÕu nh− cßn ®ñ c¸c con trá ch−a bÞ sôp. Kü thuËt nµy th−êng ®−îc dïng cho viÖc söa ch÷a hÖ thèng tÖp vµ c¬ së d÷ liÖu. Håi phôc lïi lµ mét kü thuËt ®¬n gi¶n liªn quan ®Õn viÖc duy tr× c¸c chi tiÕt cña tr¹ng th¸i an toµn vµ cÊt gi÷ tr¹ng th¸i ®ã khi mµ sai lÇm ®· bÞ ph¸t hiÖn. HÇu hÕt c¸c hÖ qu¶n trÞ c¬ së d÷ liÖu ®Òu cã bé håi phôc lçi. CSDL chØ cËp nhËt d÷ liÖu mét khi giao dÞch ®· hoµn tÊt vµ kh«ng ph¸t hiÖn ®−îc vÊn ®Ò g×. NÕu giao dÞch thÊt b¹i th× CSDL kh«ng ®−îc cËp nhËt. Mét kü thuËt kh¸c lµ thiÕt lËp c¸c ®iÓm kiÓm tra th−êng kú mµ chóng lµ c¸c b¶n sao cña tr¹ng th¸i hÖ thèng. Khi mµ mét lçi ®−îc ph¸t hiÖn th× tr¹ng th¸i an toµn ®ã ®−îc t¸i l−u kho tõ ®iÓm kiÓm tra gÇn nhÊt. Tr−êng hîp hÖ thèng dÝnh lÝu tíi nhiÒu qu¸ tr×nh hîp t¸c th× d·y c¸c giao tiÕp cã thÓ lµ c¸c ®iÓm kiÓm tra cña c¸c qu¸ tr×nh ®ã kh«ng ®ång bé vµ ®Ó håi phôc th× mçi qu¸ tr×nh ph¶i trë l¹i tr¹ng th¸i ban ®Çu cña nã. Ch−¬ng IV - 104 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn E) Sö dông l¹i Mét ®Æc tr−ng cña c«ng tr×nh häc lµ sö dông c¸ch tiÕp cËn thiÕt kÕ hÖ thèng mµ nã sö dông tèi ®a c¸c thµnh phÇn ®· tån t¹i. Ng−êi kü s− thiÕt kÕ kh«ng ®Æc t¶ mét thiÕt kÕ mµ trong ®ã mçi thµnh phÇn ®· ®−îc chÕ t¹o nh−ng dùa vµo thiÕt kÕ c¸c thµnh phÇn ®· ®−îc nghiªn cøu hoÆc thö nghiÖm trong c¸c hÖ thèng kh¸c. Ch−a cã mét c¬ së chung nµo vÒ viÖc dïng l¹i c¸c thµnh phÇn phÇn mÒm víi t− liÖu ®−îc phæ biÕn réng r·i ®−îc dïng ®Ó thiÕt kÕ phÇn mÒm. Tuy vËy, chóng ta cÇn quan t©m ®Õn nh÷ng vÊn ®Ò sau ®©y: • Ph©n lo¹i thµnh phÇn dïng l¹i ®−îc i) C¸c hÖ øng dông. ii) C¸c hÖ con. ThÝ dô hÖ ®ä mÉu ®−îc ph¸t triÓn nh− lµ mét phÇn cña hÖ xö lý v¨n b¶n cã thÓ ®−îc dïng l¹i trong mét hÖ qu¶n trÞ c¬ së d÷ liÖu. iii) C¸c m« ®un hoÆc c¸c ®èi t−îng. iv) C¸c hµm. • Ph¸t triÓn phÇn mÒm ®Ó dïng l¹i ®−îc ViÖc sö dông l¹i mét c¸ch hÖ thèng ®ßi hái mét c¬ së t− liÖu ®−îc xÕp theo danh môc cña c¸c thµnh phÇn dïng l¹i ®−îc. Quan niÖm sai lÇm lµ c¸c thµnh phÇn nµy ®· s½n cã trong c¸c hÖ ®ang tån t¹i vµ mét th− viÖn c¸c thµnh phÇn cã thÓ ®−îc t¹o ra mét c¸ch kinh tÕ b»ng c¸ch trÝch chóng ra vµ viÕt t− liÖu cho chóng. Sù thËt c¸c thµnh phÇn ®−îc t¹o ra nh− lµ mét phÇn cña mét øng dông lµ kh«ng ch¾c sÏ dïng l¹i ®−îc. C¸c thµnh phÇn nµy h−íng vÒ phôc vô c¸c yªu cÇu cña hÖ thèng mµ thµnh phÇn Êy thuéc vÒ. §Ó dïng l¹i ®−îc mét c¸ch cã hiÖu qu¶, nã ph¶i ®−îc sinh ra ®Ó tho¶ m·n mét phæ réng c¸c yªu cÇu. ViÖc ph¸t triÓn c¸c thµnh phÇn kh¸i qu¸t lµ ®¾t h¬n viÖc ph¸t triÓn c¸c thµnh phÇn cho mét môc ®Ých chuyªn biÖt vµ do ®ã nã lµm t¨ng chi phÝ dù ¸n. §Ó ph¸t triÓn c¸c thµnh phÇn dïng l¹i ®−îc cÇn ph¶i cã mét quyÕt ®Þnh chÝnh s¸ch cã tæ chøc lµ t¨ng chi phÝ ng¾n h¹n gióp cho c¸c môc tiªu l©u dµi. ChÝnh tæ chøc chø kh«ng ph¶i c¸ nh©n c¸c nhµ qu¶n lý ph¶i ra quyÕt ®Þnh nh− vËy. C¸c nhµ qu¶n lý cÊp trªn th−êng miÔn c−ìng ñng hé chi phÝ ®Ó dïng laÞ v× c¸c khã kh¨n trong ®Þnh l−îng c¸c −u ®iÓm trong t−¬ng lai cña mét th− viÖn c¸c thµnh phÇn dïng l¹i ®−îc. §Ó ®¸nh gi¸ ®é dïng l¹i ®−îc cÇn ph¶i ®Æt ra hai c©u hái sau ®©y: i) Thµnh phÇn nµy biÓu diÔn mét sù kh¸i qu¸t lÜnh vùc øng dông tèt nh− thÕ nµo?. ii) Thµnh phÇn ®· ®−îc viÕt ra cã lµ kh¸i qu¸t vµ thÝch nghi ®−îc hay kh«ng ?. • Ph¸t triÓn phÇn mÒm cã thµnh phÇn dïng l¹i ®−îc Ph¸t triÓn phÇn mÒm cã thµnh phÇn t¸i sö dông lµ gi¶m ®−îc chi phÝ vµ ngoµi ra cßn cã 5 −u ®iÓm n÷a: i) §é tin cËy cña hÖ thèng ®−îc t¨ng lªn. ii) C¸c rñi ro lµ gi¶m ®i. iii) Sö dông hiÖu qu¶ c¸c chuyªn gia øng dông. iv) C¸c chuÈn tæ chøc cã thÓ ®−îc bao gåm trong c¸c thµnh phÇn dïng l¹i ®−îc . v) Thêi gian ph¸t triÓn phÇn mÒm cã thÓ ®−îc rót gän. IV.4.2.§é tin cËy cña phÇn mÒm A) Kh¸i niÖm vÒ ®é tin cËy: §é tin cËy cña mét hÖ phÇn mÒm lµ ®é ®o vÒ møc ®é tèt cña c¸c dÞch vô mµ hÖ cung cÊp cho m¸y tÝnh. Ng−êi dïng kh«ng xem r»ng c¸c dÞch vô lµ quan träng nh− nhau: ch¼ng h¹n mét hÖ ®iÒu khiÓn Ch−¬ng IV - 105 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn m¸y bay cã thÓ rÊt, rÊt hiÕm thÊt b¹i. Nh−ng nÕu chóng cã thÊt b¹i g©y ra tai n¹n m¸y bay th× nh÷ng ng−êi bÞ n¹n vµ c¸c th©n nh©n ng−êi bÞ n¹n kh«ng thÓ xem hÖ ®ã lµ ®¸ng tin. §é tin cËy lµ mét ®Æc tr−ng ®éng cña hÖ thèng, nã lµ mét hµm cña sè c¸c thÊt b¹i phÇn mÒm. Mét thÊt b¹i phÇn mÒm lµ mét sù kiÖn thi hµnh mµ khi ®ã phÇn mÒm x ö lý kh«ng nh− ng−êi ta mong ®îi. Chó ý r»ng mét thÊt b¹i phÇn mÒm (failure) kh¸c mét h− háng (fault) phÇn mÒm. H− háng phÇn mÒm lµ mét ®Æc tr−ng tÜnh, vµ nã sÏ g©y ra thÊt b¹i phÇn mÒm khi mµ m· lçi ®−îc thi hµnh víi mét tËp hîp ®Æc biÖt c¸c th«ng tin vµo. C¸c h− háng kh«ng ph¶i lu«n lu«n xuÊt ®Çu lé diÖn, bëi vËy ®é tin cËy phô thuéc vµo viÖc sö dông hÖ thèng nh− thÕ nµo. Kh«ng thÓ ®−a ra mét ph¸t biÓu ®¬n gi¶n vµ kh¸i qu¸t vÒ ®é tin cËy phÇn mÒm. C¸c h− háng phÇn mÒm kh«ng ph¶i lµ c¸c khuyÕt tËt (defect) cña ch−¬ng tr×nh. Mét hµnh xö bÊt ngê cã thÓ x¶y ra khi mµ phÇn mÒm phï hîp víi c¸c yªu cÇu cña nã, nh−ng mµ chÝnh c¸c yªu cÇu ®ã l¹i kh«ng ®Çy ®ñ. C¸c sai sãt trong c¸c t− liÖu phÇn mÒm còng cã thÓ dÉn ®Õn c¸c hµnh vi bÊt ngê mÆc dÇu r»ng phÇn mÒm kh«ng cã khiÕm khuyÕt. Cã c«ng tr×nh nghiªn cøu ®· chØ ra r»ng cã thÓ rót bá 60% c¸c khiÕm khuyÕt mµ chØ c¶i thiÖn ®−îc cã 3% ®é tin cËy. Còng cã ng−êi ®· chó ý r»ng nhiÒu khiÕm khuyÕt trong s¶n phÈm chØ lµ kÕt qu¶ cña hµng tr¨m hoÆc hµng ngh×n th¸ng sö dông. B) §o ®é tin cËy: Cã mét vµi c¸ch ®o ®é tin cËy nh− sau: 1) X¸c suÊt thÊt b¹i tÝnh theo ®ßi hái. 2) Tû lÖ xuÊt hiÖn thÊt b¹i. 3) Thêi gian trung b×nh gi÷a hai thÊt b¹i kÕ tiÕp nhau. 4) §é ®o møc s½n sµng ho¹t ®éng cña hÖ. C) §Æc t¶ ®é tin cËy phÇn mÒm. C¸c b−íc ®Æc t¶ ®é tin cËy phÇn mÒm lµ: 1) Ph©n tÝch hÖ qu¶ cña c¸c thÊt b¹i. 2) Chia c¸c thÊt b¹i thµnh c¸c nhãm kh¸c nhau. 3) ThiÕt lËp c¸c yªu cÇu vÒ ®é tin cËy b»ng c¸ch sö dông c¸c ®é ®o thÝch hîp cho tõng lo¹i. D) Thö nghiÖm tÜnh. Môc tiªu chñ yÕu cña phÇn mÒm tÜnh lµ x¸c ®Þnh ®é tin cËy cña phÇn mÒm chø kh«ng ph¶i lµ x¸c ®Þnh c¸c h− háng phÇn mÒm. Qu¸ tr×nh thö nghiÖm tÜnh liªn quan ®Õn 4 b−íc sau: i) X¸c ®Þnh tr¾c ®å thao t¸c cña phÇn mÒm. Tr¾c ®å thao t¸c lµ mét mÉu sö dông phÇn mÒm vµ x¸c ®Þnh mÉu ®ã liªn quan ®Õn viÖc ph¸t hiÖn c¸c líp th«ng tin vµo cña ch−¬ng tr×nh vµ −íc tÝnh x¸c suÊt cña chóng. ii) Chän hoÆc sinh ra mét tËp c¸c d÷ liÖu thö t−¬ng øng víi tr¾c ®å ®ã. iii) ¸p dông c¸c tr−êng hîp thö ch−¬ng tr×nh, ghi l¹i ®é dµi thêi gian thi hµnh gi÷a mçi cÆp thÊt b¹i quan s¸t ®−îc, thÝch hîp h¬n lµ dïng thêi gian th«, víi ®¬n vÞ thêi gian thÝch hîp cho ®é ®o møc tin cËy. iv) TÝnh to¸n ®é ®o møc tin cËy sau mét sè ®¸ng kÓ (vÒ mÆt th«ng kª) c¸c thÊt b¹i ®· quan s¸t ®−îc. E) An toµn hÖ thèng. Cã nh÷ng hÖ thèng mµ thÊt b¹i cña nã cã thÓ g©y ra mét mèi ®e do¹ tÝnh m¹ng con ng−êi. VÝ dô vÒ hÖ thèng an toµn sinh mÖnh nh− vËy lµ hÖ thèng ®iÒu khiÓn m¸y bay. Cã hai líp phÇn mÒm an toµn sinh mÖnh: i) C¸c phÇn mÒm an toµn sinh mÖnh s¬ cÊp: lµ c¸c phÇn mÒm lång nhóng trong mét hÖ phÇn cøng dïng ®Ó ®iÒu khiÓn qu¸ tr×nh kh¸c mµ sù lµm viÖc sai sãt cña nã cã thÓ trùc tiÕp g©y ra Ch−¬ng IV - 106 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn th−¬ng vong hoÆc ph¸ huû m«i tr−êng sèng cña con ng−êi. ii) C¸c phÇn mÒm an toµn sinh mÖnh thø cÊp: lµ c¸c phÇn mÒm cã thÓ gi¸n tiÕp g©y ra th−¬ng vong. VÝ dô hÖ thèng phÇn mÒm trî gióp thiÕt kÕ kü thuËt, hÖ thèng CSDL y tÕ liªn quan ®Õn c¸c chÊt ®éc b¶ng A. F) Thö nghiÖm khiÕm khuyÕt. Thö nghiÖm ch−¬ng tr×nh cã hai môc ®Ých: thø nhÊt lµ chØ ra r»ng hÖ thèng lµ phï hîp víi c¸c ®Æc t¶ cña nã. Thø hai lµ thùc hµnh hÖ thèng theo mét c¸ch sao cho c¸c khuyÕt tËt ®−îc ph¬i ra. C¸c thö nghiÖm víi môc ®Ých thø nhÊt chÝnh lµ c¸c thÈm ®Þnh, nã lµ c¸c thö nghiÖm ®Ó chÊp nhËn. C¸c thö nghiÖm cho môc ®Ých thø hai l¹i kh¸c h¼n: thö nghiÖm thµnh c«ng nhÊt lµ thö nghiÖm ph¬i ra ®−îc nhiÒu khuyÕt tËt nhÊt. C¸c thö nghiÖm cã thÓ ®−îc ph¸t triÓn song song víi viÖc thiÕt kÕ vµ thùc hiÖn bëi nh÷ng ng−êi kh«ng dÝnh d¸ng tíi viÖc thiÕt kÕ. IV.4.3.TÝnh di chuyÓn ®−îc cña hÖ øng dông Tèc ®é thay ®æi c«ng nghÖ phÇn cøng nhanh ®Õn møc mµ m¸y tÝnh lµ bÞ lçi thêi tr−íc c¸ ch−¬ng tr×nh thi hµnh trªn c¸i m¸y tÝnh ®ã. VËy lµ c¸c hÖ thèng øng dông ph¶i di chuyÓn ®−îc sang c¸c m¸y tÝnh kh¸c, trªn m«i tr−êng kh¸c. §é di chuyÓn ®−îc cña mét øng dông lµ tû lÖ víi khèi l−îng c«ng viÖc cÇn ph¶i tiÕn hµnh ®Ó øng dông ®ã thi hµnh ®−îc trong mét m«i tr−êng míi. TÝnh di chuyÓn ®−îc cã hai khÝa c¹nh: -TÝnh vËn chuyÓn: sù ho¹t ®éng cña m· ch−¬ng tr×nh vµ d÷ liÖu kÕt hîp ®−îc chuyÓn tõ mét m«i tr−êng nµy sang mét m«i tr−êng kh¸c. -TÝnh thÝch nghi; nh÷ng thay ®æi ch−¬ng tr×nh cÇn thiÕt ®Ó ch−¬ng tr×nh ho¹t ®éng trong mét m«i tr−êng míi. IV.4.4.Mét vµi h−íng dÉn lËp tr×nh h−íng hiÖu qu¶ 1.TÝnh hiÖu qu¶ ch−¬ng tr×nh. TÝnh hiÖu qu¶ cña ch−¬ng tr×nh gèc cã liªn hÖ trùc tiÕp víi tÝnh hiÖu qu¶ cña thuËt to¸n ®−îc x¸c ®Þnh trong thiÕt kÕ chi tiÕt. Tuy nhiªn, phong c¸ch lËp tr×nh cã thÓ cã mét t¸c ®éng ®Õn tèc ®é thùc hiÖn vµ yªu cÇu bé nhí. TËp hîp c¸c h−íng dÉn sau ®©y bao giê còng cã thÓ ¸p dông ®−îc khi thiÕt kÕ chi tiÕt ®−îc dÞch thµnh ch−¬ng tr×nh: • §¬n gi¶n ho¸ c¸c biÓu thøc sè häc vµ l«gic tr−íc khi ®i vµo lËp tr×nh. • TÝnh cÈn thËn tõng chu k× lång nhau ®Ó x¸c ®Þnh liÖu c¸c c©u lÖnh hay biÓu thøc cã thÓ ®−îc chuyÓn ra ngoµi hay kh«ng. • Khi cã thÓ, h·y tr¸nh dïng m¶ng nhiÒu chiÒu • Khi cã thÓ h·y tr¸nh viÖc dïng con trá vµ danh s¸ch phøc t¹p. • Dïng c¸c phÐp to¸n sè häc “nhanh”. • Kh«ng trén lÉn c¸c kiÓu d÷ liÖu, cho dï ng«n ng÷ cã cho phÐp ®iÒu ®ã. • Dïng c¸c biÓu thøc sè häc vµ logic bÊt k× khi nµo cã thÓ ®−îc. NhiÒu tr×nh biªn dÞch cã tÝnh n¨ng tèi −u tù ®éng sinh ra ch−¬ng tr×nh hiÖu qu¶ b»ng c¸ch dån nÐn c¸c biÓu thøc lÆp,thùc hiÖn tÝnh chu tr×nh,dïng sè häc nhanh vµ ¸p dông c¸c thuËt to¸n cã hiÖu qu¶ liªn quan kh¸c. Víi nh÷ng øng dông trong ®ã tÝnh hiÖu qu¶ cã ý nghÜa quan träng, nh÷ng tr×nh biªn dÞch nh− thÕ lµ c«ng cô lËp tr×nh kh«ng thÓ thiÕu ®−îc. 2.HiÖu qu¶ bé nhí TÝnh hiÖu qu¶ bé nhí ph¶i ®−îc tÝnh vµo ®Æc tr−ng “ph©n trang“ cña hÖ ®iÒu hµnh.Nãi chung, tÝnh côc bé cña ch−¬ng tr×nh hay viÖc b¶o tr× lÜnh vùc chøc n¨ng qua c¸c kÕt cÊu cã cÊu tróc lµ mét ph−¬ng ph¸p tuyÖt vêi lµm gi¶m viÖc ph©n trang vµ do ®ã lµm t¨ng tÝnh hiÖu qu¶. Ch−¬ng IV - 107 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
- http://www.ebook.edu.vn H¹n chÕ bé nhí trong thÕ giíi bé vi xö lÝ nhóng lµ mèi quan t©m rÊt thùc tÕ,mÆc dÇu bé nhí gi¸ thÊp, mËt ®é cao vÉn ®ang tiÕn ho¸ nhanh chãng. NÕu yªu cÇu hÖ thèng cÇn tíi bé nhí tèi thiÓu (nh− s¶n phÈm gi¸ thÊp, khèi l−îng lín) th× tr×nh biªn dÞch ng«n ng÷ cÊp cao ph¶i ®−îc trï tÝnh cÈn thËn víi tÝnh n¨ng nÐn bé nhí, hay nh− mét ph−¬ng kÕ cuèi cïng, cã thÓ ph¶i dïng tíi hîp ng÷. Kh«ng gièng nh− nhiÒu ®Æc tr−ng hÖ thèng kh¸c ph¶i tr¶ gi¸ lÉn nhau, c¸c kÜ thuËt cho hiÖu qu¶ vÒ thêi gian thùc hiÖn ®«i khi cã thÓ dÉn tíi hiÖu qu¶ bé nhí. Ch¼ng h¹n, giíi h¹n viÖc dïng c¸c m¶ng ba hay bèn chiÒu lµm n¶y sinh thuËt to¸n th©m nhËp phÇn tö ®¬n, thuËt to¸n nhanh vµ ng¾n nhÊt. LÇn n÷a, ch×a kho¸ cho tÝnh hiÖu qu¶ bé nhí lµ “gi÷ cho ®¬n gi¶n“. 3.HiÖu qu¶ vµo / ra. C¸i vµo do ng−êi dïng cung cÊp vµ c¸i ra ®−îc t¹o ra cho ng−êi dïng lµ hiÖu qu¶ khi th«ng tin cã thÓ ®−îc cung cÊp hay ®−îc hiªñ víi mét møc ®é tiÕt kiÖm nç lùc trÝ tuÖ. Mét sè h−íng dÉn ®¬n gi¶n ®Ó t¨ng c−êng hiÖu qu¶ vµo/ra: • Sè c¸c yªu cÇu vµo/ra nªn gi÷ møc tèi thiÓu • Mäi viÖc vµo /ra nªn qua bé ®Öm ®Ó lµm gi¶m phÝ tæn liªn l¹c. • Víi bé nhí phô (nh− ®Üa) nªn lùa chän vµ dïng ph−¬ng ph¸p th©m nhËp ®¬n gi¶n nhÊt chÊp nhËn ®−îc. • Nªn xÕp khèi vµo/ra víi c¸c thiÕt bÞ bé nhí phô. • ViÖc vµo/ ra víi thiÕt bÞ cuèi hay m¸y in nªn nhËn diÖn c¸c tÝnh n¨ng cña thiÕt bÞ cã thÓ c¶i tiÕn chÊt l−îng hay tèc ®é. • H·y nhí r»ng “siªu hiÖu qu¶” cña vµo/ra lµ v« nghÜa nÕu nã kh«ng ®−îc hiÓu râ. ThiÕt kÕ vµo/ra lËp nªn phong c¸ch vµ cuèi cïng chi phèi tÝnh hiÖu qu¶. Nh÷ng h−íng dÉn tr×nh bµy trªn ®©y lµ ¸p dông ®−îc cho c¶ c¸c b−íc thiÕt kÕ vµ lËp tr×nh cho tiÕn tr×nh kÜ nghÖ phÇn mÒm. IV.5.ThÈm ®Þnh vµ x¸c minh IV.5.1 §¹i c−¬ng vÒ viÖc thÈm ®Þnh vµ x¸c minh X¸c minh vµ thÈm ®Þnh mét hÖ phÇn mÒm lµ qu¸ tr×nh liªn tôc xuyªn suèt mäi giai ®o¹n cña qu¸ tr×nh phÇn mÒm. X¸c minh vµ thÈm ®Þnh mang tÝnh qu¸ tr×nh nh»m ®¶m b¶o phÇn mÒm tho¶ m·n c¸c yªu cÇu cña kh¸ch hµng. X¸c minh vµ thÈm ®Þnh lµ mét qu¸ tr×nh kÐo dµi suèt vßng ®êi. Nã b¾t ®Çu khi duyÖt xÐt yªu cÇu. X¸c minh vµ thÈm ®Þnh cã hai môc tiªu: i) Ph¸t hiÖn c¸c khuyÕt tËt trong hÖ thèng. ii) §¸nh gi¸ xem hÖ thèng cã dïng ®−îc hay kh«ng ?. Sù kh¸c nhau gi÷a x¸c minh vµ thÈm ®Þnh lµ: i) ThÈm ®Þnh: xÐt xem c¸i ®−îc x©y dùng cã lµ s¶n phÈm ®óng kh«ng ? ii) X¸c minh: XÐt xem c¸i ®−îc x©y dùng cã ®óng lµ s¶n phÈm kh«ng ? Nh− vËy x¸c minh lµ kiÓm tra xem ch−¬ng tr×nh cã phï hîp víi ®Æc t¶ hay kh«ng. Cßn thÈm ®Þnh lµ kiÓm tra xem ch−¬ng tr×nh cã ®−îc nh− mong ®îi cña ng−êi dïng hay kh«ng . Cã hai lo¹i phÐp thö: i) PhÐp thö thèng kª: ®Ó ph¶n ¸nh tÇn suÊt c¸c input cña ng−êi dïng thùc vµ sau khi vËn hµnh m¸y cã thÓ cho ra mét ®¸nh gi¸ ®é tin cËy thao t¸c cña hÖ thèng. ii) PhÐp thö khuyÕt tËt: ®Ó béc lé c¸c khuyÕt tËt trong hÖ thèng. IV.5.2 S¬ l−îc vÒ tiÕn tr×nh thö nghiÖm *Qu¸ tr×nh thö nghiÖm: Trõ c¸c hÖ nhá, nãi chung kh«ng nªn thö hÖ thèng nguyªn c¶ khèi. Qu¸ tr×nh thö cã thÓ chia Ch−¬ng IV - 108 NguyÔn Quèc To¶n- Nguyªn v¨n Vþ - Vu §øc Thi – Lª §×nh Phïng
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Nhập môn Công Nghệ Phần Mềm
174 p | 1062 | 217
-
Bài giảng Nhập môn Công nghệ phần mềm: Giới thiệu tổng quan về Công nghệ phần mềm - TS. Trần Ngọc Bảo
74 p | 137 | 21
-
Bài giảng Nhập môn Công nghệ phần mềm: Phần 2
158 p | 43 | 14
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm (2011)
49 p | 104 | 14
-
Giáo trình Nhập môn kỹ nghệ phần mềm: Phần 1
84 p | 73 | 10
-
Giáo trình Nhập môn kỹ nghệ phần mềm: Phần 2
79 p | 57 | 9
-
Giáo trình Nhập môn công nghệ phần mềm (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ
107 p | 27 | 8
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 5: Kỹ nghệ yêu cầu phần mềm (Requirement Engineering)
47 p | 42 | 8
-
Bài giảng Nhập môn công nghệ phần mềm: Chương 2 - Nguyễn Minh Huy
24 p | 36 | 7
-
Bài giảng Nhập môn công nghệ phần mềm: Chương 1 - Nguyễn Minh Huy
19 p | 44 | 6
-
Bài giảng Nhập môn Công nghệ phần mềm: Phần 4 - Vũ Thị Hương Giang
10 p | 24 | 5
-
Bài giảng Nhập môn Công nghệ phần mềm: Phần 5 - Vũ Thị Hương Giang
8 p | 36 | 5
-
Bài giảng Nhập môn Công nghệ phần mềm: Tuần 1 - Nguyễn Thị Minh Tuyền
27 p | 29 | 5
-
Bài tập Nhập môn công nghệ phần mềm (Introduction to software engineering) - Bài tập tuần 07: Kỹ nghệ yêu cầu phần mềm (tiếp theo)
11 p | 37 | 4
-
Bài tập Nhập môn công nghệ phần mềm (Introduction to software engineering) - Bài tập tuần 06: Kỹ nghệ yêu cầu phần mềm (Requirement Engineering)
17 p | 80 | 4
-
Bài giảng Nhập môn công nghệ phần mềm (Introduction to software engineering): Chương 0 - Nguyễn Nhất Hải
14 p | 44 | 3
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Mở đầu
11 p | 80 | 3
-
Bài giảng Nhập môn công nghệ phần mềm: Chương 4 - Nguyễn Thanh Bình
23 p | 30 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn