Các giai ñ o ạ n thi ế t k ế Hoạt ñộng thiết kế xuất hiện trong các mô hình phát triển khác nhau Hai giai ñoạn thiết kế chính Thiết kếkiến trúc • phân tích giải pháp thành các thành
Trang 1Thi ế t k ế (6)
Nguy ễ n Thanh Bình
Trường ðại học Bách khoa
ðại học ðà Nẵng
Thi ế t k ế ?
phân tích bài toán/v ấ n ñề
xuất phát từ yêu cầ
mô t ả m ộ t ho ặ c nhi ề u gi ả i pháp
ñánh giá các giải pháp, chọn giải pháp tốt nhất
ở m ộ t m ứ c tr ừ u t ượ ng nh ấ ñị nh
sử d ng các mô hình
3 tính ch ấ t
trả lời câu hỏi “như thế nào”
mô tả chủ yếu là cấu trúc
b qua các chi tiết cài ñặt
• gi ả i pháp tr ừ u t ượ ng ≠ gi ả i pháp c ụ th ể
Trang 2Các giai ñ o ạ n thi ế t k ế
Hoạt ñộng thiết kế xuất hiện trong các mô
hình phát triển khác nhau
Hai giai ñoạn thiết kế chính
Thiết kếkiến trúc
• phân tích giải pháp thành các thành phầ
• ñịnh nghĩa giao diện giữa các thành phầ
• ñịnh nghĩa phần vấn ñề ñược giải quyết bởi mỗi thành phầ
• có thể ñược thực hiện bởi nhiều mức trừu tượng
Thiết kếchi tiết
• thiết kế thuật toán, cấu trúc dữ liệu
Các giai ñ o ạ n thi ế t k ế
Architectural
design
Abstract
specificatio
n
Interface design
Component design
Data structure design
Algorithm design
System
architecture
Software
specification specificationInterface specificationComponent
Data structure specification
Algorithm specification
Requirements
specification
Design activities
Design products
Trang 3Các giai ñ o ạ n thi ế t k ế
Architectural design
xác ñịnh các hệ thống con
Abstract specification
ñặc tả các hệ thống con
Interface design
mô tả giao diện các hệ thống con
Component design
phân tích hệ thống con thành các thành phầ
Data structure design
các cấu trúc dữ liệu lưu trữ dữ liệu của bài toán
Algorithm design
thiết kế thuật toán cho các hàm/mô-ñun
T ạ i sao ph ả i thi ế t k ế ?
có một kiến trúc tốt
làm chủ ñược cấu trúc hệthống
“chia ñểtrị”
ñạt ñược các tiêu chuẩn chất lượng
tái sử dụng / dễkeỉem thử/ dễbảo trì
thiết kế hướng ñến sự thay ñổi (design for
change)
Trang 4Thi ế t k ế và s ự thay ñổ i
Thay ñổi = tích chất ñặc trưng của phần
mềm
Dự báo thay ñổi là cần thiết
giảm chi phí bảo trì
Dự báo thay ñổi là khó khăn
sự thay ñổi thường không ñược xác ñịnh
trước
nhiều yếu tố thay ñổi cùng lúc
thời ñiểm thay ñổi là khó có thể biết trước
Thi ế t k ế và s ự thay ñổ i
thu ậ t toán
c ấ u trúc d ữ li ệ u
bi ể u di ễ n d ữ li ệ u bên ngoài
thi ế t b ị ngo ạ i vi
môi tr ườ ng xã h ộ i
yêu c ầ u khách hàng
Trang 5Thi ế t k ế hướ ng mô- ñ un
Phần mềm là tập hợp gồm các mô-ñun
tương tác với nhau
Mô-ñun hóa ñóng vai trò quan trọng ñể có
ñược phần mềm chất lượng với chi phí thấp
Mục ñích thiết kế hệ thống
xác ñịnh các mô-ñun có thể
xác ñịnh tương tác giữa các mô-ñun
Các tiêu chu ẩ n c ủ a m ộ t
ph ươ ng pháp thi ế t k ế
Các tiêu chuẩn ñể ñánh giá một phương
pháp thiết kế hướng mô-ñun
tính phân rã (modular decomposability)
tính tổng hợp (modular composability)
tính dễhiểu (modular understandability)
tính liên tục (modular continuity)
tính bảo vệ(modular protection)
Trang 6Các tiêu chu ẩ n c ủ a m ộ t
ph ươ ng pháp thi ế t k ế
tính phân rã (modular decomposability)
phân rã vấn ñềthành các vấn ñềcon nhỏ
hơn
có thểgiải quyết các vấn ñềcon một cách
ñộc lập
các phương pháp thiết kế từtrên xuống
(to-down design) thỏa mãn tiêu chuẩn này
Các tiêu chu ẩ n c ủ a m ộ t
ph ươ ng pháp thi ế t k ế
tính tổng hợp (modular composability)
các mô-ñun dễdàng ñược kết hợp với nhau
ñể tạo nên các hệthống mới
có mối quan hệchặt chẽvới tính tái sử dụng
tính tổng hợp có thể xung ñột với tính phân
rã
• phân rã thành các mô-ñun chuyên biệt thay vì các
mô-ñun tổng quát
Trang 7Các tiêu chu ẩ n c ủ a m ộ t
ph ươ ng pháp thi ế t k ế
tính dễhiểu (modular understandability)
thiết kế các mô-ñun một cách dễ hiể
tính chất mỗi mô-ñun
• m ỗ i mô- ñ un có d ễ hi ể u ?
• các tên s ử d ng có ý ngh ĩ a ?
• cso s ử d ng thu ậ t toán ph ứ c t ạ p ?
Ví dụ
s ử d ng “goto”
ch ươ ng trình vài nghìn dòng l ệ nh, nh ư ng không s ử
d ng hàm/th ủ t ụ
Các tiêu chu ẩ n c ủ a m ộ t
ph ươ ng pháp thi ế t k ế
tính liên tục (modular continuity)
một sự thay ñổi trong ñặc tảyêu cầu chỉdẫn
ñến sự thay ñổi trong một (hoặc một sốít)
mô-ñun
Ví dụ
☺ không sử d ng số hoặc chuỗi ký tự trong chương
trình, chỉ ñược sử d ng các hằng ñã ñịnh nghĩa
sử d ng mảng
Trang 8Các tiêu chu ẩ n c ủ a m ộ t
ph ươ ng pháp thi ế t k ế
tính bảo vệ (modular protection)
kiến trúc ñươc thiết kếsao cho nếu một ñiều
kiện bất thường xảy ra, chỉmột (hoặc một số
ít) mô-ñun bị ảnh hưởng
Thi ế t k ế ki ế n trúc
các thành ph ầ n/mô- ñ un
• hàm / nhóm các hàm / lớp
quan h ệ
• sửdụng / gọi / thừa kế
Trang 9Ch ấ t l ượ ng c ủ a ki ế n trúc
mỗi mô-ñun có tính kết cố cao (high
cohesion)
một mô-ñun là một ñơn vịlô-gíc
toàn bộ mô-ñun cùng ñóng góp thực hiện
một mục tiêu
liên kết lỏng lẽo (low coupling) giữa các
mô-ñun
ít ràng buộc, phụthuộc lẫn nhau
dễ hiểu
ñịnh nghĩa rỏ ràng
các mô-ñun và quan hệgiữa chúng
Các lo ạ i ki ế n trúc
Ba loại mô hình kiến trúc thường ñược sử
dụng
chia sẽ dữliệu: mô hình “Repository”
chia sẽ dịch vụ, servers: mô hình
“Client-Server”
mô hình lớp (layered model)
Trang 10Mô hình “Repository”
Nguyên tắc
dữliệu chia sẽ ñược tập trung trong một
CSDL
các hệthống con ñều truy cập vào CSDL
chung
Khi một lượng dữ liệu lớn cần chia sẽ giữa
các hệ thống con
mô hình “Repository” thường ñược sửdụng
Mô hình “Repository”
Trang 11Mô hình “Repository”
Ưu diểm
ñơn giản
hiệu quảkhi chia sẽ lượng dữliệu lớn
sự ñộc lập của các hệthống con
Hạn chế
các hệthống con phải thống nhất trên mô
hình dữliệu “repository”
khó khăn khi phân tán dữliệu
Mô hình “Client-Server”
Nguyên tắc
mô hình phân tán: dữliệu và xử lý ñược
phân tán trên nhiều thành phần khác nhau
Hệ thống bao gồm
các servers cung cấp các dịch vụ
• có thể có nhiều servers
các clients yêu cầu các dịch vụ
phương thức trao ñổi
• mạng hay trên một máy tính
Trang 12Mô hình “Client-Server”
Ví d ụ
Mô hình “Client-Server”
Ư u ñ i ể m
sử d ng hiệu quả mạng
d dàng thêm server mới hoặc nâng cấp server hiện
tại
phân tán dữ liệu dễ dàng
H ạ n ch ế
mỗi hệ thống con quan lý dữ liệu riêng của nó
• có th ể d n ñế n d ư th ừ a
không có kiến trúc tập trung ghi nhận các dich vụ
• khó khăn ñể xác ñị nh d ữ li ệ u hay d ị ch v ụ s ử d ng
Trang 13Mô hình l ớ p
Nguyên tắc
tổchức hệthống thành tập hợp các lớp
mỗi lớp cung cấp tập hợp các dịch vụ
ñược sử dụng ñể mô tả quan hệ giữa các
hệ thống con
khi giao diện của một lớp thay ñổi, chỉ lớp
kế cận bị ảnh hưởng
hỗ trợ mô hình phát triển tăng trưởng
Mô hình l ớ p