シーケンス図を書いてみる(ユースケース駆動開発)
今回も開発フローを紹介しますシリーズです。
前回(ロバストネス図を書いてみる) matcu.hatenablog.com
今回は、シーケンス図を書いてみたいと思います!
シーケンス図
シーケンス図は、前回のロバストネス図をより登場人物や役割を明確にできます。
TODO登録のシーケンス図はこんな感じになりました。
PlantUMLで書くとこんな感じです。
@startuml sequence actor User boundary TodoCreationScreen control TodoController control TodoModel entity Todo boundary CreationCompletedScreen boundary ErrorScreen User -> TodoCreationScreen : やること、期限を入力する User -> TodoCreationScreen : 登録ボタンを押す TodoCreationScreen -> TodoController : create() TodoController -> TodoModel : new(params) TodoController -> TodoModel : save() TodoModel -> Todo : INSERT break ValidationError TodoModel -->> TodoController : throw ValidationError TodoController -->> ErrorScreen : 表示する end TodoController -> CreationCompletedScreen : 表示する @enduml
ロバストネス図よりも役割が明確になりました。
例えば、この時点で画面側でのバリデーションは不要なのか?などのやりとりができるようになります。
シーケンス図の利点
だいぶプログラムを意識できるようになりました。
ここでの利点としては、それぞれのクラスで必要となる処理が明確になることです。
私のチームでは、メソッドの命名規則や処理のルールなどをこのあたりで規約として決めています。
このあたりまで揃うと、実装時のレビューがかなり楽になってきます。
次回は、クラスモデルを作ってみたいと思います。