Mức đích xây dựng biểu đồ tuần tự

Biểu đồ tuần tự minh họa các đối tượng tương tác với nhau ra sao. Chúng tập trung vào các chuỗi thông điệp, có nghĩa là các thông điệp được gửi và nhận giữa một loạt các đối tượng như thế nào. Biểu đồ tuần tự có hai trục: trục nằm dọc chỉ thời gian, trục nằm ngang chỉ ra một tập hợp các đối tượng. Một biểu đồ tuần tự cũng nêu bật sự tương tác trong một cảnh kịch [scenario] – một sự tương tác sẽ xảy ra tại một thời điểm nào đó trong quá trình thực thi của hệ thống.

Từ các hình chữ nhật biểu diễn đối tượng có các đường gạch rời [dashed line] thẳng đứng biểu thị đường đời đối tượng, tức là sự tồn tại của đối tượng trong chuỗi tương tác. Trong khoảng thời gian này, đối tượng được thực thể hóa, sẵn sàng để gửi và nhận thông điệp. Quá trình giao tiếp giữa các đối tượng được thể hiện bằng các đường thẳng thông điệp nằm ngang nối các đường đời đối tượng. Mỗi tên ở đầu đường thẳng sẽ chỉ ra loại thông điệp này mang tính đồng bộ, không đồng bộ hay đơn giản. Để đọc biểu đồ tuần tự, hãy bắt đầu từ phía bên trên của biểu đồ rồi chạy dọc xuống và quan sát sự trao đổi thông điệp giữa các đối tượng xảy ra dọc theo tiến trình thời gian.

Ví dụ hãy quan sát một cảnh kịch rút tiền mặt tại một máy ATM của một nhà băng lẻ:

Hình 6.4- Biểu đồ cảnh kịch rút tiền mặt tại máy ATM

Biểu đồ trên có thể được diễn giải theo trình tự thời gian như sau:

- Có ba lớp tham gia cảnh kịch này: khách hàng, máy ATM và tài khoản.

- Khách hàng đưa yêu cầu rút tiền vào máy ATM

- Đối tượng máy ATM yêu cầu khách hàng cung cấp mã số

- Mã số được gửi cho hệ thống để kiểm tra tài khoản

- Đối tượng tài khoản kiểm tra mã số và báo kết quả kiểm tra đến cho ATM

- ATM gửi kết quả kiểm tra này đến khách hàng

- Khách hàng nhập số tiền cần rút.

- ATM gửi số tiền cần rút đến cho tài khoản

- Đối tượng tài khoản trừ số tiền đó vào mức tiền trong tài khoản. Tại thời điểm này, chúng ta thấy có một mũi tên quay trở lại chỉ vào đối tượng tài khoản. Ý nghĩa của nó là đối tượng tài khoản xử lý yêu cầu này trong nội bộ đối tượng và không gửi sự kiện đó ra ngoài.

- Đối tượng tài khoản trả về mức tiền mới trong tài khoản cho máy ATM.

- Đối tượng ATM trả về mức tiền mới trong tài khoản cho khách hàng và dĩ nhiên, cả lượng tiền khách hàng đã yêu cầu được rút.

Đối tượng tài khoản chỉ bắt đầu được sinh ra khi đối tượng ATM cần tới nó để kiểm tra mã số và đối tượng tài khoản tiếp tục sống cho tới khi giao dịch được hoàn tất. Sau đó, nó chết đi. Bởi khách hàng có thể muốn tiếp tục thực hiện các giao dịch khác nên đối tượng khách hàng và đối tượng máy ATM vẫn tiếp tục tồn tại, điều này được chỉ ra qua việc các đường đời đối tượng được kéo vượt quá đường thẳng thể hiện sự kiện cuối cùng trong chuỗi tương tác.

Loại tương tác này là rất hữu dụng trong một hệ thống có một số lượng nhỏ các đối tượng với một số lượng lớn các sự kiện xảy ra giữa chúng. Mặc dù vậy, khi số lượng các đối tượng trong một hệ thống tăng lên thì mô hình này sẽ không còn mấy thích hợp.

Để có thể vẽ biểu đồ tuần tự, đầu tiên hãy xác định các đối tượng liên quan và thể hiện các sự kiện xảy ra giữa chúng.

Khi vẽ biểu đồ tuần tự, cần chú ý:

- Sự kiện được biểu diễn bằng các đường thẳng nằm ngang.

- Đối tượng bằng các đường nằm dọc.

- Thời gian được thể hiện bằng đường thẳng nằm dọc bắt đầu từ trên biểu đồ. Điều đó có nghĩa là các sự kiện cần phải được thể hiện theo đúng thứ tự mà chúng xảy ra, vẽ từ trên xuống dưới.

Trong bài trước chúng ta đã biết cách sử dụng Activity Diagram để phân tích nghiệp vụ của hệ thống. Trong bài này chúng ta sẽ sử dụng Sequence để thiết kế chi tiết chức năng cho hệ thống.

Sequence Diagarm là bản vẽ mô tả sự tương tác của các đối tượng để tạo nên các chức năng của hệ thống. Bản vẽ này mô tả sự tương tác theo thời gian nên rất phù hợp với việc sử dụng để thiết kế và cài đặt chức năng cho hệ thống phần mềm.
Chúng ta hãy xem một ví dụ Sequence Diagram.

Hình 1. Ví dụ Sequence Diagram cho hoạt động rút tiền ở ATM

1. Các thành phần của Sequence Diagram

a. Objects

Object mô tả một đối tượng trong hệ thống.  Để phân biệt với Class, Object có dấu “:” phía trước tên của nó.

Hình 2. Ký hiệu về đối tượng trong bản vẽ sequence Diagram

Đường gạch chấm bên dưới đối tượng thể hiện thời gian sống của đối tượng.

 b. Stimulus [message]

Stimulus thể hiện thông điệp từ một đối tượng này tương tác với một đối tượng khác.

Hình 3. Ký hiệu về Stimulus trong bản vẽ Sequence Diagram

 c. Axes

Trục tọa độ, trục ngang thể hiện các đối tượng, trục đứng thể hiện thời gian.

Chúng ta, dễ dàng nhận thấy các đối tượng tương tác với nhau theo tuần tự các bước để hình thành nên chức năng của hệ thống.

2. Xây dựng Sequence Diagram

Để xây dựng Sequence Diagram chúng ta thực hiện các bước sau:

Bước 1: Xác định chức năng cần thiết kế. Bạn dựa vào Use Case Diagram để xác định xem chức năng nào cần thiết kế.

Bước 2:  Dựa vào Activity Diagram để xác định các bước thực hiện theo nghiệp vụ.

Bước 3: Đối chiếu với Class Diagram để xác định lớp trong hệ thống tham gia vào nghiệp vụ.

Bước 4: Vẽ Sequence Diagarm

Bước 5: Cập nhật lại bản vẽ Class Diagram

3. Ứng dụng Sequence Diagram

–          Thiết kế các chức năng

–          Kiểm chứng và bổ sung method cho các Class

–          Sử dụng trong việc coding các chức năng

4. Kết luận

Chúng ta vừa tìm hiểu xong bản vẽ Sequence Diagram, bản vẽ này giúp thiết kế các chức năng cho hệ thống cũng như kiểm chứng các bản vẽ trước đây như Class Diagram, Activity Diagram v.v…

Chúng ta sẽ tiếp tục bàn về thực hành xây dựng bản vẽ này cho ứng dụng ecommerce trong bài tiếp theo. Mời các bạn đọc tiếp.

Bài tiếp: Thực hành xây dựng bản vẽ Sequence Diagram

Bài trước: Bản vẽ Activity Diagarm

1.Biểu đồ tuần tự [Sequence Diagram]

1.1. Giới thiệu biểu đồ tuần tự

Biểu đồ tuần tự là biểu đồ dùng để xác định các trình tự diễn ra sự kiện của một nhóm đối tượng nào đó. Nó miêu tả chi tiết các thông điệp được gửi và nhận giữa các đối tượng đồng thời cũng chú trọng đến việc trình tự về mặt thời gian gửi và nhận các thông điệp đó.

1.2 Các thành phần của biểu đồ tuần tự

  • Đối tượng [object or class]: biểu diễn bằng các hình chữ nhật

  • Đường đời đối tượng [Lifelines]: biểu diễn bằng các đường gạch rời thẳng đứng bên dưới các đối tượng

  • Thông điệp [Message]: biểu diễn bằng các đường mũi tên

Thông điệp được dùng để giao tiếp giữa các đối tượng và lớp. Có nhiều loại thông điệp được định nghĩa ở phần 1.3

  • Xử lí bên trong đối tượng [biểu diễn bằng các đoạn hình chữ nhật rỗng nối với các đường đời đối tượng]

1.3 Các loại thông điệp trong biểu đồ tuần tự

  • Thông điệp đồng bộ [Synchronous Message]

Thông điệp đồng bộ cần có một request trước hành động tiếp theo.

  • Thông điệp không đồng bộ [Asynchronous Message]

Thông điệp không đồng bộ không cần có một request trước hành động tiếp theo.

  • Thông điệp chính mình [Self Message]

Là thông điệp mà đối tượng gửi cho chính nó để thực hiện các hàm nội tại.

  • Thông điệp trả lời hoặc trả về [Reply or Return Message]

Là thông điệp trả lời lại khi có request hoặc sau khi kiểm tra tính đúng đắn của một điều kiện nào đó. Ví dụ thông điệp loại này như tin nhắn trả về là success hoặc fail

  • Thông điệp tạo mới [Create Message]

Là thông điệp được trả về khi tạo mới một đối tượng.

  • Thông điệp xóa [Delete Message] Là thông điệp được trả về khi xóa một đối tượng.

1.4 Ví dụ

  • VD1: Sơ đồ tuần tự của chức năng đăng nhập.Xem xét đối tượng tài khoản sau đây

Trong sơ đồ trên có 3 đối tượng là : người dùng, hệ thống và tài khoản. Luồng xử lí của chức năng đăng nhập có thể diễn giải như sau.

  1. Người dùng gửi yêu cầu đăng nhập đến hệ thống.

  2. Hệ thống yêu cầu người dùng nhập email và mật khẩu.

  3. Người dùng nhập email và mật khẩu.

  4. Hệ thống gửi email và mật khẩu của người dùng để kiểm tra.

  5. Tài khỏan kiểm tra thông tin email và password có đúng hay không.

  6. Tài khoản trả về kết qủa kiểm tra cho hệ thống.

  7. Hệ thống trả về thông báo cho người dùng.

2.Biểu đồ trạng thái [State Diagram]

2.1. Giới thiệu về biểu đồ trạng thái

Biểu đồ trạng thái là dạng biểu đồ mô tả các trạng thái có thể có và sự chuyển đổi giữa các trạng thái đó khi có các sự kiện tác động của một đối tượng.

Đối với các đối tượng có nhiều trạng thái thì biểu đồ trạng thái là sự lựa chọn tốt nhất giúp chúng ta có thể hiểu rõ hơn về hệ thống.

2.2. Các thành phần của biểu đồ trạng thái

  • Trạng thái bắt đầu: [Initial State]

  • Trạng thái kết thúc: [Final State]

Trong biểu đồ, đường mũi tên chỉ ra sự biến đổi từ một trạng thái sang trạng thái khác.

  • Sự kiện [Event] hoặc Chuyển đổi [Transition]

  • Trạng thái đối tượng [State]

2.3.Ví dụ

Biểu đồ trạng thái thể hiện lớp Sach trong một hệ thống quản lí thư viện điện tử:

Biểu đồ trạng thái của lớp Sach trên có thể diễn tả lại như sau: Biểu đồ có 5 trạng thái thái chính là sẵn sàng cho mượn, đã có người mượn, hết hạn lưu hành, đã mượn, mất. và hai trạng thái phụ là trạng thái khởi tạo và trạng thái kết thúc.

  1. Sách khởi tạo ở trạng thái "sẵn sàng cho mượn" .

  2. Sách chuyển từ trạng thái "sẵn sàng cho mượn" sang trạng thái "Đã mượn" khi có người mượn sách.

  3. Sách chuyển từ trạng thái "sẵn sàng cho mượn" sang trạng thái "Hết hạn lưu hành" khi có quyết định hết hạn lưu hành.

  4. Sách "đã có người mượn" chuyển sang trạng thái "Hết hạn lưu hành" khi có quyết định hết hạn lưu hành.

  5. Sách chuyển từ trạng thái "hết hạn lưu hành" sang trạng thái "lưu trữ" khi có quyết định lưu trữ .

  6. Sách chuyển từ trạng thái "đã có người mượn" sang trạng thái "mất" khi làm mất.

  7. Sách chuyển từ trạng thái "đã có người mượn" sang trạng thái "sẵn sàng cho mượn" khi trả sách.

3. Biểu đồ hoạt động [Activity Diagram]

3.1. Giới thiệu biểu đồ hoạt động

Biểu đồ hoạt động là biểu đồ mô tả các bước thực hiện, các hành động, các nút quyết định và điều kiện rẽ nhánh để điều khiển luồng thực hiện của hệ thống. Đối với những luồng thực thi có nhiều tiến trình chạy song song thì biểu đồ hoạt động là sự lựa chọn tối ưu cho việc thể hiện. Biểu đồ hoạt động khá giống với biểu đồ trạng thái ở tập các kí hiệu nên rất dễ gây nhầm lẫn. Khi vẽ chúng ta cần phải xác định rõ điểm khác nhau giữa hai dạng biểu đồ này là biểu đồ hoạt động tập trung mô tả các hoạt động và kết qủa thu được từ việc thay đổi trạng thái của đối tượng còn biểu đồ trạng thái chỉ mô tả tập tất cả các trạng thái của một đối tượng và những sự kiện dẫn tới sự thay đổi qua lại giữa các trạng thái đó.

3.2 Các thành phần của biểu đồ hoạt động

  • Trạng thái khởi tạo hoặc điểm bắt đầu [Initial State or Start Point]

  • Hoạt động hoặc trạng thái hoạt động [Activity or Action State]

Hoạt động và sự chuyển đổi hoạt động được ký hiệu và cách sử dụng hoàn toàn giống như trạng thái trong biểu đồ trạng thái đã nêu ở trên.

  • Nút quyết định và rẽ nhánh

Nút rẽ nhánh trong biểu đồ hoạt động được kí hiệu bằng hình thoi màu trắng.

  • Thanh tương tranh hay thanh đồng bộ

Có thể có nhiều luồng hành động được bắt đầu thực hiện hay kết thúc đồng thời trong hệ thống.

Thanh đồng bộ kết hợp:

Thanh đồng bộ chia nhánh:

  • Cạnh gián đoạn [Interrupting Edge]

  • Luồng hoạt động [Action Folow]

Phân làn trong biểu đồ sử dụng là những đường nét đứt thẳng đứng theo các đối tượng. Phần kí hiệu này thường được sử dụng để làm rõ luồng hoạt động của các đối tượng riêng biệt.

  • Thời gian sự kiện [Time Event]

  • Gửi và nhận tín hiệu [Sent and Received Signals]

  • Trạng thái kết thúc hoặc điểm cuối [Final State or End Point]

3.3 Ví dụ

  • VD1:Biểu đồ hoạt động rút tiền tại cây ATM:

Như trên hình vẽ ta thấy có ba hoạt động cùng diễn ra là xác nhận thẻ, xác nhận mã số PIN và xác nhận số tiền rút.Chỉ khi sử dụng biểu đồ hoạt động mới có thể miêu tả được các hoạt động song song như vậy.

  • VD2: Thêm một ví dụ nữa để chúng ta hiểu hơn về biểu đồ hoạt động với các hành động được phân làn.

Biểu đồ hoạt động thể hiện một qúa trình đặt hàng.

4.Lời kết và tài liệu tham khảo

Như vậy tôi đã giới thiệu xong với các bạn 5 dạng biểu đồ cơ bản rất hay được sử dụng trong các tài liệu phân tích thiết kế hệ thống thông tin lớn:

  • Biểu đồ ca sử dụng [Usecase Diagram]

  • Biểu đồ lớp [Class Diagram]

  • Biểu đồ tuần tự [Sequence Diagram]

  • Biểu đồ trạng thái [State Diagram]

  • Biểu đồ hoạt động [Activity Diagram]

Những tài liệu này rất quan trọng và là một quy chuẩn chung cho tất cả các lập trình viên và nhà phát triển hệ thống. Nó giúp cho công việc mô tả các hệ thống lớn trong qúa trình phát triển và bảo trì sau này một cách chuyên nghiệp.

Các bạn có thể xem các qui định chuẩn trong thiết kế biểu đồ UML tại đây:

//www.tutorialspoint.com/uml/uml_standard_diagrams.htm

//www.smartdraw.com/uml-diagram/

//www.holub.com/goodies/uml/

Hẹn gặp lại các bạn trong bài viết tiếp theo!

-- Hoàng Văn Trình AS Việt Nhật K55 Đại học Bách Khoa Hà Nội

Video liên quan

Chủ Đề