設計・テスト

PlantUMLでシーケンス図を作成してみた

シーケンス図とは、クラスやオブジェクト間のやりとり(相互作用)を時系列に沿って表現する図で、プログラムの処理の流れを整理し、仕様を視覚的にわかりやすく伝えることができる。

今回は、PlantUMLで、前回ユースケース図を作成した機能の一部である「社員は、毎日の勤務実績を、勤怠管理システムに入力する」という部分についてのシーケンス図を作成してみたので、作成したシーケンス図と元になるPlantUMLのソースコードを共有する。

なお、シーケンス図については、以下のサイトを参照のこと。
https://it-koala.com/sequence_diagram-1775

また、PlantUMLのシーケンス図についてのマニュアルは、以下のサイトを参照のこと。
https://plantuml.com/ja/sequence-diagram



前提条件

下記記事の、VSCode上でPlantUMLを利用するための環境構築が完了していること。

PlantUMLをVSCode上で利用してみたPlantUMLは、VSCode(Visual Studio Code)上で編集するようにすると、ソースコードを色つきで分かりやすく表示...

作成したシーケンス図(1)

エンドユーザー(社員)の目に見える部分に特化して作成したシーケンス図の内容は、以下の通り。
sequence1

また、上記シーケンス図のPlantUMLソースコードの内容は、以下の通り。

@startuml
actor "社員" as actor
participant "勤怠入力\n画面" as screen
participant "勤怠入力\nサービス" as service
participant "勤怠入力\nチェック" as check
database "勤怠DB" as db
actor -> screen : ログイン
activate screen
screen -> service : 勤怠を入力し\n「登録」ボタンを押下
activate service
service -> check : 勤怠入力チェック\n処理呼出
activate check
alt "チェックNG"
check --> service : チェックNG
service --> screen : エラーメッセージを\n画面に表示
else "チェックOK"
check --> service : チェックOK
deactivate check
service -> db : 勤怠情報を\n勤怠DBに登録
activate db
db --> service : 登録完了
deactivate db
service --> screen : 登録完了メッセージを\n画面に表示
deactivate service
end
screen --> actor : ログアウト
deactivate screen
@enduml



フリーランスエンジニアのエージェントは就業中でも無料で登録できるITエンジニアには、フリーランスという働き方がある。 フリーランスとは、会社や団体などに所属せず、仕事に応じて自由に契約する人のこ...

作成したシーケンス図(2)

実際にプログラムを作成する場合の、クラス間での相互作用を明確にしたシーケンス図の内容は、以下の通り。
sequence2

また、上記シーケンス図のPlantUMLソースコードの内容は、以下の通り。

@startuml
actor "社員" as actor
participant "勤怠入力\n画面" as screen
participant "勤怠入力\nController" as controller
participant "勤怠入力\nService" as service
participant "勤怠入力\nCheckUtil" as check
participant "勤怠登録\nMapper" as regist
database "勤怠DB" as db
actor -> screen : ログイン
activate screen
screen -> controller : 勤怠を入力し\n「登録」ボタンを押下
activate controller
controller -> service : 勤怠入力\nService呼出
activate service
service -> check : 勤怠入力\nCheckUtil呼出
activate check
alt "チェックNG"
check --> service : チェックNG
service --> controller : チェックNG
controller --> screen : エラーメッセージを\n画面に表示
else "チェックOK"
check --> service : チェックOK
deactivate check
service -> regist : 勤怠登録\nMapper呼出
activate regist
regist -> db : 勤怠情報を\n勤怠DBに登録
activate db
alt "登録OK"
db --> regist : 登録完了
regist --> service : 登録完了
service --> controller : 登録完了
controller --> screen : 登録完了メッセージを\n画面に表示
else "登録NG"
db --> regist : 登録NG
deactivate db
regist --> service : 登録NG
deactivate regist
service --> controller : 登録NG
deactivate service
controller --> screen : エラーメッセージを\n画面に表示
deactivate controller
end
end
screen --> actor : ログアウト
deactivate screen
@enduml

要点まとめ

  • シーケンス図とは、クラスやオブジェクト間のやりとり(相互作用)を時系列に沿って表現する図で、プログラムの処理の流れを整理し、仕様を視覚的にわかりやすく伝えることができる。
  • PlantUMLを利用すれば、コードベースでシーケンス図を作成できる。