Slide 1

Slide 1 text

RDRAとLLM 精度の高い要件定義を素早く行うための要件の構造を紹介 LLMを使って素早く枠組みを作る 2024/11/27

Slide 2

Slide 2 text

• ㈱バリューソース • 神崎 善司 • twitter:@zenzengood • RDRA:https://www.rdra.jp/ • 著作 • モデルベース要件定義テクニック • RDRA2.0ハンドブック • 仕事 • RDRA導入支援 • 要件定義支援 • 既存システムの可視化支援 • 好きな事 • システムの可視化 • モデリング • 表形式でのモデリング • LLMの活用 2 https://www.rdra.jp/

Slide 3

Slide 3 text

RDRAとは 網羅的で整合性のある、精度の高い要件を素早く決める手法 3

Slide 4

Slide 4 text

RDRAレイヤー 依存 システム価値 システム外部環境 システム境界 システム Why Why Why アイコン アイコン アイコン アイコン システムに価 値をもたらす 視点 システムの使われ 方を示す視点 システムの入出 力を明らかにす る視点 システム化対 象のビジネス 上の情報と状 態 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

表形式でダイアグラムを再現 分類 アクター 機能要求 説明 機能要求 分類 アクター 非機能要求 説明 検証方法 非機能要求 アクター 外部システム 情報 条件 バリエーション 状態 業務・BUC・アクティビティ・UC 情報 画面 アクター イベント 外部システム 6

Slide 7

Slide 7 text

表形式で構造化する BUC アクティビティ・UCにつながるオブジェクト定義 条件 外部システム アクター 状態モデル アクティビティにアクターが関わる 外部システムが提供する画面を使う システムの画面をアクターが使う システムが外部システムとイベントで連携する UCが情報を操作する 業務フロー アクティビティ ユースケース 業務 BUC 画面 イベント 状態モデル 条件 バリエーション UC タイマー UCが決められた時間に実行する 情報 7 始点 終点 同一行にあるものは関連 しているとみなす 階層構造を表す 階層構造を表す 階層構造を表す

Slide 8

Slide 8 text

RDRA定義を分析する 8 UC_PIVOT 不整合 エラーの意味は コメントを確認

Slide 9

Slide 9 text

LLMでRDRAの枠組みを組立てる エンタープライズ系要件定義 9

Slide 10

Slide 10 text

テーマ 10 あなたはLLMが出力した要 件定義に責任をもてますか

Slide 11

Slide 11 text

前提 11 LLMはプロジェクトの課題 も状況も何も知りません

Slide 12

Slide 12 text

今日のテーマ 12 LLMに状況や要求をどう伝えるか LLMの出力をどう理解するか 要件として如何に早く決定するか

Slide 13

Slide 13 text

RDRAの要件定義は3フェーズで進める(推奨) • LLMに状況や要求をどう伝えるか • 段階的に要求を出し組立てる • LLMの出力をどう理解するか • 3段階で徐々に詳細化する • RDRAGraphで逆引きで確認する • LLMを使って問い合わせる • 要件を如何に早く決定するか • 従来のRDRAで細かい定義を行う • フェーズ2 3 13 フェーズ1 議論のベースを作る LLMを活用する フェーズ2 要件を組立る フェーズ3 ビジネスルールで仕様化可能にする RDRAZeroOne はここを支援

Slide 14

Slide 14 text

3段階で徐々に詳細化RDRAにつなぐ 14 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 行っていること ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC 初期情報を入力 ビジネスの外枠を固める ビジネスの組立 システム化 LLM Run LLM Run LLM Run 文脈整理 ビジネスアイディア ビジネスデザイン システムデザイン 階層的に詳細化する

Slide 15

Slide 15 text

デモ 15 【LLMの実行】 文脈理解からビジネスアイディアを生成 Sample:図書館システム

Slide 16

Slide 16 text

初期入力 16 要件を定義したのであって要件を決めるための Promptの書き方を考えるわけではない

Slide 17

Slide 17 text

文脈理解からスコープを決める 17 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 初期情報を入力 ・LLMに初期の情報を与える ・ビジネスの背景と行っていることの概要を伝える ビジネスの外枠を固める ・一旦スコープを決める ・ アクター ・ 外部システム ・ビジネスポリシー ⇒ビジネス全体を通した決まり事を明確にする ・ビジネスパラメータ ⇒多様な状況に対応するための可変性 ・業務の洗出し LLM Run 入力 出力 LLM

Slide 18

Slide 18 text

出力結果を更新する 18 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 初期情報を入力 ・LLMに初期の情報を与える ・ビジネスの背景と行っていることの概要を伝える ビジネスの外枠を固める ・アクター 外部システムの洗出し ・ビジネスポリシー ⇒ビジネス全体を通した決まり事 ・ビジネスパラメータ ⇒多様な状況に対応するための可変性 ・業務の洗出し LLM Run 要求 不要なものを削除 内容の訂正

Slide 19

Slide 19 text

段階的に要求を入力する 19 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 LLM Run 要求 業務に対する要求を入力する LLMの出力を深堀する 業務を大きく分類しながら、 業務を理解する

Slide 20

Slide 20 text

実行 20 【LLMの実行】 情報・状態・仕事の洗出し

Slide 21

Slide 21 text

文脈と初期スコープから仕事を洗い出す 21 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 初期情報を入力 ・LLMに初期の情報を与える ・ビジネスの背景と行っていることの概要を伝える ビジネスの外枠を固める ・アクター 外部システムの洗出し ・ビジネスポリシー ⇒ビジネス全体を通した決まり事 ・ビジネスパラメータ ⇒多様な状況に対応するための可変性 ・業務の洗出し ビジネスの組立 ・情報・状態の洗出し ・仕事の洗出し LLM Run LLM Run 要求 要求 入力・変更 出力 LLM 入力 変更

Slide 22

Slide 22 text

仕事からユースケースにつなげるための要求 22 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 LLM Run LLM Run 要求 仕事に対する要求を入力する LLMの出力を理解するきっかけとする

Slide 23

Slide 23 text

実行 23 【LLMの実行】 情報・状態・条件・バリエーション ユースケースの生成

Slide 24

Slide 24 text

RDRAに必要な要素にまとめる 24 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC 初期情報を入力 ・LLMに初期の情報を与える ・ビジネスの背景と行っていることの概要を伝える ビジネスの外枠を固める ・アクター 外部システムの洗出し ・ビジネスポリシー ⇒ビジネス全体を通した決まり事 ・ビジネスパラメータ ⇒多様な状況に対応するための可変性 ・業務の洗出し ビジネスの組立 ・情報・状態の洗出し ・仕事の洗出し システム化 ・条件・バリエーションの洗出し ・情報:分類と関連の洗出し ・状態:分類と状態遷移を洗い出す ・仕事にユースケースを結びつける LLM Run LLM Run LLM Run 要求 要求 入力・変更 出力 LLM 入力 変更 変更

Slide 25

Slide 25 text

バリエーション・条件の出力 25

Slide 26

Slide 26 text

情報 状態の精度を上げ ユースケースの出力 26 分類の追加 情報間の関連の追加 状態遷移の追加 分類の追加 ユースケースの追加

Slide 27

Slide 27 text

Prompt構造 【systemPrompt】 #あなたは優秀なビジネスアナリストです あなたの仕事は、あなたの言語生成能力を駆使して、成功するビジネスのための各種定義を生成することです 人間のビジネスアナリストの業務定義力レベルを10とすると、あなたの業務定義力レベルは250です 【アクター】actors 【外シス】exsystems 【情報】infomations 【状態モデル】states 【最重要要求】 【背景知識】 【業務概要】 あ 【ポリシー】plcs 【パラメータ】prms BusinessModelChatUnit 【businessAdvicePrompt】 "# 前提条件¥n" ++ "## システム名:" ++ systemName ++ "¥n" ++ "## 最重要要求:" ++ systemGoal ++ "¥n" ++ "## 背景知識¥n" ++ background ++ "¥n" ++ "## 業務概要¥n" ++ concept ++ "¥n" 【システム名】 BusinesChatUnit 【業務】 ActorChatUnit ExternalSystemChatUnit PolicyChatUnit ParameterChatUnit AttachActExsChatUnit 【業務・要求】business 【初期提案】 BusinessAnalyst 【businessDesignPrompt】 "# 前提条件¥n" ++ "## 最重要要求¥n" ++ systemGoal ++ "¥n" ++ "## 背景知識¥n" ++ businessBackground ++ "¥n" ++ "# システム化対象の業務:最重要要求と前提条件から生成¥n" ++ "## 業務一覧¥n" ++ business ++ "¥n" ++ "## 業務に関わるアクター¥n" ++ actors ++ "¥n" ++ "## 業務に関わる外部システム¥n" ++ exsystems ++ "¥n" ++ "## 対象のビジネスポリシー¥n" ++ plcs ++ "¥n" ++ "## 対象のビジネスパラメータ¥n" ++ prms ++ "¥n" BusinessDesign 【前提条件】 SystemDesign 【SystemDesignPrompt】 "# 前提条件¥n" ++ "## 最重要要求¥n" ++ systemGoal ++ "¥n" ++ "## 背景知識¥n" ++ businessBackground ++ "¥n" ++ "# システム化対象の業務:最重要要求と前提条件から生成¥n" ++ "## 業務と業務毎の仕事¥n" ++ jobs ++ "¥n" ++ "## 業務に関わるアクター¥n" ++ actors ++ "¥n" ++ "## 業務に関わる外部システム¥n" ++ exsystems ++ "¥n" ++ "## 業務に関わる情報¥n" ++ infomations ++ "¥n" ++ "## 業務で管理する状態モデル¥n" ++ states ++ "¥n" ++ "## 見直されたビジネスポリシー¥n" ++ plcs ++ "¥n" ++ "## 見直されたビジネスパラメータ¥n" ++ prms ++ "¥n" 【業務・仕事・関連】jobs InfomationChatUnit StateChatUnit AttachActInfChatUnit PreJobFlowChatUnit 【Pre業務・仕事】 【前提条件】 PreBucUcChatUnit 【Pre業務・仕事・UC】 【情報】 【状態モデル】 InfomationChatUnit StateChatUnit BucAttachChatUnit 【業務・BUC・仕事・UC・関連】 【条件】 ConditionChatUnit VariationChatUnit 【バリエーション】 { bizMdlMsg:prmsBizMdlMsg, bizBasMsg:prmsBizMsg, bizMsg:prmsAtchBizMsg, actMsg:prmsActMsg, exsMsg:prmsExsMsg, plcMsg:prmsPlcMsg, prmMsg:prmsPrmMsg } { jobPreMsg:prmsJobMsg, jobInfMsg:prmsInfMsg, jobSttMsg:prmsSttMsg, jobActExsInfMsg:prmsActExsInfMsg } { preMsg:prmsPreMsg, ucMsg:prmsUcMsg, infMsg:prmsInfMsg, sttMsg:prmsSttMsg, cndMsg:prmsCndMsg, vriMsg:prmsVriMsg, bucAttachMsg:prmsBucFieldMsg } BucUcChatUnit 【業務・BUC・仕事・UC】

Slide 28

Slide 28 text

ZeroOne⇒ Graph ⇒ RDRA 28 文脈理解 システム名 最重要要求 ビジネスの 背景を記述 概要 ビジネスアイディア アクター 外部システム ビジネス ポリシー ビジネス パラメータ 業務 ビジネスデザイン 情報 状態 業務・仕事 システムデザイン 条件 バリエーション 情報 状態 業務・仕事・UC LLM Run LLM Run LLM Run To RDRA To Graph ・表示されたRDRA分析をこぴー保存 ・ZeroOneシートのA1にペースト ・Importボタンを押す ・RDRA定義ファイルが生成される RDRA定義_V0.99β 以後はこのファイ ルで定義を行う フェーズ1 議論のベース を作る フェーズ2 要件を組立る フェーズ3 ビジネスルールで 仕様化可能にする

Slide 29

Slide 29 text

RDRAGraphでLLM出力を理解する 29

Slide 30

Slide 30 text

オブジェクト単位で逆引きする 30 オブジェクト単位 ・アクター ・外部システム ・情報 ・ ダイアグラム単位 ・全体俯瞰 ・重要なユースケース

Slide 31

Slide 31 text

LLMを使って定義内容を問い合わす 31 開発規模を教えて バックログの単位は

Slide 32

Slide 32 text

RDRA分析 RDRA定義 RDRA定義のライフサイクル 32

Slide 33

Slide 33 text

利用スタイル • RDRAを使う場合 • RDRAのたたき台として作成 • お客様との打ち合わせの場で使用 • プロトタイプ作成の前段階で作成 • RDRAを使わない場合 • 要件定義のヒアリング項目の洗出し • ざっくりとシステムイメージを掴む • AsIsの分析 • 想定する業務を壁打ちする 手に入る資料から背景と概要を類推する 33

Slide 34

Slide 34 text

まとめ 34 要件定義を素早く定義するには 要件の構造に従って議論する LLMを使ってたたき台 を素早く作る RdraGraphを使って LLMの出力を理解する 逆引きして理解する RDRAの構造を使って要件を決定する