SimpleModelingが目指してきたもの
SimpleModelingは、CML、DSL (Domain Specific Language)、文芸モデル (literate model)、Cozy、Textusを用いて、モデルを実行可能ソフトウェアへ接続する方法をAI以前から開発してきました。
一方、知識からドメインモデルを構成する工程は、用語集、ユースケース、文芸モデルなどによって支援されながらも、主に人間の作業に依存していました。AIは、この残されていた工程をドメインエキスパートや開発者と協業できる形へ変えつつあります。
本稿では、SimpleModelingが継続してきた方向性と、AIによってその方法論が新しい段階へ進む理由を説明します。
シリーズにおける位置付け
第1回では、ドメインモデルが実装への経路を持つworking abstractionになることで、人間の仕事の中心がコードからモデルへ移り、ソフトウェア開発方法論をモデリング中心に再構築する必要が生まれることを説明しました。本稿では、その実現経路をCML、Cozy、AI、Textusの役割に分けて具体化します。
第2回では、SimpleModelingがAI以前から構築してきたModelからExecutable Softwareへの経路と、AIによって変化するKnowledgeからDomain Modelへの工程を整理します。
前回の記事: 📄 なぜソフトウェア開発方法論を再構築するのか
出発点
SimpleModelingの出発点は、モデルを単なる設計文書として扱わないことです。
Model
↓
Executable Software
モデルが実装と切り離されていれば、設計時には有用でも、開発が進むにつれてコードとの乖離が生まれます。モデルの変更を実装へ反映し、実装の状態をモデルへ戻す作業も人間に依存します。その結果、モデルは次第に参照されなくなります。
SimpleModelingは、モデルを実装と実行へ接続された開発上の表現として扱うことを追求してきました。
文芸モデリング
形式的なモデル構造は、オブジェクト、型、関係、制約などを明確にします。構造を選んだ理由、根拠となる業務知識、前提の説明には自然言語も必要です。
文芸モデルは、自然言語による語りと形式的なモデル構造を同じ文書で扱います。人間が設計意図と文脈を読み取れる一方で、ツールやAIは文書構造とモデル要素を処理できます。これにより、知識、説明、モデル、生成物を一つの流れへ接続します。
SimpleModelingは、モデルを人間の理解と機械処理の両方へ接続する方法として、AI以前から文芸モデリングを進めてきました。
CozyとTextusによる実現
モデルを実行可能ソフトウェアにするには、モデルを解釈し、必要な成果物へ変換し、実際に動作させる実現経路が必要です。
Cozyは、CMLや各種DSLを処理し、プログラム、設定、文書などを生成して、CMLを実行可能ソフトウェアへ変換します。変換規則だけでは生成しきれない固有の実装部分はAIが補完します。Textusは、得られた実行可能ソフトウェアを動作させるSimpleModelingの実行プラットフォームです。
Textusは、Security、Observability、Performance、Resiliency、Availabilityなどの品質属性を実行基盤側で提供する方向を取ります。アプリケーションは固有のドメインロジックに集中し、共通の実行品質は実行基盤へ集約します。
残されていた工程
一方で、モデルの手前には、もう一つの変換があります。
Knowledge
↓
Domain Model
ここでいうKnowledgeは、業務の用語、規則、事例、要求、制約、判断の根拠などです。Domain Modelは、この知識を開発目的に応じて構成した問題領域へのViewです。
用語集は言葉の意味と境界を明確にし、ユースケースは業務シナリオに対するモデルの妥当性を確認します。文芸モデルは知識とモデル構造を同じ文書へ置きます。これらの技術はKnowledgeからDomain Modelを構成する作業を支えてきました。
しかし、どの知識を選び、どのViewから捉え、どのオブジェクトや制約として構成するかという変換の主体は、ほぼ人間でした。ModelからExecutable Softwareへの自動化が進んでも、その手前は大きな人手の工程として残っていました。
AIが実用的にするもの
AIは、構造化された知識と自然言語の両方を読み、用語の整理、関連知識の探索、矛盾や不足の発見、モデル案の構成を支援できます。これによって、KnowledgeからDomain Modelへの変換を、人間だけの作業から協業の工程へ変えられます。
ドメインモデルの精度は、ドメインエキスパート、開発者、AIの協業によって高めます。ドメインエキスパートは業務上の妥当性を確認し、開発者は構造、制約、整合性、実現可能性を確認します。AIは知識の整理とモデル化を支援します。三者が結果を確認し、知識とモデルへフィードバックします。
さらにAIは、CozyによるCML変換を補完します。Cozyがモデル変換規則に基づいて実行可能ソフトウェアを生成し、その規則だけでは表現しきれない固有の実装詳細をAIが補います。方法論におけるAIの役割は、知識からモデルを構成する協業と、Cozyの変換結果に残る実装部分の補完です。
橋渡しとしてのBoK
この協業には、ドメインエキスパート、開発者、AIが参照できる共通の知識基盤が必要です。SimpleModelingでは、この役割をBoK (Body of Knowledge)が担います。
BoKは、知識をHTML(Web)として人間へ公開し、AIにはMCPを通して提供します。また、実行可能な知識や機能はコンポーネント (Component)として開発者とAIが利用できます。これにより、同じ知識を起点に議論し、モデルを更新できます。
BoKは、文芸モデリングが接続してきた知識とモデルの関係を、AIとの協業へ拡張する橋渡しです。RDF、Embedding、RAG (Retrieval-Augmented Generation, 検索強化生成)、MCPなどの内部構成はKnowledge Modeling (知識モデリング)の回で扱い、ここでは方法論の歴史上の役割に焦点を当てます。
つながった開発経路
これまでの流れを一つにすると、SimpleModelingが対象とする開発経路は次のようになります。
Knowledge
↓ Domain Expert + Developer + AI
Domain Model
↓ Expressed as CML
CML
↓ Cozy Transformation + AI Completion
Executable Software
↓ Runs on Textus
Execution
Knowledgeは何を作るべきかの根拠を提供します。Domain Modelは問題領域を開発目的に応じたViewとして表し、CMLとして記述されます。CozyはCMLを実行可能ソフトウェアへ変換し、AIはCozyが変換しきれない実装部分を補完します。Textusは、その実行可能ソフトウェアを動作させます。
この経路では、実行結果、テスト、利用者の評価から得られた知見を、ユースケース、用語集、BoK、ドメインモデルへ戻し、反復的に精度を高めます。
変わらないことと変わったこと
| 観点 | 変わらないこと | 変わったこと |
|---|---|---|
|
目標 |
モデルを実行可能ソフトウェアへ接続します。 |
Knowledgeから実行までを一つの協業的な経路として扱えます。 |
|
モデル |
モデルをCMLとして記述し、開発の中心的な表現として扱います。 |
AIが知識整理とCozyの変換結果の補完へ参加します。 |
|
人間の仕事 |
目的、意味、責務、制約を判断します。 |
知識整理と実装の一部をAIと分担します。 |
|
実現 |
CozyがCMLを実行可能ソフトウェアへ変換し、Textusが実行します。 |
AIによる実装部分の補完がCozyの変換経路へ加わります。 |
SimpleModelingは、CMLをCozyで実行可能ソフトウェアへ変換し、Textusで実行する技術を継続して開発してきました。AIは、従来ほぼ人間が担っていたKnowledgeからDomain Modelへの工程を協業可能にし、Cozyが変換しきれない実装部分を補完します。これにより、KnowledgeからExecutable Softwareへの経路を実務的な開発方法論として構成できます。
次回
ここまでで、方法論を再構築する理由と、SimpleModelingが目指してきた歴史的な方向性を確認しました。次回は「モデリング技術体系」として、既存のソフトウェア工学技術をどのような設計判断に基づいて方法論へ組み込むのかを説明します。
参照
用語集
- CML (Cozy Modeling Language)
-
CMLは、Cozyモデルを記述するための文芸モデル記述言語です。 SimpleModelingにおける分析モデルの中核を担うDSL(ドメイン固有言語)として設計されています。 モデル要素とその関係性を自然言語に近い文体で記述できるよう工夫されており、AIによる支援や自動生成との高い親和性を備えています。 CMLで記述された文芸モデルは、設計モデル、プログラムコード、技術文書などに変換可能な中間表現として機能します。
- DSL (Domain Specific Language)
-
DSL(ドメイン固有言語)は、特定の領域(ドメイン)に特化して設計された言語であり、その分野の概念や構造を直接的かつ簡潔に表現することを目的とします。 一般的な汎用プログラミング言語(GPL)に比べ、DSLは特定ドメインの問題解決や自動生成に適した高い抽象度を持ちます。
- 文芸モデル (literate model)
-
文芸モデル(Literate Model)は、モデル構造と自然言語による語り(構造化文書)を統合した「読めるモデル」です。 文芸的プログラミング(Literate Programming)の思想をモデリング領域に拡張し、 構造(モデル)+語り(構造化文書) を一体化することで、人間とAIの双方が理解・操作できる知識表現を実現します。 「Literate Modeling(文芸的モデリング)」という発想自体は、 これまでにも一部の研究者や開発者によって試みられてきました。 しかし、それらは主にドキュメント生成やコード理解の支援にとどまっており、 モデルと言語・語り・AI支援を統合した体系的なモデリング手法として確立されたものではありません。 文芸モデル(Literate Model)は、SimpleModelingがAI時代に向けて新たに体系化・提唱したモデリング概念です。 文芸的モデリングの思想を継承しつつ、 AI協調型の知識循環とモデル生成を可能にする知的モデリング基盤として再構成されています。 文芸モデルは、単なるモデル記述技法ではなく、 人間の思考過程や設計意図を語りとしてモデルに埋め込み、 AIがそれを解析・再構成して設計や生成を支援するための枠組みです。
- BoK (Body of Knowledge)
-
SimpleModelingでは文脈共有の核となる知識体系をBoK (Body of Knowledge)と呼んでいます。 BoKの構築は、知識の共有、教育、AIによる支援、自動化、意思決定支援を可能にするための基盤です。
- コンポーネント (Component)
-
責務・契約・依存関係を明示的に定義し、再利用可能で交換可能な単位としてカプセル化されたソフトウェア構成要素。論理モデルでは抽象構造単位として、物理モデルでは実装・デプロイメント単位として扱われる。
- RDF
-
W3C により標準化された、情報を「主語–述語–目的語」の三つ組(トリプル)で表現するための知識記述モデル。
- 知識モデリング (Knowledge Modeling)
-
知識駆動開発に対応するようビジネス・モデリングを拡張した知識表現のプロセス。ビジネス構造や判断を知識として形式化し、AI支援開発に活用する。
- 検索強化生成 (RAG, Retrieval-Augmented Generation)
-
生成AIが内部(パラメトリック)知識だけでなく、外部の知識ソースを検索してから応答を生成する技術。 RAGはまずデータベースや知識グラフなどから関連情報を検索し、それを文脈として取り込み、より正確で最新の応答を生成する。
