Tải bản đầy đủ (.pdf) (45 trang)

Tài liệu Kỹ nghệ phần mềm 05 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (391.82 KB, 45 trang )

Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
K ngh phn mm
Software Engeneering
B môn Công ngh phn mm – HCN
2
NguynVnV
Ni dung
Bài 5: Khái nim thit k phn mm
̈ 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
3
NguynVnV
TÀI LiU THAM KHO
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
Approach. Fifth Edition, McGraw Hill, 2001.
5. 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 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 phn mm – HCN
8
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
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 phn mm – HCN
12
NguynVnV
TiÕn tr×nh hot đng thiÕt kÕ vμ sn phm
c t các yêu cu kin trúc h thng
thit k kin trúc
c t tru tng
thit k giao din
thit k thành phn
thit k d liu
thit k thut toán
đc t phn mm

đc t giao din
đc t thành phn
đc t cu trúc d liu
đc t thut 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 phn mm – HCN
15
NguynVnV
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 phn mm – HCN
18
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
Trõ t−îng d÷ liÖu
B môn Công ngh phn mm – HCN
19
NguynVnV
M ca
Mô t chi tin quá
trình vào phòng
qua ca
Trõ t−îng thñ tôc
B môn Công ngh phn mm – HCN
20

NguynVnV
Lμm mÞn tõng b−íc
M ca
Bc đn gn ca
a chìa khóa vào  xoay
M ca
Bc qua vào phòng
óng ca li
Lp li cho đn khi cht khóa bt ra
Nu cht không m thì
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 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 phn mm – HCN
22

NguynVnV
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

×