Sơ đồ cộng tác (Communication Diagram)

1. Định nghĩa

Sơ đồ cộng tác (Communication Diagram) là một loại sơ đồ trong UML (Unified Modeling Language), thể hiện sự tương tác giữa các đối tượng trong hệ thống thông qua các thông điệp được truyền đi giữa chúng. Trước đây, sơ đồ này còn được gọi là Collaboration Diagram, nhưng từ UML 2.0 trở đi, thuật ngữ Communication Diagram được sử dụng thay thế.

Sơ đồ cộng tác tập trung vào cấu trúc tổ chức của các đối tượng tham gia vào tương tác, nhấn mạnh vào mối quan hệ giữa chúng thông qua các đường liên kết (links) và chuỗi thông điệp được trao đổi.


2. Vai trò và mục đích

  • Minh họa cách các đối tượng tương tác trong một kịch bản cụ thể của hệ thống.
  • Tập trung vào mối quan hệ giữa các đối tượng thay vì thứ tự thời gian như sơ đồ tuần tự (Sequence Diagram).
  • Giúp phân tích thiết kế hướng đối tượng, đặc biệt hữu ích trong thiết kế chi tiết của hệ thống phần mềm.
  • Xác định trách nhiệm của các đối tượng trong một quy trình cụ thể.
  • Cung cấp cái nhìn tổng quan về cách các thành phần phối hợp với nhau để thực hiện một chức năng nào đó.

3. Thành phần chính của sơ đồ cộng tác

Một sơ đồ cộng tác gồm các thành phần chính sau:

Thành phần Mô tả
Objects (Đối tượng) Các thực thể tham gia vào tương tác, được biểu diễn bằng hình chữ nhật có tên đối tượng.
Links (Liên kết) Các đường kết nối giữa các đối tượng, thể hiện mối quan hệ và khả năng trao đổi thông điệp.
Messages (Thông điệp) Các chỉ thị hoặc dữ liệu truyền giữa các đối tượng, được đánh số để xác định thứ tự gọi.

4. Cách vẽ sơ đồ cộng tác

Bước 1: Xác định các đối tượng tham gia

Xác định các thực thể sẽ tham gia vào tương tác trong kịch bản cụ thể, có thể là các lớp trong hệ thống hoặc các thành phần phần mềm.

Bước 2: Xác định mối quan hệ giữa các đối tượng

Xác định các liên kết (links) giữa các đối tượng để biểu diễn khả năng trao đổi thông tin giữa chúng.

Bước 3: Xác định thông điệp và thứ tự gọi

  • Xác định các hành động hoặc phương thức mà một đối tượng gọi đến đối tượng khác.
  • Đánh số thứ tự để thể hiện trình tự gọi phương thức.

Bước 4: Vẽ sơ đồ

  • Vẽ các đối tượng bằng hình chữ nhật.
  • Nối chúng bằng các đường liên kết.
  • Ghi chú thông điệp truyền qua lại giữa các đối tượng.

5. Ví dụ về sơ đồ cộng tác

Giả sử chúng ta có một hệ thống đặt hàng trực tuyến với các thành phần:

  • Khách hàng
  • Giỏ hàng
  • Đơn hàng
  • Hệ thống thanh toán

Tình huống: Khi khách hàng đặt hàng, hệ thống sẽ tạo đơn hàng và xử lý thanh toán.

Sơ đồ cộng tác có thể được mô tả như sau:

  1. Khách hàng gửi yêu cầu đặt hàng đến Giỏ hàng.
  2. Giỏ hàng gửi yêu cầu tạo đơn hàng đến Đơn hàng.
  3. Đơn hàng gửi yêu cầu thanh toán đến Hệ thống thanh toán.
  4. Hệ thống thanh toán xác nhận thanh toán thành công và thông báo lại Đơn hàng.
  5. Đơn hàng thông báo lại Giỏ hàng để hoàn tất quá trình đặt hàng.

Biểu diễn sơ đồ bằng UML (giả lập dạng text):

[Khách hàng] --(1: đặt hàng)--> [Giỏ hàng]
[Giỏ hàng] --(2: tạo đơn hàng)--> [Đơn hàng]
[Đơn hàng] --(3: yêu cầu thanh toán)--> [Hệ thống thanh toán]
[Hệ thống thanh toán] --(4: xác nhận thanh toán)--> [Đơn hàng]
[Đơn hàng] --(5: hoàn tất đơn hàng)--> [Giỏ hàng]

6. Sự khác biệt giữa Sơ đồ Cộng Tác và Sơ đồ Tuần Tự

Đặc điểm Sơ đồ cộng tác Sơ đồ tuần tự
Tập trung vào Mối quan hệ giữa các đối tượng Thứ tự thời gian của các thông điệp
Biểu diễn các đối tượng Phân bố theo không gian, liên kết với nhau Sắp xếp theo dòng thời gian từ trên xuống
Biểu diễn thông điệp Đánh số trên các đường liên kết giữa các đối tượng Mũi tên chỉ hướng đi của thông điệp theo thời gian
Ứng dụng Phân tích cách các đối tượng liên kết với nhau Mô tả quy trình thực hiện hành động theo thời gian

7. Khi nào sử dụng sơ đồ cộng tác?

Sơ đồ cộng tác thường được sử dụng khi:

  • Muốn thấy rõ cách các đối tượng liên kết với nhau trong hệ thống.
  • Muốn hiểu rõ cấu trúc tổ chức của các đối tượng hơn là trình tự thực hiện.
  • Cần so sánh với sơ đồ tuần tự để có cái nhìn toàn diện hơn về hệ thống.
  • Khi hệ thống có nhiều đối tượng tham gia tương tác phức tạp, sơ đồ cộng tác giúp thể hiện rõ hơn mối quan hệ giữa chúng.

8. Kết luận

Sơ đồ cộng tác là một công cụ quan trọng trong UML, giúp biểu diễn cách các đối tượng tương tác và liên kết với nhau để thực hiện một chức năng cụ thể. Nó đặc biệt hữu ích trong thiết kế phần mềm hướng đối tượng, giúp đội ngũ phát triển có cái nhìn tổng thể về quan hệ giữa các thành phần trong hệ thống.