masayuki5160's diary

ソフトウェアエンジニアの雑多ブログ。最近は日常のこといろいろ書いてます。

要求定義におけるLLM活用に関するサーベイ

はじめに

興味があって、というかもうちょっと楽をしたくて、LLMと要求工学周りのことについて今どうなってるかまとめてみる。一旦サーベイ論文読んだ程度のことをまとめるので、もう一踏ん張りは必要そうだけどまあ概観掴むにはこの程度で良いかなと。参照している論文は以下Large Language Models for Software Engineering: Survey and Open Problems。他のサーベイ論文も見ましたが引用数も多かったのでこちらを選択。

 

arxiv.org

 

概要

サーベイ論文なので、要求工学に限らずソフトウェア工学、という文脈でのLLMの活用についてまとめている。勤め先の社内勉強会(輪読会)でざっと読んだけど、要求工学からSREのようなソフトウェア運用よりの話題にテストに関するまで非常に幅広く扱っていた。全部読む必要はないので自分の興味のある領域だけ見るだけでも良いサーベイ論文だと思う。

要求工学とLLM

さて本題。引用先の論文まで読み進めたいけども、一旦取り上げたサーベイ論文のみの話題を扱うことにする(また突っ込んでみる機会があれば追記します)。

マクロな状況(ざっくり説明)

  • 要求工学全体の置かれた状況はRequirements engineering: the state of the practice を読むのが良さそう。引用数もすげー多い。
  • まだまだ研究は少ない様子(サーベイ論文書いてた時点での話)
  • LLMは自然言語を扱うことができるし、要求工学も自然言語を使っているわけなので相性は良さそう、これからの利用が期待できる

個別の研究事例など

Open Problems

  • マクロな状況:他のソフトウェア工学の分野もそうだが、LLMベースの要求工学、というような体系だったものはまだない
  • LLMの利用にがっかりしているPractitionerもいる
  • コード生成は特にLLMの活用というコンテキストで目覚ましい成果を出しているが、要求定義という活動においても成果は期待できる
  • 要求とコード、テストケースなどの開発活動における成果物のつながり(トレーサビリティ)の確認に関する研究はChallenging。

まとめ(というか感想)

掘り下げて読んだ方が良い論文いくつか見つかったので良かった。何度かサーベイ論文中でも出てきたんだけど、LLMと要求定義って自然言語を扱うという意味で相性良いはず、ということだった。まあそうだろうな、と思いつつ、どうプロンプトするかていうのは難しそうな気がする。これはなんでもそうなんかな。モデリング上手くしてインプットにしてあげるのが基本は良さそうだけど、モデリングもなかなか曖昧ではあるから、モデリングを助けてくれるプロンプトなり、モデリングした結果を利用するプロンプトなりそういった方向での活用がいいのかしら。わからん。

一番面白いと思ったのは、Open Problemsで書かれてたLLMを用いたトレーサビリティの話。たしかに要求定義工程における成果物やコード、テストケースをうまくLLMにインプットできるならそれぞれの成果物がつながって、要求に対する成果物がどうか、というのが評価できそうに思った。実際にこういう観点でプロジェクトリードしてるソフトウェアエンジニアって見てると思うし、少なくとも僕もこういう視点でチェックすることはあるから必要だしできそうだと思った。これできたらソフトウェア開発もうちょい楽になりそう。

f:id:masayuki5160:20240526150528j:image

↑我が家の一番難しいステークホルダーを三輪車にのせてコントロールしてる様子