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:
[email protected]
Bài 5: Khái niệm thiết kế phần mềm
NguyễnVănVỵ
Nội dung
Kh¸i niÖm, nguyªn lý, chÊt l−îng
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.
2.
3.
4.
5.
6.
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
Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
Roger S.Pressman, Software Engineering, a Practitioner’s
Approach. Fifth Edition, McGraw Hill, 2001.
Ian Sommerville, Software Engineering. Sixth Edition, AddisonWasley, 2001.
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ỵ
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
Lμ 1 qu¸ tr×nh s¸ng t¹o:
T×m gi¶i ph¸p c«ng nghÖ (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
®ñ 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ỵ
t¹o m« h×nh cμi ®Æt cña phÇn mÒm
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
dÔ ®äc, dÔ hiÓu, dÔ söa ®æi h¬n m· ch−¬ng trinh
cã nhiÒu møc chi tiÕt; cung cÊp c¸i nh×n tæng thÓ
lμm c¬ së ®Ó trao ®æi, c¶i tiÕn
Cung cÊp ®Çy ®ñ th«ng tin cho viÖc b¶o tr× sau nμy:
Gi¶m c«ng søc m· hãa khi söa ®æi
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ỵ
PhÇn mÒm lμ tËp c¸c m« ®un t−¬ng t¸c lÉn nhau
M« ®un hãa lμ ch×a khãa cho phÇn mÒm tèt
Môc tiªu thiÕt kÕ lμ x¸c ®Þnh:
c¸c m« ®un chøc n¨ng
c¸ch thøc cμi ®Æt m« ®un
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
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
c¸c m« ®un & c¸c yªu cÇu kh«ng nhÊt thiÕt
ph¶i t−¬ng øng 1-1
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:
thiÕt kÕ do nhiÒu ng−êi tiÕn hμnh song song
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
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
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
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
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Õ
ThiÕt kÕ kiÕn tróc
ph©n r· hÖ thèng thμnh hÖ thèng conc¸c m« ®un,
x¸c ®Þnh giao diÖn t−¬ng t¸c gi−a c¸c m« ®un
ThiÕt kÕ cÊu tróc d÷ liÖu
x©y dùng m« hinh biÓu diÔn th«ng tin
ThiÕt kÕ thñ tôc (thuËt to¸n)
x¸c ®Þnh c¸c b−íc thùc hiÖn xö lý
ThiÕt kÕ giao diÖn ng−êi dïng
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ỵ
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
Bộ môn Công nghệ phần mềm – ĐHCN
thiết kế
hình thức
hơn(bán)
thiết kế chi
tiết cuối
cùng
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
kiến trúc hệ thống
Đặc tả trừu tượng
Đặc tả các yêu cầu
đặc tả phần mềm
thiết kế giao diện
đặc tả giao diện
thiết kế thành phần
thiết kế dữ liệu
đặc tả cấu trúc dữ liệu
thiết kế thuật toán
Bộ môn Công nghệ phần mềm – ĐHCN
đặc tả thành phần
đặc tả thuật toán
12
ThiÕt kÕ kiÕn tróc
NguyễnVănVỵ
Sö dông biÓu ®å cÊu tróc (structure chart), m« t¶:
c¸i nh×n tæng thÓ vÒ hÖ thèng
mèi quan hÖ gi÷a c¸c m« ®un
giao diÖn gi÷a c¸c m« ®un
kh«ng cÇn chØ ra:
thø tù thùc hiÖn
sè lÇn thùc hiÖn
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ỵ
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
C¸c møc thiÕt kÕ
ThiÕt kÕ cÊu tróc l« gic
C¸c quan hÖ chuÈn
C¸c khãa
C¸c tham chiÕu
C¸c cÊu tróc thao t¸c d÷ liÖu
Bộ môn Công nghệ phần mềm – ĐHCN
ThiÕt kÕ cÊu tróc vËt lý
- C¸c file
- C¸c kiÓu
- KÝch cì
14
ThiÕt kÕ thñ tôc
NguyễnVănVỵ
M« t¶ c¸c b−íc ho¹t ®éng cña m« ®un
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ỵ
Trõu t−îng hãa: trõu t−îng hãa d÷ liÖu, thñ tôc,
®iÒu khiÓn
Lµm mÞn:
chi tiÕt hãa c¸c trõu t−îng theo ý ®å
TÝnh m«dun:
ph©n chia d÷ liÖu vμ chøc n¨ng
KiÕn tróc:
cÊu tróc tæng thÓ cña phÇn mÒm
Thñ tôc:
thuËt to¸n ®Ó thùc hiÖn chøc n¨ng
Che dÊu:
®iÒu khiÓn b»ng giao diÖn
Bộ môn Công nghệ phần mềm – ĐHCN
16
Trõu t−îng hãa (abstraction)
NguyễnVănVỵ
Kh¸i niÖm c¬ së trong t− duy cña con ng−êi
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
Cã nhiÒu møc trõu t−îng kh¸c nhau
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
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
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 Rút khóa ra, tìm chìa khác phù
Đóng cửa lại
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
Mở cửa
Bộ môn Công nghệ phần mềm – ĐHCN
20