ロバストネス図を書いてみる(ユースケース駆動開発)
前回の投稿の続きで、開発フローを紹介しますシリーズです。
今回は、ユースケースをもとに、ロバストネス図を書いてみたいと思います!
TODOを登録する
概要
- ユーザーがTODOを作成する際に、利用される
アクター
- ユーザー
事前条件
- ユーザーは、TODO登録画面を表示していること
メインフロー
- システムは、TODO登録画面を表示する
- ユーザーは、やること、期限を入力する
- ユーザーは、登録ボタンを押す
- システムは、TODOを登録する
- システムは、登録完了画面を表示する
代替フロー
- 入力内容に不備がある場合
- システムは、フローを中断しエラー画面を表示する
ロバストネス図
実際に書いてみると、こんな感じのロバストネス図になります。
PlantUMLで書くとこんな感じです。
@startuml robustness usecase "TODOを登録する" ' Actors actor "ユーザー" as User ' Boundaries boundary "TODO登録画面" as TodoCreationScreen boundary "登録完了画面" as CreationCompletedScreen boundary "エラー画面" as ErrorScreen ' Controls control "TODO登録画面を表示する" as ShowTodoCreationScreen control "やること、期限を入力する" as InputParameters control "入力値を検証する" as ValidateParameters control "TODOを登録する" as CreateTodo control "登録完了画面を表示する" as ShowCreationCompletedScreen control "エラー画面を表示する" as ShowErrorScreen ' Entities entity "TODO" as Todo ' MainFlow ShowTodoCreationScreen -> TodoCreationScreen TodoCreationScreen - InputParameters InputParameters -> ValidateParameters : 登録ボタンを押す ValidateParameters -> CreateTodo CreateTodo -> ShowCreationCompletedScreen ShowCreationCompletedScreen -> CreationCompletedScreen ' AltFlow ValidateParameters -> ShowErrorScreen : 入力値に不備がある場合 ShowErrorScreen -> ErrorScreen ' Actor - Boundary User - TodoCreationScreen User - CreationCompletedScreen User - ErrorScreen ' Control - Entity CreateTodo - Todo @enduml
ロバストネス図を書くと、処理が少しずつ明確になっていく感じがあります。
ロバストネス図の利点
まだプログラムぽくはないですが、大まかに処理の順序などをレビューすることができ、チーム内で共通の動きを確認できます。
今回はシンプルなので複雑ではないですが、少し複雑なケースではかなり活躍します。
バリデーションや登録のタイミング、不足しているエンティティなどが出てきたりします。
次回はシーケンス図を書いてみたいと思います!