1. Trang chủ
  2. » Công Nghệ Thông Tin

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

54 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế phần mềm
Tác giả Jens Martensson
Trường học ĐH Công nghệ TP.HCM
Chuyên ngành Công nghệ phần mềm
Thể loại bài giảng
Thành phố TP.HCM
Định dạng
Số trang 54
Dung lượng 3,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Công nghệ phần mềm: Chương 3 Thiết kế phần mềm cung cấp cho người học những kiến thức như: Tổng quan về thiết kế; Kiến trúc phần mềm; Phương pháp thiết kế phần mềm; Ví dụ minh họa. Mời các bạn cùng tham khảo!

Trang 1

Jens Martensson

Insert or Drag and Drop your Image

THIẾT KẾ PHẦN MỀM

Trang 3

Jens Martensson

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 đó.

3

3.1 Tổng quan về thiết kế

Trang 4

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

3.1 Tổng quan về thiết kế

Trang 5

Jens Martensson

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)

5

3.1.1 Kỹ thuật thiết kế phần mềm

Trang 6

• Quá 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 toán có thể tính toán và giải quyết được.

3.1.1.1 Thiết kế trên xuống (top-down)

Trang 7

Jens Martensson

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.

7

3.1.1.2 Thiết kế từ dưới lên (bottom–up)

Trang 8

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 đun

mô-• 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

3.1.1.3 Thiết kế hệ thống phần mềm

Trang 9

Jens Martensson

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

9

3.1.1.4 Thiết kế bản mẫu (prototype)

Trang 10

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

3.1.1.5 Phân rã thiết kế

Trang 11

Jens Martensson

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 toàn bộ hệ thống

• 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

11

3.1.1.5 Phân rã thiết kế

Trang 12

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

3.1.1.5 Phân rã thiết kế

Trang 13

Jens Martensson

• Ví dụ: DFD hệ thống bán vé

13

3.1.1.5 Phân rã thiết kế

Trang 14

3.1.1.5 Phân rã thiết kế

Tiếp cận từ trên xuống (top-down)

cả các yêu cầu xử lý)

• 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ể.

Trang 15

Jens Martensson

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.

15

3.1.1.5 Phân rã thiết kế

Trang 16

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

3.1.1.5 Phân rã thiết kế

Trang 17

Jens Martensson

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ó yêu cầu chi tiết, cụ thể và có quy mô

Trang 18

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

Trang 19

Jens Martensson

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.

Trang 20

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 toá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 …

3.1.1.5 Phân rã thiết kế

Trang 21

Jens Martensson

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

Trang 22

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

3.1.1.5 Phân rã thiết kế

Trang 23

Jens Martensson

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.

23

3.1.1.5 Phân rã thiết kế

Trang 24

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

3.1.1.5 Phân rã thiết kế

Trang 25

Jens Martensson

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.

25

3.1.2 Thiết kế giao diện người dùng

Trang 26

Các yếu tố cần quan tâm trong thiết kế giao diện

Chế độ (modes):

• Trường hợp mà người dùng chỉ có thể thực hiện ở một số thao tác giới

hạn

• Kỹ thuật tạo/sử dụng cửa sổ có thể cung cấp dịch vụ có giá trị về biểu

diễn chế độ của chương trình, giúp thực hiện các thao tác trong những

cửa sổ khác nhau thể hiện bởi những chế độ chương trình khác nhau

3.1.2 Thiết kế giao diện người dùng

Trang 27

Jens Martensson

Thanh menu: giúp người dùng chọn lệnh của chương trình Có hai dạng menu

Dạng Pop-up menu: là menu có thể xuất hiện ở một vị trí bất kỳ

Trang 28

Dialog window: dạng hộp thoại giúp người dùng có thể tương tác với chương trình linh hoạt hơn.

• Khi thiết kế hộp thoại, ta cần đảm bảo tính đồng nhất trong giao diện

người dùng, nên ngắn gọn cô động như cách đặt nhãn Label, Checkbox,

Button, List box

Màu sắc Màu được dùng ở những nơi cần làm nổi bật những yêu cầu hoặc cần nhấn mạnh một nội dung, hoặc dấu hiệu cảnh

báo nguy hiểm.

• Nên sử dụng màu hài hòa trong toàn bộ hệ thống

• Sử dụng màu phải phù hợp với từng loại giao diện của chương trình

3.1.2 Thiết kế giao diện người dùng

Trang 29

Jens Martensson

Âm Thanh là cách tốt nhất tập trung sự chú ý của người dùng Chúng được phần mềm phù hợp trong các tình huống xử lý lỗi,

sự kiện không chắc chắn, tạm thời

• Nên tạo những âm thanh khác nhau với những sự kiện khác nhau, tránh

dùng âm thanh gây ồn

Tính kiên định

Phím tắt: nên dùng cho một số chức năng của phần mềm và nên cố

Trang 30

Thiết kế hướng chức năng: tập trung vào thuật toán để giải quyết vấn đề

• Xem một thuật toán như một hàm tính toán với các tham số đầu vào

Tại thời điểm bắt đầu giai đoạn thiết kế, thuật toán chưa xác định

• Cần xây dựng những thuật toán để giải quyết những tác nhiệm khó hoặc phức tạp của phần mềm

• Việc module hóa để phân rã những công việc thành các công việc con độc lập dựa vào thuật toán xử lý các công việc con

Kết quả chung của những giải pháp dựa trên các thuật toán con gộp lại.

3.1.3 Thiết kế hướng chức năng

Trang 31

Jens Martensson

Thiết kế hướng đối tượng là tổ chức thiết kế xoay quanh những đối tượng và mối liên hệ giữa

Thiết kế dữ liệu: thiết kế cách thức tổ chức lưu trữ các đối tượng trên bộ nhớ phụ.

31

3.1.3 Thiết kế hướng đối tượng

Trang 32

Kiến trúc phần mềm của một chương trình máy tính là cấu trúc của các thành phần bên trong hệ

thống, các mối quan hệ (cấu trúc) và cách tương tác giữa các thành phần với nhau.

Kiến trúc phần mềm bao gồm các phần tử chức năng, các thuộc tính và mối quan hệ giữa chúng

Kiến trúc phần mềm giúp việc quyết định ở mức cao trong thiết kế phần mềm dễ dàng hơn và cho phép tái sử dụng các thành

phần và mẫu thiết kế của các dự án.

3.2 Kiến trúc phần mềm

Trang 33

Jens Martensson 33

3.2 Kiến trúc phần mềm

Trang 34

Kiến trúc phần mềm bao gồm các thành phần cơ bản: Giao diện, Xử lý, Dữ liệu

• Khi thiết kế một phần mềm, nhóm thiết kế phải chọn lựa và ra quyết định về các “vật liệu” được dùng trong các thành phần

Kết quả được trình bày trên các bảng vẽ, dưới dạng tài liệu kỹ thuật, tạo thành các mô hình phần mềm

3.2 Kiến trúc phần mềm

Trang 35

Jens Martensson

Thành phần Giao diện

• Nội dung và hình thức trình bày các chức năng giao tiếp

• Các thao tác của người dùng trên giao diện để thực hiện các giao tiếp và các chức năng xử lý

Thành phần Xử lý:

• Các kiểu dữ liệu được mô tả về cách tổ chức lưu trữ trong bộ nhớ chính

• Các hàm thực hiện các xử lý (ví dụ kiểm tra tính hợp lệ việc cho mượn sách, ghi vào sổ việc cho mượn sách …)

35

3.2 Kiến trúc phần mềm

Trang 36

Thành phần Dữ liệu:

• cách tổ chức lưu trữ dữ liệu trong bộ nhớ

• Cách lưu trữ của dữ liệu được sử dụng của phần mềm,

• Hệ thống các thành phần lưu trữ và mối quan hệ giữa các dữ liệu.

3.2 Kiến trúc phần mềm

Trang 38

Kiến trúc Model-View-Controller – MVC

• Hệ thống được cấu trúc thành ba thành phần logic tương tác với nhau.

Model : quản lý dữ liệu của hệ thống và các thao tác trên dữ liệu

View : định nghĩa và quản lý cách dữ liệu được hiển thị cho người dùng

Controller: Quản lý tương tác người dùng (VD, ấn phím, nhấp chuột, )

và chuyển các tương tác này tới View và Model

3.2 Kiến trúc phần mềm

Trang 39

Jens Martensson

Kiến trúc Model-View-Controller – MVC

Hoạt động của MVC

Controller chuyển yêu cầu dữ liệu của người dùng cho Model.

Model Lấy được dữ liệu chuyển cho Controller.

Controller chuyển dữ liệu cho View

View Hiển thị thông tin cho người dùng.

39

3.2 Kiến trúc phần mềm

Trang 40

Kiến trúc Client-Server (máy khách-máy chủ) là một mô hình máy tính, trong đó máy chủ (server),

3.2 Kiến trúc phần mềm

Trang 41

Jens Martensson

Kiến trúc 3 Layer: gồm có 3 thành phần: Presentation Layers, Business Logic Layers, và Data Access

Layers

cơ sở dữ liệu.

41

3.2 Kiến trúc phần mềm

Trang 42

Kiến trúc 3 Layer: Cách vận hành:

• Người dùng giao tiếp với tầng giao diện (GUI) để gửi yêu cầu, các thông tin sẽ được kiểm tra, nếu OK, dữ

liệu được chuyển xuống tầng nghiệp vụ (BLL).

• Tại BLL, các thông tin sẽ được xử lý, nếu không cần đến Database thì BLL sẽ gửi trả kết quả về GUI,

ngược lại dữ liệu được đưa xuống tầng truy cập dữ liệu (DAL).

• DAL sẽ thao tác với Database và trả kết quả cho BLL, BLL kiểm tra và gửi cho GUI để hiển thị cho người

dùng.

3.2 Kiến trúc phần mềm

Trang 43

Jens Martensson

Phương pháp trực tiếp

• Phương pháp này được áp dụng khi thực hiện phần mềm không qua giai đoạn phân tích, việc thiết kế nhận kết quả đươc

chuyển giao trực tiếp từ giai đoạn xác định yêu cầu

• Đối với phương pháp trực tiếp: Thiết kế phần mềm là quá trình chuyển đổi từ các yêu cầu đến mô hình phần mềm tương ứng.

• Cách tiếp cận này rất khó đối với các phần mềm có quy mô lớn

43

3.3 Phương pháp thiết kế phần mềm

Trang 44

Phương pháp gián tiếp

• Được áp dụng với các quy trình có giai đoạn phân tích, việc thiết kế chỉ nhận 1 phần kết quả từ giai đoạn xác định yêu cầu,

phần chính được nhận từ giai đoạn phân tích, PM được xây dựng dựa trên các mô hình trong giai đoạn phân tích.

• Cách tiếp cận này thích hợp với các phần mềm có quy mô lớn

• Đối với phương pháp gián tiếp: Thiết kế PM là quá trình chuyển từ kết quả giai đoạn phân tích đến mô hình phần mêm tương

ứng

3.3 Phương pháp thiết kế phần mềm

Trang 45

Jens Martensson

Ví dụ minh họa quá trình thiết kế phần mềm sau khi thực hiện giai đoạn mô hình hóa yêu cầu.

Thiết kế phần mềm quản lý thư viện với 4 yêu cầu: Lập thẻ đọc

giả, Nhận sách, Cho mượn sách, Trả sách

45

3.4 Ví dụ minh hoạ

Trang 46

Thiết kế phần mềm: Hệ thống các màn hình giao diện

Màn hình chính

Màn hình Lập thẻ

3.4 Ví dụ minh hoạ

Trang 47

Jens Martensson

Màn hình cho mượn sách

Màn hình Nhận sách

Màn hình Trả sách

47

3.4 Ví dụ minh hoạ

Trang 48

Hệ thống các hàm xử lý

phép cập nhật hay xóa thẻ

nhận các thông tin cho mượn sách vào kho

3.4 Ví dụ minh hoạ

Trang 49

Jens Martensson

quá hạn và trả về 1 nếu đúng, 0 nếu sai

1 nếu đúng và 0 nếu sai

nhiều tiêu chuẩn để cập nhật hay số phiếu cho mượn

49

3.4 Ví dụ minh hoạ

Trang 50

Hệ thống các bảng dữ liệu

• Bảng THU_VIEN: các thông tin về thư viện

• Bảng DOC_GIA: các thông tin về độc giả

• Bảng SACH: các thông tin về sách

• Bảng MUON_SACH: các thông tin về mượn trả sách

3.4 Ví dụ minh hoạ

Trang 52

2 Các bước được gọi trong Quy trình hợp nhất (UP) là gì

Trang 53

Jens Martensson

3 KHÔNG phải là một hoạt động thiết kế chi tiết?

A Thiết kế phần mềm ứng dụng

B Thiết kế các cơ chế sao lưu và phục hồi hệ thống

C Thiết kế giao diện người dùng và hệ thống bên ngoài

D Thiết kế kiến trúc

53

Câu hỏi

Trang 54

4 là các yêu cầu và ràng buộc xác định các đặc điểm quan trọng của tài nguyên xử lý thông tin và

Ngày đăng: 20/06/2021, 09:11

🧩 Sản phẩm bạn có thể quan tâm