「BPStudy#207〜LLMと要件定義」に参加してきました
2024/11/27(水)に開催された「【BPStudy#207〜LLMと要件定義」に参加してきたので、その内容と学んだことを共有したいと思います。
おことわり
この内容は非公式なものであり、自分なりに整理したものです。
本記事には誤りが含まれる可能性があります。
間違っている部分などがあれば、コメントいただけると助かります。<(_ _)>
本イベントについて
LLMを使ったRDRAモデル作成支援を紹介する会でした。
講演メモ
RDRA概要とRDRAモデルについて
RDRAはシステムの全体像をすばやくかつ整合性を保ちながら明確にするモデルベース要件定義手法です。
システム価値(システムを作る目的)~ システム(システムが持つべき情報、状態やビジネスルール)をつなげて表現(RDRAモデル)します。
RDRAモデルは各RDRAレイヤーで表現される要素を組み合わせて、ソフトウェア要件の全体像を表現したものです。
RDRAレイヤーはシステム価値、システム外部環境、システム境界、システムの4つで構成しています。
システムからシステム価値にかけて、whyの依存関係があります。
LLMの活用場所
RDRA公式ページでは、要件定義の進め方として以下の3フェーズを定義しています。
<要件定義の3フェーズ>
【フェーズ1】議論のベースを作る
精度は無視して、RDRAモデルの大枠を作る
【フェーズ2】要件を組み立てる
フェーズ1をベースにRDRAの要素のつながりを利用して、論理的に要件を組み立てる
【フェーズ3】ビジネスルールで仕様化可能にする
条件やバリエーションなどの仕様に直結するビジネスルールで、ユースケースを補完し精度を上げ、仕様化につなげる
その中で【フェーズ1】をLLM(RDRAZeroOne(※1))を使って支援します。
(※1)2025年1月ごろに公開予定
LLMでRDRAモデルを作成する
以下のステップでRDRAモデルを作成します。
【ステップ1】ビジネスアイデアを組み立てる
LLMはプロジェクトの課題も状況も何も知らないため、背景情報を入力し、ビジネスの大枠を出力します。
<入力情報>
システム名
ビジネス背景(かかわっている人、システムや業務全体のルール)
最重要要求(システムで一番実現したいこと)
概要(システムで行うこと)
<出力情報>
アクター
外部システム
ビジネスポリシー
ビジネス全体を通した決まり事
ビジネスパラメータ
多様な状況に対応するための可変性
業務
【ステップ2】ビジネスデザインを組み立てる
ステップ1で出力した情報を確認し、必要に応じて修正します。
ステップ1の入力情報を修正した情報を基に以下を出力します。
<出力情報>
仕事(≒RDRAモデルで言うと、アクティビティ部分)
情報
状態
【ステップ3】システムデザインを組み立てる
ステップ2の出力情報を確認し、再度修正を行います。
そしてステップ1およびステップ2の入力情報と修正した情報を基に以下を出力します。
<出力情報>
条件・バリエーション
情報の分類と関連性
状態の分類と状態遷移
UCと仕事の関連
【ステップ1】~【ステップ3】で出力した情報をRDRAGraphで表現することで、RDRAモデルを確認できます。
このRDRAZeroOneはRDRAモデル作成以外にも要件定義のヒアリング項目としても活用できます。
質疑応答
Q1:LLMが出力された内容から変更すべき点に気づくためのコツはありますか?
RDRAGraphで逆引きする(※2)と気づきやすくなる
単独て浮いているものがあったり、紐付きが明らかに少ないものなど
アクター、外部システム、情報から調べる野も1つ
(※2)RDRA要素から紐づいている要素を確認すること
Q2:RDRAのアンチテーゼは文章のみ?
構造化されてない表形式も含まれる
Q3:資料P.20で、「文脈理解」「ビジネスアイデア」「ビジネスデザイン」「システムデザイン」と4つの階層がありますが、一度「システムデザイン」までLLMで出力した後、「文脈理解」を修正することになった場合は、LLMを全部やりなおして、微修正する、ということを繰り返すのでしょうか。
その通り、前提が変わると、後ろも変わるため、やり直す
そのため、いったん最後までやってみて、何度も洗練していくことをおすすめする
Q4:仕事≒アクティビティのこと?
上記の通り
LLMではアクティビティよりも仕事の方が読み取りがいいので、そっちを使っている
Q5:資料P.32のイテレーションは何回繰り返す?
お客様と1,2回打ち合わせしたら、あとはRDRAシートでやることが多い
Q6:RDRAスプレッドシートにある機能要求や非機能要求はどのタイミングで出てくる?
RDRAZeroOneでは出力されない
メモとして、RDRAスプレッドシートに記録するだけ
先に業務の全体像が固めてから要求を扱った方が効率が良い
Q7:RDRAZeroOneの活用シーンでASISの洗い出しにも活用できると記載してあったが、その部分ももう少し詳細に説明してほしいです。
現存の資料は中途半端なものが多い(とても細かい or とても粗い)
実際に入力する際は推測しながら入力し、残りはLLMとヒアリングで埋めていく
所感
RDRAZeroOneでは出力内容を変更して、その内容を基に段階的に出力することで精度があがる点とツールによって初期情報収集により注力できる(工数を注ぎ込める)点はとても魅力的だなと感じました。
ツールの公開が楽しみです。