Site icon Henry's Notes

Business Process Modeling Notation – BPMN

Tổng quan sơ đồ BPMN

1. BPMN là gì?

BPMN là viết tắt của Business Process Modeling Notation“Notation” nghĩa là ký hiệu. Tức BPMN là tập hợp các ký hiệu chuẩn để mô tả quy trình của doanh nghiệp. Hay để mô hình hóa quy trình của doanh nghiệp.

2. Tại sao BPMN lại quan trọng?

BPMN là một trong những “vũ khí tối quan trọng” của những bạn nào làm BA. Vì sao? Vì trong công việc, mình phải tiếp cận và lắng nghe rất nhiều quy trình nghiệp vụ của khách hàng.

Lắng nghe xong, nhiệm vụ của chúng ta là phải “tài liệu hóa” lại. Mà mỗi khách hàng lại khác nhau, mỗi quy trình mỗi phức tạp. Vậy ta viết tài liệu sao cho gọn, cho dễ đọc mà vẫn đảm bảo được nội dung gốc ban đầu? BPMN chính là câu trả lời.
Chỉ khi chúng ta thật sự hiểu được khách hàng, hiểu được quy trình họ làm hằng ngày. Thì mình mới nhìn nhận ra được, đâu là điểm chưa tối ưu trong quy trình của họ.
Và không chỉ có một mình mình cần hiểu, BA phải truyền đạt lại những “hiện trạng” và yêu cầu của khách hàng cho cả team cùng hiểu. Khi đó, BPMN là phương pháp tối ưu nhất để truyền đạt lại”mớ bồng bông” các quy trình này.

3. BPMN dành cho những ai?

BPMN dành cho cả người dùng high level lẫn lower level đọc.

High level là sao? Họ là những người quản lý tầng trên, họ chỉ cần quan tâm đến bức tranh tổng quan, và nắm được trong đó có những quy trình nào là chủ yếu.
Còn lower level là những người dùng trực tiếp, họ “follow” theo quy trình để làm. Do đó, BPMN cho những đối tượng này thường rất chi tiết và “cover” được toàn bộ các trường hợp có thể xảy ra.

4. Các cấu trúc cơ bản của BPMN

1. Swimlanes:

Swimlane được xem như là linh hồn của BPMN, làm nó khác hẳn những diagram khác

Các đối tượng của Swimlanes trong BPMN là các hộp hình chữ nhật đại diện cho những người tham gia của một quy trình nghiệp vụ.
Đại diện cho những bên tham gia vào quy trình. Bao gồm 2 phần chính có thể được gọi là pool và lane.
Pool có thể được sắp xếp theo chiều ngang hoặc chiều dọc. Chúng giống nhau về mặt ngữ nghĩa nhưng chỉ khác nhau về đại diện. Đối với các lanes ngang, quá trình chảy từ trái sang phải, trong khi quá trình trong lanes thẳng đứng chảy từ trên xuống dưới.
Pool thể hiện một tổ chức, một bộ phận, một phòng ban, một vai trò hoặc một hệ thống nào đó. Còn Lane thể hiện các cá nhân riêng lẻ, người sẽ làm các hoạt động cụ thể.
Ví dụ về lane bao gồm Khách hàng, Phòng Tài khoản, Cổng thanh toán và Nhóm phát triển.

2. Flow Elements:

Là các yếu tố kết nối với nhau để tạo thành quy trình nghiệp vụ. Flow Elements xác định hành vi của một quy trình. Có 3 yếu tố quan trọng trong Flow Elements đó là: event, activity, gateway.
  1. Start: bắt đầu
  2. Intermediate: ngay tức thì/ ở giữa
  3. End: kết thúc.
  1. Task là từng việc nhỏ, gộp các việc nhỏ lại sẽ thành một quy trình lớn.
  2. Transaction là các giao dịch, nó có thể gồm nhiều task nhỏ khác, mà các task này nó phải ăn rơ rất là logic với nhau.
  3. Sub-Process các quy trình con nằm trong một cái quy trình lớn, cái này dễ hiểu, giả bộ bỏ qua nhé anh em.
  4. “Call” là gọi, triệu hồi >> Call Activity là những bước, mà nó sẽ “gọi” những bước (hoặc các sub-process) từ quy trình khác, mà không cần phải define lại từ đầu ngay trong quy trình này.
  1. Exclusive Gateway (XOR Gateway): Dùng để chia luồng quy trình thành nhiều nhánh, chỉ một nhánh được thực hiện dựa trên điều kiện. Biểu thị bằng hình thoi với dấu X ở giữa.
  2. Inclusive Gateway (AND Gateway): Dùng để chia luồng quy trình thành nhiều nhánh, tất cả các nhánh đều được thực hiện. Biểu thị bằng hình thoi với hình tròn ở giữa.
  3. Parallel Gateway (OR Gateway): Dùng để chia luồng quy trình thành nhiều nhánh, ít nhất một nhánh được thực hiện dựa trên điều kiện. Biểu thị bằng hình thoi với đường viền đơn và dấu cộng bên trong.
  4. Event-Driven Gateway: Về cơ bản, Event-Driven Gateway khá giống với Exclusive Gateway (XOR) vì hai gateway này chỉ cho phép một nhánh chạy duy nhất. Nhưng nó khác ở chỗ Exclusive Gateway thì dựa vào điều kiện để chạy, còn Event-Driven Gateway dựa vào event để chạy. Tức là khi có một sự kiện nào đó xảy ra thì nó sẽ kích nhánh của sự kiện đó chạy.

3. Connecting Objects:

Là thành phần kết nối giữa các đối tượng với nhau để mô tả thành mô luồng nghiệp vụ. Có 4 loại chính đó là: Sequence flows, message flows, associations and data associations. Cụ thể:
Mình đã tổng quan thông tin về sơ đồ BPMN và các cấu trúc cơ bản của sơ đồ này. Các newbie hãy đón chờ phần hai để hóng xem “sự lợi hại” của BPMN như thế nào nhé!!!
————————————————————————–
***Chúng ta sẽ tìm hiểu kỹ hơn trong phần chú thích có trong quy trình Xử lý đơn hàng đơn giản sau.

Từ điển ký hiệu về sơ đồ BPMN

1. Các thành phần chính của BPMN

Trước khi giải mã về các ký hiệu một cách chi tiết thì chúng ta sẽ tóm tắt lại một chút về các thành phần chính của BPMN.

Gồm 6 thành phần chính:

2. Tóm tắt bộ ký hiệu trong sơ đồ BPMN

2.1 Swimlane

Swimlane được xem như là linh hồn của BPMN, làm nó khác hẳn những diagram khác. Swimlane bao gồm Pool và Lane.
Pool thể hiện một tổ chức, một bộ phận, một phòng ban, một vai trò hoặc một hệ thống nào đó. Còn Lane thể hiện các cá nhân riêng lẻ, người sẽ làm các hoạt động cụ thể.

2.2 Activity

Activity: biểu diễn các công việc hoặc hành động được thực hiện trong quy trình, tập trung trả lời câu hỏi làm gì? Activity gồm có 4 loại chính sau:
– Task là từng việc nhỏ, gộp các việc nhỏ lại sẽ thành một quy trình lớn.=> ô hình chữ nhật bình thường. Trong task có các loại task sau:
VD: Trên hệ thống đặt hàng thì User thực hiện Task là nhập đơn hàng, bấm gửi đơn hàng,…
VD: Người dùng thao tác bấm số điện thoại để gọi đến số hotline. Người dùng tải hoặc cập nhật phiên bản mới của ứng dụng tại app Store.
VD: Sau hoàn tất giao dịch chuyển tiền đi thì hệ thống tự động cập nhật số dư khả dụng trên tài khoản của khách hàng.
VD: Giữa 2 hệ thống sẽ có sự bất đồng bộ dữ liệu, Để thực hiện đồng bộ dữ liệu thì cứ 00:00h mỗi ngày hệ thống tự chạy script để đồng bộ.
VD: Xử lý thanh toán đơn hàng cần check các business rule về hạn mức tín dụng, số dư khả dụng của tài khoản,…
– Transaction là các giao dịch, nó có thể gồm nhiều task nhỏ khác, mà các task này nó phải rất là logic với nhau.=> ô hình chữ nhật có 2 nét bao ngoài
– Sub-Process các quy trình con nằm trong một cái quy trình lớn, cái này dễ hiểu, giả bộ bỏ qua nhé anh em.=> ô hình chữ nhật nét đứt, có dấu cộng ở giữa
– “Call” là gọi, triệu hồi >> Call Activity là những bước, mà nó sẽ “gọi” những bước (hoặc các sub-process) từ quy trình khác, mà không cần phải define lại từ đầu ngay trong quy trình này.=> ô hình chữ nhật có 1 nét bao ngoài rất đậm.

*Chú ý: Transaction về cơ bản cũng tương tự Sub-Process, nhưng nó khác ở chỗ: transaction là một chuỗi các task thể hiện sự giao dịch, tức là có payment (giao dịch thanh toán) trong đó. Còn Sub-Process thì rộng nghĩa hơn.

2.3 Flow

2.4 Gateway

 Exclusive Gateway (XOR Gateway): Dùng để chia luồng quy trình thành nhiều nhánh, chỉ một nhánh được thực hiện dựa trên điều kiện. Biểu thị bằng hình thoi với dấu X ở giữa
VD như tới một ngã ba bạn buộc phải quẹo trái hoặc quẹo phải.
 Inclusive Gateway (AND Gateway): Dùng để chia luồng quy trình thành nhiều nhánh, tất cả các nhánh đều được thực hiện. Biểu thị bằng hình thoi với hình tròn ở giữa.
VD. Trên màn hình tạo đơn hàng bạn có thể nhập tên người nhận hàng trước hoặc địa chỉ nhận hàng trước đều được.
– Parallel Gateway (OR Gateway): Dùng để chia luồng quy trình thành nhiều nhánh, ít nhất một nhánh được thực hiện dựa trên điều kiện. Biểu thị bằng hình thoi với đường viền đơn và dấu cộng bên trong.
VD: Để hoàn thành tạo đơn hàng thì có thể làm nhiều Task song song nhau như: Chọn mặt hàng, nhập thông tin người nhận, địa chỉ nhận,… nếu một trong các Task này không hoàn thành thì không thể complete được việc tạo đơn hàng.
– Event-Driven Gateway: Về cơ bản, Event-Driven Gateway khá giống với Exclusive Gateway (XOR) vì hai gateway này chỉ cho phép một nhánh chạy duy nhất. Nhưng nó khác ở chỗ Exclusive Gateway thì dựa vào điều kiện để chạy, còn Event-Driven Gateway dựa vào event để chạy. Tức là khi có một sự kiện nào đó xảy ra thì nó sẽ kích nhánh của sự kiện đó chạy.
VD: Đề biết được phải đi bằng tào hoả hay xe oto thì phải hoàn thành xong Task kiểm tra khoản cách, dựa vào điều kiện này để xác định hướng đi kế tiếp của quy trình.

**Chú ý:
Có thể các newbie sẽ bị “confused” giữa condition và event, đôi khi ta thấy nó cứ giống giống nhau. Nhưng mục đích dùng của hai cái này là hoàn toàn khác nhau, do đó mục đích dùng Exclusive Gateway hay Event-Driven Gateway cũng sẽ khác nhau.
Condition: thường đơn giản, và nó trả lời cho câu hỏi ở task trước đó. Ví dụ về quê thì về quê bằng máy bay hay về quê bằng tàu lửa? Đơn giản đúng không nào?
Event: còn event thường phức tạp hơn. Các event được gán vào các nhánh sẽ trả lời chi tiết hơn về các thông tin như: thời gian, ai là người làm, làm như thế nào… Hay là trả lời cho câu hỏi: sự việc gì xảy ra?

2.5 Event

Event diễn tả một sự việc xảy ra trong quy trình, thường mang yếu tố bên ngoài. Chứ không phải một việc gì đó được chủ đích làm bởi user (vì nếu vậy thì nó là Activity mất rồi). Event được chia làm 3 giai đoạn:
Mặc dù Event có rất nhiều loại, nhưng không phải lúc cũng sử dụng đủ các loại này hết Và 2 loại Event được dùng nhiều nhất, đó là: Timer Event  Message Event.

2.6 Information Artifact

Và thành phần cuối cùng trong BPMN là Information Artifact – thể hiện một thứ rất quan trọng trong bất kỳ quy trình nào, đó là thông tin, dữ liệu. Bao gồm:
Exit mobile version