PhÇn 3

ThiÕt kÕ phÇn mÒm

1

ThiÕt kÕ phÇn mÒm

(cid:132) Kh¸i niÖm, nguyªn lý, chÊt l−îng

(cid:132) ThiÕt kÕ kiÕn tróc

(cid:132) ThiÕt kÕ giao diÖn

(cid:132) ThiÕt kÕ thñ tôc

(cid:132) ThiÕt kÕ h−íng ®èi t−îng

2

Tµi liÖu

(cid:132) N.V. Vþ, N. V. Hµ, Gi¸o tr×nh kü nghÖ phÇn

(cid:132) N.V. Vþ, Ph©n tÝch thiÕt kÕ HTTT hiÖn ®¹i – H−íng cÊu tróc vµ h−íng ®èi t−îng, NXB Thèng kª

(cid:132) Zhiming Liu, Object-Oriented Software

mÒm, ch−¬ng 3.

(cid:132) Sommerville, Software Engineering (cid:132) Pressman, Software Engineering

3

Development with UML, UNU/IIST Report

ThiÕt kÕ phÇn mÒm

m« h×nh th«ng tin

m« h×nh chøc n¨ng

thiÕt kÕ kiÕn tróc

ThiÕt kÕ

cÊu tróc d÷ liÖu

c¸c yªu cÇu kh¸c

LËp tr×nh

thiÕt kÕ thuËt to¸n

m« ®un ch−¬ng tr×nh

4

ThÕ nµo lµ thiÕt kÕ

Lµ mét qu¸ tr×nh s¸ng t¹o:

• NghÜ xem nªn lµm nh− thÕ nµo (c¸ch thøc, ph−¬ng ¸n) • BiÓu diÔn c¸ch thøc, ph−¬ng ¸n

• Xem xÐt l¹i, chi tiÕt hãa

5

®ñ chi tiÕt ®Ó ng−êi lËp tr×nh biÕt ph¶i lµm nh− thÕ nµo

ThiÕt kÕ phÇn mÒm

(cid:132) Lµ t¹o m« h×nh cµi ®Æt cña phÇn mÒm (cid:132) Lµ ph−¬ng tiÖn ®Ó trao ®æi th«ng tin, ®Ó ®¶m

møc chi tiÕt

(cid:132) NÕu kh«ng cã thiÕt kÕ; hoÆc thiÕt kÕ tåi: (cid:132) lµm t¨ng c«ng søc viÕt m· ch−¬ng tr×nh (cid:132) lµm t¨ng c«ng søc b¶o tr×

6

b¶o chÊt l−îng (cid:132) dÔ hiÓu dÔ söa ®æi h¬n m· ch−¬ng tr×nh (cid:132) cung cÊp c¸i nh×n tæng thÓ; ®ång thêi cã nhiÒu

ThiÕt kÕ phÇn mÒm

(cid:132) PhÇn mÒm lµ tËp c¸c m« ®un t−¬ng t¸c lÉn

(cid:132) M« ®un hãa lµ ch×a khãa cho phÇn mÒm tèt (cid:132) Môc tiªu thiÕt kÕ lµ x¸c ®Þnh: (cid:132) chøc n¨ng cña c¸c m« ®un (cid:132) c¸ch thøc cµi ®Æt m« ®un (cid:132) t−¬ng t¸c gi÷a c¸c m« ®un

7

nhau

Nguyªn lý thiÕt kÕ

(cid:132) ThiÕt kÕ kh«ng nªn bÞ bã buéc vµo c¸i nh×n

(cid:132) ThiÕt kÕ ph¶i lÇn ng−îc l¹i ®−îc m« h×nh

h¹n hÑp (cid:132) nªn ®−îc lùa chän tõ c¸c gi¶i ph¸p kh¸c nhau

t−¬ng øng mét - mét

(cid:132) ph¶i kiÓm tra ®−îc sù tháa m·n c¸c yªu cÇu

8

ph©n tÝch (cid:132) c¸c m« ®un vµ c¸c yªu cÇu kh«ng ph¶i lµ

Nguyªn lý thiÕt kÕ (t)

(cid:132) Kh«ng nªn t¸i t¹o l¹i c¸c thiÕt kÕ (gi¶i ph¸p) ®· cã, mµ cÇn t¸i sö dông tèi ®a c¸c thiÕt kÕ ®· cã

(cid:132) M« h×nh thiÕt kÕ (gi¶i ph¸p) nªn tiÕn gÇn ®Õn

9

m« h×nh thÕ giíi thùc (bµi to¸n) (cid:132) DÔ hiÓu, dÔ kiÓm tra

Nguyªn lý thiÕt kÕ (t)

(cid:132) BiÓu diÔn thiÕt kÕ ph¶i cã tÝnh nhÊt qu¸n vµ

giao diÖn

(cid:132) ThiÕt kÕ cÇn cã cÊu tróc ®Ó dÔ dµng thay ®æi

(cid:132) ph¶i ®−îc modun hãa, ph©n cÊp

10

tÝnh tÝch hîp: (cid:132) thiÕt kÕ do nhiÒu ng−êi tiÕn hµnh song song (cid:132) ph¶i thèng nhÊt c¸ch biÓu diÔn, thèng nhÊt

Nguyªn lý thiÕt kÕ (t)

(cid:132) ThiÕt kÕ kh«ng ph¶i lµ m· hãa

(cid:132) thiÕt kÕ lu«n cã møc trõu t−îng h¬n m· hãa, ®¶m b¶o dÔ hiÓu, dÔ thay ®æi, cã thÓ cµi ®Æt b»ng c¸c ng«n ng÷ kh¸c nhau

(cid:132) ThiÕt kÕ cÇn ®−îc ®¸nh gi¸ chÊt l−îng ngay

(cid:132) ThiÕt kÕ cÇn ®−îc thÈm ®Þnh ®Ó tr¸nh c¸c lçi

trong khi nã ®−îc t¹o ra (cid:132) tÝnh kÕt dÝnh, tÝnh ghÐp nèi, tÝnh hiÖu qu¶,...

thuÉn,...

11

mang tÝnh hÖ thèng (cid:132) thiÕu chøc n¨ng, chøc n¨ng kh«ng râ rµng, m©u

N«i dung thiÕt kÕ

(cid:132) ThiÕt kÕ kiÕn tróc

(cid:132) ph©n r· hÖ thèng thµnh c¸c m« ®un, hÖ thèng con (cid:132) x¸c ®Þnh t−¬ng t¸c (giao diÖn) gi÷a c¸c m« ®un

(cid:132) ThiÕt kÕ cÊu tróc d÷ liÖu

(cid:132) x©y dùng m« h×nh biÓu diÔn th«ng tin

(cid:132) ThiÕt kÕ thñ tôc (thuËt to¸n) (cid:132) x¸c ®Þnh c¸c b−íc thùc hiÖn (cid:132) ThiÕt kÕ giao diÖn ng−êi dïng

(cid:132) nªn nh×n nhËn giao diÖn lµ mét bµi to¸n ®éc lËp

12

(cid:139) ThiÕt kÕ kiÕn tróc

(cid:31) c¸i nh×n tæng thÓ vÒ hÖ thèng (cid:31) mèi quan hÖ gi÷a c¸c m« ®un (cid:31) giao diÖn gi÷a c¸c m« ®un

Sö dông biÓu ®å cÊu tróc (structure chart), m« t¶:

(cid:31) thø tù thùc hiÖn (cid:31) sè lÇn thùc hiÖn (cid:31) chi tiÕt thiÕt kÕ

13

Ch−a cÇn chØ ra:

(cid:139) ThiÕt kÕ cÊu tróc d÷ liÖu

(cid:31) Chän c¸ch biÓu diÔn cho sù vËt cã ¶nh

h−ëng m¹nh mÏ ®Õn chÊt l−îng phÇn mÒm

C¸c møc thiÕt kÕ

(cid:31) ThiÕt kÕ cÊu tróc d÷ liÖu l« gic

- ®Þnh danh d÷ liÖu - x¸c ®Þnh c¸c mèi quan hÖ

(cid:31) ThiÕt kÕ cÊu tróc d÷ liÖu vËt lý

14

- kiÓu d÷ liÖu - kÝch cì

(cid:139) ThiÕt kÕ cÊu tróc d÷ liÖu vËt lý

(cid:137) Cã nhiÒu c¸ch thøc biÓu diÔn

- phÇn tö v« h−íng; - m¶ng mét chiÒu, nhiÒu chiÒu; danh s¸ch mãc nèi - kiÓu cÊu tróc - quan hÖ kÕ thõa

(cid:31) Nªn lµm chËm viÖc chän biÓu diÔn møc thÊp

15

- ®ãng gãi/che giÊu th«ng tin - thiÕt kÕ h−íng ®èi t−îng

(cid:139) ThiÕt kÕ thñ tôc

(cid:31) M« t¶ c¸c b−íc ho¹t ®éng cña m« ®un

(cid:31) Ph−¬ng ph¸p m« t¶

16

- gi¶ m· (pseudo code) - BiÓu ®å luång (flow chart) - BiÓu ®å (diagam) Nassi-Shneiderman - JSP

Kh¸i niÖm thiÕt kÕ c¬ së

(cid:132) Trõu t−îng hãa trõu t−îng hãa d÷ liÖu, thñ tôc, ®iÒu khiÓn chi tiÕt hãa c¸c trõu t−îng ph©n chia d÷ liÖu vµ chøc n¨ng cÊu tróc tæng thÓ cña phÇn mÒm thuËt to¸n ®Ó thùc hiÖn chøc n¨ng ®iÒu khiÓn b»ng giao diÖn

(cid:132) Lµm mÞn (cid:132) TÝnh m«dun (cid:132) KiÕn tróc (cid:132) Thñ tôc (cid:132) Che giÊu th«ng tin

17

Trõu t−îng hãa (abstraction)

(cid:132) Kh¸i niÖm c¬ së trong t− duy cña con ng−êi (cid:132) Lµ qu¸ tr×nh ¸nh x¹ mét sù vËt/hiÖn t−îng cña thÕ giíi thùc thµnh mét kh¸i niÖm logic

(cid:132) Cã nhiÒu møc trõu t−îng kh¸c nhau

(cid:132) cho phÐp con ng−êi tËp trung (t− duy) vµo gi¶i quyÕt vÊn ®Ò mµ kh«ng cÇn bËn t©m ®Õn chi tiÕt

(cid:132) biÓu diÔn vÊn ®Ò b»ng mét cÊu tróc tù nhiªn

18

Trõu t−îng d÷ liÖu

door

manufacturer model number type swing direction inserts lights type number

weight opening mechanism

19

Trõu t−îng thñ tôc

open

details of enter algorithm

20

Lµm mÞn tõng b−íc

open

walk to door; reach for knob;

open door;

repeat until door opens turn knob clockwise; if knob doesn't turn, then

walk through; close door.

take key out; find correct key; insert in lock;

endif pull/push door move out of way; end repeat

21

C©u hái «n tËp

1. ThiÕt kÕ phÇn mÒm lµ g×? 2. Nªu c¸c nguyªn lý ®Ó thiÕt kÕ phÇn mÒm? 3. LiÖt kª c¸c néi dung thiÕt kÕ vµ gi¶i thÝch? 4. Gi¶i thÝch mét sè kh¸i niÖm trong thiÕt kÕ: trõu t−îng, lµm mÞn, m« ®un ho¸, thñ tôc, che giÊu th«ng tin?

22