Đăng ký Đăng nhập

Tài liệu Chuong 12.giai doan thiet ke

.PDF
15
129
146

Mô tả:

12 giai ®o¹n thiÕt kÕ (DESIGN PHASE) Néi dung: Kh¸i qu¸t chung ThiÕt kÕ vµ trõu tưîng hãa ThiÕt kÕ hưíng sù kiÖn ThiÕt kÕ hưíng d÷ liÖu ThiÕt kÕ hưíng ®èi tưîng KiÓm thö §¸nh gi¸ Huúnh Xu©n HiÖp - CNPM 158 Kh¸i qu¸t chung (overview) Hµng tr¨m kü thuËt thiÕt kÕ ®· ra ®êi trong h¬n 30 n¨m qua ThiÕt kÕ hưíng sù kiÖn (action-oriented) ph©n r· s¶n phÈm thµnh c¸c m«-®un cã tÝnh chÆt chÏ cao vµ Ýt g¾n kÕt víi nhau  ThiÕt kÕ hưíng d÷ liÖu (data-oriented) phô thuéc vµo cÊu tróc d÷ liÖu mµ c¸c xö lý ®ưîc thùc hiÖn trªn ®ã c¸c kü thuËt næi tiÕng như [Jackson, 1975;1983], [Wanier, 1976;1981] vµ [Orr, 1981]  ThiÕt kÕ hưíng ®èi tưîng d¹ng tæng hîp, bao gåm c¶ sù kiÖn vµ d÷ liÖu  §Çu vµo: tµi liÖu ®Æc t¶, cho biÕt s¶n phÈm ph¶i lµm g× (what?)  §Çu ra: ®Ó ®¹t ®ưîc nh÷ng c«ng viÖc ®· m« t¶ ë ®Çu vµo, s¶n phÈm ph¶i thùc hiÖn như thÕ nµo (how?) Huúnh Xu©n HiÖp - CNPM 159 ThiÕt kÕ vµ trõu tưîng hãa (design and abstraction) Giai ®o¹n thiÕt kÕ phÇn mÒm cã 3 ho¹t ®éng chÝnh: kiÕn tróc, chi tiÕt vµ kiÓm thö ThiÕt kÕ kiÕn tróc (architectural design, general design, logical design, high-level design): theo quan ®iÓm trõu tưîng hãa lµ ph©n chia s¶n phÈm thµnh c¸c m«-®un ThiÕt kÕ chi tiÕt (detailed design, modular design, physical design, lowlevel design): chi tiÕt hãa tõng m«-®un chän gi¶i thuËt chän cÊu tróc d÷ liÖu KiÓm thö thiÕt kÕ (design testing) Huúnh Xu©n HiÖp - CNPM 160 Ph©n tÝch dßng d÷ liÖu (data flow analysis - DFA) ThiÕt kÕ hưíng sù kiÖn, t¹o ra c¸c m«-®un víi tÝnh chÆt chÏ cao ®Çu vµo: s¬ ®å dßng d÷ liÖu (data flow diagram - DFD) sau khi hoµn thµnh DFD, nhµ thiÕt kÕ phÇn mÒm ph¶i hoµn tÊt c¸c th«ng tin vµo/ra cña tõng module §iÓm trõu tưîng hãa cao nhÊt ®Çu vµo (point of highest abstraction of input): ®iÓm biÕn chuyÓn d÷ liÖu ®Çu vµo thµnh d÷ liÖu néi t¹i §iÓm trõu tưîng hãa cao nhÊt ®Çu ra (point of highest abstraction of output): ®iÓm biÕn chuyÓn d÷ liÖu néi t¹i thµnh ®Çu ra Huúnh Xu©n HiÖp - CNPM 161 ®Çu vµo ®Çu ra a b c d e f g h H×nh 12.1 ThÓ hiÖn d÷ liÖu vµ sù kiÖn cña s¶n phÈm b»ng DFD ®Çu vµo ®Çu ra a b m«-®un ®Çu vµo c d e f h m«-®un ®Çu ra m«-®un chuyÓn ®æi ®iÓm trõu t­îng hãa cao nhÊt ®Çu vµo g ®iÓm trõu t­îng hãa cao nhÊt ®Çu ra H×nh 12.2 C¸c ®iÓm trõu t­îng hãa cao nhÊt ®Çu vµo vµ ®Çu ra Huúnh Xu©n HiÖp - CNPM 162 VÝ dô vÒ DFA : ®Õm sè tõ (words) trong tËp tin tªn tËp tin ®äc tªn tËp tin tªn tËp tin c«ng nhËn tËp tin hîp lÖ c«ng nhËn tªn tËp tin ®Õm sè tõ ®Õm sè tõ ®Þnh d¹ng sè l­îng tõ ®· ®Õm ®Çu vµo t¹i ®©y hiÓn thÞ sè tõ ®Çu ra t¹i ®©y ®iÓm trõu t­îng hãa cao nhÊt ®Çu vµo Huúnh Xu©n HiÖp - CNPM ®Þnh d¹ng sè tõ ®· ®Õm ®Çu ra mong ®îi ®iÓm trõu t­îng hãa cao nhÊt ®Çu ra H×nh 12.3 DFD t¹i lÇn lµm mÞn thø nhÊt 163 cê tr¹ng th¸i tªn tËp tin hîp lÖ NhËn ®Çu vµo tªn tËp tin §äc tªn tËp tin Thùc hiÖn ®Õm sè tõ tªn tËp tin hîp lÖ sè l­îng tõ ®· ®Õm sè l­îng tõ ®· ®Õm T¹o ®Çu ra §Õm sè l­îng tõ tªn tËp tin cê tr¹ng th¸i C«ng nhËn tªn tËp tin sè l­îng tõ ®· ®Õm sè tõ ®Õm ®­îc ®· ®Þnh d¹ng §Þnh d¹ng sè tõ ®· ®Õm sè tõ ®Õm ®­îc ®· ®Þnh d¹ng ThÓ hiÖn sè tõ ®· ®Õm d÷ liÖu ®iÒu khiÓn H×nh 12.4 BiÓu ®å cÊu tróc Huúnh Xu©n HiÖp - CNPM 164 ThiÕt kÕ chi tiÕt 4 m«-®un Tªn m«-®un KiÓu tr¶ vÒ C¸c tham sè ®Çu vµo C¸c tham sè ®Çu ra C¸c th«ng b¸o lçi C¸c tËp tin truy xuÊt C¸c tËp tin cã thay ®æi trªn ®ã C¸c m«-®un ®ưîc gäi M« t¶ Tªn m«-®un KiÓu tr¶ vÒ C¸c tham sè ®Çu vµo C¸c tham sè ®Çu ra C¸c th«ng b¸o lçi C¸c tËp tin truy xuÊt C¸c tËp tin cã thay ®æi trªn ®ã C¸c m«-®un ®ưîc gäi M« t¶ Huúnh Xu©n HiÖp - CNPM §äc tËp tin String kh«ng kh«ng kh«ng kh«ng kh«ng kh«ng S¶n phÈm ®ưîc thi hµnh khi ngưêi dïng gâ lÖnh: word count Sö dông mét lêi gäi hÖ thèng, m«-®un nµy sÏ truy xuÊt néi dung chuçi lÖnh do ngưêi sö dông nhËp vµo, t¸ch ra tªn tËp tin vµ tr¶ vÒ kÕt qu¶ lµ tªn tËp tin ®· t¸ch ®ưîc. C«ng nhËn tªn tËp tin hîp lÖ boolean tªn tËp tin: String kh«ng kh«ng kh«ng kh«ng kh«ng M«-®un nµy t¹o mét lêi gäi hÖ thèng ®Ó x¸c ®Þnh sù tån t¹i cña tËp tin víi tham sè ®Çu vµo lµ tªn tËp tin. M«-®un tr¶ vÒ kÕt qu¶ true nÕu tËp tin ®· tån t¹i vµ false nÕu ngưîc l¹i. 165 Tªn m«-®un KiÓu tr¶ vÒ C¸c tham sè ®Çu vµo C¸c tham sè ®Çu ra C¸c th«ng b¸o lçi C¸c tËp tin truy xuÊt C¸c tËp tin cã thay ®æi trªn ®ã C¸c m«-®un ®ưîc gäi M« t¶ §Õm sè lưîng tõ integer tªn tËp tin hîp lÖ: String kh«ng kh«ng kh«ng kh«ng kh«ng M«-®un nµy x¸c ®Þnh víi tªn tËp tin hîp lÖ ®Çu vµo lµ tËp tin v¨n b¶n. Khi ®ã m«-®un sÏ tr¶ vÒ sè tõ cã trong tËp tin v¨n b¶n , ngưîc l¹i tr¶ vÒ -1. Tªn m«-®un KiÓu tr¶ vÒ C¸c tham sè ®Çu vµo C¸c tham sè ®Çu ra C¸c th«ng b¸o lçi C¸c tËp tin truy xuÊt C¸c tËp tin cã thay ®æi trªn ®ã C¸c m«-®un ®ưîc gäi T¹o ®Çu ra void sè lưîng tõ: integer kh«ng kh«ng kh«ng kh«ng §Þnh d¹ng sè tõ c¸c tham sè: sè tõ:integer, sè tõ ®· ®ưîc ®Þnh d¹ng:String ThÓ hiÖn sè tõ ®· ®Õm c¸c tham sè: sè tõ ®· ®ưîc ®Þnh d¹ng:integer: String M«-®un nµy lÊy tham sè ®Çu vµo lµ sè tõ ®· ®Õm ®ưîc b¾ng c¸ch gäi m«-®un §Þnh d¹ng sè tõ vµ sau ®ã gäi m«-®un ThÓ hiÖn sè tõ ®· ®Õm ®Ó thÓ hiÖn sè tõ ®· ®Õm ®ưîc. M« t¶ H×nh 12.5 ThiÕt kÕ chi tiÕt c¸c m«-®un Huúnh Xu©n HiÖp - CNPM 166 Ph©n tÝch giao dÞch (transaction analysis - TA) ThiÕt kÕ hưíng sù kiÖn Mét giao dÞch lµ mét thao t¸c theo quan ®iÓm cña ngưêi sö dông s¶n phÈm VD: xö lý mét yªu cÇu, in ra danh s¸ch c¸c ®Æt hµng trong ngµy Xö lý giao dÞch Bé ph©n tÝch Xö lý giao dÞch t1 Xö lý giao dÞch t2 Bé ®iÒu vËn Xö lý giao dÞch t3 HiÖu chØnh mét sè giao dÞch H×nh 12.6 ThiÕt kÕ d¹ng giao dÞch-xö lý Huúnh Xu©n HiÖp - CNPM Xö lý giao dÞch t4 Xö lý giao dÞch t5 CËp nhËt mét sè tËp tin Ghi vµo sæ kÕ to¸n 167 ThiÕt kÕ hưíng ®èi tưîng (object-oriented design - OOD) ThiÕt kÕ s¶n phÈm thµnh c¸c ®èi tưîng(object) lµ c¸c thÓ hiÖn cña c¸c líp (classe) hay c¸c líp con (subclass) C¸c ng«n ng÷ lËp tr×nh hưíng ®èi tưîng th«ng dông như Smalltalk [Goldberg vµ Robson, 1989], C++ [Stroustrup, 1991], Eiffel [Meyer, 1992b], Ada95 [ISO/IEC 8652, 1995] vµ Java [Flanagan, 1996] Khi cµi ®Æt trªn c¸c ng«n ng÷ lËp tr×nh kh«ng hưíng ®èi tưîng tiÕn hµnh thiÕt kÕ trªn c¸c kiÓu d÷ liÖu trõu tưîng (abstract data type design) Bao gåm 4 bưíc: x©y dùng s¬ ®å tư¬ng t¸c cho tõng kÞch b¶n x©y dùng s¬ ®å líp chi tiÕt thiÕt kÕ s¶n phÈm theo c¸c ®èi tưîng cña kh¸ch hµng tiÕn hµnh thiÕt kÕ chi tiÕt Huúnh Xu©n HiÖp - CNPM 168 Nót s¸ng lªn: boolean t¾t nót (abstract) bËt nót (abstract) øng dông thang m¸y Nót trong thang m¸y t¾t nót bËt nót mn C¸c tiÖn Ých thang m¸y Nót t¹i c¸c tÇng t¾t nót bËt nót 2m-2 ®iÒu khiÓn ®iÒu khiÓn n Bé ®iÒu khiÓn thang m¸y 1 ®iÒu khiÓn n 1 C¸c cöa thang m¸y cöa më: Boolean cöa ®ãng cöa më Thang m¸y cöa më: boolean chuyÓn thang m¸y lªn trªn chuyÓn thang m¸y xuèng H×nh 12.7 S¬ ®å líp chi tiÕt Huúnh Xu©n HiÖp - CNPM 169 øng dông thang m¸y bé ®×Òu khiÓn thang m¸y thang m¸y nót trong thang m¸y c¸c tiÖn Ých thang m¸y c¸c cöa thang m¸y nót t¹i c¸c tÇng H×nh 12.8 Quan hÖ kh¸ch hµng-®èi t­îng Huúnh Xu©n HiÖp - CNPM 170 KiÓm thö trong giai ®o¹n thiÕt kÕ (testing during the design phase) T×m thÊy lçi trong giai ®o¹n nµy lµ rÊt quan träng Cã thÓ sö dông walkthroughs thanh tra tư¬ng tù như trong giai ®o¹n ®Æc t¶ nhưng cã thÓ kh«ng cã ®¹i diÖn cña kh¸ch hµng Ph¶i ph¶n ¸nh ®ưîc hưíng thiÕt kÕ §¸nh gi¸ giai ®o¹n thiÕt kÕ (metrics for the design phase) Cã nhiÒu phư¬ng ph¸p ®¸nh gi¸ trªn c¸c mÆt cña giai ®o¹n thiÕt kÕ sè lưîng c¸c m«-®un: ®¸nh gi¸ th« vÒ kÝch thưíc cña s¶n phÈm ®é g¾n kÕt cña m«-®un: ®¸nh gi¸ vÒ chÊt lưîng Huúnh Xu©n HiÖp - CNPM 171 ®é nèi kÕt gi÷a c¸c m«-®un: thèng kª vÒ lçi §é phøc t¹p cña thiÕt kÕ chi tiÕt M b»ng sè lưîng quyÕt ®Þnh nhÞ ph©n céng víi 1 [McCabe, 1976] (hay sè lưîng nh¸nh trong mét m«-®un) VD: ®é phøc t¹p khi viÕt mét m«-®un toascii: - cã sö dông switch cã 128 nh¸nh : 128 - sö dông b¶ng chuyÓn ®æi trùc tiÕp: 1 [Henry vµ Kafura, 1981] M = length × (fan-in × fan-out)2 length : kÝch thưíc m«-®un fan-in : sè lưîng c¸c luång ®i vµo m«-®un + sè lưîng cÊu tróc d÷ liÖu mµ m«-®un truy xuÊt fan-out : sè lưîng c¸c luång ®i ra m«-®un + sè lưîng c¸c cÊu tróc d÷ liÖu toµn côc mµ m«-®un cËp nhËt Phư¬ng ph¸p thµnh c«ng nhÊt cho thiÕt kÕ hưíng ®èi tưîng: CDM [Kitchenham, Pickard vµ Linkman, 1990; Shepperd, 1990] Mét sè phư¬ng ph¸p kh¸c : [Chidamber vµ Kemerer, 1994], [Binkley and Schach, 1996;1997;1998] Huúnh Xu©n HiÖp - CNPM 172
- Xem thêm -

Tài liệu liên quan