TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
MÔN HỌC
CÔNG NGHỆ PHẦN MỀM
Chương 6
Thiết kế phần mềm
CNPM/NN
1
Thiết kế phần mềm
1.
2.
3.
4.
5.
Thiết kế?
Thiết kế mơ hình hệ thống.
Thiết kế điều khiển.
Thiết kế Module.
Các mẫu thiết kế.
CNPM/NN
2
CNPM/NN
3
1. Thiết kế?
CNPM/NN
4
Thiết kế là gì?
Thiết kế tạo ra một biểu diễn hay mơ hình của phần mềm
hướng thực thi
Mơ hình thiết kế cung cấp các thông tin về kiến trúc
(architecture), Giao tiếp (interfaces), thành phần
(components) và dữ liệu (data)
CNPM/NN
5
2 hướng thiết kế
Hướng dẫn thiết kế
Một thiết kế phải đưa ra một kiến trúc mà
Dùng mẫu (pattern) hay kiểu (style) kiến trúc được thừa
nhận
Gồm những thành phần (component) có đặc trưng thiết kế
tốt
Có thể thi hành theo cách tiến hóa
Thiết kế phải có tính module, thiết kế phải đưa ra những
thành phần mà độc lập chức năng
Thiết kế được đưa ra từ việc dùng phương pháp lặp
CNPM/NN
7
Kiến trúc (Architecture)?
Kiến trúc phần mềm là một sự tổ chức có tính căn bản
của một hệ thống chứa những thành phần, những mối
quan hệ lẫn nhau của các thành phần này và của các
thành phần này với môi trường, nó chứa đựng những
nguyên lý định hướng cho việc thiết kế và tiến hóa kiến
trúc
Kiến trúc có tính tổng thể
Kiến trúc cho ta một hình ảnh về hệ thống phần mềm
Module và hệ thống con (sub-systems):
CNPM/NN
Module là một thành phần hệ thống mà cung cấp dịch vụ cho
những thành phần khác nhưng không được xem là một hệ thống
riêng biệt
Một hệ thống con hoạt động có tính độc lập cao
8
customer requirements
"four bedrooms, three baths,
lots of glass ..."
architectural design
Kiến trúc
CNPM/NN
9
Ví dụ : ACD
(Architectural Context
Diagram) của
SafeHome
Superordinate systems
Safehome
product
Internet-based
system
Used by
Peers
Control panel
Target system:
Security function
Surveillance
system
uses
Homeowner
uses
Actors
Depends on
Sensors
Sensors
Subordinate systems
10
CNPM/NN
11
Thiết kế dữ liệu ở mức kiến trúc
Thiết kế một hay nhiều cơ sở dữ liệu để hỗ trợ kiến trúc ứng
dụng
Thiết kế cách thức khai thác nhiều CSDL
Duyệt các CSDL
Kho dữ liệu (data warehouse) có thể truy cập tới nhiều CSDL
Thiết kế dữ liệu ở mức thành phần
CNPM/NN
Xây dựng các cấu trúc dữ liệu
12
2. Thiết kế mơ hình hệ thống
Trong q trình thiết kế kiến trúc hệ thống, hoạt động đầu
tiên phải thực hiện là xây dựng mơ hình tổ chức hệ
thống.
Phương pháp tổ chức hệ thống thường được sử dụng:
CNPM/NN
Mơ hình Kho dữ liệu dùng chung.
Kiến trúc gọi trả về.
Mơ hình Phân lớp.
Mơ hình client – server.
13
Mơ hình trung tâm dữ liệu
CNPM/NN
14
Kho dữ liệu
Hệ thống con phải biến đổi dữ liệu có thể theo 2 cách:
Chia sẻ dữ liệu trung tâm
Dùng CSDL riêng và truyền dữ liệu cho hệ thống khác
Khi cần chia sẻ dữ liệu lớn thì thường dùng kho dữ liệu
trung tâm
CNPM/NN
15
Thuận lợi – bất lợi
Thuận lợi
Hiệu quả trong chia sẻ
Hệ thống con không quan tâm tới việc xử lý dữ liệu của
trung tâm dữ liệu (an tồn, backup…)
Dùng chung mơ hình chia sẻ
Bất lợi
CNPM/NN
Tất cả phải theo mơ hình dữ liệu của kho
Tiến hóa dữ liệu thì khó và đắt
Khơng dùng được chính sách quản lý riêng
Khó phân bố một cách hiệu quả
16
Kiến trúc gọi trả về
Có 2 loại:
CNPM/NN
Kiến trúc chương trình chính /chương trình con (main
program /subprogram)
Kiến trúc gọi thủ tục từ xa (remote procedure call
architecture): các thành phần được phân bổ trên nhiều
máy tính
17
Chương trình chính /chương trình con
Main program
Controller
subprogram
Application
subprogram
Controller
subprogram
Application Application Application Application
subprogram subprogram subprogram subprogram
Application
subprogram
CNPM/NN
Controller
subprogram
Application
subprogram
18
Mơ hình phân lớp
Mơ hình phân lớp tổ chức hệ thống thành nhiều lớp và mỗi
lớp cung cấp một tập các dịch vụ. Hệ thống này tương đối
phức tạp.
CNPM/NN
19
Mơ hình phân lớp
Tổ chức hệ thống thành một tập những tầng (hay máy
trừu tượng), những tầng sẽ cung cấp một tập những dịch
vụ
Các hệ thống con tương tác với nhau qua tầng giao tiếp
Khi một tầng thay đổi chỉ những tầng liền kề mới bị ảnh
hưởng
Việc cấu trúc hệ thống theo mơ hình này rất khó
CNPM/NN
20
Mơ hình client - server
Mơ hình kiến trúc client-server bao gồm một tập hợp các
server cung cấp dịch vụ và các client truy nhập và sử
dụng các dịch vụ đó.
Các thành phần chính của mơ hình này bao gồm:
CNPM/NN
Tập hợp các server sẽ cung cấp những dịch vụ cụ thể như:
in ấn, quản lý dữ liệu…
Tập hợp các client truy nhập đến server để yêu cầu cung
cấp dịch vụ.
Hệ thống mạng cho phép client truy cập tới dịch vụ mà
server cung cấp.
21
Mơ hình client - server
CNPM/NN
22
Thuận lợi - bất tiện
Thuận lợi
Dễ phân bố dữ liệu
Hiệu quả, chi phí thấp
Dễ mở rộng (tăng số server) và cập nhật
Bất tiện
CNPM/NN
Tổng quát hóa của kiến trúc Client /Server
Client cũng có thể đóng vai trị server và ngược lại
23
3. Thiết kế điều khiển
Có 2 loại điều khiển:
Điều khiển tập trung: một hệ thống con chính chịu
trách nhiệm kiểm sốt, khởi tạo hoặc dừng các hệ
thống con khác.
Mơ hình gọi - trả lời (call-return)
Mơ hình quản lý
Điều khiển hướng sự kiện: mỗi hệ thống đáp ứng với
các sự kiện xảy ra từ các hệ thống con khác hoặc từ
mơi trường của hệ thống.
Mơhình lan truyền (Broadcast)
Mơ hình hướng ngắt (Interrupt-driven)
CNPM/NN
24
Mơ hình gọi - trả lời (call-return)
Gồm các thủ tục con được sắp xếp phân cấp, thủ tục điều
khiển nằm ở đỉnh của cấu trúc phân cấp và di chuyển dần
xuống dưới. Mơ hình này thường được áp dụng cho các hệ
thống tuần tự (khơng là mơ hình cấu trúc)
CNPM/NN
25