TRACERY Lab.(トレラボ)

TRACERY開発チームが、要件定義を中心として、システム開発で役立つ考え方や手法を紹介します。

文芸モデル駆動開発の知識表現〜生成AI時代のモデリングとは その1

TRACERYプロダクトマネージャーの haru です。

2025年10月31日(金)に開催された勉強会『BPStudy#218〜生成AI時代のモデリングとは』の第2部では、浅海智晴氏が提唱する「文芸モデル駆動開発*1」をもとに、「AI時代に向けたモデリング」をテーマとしたパネルディスカッションが行われました。本記事ではその時の様子をお伝えします*2

第1部の浅海智晴氏の登壇資料AI時代のソフトウェア開発 文芸モデル駆動アプローチ

生成AI時代のモデリングとは

  • その1: 文芸モデル駆動開発の知識表現(本記事)
  • その2: 文芸モデル駆動開発のモデリング〜コード生成の流れ(近日公開)
  • その3: 文芸モデル駆動開発のクラウドへの対応、コンポーネントベース開発(近日公開)
  • その4: 文芸モデル駆動開発の振る舞い駆動開発(BDD)の活用(近日公開)
  • その5: 文芸モデル駆動開発における人とAIの共創(近日公開)

  • パネラー
  • モデレータ
    • 佐藤 治夫(さとう はるお) :以下、haru

生成AIの登場による開発スタイルの変化

haru:モデリングの文脈では、まず業務やシステムの要件をモデル化し、そのモデルを基に設計モデルへ展開し、最終的に人がそれをコードへ落とし込みます。

要件→設計→実装へと段階的に具体化していくことが、一般的なプロセスです。(下図)。

要件モデル、設計モデル、プログラム
生成AIの登場によって、要件を書けばコードが生成されるという「バイブコーディング*3」という開発スタイルが現実化しました。開発者はプロンプトに要件を入力するだけで、生成AIがプログラムを自動生成します。
バイブコーディング
バイブコーディングでは、プロンプトの曖昧さによって意図と異なるコードが生成され、修正の手戻りが増えるという課題があります。

こうした非効率を避けるために、まず仕様を明確化し、その仕様を基準にコード生成を行う「仕様駆動開発(Spec Driven Development)」というアプローチが重視されるようになりました。

仕様を起点とすることで、意図のぶれを抑え、生成AIの出力を安定させることができます。
仕様駆動開発

文芸モデル駆動開発の知識表現

haru:これらのような生成AIを活用した開発が進化する流れの中で、「文芸モデル駆動開発」の内容と生み出される価値を確認し、その上で「生成AI時代のモデリングはどうあるべきか」というテーマでパネルディスカッションを進めていきます。

「文芸モデル駆動開発」を整理した図を用意しました(下図)。

文芸モデル駆動開発の全体像
図は左から右へプロセスが流れる構成になっています。

図の最も左側には「知識」が置かれており、文芸モデル駆動開発では「知識」が起点となります。

浅海:ステークホルダーや開発者の間で「知識」をユビキタス言語*4として共有できる状態を実現したいと考えています。

プロジェクト単位の知識表現を容易に吸収できるように、プレーンテキストで文章を書くだけで、知識体系として整理され、自動的に知識表現として活用できる形を目指しています。

haru:プレーンテキストで記述した文書は、図における「SmartDox*5サイト)」(SmartDox形式/LoxiDox*6形式)に位置づけられます。

一方、整理された知識体系を公開する場が「BoK*7サイト」です。

文芸モデル駆動開発の知識表現
SmartDox形式のプレーンテキストで書かれた知識は、SmartDox、Arcadia*8、Antora*9などのコンパイラやジェネレータによってHTMLやWebメタデータへ変換され、BoKサイト上で参照可能な知識資産として公開されます。

こうした流れによって、テキストの記述がそのまま知識体系として活用できる仕組みが成立します。

文芸モデル駆動開発でいう「セマンティックView」は、セマンティック・ウェブ*10の概念に近いイメージでしょうか。

浅海: セマンティック・ウェブとは同じ目的を目指す概念ではあります。

セマンティック・ウェブは、オープンワールドで全Webを接続してWeb全体で知識ベースを作成することを目的としているのに対し、文芸モデル駆動開発は、プロジェクト単位の知識ベースを作成することに絞っています。

セマンティック・ウェブより、目的が絞れているのでより精度の高い知識表現を構築できると考えています。

セマンティック・ウェブは、Webコンテンツ同士をネットワーク化する取り組みで、コンテンツのヘッダーに「この情報が何を示すものか」といったメタ情報をRDF(Resource Description Framework)*11による知識表現として付与し、活用できる点に特徴があります。

文芸モデル駆動開発でも、このRDFを知識表現技術として採用しています。

生成AIは外部の形式知をMCP*12で取り込む構造になっていて、RDFによる知識表現である知識グラフをMCP経由で生成AIに渡すことが有効なことがいろいろ試した結果で分かってきました*13

そのため、文芸モデル駆動開発ではBoKコンテンツを知識グラフ化してMCP経由で生成AIに受け渡す方法を開発しています。

次回は、文芸モデル駆動開発におけるモデリングからプログラムコード実装までの流れについて話が進みます。

この記事を書いた人
haru

佐藤治夫。株式会社ビープラウド代表取締役社長。TRACERYのプロダクトマネージャー。エンジニアとして活動を始めて以来、モデリングを中心としたソフトウェアエンジニアリングを実践している。Xアカウント: https://x.com/haru860

*1:自然言語による語りと形式的なモデル構造を統一されたテキスト基盤上で統合するソフトウェア開発手法。従来のモデル駆動開発(MDD)を拡張し、ドキュメントとモデルを単一の整合的ソースとして扱う。 文芸的プログラミング(Literate Programming)の思想をモデル駆動開発に適用している。文芸的プログラミングとは、ドナルド・クヌースが提唱した、プログラムのソースコードと人間向けの解説文書を一体のものとして開発する手法。 プログラムの実行コードと自然言語の説明を同じファイル内で「WEB」のような形式で記述し、それらを分離・生成することで、人間が理解しやすく、かつ完全に整合性の取れたプログラムと文書を同時に作成することを目指す。機械が読めるコードを「後」に作る一般的なアプローチとは異なり、「本を書くようにプログラムを書く」という哲学に基づいている 参照:https://simplemodeling.org/ja/glossary/literate-modeling/literate-model-driven-development.htmlhttps://modegramming.blogspot.com/2020/06/

*2:伝わりやすくする目的で、話の流れを一部再構成しています。

*3:AI(大規模言語モデル)と人間がリアルタイムで対話しながら、「雰囲気」や「ノリ」といった曖昧な指示でソフトウェアを開発する手法。人間は「こんな感じにしたい」「こう動いてほしい」という意図を自然言語で伝え、AIがコード生成や修正、テストまでを担う。

*4:ドメイン駆動設計(DDD)における「チーム全員が共有する共通言語」で、開発者、ビジネス担当者、顧客など、プロジェクトに関わる全員が同じ言葉で同じ意味を理解し、コードや会話、ドキュメントのあらゆる場面で統一的に使う言葉のこと。

*5:浅海氏が開発した、ドキュメント記法とドキュメントツール群の総称。ドキュメント記法はMarkdownの軽快さにAsciidocやOrg-modeの構造表現力を融合している。SmartDoxサイトは、複数のSmartDoxファイルを階層的にまとめ、1つのサイト構造として形成したもの。 https://github.com/asami/smartdox

*6:用語定義のためのDSL。SmartDoxをメタ言語としている。参照記事: 「AI協調のためのBoK生成アーキテクチャ」 https://www.simplemodeling.org/ja/knowledge-development/ai-collaboration-architecture.html

*7:Body of Knowledge:知識体系

*8:https://github.com/asami/arcadia。浅海氏が開発したオープンソースの静的サイトジェネレータ(SSG)。Bootstrap 5ベースのレスポンシブなWebページを生成する。

*9:https://antora.org/ 。AntoraはAsciidoc形式の文書群をナビゲーション付きサイトとして構築するためのツール。Asciidocは技術文書向けに広く使われているマークアップ言語。

*10:ウェブ上の情報に「意味」を付与し、コンピュータがその意味を理解・解釈できるようにする技術や構想のこと。単なる文書構造(HTML)だけでなく、メタデータ(情報についての情報)やオントロジー(概念の定義)を用いて、検索やデータ連携をより高度に自動化し、人間とコンピュータが協力して情報を効率的に利用することを目指している。Webの創始者であるティム・バーナーズ=リー氏が提唱し、W3C(World Wide Web Consortium)が標準化を進めている。

*11:Web上にある情報(リソース)の意味や関係性を、コンピュータが理解できる形で記述するためのフレームワーク。 セマンティックWebを実現するための中心的な技術の一つであり、標準化団体である W3C (World Wide Web Consortium) によって勧告されている。

*12:Model Context Protocol。Anthropic社が提唱した、AIモデル(LLM)が外部のツールやデータベースと安全かつ効率的に連携するための**共通の通信規格(プロトコル)。AIが個別のAPI仕様を気にせず、共通のルールで情報(コンテキスト)をやり取りできるようにし、AI活用における開発コストと手間を削減し、機能拡張性を高める。

*13:参考記事:Semantic Integration EngineとVSCode連携:https://simplemodeling.org/ja/blog/sm-mcp-vscode.html