UML: Sequence diagram¶
Inleiding¶
De Unified Modelling Language(UML) heeft twee categorien voor diagrammen. Een categorie voor de structuur van je applicatie te modelleren (ontwerpen) en een categorie om het gedrag te modelleren (ontwerpen). Op deze pagina kijken we naar het Sequence Diagram om het gedrag te modelleren. Je kan dit diagram ook goed gebruiken om een code base te bestuderen en analyseren door deze te ‘reverse engineering’.
Knowledgebase - Mermaid diagrams voor o.a. UML
Mermaid - Sequence diagram syntax
Voorbeeld #1: Generiek¶
%% Example of sequence diagram generic
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a **daisy**
end
opt Extra response
Bob->>Alice: Thanks for asking
end
Voorbeeld #2: Networking Server side¶
%% Example of sequence diagram server side
sequenceDiagram
Server-)+App: listen
App-)-SocketConnectionListener: initializeServer
rect rgba(200,200,200,0.16)
SocketConnectionListener->>+SocketConnectionListener: handleSocketSession
SocketConnectionListener->>RoomMessageHandler: enterRoom <player>
RoomMessageHandler->>SocketIO: join <room>
SocketConnectionListener->>SocketConnectionListener: emitPlayerStateChangeToAllPlayersInRoom
SocketConnectionListener->>+RoomMessageHandler: emitPlayerStateChangeToAllPlayersInRoom
RoomMessageHandler->>SocketConnectionListener: getPlayerById
RoomMessageHandler->>-SocketIO: emit <message>
SocketConnectionListener->>-SocketIO: emit <session est>
end
rect rgba(200,200,200,0.16)
SocketConnectionListener-)+SocketConnectionListener: handleIncomingConnections
SocketConnectionListener->>-SocketIO: on connection
SocketIO->>+SocketConnectionListener: <Inline anon function>
SocketConnectionListener->>socket: join
SocketConnectionListener->>SocketConnectionListener: storeSession
SocketConnectionListener->>SocketConnectionListener: handleDisconnect
SocketConnectionListener->>+RoomMessageHandler: handleIncomingMessages
RoomMessageHandler->>RoomMessageHandler: handleIncomingCreateRoomMessages
RoomMessageHandler->>RoomMessageHandler: handleIncomingEnterRoomMessages
RoomMessageHandler->>RoomMessageHandler: handleIncomingLeaveRoomMessages
RoomMessageHandler->>RoomMessageHandler: handleIncomingGetActiveRoomsMessages
RoomMessageHandler->>-RoomMessageHandler: handleIncomingGetActivePlayersInRoomMessages
SocketConnectionListener->>-socket: emit <session> <user>
end
Voorbeeld #3: Networking Client side¶
%% Example of sequence diagram client side
sequenceDiagram
LobbyJoinOrCreateState->>SocketClient: SubscribeToDataPacket
SocketClient->>SocketIOClientClass: EmitAsync
SocketIOClientClass->>ITransport: SendAsync
Last update:
March 12, 2024