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

Giáo trình Phân Tích và Thiết Kế Hệ Thống Thông Tin (Object-Oriented Systems Analysis and Design with UML) là tài liệu học tập cốt lõi trong chương trình đào tạo trình độ đại học và sau đại học thuộc các ngành Hệ thống thông tin, Công nghệ thông tin và Kỹ thuật phần mềm. Tài liệu được thiết kế nhằm trang bị cho sinh viên phương pháp luận và kỹ thuật kỹ thuật chuyển đổi từ các yêu cầu nghiệp vụ trong miền vấn đề (problem domain) sang các giải pháp kỹ thuật cụ thể trong miền giải pháp (solution domain).

Mục tiêu học tập trọng tâm của giáo trình bao gồm:

  • Nắm vững kỹ thuật mô hình hóa hệ thống hướng đối tượng thông qua ngôn ngữ mô hình hóa thống nhất (UML).
  • Làm chủ quy trình xác minh (verification), xác nhận (validation) và cân bằng (balancing) giữa các mô hình phân tích chức năng, cấu trúc và hành vi.
  • Phát triển năng lực cấu trúc hóa hệ thống phần mềm thành 5 tầng kiến trúc riêng biệt và phân rã thành các gói (packages) độc lập.
  • Đánh giá và lựa chọn các chiến lược phát triển hệ thống (tự xây dựng, mua phần mềm đóng gói, tích hợp hệ thống hoặc gia công phần mềm).

Về cấu trúc và cách tiếp cận, giáo trình bám sát mô hình phát triển phần mềm lặp và tăng dần (iterative and incremental) theo Quy trình hợp nhất (Unified Process), đặc biệt tập trung vào pha công phu (elaboration phase) và pha xây dựng (construction phase). Điểm đặc sắc của tài liệu là việc thiết lập các bộ quy tắc kiểm tra tính nhất quán logic đa chiều giữa các sơ đồ UML, kết hợp với phương pháp đánh giá ngang hàng có cấu trúc (walkthroughs) nhằm phát hiện sớm các lỗi phân tích trước khi tiến hành giai đoạn thiết kế chi tiết.


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

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

Nội dung giáo trình được tổ chức theo tiến trình logic từ phân tích sơ bộ, mô hình hóa chi tiết đến thiết kế kiến trúc và hạ tầng triển khai:

  • Chương 2 và Chương 4: Khảo sát khả thi và xác định yêu cầu: Thiết lập khung phân tích tính khả thi về kỹ thuật, kinh tế, tổ chức; thu thập và phân loại yêu cầu chức năng (functional requirements) cùng yêu cầu phi chức năng (non-functional requirements).
  • Chương 5: Mô hình hóa chức năng (Functional Modeling): Xây dựng biểu đồ hoạt động (Activity Diagram), mô tả ca sử dụng (Use Case Description) và biểu đồ ca sử dụng (Use Case Diagram) để định nghĩa các quy trình nghiệp vụ.
  • Chương 6: Mô hình hóa cấu trúc (Structural Modeling): Biểu diễn cấu trúc tĩnh của hệ thống thông qua kỹ thuật thẻ CRC (Class-Responsibility-Collaboration) và sơ đồ lớp (Class Diagram).
  • Chương 7: Mô hình hóa hành vi (Behavioral Modeling): Mô tả tương tác động giữa các đối tượng và vòng đời trạng thái thông qua sơ đồ tuần tự (Sequence Diagram), sơ đồ giao tiếp/cộng tác (Communication Diagram), máy trạng thái hành vi (Behavioral State Machine) và ma trận CRUD.
  • Chương 8: Tiến hóa mô hình phân tích sang mô hình thiết kế: Cung cấp quy trình đánh giá ngang hàng (Walkthroughs); phương pháp cân bằng mô hình chức năng, cấu trúc, hành vi; kỹ thuật phân tích (factoring), trừu tượng hóa (abstraction), sàng lọc (refinement); phân vùng hệ thống thành 5 tầng kiến trúc; xây dựng biểu đồ gói (Package Diagram); và đánh giá 3 chiến lược thiết kế bằng ma trận thay thế (Alternative Matrix), hồ sơ mời thầu (RFP) và yêu cầu thông tin (RFI).
  • Chương 9 và Chương 10: Thiết kế chi tiết lớp và quản lý dữ liệu: Thiết kế chi tiết phương thức, kiểm soát độ ghép nối (coupling), độ gắn kết (cohesion), đa hình, đóng gói, đặc tả hợp đồng; thiết kế lưu trữ dữ liệu bền bỉ trên các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), hướng đối tượng (OODBMS) hoặc lai đối tượng - quan hệ (ORDBMS).
  • Chương 11 và Chương 12: Thiết kế giao diện và kiến trúc vật lý: Thiết kế tương tác người - máy (HCI) theo mô hình View - Controller với các kỹ thuật Storyboarding và Prototyping; thiết kế kiến trúc vật lý phân tán, an ninh hệ thống, giao thức mạng và tương tác thông qua các phần mềm trung gian (OMG CORBA, Microsoft DCOM, .NET).

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

  • Lý thuyết mô hình hóa hướng đối tượng: Áp dụng các nguyên lý trừu tượng hóa, đóng gói, kế thừa (quan hệ tổng quát hóa a-kind-of), quan hệ kết tập (has-part) và quan hệ phụ thuộc để xây dựng cấu trúc hệ thống.
  • Bộ quy tắc cân bằng mô hình phân tích: Hệ thống quy tắc đối soát chéo nhằm bảo đảm tính nhất quán logic:
    1. Cân bằng chức năng - cấu trúc: Mỗi lớp trên sơ đồ lớp và thẻ CRC phải liên kết với ít nhất một ca sử dụng; mỗi hành động trên biểu đồ hoạt động hoặc sự kiện trong mô tả ca sử dụng phải khớp với trách nhiệm trên thẻ CRC và thao tác trong sơ đồ lớp.
    2. Cân bằng chức năng - hành vi: Sơ đồ tuần tự và sơ đồ giao tiếp phải gắn với kịch bản ca sử dụng cụ thể; tác nhân và thông điệp phải tương ứng giữa biểu đồ ca sử dụng, ma trận CRUD và biểu đồ hoạt động.
    3. Cân bằng cấu trúc - hành vi: Mọi đối tượng tham gia sơ đồ tuần tự hoặc ma trận CRUD phải là thể hiện của một lớp trên sơ đồ lớp; chuyển đổi trên máy trạng thái phải gắn liền với thông điệp Create (C), Update (U) hoặc Delete (D) trong ma trận CRUD.
  • Khung kiến trúc 5 tầng (Layer Architecture): Định vị rõ vai trò của từng tầng:
    • Tầng cơ sở (Foundation Layer): Các kiểu dữ liệu cơ bản, cấu trúc dữ liệu thùng chứa (cây, danh sách, hàng đợi) và lớp tiện ích.
    • Tầng miền vấn đề (Problem Domain Layer): Các lớp nghiệp vụ đại diện cho bài toán thực tế.
    • Tầng quản lý dữ liệu (Data Management Layer): Các lớp xử lý lưu trữ, truy xuất đối tượng bền bỉ (ví dụ: các lớp trung gian DAM - Data Access Modules).
    • Tầng giao diện người - máy (Human-Computer Interaction Layer): Các lớp hiển thị và điều khiển giao diện người dùng.
    • Tầng kiến trúc vật lý (Physical Architecture Layer): Các lớp giao tiếp mạng, hệ điều hành và phần mềm trung gian phân tán.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Xây dựng sơ đồ gói UML với các quan hệ phụ thuộc; mô hình hóa các lớp bao gói đối tượng (Object Wrappers) để tái sử dụng hệ thống kế thừa (legacy systems); thiết lập ma trận thay thế (Alternative Matrix) có trọng số để thẩm định phương án kỹ thuật.
  • Kỹ năng phân tích: Phát hiện và xử lý các mâu thuẫn giữa các sơ đồ phân tích; phân tích mức độ ghép nối giữa các lớp để gom cụm thành các phân vùng (partitions) hoặc hệ thống con (subsystems).
  • Kỹ năng thực hành chuyên môn: Tổ chức và chủ trì các phiên họp đánh giá mô hình (Walkthroughs) với các vai trò người thuyết trình (presenter), thư ký ghi chép (recorder/scribe), và chuyên gia thẩm định bảo trì (maintenance oracle); soạn thảo hồ sơ mời thầu (RFP) và yêu cầu thông tin (RFI).

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

Giáo trình áp dụng phương pháp sư phạm tiếp cận theo vấn đề và tình huống thực tiễn (Problem-based and Case-based Learning). Các khái niệm lý thuyết trừu tượng được gắn liền với các kịch bản phát triển hệ thống cụ thể qua từng chương:

  • Tình huống Hệ thống Đặt lịch hẹn khám bệnh (Doctor Appointment System): Sử dụng xuyên suốt các chương 5, 6, 7 và 8 để minh họa việc đối chiếu giữa mô tả ca sử dụng Make Appointment, biểu đồ hoạt động Get Patient Information, thẻ CRC cho lớp Patient, sơ đồ lớp với các quan hệ giữa Person, Doctor, Appointment, Treatment, Medical History, kết hợp kiểm tra tính nhất quán với ma trận CRUD và sơ đồ tuần tự.
  • Tình huống Hệ thống Bán hàng qua mạng CD Selections (CD Selections Internet Sales System): Minh họa quy trình làm việc thực tế của nhóm phát triển (Alec, Brian, Anne) trong việc phân vùng các lớp Customer, Individual, Organization, Order, CD, Mkt Info, Vendor, Credit Card Clearance Center thành các gói trong tầng miền vấn đề, đồng thời giải quyết bài toán lựa chọn chiến lược phát triển hệ thống.
  • Tình huống Hệ thống Nhà ở sinh viên (Student Housing System): Cung cấp qua chuỗi bài tập thực hành Your Turn (từ 5-5, 5-6 đến 7-1, 7-2, 7-3), giúp sinh viên nhận diện các trạng thái tiến hóa của đối tượng (ví dụ: các lớp Freshman, Sophomore, Junior, Senior thực chất là trạng thái của lớp Undergraduate chứ không phải phân lớp tĩnh).
Tình huống thực nghiệm Thành phần mô hình hóa trọng tâm Mục tiêu sư phạm minh họa
Doctor Appointment System Thẻ CRC, Sơ đồ lớp, CRUD, Ma trận trạng thái Cân bằng mô hình chức năng, cấu trúc và hành vi
CD Selections Internet Sales Sơ đồ gói, Lớp bao gói (Object Wrapper), RFP Phân vùng kiến trúc và lựa chọn chiến lược phát triển
Student Housing System Máy trạng thái hành vi, Phân rã lớp kế thừa Nhận diện trạng thái vòng đời và tối ưu hóa phân lớp

Phương pháp học tập khuyến nghị kết hợp giữa học lý thuyết, thực hành vẽ biểu đồ UML trên công cụ phần mềm và mô phỏng đánh giá ngang hàng. Sinh viên được hướng dẫn tự kiểm tra mô hình bằng cách đọc to các kịch bản tương tác để phát hiện lỗi logic và thực hiện đầy đủ các bài tập tự lượng giá Your Turn.


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

  • Hệ thống hóa tiến trình chuyển dịch Phân tích sang Thiết kế: Làm rõ sự khác biệt giữa phân tích (xác định yêu cầu chức năng nghiệp vụ, bỏ qua môi trường) và thiết kế (tối ưu hóa chi phí, bảo trì, tích hợp yêu cầu phi chức năng và môi trường kỹ thuật).
  • Tích hợp các mô hình phần mềm doanh nghiệp và tích hợp kế thừa:
    • Cung cấp giải pháp kỹ thuật cụ thể để tích hợp hệ thống thông tin thông qua việc sử dụng các lớp bao gói đối tượng (Object Wrapper) để tạo giao diện lập trình ứng dụng (API) cho các hệ thống kế thừa.
    • Phân tích ưu nhược điểm của các giải pháp bổ trợ (workarounds / add-ons) khi tùy chỉnh các phần mềm đóng gói như Oracle E-Business Financials hay Microsoft Dynamics GP.
  • Cập nhật các mô hình dịch vụ và phân tán hiện đại: Giới thiệu các kiến trúc đối tượng phân tán chuẩn OMG CORBA, Microsoft DCOM, Microsoft .NET, cùng các mô hình nhà cung cấp dịch vụ ứng dụng (ASP) và Web Services.
  • Khung phân tích chiến lược phát triển toàn diện: Chuẩn hóa các tiêu chí lựa chọn chiến lược thông qua bảng so sánh đa tiêu chí (kinh nghiệm nội bộ, nhu cầu kinh doanh, kỹ năng dự án, năng lực quản lý dự án, khung thời gian) và phân loại 3 dạng hợp đồng gia công phần mềm chính:
    1. Hợp đồng thời gian và vật liệu (Time and Materials).
    2. Hợp đồng giá cố định (Fixed Price).
    3. Hợp đồng giá trị gia tăng (Value-Added).

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

  • Sinh viên đại học chuyên ngành: Sinh viên năm thứ ba và năm thứ tư theo học các ngành Hệ thống thông tin quản lý (MIS), Khoa học máy tính, Công nghệ thông tin và Kỹ thuật phần mềm.
  • Học viên cao học: Học viên các chương trình thạc sĩ chuyên ngành Công nghệ thông tin cần nghiên cứu sâu về phương pháp luận mô hình hóa hệ thống và kiến trúc phần mềm.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Đã hoàn thành học phần Lập trình hướng đối tượng (nắm vững khái niệm lớp, đối tượng, phương thức, kế thừa, đa hình).
    • Nắm vững kiến thức cơ bản về Cấu trúc dữ liệu và giải thuật (ngăn xếp, hàng đợi, danh sách liên kết, cây).
    • Có hiểu biết nền tảng về Cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu quan hệ.
  • Giảng viên và nhà nghiên cứu: Sử dụng làm khung giáo trình giảng dạy chính khóa, tài liệu thiết kế đề tài đồ án môn học và bài tập tình huống phân tích hệ thống.
  • Kỹ sư thực hành trong công nghiệp: Chuyên viên phân tích nghiệp vụ (Business Analyst), Kỹ sư phân tích hệ thống (System Analyst) và Kỹ sư phần mềm sử dụng làm tài liệu tham chiếu quy chuẩn trong việc lập tài liệu đặc tả thiết kế kỹ thuật.

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

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

Giáo trình phù hợp cho sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin từ năm thứ ba trở lên, học viên cao học, cùng các kỹ sư phân tích hệ thống và lập trình viên cần hoàn thiện phương pháp luận thiết kế hệ thống hướng đối tượng chuẩn UML.

2. Cần kiến thức nền nào để học?

Người học cần có kiến thức nền tảng về lập trình hướng đối tượng (OOP), cấu trúc dữ liệu cơ bản và các nguyên lý cơ sở dữ liệu để có thể tiếp thu các nội dung về mô hình hóa thẻ CRC, sơ đồ lớp, thiết kế tầng quản lý dữ liệu và tầng vật lý.

3. Điểm khác biệt với giáo trình khác là gì?

Giáo trình tập trung chuyên sâu vào quy trình chuyển giao từ phân tích sang thiết kế, cung cấp bộ quy tắc kiểm tra tính nhất quán logic đa chiều giữa tất cả các sơ đồ UML (chức năng, cấu trúc, hành vi) và chuẩn hóa cấu trúc hệ thống theo mô hình phân tầng 5 lớp.

4. Làm sao để tự học hiệu quả?

Người học nên thực hiện tuần tự các bài tập tình huống Your Turn, đối chiếu các sơ đồ thành phần với sơ đồ khái niệm tổng thể, thực hành kỹ thuật đánh giá Walkthrough bằng cách tự kiểm tra kịch bản ca sử dụng, và lập ma trận thay thế cho các bài toán thực tế.

5. Có tài liệu bổ trợ nào kèm theo?

Giáo trình dẫn chiếu đến các tài liệu chuyên khảo bổ trợ tiêu biểu trong ngành, bao gồm:

  • Về tầng quản lý dữ liệu: Giáo trình quản trị cơ sở dữ liệu của F. Prescott (Modern Database Management), tài liệu mô hình hóa của Premerlani (Object-Oriented Modeling and Design for Database Applications), và R. Muller (Database Design for Smarties: Using UML for Data Modeling).
  • Về tầng tương tác người - máy (HCI): Tài liệu thiết kế giao diện của B. Shneiderman (Designing the User Interface: Strategies for Effective Human-Computer Interaction).
  • Về quy trình đánh giá: Lý thuyết bảo trì của Edward Yourdon.

Kết luận

Giáo trình Phân Tích và Thiết Kế Hệ Thống Thông Tin cung cấp một hệ thống lý thuyết và phương pháp luận hoàn chỉnh về phát triển phần mềm hướng đối tượng dựa trên ngôn ngữ UML. Tài liệu kết nối chặt chẽ giữa việc nắm bắt yêu cầu nghiệp vụ và xây dựng kiến trúc kỹ thuật tối ưu thông qua quy trình xác minh mô hình nghiêm ngặt và phân tầng kiến trúc rõ ràng.

Lộ trình học tập khuyến nghị:

  1. Tiếp cận từ việc xác định yêu cầu chức năng và phi chức năng (Chương 2, 4).
  2. Xây dựng bộ ba mô hình phân tích chức năng, cấu trúc và hành vi (Chương 5, 6, 7).
  3. Thực hiện cân bằng, phân gói và lựa chọn chiến lược thiết kế (Chương 8).
  4. Triển khai thiết kế chi tiết trên các tầng nghiệp vụ, dữ liệu, giao diện và kiến trúc vật lý (Chương 9, 10, 11, 12).

Để đạt hiệu quả học tập cao nhất, người học nên kết hợp nghiên cứu các tài liệu tham khảo chuyên sâu về cơ sở dữ liệu của F. Prescott, R. Muller và tài liệu thiết kế giao diện người dùng của B. Shneiderman được trích dẫn trong giáo trình.