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