生成AIコラム

第4部 生成AI時代のシステム開発

第4部|第1回:「システム開発プロセスにおける生成AIの活用動向」 ~生成AIの活用から見えるシステム開発業界の変革の兆し~
2024.3.28
辻本 寿太

三菱総合研究所は生成AI時代の始まりに向け「生成AIラボ」を新設する。それを記念して「三菱総研 生成AIコラム」の連載をお届けする。

※「三菱総研 生成AIコラムシリーズ」はこちら。

1.システム開発プロセスにおける生成AI活用の広がり

近年、生成AI技術の急速な進展が産業界に大きな変革をもたらしている。システム開発業界もその影響を強く受けている業界のひとつである。
システム開発業界では、特にソースコードを作成する際の生成AIの利用が注目を集めている。昨年12月に当社で実施したDXの推進状況に関するアンケート調査においても、現在生成AIを利用していると回答した企業の約30%が「プログラミング」での活用を挙げており、外部情報収集や文章の要約・翻訳などに続き、6番目に高い用途となっている。このことからも、システム開発での生成AIの活用への関心が高いことが伺える。
【図表:DX推進状況調査アンケート(12月実施)】
図表:DX推進状況調査アンケート(12月実施) 出所:株式会社 三菱総合研究所
さらにソースコードの作成以外にも、システム開発の様々な場面で生成AIの活用が進んでいる。本コラムでは、システム開発のプロセスを、「要件定義」、「設計」、「製造」、「テスト」、「基盤構築・運用・保守」の5つのプロセスとして整理した上で、生成AIの活用が進む領域を見ていく。また、生成AIがシステム開発プロセス全体や業界全体にもたらしつつある変化についても考察する。
【図表:開発プロセスと生成AIの活用領域】
図表:開発プロセスと生成AIの活用領域 出所:株式会社 三菱総合研究所

2.生成AIが活用されている「コーディング支援」、「自動テスト」、「インフラ設計・配備・管理」

生成AIの活用が特に進んでいるのは、製造プロセスの「コーディング支援」、テストプロセスでの「自動テスト」、基盤構築・運用・保守プロセスでの「インフラ設計・配備・管理」だろう。この章では、それらの領域での活用を詳しく見る。

<「コーディング支援」での活用>

製造プロセスにおける機能処理や画面の実装において、開発者はシステムやソフトウェアの機能を実現するためのソースコードを書く。この作業は「統合開発環境」を利用して進めることが一般的だ。生成AIの技術は、この統合開発環境内に支援ツールとして組み込まれるかたちで開発者の作業をサポートする。代表的なコーディング支援ツールとしては、Microsoftの「GitHub Copilot」、Google の「Duet AI for Developers(Gemini for Google Cloud)」、Amazon の「Amazon CodeWhisperer」、などがある。
【図表:AIコーディング支援ツールのイメージ】
図表:AIコーディング支援ツールのイメージ 出所:株式会社 三菱総合研究所
これらの支援ツールの統合により、開発者は統合開発環境の中で、自然言語による指示でゼロから処理ロジックを書かせたり、不完全な部分を補完・修正させたりすることができる。開発者がソースコード上のコメント文で処理内容を説明し、それを基にして生成AIに自動的に処理ロジックを完成させることも可能だ。また、開発者が書いた処理を生成AIにソースコードをレビューさせて潜在的なバグを指摘させたり、その修正をさせたりすることもできる。より保守性の高い記述を提案させることも可能だ。対応するプログラミング言語も幅広く、TypeScriptやJava、Python、C、C++など、様々な言語とそのライブラリに対応している。
このような生成AIを活用したコーディング支援ツールはすでに広く使われている。特に海外では広がっており、GitHubの調査によるとアメリカを拠点とする大企業の開発者の間では、500人のうち92%がAIコーディング支援ツールを仕事に役立てているとの調査もある。また、同調査によると、単に作業時間の短縮だけでなく、作業中のフラストレーションが減り高い満足度が得られているという。これらの利点が、コーディング支援ツールの活用の広がりを後押ししていると考えられる。

<「自動テスト」での活用>

テストプロセスは、システムの品質保証の中核を成す重要なプロセスである。ここで実施されるテストの種類は、目的や対象に応じて多岐にわたる。 ウォーターフォール型の開発では一般的に、要件定義、設計、製造、テストという段階的なフェーズの中で、単体テスト、統合テスト、システムテスト、受け入れテストなどが順次実施される。 一方、アジャイル開発では、短いイテレーションの中で要件定義、設計、製造、テストが繰り返し行われる。そのため、単体テスト、コンポーネントテスト、機能テスト、非機能テストなどが、継続的・反復的に適用される。
これらのテストを実施するには、テストケースやシナリオの作成、テストデータの準備、結果の分析、修正後の再テストといった活動が必要であり、多大な時間と労力を要する。特にアジャイル開発では、短いイテレーションで頻繁にリリースする必要があるため、テスト自動化は必須のものとなっている。
こうした状況の中で、近年、既存のテスト自動化ツールに生成AI技術が統合されつつある。個々の関数やクラスの動作を検証する単体テストでは、前述のAIコーディング支援ツールが使われる場合もあるが、より複雑なテストや特定の目的のためのテストではその目的に特化した自動化ツールが使われる事も多い。生成AIはこのような自動化テストツールに組み込まれ始めている。特に、ユーザー視点で入力から出力までをエンド・ツー・エンドでテストするE2Eテストをサポートする、「Autify」 、「functionize」 、「testRigor」 といった自動化ツールでの生成AIの統合が発表されている。
代表的な活用例として、テストケースの自動生成だ。E2Eテストでは、例えば「ユーザーが商品を検索してショッピングカートに入れる。」というような、自然言語で記述されたテストのシナリオに対して、生成AIが一連のユーザー操作をテストケースとして自動的に生成する機能だ。このような機能により、テスト作成の効率化とテストカバレッジの向上が期待できる。
また、生成AIを活用したアシスタンス機能により、ツールの使用方法やテスト等に関する支援を受けられるものもある。
生成AIによりテスト自動化ツールの機能が拡張され、より高度なテスト支援が可能となることが想定される。

<「インフラ設計・配備・管理」での活用>

システムのインフラ構築・運用でも、生成AI技術の利用が進んでいる。
システムの安定稼働には、処理の負荷に耐えうるシステムリソースの確保が必要である。従来は、システムリソースの調達や設定に時間と手間を要していた。物理サーバーの購入や設置、ネットワークの構築、ストレージの割り当てなどを手作業で行う必要があり、システムの要件変更への対応も容易ではなかった。近年、クラウドインフラストラクチャを利用することで、必要なサーバーリソースの動的な割り当て・解放も可能となり、ストレージやネットワークも柔軟に構成できるようになった。このような柔軟な構成変更には、プロビジョニング、すなわちコンピュータリソースの割り当ての設定が不可欠である。これらの設定をコード形式で管理するIaC(Infrastructure as Code)が標準的なアプローチとなっている。AnsibleやTerraformなどのツールは、このアプローチを支援し、システム基盤の構築と運用を効率的かつ再現可能にしている。
生成AIは、このIaCツールの機能を強化している。例えば、Red Hat社が提供する生成AIサービスによるAnsible Playbookの生成や、Amazon CodeWhispererによるTerraform(HCL)のIaCコードのサポートがある。これらは前述のコーディング支援同様、統合開発環境に組み込まれる形で、インフラ設計と配備・管理のためのコードを迅速かつ適切な記述を支援する。
さらに、「Amazon Q」、「Duet AI for Developers」、「Copilot for Azure」など、クラウドサービス提供者が開発したチャットアシスタントは、クラウドインフラストラクチャをより効果的に活用するための具体的なアドバイスやガイダンスを提供し、クラウドサービスの管理や問題解決を容易にしている。
統合運用管理ツールにおいても、生成AIの導入は注目されている。「Hinemos」や「JP1」などのツールは、システム運用の自動化と効率化のために生成AI導入の実証実験を進めている。
このように、既存の広く普及している開発環境やツール、プラットフォームに統合される形で生成AIの活用が広がっている。見方を変えれば、これら開発環境やツール、プラットフォームは、生成AIと統合されることにより、開発者と生成AIが「パートナー」として対話し複雑な課題に取り組むための「協働の場」へと進化したと言える。

3.生成AIの活用が進むと期待される「要件定義」プロセス、「設計」プロセス

システム開発における生成AIの活用は、「要件定義」や「設計」でも徐々に進み始めている。
「要件定義」プロセスは、ユーザーのビジネス要求を確認・整理し、なぜこのシステムが必要か、何を実現すべきかを明確にした上で、システムに求められる機能面・非機能面の要件を定義する。「設計」プロセスでは、その要求・要件をどのように実現するのか、またそれらをどう作るのかを明確にし、システム全体の方式や、業務を実現するための処理や画面、データベースなどの具体的な仕様書や設計書に落とし込む。
これらのプロセスでは、自然言語で書かれたドキュメントやユーザーインタビューの記録などを分析し、ユーザーの要求を抽出・整理したり、UMLやER図といったモデリング言語を使ったりすることが多い。
ここでも生成AIの高度な自然言語処理能力に注目が集まっており、ユーザーからの要求の獲得、分析、仕様化において効果を発揮すると期待されている。例えば、自然言語で書かれたドキュメントからユーザーのニーズを自動的に抽出したり、要件の不明瞭な点を特定したり、あるいは、要件間・仕様間の矛盾を検出したりすることが期待されている。また、自然言語での要求をモデリング言語に自動変換することで、作業の効率化も期待できる。
このような活用について、先行的な研究論文やインターネット上の技術ブログなどで様々な試みが紹介されているが、生成AIを組み込んだツールも登場し始めている。例えば、業務概要をUMLに落とし込むことができる「おしごとモデルズ」、自然言語で記述された要件からWeb画面のデザインを自動生成する「v0」、ユーザーストーリーなどに含まれるデータモデリングに関する要件を抽出しER図を生成する機能を提供する「ERBuilder」のようなツールも出ている。
一方で、企業に導入する業務システムとしてこれら要件や仕様を定めるうえでは、企業ごとのルールや基準、既存システムとの関係などを考慮する必要があることが多い。これらは、現時点では生成AIに十分に取り込むのが難しい場合が多い。このようなドメイン知識の効果的な取り込みと、それらの複雑性に対応できるような生成AIの性能向上が実現するにつれて、生成AIのより広範で実用的な活用が広がるだろう。

4.生成AIを活用するにあたっての課題

システム開発における生成AI技術の利用が広まりつつあるが、活用にあたっての課題があることにも留意しなければならない。
特に生成AIの活用が最も進んでいるソースコードの自動生成では、成果品質、セキュリティ、知的財産権などに課題があることが考えられる。これらの課題について、具体的に見ていこう。

<成果物品質の課題>

生成AIは多様な処理を実現するコードを高速に生成する能力を持つ。生成されたソースコードは、一般的にエラーがなく可読性も高い。開発者が指示した機能の実現という点では問題ないことが多い。しかし、実際のシステム開発では、異常値処理や例外処理などの実装も必要だ。このような処理は、具体的な指示がない限り考慮されないことが多い。加えて、生成されたコードで使用されているライブラリや関数等がプロジェクトのルール・方針や他の開発者のコードと整合しているか、大規模なデータを扱う際の性能面も考慮されているかも確認が必要だ。生成AIに対する適切な指示と人間によるレビューが必要不可欠であるといえる。

<セキュリティに関する課題>

生成AIを使ってソースコードを自動生成する際には、セキュリティ上の脆弱性が含まれてしまうリスクがある。例えば、ユーザーからの入力をそのまま使ってOSコマンドを実行してしまうOSコマンドインジェクションや、ユーザーがアップロードしたファイルを無制限に受け付けてしまう脆弱性などが指摘されている。また、こうした脆弱性は、生成AIが学習したコード自体の傾向として含まれている場合もあれば、生成の過程で参照したプロジェクト内の他のコードから伝播することもある。もちろん、脆弱性を含むソースコードを書いてしまうのは生成AIだけの問題ではないが、生成AIを活用することでセキュリティ面の知識や経験が不足した開発者でも気軽にコードを生成できるため、そのようなコードが広く開発プロジェクト内で広がってしまうことも考えられるのではないだろうか。
これに対して、ツール側でも脆弱性のフィルタリング機能やレビュー機能を備えているものが出ている。これらを活用したうえで、人間が行うプロセスとして検証やチェックをしっかり組み込んでいくことが必要である。ツールと人間が協力し、それぞれの強みを活かしながらセキュリティ対策を行っていくことが求められる。

<知財に関する問題>

生成AIは、学習した既存のコードスニペットやプログラミングパターンを参考にして新しいコードを生成する過程で、既存のソフトウェアのソースコードを転載する可能性が残っており、著作権侵害やライセンス違反につながる恐れがある。
これに対して、たとえばAmazon CodeWhispererのように、トレーニングされたコードの再現を避け、特定のコードスニペットと完全一致するコードを検知した場合は通知をすることで、技術面からこの問題に対処しているツールもある
また、Microsoftは、GitHub Copilotで生成したコードによる著作権侵害問題に対して、開発者側を弁護する姿勢をとることを声明として出している。訴訟に対する補償対応もしている。同様にGoogleのDuet AIに関しても、Googleはユーザーが著作権侵害の申し立てを受けた場合の補償を発表している。このように、技術面だけでなく法的側面から対応するケースもみられる。
ソースコードを例に見てきたが、それに限らず生成AIが生成した内容には注意が必要だ。生成AIの出力をそのまま使用するのではなく、常に人間の判断や専門知識も入れた検証・チェックを行い、必要に応じて修正を加えることを前提とすべきである。生成AIは、あくまでも人間の創造性や生産性を補助するためのツールであり、最終的な責任は人間が負うことを忘れてはならない。

5.システム開発プロセス全体の改善に取り組む国内大手ベンダー

ここまで各プロセスや活用領域における生成AIの活用の広がりを見てきた。これまで開発者が利用してきたツールに組み込まれて生成AIの活用が広がる状況が伺えた。
一方で、国内大手システムベンダーは生成AIを活用して開発プロセス全体の改善を進めている。その事例を見ていこう。
国内最大手のNTTデータは、生成AIを取り入れた複数のプロジェクトでの生産性向上の効果が確認できたとし、システム開発全体への生成AIの適用を進める。また、生成AIの活用による生産性向上を見据え、従来の人月型契約から成果報酬型などの新たな契約形態への移行を検討しているという
日立製作所も、生成AIの活用で2027年度までにシステム開発の効率を3割向上させるとしている。2023年11月には、自動車向けソフトウェア開発の効率化を生成AIで支援する技術も開発しているという
また、日本IBMも「IT変革のためのAIソリューション」の提供を発表した。戦略計画やプロジェクト管理なども含めたITプロセス全体に対して生成AIを取り入れ、2027年にはプロセス全体の30%以上の効率向上、2030年には自動化と専門知識を組み合わせたAIによる50%の効率化と速度向上を目指している
このような国内大手開発ベンダーをきっかけに、ユーザー企業側の期待の変化、契約形態や業界慣習の見直しなど、システム開発業界全体に広く影響を与える可能性がありそうだ。

6.ユーザー企業から起きるシステム開発業界変革の兆し

システム開発業界の変化は、顧客であるユーザー企業側からも引き起こされる可能性がある。ユーザー企業によるシステムの「内製化」が進みつつあるためだ。その背景には、プログラミング言語や統合開発環境の高機能化、ローコードツールやノーコードツールの登場などで下がっていたソフトウェア開発の敷居が、生成AIの登場でさらに下がったことが大きな要因として挙げられる。実際にTBSなどの事業会社でも内製化が進んでおり、将来的には「外注」という概念がなくなるという見方もあるようである。このようなユーザー企業の変化は、システム開発業界を変える一因になるだろう。
しかしシステム開発ベンダーが全く不要になることはないと考えている。もちろん、このような生成AIの活用を通じてビジネスの変化に迅速に対応することができるのであれば、ユーザー企業は内製化を着実に進めていくべきだろう。ユーザー企業が生成AIを活用して内製化を進める際には、自社の業務知識を最大限に生かし、迅速な対応ができることが多いだろう。一方で、高度な専門性や特定の役割が求められる場合には、外部ベンダーとの連携が有効だ。内製化を基本としつつ、必要に応じてベンダーの専門性を活用することで、効率的でバランスの取れた開発体制が実現できる。たとえば、他社の先行事例を活かして最適なシステム導入を企画する際は、ベンダーは多数の事例に基づく知見を提供できる可能性がある。また、大規模で難易度の高い開発プロジェクトにおいては、ベンダーのプロジェクトマネジメントの経験や専門的な技術知見が、品質と納期の確実性を高めるために必要になるだろう。
内製化と外部ベンダーとの連携を最適に組み合わせることで、お互いが持つ人的リソースやノウハウを補完し合う相互補完的な協業の形が生まれ、新しいビジネスの機会の創出にもつながるだろう。
【図表:システム開発業界に起きうる変化のイメージ】
図表:システム開発業界に起きうる変化のイメージ 出所:株式会社 三菱総合研究所

7.最後に

本コラムでは、システム開発プロセスでの生成AIの活用動向を中心に、大手システム開発ベンダーの取り組みやユーザー企業の動向、そしてそこから始まる業界変革の可能性にも触れてきた。
今回のコラムでは書いた内容のほかにも、今後大きな変化の引き金となるような動きもある。たとえば業務システム自体への生成AIの組み込みだ。生成AIがより深く業務システムの一部となれば、システムの開発や運用のあり方も変わっていくだろう。
加えて、AIを活用してソフトウェアエンジニアリングを自動化・支援する取り組みも進んでいる。Cognition社の「Devin」は、エンジニアリングタスクのほぼすべてを自律的にこなすことができるという。「MetaGPT」も、プロダクトマネージャーやアーキテクトなど異なる役割を担う複数のAIエージェントを協調して動作させ、ソフトウェア開発を自動化することを目指す。Magic.devは、人間のように自然然言語でのやりとりでソフトウェアエンジニアリングを行うことができる「協働者(coworker)」としてのAIを開発中だ
これらの取り組みをすぐに業務システム開発へ適用するのは難しいかもしれない。業務システムの開発では、複雑な要件の実現が求められ、そのために深い業務ドメイン知識や関連する多種多様な情報へのアクセスが求められることが多いためだ。とはいえ、これらのような取り組みが成熟していけば、将来的にシステム開発のあり方を今まで以上に大きく変える可能性を秘めている。
このような状況から、システム開発業界は今まさに、変革の過渡期にあると言える。生成AIをうまく取り入れ、ユーザー企業に対して価値を生み出していくことができるかどうかが、各企業の競争力やプレゼンス、ひいては業界全体の発展の鍵を握っているといえるだろう。各企業は、生成AIの可能性と限界を見極めながら、着実に活用を進めていくことが求められる。生成AIの動向を注視し、適切に対応していくことが、これからのシステム開発業界の課題である。
  1. Survey reveals AI’s impact on the developer experience(2024年3月19日閲覧)
    https://github.blog/2023-06-13-survey-reveals-ais-impact-on-the-developer-experience/
  2. Autifyのテスト自動化ツール(2024年3月19日閲覧)
    https://autify.com/ja/news/autifyailabs
  3. functionizeのテスト自動化ツール(2024年3月19日閲覧)
    https://www.functionize.com/generative-ai
  4. testRigorのテスト自動化ツール(2024年3月19日閲覧)
    https://testrigor.com/generative-ai-in-software-testing/
  5. Red Hat Ansible Lightspeed with IBM watsonx Code Assistant(2024年3月19日閲覧)
    https://www.redhat.com/ja/technologies/management/ansible/ansible-lightspeed
  6. Infrastructure as Code development with Amazon CodeWhisperer (2024年3月14日閲覧)
    https://aws.amazon.com/jp/blogs/devops/infrastructure-as-code-development-with-amazon-codewhisperer/
  7. 【リリース】「Hinemos」における生成AIを用いた運用自動化・効率化の実証実験を開始 (2024年3月19日閲覧)
    https://www.hinemos.info/release/20231023
  8. 統合システム運用管理「JP1 Cloud Service」において生成AIを用いた運用効率化・自動化に関する実証実験を開始 (2024年3月19日閲覧)
    https://www.hitachi.co.jp/Prod/comp/soft1/jp1/notice/2024/0201.html
  9. 豆蔵、生成AIを活用した要求開発モデリングサービス「おしごとモデルズ」を提供開始 (2024年3月19日閲覧)
    https://www.mamezou.com/news/press-release/20231207
  10. Vercel v0 (Announcing v0: Generative UI – Vercel ) (2024年3月19日閲覧)
    https://vercel.com/blog/announcing-v0-generative-ui
  11. ERBuilder(2024年3月19日閲覧)
    https://soft-builder.com/ai-powered-er-diagrams-generation/
  12. Assessing the Security of GitHub Copilot’s Generated Code - A Targeted Replication Study(2024年3月19日閲覧)
    https://arxiv.org/pdf/2311.11177.pdf
  13. Copilot amplifies insecure codebases by replicating vulnerabilities in your projects(2024年3月19日閲覧)
    https://snyk.io/jp/blog/copilot-amplifies-insecure-codebases-by-replicating-vulnerabilities/
  14. Amazon CodeWhisperer のよくある質問(2024年3月19日閲覧)
    https://aws.amazon.com/jp/codewhisperer/faqs/
  15. マイクロソフト、お客様向けの Copilot Copyright Commitment を発表(2024年3月19日閲覧)
    https://news.microsoft.com/ja-jp/2023/09/12/230912-copilot-copyright-commitment-ai-legal-concerns/
  16. Google、Shared fate: Protecting customers with generative AI indemnification(2024年3月19日閲覧)
    https://cloud.google.com/blog/products/ai-machine-learning/protecting-customers-with-generative-ai-indemnification?hl=en
  17. NTTデータが生成AI使うシステム開発手法を全技術者に展開、人月型契約が見直しに(2024年3月19日閲覧)
    https://xtech.nikkei.com/atcl/nxt/column/18/02423/073100046/
  18. 日経新聞「日立、生成AIを活用 システム開発の効率3割向上めざす」(2024年3月19日閲覧)
    https://www.nikkei.com/article/DGXZQOUC13BHZ0T10C23A6000000/
  19. 生成AIを活用し、自動車向けソフトウェア開発の効率化を支援する技術を開発(2024年3月19日閲覧)
    https://www.hitachi.co.jp/New/cnews/month/2023/11/1121.html
  20. システム開発や運用に生成AIを活用する「IT変革のためのAIソリューション」により、生産性と品質の向上を実現(2024年3月19日閲覧)
    https://jp.newsroom.ibm.com/2024-03-07-IBM-Solutions-for-AI-utilizing-generative-AI-for-IT-Transformation
  21. 日経クロステック「TBSもシステム内製を始めた、決め手は生成AI対応のノーコードツール」(2024年3月19日閲覧)
    https://xtech.nikkei.com/atcl/nxt/column/18/02732/012500001/
  22. 日経クロステック「生成AIでシステム内製が当たり前になる未来、「外注」という概念が消える(2024年3月19日閲覧)
    https://xtech.nikkei.com/atcl/nxt/column/18/02732/012500005/?i_cid=nbpnxt_sied_child
  23. Introducing Devin, the first AI software engineer(2024年3月19日閲覧)
    https://www.cognition-labs.com/introducing-devin
  24. geekan/MetaGPT(2024年3月19日閲覧)
    https://github.com/geekan/MetaGPT
  25. Magic is working on frontier-scale code models to build a coworker, not just a copilot.(2024年3月19日閲覧)
    https://magic.dev/
  26. Magic.dev Raises $28 Million To Build AI Software Engineer(2024年3月19日閲覧)
    https://www.prnewswire.com/news-releases/magicdev-raises-28-million-to-build-ai-software-engineer-301738983.html

筆者

辻本 寿太
株式会社三菱総合研究所
デジタルイノベーション部門 ビジネス&データ・アナリティクス本部

AIをビジネスで実践的に活用するソリューションの企画・開発を担当しています。お客様の課題を深く理解するために、実際の現場に飛び込んでいくことを心がけています。AIを活用して人の力を最大限に引き出し、AIと人間が協働する最適な姿を、お客様と一緒に考えていきたいと思います。

DXメルマガ
配信中