Nhập mơn
Cơng nghệ học Phần mềm
Introduction to Software Engineering
Department of Software Engineering
Faculty of Information Technology
Hanoi University of Technology
TEL: 048682595 FAX: 048692906
Email: cnpm@ithut.edu.vn
HUT, Falt.
ª Dept. of SE, 2001
SEIV.1
Phần IV
Thiết kế và Lập trình
Design and Programming
Chương 6:
Phương pháp thiết kế hệ thống
6.1. Thiết kế hệ thống là gì?
6.2. Phương pháp thiết kế hệ
thống
HUT, Falt.
ª Dept. of SE, 2001
SEIV.2
6.1.
Thitkhthngl
gỡ?
ã Lthitkcuhỡnhphncngvcu
trỳcphnmm(gmcchcnngv
dliu)cúchthngtha
móncỏcyờucura
ã CúthxemnhThitkcutrỳc
(WHAT),chkhụngphilThitk
Logic(HOW)
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.3
Quytrỡnhthitkhthng
ã Phõnchiamụhỡnhphõntớchracỏch
con
ã Tỡmrastngtranh(concurrency)
tronghthng
ã Phõnbcỏchconchocỏcbxlý
hoccỏcnhimv(tasks)
ã Phỏttrinthitkgiaodin
ã Chnchinlccitquntrd
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.4
liu
Quytrỡnhthitkhthng
(tip)
ã Tỡmranguntinguyờnchungvc
chiukhintruynhpchỳng
ã Thitkcchiukhinthớchhp
chohthng,kcqunlýnhimv
ã Xemxộtcỏciukinbiờncxlý
nhthno
ã Xộtduytvxemxộtcỏcthahip
(tradeưoffs)
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.5
Các điểm lưu ý khi thiết kế hệ
thống
(1) Có thể trích được luồng dữ liệu từ
hệ thống: đó là phần nội dung đặc tả
u cầu và giao diện
(2) Xem xét tối ưu tài ngun kiến trúc
lên hệ thống rồi quyết định kiến trúc
(3) Theo q trình biến đổi dữ liệu, hãy
xem những chức năng được kiến trúc
như thế nào
HUT, Falt.
ª Dept. of SE, 2001
SEIV.6
Các điểm lưu ý (tiếp)
(4) Từ kiến trúc các chức năng theo (3), hãy
xem xét và chỉnh lại, từ đó chuyển sang
kiến trúc chương trình và thiết kế chi
tiết
(5) Quyết định các đơn vị chương trình theo
các chức năng của hệ phần mềm có dựa
theo luồng dữ liệu và phân chia ra các
thành phần
(6) Khi cấu trúc chương trình lớn q, phải
phân chia nhỏ hơn thành các mơđun
HUT, Falt.
ª Dept. of SE, 2001
SEIV.7
Các điểm lưu ý (tiếp)
(7) Xem xét dữ liệu vàora và các tệp
dùng chung của chương trình. Truy
cập tệp tối ưu
(8) Hãy nghĩ xem để có được những thiết
kế trên thì nên dùng phương pháp
luận và những kỹ thuật gì ?
HUT, Falt.
ª Dept. of SE, 2001
SEIV.8
Thitkhthng
ã Thitkhthng
Thitkhthngphncng[(1),(2)]
Thitkhthngphnmm[(3)ư(7)]
ã Thitkhthngphnmm
Thitktp(filedesign)[(7)]
Thitkchcnnghthng[(3)ư(6)]
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.9
6.2Phngphỏpthitkh
thng
ã Phngphỏpthitkcutrỳchúa
(StructuredDesign)caConstantine
ã Ngoiracũncỏcphngphỏpkhỏc,
nhPhngphỏpthitktnghp
(CompositeDesign)caMyers
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.10
Thitkcutrỳchúa
ã Btnguntmodularity,topưdown
design,structuredprogramming
ã CũnxemnhPhngphỏpthitk
hnglungdliu(Dataflowưoriented
design)
ã Quytrỡnh6bc:(1)tokiulungthụng
tin;(2)chrabiờncalung;(3)ỏnhxDFD
sangcutrỳcchngtrỡnh;(4)xỏcnhphõn
cpiukhin;(5)tinhlccutrỳc;(6)chn
mụtkintrỳc
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.11
Thiết kế cấu trúc hóa
(1) Mơđun và tham số
(2) Lưu đồ bong bóng và cấu trúc phân cấp
Lưu đồ bong bóng (Bubble chart)
Cấu trúc phân cấp (Hierarchical structured chart)
(3) Phương pháp phân chia STS
(Source/Transform/Sink) và TR (Transaction)
(4) Phân tích cấu trúc hóa
(5) Chuẩn phân chia mơđun
HUT, Falt.
ª Dept. of SE, 2001
SEIV.12
(1)Mụun
ã Dóycỏclnhnhmthchinchc
nng(function)noú
ã Cúthcbiờndchclp
ã Mụunócdchcúthc
mụunkhỏcgiti
ã Giaodingiacỏcmụunthụngqua
cỏcbinthams(arguments)
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.13
(2a) Lưu đồ bong bóng (Bubble
chart)
• Biểu thị luồng xử lý dữ liệu
• Ký pháp
Tên dữ liệu
Tên
chức năng
Tên dữ liệu
(Dữ liệu vào) (Bong bóng)
HUT, Falt.
ª Dept. of SE, 2001
(Dữ liệu ra)
SEIV.14
(2b) Cutrỳcphõncp
(Hierarchicalstructuredchart)
ã Lphõncpbiuthquanhphthucgia
cỏcmụunvgiaodin(interface)giachỳng
ã Cỏcquyc:
Khụngliờnquanntrỡnhtgicỏcmụun,nhng
ngmnhlttrỏiquaphi
Mimụunxuthintrongcutrỳc1ln,cúth
cginhiuln
Quanhtrờndi:khụngcnnờuslngi
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.15
Hierarchicalstructuredchart
ã Cỏcquyc(tip):
Tờnmụunbiuthchcnng(lmgỡ),ttờn
saochocỏcmụunphớaditnghplis
biuthchcnngcamụuntngngphớa
trờn
Bins(arguments)biuthgiaodingiacỏc
mụun,binscỏcmụungi/bgicúth
khỏcnhau
Mitờnviuụitrũntrngbiuthdliu,uụi
trũnen(hng)biuthflag
Chiucamitờnlhngtruynthams
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.16
Hierarchical structured chart
Module A
1
Module B
Module C
Luồng dữ liệu
Module D
Module E
Luồng flag
HUT, Falt.
ª Dept. of SE, 2001
SEIV.17
(3)PhngphỏpphõnchiaSTS,TR
ã Thitkcutrỳc:
PhngphỏpphõnchiaSTS
(Source/Transform/Sink:
Ngun/Bini/Hpth)
PhngphỏpphõnchiaTR(Transaction)
ã Minhhaphõnchiachcnngtheo
bongbúngcaDFD(biulungd
liu)
HUT,Falt.
ê Dept.ofSE,2001
SEưIV.18
(3a) Phương pháp phân chia STS
1) Chia đối tượng “bài tốn” thành các
chức năng thành phần
Bài tốn
Problem
HUT, Falt.
F1
F3
F2
ª Dept. of SE, 2001
F4
SEIV.19
F5
Quyết định luồng dữ liệu
chính
2) Tìm ra luồng dữ liệu chính đi qua các chức
năng: từ đầu vào (Input) tới đầu ra (Output)
INPUT
F3
Luồng dữ
liệu chính
HUT, Falt.
F1
F4
F2
ª Dept. of SE, 2001
F5
OUTPUT
SEIV.20
Quyết định bong bóng và dữ
liệu
3) Theo luồng dữ liệu chính: thay từng
chức năng bởi bong bóng và làm rõ dữ
liệu giữa các bong bóng
Data1
INPUT
F1
Data2
HUT, Falt.
F2
Data3
F3
Data4
F4
ª Dept. of SE, 2001
Data5
F5
Data6
OUTPUT
SEIV.21
Từ sơ đồ bong bóng sang
sơ đồ phân cấp
4) Xác định vị trí trừu tượng hóa tối đa
đầu vào và đầu ra
Data1
INPUT
F1
Data2
F2
Data3
F3
Data4
F4
Trừu tượng hóa
tối đa đầu vào
Source Module
HUT, Falt.
Data5
F5
Trừu tượng hóa
tối đa đầu ra
Transform Module
ª Dept. of SE, 2001
Data6
OUTPUT
Sink Module
SEIV.22
5)Chuynsangsphõncp
Data1
INPUT
F1
Data2
F2
Data3
F3
Data4
Trừu tượng hóa
tối đa đầu vào
S o urc e Mo dule
HUT,Falt.
Transform
Module
F5
Trừu tượng hóa
tối đa đầu ra
Trans fo rmMo dule
Control
Module
Source
Module
Data5
F4
Data6
OUTPUT
S inkMo dule
0
1
2
ª Dept. of SE, 2001
Sink
Module
3
SEIV.23
6) Xác định các tham số giữa các mơđun
dựa theo quan hệ phụ thuộc
Module 0
3
3
Module 1
HUT, Falt.
1
5
Module 2
0
5
2
ª Dept. of SE, 2001
Module 3
3
SEIV.24
7) Với từng mơđun (Source, Transform, Sink)
lại áp dụng cách phân chia STS lặp lại các
bước từ 1) đến 6). Đơi khi có trường hợp
khơng chia thành 3 mơ đun nhỏ mà thành 2
hoặc 1
8) Tiếp tục chia đến mức cấu trúc lơgic khi
mơđun tương ứng với thuật tốn đã biết thì
dừng. Tổng hợp lại ta được cấu trúc phân
cấp: mỗi nút là 1 mơđun với số nhánh phía
dưới khơng nhiều hơn 3
HUT, Falt.
ª Dept. of SE, 2001
SEIV.25