Tổng quan về giáo trình
Tài liệu học tập "Thiết kế sơ đồ lớp chi tiết và Thiết kế giao diện người dùng" do giảng viên Hoàng Anh Tú biên soạn là nội dung chuyên môn thuộc học phần Phân tích và Thiết kế Hướng đối tượng (OOAD) hoặc Thiết kế Phần mềm trong chương trình đào tạo bậc Đại học ngành Công nghệ Thông tin và Kỹ thuật Phần mềm. Tài liệu giữ vai trò cầu nối kỹ thuật giữa giai đoạn phân tích yêu cầu (với các sơ đồ Use Case và sơ đồ lớp mức phân tích) và giai đoạn hiện thực hóa mã nguồn trên các nền tảng lập trình cụ thể.
Mục tiêu học tập của tài liệu tập trung vào việc trang bị cho người học năng lực:
- Lựa chọn và ứng dụng các mô hình kiến trúc cài đặt phần mềm phù hợp (1 tầng, 2 tầng, 3 tầng, MVC).
- Chuyển đổi và tinh chế sơ đồ lớp từ mức phân tích thành sơ đồ lớp chi tiết ở mức thiết kế cho từng tầng chức năng, bao gồm xác định kiểu dữ liệu thuộc tính, tầm vực, tham số đầu vào và kiểu dữ liệu trả về của phương thức.
- Áp dụng các quy tắc ánh xạ mô hình lớp đối tượng sang mô hình dữ liệu quan hệ (RDBMS) với các cấu trúc quan hệ 1-1, 1-n, n-n và quan hệ kế thừa.
- Nắm vững quy trình và tiêu chí kỹ thuật trong việc xây dựng bản mẫu giao diện người dùng (UI Prototype).
Cấu trúc nội dung được triển khai theo trình tự kỹ thuật từ tổng quan kiến trúc, chi tiết hóa từng tầng thành phần (Boundary - Control - Entity), đến phương pháp thiết kế giao diện và cơ sở dữ liệu. Điểm đặc thù của tài liệu là phương pháp tiếp cận trực quan thông qua các luồng xử lý mã giả (pseudo-code) chi tiết và hệ thống ví dụ nghiệp vụ xuyên suốt như hệ thống Quản lý học sinh, Quản lý bán cà phê và Quản lý nhân viên.
Nội dung kiến thức cốt lõi
Các chương/chủ đề chính
Nội dung tài liệu được phân bổ qua các chủ đề kỹ thuật mang tính logic nối tiếp:
[Mô hình kiến trúc phần mềm]
[Thiết kế sơ đồ lớp chi tiết 3 tầng]
[Chuyển đổi sang Mô hình quan hệ RDBMS]
[Quy trình & Tiêu chí Thiết kế Giao diện]
-
Kiến trúc cài đặt hệ thống: Định nghĩa và so sánh 4 mô hình kiến trúc chính:
- Kiến trúc 1 tầng (1-layer): Tích hợp toàn bộ giao diện, xử lý nghiệp vụ và truy xuất dữ liệu trong một khối duy nhất.
- Kiến trúc 2 tầng (2-layer): Tách biệt giữa tầng giao diện & nghiệp vụ với tầng truy cập dữ liệu / cơ sở dữ liệu.
- Kiến trúc 3 tầng (3-layer): Tách biệt rõ ràng 3 thành phần gồm Tầng giao diện (trình bày, nhận tương tác người dùng), Tầng xử lý nghiệp vụ (thực thi quy tắc logic và chuyển giao yêu cầu), và Tầng truy cập dữ liệu (thực thi đọc, ghi, cập nhật CSDL).
- Kiến trúc MVC (Model - View - Controller).
-
Thiết kế sơ đồ lớp Tầng Giao diện (Stereotype = Boundary / GUI):
- Duyệt qua từng Use Case (UC) để lập danh sách giao diện tương ứng.
- Xác định thuộc tính lớp là các control nhập/xuất dữ liệu:
TextBox (txtHoTen, txtMaHS), Button (btnThemHocSinh), ComboBox (cbbMaLop), GridView (dsLop, griddsHS).
- Xác định phương thức lớp là các hàm khởi tạo giao diện và hàm xử lý sự kiện:
btnThemHocSinh_Click(), MHThemHocSinh::btnThemHS_Click().
-
Thiết kế sơ đồ lớp Tầng Nghiệp vụ (Stereotype = Control / BUS):
- Tinh chế sơ đồ lớp phân tích: bổ sung kiểu dữ liệu cụ thể (
String, Integer, GiaoVien), phạm vi truy cập, thuộc tính cài đặt liên kết (MaHS: String, MaLop: Integer, SiSo: Integer, GVCN: GiaoVien).
- Bổ sung các phương thức nghiệp vụ thực thi Use Case:
Them_hoc_sinh(), Chuyen_lop(), Kiem_tra_ton_tai(), Tinh_si_so(), LayDanhSachLop(), LayDanhSachHocSinh().
- Thiết lập các phương thức đặc trưng: khởi tạo (
Khoi_tao()), hủy, chuyển đổi, sao chép, truy xuất và cập nhật thuộc tính.
- Bổ sung các lớp điều khiển (Controller) hoặc lớp nghiệp vụ đặc thù để phối hợp xử lý và giao tiếp phần cứng/thiết bị khi cần thiết.
-
Thiết kế sơ đồ lớp Tầng Dữ liệu (Stereotype = Entity / DB):
- Xây dựng các lớp truy xuất dữ liệu đại diện cho nguồn dữ liệu:
HocSinhDB, GiaoVienDB, LopDB.
- Thiết lập các phương thức thao tác CRUD cơ bản và các hàm xử lý SQL chuyên biệt:
HocSinhDB::Them(hs: HocSinh), HocSinhDB::DocThongTin(mahs: String), HocSinhDB::LayDanhSach(), LopDB::LayDanhSach().
- Tích hợp các đối tượng hạ tầng:
Connection, DBMS.
-
Chuyển đổi sơ đồ lớp sang Mô hình Dữ liệu Quan hệ (RDBMS):
- Quy tắc cơ bản: Lớp chuyển thành Bảng, thuộc tính persistent chuyển thành Cột, thể hiện (đối tượng) chuyển thành Dòng.
- Chuyển đổi liên kết:
- Quan hệ 1-1: Sử dụng khóa chính của bảng này làm khóa ngoại (hoặc khóa chính) của bảng kia (ví dụ: Số thẻ của Tài khoản).
- Quan hệ 1-n: Đặt khóa chính của bảng bên 1 sang làm khóa ngoại của bảng bên n (ví dụ:
Tài khoản - Giao dịch, LOP_HOC - HOC_SINH).
- Quan hệ n-n: Tạo bảng trung gian chứa khóa ngoại tham chiếu đến hai bảng thành phần (ví dụ: bảng
Nhan_Vien_Cong_Viec giữa Nhân viên và Công việc; bảng Dong_Don_Hang giữa Đơn hàng và Nguyên liệu).
- 4 chiến lược chuyển đổi quan hệ kế thừa:
- Cách 1 (Single Table): Dùng 1 bảng duy nhất lưu toàn bộ phân cấp kế thừa, sử dụng cột phân loại (
Loai_NV). Áp dụng cho mọi trường hợp (complete/incomplete, disjoint/overlapping).
- Cách 2 (Concrete Tables with Duplication): Dùng các bảng riêng cho từng lớp con, sao chép toàn bộ thuộc tính của lớp cha vào bảng con. Áp dụng cho mọi trường hợp.
- Cách 3 (Leaf-only Tables with UNION): Chỉ dùng bảng cho các lớp con cuối, dùng phép hội
UNION để truy vấn thông tin lớp cha. Chỉ phù hợp cho trường hợp (complete, disjoint).
- Cách 4 (Class Table Inheritance): Dùng các bảng tương ứng cho cả lớp cha và lớp con, bảng lớp con dùng khóa ngoại tham chiếu về khóa chính bảng lớp cha. Áp dụng cho mọi trường hợp.
- Lược đồ quan hệ minh họa:
HOC_SINH (MAHS, HOTEN, DIACHI, MALOP)
LOP_HOC (MALOP, TENLOP, GVCN)
GIAO_VIEN (MAGV, HOTEN)
-
Phương pháp và tiêu chí Thiết kế Giao diện Người dùng (UI):
- 3 bước thiết kế: (1) Xác định thông tin cần thiết; (2) Thiết kế giao diện đúng đắn chức năng; (3) Tinh chỉnh giao diện theo tính tiện dụng và thẩm mỹ.
- Quy trình phát triển bản mẫu: Phân tích hoạt động người dùng $\rightarrow$ Xây dựng thiết kế mẫu trên giấy $\rightarrow$ Người dùng đánh giá mẫu giấy $\rightarrow$ Xây dựng ứng dụng mẫu $\rightarrow$ Người dùng đánh giá ứng dụng mẫu $\rightarrow$ Xây dựng giao diện cuối.
Kiến thức nền tảng được xây dựng
Tài liệu hệ thống hóa các nguyên lý kỹ thuật phần mềm cốt lõi:
- Kiến trúc phân tầng (Multi-tier Architecture): Giảm độ phụ thuộc (loose coupling), phân tách rõ trách nhiệm giữa tầng hiển thị, logic nghiệp vụ và lưu trữ dữ liệu.
- Mô hình Boundary - Control - Entity (BCE): Phân loại stereotype đối tượng để chuẩn hóa giao tiếp giữa giao diện người dùng, bộ điều khiển logic và các thực thể dữ liệu.
- Nguyên lý ánh xạ Đối tượng - Quan hệ (O/R Mapping Principles): Giải quyết sự sai lệch cấu trúc (impedance mismatch) giữa lập trình hướng đối tượng và cơ sở dữ liệu quan hệ (SQL Server, Oracle, MySQL).
Kỹ năng phát triển
- Kỹ năng mô hình hóa chi tiết sơ đồ lớp UML phục vụ trực tiếp cho việc viết code.
- Kỹ năng thiết kế luồng gọi phương thức tuần tự giữa các tầng kiến trúc.
- Kỹ năng chuẩn hóa cơ sở dữ liệu quan hệ từ mô hình hướng đối tượng.
- Kỹ năng xây dựng giao diện người dùng dựa trên phân tích Use Case và tiêu chuẩn công thái học phần mềm.
Phương pháp giảng dạy và học tập
Tài liệu áp dụng phương pháp sư phạm định hướng kỹ thuật thực hành (Technical Step-by-Step Approach), liên kết chặt chẽ giữa lý thuyết mô hình hóa và mã giả thực thi.
[Use Case / Yêu cầu]
Hệ thống bài tập và Case Studies
Tài liệu sử dụng các trường hợp nghiệp vụ thực tế có độ phức tạp tăng dần:
- Case study Quản lý học sinh: Minh họa chi tiết luồng xử lý thêm mới học sinh và hiển thị danh sách lớp. Người học được theo dõi chi tiết mã giả từ sự kiện giao diện (
MHThemHocSinh::btnThemHS_Click()), gọi hàm nghiệp vụ (HocSinh::Khoi_tao(), HocSinh::Kiem_tra_ton_tai(), HocSinh::Them_hoc_sinh()), đến tầng truy cập dữ liệu (HocSinhDB::DocThongTin(), HocSinhDB::LayDanhSach()) và câu lệnh SQL (SELECT * FROM HOC_SINH, SELECT * FROM LOP_HOC).
- Case study Quản lý nhân viên: Phân tích việc cài đặt quan hệ kế thừa giữa lớp cha
NhanVien và các lớp con NhanVienBienChe, NhanVienCongNhat qua 4 kỹ thuật ánh xạ bảng.
- Case study Bán hàng / Quản lý quán cà phê: Minh họa thiết kế giao diện nghiệp vụ POS và xử lý quan hệ nhiều-nhiều giữa
DonHang, DongDonHang và NguyenLieu.
Phương pháp đánh giá và hướng dẫn tự học
- Phương pháp đánh giá: Đánh giá dựa trên tính chính xác của sơ đồ lớp chi tiết (đầy đủ thuộc tính, phương thức, kiểu dữ liệu, quan hệ) và tính hợp lý của lược đồ CSDL quan hệ sau chuyển đổi.
- Hướng dẫn tự học:
- Đọc và phân tích kỹ sơ đồ Use Case và quy định nghiệp vụ đầu vào.
- Vẽ phác thảo giao diện trên giấy để xác định các control nhập xuất.
- Lập bảng ánh xạ phương thức giữa tầng Giao diện $\rightarrow$ Tầng Nghiệp vụ $\rightarrow$ Tầng Dữ liệu.
- Thực hành viết mã giả kiểm tra tính khả thi của luồng dữ liệu trước khi chuyển đổi sang mô hình quan hệ RDBMS.
Điểm nổi bật và cập nhật
Nội dung tài liệu thể hiện các định hướng thiết kế phần mềm mang tính ứng dụng thực tiễn:
- Chi tiết hóa ở mức cài đặt (Implementation-Level Precision): Khác với các tài liệu phân tích tổng quan chỉ dừng ở mức khái niệm, tài liệu này yêu cầu xác định cụ thể kiểu dữ liệu hệ thống (
String, Integer, Boolean, mảng đối tượng HocSinh[], Lop[]), tên control chuẩn hóa (txtMaHS, btnThemHocSinh, cbbMaLop, griddsHS), và câu lệnh truy vấn SQL cụ thể.
- Quy chuẩn hóa 4 chiến lược chuyển đổi kế thừa sang RDBMS: Phân loại rõ ràng phạm vi áp dụng của từng phương án dựa trên các cặp điều kiện toán học của quan hệ kế thừa:
- $(complete, disjoint)$
- $(complete, overlapping)$
- $(incomplete, disjoint)$
- $(incomplete, overlapping)$
- Bộ tiêu chí đánh giá giao diện người dùng toàn diện:
- Tiêu chí đánh giá: Tính tiện dụng, Hỗ trợ tốt nghiệp vụ, Cung cấp đầy đủ thông tin, Quen thuộc với người dùng, Tính nhất quán, Tối thiểu hóa sự bất ngờ, Có khả năng khôi phục, Cung cấp hướng dẫn người dùng, Tính thẩm mỹ.
- Yếu tố chi phối: Mục đích giao diện, Quy trình nghiệp vụ thực tế, Tần suất thực hiện, Thói quen người dùng.
- Tích hợp các công cụ hỗ trợ thiết kế chuyên dụng: Định hướng người học sử dụng các nền tảng thiết kế và môi trường phát triển như Microsoft Visual Studio .NET, Microsoft Visio, và các công cụ trực tuyến như io, app.com.
- Kỹ thuật tối ưu hóa và tái cấu trúc kiến trúc 3 tầng:
- Tách tầng nghiệp vụ thành lớp cấu trúc (chứa dữ liệu) và lớp xử lý (chứa thuật toán/quy tắc).
- Tách hoặc gộp các lớp tại tầng dữ liệu (
DB1, DB2 $\rightarrow$ DB) để quản lý kết nối và tối ưu hiệu năng.
- Bổ sung các lớp nghiệp vụ đặc thù để xử lý tính toán chuyên sâu hoặc giao tiếp phần cứng, thiết bị ngoại vi.
Đối tượng sử dụng giáo trình
| Nhóm đối tượng |
Điều kiện tiên quyết & Mục đích sử dụng |
| Sinh viên chuyên ngành |
- Sinh viên năm 2 hoặc năm 3 ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin. - Kiến thức tiên quyết: Lập trình hướng đối tượng cơ bản (OOP), Cơ sở dữ liệu quan hệ (SQL), Khái niệm Use Case và Sơ đồ lớp mức phân tích. |
| Giảng viên |
- Sử dụng làm khung bài giảng thực hành môn Phân tích và Thiết kế Hướng đối tượng (OOAD). - Làm căn cứ xây dựng chuẩn đầu ra, đề tài đồ án môn học và tiêu chí chấm điểm thiết kế phần mềm. |
| Lập trình viên & Người tự học |
- Tài liệu tham khảo chuẩn hóa quy trình phân rã module phần mềm theo mô hình 3 lớp. - Hướng dẫn chuyển đổi thiết kế hướng đối tượng sang cấu trúc bảng trên các hệ quản trị CSDL như SQL Server, Oracle, MySQL. |
Câu hỏi thường gặp
1. Tài liệu này phù hợp với đối tượng nào?
Tài liệu được thiết kế cho sinh viên đại học chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và các kỹ sư phần mềm cần tài liệu chuẩn hóa quy trình chuyển đổi từ phân tích yêu cầu sang thiết kế chi tiết 3 tầng và thiết kế CSDL.
2. Người học cần chuẩn bị kiến thức nền tảng nào trước khi tiếp cận?
Người học cần nắm vững kiến thức về lập trình hướng đối tượng (lớp, đối tượng, phương thức, kế thừa), đại số quan hệ và ngôn ngữ SQL (khóa chính, khóa ngoại, bảng), cùng kỹ năng đọc hiểu sơ đồ Use Case mức phân tích.
3. Điểm khác biệt của tài liệu này so với các tài liệu lý thuyết OOAD khác là gì?
Tài liệu tập trung trực tiếp vào chi tiết cài đặt của từng tầng trong kiến trúc 3 lớp (Boundary - Control - Entity), cung cấp mã giả minh họa luồng gọi hàm giữa các tầng và hướng dẫn 4 phương pháp chuyển đổi quan hệ kế thừa sang mô hình bảng RDBMS kèm điều kiện áp dụng cụ thể.
4. Phương pháp tự học nội dung này như thế nào để đạt hiệu quả?
Người học nên thực hiện tuần tự theo quy trình: Đọc Use Case $\rightarrow$ Phác thảo giao diện (Paper Prototype) $\rightarrow$ Thiết kế lớp Tầng Giao diện $\rightarrow$ Thiết kế lớp Tầng Nghiệp vụ $\rightarrow$ Thiết kế lớp Tầng Dữ liệu $\rightarrow$ Ánh xạ bảng CSDL $\rightarrow$ Viết mã giả kiểm tra luồng tương tác giữa các phương thức.
5. Tài liệu có cung cấp cấu trúc mã nguồn hoặc công cụ minh họa không?
Tài liệu cung cấp hệ thống mã giả chi tiết cho các thao tác nghiệp vụ mẫu (thêm học sinh, kiểm tra tồn tại, lấy danh sách lớp/học sinh), lược đồ bảng CSDL quan hệ mẫu, và giới thiệu các công cụ hỗ trợ thiết kế như Microsoft Visual Studio .NET, Microsoft Visio, io và app.com.
Kết luận
Tài liệu "Thiết kế sơ đồ lớp chi tiết và Thiết kế giao diện người dùng" cung cấp một khung phương pháp luận hoàn chỉnh để chuẩn hóa việc chuyển đổi từ các mô hình phân tích trừu tượng sang các thành phần thiết kế chi tiết ở mức mã nguồn và cơ sở dữ liệu. Lộ trình học tập được tổ chức nhất quán: từ việc lựa chọn mô hình kiến trúc (1-layer, 2-layer, 3-layer, MVC), chi tiết hóa sơ đồ lớp theo mô hình Boundary - Control - Entity, chuyển đổi sang mô hình dữ liệu quan hệ RDBMS, đến triển khai bản mẫu giao diện người dùng theo quy trình chuẩn. Tài liệu đóng vai trò nền tảng giúp người học xây dựng tư duy kiến trúc hệ thống rõ ràng, chuẩn hóa mã nguồn và đảm bảo tính mở rộng, bảo trì của các ứng dụng phần mềm doanh nghiệp.