2023/12/01
by 藤坂 繁保、菱木 竜也、吉見 隆洋
近年、アプリケーション開発における生成AIの活用に大きな注目が集まっています。DXCテクノロジー・ジャパン(以下、DXC)でも、生成AIを活用した品質と生産性の向上に向けた具体的な取り組みを国内で進めています。一例として、あるお客様と実施したアプリケーション開発における生成AI活用のPoC(概念実証)の内容を中心に紹介します。
ChatGPTを活用したアプリケーション開発の効果と可能性を検証する
DXCは、2022年11月に発表されたChatGPTをはじめとする生成AIの技術的革新性にいち早く注目し、アプリケーション開発や運用・保守における品質・コスト・納期(QCD)を抜本的に向上させる施策として、グローバルに先駆けて日本にて活用方法を評価・検証してきました。実際の開発プロジェクトにおける有用性が何よりも重要と考え、お客様とのPoCを行いました。
PoCでは、具体的な生成AI技術として、ChatGPT4を含むMicrosoftのAzure AI サービスを活用し、効果を検証しました。目標とするQCDの改善には、生成AIを用いたシステム開発に必要なプロセスを検証し、管理方法や実施技術を再定義する必要もありました。
3つのテーマでのPoCと成果
PoCでは、以下の3つのテーマを取り上げました。
1. 生成AIを利用したレガシープログラムの解析
既存のレガシーアプリケーションプログラムを、生成AIを利用して解析し構造や機能を明らかにする。
2. 生成AIをベースとしたモダンアプリケーション開発プロセスの確立
アプリケーションの新規開発に生成AIを活用することで、開発プロセスの効率化を図る。
3. 生成AIにおける企業内データの活用(ソースコード、設計書など)
企業に蓄積されているソースコードや設計書を取り込んだ生成AIを活用し、より高度な開発手法を目指す。
テーマに対して、DXCではAzure Open AIを含むAzure AIサービスを基に開発したシステムを利用しています。企業内データの登録や入力プロンプトの編集、テキストの生成や生成結果の反映など、さまざまな機能を提供しており、Azure OpenAI Service(およびChatGPT)の課題や制約に対して独自の仕組みにより解決を図っています。我々はこれを「DXC J Chat」と呼んでいます。
PoCなどからのフィードバックで、アプリケーション開発における効果的な生成AI活用の具体的なユースケースがより鮮明になっています。
・プログラムコードを解析し、設計書などのドキュメントを生成
・詳細設計書からプログラムコードを生成
・プログラムコードからテスト方針に基づいた、テスト項目・テストコードを生成
他にも、エラーが発生したプログラムコードに関して、エラーの理由や原因を生成AIに説明させ修正方法を提示すること、コードをリファクタリングすること、既存のコードから別のプログラムコードを生成すること、などが可能であることを確認しました。
生成AI活用の課題とその対応策
ChatGPTの活用にはさまざまな制約もあります。PoCを通してDXCでは解決方法も検討しています。
入出力がテキスト形式のみであること、最大トークン数が約3万2千であるということといった代表的な制約の他、出力の過程がブラックボックス化していることなどもあげられます。出力結果をパラメータでほぼ固定にできる一方、プロンプトのわずかな修正で大きな違いが生じます。完全に制御できないといった不透明性や、最大トークン以内であっても省略や要約化が発生してしまうことによる精度と完全性なども課題です。
そこで、分析の過程においてソースコードのクレンジングや処理の分割を行い、入力制約や精度と完全性の問題に対応しています。テキスト形式の限定に関する入力制約については、文字や表をHTML形式で入出力できるようにしました。また、図についてもスクリプト形式で入出力するようにしたことで対応可能としています。さらに、結果表示フレームワーク(Webサイト)を作成し、解析結果や設計書も管理できるようにしました。
出力の過程がブラックボックス化してしまう不透明性に対しては、「固定部」、「可変部」からなる「プロンプトテンプレート」を作成することなどにより、一律の出力結果が得られるような工夫を実施しています。
もう1つPoCで大きな課題となったのが、生成AIが自社固有の企業内データを理解するためのプロセスの確立です。ChatGPTのような汎用LLM(大規模言語モデル)には、自社固有の企業情報が存在していないことです。DXCは自社固有情報をストアし、入力プロンプトの「意図」に合致する業務情報を入力情報に含めるようなシステムを開発しました。これにより、生成AIがより高い精度で自社に特化した情報を生成することが可能になりました。
人手と比べて50%以上の効率化を確認
定量的に測定した成果についてもご紹介します。
レガシープログラムの解析(ソース解析)については、人手によるものと比べて実に50%以上の効率化を確認しています。解析内容はフローチャート、入出力一覧、処理詳細の構成からなり、それらのすべてで可読性、正確性、難易度ともに高評価を得られています。ただし、各成果物についてChatGPTが完全性を担保できないことから、人によるチェックと最終的な調整が必須となることも判明しました。
モダン・アプリケーション開発の確立に関しては、生産性指標・品質指標で大きな効果を確認しました。生産性指標については、標準値と比較して120%~300%に向上し、大きな効果が確認できています。品質指標についても、開発・単体テストの品質は標準を上回っており、十分な品質を確保できると言える結果でした。
生成されたコードの質も、コーディング規約に準拠させることができ、人間の可読性が良く、高い評価を得ることができました。
テストの網羅性に関しても、テスト方針・観点を整備することで、アプリケーションロジックに必要なテスト項目・テストスクリプトをChatGPTが取捨選択した上で、必要十分に網羅することが可能でした。
生成AIによる開発は、人間が行う属人的で個人に依存したコーディングや、属人的なテストによる品質担保と比較しても、より安定した高い品質を実現することを示しています。
DXCでは、得られた知見を生かし、アプリケーション開発・運用における生成AIの活用を推進していきます。実際に、DXCが国内で立ち上げた組織横断の社内コミュニティ「生成AI CoE(Center of Excellence)」では、様々なテーマで日々活発なやり取りがされており、生成AIを利用した組織力の向上に貢献しています。
生成AIは単なる自動化ツールではなく、人間の創意工夫と組み合わせることで、新たな価値を生み出す可能性を秘めていると我々は確信しています。更に、人間が新たな価値を加えて生み出した結果を、再度生成AIに戻していくことで、ヒトと生成AIの共進化とも呼べる相乗効果を生み出すとも考えています。
DXCのコンサルタントやエンジニアが、アプリケーション開発・運用に関する豊富な知見を生かしてご支援いたします。自社での生成AIの活用についてお考えの際は、ぜひお気軽にご相談ください。