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