Huúnh Xu©n HiÖp - CNPM
138
1
1
2
2g
g
i
i
a
a
i
i®
®
o
o
¹
¹
n
nt
P
P
H
H
A
A
S
S
E
E
)
)Néi dung:
Kh¸i qu¸t chung
ThiÕt kÕ vµ trõu t−îng hãa
ThiÕt kÕ h−íng sù kiÖn
ThiÕt kÕ h−íng d÷ liÖu
ThiÕt kÕ h−íng ®èi t−îng
KiÓm thö
§¸nh gi¸
Huỳnh Xuân Hiệp - CNPM
q
q
q
u
u
u
á
á
á
t
t
t
c
c
c
h
h
h
u
u
u
n
n
n
g
g
.
.
2
2
2
T
T
T
h
h
h
i
i
i
ế
ế
ế
t
t
t
k
k
k
ế
t
t
ợ
ợ
ợ
n
n
n
g
g
g
h
h
h
ó
ó
ó
a
a
a
(design and abstraction)
Giai đoạn thiết kế phần mềm có 3 hoạt động chính: kiến trúc, chi tiết và
kiểm thử
P
P
P
h
h
h
â
â
â
n
n
n
t
t
t
í
í
í
c
c
c
h
h
h
i
i
ệ
ệ
ệ
u
u
u
(data flow analysis - DFA)
Thiết kế hớng sự kiện, tạo ra các mô-đun với tính chặt chẽ cao
đầu vào: sơ đồ dòng dữ liệu (data flow diagram - DFD)
sau khi hoàn thành DFD, nhà thiết kế phần mềm phải hoàn tất các
thông tin vào/ra của từng module
Điểm trừu tợng hóa cao nhất đầu vào (point of highest abstraction of
input): điểm biến chuyển dữ liệu đầu vào thành dữ liệu nội tại
Điểm trừu tợng hóa cao nhất đầu ra (point of highest abstraction of
output): điểm biến chuyển dữ liệu nội tại thành đầu ra
a b c d e
f
g
h
đầu vào đầu ra
đầu vào đầu ra
Hình 12.2 Các điểm trừu tợng hóa cao nhất đầu vào và đầu ra
mô-đun đầu vào mô-đun đầu ra
điểm trừu tợng hóa
cao nhất đầu vào
điểm trừu tợng hóa
cao nhất đầu ra
đọc tên
tập tin
công
nhận tập
tin hợp lệ
đếm số
từ
hiển thị
số từ
định dạng
số lợng từ
đã đếm
tên
tập tin
tên
tập tin
công
nhận tên
tập tin
đếm số
từ
định
dạng số
Nhận đầu vào
Thực hiện đếm số từ
Đ
ếm số lợng từ
Tạo đầu ra
Thể hiện số từ đã đếm
Đ
ịnh dạng số từ đã đếm Công nhận tên tập tin
Đ
ọc tên tập tin
dữ li
ệ
u
điều khiển
tên
tập tin
tên tập tin
hợp lệ
tên tập tin
hợp lệ
số lợng
từ đã đếm
Các tập tin có thay đổi trên đó không
Các mô-đun đợc gọi không
Mô tả Sản phẩm đợc thi hành khi ngời dùng gõ lệnh:
word count <tên tập tin>
Sử dụng một lời gọi hệ thống, mô-đun này sẽ truy xuất nội dung
chuỗi lệnh do ngời sử dụng nhập vào, tách ra tên tập tin và trả
về kết quả là tên tập tin đã tách đợc.
Tên mô-đun
Công nhận tên tập tin hợp lệ
Kiểu trả về boolean
Các tham số đầu vào tên tập tin: String
Các tham số đầu ra không
Các thông báo lỗi không
Các tập tin truy xuất không
Các tập tin có thay đổi trên đó không
Các mô-đun đợc gọi không
Mô tả Mô-đun này tạo một lời gọi hệ thống để xác định sự tồn tại của
tập tin với tham số đầu vào là tên tập tin. Mô-đun trả về kết quả
true nếu tập tin đã tồn tại và false nếu ngợc lại.
Huỳnh Xuân Hiệp - CNPM
145
Tên mô-đun
Đếm số lợng từ
Kiểu trả về integer
Các tham số đầu vào tên tập tin hợp lệ: String
Các tham số đầu ra không
1
1
1
2
2
2
.
.
.
4
4
4
P
P
P
h
h
h
â
â
â
n
n
n
d
d
d
ị
ị
ị
c
c
c
h
h
h
(transaction analysis - TA)
Thiết kế hớng sự kiện
Một giao dịch là một thao tác theo quan điểm của ngời sử dụng sản phẩm
VD:
xử lý một yêu cầu, in ra danh sách các đặt hàng trong ngày
5
5
T
T
T
h
h
h
i
i
i
ế
ế
ế
t
t
t
k
k
k
ế
ế
ế
t
t
t
ợ
ợ
ợ
n
n
n
g
g
g
(object-oriented design - OOD)
Thiết kế sản phẩm thành các đối tợng(object) là các thể hiện của các lớp
(classe) hay các lớp con (subclass)
Các ngôn ngữ lập trình hớng đối tợng thông dụng nh Smalltalk
[Goldberg và Robson, 1989], C++ [Stroustrup, 1991], Eiffel [Meyer,
1992b], Ada95 [ISO/IEC 8652, 1995] và Java [Flanagan, 1996]
Khi cài đặt trên các ngôn ngữ lập trình không hớng đối tợng tiến hành
thiết kế trên các kiểu dữ liệu trừu tợng (abstract data type design)
Bao gồm 4 bớc:
xây dựng sơ đồ tơng tác cho từng kịch bản
điều khiển
điều khiển
n
Bộ điều khiển thang máy
1
1
Các cửa thang máy
điều khiển cửa mở: Boolean
n
cửa đóng
cửa mở
Thang máy
cửa mở: boolean
chuyển thang máy lên trên
chuyển thang máy xuống
Hình 12.7 Sơ đồ lớp chi tiết
Huỳnh Xuân Hiệp - CNPM
150
1
1
1
2
2
2
.
.
.
6
6
6
K
K
K
i
i
i
ể
ể
ể
m
m
m
g
g
g
i
i
i
a
a
a
i
i
i
đ
đ
đ
o
o
o
ạ
ạ
ạ
n
n
n
Có thể sử dụng
walkthroughs
thanh tra tơng tự nh trong giai đoạn đặc tả nhng có thể không có
đại diện của khách hàng
Phải phản ánh đợc hớng thiết kế 1
1
1
2
2
2
.
.
.
7
7
7
Đ
Đ
Đ
á
á
á
n
n
i
đ
đ
đ
o
o
o
ạ
ạ
ạ
n
n
n
t
t
t
h
h
h
i
i
i
ế
ế
ì
(fan-in
ì
fan-out)
2
length : kích thớc mô-đun
fan-in : số lợng các luồng đi vào mô-đun + số lợng cấu trúc dữ liệu
mà mô-đun truy xuất
fan-out : số lợng các luồng đi ra mô-đun + số lợng các cấu trúc dữ
liệu toàn cục mà mô-đun cập nhật
Phơng pháp thành công nhất cho thiết kế hớng đối tợng: CDM
[Kitchenham, Pickard và Linkman, 1990; Shepperd, 1990]
Một số phơng pháp khác : [Chidamber và Kemerer, 1994], [Binkley and
Schach, 1996;1997;1998]