RDRA定義にLLMを使う
エンタープライズ向けの要件定義にLLMを活用し素早く全体像を構築する
RDRAZeroOne:LLMを使ったRDRA定義ツール
あなたはLLMが出力した要件定義に責任をもてますか?
•前提
LLMは会社のこともプロジェクトの課題も状況も何も知らない
•要件定義にLLMを使うときの課題
LLMに状況や要求をどう伝えるか
大量のLLMの出力をどう理解するか
如何に早く要件として決定するか
•RDRAZeroOneの狙い
LLMと人がキャッチボールするために段階的にLLMを利用し詳細化する
LLMでたたき台を作りRDRA(表形式)で要件を組立てる
プロンプトを意識せずに要件に注力する
注意:LLMへのプロンプトにRDRA独自の用語を使うのを避けるために、一部の言葉を変えて使っている
業務:BUC 仕事:アクティビティ 分類:業務/コンテキスト
RDRAZeroOne
LLMを活用しビジネスの背景や概要からRDRA定義のたたき台を生成するツール
LLMを使って何度も壁打ちを行い、システム化対象を深く理解し、素早く要件定義を進めることができます。
LLMで生成したたたき台を元に、より具体的な要件をRDRA定義やRDRA分析ツールを使って精度の高い要件定義にまとめ上げます。
RDRAZeroOne:vsa.co.jp/rdratool/v0.92/zeroone.html
文脈理解:初期の入力
ビジネスアイディア
LLMを実行時に出力がされない、JSONのフォーマットエラーのアラート、LLM実行が止まった時は「Cancel」しLLMの実行をやり直す
文脈理解からLLMの実行
文脈理解を入力とし以下の要素をLLMが出力する
アクター:システムに関係するアクターを出力する
外部システム:システムに関係する外部システムを出力する
ビジネスポリシー:ビジネス全体を通した決まり事を明確にする
ビジネスパラメータ:ビジネス上活用している区分や種別を洗い出す
業務:入力された業務概要から分類された説明付きの業務を出力する
「概要」を2階層で整理して出力するとLLMもその階層を利用する
1階層目の先頭に「・」 2階層目の先頭に「- 」を付ける
⇒入力を使ってLLMの出力を限定する
※「ビジネスの背景」でアクターや外部システムなどを記述すると、LLMに出力が限定される
⇒LLMの反応をよくする
※LLMの反応をよくするためにRDRAの用語とは違う用語を使っている
業務はRDRAのBUCに対応 分類はRDRAの業務に対応
ビジネスデザイン
仕事への分割と関連付け
ビジネスの基本的な骨格を組立てる
仕事と関連の見直しポイント
要求:業務を仕事に分解するための方向性を要求として記述。
仕事:業務内の不要な仕事を削除し、欠けているものは追加する。
操作情報:仕事に関わる情報を見直す
関連アクター:仕事に関わるアクターを見直す
関連外部システム:仕事に関わる外部システムを見直す
ここで業務と仕事を一旦確定する
この段階では要求が思いつかないことも多いので、出力された要求をそのままにしておいてもよい
※この段階ではまだ確かなことは決められないので、明らかに違うものを削除、欠けていると思われるものを追加し、内容の変更を行う。迷っているものは基本的に残していくようにする。
システム化検討
ビジネス上どこをシステム化するかを決める
RDRAに必要な要素を出力する
ビジネスデザインの出力がある程度妥当なものであればシステム化検討のLLMを実行し、RDRAに必要な要素を出力する
システム化検討では、情報、状態モデルを構造化し、条件、バリエーションを洗い出す。そして、仕事にユースケースを結びつけることで、システム化範囲を明らかにする。さらにユースケースに情報、アクター、外部システム、条件を結びつけてシステムが行うことを明らかにする
状態、条件、バリエーションは情報の分類(コンテキスト)に基づいて分類される
※意図したものが出力されない場合は出力結果を修正せずにLLMの再実行を行う
※この段階ではまだ確かなことは決められないので、明らかに違うものを削除、内容の変更を行い、迷っているものは基本的に残していくようにする
要素の見直しポイント
条件:コンテキストを見直し、不要なものを削除する
バリエーション:分類を見直し、個々の項目はRDRA定義の参考にする
情報:分類の見直し、属性、関連(情報、状態モデル)を見直す
状態:分類の見直し、遷移させるユースケースを見直す
ユースケース:不要な業務を削除し分類と業務名(BUCレベル)を見直す
※条件、バリエーションはRDRA上で定義する場合の参考にするために
※この段階の修正はRDRASheet上でも行えるので、グラフィカルに精度を確認するために分類と関連を中心に見直す(グラフィカルに確認するためにはコンテキスト、分類、業務などのグルーピング、ユースケースとの関係が重要になる)
※明らかにLLMの出力が妥当(想定しているものが出力されない)ではない場合は再度LLMを実行する。数回実行して出力されない場合は、後でRDRA定義(Google Sheet)を使って手直しする
LLMの出力を理解する
RDRASheet・RDRAGraphへの出力
ZeroOneではたたき台となるものを素早く作成することが重要
システム検討まで進めるとRDRAGraphやRDRASheetに出力できるようになる
ToRDRA:RDRASheetに移行できるように定義内容をクリップボードにコピー
ToGraph:RDRAGraphを表示
RDRAGraphで内容を確認し、必要なところに戻って再度LLM実行を行う
ある程度の精度になったところでToRDRAでRDRA定義のSpreadSheetで編集を始める
※ZeroOneだけで精度を上げようとしない、ある程度システムスコープの合意ができればRDRASheetを使って要件を組立てる
このようにダイアグラムの構造から違和感を探すことや、個々のアイコンの名前と意味から関りの違和感を把握することで、違和感を使ってLLMの出力の精度を把握する
RDRASheetに移行する
ZeroOneからRDRASheetへ
RDRAZeroOneから
ZeroOneメニューの「To RDRA」を実行すると定義内容がクリップボードにコピーされる
Spreadsheetが表示される
「閲覧のみ」が表示されている場合は編集ができないので「ファイル/コピーを作成」を実行し、編集用に自分用のSpreadsheetを作成する
以後は作成したSpreadsheetを利用する
作成したSpreadsheetの「ZeroOne」シートのA1セルにペーストする
「Import」ボタンを押すとペースト内容を各シートに設定する
※以後はRDRASheet上でRDRA定義を続け、RDRAZeroOneの内容は破棄してもよい
Spreadsheetでの最初の作業
「To RDRA」では適切に処理されないものを適切なものに見直す
画面名を適切な名前にする
画面名は「UC+_画面」となっているので適切な画面名にする
イベント名を適切な名前にする
イベント名は「UC+_イベント」となっているので適切な画面名にする
コンテキスト名は便宜次の名前で分類されている
事前設定、取引関連、リソース管理、人的管理などに分類されている
コンテキストで分類されている以下のモデルのコンテキスト名を見直す
情報、状態モデル、条件、バリエーション
以後はGoogle Spreadsheet上で編集しRDRAGraphを出力し精度を上げる