AI時代の開発スタック
📄 AI時代の開発プロセス考を起点に、📄 AI時代の開発プロセスの枠組みでUPを補助線としながら、AI時代の開発プロセス (Development Process)について考察を進めてきました。
また📄 AI時代のComponent-Based Developmentでは、AI時代のCBDを「文芸モデル (literate model)+DSL&自動生成+AI」という枠組みの中で再定義しました。
そこでは、伝統的CBDの弱点――発見の難しさ、仕様理解コスト、結合コストなど――が、AIとDSL、そして自動生成によって大幅に緩和される可能性を示しました。
さらに📄 Cloud Native Component Framework:HelloWorldおよび📄 HelloWorldで理解するCNCFの実行モデルでは、Cloud Native Component FrameworkのHelloWorldを通じて、コンポーネント (Component)の実行基盤を紹介しました。
本稿では、この流れを統合し、BoKから実行基盤までを貫く「開発スタック」の全体像を整理します。
要素技術を束ねる
これまでの記事では、
という形で個々の要素技術について説明をしてきました。
この縦方向の連続性が確立されたとき、設計と実装は分断されず、構造が保たれたまま進化可能になります。
そして、この技術体系を束ねる軸となるものがAIです。
AIは各層を横断し、
-
知識を理解し
-
モデルを整理し
-
構造を展開し
-
実行構成を補助する
ことで、自然言語世界と実装技術世界を接続します。
BoKと文芸モデル
DSLと実行基盤(CNCF)
また、CNCFは以下の2つの特徴を持ちます。
-
クラウド・ネイティブ・アプリケーション向けの動作基盤
-
品質属性などの関心の分離を行い、ドメイン・モデルの実現に集中できるコンポーネント開発を実現
これらの特徴はAIに対してもよい影響を持ちます。
AIは文脈が限定され、仕様が明確であるほど高精度の動作が可能になります。
また関心の分離によって品質属性などの複雑なパラメタを取り入れる必要がなく、業務ドメインの仕様理解と実現方式に集中できるのもAIにとって大きな要因です。
各要素技術におけるAIの役割
要素技術を束ねるAIの役割
ここまで見てきたように、AIは各層で個別の役割を持ちます。
しかしAIの役割は、それぞれの層を個別に支援することだけではありません。
AIの重要な役割は、これらの層を横断的に接続することにあります。
この縦方向の連続性を、AIが理解し、維持し、補助します。
つまりAIは、
-
意味の連続性を保ち
-
構造の一貫性を維持し
-
実行との整合性を確認する
縦方向の接続装置です。
自然言語世界と実装技術世界が分断されず、一気通貫で接続される。 AIがこの複雑な接続を担保するための重要な役割を担います。 そして、BoKから実行基盤までを貫く開発スタックが成立します。
参照
用語集
- UP (Unified Process)
-
UMLを基盤とし、反復型・ユースケース駆動・アーキテクチャ中心のプロセスモデル。Rational Unified Process (RUP) などの派生形を持ち、CBD(コンポーネント指向開発)の実践基盤となる。
- CBD (Component-Based Development)
-
CBD(コンポーネント指向開発)は、ソフトウェアを責務・契約・インターフェースを明確に定義したコンポーネント単位で構築・再利用する開発方式です。 コンポーネントは独立性と交換可能性を備え、システムを疎結合に構成することで保守性と再利用性を高めます。 論理モデルでは機能や契約を定義する抽象構造単位として、物理モデルでは実際の実装・デプロイメント単位として扱われます。
- DSL (Domain Specific Language)
-
DSL(ドメイン固有言語)は、特定の領域(ドメイン)に特化して設計された言語であり、その分野の概念や構造を直接的かつ簡潔に表現することを目的とします。 一般的な汎用プログラミング言語(GPL)に比べ、DSLは特定ドメインの問題解決や自動生成に適した高い抽象度を持ちます。
- Cloud Native Component Framework (CNCF)
-
Cloud Native Component Framework(CNCF)は、クラウド・アプリケーションを構成するコンポーネントを、単一かつ一貫した実行モデルで実行するためのフレームワークです。 Component / Service / Operation という構造を中核とし、command、server(REST / OpenAPI)、client、script といった異なる実行形態から、同一の Operation を再利用できることを特徴とします。 ログ、エラー処理、設定、配備といったクラウド・アプリケーションに必要な品質属性をフレームワーク側に集約することで、コンポーネントはドメイン・ロジックの実装に集中できます。 CNCF は、文芸モデル駆動開発および AI 支援開発を前提に、「何を実行するか」と「どのように呼び出すか」を分離するための実行基盤として設計されています。
- BoK (Body of Knowledge)
-
SimpleModelingでは文脈共有の核となる知識体系をBoK (Body of Knowledge)と呼んでいます。 BoKの構築は、知識の共有、教育、AIによる支援、自動化、意思決定支援を可能にするための基盤です。
- 開発プロセス (Development Process)
-
開発プロセスとは、ソフトウェアの構築・運用・保守に関わる活動全体を指します。 計画、設計、実装、テスト、リリースなどを含み、ソフトウェア開発の一連の流れを体系的に表現する概念です。
- 文芸モデル (literate model)
-
文芸モデル(Literate Model)は、モデル構造と自然言語による語り(構造化文書)を統合した「読めるモデル」です。 文芸的プログラミング(Literate Programming)の思想をモデリング領域に拡張し、 構造(モデル)+語り(構造化文書) を一体化することで、人間とAIの双方が理解・操作できる知識表現を実現します。 「Literate Modeling(文芸的モデリング)」という発想自体は、 これまでにも一部の研究者や開発者によって試みられてきました。 しかし、それらは主にドキュメント生成やコード理解の支援にとどまっており、 モデルと言語・語り・AI支援を統合した体系的なモデリング手法として確立されたものではありません。 文芸モデル(Literate Model)は、SimpleModelingがAI時代に向けて新たに体系化・提唱したモデリング概念です。 文芸的モデリングの思想を継承しつつ、 AI協調型の知識循環とモデル生成を可能にする知的モデリング基盤として再構成されています。 文芸モデルは、単なるモデル記述技法ではなく、 人間の思考過程や設計意図を語りとしてモデルに埋め込み、 AIがそれを解析・再構成して設計や生成を支援するための枠組みです。
- コンポーネント (Component)
-
責務・契約・依存関係を明示的に定義し、再利用可能で交換可能な単位としてカプセル化されたソフトウェア構成要素。論理モデルでは抽象構造単位として、物理モデルでは実装・デプロイメント単位として扱われる。
- エラー (error)
-
汎用的な表現として用いられる用語。ソフトウェア工学では多義的に使われ、バグや障害全般を指す。SimpleModeling では広義のラベルとして使用し、個別には Mistake・Defect・Fault・Failure・Deviation に整理する。
- 仕様確認 (verification)
-
Verification(仕様確認)とは、規定された設計仕様や要求仕様に対して、実装が一致しているかを確認する行為である。