Giáo trình Công nghệ phần mềm - Chương 3: Thiết kế phần mềm
Lập sơ đồ phối hợp cho các biến cố còn lại trong ví dụ trên.
Đá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
-
80 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1216 | Lượt tải: 0
Bạn đang xem trước 20 trang 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
*Chương 3: Thiết kế Phần mềmGVLT: Trần Anh Dũng*Nội dungThiết kế Phần mềm?Thiết kế giao diệnThiết kế xử lýThiết kế dữ liệu (lưu trữ)*Tổng quanKhá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ềmDựa trên kết quả của việc phân tíchLà cơ sở cho việc thực hiện phần mềmPhân tíchThiết kếThực hiệnHồ sơPhân tíchHồ sơThiết kế*Tổng quanNgười dùngKhối xử lýD1D2D3D4Thiết kế giao diệnMàn hình giao diệnThiết kế xử lý Kiểu dữ liệu Hằng, biến Hàm, đơn thể, lớp đối tượngThiết kế dữ liệuLưu trữ dữ liệu*Thiết kế giao diệnThiế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ềmMàn hình giao diệnNội dungHình thức trình bàyBiến cố phải xử lýLập danh sách các biến cố:STTĐiều kiện kích hoạtXử lýGhi chú1...*Thiết kế giao diệnMô tả danh sách các thành phần của giao diện:STTTênKiểuÝ nghĩaMiền giá trịGiá trị mặc địnhGhi chú1...*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ềmTổ chức lưu trữBảng/Tập tinThuộc tính/Cấu trúcLiên kết giữa các bảng/Tập tinDanh sách các bảngSTTBảngÝ nghĩaGhi chú1...*Thiết kế dữ liệu (lưu trữ)Danh sách các thuộc tính bảng XSTTThuộc tínhKiểuRàng buộcGiá trịKhởi độngGhi chú1...*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ềmDanh sách các kiểu dữ liệu xử lýDanh sách các thuộc tính kiểu dữ liệu XSTTKiểu dữ liệuÝ nghĩaGhi chú............STTThuộc tínhKiểuRàng buộcGiá trị khởi độngGhi chú..................*Thiết kế Xử lýDanh sách các biếnDanh sách các hằngDanh sách các hàm xử lýSTTBiếnKiểuÝ nghĩaGhi chú...............STTHằngKiểuGiá trịÝ nghĩaGhi chú..................STTHàmTham sốKết quảtrả vềThuật giảiÝ nghĩaGhi chú..................*Ví dụPhân tích, thiết kế chức năng tra cứu học sinh theo lớpPhân tích Sơ đồ luồng dữ liệu Người dùngTra cứu học sinhtheo lớpD1D2D3Giải thích:D1: Lớp được chọnD2: Danh sách lớp, Danh sách học sinh trong lớp được chọnD3: Danh sách lớp, Danh sách học sinhThuật toán xử lýĐọc D3, Xuất danh sách lớpNhập D1Tính D2 (DS học sinh trong lớp được chọn)Xuất D2 (DS học sinh trong lớp được chọn)*Ví dụ (tt)Thiết kế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 *Ví dụ (tt)Thiết kếThiết kế giao diện(0)(1)Cách 1*Ví dụ (tt)Thiết kếThiết kế giao diện(0)(1)Cách 2*(0)Ví dụ (tt)Thiết kếThiết kế giao diệnCách 3(2)(1)*Ví dụ (tt)Thiết kếThiết kế giao diện Danh sách các biến cố STTĐiều kiện kích hoạtXử lý012Khởi động màn hìnhChọn lớpChọn học sinh?????????*Ví dụ (tt)Thiết kếThiết kế xử lý3. Bài tập: Mở rộng khi Trường quản lý phân cấp theo khốiSTTHàmTham sốKiểu trả vềThuật giảiGhi chú12...Xuất danh sách lớpXuất danh sách học sinh...??*Thiết kế dữ liệu*Thiết kế dữ liệuMụ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.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ụ?Người dùngD1D2D3D4Xử lý*Thiết kế dữ liệuCách thức lưu trữ dữ liệu trên bộ nhớ chính:Kiểu cấu trúcKiểu mảngKiểu xâuKiể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)*Thiết kế dữ liệuCá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 quanTí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 quanTí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ếtTí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*Thiết kế dữ liệuThuộc tínhLà các đặc trưng mô tả về đối tượngThực thểSơ đồ logicCô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)*Phân loại thuộc tínhThuộc tính khóaThuộc tính có giá trị rời rạcThuộc tính đa trịThuộc tính là đối tượng phụThuộc tính tính toán*Thuộc tính khóaThuộ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.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ị: 08123456709081234567,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,...Phân loại thuộc tính*Thuộc tính là đối tượng phụ:Phân loại thuộc tínhTìm sinh viên có địa chỉ ở Bình Định, Nha Trang, Tp.HCM ???*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àĐườngPhường/xãQuận/huyệnTỉnh thànhThuộ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ămPhâ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àngThuộ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ánPhâ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”Phân loại thuộc tính*Ví dụ 1Xé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*Ví dụ 1 (tt)Cách 0: dùng 1 bảngCá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*PHIEU_THUMA_PTMA_KHMA_LDTNgay_ThuSoTien_ThuKHACH_HANGMA_KHHo_TenCMNDDia_ChiLYDO_THUMA_LDTTen_LDTVí dụ 1 (tt)THAM_SOMA_Tham_SoTen_Tham_SoGia_TriTable THAM_SO dùng để lưu những qui định*Ví dụ 2Xét phần mềm quản lý nhân sự với nghiệp vụ tiếp nhận nhân viên *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: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ácCó yêu cầu theo dõi quá trình chuyển nhân viênBổ 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*Ví dụ 2 (tt)NHAN_VIENMA_NVMA_Don_ViHo_TenGioi_TinhNgay_SinhDien_ThoaiDia_ChiMa_Trinh_DoDON_VIMA_Don_ViTen_Don_ViTRINH_DOMA_Trinh_DoTen_Trinh_Doa.*Table THAM_SO có thể thiết kế theo nhiều cáchCách 1KhóaThamSố#1ThamSố#2ThamSố#NMỗ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ố?Ví dụ 2 (tt)*Cách 2MãThamSốTênThamSốKiểuGiáTrịTìnhTrạngMỗ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ỗiMỗ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ố?Được lưu dạng chuỗiVí dụ 2 (tt)*Ví dụ 2 (tt)b.NHAN_VIENMA_NVHo_TenGioi_TinhNgay_SinhDien_ThoaiDia_ChiMa_Trinh_DoDON_VIMA_Don_ViTen_Don_ViTRINH_DOMA_Trinh_DoTen_Trinh_DoPHAN_CONGMA_PCMA_NVMA_Don_ViNgay_PhanCong*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???*Khi thiết kế dữ liệu phải chú ý đến các vấn đề sau:Không gianThời gianKhố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.Thiết kế dữ liệu *Sơ đồ kiểu dữ liệuCho phép mô tả cách thức tổ chức lưu trữ dữ liệu trong bộ nhớ chínhKý hiệu: Tương tự như sơ đồ logicVí dụ: Xét chức năng tính diện tích đường trònDIEMHoanh_do : RTung_do : RDUONG_TRONTam : DIEMBan_kinh : R *Bài tậpXé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*Bài tậpXé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*Bài tậpXé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*Thiết kế giao diện*LANWANWirelessCableFR/ATMDSLDial..MultimediaTìm kiếm thông tinGiao dịch điện tửXử lý thông tinTài liệu điện tửTầm quan trọng của giao diện*MultimediaTìm kiếm thông tinGiao dịch điện tửXử lý thông tinTài liệu điện tửGiao diệnCác thành phần của giao diệnGiao diệnnhập liệuGiao diệnkết xuấtGiao diện tương tác *Mục tiêuMụ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 quanNội dung trình bày của D1, D2Hình thức trình bày của D1, D2Biến cố phải xử lýNgười dùngD1D2D3D4Xử lý*Các yêu cầu chất lượngTính tiện dụngDễ họcThứ tự nhập trực quan, dễ sử dụngTính hiệu quảQuy trình nhập đơn giản nhất, tự nhiên nhấtTận dụng những bước xử lý trên màn hìnhTrá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 nhanhTính tiến hóaCác tùy chọn về nội dungHình thức trình bàyBiến cố phải xử lý*Các yêu cầu chất lượngPhải quan sát thói quen của người sử dụngThói quen phải tôn trọng => bắt buộc phải tôn trọngQuen với phím enter khi nhập liệuThó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*Kỹ thuật nâng cao chất lượngBổ sung nội dungHướng dẫn sử dụngThuộc tính tính toánThông tin chi tiết liên quanTăng tốc thao tácDùng giá trị định sẵnChuyển ô nhập liệu thành cột nhập liệuSử dụng giá trị thay thế*Kỹ thuật nâng cao chất lượngXử lý lỗiThông báo lỗi chính xác, cơ hội sửa lỗiHạn chế lỗiCấm tuyệt đối lỗi Bổ sung, thay thế hình thức trình bàyDùng biểu tượngDùng thực đơn độngDùng câyDùng sơ đồThao tác trực tiếp*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ớiHãy thiết kế dữ liệu và giao diện*Ví dụ*Ví dụMô tả các thành phần của giao diệnSTTTênKiểuÝ nghĩaMiền giá trịGiá trị mặc địnhGhi chú1Lb_Tieu_deA_LabelTiêu đề màn hình2Lb_HotenA_LabelTiêu đề họ tên3Txt_HotenA_TextboxText box nhập họ tên4Ch_PhaiA_Checkbox5Lb_NgaysinhA_Datetime*Bài tậpXé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 giaXếp lịch thi đấuGhi nhận kết quả thi đấuLập bảng xếp hạngGiả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 độiThông tin về mỗi cầu thủ bao gồm: Tên cầu thủ, vị trí sở trườngXếp lịch thi đấuCá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)*Bài tậpGhi nhận kết quả thi đấu, chỉ yêu cầu ghi nhận:Tỉ số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à 3Hãy lập sơ đồ luồng dữ liệu cho mỗi yêu cầuLập sơ đồ logic dữ liệuThiết kế màn hình giao diện cho từng yêu cầu.*Cách 1:Giao diện ghi nhận KQTĐ*Cách 2:Giao diện ghi nhận KQTĐ*Cách 3:Giao diện ghi nhận KQTĐ*Cách 4:Giao diện ghi nhận KQTĐ*Cách 5:Giao diện ghi nhận KQTĐ*Bài tậpCho 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ấtTra cứu hàng hóa*Thiết kế Xử lý*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ềmNgười dùngD1D2D3D4Xử lýMô tả hàm xử lý Tổ chức: đơn thể/đối tượng Thông tin chi tiết: Tên Tham số Kết quả Dữ liệu toàn cục Sự phối hợp*Thiết kế xử lýKết quả:Danh cách các đơn thể/đối tượngDanh sách các hàm của mỗi đơn thể/đối tượngCác sơ đồ phối hợpYêu cầu thiết kế:Tính đúng đắnTính dễ bảo trìTính tái sử dụngTính dễ mang chuyển*Thiết kế xử lýKỹ thuật thiết kế:Phân rã/tích hợpTham số hóaĐối tượng hóaSơ đồ 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*Thiết kế xử lýKý hiệu: Hàm xử lý Hàm của đơn thểTên hàmABC12A có gọi đến B, C theo thứ tự, không chuyển tham số, không nhận kết quảABA gọi đến B có chuyển tham số, không nhận kết quảTên đơn thểTên hàm*Thiết kế xử lýABA gọi đến B hoặc CCABA gọi đến B nhiều lần (ít nhất là 0 lần)*ABA 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ợpA gọi đến B không chuyển tham số, nhưng nhận kết quảBA*Ví dụXét màn hình tiếp nhận học sinh mới như sau:*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ố)*Ví dụ - Mô tả biến cốBiến cố 0: Khởi động màn hìnhBiế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 comboboxBiến cố 3: Kiểm tra dữ liệu hợp lệ và ghi*Ví dụ - Danh sách các biến cốBCĐiều kiện kích hoạtXử lýGhi chú0Khởi động màn hình Đọc danh sách lớp, danh sách học sinh, tham số Xuất danh sách lớp, danh sách học sinh, hồ sơ học sinh mới1Kết thúc nhập ngày sinh Kiểm tra ngày sinh hợp lệ và xuất thông báo lỗi nếu không hợp lệTuổi theo qui định 15202Kết thúc chọn lớp Ghi nhận vị trí của lớp được chọn trong danh sách lớpChuẩn bị khi ghi hồ sơ3Nhút nút ghi Kiểm tra hồ sơ hợp lệ Nếu hợp lệ thì nhập hồ sơ học sinh và ghi hồ sơ học sinh. Xuất thông báoMã và tên phải khác rỗng*Ví dụ - Danh sách các hàm xử lýSTTTên hàmTham sốKết quảÝ nghĩaGhi chú*Ví dụ - Lập sơ đồ phối hợpXử lý biến cố 0Xử lý biến cố 0Xuất hồ sơ học sinh mớiXuất danh sách(1)(2)*Ví dụ - Lập sơ đồ phối hợpXử lý biến cố 0: Phân rã hàmHàm Xử lý biến cố 0Xuất hồ sơ học sinh mớiĐọc danhsách lớp(1)Xuất danhsách lớpĐọc danhsách học sinhĐọc danhsách tham sốXuất danh sách học sinh(2)(3)(4)(5)(6)*Ví dụ - Lập sơ đồ phối hợpXuất hồ sơ học sinh mớiĐọc danhsách lớp(1)Xuất danhsách lớpĐọc danhsách học sinhĐọc danhsách tham sốXuất d.sáchhọc sinh(2)(3)(4)(5)(6)XL_Doc_GhiDoc_Danh_DachHàm Xử lý biến cố 0XL_Nhap_XuatXuat_Danh_Dach*Ví dụ - Lập sơ đồ phối hợpXử lý biến cố 1Dùng 1 hàmXử lý biến cố 2?Xử lý biến cố 3?*Bài tậpLập sơ đồ phối hợp cho các biến cố còn lại trong ví dụ trên.Đá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 - *
Các file đính kèm theo tài liệu này:
- chuong_3_thiet_ke_he_thong_phan_mem_9286.ppt