TỔNG QUAN HỌC THUẬT VỀ GIÁO TRÌNH PHÂN TÍCH, THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML

Tổng quan về giáo trình

Giáo trình Phân tích, thiết kế hướng đối tượng với UML dùng cho bậc Đại học do PGS.TS. Đoàn Văn Ban biên soạn, được lưu hành nội bộ tại Trường Đại học Công nghiệp Quảng Ninh (Bộ Công Thương, 2021), kế thừa từ tài liệu giảng dạy cho các chương trình đào tạo đại học và cao học tại Đại học Quốc gia Hà Nội, Đại học Bách khoa Hà Nội, Đại học Khoa học Huế, Đại học Đà Nẵng và Đại học Thái Nguyên.

Trong chương trình đào tạo ngành Công nghệ thông tin và Kỹ thuật phần mềm, học phần "Phân tích, thiết kế hệ thống" giữ vị trí then chốt, kết nối giữa các môn học lập trình cơ bản và các đồ án xây dựng phần mềm chuyên sâu. Giáo trình xác định rõ các mục tiêu học tập (learning outcomes):

  • Cung cấp cơ sở lý thuyết về mô hình hóa hệ thống và quy trình phát triển phần mềm theo cách tiếp cận hướng đối tượng.
  • Trang bị hệ thống ký pháp chuẩn của ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language).
  • Rèn luyện phương pháp phân tích yêu cầu, xây dựng mô hình tĩnh (biểu đồ lớp, biểu đồ đối tượng) và mô hình động (biểu đồ tương tác, biểu đồ trạng thái, biểu đồ hoạt động).
  • Hướng dẫn kỹ thuật thiết kế kiến trúc, mô hình thành phần, mô hình triển khai và chuyển đổi mô hình sang mã nguồn (C++, Java, Visual Basic) cũng như cơ sở dữ liệu hướng đối tượng.

Cấu trúc giáo trình gồm 8 chương lý thuyết - thực hành cùng phần phụ lục hướng dẫn giải 4 bài tập lớn. Giáo trình chọn cách tiếp cận hướng đối tượng dựa trên thực thể, kết hợp quy trình phát triển phần mềm thống nhất (Rational Unified Process - RUP/UP). Điểm đặc sắc về mặt sư phạm của tài liệu là việc sử dụng một bài toán thực tế xuyên suốt — "Hệ thống quản lý bán hàng" (hệ HBH) — kết hợp với hướng dẫn thực hành trực tiếp trên công cụ CASE Rational Rose.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Nội dung giáo trình được triển khai theo tiến trình logic của quy trình kỹ nghệ phần mềm:

  • Chương I: Phương pháp hướng đối tượng và quá trình phát triển hệ thống phần mềm: Trình bày định nghĩa hệ thống tin học, các đặc trưng cơ bản (tính nhất thể hóa, tính tổ chức thứ bậc, tính cấu trúc, tính biến đổi theo thời gian - không gian) và tiêu chuẩn chất lượng (usability, maintainability, dependability, efficiency). Phân loại hệ thống (MIS, hệ thống kỹ thuật, hệ thống nhúng thời gian thực, phần mềm hệ thống, tự động hóa văn phòng). So sánh chu trình phát triển thác nước (Royce, 1970), tăng trưởng (Graham, 1989), xoắn ốc (Boëhm, 1988); phân tích sự khác biệt bản chất giữa cách tiếp cận hướng chức năng (top-down) và hướng đối tượng.
  • Chương II: UML và quá trình phát triển phần mềm: Giới thiệu nguồn gốc UML (hợp nhất từ phương pháp Booch, OMT của Rumbaugh, OOSE của Jacobson); quy trình hợp nhất RUP/UP theo chiều thời gian (Khởi động, Soạn thảo, Xây dựng, Chuyển giao) và chiều thành phần. Định nghĩa 5 góc nhìn kiến trúc (quan sát ca sử dụng, logic, thành phần, tương tranh, triển khai); 4 nhóm phần tử UML (cấu trúc, hành vi, nhóm, chú thích); 4 mối quan hệ cốt lõi (phụ thuộc, kết hợp, tổng quát hóa, hiện thực hóa) và các khái niệm hướng đối tượng (lớp, đối tượng, thuộc tính, phương thức, phạm vi truy cập: public +, protected #, private -).
  • Chương III: Biểu đồ ca sử dụng phân tích các nhu cầu của hệ thống: Trình bày kỹ thuật trích xuất yêu cầu, xác định tác nhân (actor), đặc tả ca sử dụng (use case), thiết lập biểu đồ use case và thao tác trong Rational Rose.
  • Chương IV: Phân tích hệ thống – Mô hình khái niệm và biểu đồ lớp: Thiết lập mô hình đối tượng, xác định lớp, mối quan hệ kết hợp/kết nhập, mẫu rập khuôn (stereotype), xây dựng thuộc tính, phương thức và ghi nhận từ điển thuật ngữ dựa trên ca minh họa hệ thống HBH.
  • Chương V: Mô hình động thái: Các biểu đồ tương tác và hành động trong hệ thống: Trình bày cơ chế trao đổi thông điệp, xây dựng Biểu đồ trình tự (Sequence Diagram), Biểu đồ trạng thái (State Diagram), Biểu đồ hoạt động (Activity Diagram) và hợp đồng hoạt động của hệ thống.
  • Chương VI: Thiết kế các biểu đồ cộng tác và biểu đồ thành phần của hệ thống: Hướng dẫn xây dựng Biểu đồ cộng tác (Collaboration Diagram), áp dụng các mẫu gán trách nhiệm, hoàn thiện thiết kế biểu đồ lớp chi tiết trên Rational Rose.
  • Chương VII: Kiến trúc hệ thống và phát sinh mã trình: Thiết lập Biểu đồ thành phần (Component Diagram) và Biểu đồ triển khai (Deployment Diagram); kỹ thuật ánh xạ thiết kế lớp sang định nghĩa lớp trong ngôn ngữ C++/Java; cơ chế phát sinh mã tự động bằng công cụ Rational Rose.
  • Chương VIII & Phụ lục: Khái quát về thiết kế cơ sở dữ liệu hướng đối tượng (ứng dụng ObjectStore) và tài liệu phân tích thiết kế chi tiết cho 4 bài toán: Hệ thống máy rút tiền tự động ATM, Hệ thống điều khiển thang máy, Hệ thống quản lý thư viện, Hệ thống quản lý đăng ký học tập.

Progression logic của giáo trình đi chặt chẽ theo chu trình kỹ nghệ: từ phân tích yêu cầu nghiệp vụ $\rightarrow$ mô hình hóa khái niệm $\rightarrow$ mô hình hóa hành vi động $\rightarrow$ thiết kế chi tiết kiến trúc $\rightarrow$ phát sinh mã trình và cơ sở dữ liệu.

+-------------------------------------------------------------+
|                     Yêu cầu bài toán                        |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|   Chương III: Phân tích yêu cầu & Biểu đồ Ca sử dụng        |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|   Chương IV: Mô hình khái niệm & Biểu đồ Lớp (Tĩnh)         |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|   Chương V: Biểu đồ Trình tự, Trạng thái, Hoạt động (Động)  |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|   Chương VI: Biểu đồ Cộng tác & Thiết kế chi tiết           |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|   Chương VII - VIII: Biểu đồ Thành phần/Triển khai & Mã C++ |
+-------------------------------------------------------------+

Kiến thức nền tảng được xây dựng

  • Lý thuyết hệ thống và nhận thức luận: Vận dụng nguyên lý "Chia để trị" (Divide and Conquer) và nguyên lý "Trừu tượng hóa" để giảm thiểu độ phức tạp; mô hình hóa hệ thống theo 4 phương diện: chức năng, cấu trúc tĩnh, hành vi ứng xử, và kiến trúc vật lý.
  • Các nguyên lý hướng đối tượng: Đóng gói (Encapsulation), che giấu thông tin (Information Hiding), kế thừa (Inheritance/Generalization), đa xạ/nạp chồng phương thức (Polymorphism) và cơ chế truyền thông điệp thay thế hoàn toàn cho biến toàn cục.
  • Khung quy trình RUP/UP: Quy trình phát triển hướng bởi ca sử dụng (use-case driven), lấy kiến trúc làm trọng tâm (architecture-centric), thực hiện theo các chu kỳ lặp và tăng dần (iterative and incremental).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thành thạo cú pháp và ngữ nghĩa 9 loại biểu đồ UML; sử dụng công cụ CASE Rational Rose để vẽ mô hình và phát sinh mã nguồn C++/Java; định nghĩa lớp, thuộc tính, phương thức, quan hệ kết hợp, kết nhập, phụ thuộc.
  • Kỹ năng phân tích (Analytical skills): Phân tích ranh giới hệ thống, phân rã bài toán phức tạp, trích xuất tác nhân và ca sử dụng từ văn bản mô tả nghiệp vụ thực tế.
  • Năng lực thực hành (Practical competencies): Chuyển đổi mô hình phân tích sang mô hình thiết kế chi tiết, thiết lập cấu hình phân tán 3 tầng (giao diện, logic nghiệp vụ, lưu trữ dữ liệu) qua biểu đồ triển khai.

Phương pháp giảng dạy và học tập

Phương pháp tiếp cận sư phạm (Pedagogical approach)

Giáo trình áp dụng phương pháp tiếp cận diễn dịch kết hợp thực nghiệm: trình bày nguyên lý lý thuyết, chuẩn hóa bằng ký pháp biểu đồ UML, sau đó minh họa trực quan trên một bài toán nghiệp vụ xuyên suốt. Người học được dẫn dắt từ việc quan sát bài toán ở mức quan niệm trừu tượng đến việc cài đặt cụ thể ở mức vật lý và mã lệnh.

Bài tập và ca nghiên cứu điển hình (Case studies)

  • Case study trục chính: "Hệ thống quản lý bán hàng" (hệ HBH) được triển khai qua tất cả các chương: từ xác định ca sử dụng, lập biểu đồ lớp, mô tả biểu đồ trình tự, đến thiết kế cộng tác và sinh mã C++.
  • 4 bài toán quy mô lớn trong Phụ lục:
    1. Hệ thống rút tiền tự động ATM: Đặc tả use case, biểu đồ trình tự giao dịch, thiết kế lớp chi tiết, biểu đồ thành phần và triển khai.
    2. Hệ thống điều khiển các thang máy: Mô hình hóa hệ thống kỹ thuật thời gian thực, xử lý biến đổi trạng thái và tương tác cảm biến/bộ điều khiển.
    3. Hệ thống quản lý thư viện: Phân tích nghiệp vụ mượn/trả sách, quản lý bạn đọc, thiết kế kiến trúc và mô hình dữ liệu.
    4. Hệ thống quản lý đăng ký học tập: Đặc tả yêu cầu đăng ký tín chỉ và xử lý ràng buộc môn học.

Thực hành và công cụ hỗ trợ

Tài liệu cung cấp các mục hướng dẫn thực hành riêng biệt với phần mềm Rational Rose ở cuối các chương (3.4, 4.8, 5.5, 5.6, 6.5, 7.6):

  • Tạo lập dự án, tạo gói, quản lý các khung nhìn (Use Case View, Logical View, Component View, Deployment View).
  • Thiết lập stereotype, ràng buộc, thuộc tính và phương thức truy cập.
  • Cấu hình chuyển đổi biểu đồ lớp và biểu đồ cộng tác sang mã nguồn C++ (Code Generation).

Phương pháp đánh giá và tự học

  • Đánh giá: Mỗi chương kết thúc bằng hệ thống câu hỏi trắc nghiệm khách quan và bài tập tự luận nhằm kiểm tra khả năng ghi nhớ khái niệm, nhận diện quan hệ giữa các lớp và năng lực vẽ biểu đồ.
  • Tự học: Sinh viên cần đọc lý thuyết, đối chiếu với "Danh sách thuật ngữ và các từ viết tắt" (trang 217), sau đó tự cài đặt lại các biểu đồ trên phần mềm công cụ theo từng bước hướng dẫn trong giáo trình.

Điểm nổi bật và cập nhật

So sánh với phương pháp truyền thống

Giáo trình làm rõ những giới hạn của phương pháp có cấu trúc (hướng thủ tục/chức năng) và chu trình thác nước cổ điển:

  • Tiếp cận hướng chức năng phân rã bài toán theo thuật toán, khiến dữ liệu bị biến đổi phụ thuộc và phải chia sẻ biến toàn cục, dẫn đến hệ thống khó thay đổi, tính thích nghi kém và khó bảo trì.
  • Chu trình thác nước thiếu tính quay lui, tách rời người dùng trong các giai đoạn trung gian.
  • Ngược lại, phương pháp hướng đối tượng với quy trình lặp RUP/UP và chu trình xoắn ốc (Boëhm) giúp giảm rủi ro, cho phép tích hợp nguyên mẫu (prototype), nâng cao khả năng tái sử dụng mã nguồn qua cơ chế kế thừa và bao gói.
+------------------------------+------------------------------------+
| Tiêu chí so sánh             | Tiếp cận hướng chức năng           | Tiếp cận hướng đối tượng (UML)     |
+------------------------------+------------------------------------+------------------------------------+
| Trọng tâm phân tích          | Chức năng, nhiệm vụ, thuật toán    | Thực thể, dữ liệu, lớp đối tượng   |
| Cơ chế trao đổi dữ liệu      | Tham số, biến toàn cục (Global)    | Truyền thông điệp giữa đối tượng   |
| Khả năng thích nghi thay đổi | Thấp (sửa đổi ảnh hưởng toàn cục)  | Cao (sửa đổi mang tính cục bộ)     |
| Khả năng tái sử dụng         | Hạn chế ở mức hàm/thủ tục          | Rộng rãi nhờ bao gói và kế thừa    |
| Tính trực quan mô hình hóa   | Sơ đồ luồng dữ liệu (DFD), sơ đồ khối| 9 loại biểu đồ chuẩn hóa UML      |
+------------------------------+------------------------------------+------------------------------------+

Chuẩn hóa công nghệ và liên hệ thực tiễn

  • Chuẩn hóa công nghiệp: Hợp nhất các ký pháp phân tán trước năm 1995 (Booch, OMT, OOSE) thành chuẩn thống nhất UML, được các hãng công nghệ lớn (Microsoft, IBM, HP, Oracle) ứng dụng.
  • Liên hệ thực tế tại Việt Nam: Tài liệu gắn kết lý thuyết kỹ nghệ phần mềm với các chương trình hiện đại hóa hành chính, tiêu biểu như việc xây dựng các hệ thống thông tin điều hành tác nghiệp, dịch vụ công trong Đề án 112 của Chính phủ giai đoạn 2001-2005.

Đối tượng sử dụng giáo trình

Phân loại người học và điều kiện tiên quyết

  • Đối tượng đào tạo:
    • Sinh viên bậc Đại học ngành Công nghệ thông tin, Hệ thống thông tin, Kỹ thuật phần mềm (từ năm thứ hai hoặc năm thứ ba).
    • Học viên Cao học ngành Khoa học máy tính và Hệ thống thông tin cần chuẩn hóa phương pháp luận phân tích thiết kế.
  • Kiến thức tiên quyết (Prerequisites):
    • Đã học qua môn Tin học cơ sở, Cấu trúc dữ liệu và giải thuật.
    • Có kiến thức nền tảng về một ngôn ngữ lập trình (C, Pascal, C++, Java hoặc Visual Basic).

Ứng dụng cho giảng viên và nghiên cứu

  • Giảng viên: Sử dụng làm đề cương và giáo trình giảng dạy chính thức cho học phần Phân tích thiết kế hệ thống; sử dụng các ca bài tập lớn trong phụ lục để biên soạn đề tài đồ án môn học.
  • Kỹ sư và lập trình viên: Dùng làm tài liệu tra cứu chuẩn về ngữ nghĩa biểu đồ UML, quy ước đặt tên lớp/thuộc tính/phương thức và kỹ thuật ánh xạ thiết kế sang mã trình.

Câu hỏi thường gặp (FAQ)

1. Giáo trình này phù hợp với ai?

Tài liệu được biên soạn phục vụ trực tiếp cho sinh viên đại học, học viên cao học khối ngành Công nghệ thông tin, cũng như các kỹ sư phần mềm cần tài liệu chuẩn hóa về phương pháp phân tích và thiết kế hệ thống theo mô hình đối tượng.

2. Cần kiến thức nền nào trước khi học giáo trình này?

Người học cần nắm vững kiến thức cơ bản về cấu trúc dữ liệu, giải thuật và nguyên lý lập trình căn bản (tối thiểu là các ngôn ngữ lập trình cấu trúc như C/Pascal hoặc lập trình hướng đối tượng cơ bản như C++/Java).

3. Điểm khác biệt của giáo trình này so với các tài liệu phân tích hệ thống truyền thống là gì?

Giáo trình chuyển đổi hoàn toàn từ tư duy hướng chức năng (phân rã chức năng, dùng biến toàn cục, luồng dữ liệu DFD) sang tư duy hướng đối tượng (mô hình hóa thực thể, đóng gói, kế thừa, truyền thông điệp), sử dụng hệ thống ký pháp chuẩn UML thay cho các sơ đồ kỹ thuật riêng lẻ.

4. Làm sao để tự học và thực hành hiệu quả với giáo trình?

Người học nên kết hợp đọc lý thuyết từng chương với việc cài đặt trực tiếp các biểu đồ trên phần mềm CASE (như Rational Rose), bám sát ca nghiên cứu hệ thống HBH trong các chương lý thuyết và tự giải quyết 4 bài toán lớn ở phần phụ lục.

5. Có tài liệu bổ trợ nào kèm theo trong giáo trình không?

Cuối sách có tích hợp:

  • Danh mục 39 tài liệu tham khảo chuyên ngành (các công trình của Booch, Jacobson, Rumbaugh, Sommerville, Pressman).
  • Danh sách thuật ngữ và các từ viết tắt chuyên môn (trang 217).
  • Phụ lục hướng dẫn thiết kế chi tiết 4 bài tập lớn thực tế (trang 185 - 213).

Kết luận

Giáo trình Phân tích, thiết kế hướng đối tượng với UML của tác giả Đoàn Văn Ban cung cấp hệ thống tri thức hoàn chỉnh về phương pháp luận mô hình hóa phần mềm hướng đối tượng theo chuẩn công nghiệp UML và quy trình hợp nhất RUP.

Lộ trình học tập được thiết lập tuần tự: trang bị lý thuyết hệ thống $\rightarrow$ làm chủ ký pháp UML $\rightarrow$ đặc tả yêu cầu với Use Case $\rightarrow$ xây dựng mô hình tĩnh (Class Diagram) và mô hình động (Sequence, State, Activity Diagrams) $\rightarrow$ hoàn thiện kiến trúc vật lý và sinh mã nguồn. Người học có thể mở rộng nghiên cứu qua các tài liệu tham khảo quốc tế được trích dẫn trong giáo trình để nâng cao năng lực kỹ nghệ phần mềm chuyên nghiệp.