Bài viết này tập trung vào khái niệm sơ đồ hoạt động UML. Sơ đồ hoạt động UML là một công cụ phổ biến khác được UML sử dụng để mô hình hóa hành vi động của hệ thống. Nó mô tả chuỗi các hoạt động và cho thấy dòng điều khiển từ hoạt động này sang hoạt động khác. Sơ đồ hoạt động UML về cơ bản là một biểu đồ dòng.

Tổng quan về sơ đồ hoạt động UML
Mặc dù cả sơ đồ hoạt động UML và sơ đồ trạng thái đều là đại diện cho máy trạng thái, nhưng có những khác biệt cơ bản giữa hai loại này:
- Sơ đồ hoạt động UML tập trung vào dòng điều khiển từ hoạt động này sang hoạt động khác, đây là một dòng xử lý nội bộ;
- trong khi sơ đồ trạng thái tập trung vào dòng điều khiển từ hoạt động này sang hoạt động khác. Mô tả dòng chảy từ trạng thái này sang trạng thái khác, chủ yếu liên quan đến sự tham gia của các sự kiện bên ngoài.
Sự khác biệt giữa sơ đồ hoạt động UML và biểu đồ dòng
- Biểu đồ dòng tập trung vào việc mô tả quy trình xử lý. Cấu trúc điều khiển chính của nó là chuỗi, nhánh và vòng lặp. Có một mối quan hệ chuỗi và thời gian nghiêm ngặt giữa mỗi quy trình xử lý.
- Sơ đồ hoạt động UML mô tả các quy tắc được tuân theo bởi mối quan hệ chuỗi của các hoạt động đối tượng. Nó tập trung vào hành vi của hệ thống hơn là quy trình của hệ thống.
- Sơ đồ hoạt động UML có thể đại diện cho tình huống của các hoạt động đồng thời, nhưng biểu đồ dòng thì không.
- Sơ đồ hoạt động UML là hướng đối tượng, trong khi biểu đồ dòng là hướng quy trình.
Trên thực tế, bạn có thể sử dụng một sơ đồ hoạt động cơ bản để đại diện cho một biểu đồ dòng, tương tự như sơ đồ tương đương:

Biểu diễn đồ họa của sơ đồ hoạt động UML
Trong UML, sơ đồ hoạt động UML được biểu diễn dưới dạng hình chữ nhật bo tròn.
Tóm tắt ký hiệu sơ đồ hoạt động
Mô tả ký hiệuKý hiệu UML
Hoạt động — Được sử dụng để đại diện cho một tập hợp các hành động

Hành động — Một nhiệm vụ cần thực hiện

Dòng điều khiển — Cho thấy chuỗi thực thi

Dòng đối tượng — Cho thấy dòng chảy của một đối tượng từ một hoạt động (hoặc hành động) đến một hoạt động (hoặc hành động) khác.

Nút khởi đầu — Miêu tả sự bắt đầu của một tập hợp các hành động hoặc hoạt động

Nút kết thúc hoạt động — Dừng tất cả các dòng điều khiển và dòng đối tượng trong một hoạt động (hoặc hành động)

Nút đối tượng — Đại diện cho một đối tượng được kết nối với một tập hợp các Dòng Đối Tượng

Nút quyết định — Đại diện cho một điều kiện kiểm tra để đảm bảo rằng dòng điều khiển hoặc dòng đối tượng chỉ đi xuống một con đường

Nút hợp nhất — Mang lại cùng nhau các con đường quyết định khác nhau được tạo ra bằng cách sử dụng một nút quyết định.

Nút phân nhánh — Chia hành vi thành một tập hợp các dòng hoạt động (hoặc hành động) song song hoặc đồng thời

Nút kết hợp — Mang lại cùng nhau một tập hợp các dòng hoạt động (hoặc hành động) song song hoặc đồng thời.

Làn bơi và Phân vùng — Một cách để nhóm các hoạt động được thực hiện bởi cùng một tác nhân trên một sơ đồ hoạt động hoặc để nhóm các hoạt động trong một luồng duy nhất

Nhiều ví dụ về sơ đồ hoạt động
Sơ đồ hoạt động — Mô hình hóa một trình xử lý văn bản
Ví dụ về sơ đồ hoạt động dưới đây mô tả quy trình làm việc cho một trình xử lý văn bản để tạo ra một tài liệu thông qua các bước sau:
- Mở gói xử lý văn bản.
- Tạo một tệp.
- Lưu tệp với một tên duy nhất trong thư mục của nó.
- Gõ tài liệu.
- Nếu đồ họa là cần thiết, mở gói đồ họa, tạo đồ họa và dán đồ họa vào tài liệu.
- Nếu bảng tính là cần thiết, mở gói bảng tính, tạo bảng tính và dán bảng tính vào tài liệu.
- Lưu tệp.
- In một bản sao cứng của tài liệu.
- Thoát khỏi gói xử lý văn bản.

Ví dụ về biểu đồ hoạt động — Xử lý Đơn hàng
Dựa trên mô tả vấn đề liên quan đến quy trình xử lý đơn hàng, hãy mô hình hóa mô tả này bằng cách sử dụng biểu đồ hoạt động:
Xử lý Đơn hàng — Mô tả Vấn đề
Khi đơn hàng được nhận, các hoạt động chia thành hai tập hợp hoạt động song song. Một bên điền và gửi đơn hàng trong khi bên kia xử lý việc thanh toán.
Ở bên Điền Đơn hàng, phương thức giao hàng được quyết định theo điều kiện. Tùy thuộc vào điều kiện, hoạt động Giao hàng qua đêm hoặc hoạt động Giao hàng Thường xuyên sẽ được thực hiện.
Cuối cùng, các hoạt động song song kết hợp để hoàn tất đơn hàng.
Ví dụ về biểu đồ hoạt động dưới đây hình dung quy trình dưới dạng đồ họa.

Ví dụ về biểu đồ hoạt động — Đăng ký Sinh viên
Ví dụ về biểu đồ hoạt động UML này mô tả quy trình đăng ký sinh viên vào một trường đại học như sau:
- Một ứng viên muốn đăng ký vào trường đại học.
- Ứng viên nộp một bản đã điền của Mẫu Đăng ký.
- Người đăng ký kiểm tra các mẫu đơn.
- Người đăng ký xác định rằng các mẫu đơn đã được điền đúng cách.
- Người đăng ký thông báo cho sinh viên tham dự buổi trình bày tổng quan về trường đại học.
- Người đăng ký giúp sinh viên đăng ký tham gia các buổi hội thảo.
- Người đăng ký yêu cầu sinh viên thanh toán học phí ban đầu.

Biểu đồ hoạt động — Swinlane
Một swinlane là cách để nhóm các hoạt động được thực hiện bởi cùng một diễn viên trên một biểu đồ hoạt động hoặc để nhóm các hoạt động trong một luồng duy nhất. Dưới đây là một ví dụ về biểu đồ hoạt động swinlane để mô hình hóa việc nộp Chi phí Nhân viên:

Biểu đồ Hoạt động Swinlane và Không Swinlane
Ví dụ về biểu đồ hoạt động dưới đây mô tả quy trình kinh doanh để gặp gỡ một khách hàng mới bằng cách sử dụng biểu đồ hoạt động mà không có swinlane.

Hình dưới đây mô tả quy trình kinh doanh để gặp gỡ một khách hàng mới bằng cách sử dụng biểu đồ hoạt động có swinlane.

Tìm hiểu thêm về các biểu đồ UML một cách chi tiết?
- UML là gì?
- Tại sao lại mô hình hóa bằng UML?
- Tổng quan về 14 loại biểu đồ UML
- Biểu đồ Lớp là gì?
- Biểu đồ Thành phần là gì?
- Biểu đồ Triển khai là gì?
- Biểu đồ Đối tượng là gì?
- Biểu đồ Gói là gì?
- Biểu đồ Cấu trúc Tổ hợp là gì?
- Biểu đồ Hồ sơ là gì?
- Biểu đồ Trường hợp Sử dụng là gì?
- Biểu đồ Hoạt động là gì?
- Biểu đồ Máy trạng thái là gì?
- Biểu đồ Chuỗi là gì?
- Biểu đồ Giao tiếp là gì?
- Biểu đồ Tổng quan Tương tác là gì?
- Biểu đồ Thời gian là gì?
- Biểu đồ Hợp tác UML là gì?
- Liên kết UML so với Tập hợp so với Thành phần
- Hướng dẫn Biểu đồ Lớp UML
- Cách mô hình hóa các ràng buộc trong UML?
- Biểu đồ Máy trạng thái so với Biểu đồ Hoạt động
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, 简体中文 and 繁體中文.