NTT DATA

DATA INSIGHT

NTT DATAの「知見」と「先見」を社会へ届けるメディア

キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
2025.1.24技術トレンド/展望

ソフトウェア開発における生成AI活用トレンドと展望

2022年末のChatGPT登場から2年以上が経過し、生成AIをソフトウェア開発に活用する企業が世界中で増えてきている。今後も生成AIの進化とともに、この動きはより活発になることが想定され、ソフトウェア開発の在り方が抜本的に変わる未来もそう遠くはない。本記事では、ソフトウェア開発における生成AI活用のトレンドと昨今注目を集めている生成AI活用ユースケースを紹介し、今後のソフトウェア開発の展望とIT人材に求められる力について解説する。
目次

生成AI活用のトレンド

NTT DATAのコアビジネスである「ソフトウェア開発への生成AI適用」は、これまでのDATA INSIGHTでも紹介してきました。ChatGPTの発表から2年が経過し、生成AIは世界中で様々な形での活用が進んできています。
「ソフトウェア開発への生成AI適用」と聞いて、皆さんはどの工程での利用を想像するでしょうか。製造工程における利用を想像されている方も多くいるかと思いますが、上流の要件定義から設計、開発、下流のテスト工程、プロジェクト管理や運用まで、工程全般への生成AI活用が始まっています。
当社においても、様々な工程での生成AI活用を行っていますが、特に製造工程やプロジェクト管理領域、設計工程での適用件数が増加しています。製造工程ではソースコード生成や後継バージョンへのマイグレーション、プロジェクト管理領域では品質分析補助やチケット管理ツールと組合せたバグ記録補助、設計工程ではソースコードからの設計情報の復元(リバースエンジニアリング)などの適用件数が増加しています。

生成AIは、インプットとなる情報に大きく依存して回答精度や効率化度合いが変わってくるという特徴があります。そのため、はじめからすべての工程で活用を進めるのではなく、まずは現状の開発プロセスで課題を感じている領域に対し、効果検証のうえ生成AI活用を進めることが肝要です。既に製造工程への生成AI適用が完了し、次なる効率化のターゲットとして、要件定義や設計工程への適用を目指す企業も増えています。ソフトウェア開発全工程、一気通貫での生成AI活用もそう遠くない未来に実現できることでしょう。

ソフトウェア開発における生成AI活用状況 ソフトウェア開津における生成AI活用ユースケース

生成AI活用があまりなされていない工程にも注目してみましょう。まず挙げられるのは、要件定義工程です。生成AIは個社固有の業務知識をベースとしたアウトプットの生成が難しく、生成した要件定義書が業務内容を反映できずに大幅な修正が必要となるケースも少なくありません。また、テスト工程でもシステムテストなどでの業務知識をベースとしたテストシナリオ生成が難しく、要件定義工程と同様に、修正と人による確認が必要となります。
これらに対しては、複数のLLMに役割を持たせ、各LLMが自律的に対象業務のタスクを抽出・整理・実行するような構成をとるアプローチが有効な解決手段と考えられます。このアプローチでは、現在普及しているアシスタント型の生成AIと異なり、タスク遂行に必要な情報を、利用者や他のLLMから収集することが可能となります。例えば利用者からのインプット情報が不足している場合、AIが利用者に対して業務知識に関する質問を投げかけ必要な情報を収集することで、アウトプットの精度を高められます。また、RAG(Retrieval-Augmented Generation:LLMのテキスト生成と外部情報検索を組み合わせる手法)の活用も有効なアプローチでしょう。自社固有の業務情報をデータベース化し、LLMの回答に盛り込むことで業務内容をベースとしたアウトプットが得られます。

タスク実施に必要なインプットが不足している際の利用者への質問例

NTT DATAはこれらの工程への生成AI活用にも取組んでおり、1つの解決策として「SmartAgent™」というAI活用コンセプトを提唱しています。SmartAgentには、RAGよりも更に精度を高めたAdvanced RAGや、アウトプットの質を向上させるMulti Agentなどが技術要素として組み込まれています。こうした技術を活用しソフトウェア開発においても更なるユースケース拡大を進めていきます。

適用事例と導入効果

ソフトウェア開発における生成AI活用事例は、これまでのDATA INSIGHT記事でも扱ってきました。本記事では、これまで扱っていない特徴的な取り組みとして、リバースエンジニアリングの事例を紹介します。リバースエンジニアリングとはソフトウェアやハードウェア製品の構造を分析し、構造や仕組みを明らかにする手法で、近年は生成AIによるソースコードからの設計情報の復元が行われています。本事例では、リバースエンジニアリング対象のソースコードからRAGを構築し、復元させたい機能を人が自然言語で指示すると、必要なソースコードを生成AIが自動選別し、設計情報の一部を復元します。これにより、多くの時間を割いていたソースコードの選別作業を効率化することができます。また、復元した設計情報は、更に生成AIと組み合わせて活用しています。システム仕様や改修時の影響範囲などのシステム担当者からの質問に対して、LLMがソースコードや設計情報から回答を生成します。この仕組みは影響調査や問合せ対応の他にも、新規参画者のシステム仕様理解促進に活用されています。

統計情報復元における生成AI活用

これからのソフトウェア開発に求められるポイント

LLM自体の精度向上やSmartAgentのような活用コンセプトの登場により、ソフトウェア開発全工程での生成AI活用が現実味を帯びてきました。ソフトウェア開発がAIに代替されようとしているなか、人にはどのようなスキルが求められるでしょうか。ポイントは、「生成AIを使いこなす力」と「適切なアプローチを見極められる力」の2点です。

生成AI活用が進んだとしても、人が生成AIにインプットを与える役割であるのは当面変わらないと考えられます。したがって、精度の良い回答を得るためには、人からの指示内容の具体化や明確化が必要です。生成AIの特性を踏まえたプロンプトエンジニアリング技術の習得に加え、実現したいことを言語化するための業務知識やIT知見がより必要になるでしょう。生成AIが知りえない、お客様のビジネスや課題に関する知見も欠かせません。また、これらの知識や知見は、生成AIが出力したアウトプットからハルシネーション(事実に基づかない情報を生成する現象)を見極め、正しいアウトプット出力に導く際にも活用できます。
同じプロンプトを渡した場合でも、LLMの種類が変われば回答は異なります。現在、様々なLLMが日々登場しています。このような状況では、各LLMの特性を理解して、適切に使い分ける力も必要になります。

生成AIは開発効率化を実現する手段の一つであり、生成AI以外のアプローチが適切なケースもあります。ユースケースやプロジェクトの状況に応じて適切なアプローチを選択できる力も、今後一層求められることとなるでしょう。自動化技術は開発効率化の手段として以前から知られていますが、自動化技術で実施していたことすべてを生成AIに置き換えるのではなく、組み合わせて利用することで更なる効果が期待できます。例えばCI/CD(継続的インテグレーション/継続的デリバリ)パイプラインへ生成AIを適用した場合を考えてみましょう。自動テストでのエラーは、現状は人が内容を確認して発生事象や原因を調査しています。ここに生成AIを活用することで、エラー内容から事象や原因を生成AIが出力し、バグチケットに自動でコメントを記載することができるため、更なる効率化が期待できます。

生成AI関連の技術の発展は著しく、今後も新しい技術が登場してくることでしょう。新しい技術を使いこなし、既存手法と組み合わせて更なる効率化ができる力が求められます。
NTT DATAは、これからも最新技術を活用したソフトウェア開発を推進していきます。

生成AI(Generative AI)の詳細はこちら:
https://www.nttdata.com/jp/ja/services/generative-ai/

AIエージェントを活用した新たな生成AIサービスを提供開始
~「SmartAgent™」の実現により、オフィスワーカーの生産性向上、付加価値業務のシフトへ~についてはこちら:
https://www.nttdata.com/global/ja/news/release/2024/102401/

お問い合わせ