de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUzh_CNzh_TW

Hiểu về sơ đồ đối tượng UML so với sơ đồ lớp: Một hướng dẫn toàn diện với các ví dụ

Hướng dẫn này cung cấp một so sánh chi tiết về UMLSơ đồ đối tượngSơ đồ lớp, tập trung vào cách sơ đồ đối tượng ghi lại trạng thái hệ thống tại thời điểm thực thi so với cấu trúc tĩnh được cung cấp bởi sơ đồ lớp. Nó bao gồm các giải thích chi tiết, nhiều ví dụ để giúp người đọc hiểu rõ cả hai loại sơ đồ và các ứng dụng thực tế của chúng.

1. Giới thiệu về sơ đồ UML

Ngôn ngữ mô hình hóa thống nhất (UML) là một cách chuẩn hóa để trực quan hóa thiết kế và hành vi của các hệ thống. Trong các loại sơ đồ của nó,Sơ đồ lớpSơ đồ đối tượnglà những yếu tố then chốt trong việc mô hình hóa các hệ thống hướng đối tượng, nhưng chúng phục vụ các mục đích khác nhau:

  • Sơ đồ lớp mô tả cấu trúc tĩnhcủa một hệ thống, xác định các lớp, thuộc tính, phương thức và mối quan hệ của chúng.
  • Sơ đồ đối tượng ghi lại trạng thái độngcủa một hệ thống tại một thời điểm cụ thể trong quá trình thực thi, hiển thị các đối tượng được khởi tạo và các mối quan hệ của chúng.

Hướng dẫn này khám phá cách sơ đồ đối tượng phản ánh trạng thái thực thi so với quan điểm cấu trúc vĩnh viễn của sơ đồ lớp, với các ví dụ thực tế.

2. Sơ đồ lớp: Bản vẽ cấu trúc tĩnh

Mục đích và cấu trúc

Sơ đồ lớp là nền tảng của thiết kế hướng đối tượng, cung cấp một góc nhìn tĩnhvề kiến trúc của hệ thống. Chúng xác định:

  • Các lớp: Các mẫu cho đối tượng, xác định thuộc tính (dữ liệu) và phương thức (hành vi).
  • Các mối quan hệ: Các mối quan hệ, sự tập hợp, sự kết hợp, sự khái quát hóa và sự phụ thuộc giữa các lớp.
  • Ràng buộc: Các quy tắc hoặc điều kiện điều chỉnh cấu trúc của hệ thống.

Sơ đồ lớp là vĩnh viễn, có nghĩa là chúng biểu diễn thiết kế của hệ thống mà không tham chiếu đến một điểm cụ thể trong quá trình thực thi. Chúng được sử dụng trong quá trình thiết kế hệ thống, lập kế hoạch triển khai và sinh mã.

Các yếu tố chính

  • Lớp: Được biểu diễn dưới dạng hình chữ nhật với ba ngăn (tên, thuộc tính, phương thức).
  • Thuộc tính: Các thuộc tính hoặc trường dữ liệu của một lớp (ví dụ: name: String).
  • Phương thức: Các thao tác hoặc hành vi mà một lớp có thể thực hiện (ví dụ: calculateTotal(): double).
  • Các mối quan hệ:
    • Mối quan hệ: Một kết nối chung giữa các lớp (đường thẳng liền).
    • Sự tập hợp: Một mối quan hệ “có-một” (hình kim cương trống).
    • Sự kết hợp: Một mối quan hệ “sở hữu-một” mạnh hơn (hình kim cương đầy).
    • Khái quát hóa: Kế thừa hoặc mối quan hệ “là-một” (mũi tên với tam giác rỗng).
    • Sự phụ thuộc: Một mối quan hệ yếu hơn nơi một lớp phụ thuộc vào lớp khác (đường nét đứt).

Các tình huống ví dụ

Sơ đồ lớp là lý tưởng cho:

  • Thiết kế kiến trúc của một hệ thống phần mềm.
  • Truyền đạt cấu trúc đến các nhà phát triển hoặc các bên liên quan.
  • Tạo các bản nháp mã trong lập trình hướng đối tượng.

3. Sơ đồ đối tượng: Các bức ảnh thời điểm chạy

Mục đích và cấu trúc

Sơ đồ đối tượng cung cấp một bức ảnh của hệ thống tại một thời điểm cụ thể trong quá trình chạy, hiển thị các đối tượng được khởi tạo, các giá trị thuộc tính của chúng và các mối quan hệ (liên kết). Chúng là động, ghi lại trạng thái của hệ thống trong một tình huống hoặc trường hợp sử dụng cụ thể.

Sơ đồ đối tượng được suy ra từ sơ đồ lớp, vì các đối tượng là thể hiện của các lớp, và các liên kết là thể hiện của các mối quan hệ được định nghĩa trong sơ đồ lớp.

Các yếu tố chính

  • Đối tượng: Được biểu diễn dưới dạng hình chữ nhật với định dạng objectName: ClassName, hiển thị các giá trị thuộc tính cụ thể.
  • Liên kết: Các kết nối giữa các đối tượng, biểu diễn các thể hiện của các mối quan hệ từ sơ đồ lớp.
  • Giá trị thuộc tính: Các giá trị cụ thể cho các thuộc tính của một đối tượng tại một thời điểm nhất định (ví dụ: price = 99,99).
  • Số lượng: Chỉ ra có bao nhiêu đối tượng tham gia vào một mối quan hệ (ví dụ: một-đa).

Các tình huống ví dụ

Sơ đồ đối tượng hữu ích trong các trường hợp:

  • Trực quan hóa trạng thái của các đối tượng trong một trường hợp sử dụng hoặc tình huống kiểm thử cụ thể.
  • Gỡ lỗi để hiểu các tương tác giữa các đối tượng trong quá trình chạy.
  • Xác minh hành vi hệ thống so với các yêu cầu.

4. Những điểm khác biệt chính giữa sơ đồ đối tượng và sơ đồ lớp

Khía cạnh Sơ đồ lớp Sơ đồ đối tượng
Mục đích Xác định cấu trúc tĩnh và các mối quan hệ giữa các lớp. Hiển thị một bức ảnh về các đối tượng và mối quan hệ của chúng trong quá trình chạy.
Trọng tâm Các lớp trừu tượng và các mối quan hệ tiềm năng của chúng. Các thể hiện cụ thể (đối tượng) và trạng thái hiện tại của chúng.
Góc nhìn theo thời gian Vĩnh viễn, đại diện cho thiết kế của hệ thống. Theo thời gian, ghi lại một thời điểm cụ thể trong quá trình thực thi.
Nội dung Thuộc tính, phương thức và các mối quan hệ (liên kết, khái quát hóa). Các đối tượng với các giá trị thuộc tính cụ thể và các liên kết.
Trường hợp sử dụng Thiết kế hệ thống, kiến trúc, sinh mã. Gỡ lỗi, xác minh kịch bản, phân tích trạng thái thời gian chạy.
Ví dụ Lớp Car với các thuộc tính như model và các phương thức như drive(). Một đối tượng myCar: Car với model = “Toyota” và liên kết với một đối tượng myEngine: Engine.

5. Các ví dụ thực tế

Dưới đây là ba ví dụ chi tiết so sánh sơ đồ lớp và sơ đồ đối tượng cho các hệ thống khác nhau.

Ví dụ 1: Hệ thống mua sắm trực tuyến

Tình huống

Một hệ thống mua sắm trực tuyến có khách hàng, đơn hàng và sản phẩm. Sơ đồ lớp định nghĩa cấu trúc, trong khi sơ đồ đối tượng hiển thị đơn hàng của một khách hàng tại thời điểm thanh toán.

Sơ đồ lớp

Giải thích: Sơ đồ lớp định nghĩa:

  • Khách hàng với các thuộc tính và một phương thức để đặt hàng.
  • Đơn hàng với các thuộc tính và một phương thức để tính tổng tiền.
  • Sản phẩm với các thuộc tính và một phương thức để lấy giá.
  • Mối quan hệ: Một khách hàng có thể đặt nhiều đơn hàng (1-đa), và một đơn hàng chứa nhiều sản phẩm (1-đa).

Sơ đồ đối tượng

Giải thích: Sơ đồ đối tượng hiển thị:

  • Một khách hàng cụ thể (john: Customer) với các giá trị thuộc tính cụ thể.
  • Một đơn hàng cụ thể (order123: Order) được đặt bởi John, với tổng cộng 149,98 đô la.
  • Hai sản phẩm (laptop và chuột) trong đơn hàng, với giá cụ thể của chúng.
  • Các liên kết thể hiện các mối quan hệ tại thời điểm chạy (ví dụ: john đặt order123, chứa laptop và chuột).

Ví dụ 2: Hệ thống quản lý thư viện

Tình huống

Một hệ thống thư viện quản lý sách, thành viên và các khoản mượn. Sơ đồ lớp mô tả cấu trúc, trong khi sơ đồ đối tượng thể hiện một thành viên đang mượn sách.

Sơ đồ lớp

Giải thích: Sơ đồ lớp định nghĩa:

  • Thành viên với các thuộc tính và một phương thức để mượn sách.
  • Sách với các thuộc tính và một phương thức để kiểm tra tình trạng sẵn có.
  • Giao dịch mượn với các thuộc tính và một phương thức để gia hạn mượn.
  • Mối quan hệ: Một thành viên có thể có nhiều giao dịch mượn, và một cuốn sách có thể được mượn trong nhiều giao dịch.

Sơ đồ đối tượng

Giải thích: Sơ đồ đối tượng thể hiện:

  • Một thành viên cụ thể (alice: Thành viên) với các giá trị thuộc tính cụ thể.
  • Một giao dịch cụ thể (loan001: Giao dịch) với ngày mượn và ngày trả.
  • Một cuốn sách cụ thể (book1: Sách) mà Alice đã mượn.
  • Các liên kết thể hiện trạng thái tại thời điểm chạy (ví dụ: alice mượn book1 thông qua loan001).

Ví dụ 3: Hệ thống đại lý ô tô

Tình huống

Một hệ thống đại lý ô tô quản lý ô tô, động cơ và bánh xe. Sơ đồ lớp định nghĩa cấu trúc, trong khi sơ đồ đối tượng thể hiện cấu hình cụ thể của một chiếc xe.

Sơ đồ lớp

Giải thích: Sơ đồ lớp định nghĩa:

  • Xe với các thuộc tính và một phương thức để khởi động động cơ.
  • Động cơ với các thuộc tính và một phương thức để khởi động.
  • Bánh xe với các thuộc tính và một phương thức để quay.
  • Mối quan hệ: Một chiếc xe chứa một động cơ (tổ hợp) và bốn bánh xe (tổ hợp).

Sơ đồ đối tượng

Giải thích: Sơ đồ đối tượng hiển thị:

  • Một chiếc xe cụ thể (myCar: Car) với mẫu “Toyota Camry” và năm 2023.
  • Một động cơ cụ thể (engine1: Engine) loại V6.
  • Bốn bánh xe cụ thể (wheel1 đến wheel4) có kích thước 17.
  • Các liên kết thể hiện cấu thành tại thời điểm chạy (ví dụ: myCar chứa engine1 và bốn bánh xe).

6. Khi nào sử dụng từng sơ đồ

Sử dụng sơ đồ lớp khi:

  • Thiết kế kiến trúc hoặc cấu trúc của hệ thống.
  • Truyền đạt bản vẽ tổng thể của hệ thống cho các nhà phát triển hoặc bên liên quan.
  • Tạo các bản nháp mã nguồn hoặc sơ đồ cơ sở dữ liệu.
  • Xác định các mẫu tái sử dụng cho đối tượng.

Sử dụng sơ đồ đối tượng khi:

  • Gỡ lỗi để hiểu trạng thái và tương tác của đối tượng tại thời điểm chạy.
  • Xác minh các tình huống hoặc trường hợp sử dụng cụ thể (ví dụ: kiểm thử quy trình thanh toán).
  • Minh họa cách các đối tượng phối hợp trong một tình huống cụ thể.
  • Giảng dạy hoặc giải thích hành vi tại thời điểm chạy cho các bên liên quan không chuyên.

7. Tóm tắt

  • Sơ đồ lớp cung cấp một góc nhìn tĩnh, trừu tượngcủa một hệ thống, định nghĩa các lớp, thuộc tính, phương thức và mối quan hệ của chúng. Chúng rất quan trọng cho thiết kế và lập kế hoạch hệ thống.
  • Sơ đồ đối tượng ghi lại một bức ảnh động, cụ thểcủa hệ thống tại thời điểm chạy, hiển thị các đối tượng cụ thể, giá trị thuộc tính và các liên kết. Chúng rất lý tưởng để gỡ lỗi và xác minh tình huống.
  • Cùng nhau, các sơ đồ này bổ sung cho nhau: sơ đồ lớp tạo nền tảng, trong khi sơ đồ đối tượng thể hiện cách nền tảng đó hoạt động trong thực tế.

Bằng cách sử dụng các ví dụ như hệ thống mua sắm trực tuyến, hệ thống quản lý thư viện và hệ thống đại lý ô tô, bài hướng dẫn này minh họa cách mô hình hóa cả cấu trúc và trạng thái tại thời điểm chạy của hệ thống bằng UML.

8. Tài liệu tham khảo

Hướng dẫn này cung cấp một hướng dẫn toàn diện để hiểu và áp dụng các sơ đồ lớp và sơ đồ đối tượng. Bằng cách thành thạo cả hai loại sơ đồ này, bạn có thể thiết kế, phân tích và gỡ lỗi hiệu quả các hệ thống hướng đối tượng.

Follow
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...