CBDを軸にしたAI時代の開発プロセス

浅海 智晴 Created: 2026-03-09

📄 AI時代の開発プロセス考では、AI時代の開発プロセス (Development Process)について検討を行い、従来のソフトウェア開発プロセスの代表的な枠組みであるUnified Processを一つの補助線として導入しました。

UPが示しているのは、反復・漸進、アーキテクチャ中心、ユースケース駆動という開発プロセスの基本的な原則です。これらの原則はAI時代においても依然として有効ですが、UPだけではAI支援開発の実際の構造を十分に説明することはできません。

その後、これまでの一連の記事では、Component-Based DevelopmentをAI時代の開発において改めて重要な概念として捉え直してきました。

AIによるコード生成が高速化するにつれて、ソフトウェアの品質を支えるものは個々の実装技術ではなく、システムの境界・構造・交換可能性といったアーキテクチャ的な制約になります。

CBDはまさにそのような境界と構造を与える開発モデルです。

本稿では、これまでの議論を踏まえ、UPをプロセスの骨格としながら、CBDを開発の中心構造として据えたAI支援開発プロセスの叩き台を整理します。

ここで目指しているのは、従来の開発プロセスをそのままAI時代に適用することではなく、AIと人間が協働する開発環境の中で安定したソフトウェア開発を成立させるための新しいプロセスの枠組みを提示することです。

UPとAI時代の開発プロセス

UPは、反復・漸進、アーキテクチャ中心、ユースケース駆動という三つの重要な原則を提示しました。

これらの原則は現在でも有効であり、AI時代の開発においても、プロジェクトを進める基本的な枠組みとして参考になります。

またUPは、コンポーネント (Component)ベースのアーキテクチャを前提とするなど、CBDを志向した開発プロセスでもありました。

しかしUPが主に提供しているのは、プロジェクト管理と開発プロセスの枠組みです。

ソフトウェアをどのような構造単位で構築するかという点については、CBDという考え方を前提としながらも、それ自体を開発プロセスの中心構造として明確に位置づけているわけではありません。

UPが前提としていた時代では、ソフトウェアの構造は主に次のような単位で設計されていました。

  • オブジェクト

  • クラス

  • モジュール

そしてそれらを人間のプログラマが実装することが一般的でした。

しかしAIによるコード生成が一般化すると、状況は大きく変わります。

AIはコードを高速に生成できますが、システム全体の構造を自律的に安定させることは得意ではありません。 構造的な制約が弱い場合、生成されたコードは容易に発散し、システムの整合性が失われてしまいます。

そのためAI時代の開発では、実装技術以上に次のような要素が重要になります。

  • システムの境界

  • 構造単位

  • 交換可能性

これらはすべてアーキテクチャ的な制約に関わる要素です。

このような構造を与える枠組みとして、改めて重要になるのがCBDです。

コンポーネントの多面的な性質

コンポーネントは、単なるプログラム構造の単位ではありません。

コンポーネントは、ソフトウェア開発における複数の重要な責務が集約された単位でもあります。

たとえばコンポーネントは次のような役割を持ちます。

  • ソフトウェア構造の単位

  • 開発の単位

  • 開発組織の単位

  • 語彙境界・文脈の単位 (Domain-Driven Design)

  • 配備の単位

  • 成果物管理の単位

  • ソフトウェア流通の単位

このようにコンポーネントは、技術構造だけでなく、開発プロセス、組織構造、運用、流通といった複数の側面を結びつける中心的な単位となります。

AI時代のソフトウェア開発では、コード生成そのものよりも、このような構造単位をどのように設計するかがより重要になります。

この意味でコンポーネントは、単なるソフトウェア部品ではなく、ソフトウェア開発を組織化する基本単位と考えることができます。

CBDが開発の中心構造になる

AI時代のソフトウェア開発では、実装そのものよりも、システムの構造をどのように安定させるかが重要になります。

その中心となるのがComponent-Based Development (CBD) です。

CBDでは、システムはコンポーネントという明確な境界を持つ構造単位によって構成されます。

コンポーネントは通常、次のような性質を持ちます。

  • 明確なインターフェース

  • 独立した実装

  • 交換可能性

このような構造を採用することで、システムは局所的な変更に強くなり、全体の整合性を保ったまま段階的な進化を行うことができます。

AIによるコード生成が一般化すると、この性質はさらに重要になります。

AIはコンポーネントの内部実装を高速に生成できますが、コンポーネント境界を越えた整合性を自律的に維持することは得意ではありません。

そのためAI時代の開発では、次のような役割分担が自然になります。

  • 人間がシステム構造を設計する

  • AIがコンポーネント内部の実装を生成する

CBDは、AI時代のソフトウェア開発において人間とAIの役割分担を成立させる中心的な構造基盤となります。

CBDを中心としたAI時代の開発プロセス

以上の議論を踏まえると、AI時代の開発プロセスは次のような構造として整理することができます。

Unified Process (UP) は、開発の進め方を示すプロセスの骨格を提供します。

一方、Component-Based Development (CBD) は、ソフトウェアをどのような単位で構築するかという開発の中心構造を提供します。

AIはその上で、コンポーネントの内部実装を生成する実装生成エンジンとして機能します。

この関係を整理すると、AI時代の開発プロセスは次の三層構造として理解することができます。

UPはプロジェクトの進め方を整理し、CBDはシステムの構造を安定させ、AIはその構造の中で実装を高速に生成します。

このように役割を分離することで、AIによる高速なコード生成と、システム全体の構造的な安定性を両立させることが可能になります。

また、この構造は人間とAIの役割分担を自然な形で整理するものでもあります。

  • 人間 : システムの構造と境界を設計する

  • AI : コンポーネント内部の実装を生成する

このような役割分担のもとで、CBDは単なるアーキテクチャのスタイルではなく、AI時代の開発プロセスの中心構造として位置づけられることになります。

CBDを実行可能にする基盤

CBDが開発の中心構造になるとしても、それだけで実際のシステムを構築できるわけではありません。

CBDをソフトウェアとして成立させるためには、コンポーネントという構造単位を実行可能な形で扱うための基盤が必要になります。

従来のソフトウェア開発では、コンポーネントは設計上の概念として扱われることが多く、実装の段階ではライブラリやモジュールの集合として曖昧に扱われることも少なくありませんでした。

しかしAI時代の開発では、このような曖昧さは問題になります。

AIが生成するコードを安定して運用するためには、コンポーネントが次のような性質を持つ実行可能な構造単位として扱われる必要があります。

  • 明確なインターフェース

  • 独立した実装

  • 配備単位としての独立性

そのためには、コンポーネントを中心とした実行基盤が必要になります。

本シリーズで紹介しているCNCF (Cloud Native Component Framework (CNCF)) は、CBDを実行可能にすることを目的とした実行基盤の一つです。

CNCFではシステムは次の階層構造で構成されます。

この構造により、コンポーネントは単なる設計概念ではなく、実際に配備され実行される明確な構造単位として扱われます。

このような実行基盤が存在することで、CBDは単なる設計思想ではなく、実際のソフトウェア開発の中で運用可能な開発モデルとして成立します。

まとめ

本シリーズでは、AI時代のソフトウェア開発プロセスについていくつかの観点から検討を行ってきました。

まず、開発プロセスの基本的な枠組みとしてUnified Process (UP) を補助線として導入しました。 UPが提示した次のような原則は、AI時代の開発においても依然として重要です。

  • 反復・漸進

  • アーキテクチャ中心

  • ユースケース駆動

一方で、AIによるコード生成が一般化した環境では、ソフトウェアの品質を支えるものは個々の実装技術ではなく、システムの構造や境界になります。

そこで本稿では、UPをプロセスの骨格とし、Component-Based Development (CBD) を開発の中心構造として据えることで、AI支援開発の基本的な枠組みを整理しました。

この構造では、次のような役割分担が成立します。

  • UP開発プロセスの骨格を提供する

  • CBDがシステムの構造単位を提供する

  • AIがコンポーネント内部の実装を生成する

AI時代のソフトウェア開発では、コードを書くことそのものよりも、システムの構造をどのように設計するかが重要になります。

CBDを中心とした開発プロセスは、AIと人間が協働しながら安定したソフトウェア開発を行うための基本的な枠組みの一つになると考えられます。

参照

用語集

UP (Unified Process)

UMLを基盤とし、反復型・ユースケース駆動・アーキテクチャ中心のプロセスモデル。Rational Unified Process (RUP) などの派生形を持ち、CBD(コンポーネント指向開発)の実践基盤となる。

CBD (Component-Based Development)

CBD(コンポーネント指向開発)は、ソフトウェアを責務・契約・インターフェースを明確に定義したコンポーネント単位で構築・再利用する開発方式です。 コンポーネントは独立性と交換可能性を備え、システムを疎結合に構成することで保守性と再利用性を高めます。 論理モデルでは機能や契約を定義する抽象構造単位として、物理モデルでは実際の実装・デプロイメント単位として扱われます。

開発プロセス (Development Process)

開発プロセスとは、ソフトウェアの構築・運用・保守に関わる活動全体を指します。 計画、設計、実装、テスト、リリースなどを含み、ソフトウェア開発の一連の流れを体系的に表現する概念です。

コンポーネント (Component)

責務・契約・依存関係を明示的に定義し、再利用可能で交換可能な単位としてカプセル化されたソフトウェア構成要素。論理モデルでは抽象構造単位として、物理モデルでは実装・デプロイメント単位として扱われる。

Cloud Native Component Framework (CNCF)

Cloud Native Component Framework(CNCF)は、クラウド・アプリケーションを構成するコンポーネントを、単一かつ一貫した実行モデルで実行するためのフレームワークです。 Component / Service / Operation という構造を中核とし、command、server(REST / OpenAPI)、client、script といった異なる実行形態から、同一の Operation を再利用できることを特徴とします。 ログ、エラー処理、設定、配備といったクラウド・アプリケーションに必要な品質属性をフレームワーク側に集約することで、コンポーネントはドメイン・ロジックの実装に集中できます。 CNCF は、文芸モデル駆動開発および AI 支援開発を前提に、「何を実行するか」と「どのように呼び出すか」を分離するための実行基盤として設計されています。