Insert or Drag and Drop your Image
THIẾT KẾ PHẦN MỀM
Jens Martensson
NỘI DUNG
1.
Tổng quan về thiết kế
2.
Kiến trúc phần mềm
3.
Phương pháp thiết kế phần mền
4.
Ví dụ minh họa
Jens Martensson
2
3.1. Tổng quan về thiết kế
•
•
Mục tiêu của việc thiết kế là định hình hệ thống và tìm dạng thức của phần mềm có thể đáp ứng
được mọi yêu cầu.
Dữ liệu đầu vào của giai đọn thiết kế: Kết quả thu được từ bước phân tích trước đó.
Jens Martensson
3
3.1. Tổng quan về thiết kế
•
Mục đích thiết kế:
•
Hiểu rõ về yêu cầu và những ràng buộc có liên quan, khả năng tái sử
dụng của các thành phần.
•
Tạo đầu vào thích hợp và điểm xuất phát cho các hoạt động hiện thực
•
Có thể phân rã việc cài đặt thành các phần nhỏ dễ quản lý để nhiều nhóm
phát triển xử lý đồng thời.
•
Lựa chọn kiến trúc phù hợp với hệ thống.
Jens Martensson
4
3.1.1. Kỹ thuật thiết kế phần mềm
•
Có hai phương pháp chính:
•
Thiết kế từ trên xuống (Top- Down)
•
Thiết kế từ dưới lên (Bottom – Up)
Jens Martensson
5
3.1.1.1 Thiết kế trên xuống (top-down)
•
•
Q trình thiết kế được bắt đầu bằng những thành phần tổng quan nhất của hệ thống.
Triển khai thành những module nhỏ hơn, quá trình này được lặp lại cho đến khi những nhiệm vụ con
trở nên đơn giản sao cho một thuật tốn có thể tính tốn và giải quyết được.
Jens Martensson
6
3.1.1.2 Thiết kế từ dưới lên (bottom–up)
•
Thiết kế từ dưới lên bắt đầu từ một công việc nhỏ nhất và cụ thể, phát triển liên tiếp thành một
thành phần trừu tượng cho đến khi đạt được kết quả mà là các chức năng theo yêu cầu của người
dùng.
Jens Martensson
7
3.1.1.3 Thiết kế hệ thống phần mềm
•
Thiết kế hệ thống phần mềm có ba cấp độ kết quả:
•
Thiết kế kiến trúc: Thiết kế kiến trúc là phiên bản trừu tượng cao nhất của
hệ thống. Nó xác định phần mềm là một hệ thống có nhiều thành phần
tương tác với nhau.
•
Thiết kế cấp cao:. Thiết kế cấp cao tập trung vào cách hệ thống cùng với
tất cả các thành phần của nó có thể được thực hiện dưới dạng các mơđun.
•
Thiết kế chi tiết: Thiết kế chi tiết liên quan đến phần thực hiện của một hệ
thống và các hệ thống con, xác định cấu trúc logic của từng mô-đun và
giao diện của chúng để giao tiếp với các module khác.
Jens Martensson
8
3.1.1.4 Thiết kế bản mẫu (prototype)
•
Thiết kế bản mẫu: tạo các giao diện sơ bộ, các bản thiết kế phác thảo cho người dùng tham khảo
trước khi thiết kế chi tiết
•
Các bản thiết kế này được thực hiện dạng tài liệu kỹ bằng các phần mềm
thiết kế nhanh như MS Visio, MS Visual Basic / C# / C++, MS Front Page /
Visual Interdev …
•
Đây là bước đệm cơ bản trước khi đi vào hiện thực chi tiết.
Jens Martensson
9
3.1.1.5 Phân rã thiết kế
•
Phân rã thiết kế giúp hiện thực hóa từng phần bản thiết kế đến mức chi tiết. Các nhóm phương pháp
phân rã gồm:
•
Phân rã hướng chức năng
•
Phân rã hướng dữ liệu
Jens Martensson
10
3.1.1.5 Phân rã thiết kế
•
Phân rã hướng chức năng
•
Dựa trên những yêu cầu chức năng để phân rã hướng đến các tác nhiệm
của tồn bộ hệ thống.
•
Sử dụng Sơ đồ phân rã chức năng (FDD):
•
Xác định các chức năng dựa trên mơ tả các tính chất của đầu vào và đầu ra
•
Xác định phạm vi của hệ thống
•
Phân hoạch chức năng
•
Tạo nền tảng cho thiết kế kiến trúc hệ thống
Jens Martensson
11
3.1.1.5 Phân rã thiết kế
•
Phân rã hướng dữ liệu
•
Tiến trình thiết kế tập trung vào dữ liệu.
•
Chiến lược thiết kế hướng đến các đối tượng dữ liệu cần được thực hiện.
•
Việc phân rã hệ thống dựa trên việc phân tích dữ liệu, bao gồm sơ đồ
luồng dữ liệu (Data flow diagram - DFD), giúp xem toàn bộ luồng dữ liệu
bên trong hệ thống và cách dữ liệu được xử lý theo nhiều mức chi tiết
khác nhau và nhiều biến thể mở rộng khác nhau.
Jens Martensson
12
3.1.1.5 Phân rã thiết kế
•
Ví dụ: DFD hệ thống bán vé
Jens Martensson
13
3.1.1.5 Phân rã thiết kế
•
Tiếp cận từ trên xuống (top-down)
•
Lập sơ đồ luồng dữ liệu cấp 0 (xét tất cả các luồng dữ liệu nhập xuất, tất
cả các yêu cầu xử lý)
•
Phân rã sơ đồ luồng dữ liệu cấp 0 thành các sơ đồ luồng dữ liệu cấp 1:
•
•
•
Phân rã các xử lý thành nhiều xử lý con và quyết định các luồng dữ liệu tương
ứng.
Phân rã các luồng dữ liệu nhập xuất thành nhiều luồng dữ liệu con và quyết
định các xử lý tương ứng
Quá trình kết thúc khi đạt đến các sơ đồ không thể tiếp tục phân rã được nữa,
đây là sơ đồ tương ứng với công việc cụ thể.
Jens Martensson
14
3.1.1.5 Phân rã thiết kế
•
Nhận xét: Cách tiếp cận từ trên xuống
•
Thích hợp với phần mềm có số lượng người dùng, số lượng các yêu cầu ít
(nếu ngược lại sơ đồ cấp 0 sẽ rất phức tạp và khó lập chính xác).
•
Đặc biệt thích hợp với các loại phần mềm mà yêu cầu chưa được xác định
rõ ngay từ đầu (ví dụ các phần mềm hệ thống). ít được sử dụng.
Jens Martensson
15
3.1.1.5 Phân rã thiết kế
•
Tiếp cận từ dưới lên (bottom-up)
•
Lập sơ đồ luồng dữ liệu ở mức cao nhất.
•
Tích hợp các sơ đồ này để tạo các sơ đồ có cấp nhỏ hơn theo cách:
•
•
•
Tích hợp các xử lý của các sơ đồ cấp k vào sơ đồ cấp k-1 và giữ nguyên
các luồng dữ liệu của các sơ đồ cấp k
Tích hợp đồng thời các xử lý và các luồng dữ liệu của các sơ đồ cấp k
để tạo lập sơ đồ cấp k-1.
Quá trình kết thúc khi đạt đến các sơ đồ cấp 0
Jens Martensson
16
3.1.1.5 Phân rã thiết kế
•
Nhận xét: Cách tiếp cận từ dưới lên
•
Thích hợp với các phần mềm có u cầu chi tiết, cụ thể và có quy mơ
trung bình.
•
Khó thực hiện với các dự án có quy mơ lớn và yêu cầu chưa được rõ ràng
chi tiết
Jens Martensson
17
3.1.1.5 Phân rã thiết kế
•
•
Hướng tiếp cận phối hợp:
•
Lập sơ đồ luồng dữ liệu cấp k theo tiêu chí xác định
•
Phân rã sơ đồ cấp k thành nhiều sơ đồ cấp k+1 tiếp tục cho đến khi đạt
được các sơ đồ lá.
•
Tích hợp các sơ đồ cấp k thành các sơ đồ cấp k-1 tiếp tục cho đến khi đạt
được sơ đồ cấp 0.
Nhận xét
•
Cách tiếp cận phối hợp thích hợp cho các phần mềm có quy mơ u cầu
lớn, phức tạp
•
Được dùng nhiều trong thực tế.
Jens Martensson
18
3.1.1.5 Phân rã thiết kế
•
Lập sơ đồ luồng dữ liệu cho từng cơng việc
•
Việc lập các sơ đồ luồng dữ liệu cho toàn bộ phần mềm sẽ trở thành lập
sơ đồ luồng dữ liệu cho từng cơng việc.
•
Sau đó tích hợp để có sơ đồ cấp 0.
•
Q trình lập sơ đồ luồng dữ liệu cho một công việc được tiến hành qua 3
bước.
•
Xác định dữ liệu nhập
•
Xác định dữ liệu xuất
•
Mơ tả cách xử lý
Jens Martensson
19
3.1.1.5 Phân rã thiết kế
•
Bước 1: Xác định dữ liệu nhập, dữ liệu nhập phải thỏa điều kiện sau:
•
•
•
Khơng nhập vào các dữ liệu có thể tính tốn được dựa trên quy định hay
cơng thức đã có.
Khơng nhập vào các dữ liệu đã được lưu trữ trước đó.
Dữ liệu nhập từ thiết bị nhập khác chỉ được xem xét khi có yêu cầu đặc
biệt trong một số phần mềm đặc biệt như: hệ thống thời gian thực, hệ
thống bản đồ, nhập qua điện thoại tổng đài …
Jens Martensson
20
3.1.1.5 Phân rã thiết kế
•
Bước 2: Xác định dữ liệu xuất
•
Cần phải có các thơng báo giúp người dùng biết được kết quả xử lý của hệ thống. Ví dụ thơng báo việc mượn sách là khơng
hợp lệ …
•
Tăng tính tiện dụng: trong tất cả các xử lý (kể cả các xử lý lưu trữ, tính tốn) cần phải xuất cho người dùng các thơng tin về
kết quả.
•
Tất cả dữ liệu xuất ra màn hình thì phải xuất ra được trên máy in. Đối với các loại thiết bị xuất khác cần phải có các loại phần
mềm đặc biệt.
Jens Martensson
21
3.1.1.5 Phân rã thiết kế
•
Bước 3: Mơ tả Xử lý
•
•
Chỉ mô tả cách xử lý mà không cần chú ý đến cách thực hiện nhập xuất
Khi mô tả cách sử dụng dữ liệu nhập để tạo dữ liệu xuất, việc mơ tả
càng chi tiết thì việc thiết kế xử lý càng dễ dàng.
•
Chỉ chú trọng đến tính đúng đắn
•
Mơ tả chính xác thứ tự nhập/xuất
Jens Martensson
22
3.1.1.5 Phân rã thiết kế
•
•
Xây dựng mơ hình thực thể kết hợp (ERD)
Mơ hình ERD là dạng sơ đồ giúp thể hiện các đối tượng dữ liệu được đặc tả trong yêu cầu của phần
mềm, tạo nền tảng cho việc thiết kế chi tiết cơ sở dữ liệu cho phần mềm.
Jens Martensson
23
3.1.1.5 Phân rã thiết kế
•
Phân rã hướng đối tượng
•
Một hệ thống phần mềm được xem như tập hợp các đối tượng, mỗi đối tượng có cấu trúc dữ liệu và hành vi.
•
Phân rã hướng đối tượng hướng đến tính đồng nhất giữa dữ liệu, hành vi dựa trên sự che dấu thống tin và dẫn xuất kế thừa.
Jens Martensson
24
3.1.2 Thiết kế giao diện người dùng
•
Thiết kế giao diện người dùng
•
Thiết kế giao diện được hỗ trợ một phần trong thiết kế dạng mơ hình bản mẫu (prototype) nhằm làm rỏ các yêu cầu từ
người dùng và đáp ứng các yêu cầu về giao diện.
•
Nếu khách hàng đồng ý với bản mẫu đã đưa ra trong giai đoạn xác định yêu cầu, kỹ sư thiết kế sẽ hoàn chỉnh thêm để đảm
bảo chính xác yêu cầu người dùng.
Jens Martensson
25