Thiết kế hệ thống tương tác với Biểu đồ tuần tự (Sequence Diagram)

Key Note

Tại sao quan trọng dọ?

Biểu đồ tuần tự chỉ đơn giản là tả lại tương tác để xác định các trình tự diễn ra yêu cầu tiếp theo của một nhóm đối tượng nào đó. tức là thứ tự diễn ra các tương tác này.

Chúng tôi cũng có thể sử dụng thuật ngữ sơ đồ sự kiện hoặc kịch bản sự kiện để tham chiếu đến một sơ đồ tuần tự. Biểu đồ trình tự mô tả cách thức và thứ tự của các đối tượng trong một chức năng hệ thống (v).

Các sơ đồ này được sử dụng rộng rãi bởi các nhà kinh doanh và nhà phát triển phần mềm để lập tài liệu và hiểu các yêu cầu đối với các hệ thống mới và hiện có.

Sơ đồ tuần tự (với Draw.io)

image-1653645802694.png

Mã sơ đồ trình tự (với PlantUML)

@startuml
Alice -> Bob: Authentication Request

alt successful case

    Bob -> Alice: Authentication Accepted

else some kind of failure

    Bob -> Alice: Authentication Failure
    group My own label
    Alice -> Log : Log attack start
        loop 1000 times
            Alice -> Bob: DNS Attack
        end
    Alice -> Log : Log attack end
    end

else Another type of failure

   Bob -> Alice: Please repeat

end
@enduml

image-1623333521055.png

Hình ảnh được hiển thị biểu đồ trình tự (với PlantUML)

image-1623333231636.png

with skin

@startuml
!includeurl https://raw.githubusercontent.com/TheIconic/PlantUML-skins/master/src/sequence/sequence.iuml

Alice -> Bob: Authentication Request
.
.
.

@enduml

Bắt đầu kiểm tra sự hiểu bài

Cái gì?

  • Actor

  • Lifeline

  • Frame

  • Message

    • Tin nhắn đồng bộ

    • Tin nhắn không đồng bộ

    • Tạo một tin nhắn

    • Xóa tin nhắn

    • Tin nhắn tự

    • Trả lời tin nhắn

    • Đã tìm thấy tin nhắn

    • Tin nhắn bị mất

  • Guards

  • Control

  • Entity

  • Boundary

Bằng cách nào?

  • Minh họa các kịch bản if-else?

  • Minh họa một trường hợp ngoại lệ?

  • Minh họa một điều kiện phải được thông qua trước khi gọi API (ví dụ: xác thực email)?

  • Thay đổi màu sắc (phong cách) của mọi thứ cho vui

    • với draw.io?

    • với plantUML?

Tài liệu tham khảo

drawio-app.com/create-uml-sequence-diagrams-in-draw-io/

geeksforgeeks.org/unified-modeling-language-uml-sequence-diagrams/

developer.ibm.com/technologies/web-development/articles/the-sequence-diagram

plantuml.com/sequence-diagram