LOGO THIẾT KẾ SƠ ĐỒ LỚP CHI TiẾT GV: Hoàng Anh Tú Thiết kế sơ đồ lớp chi tiết • Bước 1: Lựa chọn kiến trúc cài đặt – 1 layer, 2 layer, 3 layer, MVC ? • Bước 2: Thiết kế sơ đồ lớp chi tiết theo kiến trúc đã chọn: – Lớp đầy đủ thuộc tính và phương thức – Sử dụng các thuộc tính để cài đặt các mối quan hệ nếu cần thiết – Xác định kiểu dữ liệu của các tham số đầu vào và kiểu dữ liệu trả về của các phương thức • Kết quả đạt được: Sơ đồ lớp của các tầng với đầy đủ phương thức và thuộc tính, kiểu dữ liệu Thiết kế sơ đồ lớp chi tiết • Các kiểu kiến trúc cài đặt: – Kiến trúc 1 tầng (1 layer) Giao diện + xử lý nghiệp vụ + Cơ sở dữ liệu xử lý truy xuất dữ liệu – Kiến trúc 2 tầng (2 layer) Giao diện & xử lý nghiệp vụ Truy cập dữ liệu Dữ liệu Thiết kế sơ đồ lớp chi tiết • Các kiểu kiến trúc cài đặt: – Kiến trúc 3 tầng (3 layer) Tầng giao diện Giao diện & xử lý giao diện Xử lý nghiệp vụ Truy cập dữ liệu Dữ liệu – Trả lời tương tác – Xử lý nghiệp vụ – Truy xuất dữ liệu người dùng – Chuyển yêu cầu (đọc, ghi, cập nhật) – Trình bày hiển thị các từ truy xuất dữ đối tượng nghiệp vụ liệu từ tầng – Xử lý các hiệu ứng giao diện xuống giao diện tầng truy cập dữ liệu Thiết kế sơ đồ lớp chi tiết • Hoạt động của mô hình 3- layer: – Khi có yêu cầu xử lý từ lớp giao diện. Yêu cầu này được gửi xuống lớp nghiệp vụ bằng cách gọi phương thức của lớp nghiệp vụ – Nếu yêu cầu là truy xuất dữ liệu thì sẽ gọi tới phương thức của lớp truy cập dữ liệu và phương thức này sẽ thực hiện truy xuất dữ liệu trên CSDL VD1: Xét các phương thức liên quan đến việc thêm học sinh Phương thức của lớp giao TẦNG GIAO DIỆN diện Function MHThemHocSinh::btnThemHS_Click() Begin Gọi phương thức Khoi tao () hs: HocSinh của lớp nghiệp vụ hs .Khoi_tao(txtMaHS.Text, …) Gọi phương thức Kiem tra ton if HocSinh::Kiem_tra_ton_tai(txtMaHS.Text) = false then Begin tai () của lớp nghiệp vụ if HocSinh::Them_hoc_sinh(hs) == TRUE then Begin Gọi phương thức mh: MHThongBao Them hoc sinh () của mh.Cap_nhat_thong_bao (“Đã thêm thành công”) lớp nghiệp vụ mh.Hien_thi() End End End TẦNG NGHIỆP VỤ Function HocSinh::Khoi tao(m: String, ht: String, …) Begin MaHS = m HoTen = ht … End VD1: Xét các phương thức liên quan đến việc thêm học sinh Phương thức của lớp nghiệp TẦNG NGHIỆP VỤ vụ Function HocSinh::Kiem tra ton tai(mhs: String) Begin b: boolean Gọi phương thức h: HocSinh DocThongTin () của lớp truy h = HocSinhDB::DocThongTin (mhs) cập dữ liệu if h = NULL then b = FALSE else b = TRUE return b Phương thức của lớp nghiệp End vụ Function HocSinh::Them hoc sinh (h: HocSinh) Begin if len (h.DataSource = dsLop; dsHS: HocSinh[] dsHS = HocSinh::LayDanhSachHocSinh() griddsHS.DataSource = dsHS End TẦNG NGHIỆP VỤ Gọi phương thức của tầng truy Function Lop:: LayDanhSachLop() cập dữ liệu Begin dsLop: Lop[] dsLop = LopDB::LayDanhSach(); return dsLop; End Function HocSinh:: LayDanhSachHocSinh() Begin dsHS: HocSinh[] dsHS = HocSinhDB::LayDanhSach(); return dsHS; End VD2: Xét các phương thức liên quan việc hiển thị màn hình thêm học sinh TẦNG TRUY CẬP DỮ LIỆU Function HocSinhDB:: LayDanhSach(): HocSinh [] Begin sql: String ds: HocSinh[] sql = “SELECT * FROM HOC_SINH” Mở kết nối CSDL, thực thi câu SQL, tạo kết quả trả về return ds; End Function LopDB:: LayDanhSach(): Lop[] Begin sql : String ds: Lop[] sql = “SELECT * FROM HOC LOP_HOC” Mở kết nối CSDL, thực thi câu SQL, tạo kết quả trả về return ds; End Thiết kế sơ đồ lớp chi tiết • Kết quả: Tầng giao diện Tầng nghiệp vụ Tầng truy cập dữ liệu Thiết Thiếtkếkếsơ đồ lớp TẦNG chi tiết NGHIỆP VỤ • Các bước thực hiện: – Tinh chế sơ đồ lớp ở mức phân tích thành sơ đồ lớp tầng nghiệp vụ • Tinh chế thuộc tính (kiểu dữ liệu, phạm vi, các thuộc tính cài đặt mối kết hợp) • Bổ sung các phương thức – Các phương thức đặc trưng: tạo, hủy, chuyển đổi, sao chép, truy xuất và cập nhật các thuộc tính, đọc, xuất, … – CÁC PHƯƠNG THỨC NGHIỆP VỤ • Tinh chế phương thức và bổ sung phương thức mới – Tạo những lớp điều khiển (Controller) để phối hợp hoạt động Thiết Thiếtkếkếsơ đồ lớp TẦNG chi tiết NGHIỆP VỤ • VD tầng nghiệp vụ của ứng dụng quản lý học sinh: – Input Sơ đồ lớp mức phân tích Các quy định Sơ đồ UC cho phần mềm quản lý học sinh Thiết Thiếtkếkếsơ đồ lớp TẦNG chi tiết NGHIỆP VỤ 1. Bổ sung kiểu dữ liệu cho các thuộc tính: Kết quả: Ma HS: String 2. Bổ sung thuộc tính cài đặt: Ma lop: Integer Siso: Integer GVCN: Giao vien 3.
Duyệt qua từng UC, xem xét và bổ sung các phương thức nghiệp vụ cần thiết để cài đặt các UC & tham số Them hoc sinh (…) Chuyen lop (…) … 4. Phân tích hoạt động các phương thức nghiệp vụ để bổ sung các phương thức khác Kiem tra ton tai () Tinh si so () Sơ đồ lớp tầng nghiệp vụ 5. Các phương thức đặc trưng ThiếtThiết kế sơ đồ lớp kế PROTOTYPE – diện giao • Thiết kế giao diện: – Duyệt qua các UC, với mỗi UC phác thảo các giao diện của UC sử dụng một công cụ thiết kế giao diện nào đó. Các tiêu chí để đánh giá giao Các yếu tố liên quan đến việc thiết diện: kế giao diện: Tính tiện dụng Mục đích của giao diện Hỗ trợ tốt nghiệp vụ Thông tin Quen thuộc với người dùng Nhất quán Quy trình nghiệp vụ thực tế Tối thiểu hóa sự bất ngờ Có khả năng khôi phục Tần suất thực hiện Hướng dẫn người dùng Thói quen của người dùng Tính thẩm mỹ ThiếtThiết kế sơ đồ lớp kế PROTOTYPE – diện giao • VD: Giao diện quản lý bán cà phê ThiếtThiết kế sơ đồ lớp kế PROTOTYPE – diện giao • Công cụ để thiết kế giao diện: https://www.io http://app.com/ Microsoft Visual Studio .NET Microsoft Visio ThiếtThiết kế sơ đồ lớp kế PROTOTYPE – diện giao • Ví dụ: Thiết Thiết kế sơkế đồlớp lớpTẦNG – TẦNG NGHIỆP GIAO DIỆN VỤ • Các bước thực hiện: – Duyệt qua các UC, với mỗi UC phác thảo các giao diện của UC.
Với mỗi giao diện tạo một lớp tương ứng – Các thuộc tính là những control nhập / xuất dữ liệu quan trọng. Sử dụng các kiểu dữ liệu đối tượng giao diện cụ thể của từng công nghệ lập trình: • txtHoTen: TextBox • btnThemHocSinh: Button • cbbMaLop: ComboBox • dsLop: GridView, … – Các phương thức là những khởi tạo giao diện, hàm xử lý sự kiện tương ứng hoặc những hàm cần thiết phục vụ kiểm tra dữ liệu, … • btnThemHocSinh_Click() Thiết kế lớp TẦNG TẦNG GIAO GIAO DIỆNDIỆN • VD: Tầng giao diện của ứng dụng Quản lý học sinh ThiếtThiết kế sơkế đồlớp lớpTẦNG – TẦNG DỮDỮ LIỆULIỆU • Bước 1: Thiết kế dữ liệu – Xây dựng mô hình dữ liệu quan hệ từ sơ đồ lớp mức phân tích • Bước 2: Tạo các lớp quản lý truy xuất dữ liệu – Mỗi lớp phụ trách truy xuất dữ liệu trên một hay một số nguồn dữ liệu (bảng) • Bước 3: Bổ sung các phương thức – Phân tích hoạt động truy xuất dữ liệu của các phương thức của tầng nghiệp vụ để bổ sung các phương thức vào các lớp tương ứng Thiết kế sơThiết đồ lớp kế –dữ TẦNG liệu DỮ LIỆU MÔ HÌNH DỮ LIỆU QUAN HỆ (SQL Server, Oracle, MySQL, …) - Bảng - Khóa chính - Khóa ngoại Lược đồ XML … Sơ đồ lớp phân tích Mô hình dữ liệu Áp dụng một số quy tắc: Chuyển đổi mối kết hợp 1-1 Chuyển đổi mối kết hợp 1-n Chuyển đổi mối kết hợp n-n Chuyển đổi kế thừa Chuyển đổi sang mô hình quan hệ • Chuyển đổi lớp bảng – Một lớp một bảng – Một thuộc tính (persitent) 1 cột: Chỉ có các thuộc tính có nhu cầu lưu trữ và được đòi hỏi bởi ứng dụng sẽ được chuyển thành một cột của bảng. – Một đối tượng (thể hiện) 1 dòng • Chuyển đổi liên kết: – 1-1 – 1-n – n-n – Kế thừa Chuyển đổi sang mô hình quan hệ • Chuyển đổi liên kết 1-1 Số thẻ cũng là một khoá của Tài Khoản Chuyển đổi sang mô hình quan hệ • Chuyển đổi liên kết 1-1 Số thẻ cũng là một khoá của Tài Khoản Chuyển đổi sang mô hình quan hệ • Chuyển đổi liên kết 1-n Tài khoản Giao dịch Chuyển đổi sang mô hình quan hệ • Chuyển đổi liên kết n-n Bảng Nhân viên Bảng Nhân viên_Công việc (Tham gia) Bảng Công việc Chuyển đổi sang mô hình quan hệ • Chuyển đổi liên kết n-n Bảng Đơn hàng Bảng Dòng Đơn hàng Bảng Nguyên Liệu Chuyển đổi sang mô hình quan hệ • Chuyển đổi mối kết hợp kế thừa – Cách 1 Sử dụng 1 bảng lưu trữ tất cả các loại nhân viên. Các cột của bảng lấy từ các cột của các lớp.
Sử dụng thuộc tính Loại NV để phân biệt các nhân viên Thuộc tính phân loại Phù hợp cho tất cả trường hợp: (complete, disjoint), (complete, overlapping), (incomplete, disjoint), (incomplete, overlapping) Chuyển đổi sang mô hình quan hệ • Chuyển đổi mối kết hợp kế thừa – Cách 2 Sử dụng 3 bảng tương ứng cho 3 lớp. Để mô tả kế thừa thì thêm các thuộc tính ở lớp cha vào các bảng mô tả lớp con tương ứng Các đối tượng thuộc các lớp con sẽ được lưu hoàn toàn vào các bảng tương ứng Phù hợp cho tất cả các trường hợp: (complete, disjoint), (complete, overlapping), (incomplete, disjoint), (incomplete, overlapping) Chuyển đổi sang mô hình quan hệ • Chuyển đổi mối kết hợp kế thừa – Cách 3 Sử dụng các bảng tương ứng cho các lớp con (Nhân Viên Biên Chế và Nhân Viên Công Nhật). Tất cả thuộc tính của lớp cha được bổ sung vào các tất cả các bảng tương ứng với các lớp con nhằm mô tả sự thừa kế. Sử dụng toán tử hội UNION để tổng hợp thông tin toàn bộ nhân viên Chỉ phù hợp cho trường hợp: (complete, disjoint) Chuyển đổi sang mô hình quan hệ • Chuyển đổi mối kết hợp kế thừa – Cách 4 Sử dụng 3 bảng tương ứng cho 3 lớp.
Các bảng thể hiện của lớp con có thuộc tính khoá ngoại tham chiếu đến bảng thể hiện của lớp cha để biểu diễn sự kế thừa.