Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
K ngh phn mm
Software Engeneering
B môn Công ngh phn mm – HCN
2
NguynVnV
Ni dung
Bài 5: Khái nim thit k phn mm
̈ 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 phn mm – HCN
3
NguynVnV
TÀI LiU THAM KHO
1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn
mm. Nhà xut bn i hc Quc gia Hà ni, 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
Approach. Fifth Edition, McGraw Hill, 2001.
5. Ian Sommerville, Software Engineering. Sixth Edition, Addison-
Wasley, 2001.
6. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi.
Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà
Ni.
B mụn Cụng ngh phn mm HCN
4
NguynVnV
Khái niệm thit k phần mềm
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 lm nh thế
no để chuyển thnh chơng trình
Thit k l chuyển đặc tả yêu cầu thnh mô tả thiết
kế m ngi lp trình có th chuyn thnh chng
trình với 1 ngôn ngữ, vận hnh đợc đáp ứng đợc
yêu cầu đặt ra
L 1 quá trình sáng tạo:
B mụn Cụng ngh phn mm HCN
5
NguynVnV
tạo mô hình ci đặt của phần mềm
l công c giao tip gia các những ngời tham gia
phát trin, 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ể
lm cơ sở để trao đổi, cải tiến
Cung cấp đầy đủ thông tin cho việc bảo trì sau ny:
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
Vai trò thiết kế
B mụn Cụng ngh phn mm HCN
6
NguynVnV
Cấu trúc thiết kế
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 ci đặt mô đun
tơng tác giữa các mô đun
B mụn Cụng ngh phn mm HCN
7
NguynVnV
1. không bị bó buộc vo một cách nhin hạn chế no
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
nhng phải kiểm tra đợc sự thỏa mãn các
yêu cầu
Nguyên lý thiết kế
B môn Công ngh phn mm – HCN
8
NguynVnV
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
Nguyªn lý thiÕt kÕ (t)
B mụn Cụng ngh phn mm HCN
9
NguynVnV
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
Nguyên lý thiết kế (t)
B mụn Cụng ngh phn mm HCN
10
NguynVnV
Nôi dung & chất lợng thiết kế
Nội dung thiết kế
Thiết kế kiến trúc
phân rã hệ thống thnh hệ thống concác mô đun,
xác định giao diện tơng tác gia 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 bi toán độc lập
B mụn Cụng ngh phn mm HCN
11
NguynVnV
Mô hình tổng quát tiến trình thiết kế
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 hon chỉnh
phỏc tho
thit k phi
hỡnh thc
thit k
phi hỡnh
thc
thit k
hỡnh thc
hn(bỏn)
thit k chi
tit cui
cựng
B môn Công ngh phn mm – HCN
12
NguynVnV
TiÕn tr×nh hot đng thiÕt kÕ vμ sn phm
c t các yêu cu kin trúc h thng
thit k kin trúc
c t tru tng
thit k giao din
thit k thành phn
thit k d liu
thit k thut toán
đc t phn mm
đc t giao din
đc t thành phn
đc t cu trúc d liu
đc t thut toán
B mụn Cụng ngh phn mm HCN
13
NguynVnV
Thiết kế kiến trúc
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
Sử dụng biểu đồ cấu trúc (structure chart), mô tả:
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 phn mm HCN
14
NguynVnV
Thiết kế cấu trúc d liệu
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 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
Các mức thiết kế
Thiết kế cấu trúc vật lý
- Các file
-Các kiểu
-Kích cỡ
B môn Công ngh phn mm – HCN
15
NguynVnV
ThiÕt kÕ thñ tôc
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 phn mm HCN
16
NguynVnV
Các khái niệm thiết kế cơ sở
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 phn mm HCN
17
NguynVnV
Trừu tợng hóa (abstraction)
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 thnh 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) vo 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 phn mm – HCN
18
NguynVnV
Ca
mã sô: 256AD
loi: ca ra vào
hng m: ra bên trái
cao: 2.3
rng: 0.85
trong lng: 120
màu: nâu cánh dán
Trõ t−îng d÷ liÖu
B môn Công ngh phn mm – HCN
19
NguynVnV
M ca
Mô t chi tin quá
trình vào phòng
qua ca
Trõ t−îng thñ tôc
B môn Công ngh phn mm – HCN
20
NguynVnV
Lμm mÞn tõng b−íc
M ca
Bc đn gn ca
a chìa khóa vào xoay
M ca
Bc qua vào phòng
óng ca li
Lp li cho đn khi cht khóa bt ra
Nu cht không m thì
Rút khóa ra, tìm chìa khác phù
hp, cm váo khóa, tip tc
xoay cho đn khi m đc
Bc qua cua vào phòng
óng ca li
B mụn Cụng ngh phn mm HCN
21
NguynVnV
Thiết kế mô đun
Dựa trên quan điểm "chia để trị"
C(p1 + p2) > C(p1) + C(p2)
E(p1 + p2) > E(p1) + E(p2)
C: độ phức tạp
E: cụng sc thực hiện
giảm độ phức tạp
cục bộ, dễ sửa đổi
có khả năng phát triển song song
dễ sửa đổi, dễ hiểu nên dễ tái sử dụng
B môn Công ngh phn mm – HCN
22
NguynVnV
CÇn x¸c ®Þnh sè m«®un tèi −u
gi¸
phÇn
mÒm
sè m« ®un
kho¶ng cã sè
m« ®un tèi −u
chi phÝ ph¸t triÓn m« ®un
chi phÝ
tÝch hîp
Sè l−îng m«®un
B mụn Cụng ngh phn mm HCN
23
NguynVnV
Kích thớc?
nội dung?
Mụun
Kích cỡ môđun
Kích cỡ mô đun đợc quyết định dựa trên khái nim độc
lập chức nng: 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 phn mm HCN
24
NguynVnV
Che giấu thông tin
Sử dụng môđun thông qua các giao diện
danh sách tham số v giátrị trảlại
Không cần biết cách thức ci đặt ca nó:
thuật toán
cấu trúc d liệu
giao diện ngoại lai (mô đun thứ cấp, thiết bị vo/ra)
ti nguyên hệ thống
B mụn Cụng ngh phn mm HCN
25
NguynVnV
Lý do che giấu thông tin
Giảm hiệu ứng phụ khi sửa đổi môđun
Giảm tác động của thiết kế tổng thể lên thiết kế
cục bộ
Nhấn mạnh trao đổi thông tin thông qua giao diện
Loại bỏ việc sử dụng dữ liệu dùng chung
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