Tải bản đầy đủ (.pdf) (54 trang)

Bài giảng Công nghệ phần mềm: Chương 3 - ĐH Công nghệ TP.HCM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.01 MB, 54 trang )

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


×