我水也

われみずなり

ロバストネス図を書いてみる(ユースケース駆動開発)

前回の投稿の続きで、開発フローを紹介しますシリーズです。

matcu.hatenablog.com

今回は、ユースケースをもとに、ロバストネス図を書いてみたいと思います!

前回書いたこのユースケースロバストネス図にします!

TODOを登録する

概要

  • ユーザーがTODOを作成する際に、利用される

アクター

  • ユーザー

事前条件

  • ユーザーは、TODO登録画面を表示していること

メインフロー

  1. システムは、TODO登録画面を表示する
  2. ユーザーは、やること、期限を入力する
  3. ユーザーは、登録ボタンを押す
  4. システムは、TODOを登録する
  5. システムは、登録完了画面を表示する

代替フロー

  • 入力内容に不備がある場合
    • システムは、フローを中断しエラー画面を表示する

ロバストネス図

実際に書いてみると、こんな感じのロバストネス図になります。

f:id:matcu:20200524150949p:plain
robustness

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

ロバストネス図を書くと、処理が少しずつ明確になっていく感じがあります。

ロバストネス図の利点

まだプログラムぽくはないですが、大まかに処理の順序などをレビューすることができ、チーム内で共通の動きを確認できます。
今回はシンプルなので複雑ではないですが、少し複雑なケースではかなり活躍します。
バリデーションや登録のタイミング、不足しているエンティティなどが出てきたりします。

次回はシーケンス図を書いてみたいと思います!