Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RDRA3.0を知ろう

 RDRA3.0を知ろう

RDRA3.0ハンドブックを元にここ数年のRDRA関連を知識を発表します

Avatar for 神崎

神崎

May 28, 2025
Tweet

More Decks by 神崎

Other Decks in Technology

Transcript

  1. • ㈱バリューソース • 神崎 善司 • twitter:@zenzengood • RDRA:https://www.rdra.jp/ •

    著作 • モデルベース要件定義テクニック • RDRA2.0ハンドブック • RDRA3.0ハンドブック • 仕事 • RDRA導入支援 • 要件定義支援 • 既存システムの可視化支援 • 好きな事 • システムの可視化 • モデリング • 表形式でのモデリング • LLMの活用 2 https://www.rdra.jp/
  2. RDRAを作った動機 • システム全体を説明できない • 簡単な概要は説明できるが、そこからいきなり個別の機能の話しかできない • 機能中心で業務とシステムが乖離している • 業務の価値とシステムを結びつけられない •

    関係者が共通に話ができる土台がない • 結合テスト時点で認識があっていなかったことが分かる • 停滞するアジャイル開発 • 手戻りばかりで新規の開発が停滞する • 要件を決められない • 要件定義に時間がかかりすぎ、要件が見切り発車になる 3 シス テム 業務 概要 機能 企画 営業 開発 サポート RDRAはこれらを解決 するために考えられた
  3. XXX XXXX XXXXX XXXXX XXXX XXXXX XXXXX XXXXX AAAAA AAAAA

    AAAAA AAAAA AAAAA 日付 タスク 担当者 全体の方向性を検討する時 間もタイミングもない 要求 要件 仕様 実装 上流プロセスの議論 が噛み合わない < ~ 要件 同時並行的に成果物を効 率的に作成 要件と仕様の切り分けの 欠如 文書化よりも動くもので 確認する 全体俯瞰ができず、局 所的な判断になる 背景にある問題 4
  4. RDRAレイヤー システム価値 システム外部環境 システム境界 システム Why Why Why アイコン アイコン

    アイコン アイコン システム化の 価値 システムの使われ方 を示す システムの入出力 を明らかにする システムで管理 する情報、状態、 ビジネスルール 依存 RDRAがフォーカスするのは ⇒ 役に立つシステムを作るためにはどのように要件定義すればいいのか 6
  5. RDRA構成要素 依存 システム価値 システム境界 システム 外部システム 要求 アクター システム外部環境 業務フロー

    アクティ ビティ ユースケース 状態 遷移 Why Why Why 条件 バリエー ション 業務 ビジネス ユースケース 情報 状態モデル 画面 イベント コンテキスト タイマー アクター群 外部システム群 画面 7
  6. システム価値 システム境界 システム 外部システム 要求 アクター システム外部環境 業務フロー アクティ ビティ

    ユースケース(UC) 条件 バリエーション 業務 ビジネス ユースケース (BUC) 情報 状態 遷移 状態モデル 画面 イベント コンテキスト タイマー アクター群 外部システム群 RDRAアイコン説明 8
  7. システム価値 システム境界 システム 外部システム 要求 アクター システム外部環境 業務フロー アクティ ビティ

    ユースケース(UC) 条件 バリエーション 業務 ビジネス ユースケース (BUC) 情報 状態 遷移 状態モデル 画面 イベント コンテキスト タイマー アクター群 外部システム群 システムの価値は 人・組織で決まる システムを使った一塊 の仕事の単位を表す 最重要な要求 を認識する システムと人はUI (画面)でつながる 外部のシステムと 連携を表す ビジネス上識別し ている区分や種別 システムが管理する状態 システムを構成する主要 な関心事を分類する単位 ビジネス上管理 している情報 業務フローの 単位となる 時間区切りを表す 仕事の単位を表現 複数の業務フ ローを分類する 連携する外部 のシステム ビジネスルール を表現する RDRAアイコン説明 10
  8. 非機能要求シート 機能要求シート アクターシート 外部システムシート 情報シート 状態シート BUCシート 画面 イベント タイマー

    バリエーション シート 条件シート 業務 BUC アクティ ビティ UC 情報 条件 条件 状態 モデル バリエー ション 状態モデル UC バリエーション アクター 外部システム アクター 外部システム 情報 バリエーション 状態モデル 参照 参照 非機能要求 機能要求 参照 参照 参照 参照 参照 定義 定義 定義 定義 定義 定義 定義 定義 定義 定義 定義 定義 シート間 の関係 13
  9. 表形式で構造化する BUC アクティビティ・UCにつながるオブジェクト定義 条件 外部システム アクター 状態モデル アクティビティにアクターが関わる 外部システムが提供する画面を使う システムの画面をアクターが使う

    システムが外部システムとイベントで連携する UCが情報を操作する 業務フロー アクティビティ ユースケース 業務 BUC 画面 イベント 状態モデル 条件 バリエーション UC タイマー UCが決められた時間に実行する 情報 14 始点 終点 同一行にあるものは関連 しているとみなす 階層構造を表す 階層構造を表す 階層構造を表す
  10. サンプル https://docs.google.com/spreadsheets/d/1_71mDEJVvbuILjLWQca_QXSsfOnFMkHgdL0cXEQPvrc/edit?usp=sharing https://docs.google.com/spreadsheets/d/1_ 71mDEJVvbuILjLWQca_QXSsfOnFMkHgdL0c XEQPvrc/edit?usp=sharing 上 記 リ ン ク

    を コ ピ ー フ ァ イ ル / コ ピ ー 作 成 自 分 の Google Drive に セ ー ブ 以 下 の シ ー ト を 確 認 ア ク タ ー 外 部 シ ス テ ム 情 報 状 態 BUC 条 件 バ リ エ ー シ ョ ン • 上記リンクをコピー • ファイル/コピー作成 • 自分のGoogle Driveにセーブ • 以下のシートを確認 • アクター • 外部システム • 情報 • 状態 • BUC • 条件 • バリエーション 15
  11. RDRA分析 UC_PIVOT 16 UC_PIVOT 情 報 ア ク タ ー

    外 部 シ ス テ ム 業務/BUC/UC
  12. LLMで図書館システムのRDRAを定義する • 蔵書管理 棚卸 書籍補充 窓口 司書 書店 書架 仮置き棚

    19 図書館 図書館 図書館 図書館 図書館 図書館 図書館 図書館 Webで貸出予約ができる 図書館システム を選ぶ https://vsa.co.jp/rdratool/v0.93/zeroone.html https://vsa.co.jp/rdratool/v0.93/zeroone.html
  13. 以下の図書館システムの入力から ## 背景 市内の全図書館を一括で管理するシステム ### アクター ・図書館職員 ・図書館司書 ・利用者 ・配送担当者

    ### 外部システム ・Amazon ### 要求 ・図書館職員の負担を軽減する方策を講じる ### 制約 ・図書館の図書館職員は少ない ### ビジネスポリシー ・図書貸出の条件がある ・図書館の本を借りるためには事前に会員登録が必要 ・返却は市内の全図書館で行える ・図書館間の蔵書本の移動は専用のトラックが市内の全図書館を巡 回する ・本の貸出・返却は市内の全図書館で行える ・利用者はWebで本を借りるときは受け取る図書館を指定でき、図書 館はその蔵書を該当図書館に届ける ・蔵書本の補充はAmazonで購入する ・司書は半年に1回棚卸を行い、蔵書本の補充を行う ・司書は毎月1回、新刊の補充を行う ・本の返却は図書館の返却ボックスに返却することもできる ## ビジネスパラメータ ・図書館が増えた場合にも簡単に対応できる ・会員管理 - 利用者は市内の図書館で事前に会員登録を行い、会員カードを発行 する ・貸出・返却管理 - 利用社は最寄りの図書館で貸出・返却を行う - 図書館担当者はWebで予約されたものを仮置き棚に置く - 配送担当者は予約された蔵書を受取図書館に蔵書を配送する - 利用者はWebで借りる本を予約できる - 利用者はWebで各図書館の蔵書を確認できる - 図書館での貸し出しには会員カードと借りる本を窓口に提出する - 貸出した蔵書の返却は図書館窓口で受け付ける ・蔵書管理 - 定期的に蔵書を確認し、蔵書本の補充はAmazonで購入する - 定期的に新刊が発刊された場合にも蔵書本の補充を行う - 定期的に傷んだ蔵書は廃棄する 20
  14. LLMと人がキャッチボールを行い要件を組立てる 21 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター

    外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC 初期情報を入力 ・LLMに初期の情報を与える ・ビジネスの背景から行っていることを伝える ビジネスの骨格作成 ・アクター 外部システムの洗出し ・ビジネスポリシー ⇒ビジネス全体を通した決まり事 ・ビジネスパラメータ ⇒多様な状況に対応するための可変性 ・業務の洗出し ビジネスの組立 ・情報・状態の洗出し ・仕事の洗出し システムの組立 ・条件・バリエーションの洗出し ・仕事にユースケースを結びつける LLM Run LLM Run LLM Run ビジネスの概要を入力 LLMの実行 LLMの出力結果 を見直す 何度も壁打ちし、LLMの出力か ら対象の解像度を上げていく
  15. 段階的に要求を入力する 22 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター

    外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC LLM Run LLM Run LLM Run 業務に対する要求を入力する 入力の補助としてLLMにステップ バッククエスチョンを事前に表示 同上
  16. RDRAと繰返し開発立ち位置 • 前提 • RDRAはシステム全体を俯瞰し、可視化する手法なので、 開発対象を明らかにするためにスクラム開発に先立って実 施します • スクラム開発を始めるタイミング •

    要件の精度によって決められます • 案1: • 精度は低いがUCが洗い出された状態 • 小規模あるいは単純なシステムの場合はこの案でも可能 • 大規模あるいは複雑なシステムの場合はスプリントが進む 中でアクターやUCの増減が発生する • 案2: • ある程度の整合がとれたUCが洗い出された状態 • 大規模あるいは複雑なシステムの場合でも、全体を俯瞰し て、中心がどこか、重要なものは何かが理解できる • 案3: • ビジネスルールとなるバリエーションや条件が明らかにさ れ、UCとの関係が明確になった状態 • 情報の関係とUCとの関係が明確になり、システムとして の整合性を • スプリント毎の仕様化の手戻りが最小限にとどめられる RDRA フェーズ1: 議論のベース を作る フェーズ2: 要件を組み立 てる フェーズ3: 仕様化可能に する 開発サイクル 開発サイクル 開発サイクル 案1: 案2: 案3: 企画・要求 要件 仕様 実装 28
  17. Step1 Step2 フェーズ1 フェーズ2 フェーズ3 Step3 Step4 要 件 の

    組 立 Step5 Step6 Step7 Step9 Step8 重要な要求の把握と登場 人物、業務を洗い出す システム境界を把握する 情報モデルを作成する 状態モデルを作成する トップダウンで要件を 組み立てる ボトムアップで 詳細を見直す 条件・バリエーションを 整備する 「BUC」シートを中心に全体を見直す 要素を洗い出す アクター 外部システム 業務 BUC ~ 業務 BUC アクティ ビティ UC ~ ~ 情報 ~ ~ 状態モデル 状態 ~ 業務 BUC アク ティ ビ ティ UC 関連 モデ ル 関連 オブ ジェ クト 関連 モデ ル 関連 オブ ジェ クト アクター群 アクター 外部システム群 外部システム コンテキスト 情報 属性 関連情報 ~ コンテキスト 状態モデル 状態 遷移UC 遷移先状態 コンテキスト バリエーション ~ コンテキスト 条件 ~ 業 務 BUC アクティ ビティ UC 関連モ デル 関連オ ブジェ クト 関連 モデ ル 関連オ ブジェ クト コンテキスト 情報 属性 関連情報 状態モ デル バリエー ション 状態シート 情報シート BUCシート BUCシート アクター シート 外部システム シート 状態シート 情報シート BUCシート アクターシート 外部システムシート バリエーションシート 情報シート BUCシート 業 務 BUC アクティ ビティ UC 関連モ デル 関連オ ブジェ クト 関連 モデ ル 関連オ ブジェ クト 条件 コンテキスト バリエーション 値 ~ コンテキスト 条件 条件の説明 バリエー ション 状態モ デル 条件シート フェーズ 毎の定義 イメージ 29
  18. ZeroOne⇒ Graph ⇒ RDRA 30 文脈理解 システム名 最重要要求 ビジネスの 背景を記述

    概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC LLM Run LLM Run LLM Run To RDRA To Graph メニュー ・データ/関連データ取込を選択 ・テキストエリア内にペースト ・取込ボタンを押す ・表示されたRDRA分析をこぴー保存 ・ZeroOneシートのA1にペースト ・Importボタンを押す ・RDRA定義ファイルが生成される 3.RDRA分析_Vxx 以後はこのファイ ルで定義を行う Step1: 出発点を明ら かにする Step2: スコープの把握 Step3: 扱う情報の明示 Step4: 管理する状態の 明示 Step9: 条件とバリエーションの要 素を洗い出す Step5: トップダウンで要件を 組み立てる Step6: 情報・状態を使って 見直す Step8: 条件の軸となるバリエー ションを洗い出す Step7: UCにつながる条件 を洗い出す フェーズ1 議論のベースを 作る フェーズ2 要件を組立る フェーズ3 ビジネスルールで仕様化 可能にする 状況判断 ゴール設 定
  19. 可視化の手順 B.業務・BUCの整理 E.情報の整理 業務 業務 業務 業務 BUC BUC BUC

    BUC BUC BUC BUC BUC UC UC UC UC UC UC UC UC UC UC UC UC UC C.入出力の整理 D.UCの整理 UC UC 情報 情報 情報 情報 情報 画面・イベントを整 理し、UCを導出する データモデル、DB スキーマなどから 情報を導出する A B C D A.登場人物の整理 E 画面 イベント 可視化手順 32
  20. 業務フローとは何か • 現場担当者は業務フローに従って仕事をしているわけではない • 関係者間で対象の業務について共通の認識が得られればいい 役割 組織 仕事 役割 組織

    仕事 役割 組織 仕事 役割 組織 仕事 役割 組織 仕事 業務フロー_A 業務フロー_B 業務フロー_C 役割 組織 仕事 各アクターは、所属する組織の役割に 応じた仕事をしているので、組織を横 断した業務フローを認識していない 33
  21. 入出力からUCをまと求める • 入出力が一番信頼性が高い資料になる • 画面:今使っているもの • イベント:外部とのインターフェース • 入出力をまとめて処理単位を求め、ユースケースとする UC

    画面 説明 UC イベント 説明 画面一覧 イベント一覧 洗い出した画面 をリストアップ 洗い出したイベント をリストアップ 業務 BUC アクティビティ UC 関連モデル1 関連オブジェクト1 関連モデル2 関連オブジェクト2 画面 アクター イベント 外部システム 洗い出したUCをアクティ ビティに結びつける 画面を分類し UCを類推する イベントを分類 しUCを類推する 画面一覧とイベント一覧からUC に紐づけて画面、イベントを追記 画面を操作するアクター、イベント で連携する外部システムを追記する 34
  22. 知識継承の促進 シニア 若手 既存システムの RDRA作成を通し て知識を継承する 既存システムの可視化 プロジェクトスコープの明確化 ビジネス領域 システム

    要求 新システムの可視化 ビジネス領域 システム 既存ビジネスとシステ ムに要求を加味してス コープを決める 今はこうなっている ToBeの要求はこうだ だからToBeはこうする 更新プロジェクト • 今はこうなっている • ToBeの要求はこうだ • だからToBeはこうする • AsIsの可視化はシニアから若手への知識トランスファーに使う 35
  23. まとめ RDRAは何を変えるのか 36 物事のつながり で詳細を語る 成果物作成より も合意を重視 一覧と詳細 ユース ケース

    画面 情報 イベント 物事の関係性を語る 一人で考え一人で作成 一つ一つを完成させる 徐々に洗練化する 成果物ではなく 要件を組立てる 構造が要件を組 み立てる 文書で意味を伝える 関係で意味を伝える みんなで考えその場で作成 What Why 文書では関わり が分かりづらい 粒度の細か い定義 粒度の細 かい定義 粒度の 粗い 定義 Xx x Xx x Xx x Xx x Xx x Xx x 詳細化を目指す 次工程で扱い やすくする 要件を決める仕組み がない 要件を決める仕組 みがある 依存 レイヤー 依存関係が要件 を決める 粒度を揃え る