Kỹnghệphần mềm
Software Engeneering
NguyÔn V¨n Vþ
Bém«n C«ng nghÖphÇn mÒm-Khoa CNTT-§HCN
Email: vynv@coltech.vnu.vn
Bài 5: Khái niệm thiết kế phần mềm
NguyễnVănVỵ
Nội dung
(cid:132) Kh¸i niÖm, nguyªn lý, chÊt l−îng
(cid:132) Néi dung thiÕt kÕ vμ chÊt l−îng
Bộ môn Công nghệ phần mềm – ĐHCN 2
TÀI LiỆU THAM KHẢO
NguyễnVănVỵ
1. Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần
mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008
2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
3. M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
4. Roger S.Pressman, Software Engineering, a Practitioner’s
5.
Approach. Fifth Edition, McGraw Hill, 2001.
Ian Sommerville, Software Engineering. Sixth Edition, Addison-
Wasley, 2001.
6. Nguyễn Văn Vỵ. Phân tích thiết kế hệ thống thông tin hiện đại.
Hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002, Hà
Nội.
Bộ môn Công nghệ phần mềm – ĐHCN 3
Kh¸i niÖm thiết kế phÇn mÒm
NguyễnVănVỵ
(cid:132) Thiết kế lμ chuyÓn ®Æc t¶ yªu cÇu thμnh m« t¶ thiÕt
kÕ mμ người lập tr×nh cã thể chuyển thμnh chương
tr×nh víi 1 ng«n ng÷, vËn hμnh ®−îc ®¸p øng ®−îc
yªu cÇu ®Æt ra
(cid:132) Lμ 1 qu¸ tr×nh s¸ng t¹o:
(cid:144) T×m gi¶i ph¸p c«ng nghÖ (c¸ch thøc, ph−¬ng ¸n)
(cid:144) BiÓu diÔn c¸ch thøc, ph−¬ng ¸n
(cid:144) Xem xÐt l¹i, chi tiÕt hãa
®ñ chi tiÕt ®Ó ng−êi lËp tr×nh biÕt ph¶i lμm nh− thÕ
nμo ®Ó chuyÓn thμnh ch−¬ng tr×nh
Bộ môn Công nghệ phần mềm – ĐHCN 4
Vai trß thiÕt kÕ
NguyễnVănVỵ
(cid:132) t¹o m« h×nh cμi ®Æt cña phÇn mÒm
(cid:132) lμ c«ng cụ giao tiếp giữa c¸c nh÷ng ng−êi tham gia
ph¸t triển, c¬ së ®¶m b¶o chÊt l−îng hÖ thèng
(cid:144) dÔ ®äc, dÔ hiÓu, dÔ söa ®æi h¬n m· ch−¬ng trinh
(cid:144) cã nhiÒu møc chi tiÕt; cung cÊp c¸i nh×n tæng thÓ
(cid:144) lμm c¬ së ®Ó trao ®æi, c¶i tiÕn
(cid:132) Cung cÊp ®Çy ®ñ th«ng tin cho viÖc b¶o tr× sau nμy:
(cid:132) Gi¶m c«ng søc m· hãa khi söa ®æi
(cid:132) TiÖn b¶o tr× ph¸t triÓn, më réng
Bộ môn Công nghệ phần mềm – ĐHCN 5
CÊu tróc thiÕt kÕ
NguyễnVănVỵ
(cid:132) PhÇn mÒm lμ tËp c¸c m« ®un t−¬ng t¸c lÉn nhau
(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:144) c¸c m« ®un chøc n¨ng
(cid:144) c¸ch thøc cμi ®Æt m« ®un
(cid:144) t−¬ng t¸c gi÷a c¸c m« ®un
Bộ môn Công nghệ phần mềm – ĐHCN 6
Nguyªn lý thiÕt kÕ
NguyễnVănVỵ
1. kh«ng bÞ bã buéc vμo mét c¸ch nhin h¹n chÕ nμo
(cid:144) nã cÇn ®−îc lùa chän tõ c¸c gi¶i ph¸p cã thÓ
2. cho phÐp lÇn ng−îc l¹i m« hinh ph©n tÝch
(cid:144) c¸c m« ®un & c¸c yªu cÇu kh«ng nhÊt thiÕt
ph¶i t−¬ng øng 1-1
(cid:144) nh−ng ph¶i kiÓm tra ®−îc sù tháa m·n c¸c
yªu cÇu
Bộ môn Công nghệ phần mềm – ĐHCN 7
Nguyªn lý thiÕt kÕ (t)
NguyễnVănVỵ
3. Kh«ng nªn 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 chóng
4. M« h×nh thiÕt kÕ (gi¶i ph¸p) nªn tiÕn gÇn ®Õn m« hinh
thÕ giíi thùc (bμi to¸n)
5. BiÓu diÔn thiÕt kÕ ph¶i nhÊt qu¸n vμ cã tÝnh tÝch hîp:
(cid:144) thiÕt kÕ do nhiÒu ng−êi tiÕn hμnh song song
(cid:144) ph¶i thèng nhÊt c¸ch biÓu diÔn, thèng nhÊt giao diÖn
6. ThiÕt kÕ cÇn cã cÊu tróc ®Ó dÔ hiÓu, dÔ thay ®æi
(cid:144) ph¶i ®−îc modun hãa, ph©n cÊp
Bộ môn Công nghệ phần mềm – ĐHCN 8
Nguyªn lý thiÕt kÕ (t)
NguyễnVănVỵ
7. ThiÕt kÕ kh«ng ph¶i lμ m· hãa
(cid:144) 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
8. ThiÕt kÕ cÇn ®−îc ®¸nh gi¸ chÊt l−îng ngay
trong khi ®−îc t¹o ra
(cid:144) tÝnh kÕt dÝnh, tÝnh ghÐp nèi, hiÖu qu¶ thuËt to¸n
9. ThiÕt kÕ cÇn ®−îc thÈm ®Þnh ®Ó tr¸nh c¸c lçi
mang tÝnh hÖ thèng
(cid:144) thiÕu chøc n¨ng, chøc n¨ng kh«ng râ, m©u thuÉn...
Bộ môn Công nghệ phần mềm – ĐHCN 9
N«i dung & chÊt l−îng thiÕt kÕ
NguyễnVănVỵ
Néi dung thiÕt kÕ
(cid:132) ThiÕt kÕ kiÕn tróc
(cid:144) ph©n r· hÖ thèng thμnh hÖ thèng conc¸c m« ®un,
(cid:144) x¸c ®Þnh giao diÖn t−¬ng t¸c gi−a c¸c m« ®un
(cid:132) ThiÕt kÕ cÊu tróc d÷ liÖu
(cid:144) x©y dùng m« hinh biÓu diÔn th«ng tin
(cid:132) ThiÕt kÕ thñ tôc (thuËt to¸n)
(cid:144) x¸c ®Þnh c¸c b−íc thùc hiÖn xö lý
(cid:132) ThiÕt kÕ giao diÖn ng−êi dïng
(cid:144) nªn nhin nhËn giao diÖn lμ mét bμi to¸n ®éc lËp
Bộ môn Công nghệ phần mềm – ĐHCN 10
M« h×nh tæng qu¸t tiÕn tr×nh thiÕt kÕ
NguyễnVănVỵ
(cid:132) TiÕn tr×nh thiÕt kÕ lμ qu¸ tr×nh t¨ng c−êng h×nh thøc
hãa vμ lu«n quay l¹i c¸c thiÕt kÕ ®óng ®¾n vμ Ýt h×nh
thøc hãa h¬n tr−íc ®ã ®Ó kiÓm tra vμ hoμn chØnh
phác thảo
thiết kế phi
hình thức
thiết kế
phi hình
thức
thiết kế
hình thức
hơn(bán)
thiết kế chi
tiết cuối
cùng
Bộ môn Công nghệ phần mềm – ĐHCN 11
TiÕn tr×nh hoạt động thiÕt kÕ vμ sản phẩm
NguyễnVănVỵ
thiết kế kiến trúc
Đặc tả các yêu cầu
kiến trúc hệ thống
đặc tả phần mềm
Đặc tả trừu tượng
đặc tả giao diện
thiết kế giao diện
đặc tả thành phần
thiết kế thành phần
đặc tả cấu trúc dữ liệu
thiết kế dữ liệu
đặc tả thuật toán
thiết kế thuật toán
Bộ môn Công nghệ phần mềm – ĐHCN 12
ThiÕt kÕ kiÕn tróc
NguyễnVănVỵ
Sö dông biÓu ®å cÊu tróc (structure chart), m« t¶:
(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
kh«ng cÇn chØ ra:
(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Õ
Bộ môn Công nghệ phần mềm – ĐHCN 13
ThiÕt kÕ cÊu tróc dữ liÖu
NguyễnVănVỵ
(cid:31) Chän c¸ch biÓu diÔn c¸c ®èi t−îng thiÕt kÕ cã
¶nh h−ëng m¹nh mÏ ®Õn chÊt l−îng phÇn mÒm
ThiÕt kÕ cÊu tróc vËt lý
- C¸c file
- C¸c kiÓu
- KÝch cì
C¸c møc thiÕt kÕ
(cid:31) ThiÕt kÕ cÊu tróc l« gic
(cid:31) C¸c quan hÖ chuÈn
(cid:31) C¸c khãa
(cid:31) C¸c tham chiÕu
(cid:31) C¸c cÊu tróc thao t¸c d÷ liÖu
Bộ môn Công nghệ phần mềm – ĐHCN 14
ThiÕt kÕ thñ tôc
NguyễnVănVỵ
(cid:31) M« t¶ c¸c b−íc ho¹t ®éng cña m« ®un
(cid:31) Ph−¬ng ph¸p m« t¶
- gi¶ m· (pseudo code)
- s¬ ®å luång (flow chart)
- biÓu ®å (diagram) Nassi-Shneiderman
- biÓu ®å ho¹t ®éng (activity diagram)
- JSP
Bộ môn Công nghệ phần mềm – ĐHCN 15
C¸c kh¸i niÖm thiÕt kÕ c¬ së
NguyễnVănVỵ
(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 theo ý ®å
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 dÊu:
Bộ môn Công nghệ phần mềm – ĐHCN 16
Trõu t−îng hãa (abstraction)
NguyễnVănVỵ
(cid:132) Kh¸i niÖm c¬ së trong t− duy cña con ng−êi
(cid:132) Lμ qu¸ trinh ¸nh x¹ mét sù vËt/hiÖn t−îng cña thÕ
giíi thùc thμnh 1 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
Bộ môn Công nghệ phần mềm – ĐHCN 17
Trõ t−îng d÷ liÖu
NguyễnVănVỵ
Cửa
mã sô: 256AD
loại: của ra vào
hướng mở: ra bên trái
cao: 2.3
rộng: 0.85
trong lượng: 120
màu: nâu cánh dán
Bộ môn Công nghệ phần mềm – ĐHCN 18
Trõ t−îng thñ tôc
NguyễnVănVỵ
Mở cửa
Mô tả chi tiến quá
trình vào phòng
qua của
Bộ môn Công nghệ phần mềm – ĐHCN 19
Lμm mÞn tõng b−íc
NguyễnVănVỵ
Mở cửa
Bước đến gần cửa
Đưa chìa khóa vào ổ xoay
Mở cửa
Lặp lại cho đến khi chốt khóa bật ra
Nếu chổt không mở thì
Bước qua vào phòng
Đóng cửa lại
Rút khóa ra, tìm chìa khác phù
hợp, cắm váo ổ khóa, tiếp tục
xoay cho đến khi mở được
Bước qua cuửa vào phòng
Đóng cửa lại
Bộ môn Công nghệ phần mềm – ĐHCN 20
ThiÕt kÕ m« ®un
NguyễnVănVỵ
Dùa trªn quan ®iÓm "chia ®Ó trÞ"
C(p1 + p2) > C(p1) + C(p2)
C: ®é phøc t¹p
E: công sức thùc hiÖn
E(p1 + p2) > E(p1) + E(p2)
(cid:31) gi¶m ®é phøc t¹p
(cid:31) côc bé, dÔ söa ®æi
(cid:31) cã kh¶ n¨ng ph¸t triÓn song song
(cid:31) dÔ söa ®æi, dÔ hiÓu nªn dÔ t¸i sö dông
Bộ môn Công nghệ phần mềm – ĐHCN 21
Sè l−îng m«®un
NguyễnVănVỵ
CÇn x¸c ®Þnh sè m«®un tèi −u
chi phÝ ph¸t triÓn m« ®un
gi¸
phÇn
mÒm
chi phÝ
tÝch hîp
sè m« ®un
kho¶ng cã sè
m« ®un tèi −u
Bộ môn Công nghệ phần mềm – ĐHCN 22
KÝch cì m«®un
NguyễnVănVỵ
néi dung?
KÝch th−íc?
Môđun
(cid:132) KÝch cì m« ®un ®−îc quyÕt ®Þnh dùa trªn kh¸i niệm ®éc
lËp chøc năng: mçi m« ®un nên thùc hiÖn 1 c«ng viÖc:
dÔ hiÓu, dÔ söa ®æi, dÔ t¸i sö dông
Bộ môn Công nghệ phần mềm – ĐHCN 23
Che giÊu th«ng tin
NguyễnVănVỵ
(cid:132) Sö dông m«®un th«ng qua c¸c giao diÖn
(cid:132) danh s¸ch tham sè vμ gi¸ trÞ tr¶ l¹i
(cid:132) Kh«ng cÇn biÕt c¸ch thøc cμi ®Æt của nã:
(cid:132) thuËt to¸n
(cid:132) cÊu tróc dữ liÖu
(cid:132) giao diÖn ngo¹i lai (m« ®un thø cÊp, thiÕt bÞ vμo/ra)
(cid:132) tμi nguyªn hÖ thèng
Bộ môn Công nghệ phần mềm – ĐHCN 24
Lý do che giÊu th«ng tin
NguyễnVănVỵ
(cid:132) Gi¶m hiÖu øng phô khi söa ®æi m«®un
(cid:132) Gi¶m t¸c ®éng cña thiÕt kÕ tæng thÓ lªn thiÕt kÕ
côc bé
(cid:132) NhÊn m¹nh trao ®æi th«ng tin th«ng qua giao diÖn
(cid:132) Lo¹i bá viÖc sö dông d÷ liÖu dïng chung
(cid:132) H−íng tíi sù ®ãng gãi chøc n¨ng, 1 thuéc tÝnh
cña thiÕt kÕ tèt
T¹o ra c¸c s¶n phÈm phÇn mÒm tèt h¬n
Bộ môn Công nghệ phần mềm – ĐHCN 25
ChÊt l−îng thiÕt kÕ
NguyễnVănVỵ
Ba ®Æc tr−ng xem nh− lμ h−íng dÉn cho 1 thiÕt kÕ tèt
(McMlaughli[MCG91]):
(cid:132) ThiÕt kÕ ph¶I triÓn khai ®−îc tÊt c¶ yªu cÇu trong m« h×nh
ph©n tÝch & yªu cÇu tiÒm Èn mμ kh¸ch hμng ®ßi hái.
(cid:132) ThiÕt kÕ cÇn lµ b¶n h−íng dÉn dÔ ®äc, dÔ hiÓu cho ng−êi
viÕt ch−¬ng tr×nh, ng−êi kiÓm thö vμ ng−êi b¶o tr×.
(cid:132) ThiÕt kÕ cÇn cung cÊp 1 bøc tranh ®Çy ®ñ vÒ phÇn mÒm
trªn quan ®iÓm triÓn khai h−íng ®Õn c¸c mÆt d÷ liÖu, chøc
n¨ng vμ hμnh vi cña hÖ thèng
MCG91: McMlaughli,R., Mé sè chó ý vÒ thiÕt kÕ ch−¬ng tr×nh, Software Engineering
Notes,vol.16, no.4,oct 1991, pp53-54.
Bộ môn Công nghệ phần mềm – ĐHCN 26
Tiªu chÝ chÊt l−îng
NguyễnVănVỵ
CÇn thiÕt lËp c¸c tiªu chÝ kü thuËt ®Ó ®¸nh gi¸ mét thiÕt
kÕ tèt hay kh«ng:
(cid:132) ThiÕt kÕ cÇn cã kiÕn tróc tèt: cÊu thμnh tõ c¸c mÉu
(pattern), c¸c thμnh phÇn cã ®Æc tr−ng tèt, dÔ tiÕn ho¸.
(cid:132) ThiÕt kÕ ®−îc m«®ul ho¸ cho mçi thμnh phÇn chøc
n¨ng
(cid:132) Chøa c¸c biÓu diÔn t¸ch biÖt nhau vÒ: d÷ liÖu, kiÕn
tróc, giao diÖn, thμnh phÇn, m«i tr−êng
(cid:132) Liªn kÕt qua giao diÖn lμm gi¶m ®é phøc t¹p liªn kÕt
gi÷a c¸c m«®ul víi nhau vμ gi÷a hÖ thèng vμ m«I
tr−êng
Bộ môn Công nghệ phần mềm – ĐHCN 27
§é ®o chÊt l−îng thiÕt kÕ
NguyễnVănVỵ
(cid:132) Phô thuéc bμi to¸n, kh«ng cã ph−¬ng ph¸p chung
(cid:132) Mét sè ®é ®o:
(cid:144) Coupling: møc ®é ghÐp nèi gi÷a c¸c module
(cid:144) Cohesion: møc ®é liªn kÕt gi÷a c¸c thμnh phÇn trong
mét module
(cid:144) Understandability: tÝnh hiÓu ®−îc
(cid:144) Adaptability: tÝnh thÝch nghi ®−îc
Bộ môn Công nghệ phần mềm – ĐHCN 28
§é ®o chÊt l−îng thiÕt kÕ (t)
NguyễnVănVỵ
(cid:132) Coupling (ghÐp nèi)
(cid:132) ®é ®o sù liªn kÕt (trao ®æi d÷ liÖu) gi÷a c¸c m« ®un
(cid:132) ghÐp nèi chÆt chÏ th× khã hiÓu, khã söa ®æi do ph¶I
tÝnh ®Õn c¸c liªn kÕt cã thÓ, dÔ g©y lçi lan truyÒn.
(cid:132) Cohesion (kÕt dÝnh)
(cid:132) ®é ®o sù phô thuéc lÉn nhau cña c¸c thμnh phÇn
trong mét module
(cid:132) kÕt dÝnh cao th× tÝnh côc bé cao (®éc lËp chøc n¨ng);
dÔ hiÓu, dÔ söa ®æi.
(cid:132) Tiªu chuÈn cña thiÕt kÕ tèt: kÕt dÝnh chÆt, ghÐp nèi
láng
Bộ môn Công nghệ phần mềm – ĐHCN 29
GhÐp nèi - Coupling
NguyễnVănVỵ
møc ®é quan hÖ cña
ghÐp nèi th−êng
loose and best
c¸c module:
still very good
ghÐp nèi d÷ liÖu
(cid:132) module nªn ghÐp nèi
ok
ghÐp nèi nh∙n
láng lÎo
ok
ghÐp nèi ®iÒu khiÓn
(cid:132) Møc láng lÎo thÓ
hiÖn qua lo¹i h×nh
ghÐp nèi (h×nh bªn)
very bad
ghÐp nèi chung
tight and worst
ghÐp nèi néi dung
Bộ môn Công nghệ phần mềm – ĐHCN 30
GhÐp nèi néi dung
NguyễnVănVỵ
(cid:132) C¸c module dïng d÷ liÖu hay th«ng tin ®iÒu khiÓn ®−îc
duy tr× trong 1 m« dun kh¸c
(cid:132) Lμ tr−êng hîp xÊu nhÊt. VÝ dô:
(cid:31) c¸c ng«n ng÷ bËc thÊp chØ dïng biÕn chung
(cid:31) l¹m dông lÖnh Goto trong mét chu tr×nh
60 print k, y
70 stop
100 Y =3*k*k+7*k-3
110 return
10 k =1
20 gosub 100
30 if y > 120 goto 60
40 k = k+1
50 goto 20
Bộ môn Công nghệ phần mềm – ĐHCN 31
GhÐp nèi chung
NguyễnVănVỵ
(cid:144) C¸c module trao ®æi d÷ liÖu th«ng qua biÕn tæng thÓ
(cid:144) Lçi cña module nμy cã thÓ ¶nh h−ëng ®Õn ho¹t ®éng
cña module kh¸c
(cid:144) Khã sö dông l¹i c¸c module
m« ®un g©y lçi
A
B
m« ®un chÞu lçi
C
BiÕn tæng thÓ
Bộ môn Công nghệ phần mềm – ĐHCN 32
GhÐp nèi ®iÒu khiÓn
NguyễnVănVỵ
(cid:132) C¸c module trao ®æi th«ng tin ®iÒu khiÓn
(cid:132) Lμm cho thiÕt kÕ khã hiÓu, khã söa ®æi, dÔ nhÇm
procedure PrintRec is
procedure DisplayName (in : name,
sex) is
begin
begin
Display Name (name,
sex);
if sex = m
then
print Mr.
.....
end PrintRec;
else
print Ms
print name
end DisplayName;
Bộ môn Công nghệ phần mềm – ĐHCN 33
GhÐp nèi nh·n
NguyễnVănVỵ
(cid:132) C¸c m«®un trao ®æi thõa th«ng tin
(cid:132) M«®un cã thÓ thùc hiÖn chøc n¨ng ngoμi ý muèn
(cid:132) Lμm gi¶m tÝnh thÝch nghi
(b¶n ghi nh©n sù)
(tuæi)
calc_age
Bộ môn Công nghệ phần mềm – ĐHCN 34
GhÐp nèi d÷ liÖu
NguyễnVănVỵ
(cid:132) TruyÒn d÷ liÖu qua tham sè
(cid:132) NhËn kÕt qu¶ qua tham sè vμ gi¸ trÞ tr¶ l¹i
(ngμy)
(ngμy cña tuÇn)
calc_day_of_week
Bộ môn Công nghệ phần mềm – ĐHCN 35
KÕt dÝnh - Cohesion
NguyễnVănVỵ
(cid:132) mçi m«®un chØ nªn
thùc hiÖn 1 chøc
n¨ng
high and best
ok
still ok
not bad at all
still not bad at all
still not bad at all
chøc n¨ng
tuÇn tù
truyÒn th«ng
thñ tôc
thêi ®iÓm
logic
(cid:132) mäi thμnh phÇn cña
m«®un ph¶i tham
gia thùc hiÖn chøc
n¨ng ®ã
gom gãp
lowest and worst by far
Bộ môn Công nghệ phần mềm – ĐHCN 36
C¸c lo¹i kÕt dÝnh
NguyễnVănVỵ
(cid:31)KÕt dÝnh gom gãp (coincidental cohesion):
(cid:144) gom c¸c thμnh phÇn kh«ng liªn quan ®Õn nhau
(cid:31) KÕt dÝnh l«gic (logical cohesion)
(cid:144) gåm c¸c thμnh phÇn lμm chøc n¨ng l«gic t−¬ng tù ( vd: hμm
xö lÝ lçi chung)
(cid:31) KÕt dÝnh thêi ®iÓm (temporal cohesion)
(cid:144) c¸c thμnh phÇn ho¹t ®éng cïng thêi ®iÓm ( vd: hμm khëi t¹o
(®äc d÷ liÖu, cÊp ph¸t bé nhí...)
(cid:31) KÕt dÝnh thñ tôc (procedural cohesion)
(cid:144) c¸c thμnh phÇn thùc hiªn theo 1 thø tù x¸c ®Þnh (vd: tÝnh
l−¬ng c¬ b¶n, tÝnh phô cÊp, tÝnh b¶o hiÓm)
Bộ môn Công nghệ phần mềm – ĐHCN 37
C¸c lo¹i kÕt dÝnh(t)
NguyễnVănVỵ
(cid:31) KÕt dÝnh truyÒn th«ng (communicational cohesion)
(cid:144) c¸c thμnh phÇn truy cËp ®Õn cïng tËp d÷ liÖu: tÝnh to¸n
thèng kª (tÝnh max, min, mean, variation...)
(cid:31) KÕt dÝnh tuÇn tù (sequential cohesion)
(cid:144) output cña mét thμnh phÇn lμ input cña thμnh phÇn tiÕp
theo: ¶nh mÇu -> ®en tr¾ng -> ¶nh nÐn
(cid:31) KÕt dÝnh chøc n¨ng (functional cohesion)
(cid:144) c¸c thμnh phÇn cïng gãp phÇn thùc hiÖn mét chøc
n¨ng (vd: c¸c thao t¸c s¾p xÕp)
Bộ môn Công nghệ phần mềm – ĐHCN 38
TÝnh hiÓu ®−îc -Understandability
NguyễnVănVỵ
(cid:132) Lμ kÕt qu¶ tæng hîp tõ nhiÒu thuéc tÝnh
(cid:144) CÊu tróc râ rμng, tèt
(cid:144) GhÐp nèi láng lÎo
(cid:144) KÕt dÝnh cao
(cid:144) §−îc lËp tμi liÖu
(cid:144) ThuËt to¸n, cÊu tróc dÔ hiÓu
Bộ môn Công nghệ phần mềm – ĐHCN 39
TÝnh thÝch nghi ®−îc (Adaptability)
NguyễnVănVỵ
(cid:132) HiÓu ®−îc
(cid:31) söa ®æi ®−îc, t¸i sö dông ®−¬c
(cid:132) Tù chøa
(cid:31) kh«ng sö dông th− viÖn ngoμi
(cid:31) m©u thuÉn víi xu h−íng t¸i sö dông
Bộ môn Công nghệ phần mềm – ĐHCN 40
ThiÕt kÕ h−íng ®èi t−îng vμ chất lượng
NguyễnVănVỵ
(cid:132) ThiÕt kÕ h−íng ®èi t−îng h−íng tíi chÊt l−îng thiÕt kÕ tèt
(cid:144) đãng gãi, che dÊu th«ng tin (®éc lËp d÷ liÖu)
(cid:144) c¸c thùc thÓ ho¹t ®éng ®éc lËp (côc bé, dïng l¹i)
(cid:144) trao ®æi d÷ liÖu qua truyÒn th«ng (liªn kÕt yÕu)
(cid:144) cã kh¶ n¨ng kÕ thõa (dïng l¹i)
(cid:144) côc bé, dÔ hiÓu, dÔ t¸i sö dông
Bộ môn Công nghệ phần mềm – ĐHCN 41
C©u hái «n tËp
NguyễnVănVỵ
1. ThiÕt kÕ phÇn mÒm lμ gi?
2. Nªu c¸c nguyªn lý thiÕt kª phÇn mÒm?
3. Nªu c¸c lo¹i thiÕt kÕ vμ gi¶I thÝch néi dung cña nã?
4. Gi¶I thÝch mé sè kh¸i niÖm c¬ b¶n cña thiÕt kÕ:
(cid:131) trõu t−îng?
(cid:131) lμm mÞn?
(cid:131) m« ®un ho¸?
(cid:131) thñ tôc?
(cid:131) che dÊu th«ng tin?
5. VÏ s¬ ®å m« t¶ mçi quan hÖ gi−a sè m« ®un vμ chi phÝ ph¸t
triÓn?
Bộ môn Công nghệ phần mềm – ĐHCN 42
C©u hái «n tËp
NguyễnVănVỵ
6. C¸c ®Æc tr−ng cña mét thiÕt kÕ tèt?
7. C¸c tiªu chÝ kü thuËt ®¸nh gi¸ mét thiÕt kÕ tèt
8. Lîi Ých cña hÖ thèng cã kiÕn tróc tèt
9. Lîi Ých cña viÖc m« ®un ho¸ trong thiÕt kÕ phÇn mÒm lμ g×?
10. Lîi Ých cña viÖc che dÊu th«ng tin lμ g×?
11. Cã c¸c ®é ®o chÊt l−îng thiÕt kÕ nμo?
Bộ môn Công nghệ phần mềm – ĐHCN 43
C©u hái «n tËp
NguyễnVănVỵ
12. GhÐp nèi lμ g×? KÓ c¸c lo¹i ghÐp nèi theo møc ®é chÆt
(tåi) dÇn?
13. KÕt dÝnh lμ g×? KÓ c¸c lo¹i kÕt dÝnh theo møc ®é chÆt
gi¶m (kÐm) dÇn?
14. ThÕ nμo lμ tÝnh hiÓu ®−îc?
15. ThÕ nμo lμ tÝnh thÝch nghi ®−îc?
16. ThiÕt kÕ h−íng ®èi t−îng h−íng ®Õn chÊt l−îng tèt ë
nh÷ng mÆt nμo?
Bộ môn Công nghệ phần mềm – ĐHCN 44
C©u hái và thảo luận
NguyễnVănVỵ
Bộ môn Công nghệ phần mềm – ĐHCN 45