制御された自然言語による検証可能なソースコードドキュメンテーション(Verifiable Source Code Documentation in Controlled Natural Language)

田中専務

拓海先生、最近部下から「コードのドキュメントが足りない」と言われて困っております。時間も人手も足りない中、手間をかけずに信頼できるドキュメントを作れる方法はありますか?

AIメンター拓海

素晴らしい着眼点ですね!大丈夫、一緒にやれば必ずできますよ。結論を先に言うと、制御された自然言語(Controlled Natural Language、CNL)を使って、ドキュメントを機械的に検証できる形にすると、手戻りを減らせますよ。

田中専務

制御された自然言語?聞き慣れません。要するに日本語や英語を制限して使うという意味ですか。現場のエンジニアにそんな新しいことをやらせる余裕があるか心配です。

AIメンター拓海

素晴らしい着眼点ですね!説明すると、制御された自然言語とは言葉の使い方を限定してあいまいさを取り除いた言語です。例えばAttempto Controlled English(ACE)という道具を使うと、エンジニアが書いた文を自動的に矛盾チェックや問い合わせに使えますよ。

田中専務

なるほど。で、投資対効果はどうなりますか。今のやり方で十分だと思っている現場に対して、どれだけ手間を減らせるのか数字で示せますか。

AIメンター拓海

大丈夫、一緒にやれば必ずできますよ。投資対効果を見るポイントは3つです。まず、ドキュメントとコードの不整合によるバグ検出コストの低減。次に、新人の立ち上がり時間短縮。最後に仕様確認のための会議回数削減です。これらは定量化しやすいですよ。

田中専務

それは分かりやすい。現場で書かれるドキュメントはすぐ古くなることが多いのですが、どうやってコードと同期させるのですか。

AIメンター拓海

素晴らしい着眼点ですね!ポイントは作業フローの一体化です。開発環境(IDE)内でコードを書きながら制御言語の文を追記し、その文をリースン(reasoner)やクエリエンジンが自動検査する。変更があれば即フィードバックが出るので放置されにくくなりますよ。

田中専務

それって要するに、ドキュメントを人間のメモから機械が理解できる設計図に変えるということですか?

AIメンター拓海

その通りですよ!素晴らしい着眼点ですね!要点を改めて3つにまとめます。1) 言語を制限して曖昧さを無くすこと、2) 自動検証(reasoner)で矛盾や未定義を検出すること、3) 開発ツールと連携して差分で検出・通知することです。

田中専務

導入の最初の一歩として、何を準備すれば良いですか。現場はクラウドも苦手で、できれば簡単なことから始めたいと言っています。

AIメンター拓海

大丈夫、最初は小さく始められますよ。まずは代表的なモジュール一つを選んで、そこで使われているクラスや役割を制御言語で短い文にまとめる。そして自動検査をかけて出る問題をチームで議論する。これを繰り返せば経験が蓄積しますよ。

田中専務

なるほど。最後に私が会議で説明するための短い一言を教えてください。技術に詳しくない経営陣にも納得してもらいたいのです。

AIメンター拓海

素晴らしい着眼点ですね!一言でいえば、「我々はドキュメントを機械が検査できる設計図に変え、バグ検出と引継ぎ時間を短縮する投資を始めます」です。短く明快で、効果を数値化しやすい表現ですよ。

田中専務

分かりました。では私は、「ドキュメントを機械が検査できる設計図に変えて、バグと教育コストを減らす投資を試行します」と説明してみます。ありがとうございました。

AIBRプレミアム

関連する記事

AI Business Reviewをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む