Giáo trình Công nghệ phần mềm - Chương 3: Thiết kế Phần Mềm
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Công nghệ phần mềm - Chương 3: Thiết kế Phần Mềm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
        Tài liệu đính kèm:
 giao_trinh_cong_nghe_phan_mem_chuong_3_thiet_ke_phan_mem.pdf giao_trinh_cong_nghe_phan_mem_chuong_3_thiet_ke_phan_mem.pdf
Nội dung text: Giáo trình Công nghệ phần mềm - Chương 3: Thiết kế Phần Mềm
- Chương 3: Thiết kế Phần mềm 1
- Nội dung Thiết kế giao diện Thiết kế Phần mềm? Thiết kế xử lý Thiết kế dữ liệu (lưu trữ) 2
- Tổng quan  Khái niệm:  Thiết kế phần mềm là mô tả chi tiết tổ chức, hoạt động các đơn vị xử lý của phần mềm  Dựa trên kết quả của việc phân tích  Là cơ sở cho việc thực hiện phần mềm Hồ sơ Hồ sơ Phân tích Thiết kế Thực hiện Phân tích Thiết kế 3
- Tổng quan Màn hình giao diện Người dùng D1 D2 - Kiểu dữ liệu Thiết kế xử lý Khối xử lý - Hằng, biến - Hàm, đơn thể, lớp đối tượng D3 D4 Lưu trữ dữ liệu 4
- Thiết kế giao diện  Thiết kế giao diện: Mô tả chi tiết cách thức giao tiếp giữa người sử dụng và phần mềm  Màn hình giao diện  Nội dung  Hình thức trình bày  Biến cố phải xử lý  Lập danh sách các biến cố: STT Điều kiện kích hoạt Xử lý Ghi chú 1 5
- Thiết kế giao diện  Mô tả danh sách các thành phần của giao diện: STT Tên Kiểu Ý nghĩa Miền giá Giá trị mặc Ghi chú trị định 1 6
- Thiết kế dữ liệu (lưu trữ)  Thiết kế dữ liệu: Mô tả chi tiết cách thức tổ chức, lưu trữ các dữ liệu của phần mềm  Tổ chức lưu trữ  Bảng/Tập tin  Thuộc tính/Cấu trúc  Liên kết giữa các bảng/Tập tin  Danh sách các bảng STT Bảng Ý nghĩa Ghi chú 1 7
- Thiết kế dữ liệu (lưu trữ)  Danh sách các thuộc tính bảng X STT Thuộc Kiểu Ràng buộc Giá trị Ghi chú tính Khởi động 1 8
- Thiết kế Xử lý  Thiết kế xử lý: Mô tả chi tiết hệ thống các hàm xử lý (cùng với các hằng, biến, kiểu liên quan) của phần mềm  Danh sách các kiểu dữ liệu xử lý STT Kiểu dữ liệu Ý nghĩa Ghi chú  Danh sách các thuộc tính kiểu dữ liệu X STT Thuộc tính Kiểu Ràng buộc Giá trị khởi động Ghi chú 9
- Thiết kế Xử lý  Danh sách các biến STT Biến Kiểu Ý nghĩa Ghi chú  Danh sách các hằng STT Hằng Kiểu Giá trị Ý nghĩa Ghi chú  Danh sách các hàm xử lý STT Hàm Tham số Kết quả Thuật Ý nghĩa Ghi chú trả về giải 10
- Ví dụ  Phân tích, thiết kế chức năng tra cứu học sinh theo lớp 1. Phân tích Sơ đồ luồng dữ liệu  Giải thích: Người dùng  D1: Lớp được chọn D1 D2  D2: Danh sách học sinh trong lớp được chọn  D3: Danh sách lớp, Danh sách học sinh Tra cứu học sinh  Thuật toán xử lý theo lớp  Đọc D3 D3  Nhập D1  Tính D2 (DS học sinh trong lớp được chọn)  Xuất D2 11
- Ví dụ (tt) 2. Thiết kế a. Thiết kế dữ liệu (lưu trữ) Dùng cơ sở dữ liệu quan hệ gồm hai bảng: HOC_SINH, LOP 12
- Ví dụ (tt) 2. Thiết kế b. Thiết kế giao diện (0) (1) Cách 1 13
- Ví dụ (tt) 2. Thiết kế b. Thiết kế giao diện (1) (0) Cách 2 14
- Ví dụ (tt) 2. Thiết kế b. Thiết kế giao diện (1) (0) (2) Cách 3 15
- Ví dụ (tt) 2. Thiết kế b. Thiết kế giao diện Danh sách các biến cố STT Điều kiện kích hoạt Xử lý 0 Khởi động màn hình ??? 1 Chọn lớp ??? 2 Chọn học sinh ??? 16
- Ví dụ (tt) 2. Thiết kế b. Thiết kế xử lý STT Hàm Tham số Kiểu trả về Thuật giải Ghi chú 1 Xuất danh ? sách lớp 2 Xuất danh ? sách học sinh 3. Bài tập: Mở rộng khi Trường quản lý phân cấp theo khối 17
- Thiết kế dữ liệu 18
- Thiết kế dữ liệu  Mục tiêu: Mô tả cách thức tổ chức lưu trữ dữ liệu của phần mềm/hệ thống dựa trên phần mềm. Người dùng D1 D2 Xử lý D3 D4  D1, D2 được lưu trữ theo cách thức nào trong bộ nhớ chính?  D3, D4 được lưu trữ theo cách thức nào trong bộ nhớ phụ? 19
- Thiết kế dữ liệu  Cách thức lưu trữ dữ liệu trên bộ nhớ chính:  Kiểu cấu trúc  Kiểu mảng  Kiểu xâu  Kiểu cây   Cách thức lưu trữ dữ liệu trên bộ nhớ phụ:  Tập tin (Có cấu trúc/Không có cấu trúc)  Cơ sở dữ liệu (Quan hệ/Đối tượng) 20
- Thiết kế dữ liệu  Các yêu cầu chất lượng:  Tính đúng đắn: Lưu trữ đầy đủ và đúng ngữ nghĩa các thông tin có trong nghiệp vụ liên quan  Tính tiến hóa: Lưu trữ thông tin về tổ chức và qui định có trong nghiệp vụ liên quan  Tính hiệu quả: Lưu trữ tiết kiệm nhất không gian bộ nhớ, truy xuất nhanh nhất thông tin cần thiết  Tính bảo mật: Lưu trữ thông tin về các người sử dụng phần mềm cùng với quyền hạn tương ứng 21
- Thiết kế dữ liệu  Thuộc tính  Là các đặc trưng mô tả về đối tượng  Thực thể  Sơ đồ logic  Công cụ cho phép mô tả trực quan cách thức lưu trữ dữ liệu trên bộ nhớ phụ với việc sử dụng cơ sở dữ liệu quan hệ  Liên kết giữa các bảng (mối kết hợp) 22
- Phân loại thuộc tính  Thuộc tính khóa  Thuộc tính có giá trị rời rạc  Thuộc tính đa trị  Thuộc tính là đối tượng phụ  Thuộc tính tính toán 23
- Phân loại thuộc tính  Thuộc tính khóa  Thuộc tính có giá trị rời rạc:  Thuộc tính phái của Sinh viên chỉ có 2 giá trị: Nam hoặc Nữ  Thuộc tính phái của Sinh viên chỉ có 2 giá trị: 0 hoặc 1 (0: Nam, 1: Nữ)  Thuộc tính điểm học phần chỉ có các giá trị 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.  Thuộc tính loại nhân viên chỉ có các giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản xuất. 24
- Phân loại thuộc tính  Thuộc tính đa trị:  Thuộc tính điện thoại của nhân viên là thuộc tính đa trị: . 081234567 . 09081234567,  Thuộc tính email của sinh viên cũng là một thuộc tính đa trị: . dungta@yahoo.com, . dungta@gmail.com, 25
- Phân loại thuộc tính  Thuộc tính là đối tượng phụ: Tìm sinh viên có địa chỉ ở Bình Định, Nha Trang, Tp.HCM ??? 26
- Phân loại thuộc tính  Thuộc tính là đối tượng phụ:  Thuộc tính địa chỉ của sinh viên, nhân viên là một đối tượng phụ, bao gồm các thông tin: . Số nhà . Đường . Phường/xã . Quận/huyện . Tỉnh thành  Thuộc tính ngày sinh của sinh viên, nhân viên cũng là một đối tượng phụ gồm các thông tin: ngày, tháng, năm 27
- Phân loại thuộc tính  Thuộc tính tính toán:  Thuộc tính thành tiền trong hóa đơn là một thuộc tính tính toán, được tính bằng tổng số lượng * đơn giá của các mặt hàng  Thuộc tính điểm trung bình của học sinh, sinh viên cũng là một thuộc tính tính toán 28
- Phân loại thuộc tính  Quan hệ giữa các thực thể: Phân loại quan hệ dựa trên bản số  Quan hệ “1-1”  Quan hệ “1-nhiều”  Quan hệ “nhiều-nhiều” 29
- Ví dụ 1  Xét phần mềm quản lý bán hàng với nghiệp vụ lập phiếu thu tiền của khách hàng Hãy lập sơ đồ logic dữ liệu 30
- Ví dụ 1 (tt)  Cách 0: dùng 1 bảng  Cách 1: dùng 2 bảng (PHIEU_THU, LYDO_THU)  Cách 2: dùng 2 bảng (PHIEU_THU, KHACH_HANG)  Cách 3: dùng 4 bảng 31
- Ví dụ 1 (tt) PHIEU_THU KHACH_HANG MA_PT MA_KH MA_KH Ho_Ten MA_LDT CMND Ngay_Thu Dia_Chi SoTien_Thu THAM_SO LYDO_THU MA_Tham_So MA_LDT Ten_Tham_So Ten_LDT Gia_Tri Table THAM_SO dùng để lưu những qui định 32
- Ví dụ 2  Xét phần mềm quản lý nhân sự với nghiệp vụ tiếp nhận nhân viên 33
- Ví dụ 2 (tt) Hãy lập sơ đồ logic dữ liệu cho yêu cầu nghiệp vụ trên trong các trường hợp sau: a. Không yêu cầu theo dõi quá trình chuyển nhân viên từ đơn vị này sang đơn vị khác b. Có yêu cầu theo dõi quá trình chuyển nhân viên c. Bổ sung qui định: Đơn vị X chỉ nhận các nhân viên có trình độ đại học và sau đại học 34
- Ví dụ 2 (tt) a. NHAN_VIEN DON_VI MA_NV MA_Don_Vi MA_Don_Vi Ten_Don_Vi Ho_Ten Gioi_Tinh Ngay_Sinh Dien_Thoai Dia_Chi TRINH_DO Ma_Trinh_Do MA_Trinh_Do Ten_Trinh_Do 35
- Ví dụ 2 (tt)  Table THAM_SO có thể thiết kế theo nhiều cách  Cách 1 Khóa ThamSố#1 ThamSố#2 ThamSố#N Mỗi tham số tương ứng với một cột trong bảng tham số Bảng tham số thường chỉ gồm 1 dòng (chứa giá trị các tham số hiện hành) Cần bổ sung tham số mới? ? Cần vô hiệu hóa tác dụng của một tham số? 36
- Ví dụ 2 (tt) Được lưu  Cách 2 dạng chuỗi MãThamSố TênThamSố Kiểu GiáTrị TìnhTrạng Mỗi tham số tương ứng với một dòng trong bảng tham số Giá trị hiện tại của tham số được lưu bằng dạng chuỗi Mỗi tham số cần lưu trữ kiểu giá trị để phần mềm “hiểu” đúng nội dung giá trị hiện tại của tham số Cần bổ sung tham số mới? ? Cần vô hiệu hóa tác dụng của một tham số? 37
- Ví dụ 2 (tt) b. PHAN_CONG MA_PC NHAN_VIEN MA_NV MA_NV MA_Don_Vi Ho_Ten Ngay_PhanCong DON_VI Gioi_Tinh MA_Don_Vi Ngay_Sinh Ten_Don_Vi Dien_Thoai Dia_Chi Ma_Trinh_Do TRINH_DO MA_Trinh_Do Ten_Trinh_Do 38
- Ví dụ 2 (tt) c. Bổ sung qui định: Đơn vị X chỉ nhận các nhân viên có trình độ đại học và sau đại học ??? 39
- Thiết kế dữ liệu  Khi thiết kế dữ liệu phải chú ý đến các vấn đề sau:  Không gian  Thời gian  Khối lượng dữ liệu phát sinh rất nhanh theo thời gian  Đáp ứng yêu cầu truy xuất nhanh  . 40
- Sơ đồ kiểu dữ liệu  Cho phép mô tả cách thức tổ chức lưu trữ dữ liệu trong bộ nhớ chính  Ký hiệu: Tương tự như sơ đồ logic  Ví dụ: Xét chức năng tính diện tích đường tròn DUONG_TRON DIEM Tam : DIEM Hoanh_do : R Ban_kinh : R Tung_do : R 41
- Bài tập 1. Xét phần mềm quản lý học sinh với chức năng ghi nhận bảng điểm danh Hãy lập: sơ đồ luồng dữ liệu, sơ đồ logic dữ liệu 42
- Bài tập 2. Xét phần mềm quản lý bán hàng với chức năng lập hóa đơn bán hàng. Hãy lập sơ đồ logic dữ liệu 43
- Bài tập 3. Xét phần mềm quản lý tiết kiệm với chức năng mở sổ tiết kiệm. Hãy lập sơ đồ logic dữ liệu 44
- Thiết kế giao diện 45
- Tầm quan trọng của giao diện WAN Multimedia LAN Dial Giao dịch điện tử DSL Wireless Cable FR/ATM Tài liệu điện tử Xử lý thông tin Tìm kiếm thông tin 46
- Các thành phần của giao diện Giao diện Multimedia tương tác Giao dịch điện tử Giao diện Giao diện nhập liệu Giao diện kết xuất Tài liệu điện tử Xử lý thông tin Tìm kiếm thông tin 47
- Mục tiêu  Mục tiêu: mô tả chi tiết cách thức giao tiếp giữa người dùng và phần mềm trong quá trình thực hiện các nghiệp vụ liên quan Người dùng D1 D2 Xử lý D3 D4  Nội dung trình bày của D1, D2  Hình thức trình bày của D1, D2  Biến cố phải xử lý 48
- Các yêu cầu chất lượng  Tính tiện dụng  Dễ học  Thứ tự nhập trực quan, dễ sử dụng  Tính hiệu quả  Quy trình nhập đơn giản nhất, tự nhiên nhất  Tận dụng những bước xử lý trên màn hình  Tránh thêm những công đoạn (thao tác) thừa (không cần thiết)  Tốc độ thực hiện nhanh  Tính tiến hóa  Các tùy chọn về nội dung  Hình thức trình bày  Biến cố phải xử lý 49
- Các yêu cầu chất lượng  Phải quan sát thói quen của người sử dụng  Thói quen phải tôn trọng => bắt buộc phải tôn trọng  Quen với phím enter khi nhập liệu  Thói quen chưa hợp lý hoặc mâu thuẫn với kỹ thuật => Phải trao đổi, thuyết phục và thống nhất với người sử dụng 50
- Kỹ thuật nâng cao chất lượng 1. Bổ sung nội dung  Hướng dẫn sử dụng  Thuộc tính tính toán  Thông tin chi tiết liên quan 2. Tăng tốc thao tác  Dùng giá trị định sẵn  Chuyển ô nhập liệu thành cột nhập liệu  Sử dụng giá trị thay thế  51
- Kỹ thuật nâng cao chất lượng 3. Xử lý lỗi  Thông báo lỗi chính xác, cơ hội sửa lỗi  Hạn chế lỗi  Cấm tuyệt đối lỗi 4. Bổ sung, thay thế hình thức trình bày  Dùng biểu tượng  Dùng thực đơn động  Dùng cây  Dùng sơ đồ  Thao tác trực tiếp 52
- Ví dụ  Xét phần mềm Quản lý học sinh với chức năng tiếp nhận học sinh mới  Hãy thiết kế dữ liệu và giao diện 53
- Ví dụ 54
- Ví dụ  Mô tả các thành phần của giao diện STT Tên Kiểu Ý nghĩa Miền giá Giá trị Ghi trị mặc định chú 1 Lb_Tieu_de A_Label Tiêu đề màn hình 2 Lb_Hoten A_Label Tiêu đề họ tên 3 Txt_Hoten A_Textbox Text box nhập họ tên 4 Ch_Phai A_Checkbox 5 Lb_Ngaysinh A_Datetime 55
- Bài tập  Xét phần mềm quản lý giải bóng đá với các yêu cầu sau:  Tiếp nhận đăng ký tham gia  Xếp lịch thi đấu  Ghi nhận kết quả thi đấu  Lập bảng xếp hạng  Giải gồm có 4 đội tham gia.  Thông tin về mỗi đội bao gồm: Tên đội, danh sách các cầu thủ của đội  Thông tin về mỗi cầu thủ bao gồm: Tên cầu thủ, vị trí sở trường  Xếp lịch thi đấu  Các đội thi đấu vòng tròn hai lượt. Thông tin về trận đấu được xếp lịch: Hai đội bóng tham dự, ngày giờ thi đấu, sân thi đấu (giải diễn ra trên hai sân: A, B) 56
- Bài tập  Ghi nhận kết quả thi đấu, chỉ yêu cầu ghi nhận:  Tỉ số  Tổng số thẻ vàng, thẻ đỏ  Lập bảng xếp hạng:  Hạng được dựa trên các tiêu chí sau: . Điểm số . Hiệu số . Số bàn thắng  Điểm cho mỗi trân thua là 0, hòa là 1, thắng là 3 1. Hãy lập sơ đồ luồng dữ liệu cho mỗi yêu cầu 2. Lập sơ đồ logic dữ liệu 3. Thiết kế màn hình giao diện cho từng yêu cầu. 57
- Giao diện ghi nhận KQTĐ  Cách 1: 58
- Giao diện ghi nhận KQTĐ  Cách 2: 59
- Giao diện ghi nhận KQTĐ  Cách 3: 60
- Giao diện ghi nhận KQTĐ  Cách 4: 61
- Giao diện ghi nhận KQTĐ  Cách 5: 62
- Bài tập  Cho CSDL của phần mềm quản lý bán hàng như sau:  Hãy thiết kế giao diện và mô tả các thành phần của giao diện:  Lập phiếu nhập, lập phiếu xuất  Tra cứu hàng hóa 63
- Thiết kế Xử lý 64
- Thiết kế xử lý  Mục tiêu: Mô tả chi tiết hệ thống các hàm xử lý của phần mềm . Tổ chức: đơn thể/đối tượng . Thông tin chi tiết: Người dùng D1 D2 • Tên Mô tả hàm Xử lý xử lý • Tham số D3 D4 • Kết quả • Dữ liệu toàn cục . Sự phối hợp 65
- Thiết kế xử lý  Kết quả:  Danh cách các đơn thể/đối tượng  Danh sách các hàm của mỗi đơn thể/đối tượng  Các sơ đồ phối hợp  Yêu cầu thiết kế:  Tính đúng đắn  Tính dễ bảo trì  Tính tái sử dụng  Tính dễ mang chuyển 66
- Thiết kế xử lý  Kỹ thuật thiết kế:  Phân rã/tích hợp  Tham số hóa  Đối tượng hóa  Sơ đồ phối hợp:  Mô tả cách thức phối hợp (gọi thực hiện) giữa các hàm 67
- Thiết kế xử lý  Ký hiệu: Tên hàm Hàm xử lý Tên đơn thể Tên hàm Hàm của đơn thể A B A có gọi đến B, C theo thứ tự, 1 không chuyển tham số, không nhận 2 kết quả C A B A gọi đến B có chuyển tham số, không nhận kết quả 68
- Thiết kế xử lý A B A gọi đến B không chuyển tham số, nhưng nhận kết quả B A gọi đến B hoặc C A C A * B A gọi đến B nhiều lần (ít nhất là 0 lần) A + B A gọi đến B nhiều lần (ít nhất là 1 lần) Chú ý: Có n biến cố phải xử lý Tương ứng có n sơ đồ phối hợp 69
- Ví dụ  Xét màn hình tiếp nhận học sinh mới như sau: 70
- Ví dụ  Hãy:  Mô tả các biến cố  Lập danh sách các hàm xử lý  Lập các sơ đồ phối hợp (Khi có ít nhất hai hàm tham gia trong cùng một biến cố) 71
- Ví dụ - Mô tả biến cố  Biến cố 0:  Khởi động màn hình  Biến cố 1:  Kiểm tra tuổi học sinh hợp lệ (tuổi từ 15 đến 20)  Biến cố 2:  Khi chọn một lớp học trên combobox  Biến cố 3:  Kiểm tra dữ liệu hợp lệ và ghi 72
- Ví dụ - Danh sách các biến cố BC Điều kiện Xử lý Ghi chú kích hoạt 0 Khởi động - Đọc danh sách lớp, danh sách học màn hình sinh, tham số - Xuất danh sách lớp, danh sách học sinh, hồ sơ học sinh mới 1 Kết thúc - Kiểm tra ngày sinh hợp lệ và xuất thông Tuổi theo qui nhập ngày báo lỗi nếu không hợp lệ định 15 20 sinh 2 Kết thúc - Ghi nhận vị trí của lớp được chọn trong Chuẩn bị khi chọn lớp danh sách lớp ghi hồ sơ 3 Nhút nút - Kiểm tra hồ sơ hợp lệ Mã và tên phải ghi - Nếu hợp lệ thì nhập hồ sơ học sinh và khác rỗng ghi hồ sơ học sinh. Xuất thông báo 73
- Ví dụ - Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Ý nghĩa Ghi chú 74
- Ví dụ - Lập sơ đồ phối hợp  Xử lý biến cố 0 Xử lý biến cố 0 Xuất hồ sơ học sinh mới (2) (1) Xuất danh sách 75
- Ví dụ - Lập sơ đồ phối hợp  Xử lý biến cố 0: Phân rã hàm Hàm Xử lý biến cố 0 (6) (1) Xuất hồ sơ học sinh mới (2) (5) Đọc danh (3) sách lớp (4) Xuất danh sách học sinh Đọc danh sách học sinh Đọc danh Xuất danh sách tham số sách lớp 76
- Ví dụ - Lập sơ đồ phối hợp (6) Hàm Xử lý biến cố 0 Xuất hồ sơ học sinh mới (1) (2) (3) (4) (5) Xuất d.sách học sinh Đọc danh Đọc danh Đọc danh Xuất danh sách lớp sách học sinh sách tham số sách lớp XL_Doc_Ghi XL_Nhap_Xuat Doc_Danh_Dach Xuat_Danh_Dach 77
- Ví dụ - Lập sơ đồ phối hợp  Xử lý biến cố 1  Dùng 1 hàm  Xử lý biến cố 2  ?  Xử lý biến cố 3  ? 78
- Bài tập 1. Lập sơ đồ phối hợp cho các biến cố còn lại trong ví dụ trên. 2. Đánh giá các sơ đồ phối hợp dựa trên các tính chất - Tính đúng đắn - Tính tái sử dụng - Tính dễ bảo trì - Tính dễ mang chuyển - 79





