AI時代のソフトウェア開発 文芸モデル駆動アプローチ : 文芸モデルをDSLとした文芸モデル開発と生成AI連携の知識ベース

asami224 9 views 64 slides Oct 31, 2025
Slide 1
Slide 1 of 64
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64

About This Presentation

BPStudyの「生成AI時代のモデリングとは」で発表したスライドです。

https://bpstudy.connpass.com/event/370873/

文芸モデルをDSLとした文芸モデル駆動開発と文芸モデルを知識表現の核とする生成AIの外部知識ベースであるBoKについて説...


Slide Content

AI時代のソフトウェア開発
文芸モデル駆動アプローチ
浅海智晴
SimpleModeling.org主宰
2025年10月31日

自己紹介
•浅海智晴
•Everforthフェロー
•TechFirstLeaders 顧問
•経歴
•富士通: UNIX OS開発(カーネル )、分散ミドルウェア開発
•稚内北星学園大学東京サテライト校:オブジェクト指向分析設計 (講座、ゼミ )
•Everforth:クラウド・プラットフォーム開発 (Scala)
•書籍
•上流工程 UMLモデリング
•マインドマップではじめるモデリング講座
•やさしい UML入門
•Javaオブジェクト・モデリング
•ボクらの Scala 次世代Java徹底入門
•OSS
•SmartDoc
•Relaxer : https://github.com/asami/relaxer
•SmartDox: https://github.com/asami/smartdox
•Arcadia : https://github.com/asami/arcadia
•Cozy : https://github.com/asami/cozy

AIに対する考え方 (浅海主観)
•AIは万能ではない、を前提とするのが無難
•アブダクションできない
•生成AIはスーパー帰納マシン (?)
•演繹AIと協働するような革新はありそう
•記号接地していない
•身体性を持たない
•扱う問題が複雑になるとコストがかかる
•案外簡単にオーバーフローする
•AI(のプロンプトのみ )で一定規模以上の業務プログラム全体を自動コーディングするよ
うになるとは思えない
•CBDの延長線上に自動コンポーネント選定、組み立て、グルーコード生成といった枠組みのアプリ
ケーション開発 (セミ)自動化はある
•とはいえAIは超強力な思考ツールであり、ソフトウェア開発は確実に AIを前提にした開
発方法論/開発体制になる
•AI利用に関する直近の課題は、 AI技術自身がすぐに解決するので、 AI活用の技術につい
ては長い射程で考えたい
•今現在AIができないことでも、いずれできるようになるライン (の仮説)を前提に技術整備を行う

SimpleModeling.org
•2025年7月から
•毎週月曜朝更新
•レスポンシブ・デザイン
•Bootstrap 5
•SSG(Server Site Generation)
•AI/検索エンジンからの視認性を高めるため
•コスト低減
•文芸モデル駆動開発の情報提供
•エキスパートへの ”知の高速道路 ”
•BoK(Retrieval Knowledge Base: 後述)の実現(試行)

サイト構成
•Overview:サイト情報
•Overview
•History
•Disciplines : 技術記事/AI知識対象
•Domain Modeling
•Component-Based Development
•Literate Modeling
•Object-Functional Programming
•Knowledge Development
•Development Process [予定]
•Cloud Native CBD [予定]
•Cross Cutting Concern [予定]
•Object Foundation [予定]
•UX-UI [予定]
•Topics:AI知識非対称
•Blog
•MaruLabo
•Sessions
•Lexicon:語彙/AI知識対象
•Glossary
•Tag [予定]
•Keyword [予定]
•Rule [予定]
•Specification [予定]

ビジョン
•Literate Model-Driven Cloud-Native Development with
Object-Functional Paradigms for the AI Era
•Literate Model-Driven : 文芸モデル駆動
•Cloud-Native Development : クラウド・ネイティブアプリケー
ション開発
•Object-Functional Paradigms : オブジェクト関数モデルを採

•The AI Era : AI時代の新しい枠組みを探究

ゴール
•クラウド・アプリケーション向けの開発メソッドを整備
•エキスパートへの ”知の高速道路 ” -ステップ1
•文芸モデル駆動開発を確立
•エキスパートへの ”知の高速道路 ” –ステップ2
•文芸モデル駆動開発から知識駆動開発への移行を試行
•オープン・ソースのツールとテキスト・フォーマットによる開
発現場に接地した環境で、エンジニアに無理のない形での知識
駆動開発への移行パスを提供する

ツール
•SmartDox
•テキスト文書フォーマット &文書処理システム
•Knowledge Base記述言語&システム
•SmartDoc後継
•浅海作
•Cozy
•CMLモデルコンパイラ
•Relaxer後継
•浅海作
•Arcadia
•Server Side Generator
•浅海作
•Antora/Asciidoc
•文書処理システム&テキスト文書フォーマット

BoKビルディング
https://www.simplemodeling.org
/ja/overview/bok-building.html
SimpleModeling.orgサイトの運用

セッションの流れ

補助線:CSVをAIで直接移入

補助線:CSVをAIでJSONに変換、JSONを移入

補助線:CSVを移入するプログラムを AIで生成

補助線:CSVを移入するプログラムを DSLコンパイラが生成、 AIはDSLを生成

補助線:CSVを移入するプログラムを生成するための DSLをAIが知識ベースを使って生成

SimpleModeling開発メソッド

SimpleModeling開発メソッド
•CBD (Component-Based Development)
•ユースケース駆動
•ドメイン・モデル・セントリック
•CI/CDレディ
•分析モデル・アップ・ダウン
•ビジネス・モデリング・ニュートラル
•開発プロセス・ニュートラル
•UX/UIニュートラル
•クラウド・アプリケーション
•オブジェクト関数プログラミング

MaruLabo
•クラウド・アプリケーション開発のためのオブジェクト指向分
析設計講座
•https://www.marulabo.net/seminartype/asami/
•UP(Unified Process)をベースに (AI以前の)最新技術を取り込んで再構

•アジャイル開発
•クラウド・アプリケーション
•オブジェクト関数プログラミング
•DevOps
•BDD/TDD クラウドアプリケーションのためのオ
ブジェクト指向分析設計講座
https://www.simplemodeling.org/ja/
marulabo/ooadlecture.html

[予定] 開発メソッド、開発プロ
セス、メタ・プロセス・フレー
ムワーク
SimpleModelingメタ・プロセス・フレームワーク

ドメイン・モデルの基本構成要素
https://www.simplemodeling.org/ja/
domain-modeling/domain-model-
elements.html
SimpleModelingメソッド:ドメイン・モデル

概念モデル /分析モデ
ル/設計モデル
https://www.sim
plemodeling.org/j
a/domain-
modeling/concep
t-analysis-
design.html
SimpleModeling
メソッド:
概念/分析/設計

CBD (Component-Based Development)
•コンポーネントを軸とした開発手法
•コンポーネント
•論理モデルと物理モデルを統合した部品
•開発の基本単位
•テストの単位、配備の単位、ドキュメントの単位
•サブシステム
•境界化文脈 (Bounded Context)単位にパッケージされたコンポーネント
•システム
•サブシステムを組み立てて構築

クラウドアプリケーションのためのオ
ブジェクト指向分析設計講座
https://www.simplemodeling.org/ja/
marulabo/ooadlecture.html

コンポーネントの位置付け

Scala
•パラダイム
•オブジェクト指向プログラミング
•関数型プログラミング
•Monad, Applicative, Monoid
•汎用プログラミング
•型推論、高階型、型クラス
•生成プログラミング
•汎用プログラミングとの統合、マクロ、自動導出
•内部DSL構築
•Scalable
文芸モデル駆動開発のための Scala
https://www.simplemodeling.org/ja/object-
functional-programming/scala-literal-mdd.html

クラウド・ネイティブへのアプローチ
•豊富なミドルウェア
•内部DSL/フレームワーク
•豊富なクラウド・サービス
•CBD
•並列・並行・分散
•内部DSL/フレームワーク
•関数
•セキュリティ
•内部DSL/フレームワーク
•モデリング
•オブザーバビリティ (可観測性)
•内部DSL/フレームワーク クラウドアプリケーションのためのオブジェクト指向
分析設計講座
https://www.simplemodeling.org/ja/marulabo/o
oadlecture.html

文芸モデル駆動開発

文芸モデル
•KnuthのLiterate Programming(文芸的プログラミング )をモデリングに適用
•Literate Modelingは先行事例はあるが、 UMLなどのモデリング言語にコメントで文
章をつけるもの
•SimpleModelingの文芸モデリング (Literate Modeling)の文芸モデル
(Literate Model)は文書内に文章とモデルを一体化したものを記述する
•本来のLiterate Programmingに近い
•文芸モデルの記述に SmartDoxをメタ言語とした CML(Cozy Modeling
Language)を使用
•SmartDox:テキストベースの知識記述言語
•CML:オブジェクト関数モデルの知識記述言語
•開発者、ド メイン・エキスパート、 AIで共有する知識を記述する
•構造・半構造・非構造の多層構造の文書からそれぞれの目的の情報を取得する
文芸モデル
https://www.simplemodeling.org/ja/literate-
modeling/what-is-literate-model.html

文芸モデル駆動開発
•文芸モデルを DSLとするモデル駆動開発
•CML(Cozy Modeling Language)でオブジェクト関数モデルを記

•CMLからプログラム /コンポーネントの自動生成
•SimpleModelingメソッドのアーキテクチャに準拠したプログラムの生
成を行う
•SimpleModelingReference Profile(SMRP)
•実行プラットフォームをプロファイルとして定義
•デフォルト: Scala + Cloud Native Component Framework

Cloud Native Component Framework
•クラウド・アプリケーションの動作基盤を抽象化して定義した
コンポーネント・フレームワーク
•使用するクラウド・プラットフォームをプロバイダとして接続
して利用
•SimpleModelingではテスト用途のモック・プロバイダを提供予
定。

SmartDox
•知識記述言語
•BoKサイト化することで RKB(RAGと連携できる知識ベース )化
•テキスト文書フォーマット&文書処理システム
•文法
•(Markdown(GHF) + org-mode + Asciidoc+XML) /4
•メタ情報記述
•マルチリンガル
•データソース機能
•Excel, CSV
•文芸DSLメタ言語

SmartDox例
From Programming to Meta-Programming
===========================
# HEAD
status=work-in-progress
published_at=YYYY-MM-DD
title_image="https://images.unsplash.com/photo-
1610564555079-
818dff7d63fd?q=80&w=1920&auto= format&fit=crop"
## HEADLINE
AIとDSLが拓く新時代 ──プログラミングの焦点はメタ層へ
移りつつあります。
## BRIEF
AIが開発の現場に入り始め、ボイラープレートや定型コード
の生成が日常化しつつあります。
これに伴い、エンジニアの関心はコード記述そのものから、
生成をどう設計し制御するかへ移っています。
# The Reality of AI Development|AI開発の現実
AIは、これから開発の実務で中心的な技術になりそうな段階
にあります。
多くの現場で実験的な導入が始まり、
コード生成、テスト補助、リファクタリングなどで実際の成
果も出ています。
しかし現状の AI駆動開発は、プロンプトを通じて AIに指示を
与え、
期待する出力を引き出すことに依存しています。
プロンプトは柔軟ですが曖昧で、
入力のわずかな違いで結果が変わるため、再現性や整合性を
確保するのが難しい。
この構造では、 AIは“強力な生成器”であっても、
工学的に安定した開発の構成要素にはなりにくいのです。
この課題を解決する鍵が、 DSL、メタ・プログラミング、
BoKです。
# From Prompts to Structure|プロンプトから構造と知識へ

LexiDox
•SmartDoxをメタ言語にしている語彙記述言語
•メタデータとして各種情報を記述
•本文はSmartDox文法で記述

LexiDox例
CML
===
status=published
published_at=2025-09-08
# ACRONYM
- Cozy Modeling Language
# DEFINITION
CMLは、Cozyモデルを記述するための文芸モデル記述言語です。
SimpleModelingにおける分析モデルの中核を担う DSL(ドメイン固有言語)として設計されています。

Cozy Modeling Language
•SmartDoxをメタ言語とするオブジェクト関数モデル記述言語
•エンティティ・モデル
•イベント・モデル (予定)
•状態機械モデル (予定)
•コンポーネント・モデル (予定)
•ユースケース・モデル (予定)

CML例
SimpleObject
============
本モデルは、 SimpleModeling.org におけるドメイン・モデル
の汎用的なエンティティの
ベース・オブジェクトである SimpleObject を定義します。
この型は、名前・説明・ライフサイクル・公開・セキュリ
ティ・監査・コンテキスト等の共通的な
属性群を委譲構造で保持し、
状態機械( PostStatus, Aliveness)によるエンティティの状
態管理と組み合わせることで、
アプリケーションが使用するエンティティ群の一貫した管理
モデルを実現します。
# Class
## SimpleObject
SimpleObjectは、サブクラスの SimpleEntityを経由して
全てのドメイン・エンティティのベース・クラスとなる
抽象オブジェクトです。
また必要に応じてバリュー・オブジェクトの基底クラスにも
なります
主に以下の特徴を持ちます:
- 各種属性群をバリュー・オブジェクトとして委譲
- 投稿状態・活性状態のステートマシンを保持
- 監査情報(バージョン・変更履歴)やコンテキスト情報(外
部連携ID、表示優先度など)も包括
### Delegates
- NameAttributes
- ExplanatoryAttributes
- LifecycleAttributes
- PublicationAttributes
- SecurityAttributes
- ResourceAttributes
- AuditAttributes
- ContextualAttributes
### StateMachines
- PostStatus
-Aliveness

# Entity
## SimpleEntity
SimpleEntityは全てのエンティティのベース・クラスとなる
抽象クラスです。
SimpleObjectの全性質を受け継いだ上で、永続的識別子 (id)
を設定しています。
### Base
-SimpleObject
### Attributes
| name | type | mult| description |
|------+------------+------+---------------------------------
------|
| id | identifier | 1 | 永続的な論理識別子。 URL、DSL、
ソースコードなどで一貫して使用される。 |
# Value
SimpleEntity, SimpleObjectで属性の定義に使用しているバ
リュー・オブジェクトです。
## NameAttributes
ドメイン・オブジェクトの名前を記述するバリュー・オブ
ジェクトです。
目的別に複数の名前を持つことができます。
### Attributes
| name | type | mult| description |
|---------+------------+------+------------------------------
---|
| name | name | 1 | オブジェクト名。プログラムで使
用 |
| label | i18n_label | ? | ラベル名。 UI表示用のラベル
|
| title | i18n_title | ? | タイトル名。ドキュメントや画面の
見出し |
| code | identifier | ? | アプリケーション管理上のコード
|
| alias | i18n_label | * | 略称・別名などのシノニム群
|
| slug | slug | ? | URLやルーティング用の短縮名
|
| shortid| identifier | ? | 短縮ID(UI・印刷用など)
|

[予定]文芸駆動開発のメカニズム
文芸駆動開発

[予定]文芸駆動モデルと CBD
Component-Based Development

概念モデル /分析モデル
/設計モデル
https://www.simplem
odeling.org/ja/domain
-modeling/concept-
analysis-design.html
分析モデル・アップ・ダウン

SimpleModelingの運用イ
メージとモデル展開
https://www.simplemodel
ing.org/ja/blog/cozy-
method.html
文芸モデル駆動開発
とシステム・アーキテクチャ

語彙を通じたワールド間連携

文芸モデル駆動開発と AI

文芸モデル駆動開発と AI
•文芸モデルが表現する構造データ、半構造データ、非構造デー
タの各層が AIの知識表現と接続する
•AI活用のポイント
•CBDを用いてコンポーネント境界で分割統治
•ドメイン・モデル、アプリケーション・モデルそれぞれのアプローチ
•外部DSL、内部DSLによる分割統治
[予定]AI自動コーディングの課題と対策 :文芸
モデル駆動と CBDによる構造的アプローチ

AI支援のポイント
•自動プログラミング
•分析・設計支援
•コンポーネント技術の本格活用が可能になる
•コンポーネント検索
•コンポーネント仕様理解
•コンポーネント接続グルーコード生成
•コンポーネントテスト・セット生成
•ユースケースとコンポーネントの接続性の検証

Component-Based DevelopmenとAI

文芸駆動開発と AI

AIの生成対象プログラム

BoK(Body of Knowledge)

BoK
•BoK(Body of Knowledge)
•SimpleModelingの知識ベース (Knowledge Base)
•SmartDox文書から構築
•テキスト・ベースで簡単に構築できる
•生成AIのRAGに接続
•MCP
•JSON-LD
•コンポーネントも構成要素に加える予定
•知識ベースと統合化されたコンポーネント・リポジトリ
•将来的にセマンティクス Web系の技術と統合化されていくことにな
ると思う

知識表現
•Representation View
•SmartDoxサイトによる半構造データ
•SmartDox文書による半構造データ
•Semantic View
•意味ネットワーク
•RAG連携
•Literate View
•人間に理解可能な知識を SmartDoxで記述
•Process View
•Retrieval Knowledge BaseとしてRAGと連携
[予定]知識表現としての BoK

AI協調のための BoK生成
アーキテクチャ
https://www.simplemo
deling.org/ja/knowledg
e-development/ai-
collaboration-
architecture.html
生成AIリファレンス・アーキテクチャ

BoKアーキテクチャ

サイトの目的
https://www.simplemodeling.org/ja/overview/purpose.html
BoKビルディング
https://www.simplemodeling.org/ja/overview/bok-building.html
BoKからの展開

AI協調のための BoK生成アーキテクチャ
https://www.simplemodeling.org/ja/knowledge-
development/ai-collaboration-architecture.html
SmartDoxサイト→BoKサイト

AI協調のため
のBoK生成
アーキテク
チャ
https://www.
simplemodeli
ng.org/ja/kno
wledge-
development
/ai-
collaboration
-
architecture.
html
BoKの生成

SmartDoxで行なっている知識化の工夫
•RAG向けに様々な工夫を行なっている
•JSON-LDによるメタ情報付加
•用語集
•本文中用語の自動リンク
•本文間リンクの収集
•予定
•タグ、キーワード
•CMLに対応する MCP
•セマンティクス Web

BoK技術の展開

知識をユビキタス言語にする

知識開発
•ソフトウェア開発は知識開発になる (長期視点 )
•モデル
•語彙を通じて知識の一部になる
•コンポーネント
•問題解決の手段を提供する知識として知識の一部になる
•知識駆動開発
•モデル駆動開発から知識駆動開発へ
•問題領域の問題解決のための知識の構築の成果物としてソフトウェア
(問題解決の手段として動くプログラム )が生み出される

まとめ

記事一覧(1/2)
•MaruLabo
•クラウドアプリケーションのためのオブジェクト指向分析設計講座
•https://www.simplemodeling.org/ja/marulabo/ooadlecture.html
•Domain Modeling
•プロファイル:基本データ型
•https://www.simplemodeling.org/ja/domain-modeling/base-datatype-profile.html
•ドメイン・モデルの基本構成要素
•https://www.simplemodeling.org/ja/domain-modeling/domain-model-elements.html
•概念モデル /分析モデル /設計モデル
•https://www.simplemodeling.org/ja/domain-modeling/concept-analysis-design.html
•エンティティの分析と設計
•https://www.simplemodeling.org/ja/domain-modeling/analysis-design-entity.html
•SimpleObject
•https://www.simplemodeling.org/ja/domain-modeling/simple-object.html
•観測記録
•https://www.simplemodeling.org/ja/domain-modeling/observation.html
•Overview
•サイトの目的
•https://www.simplemodeling.org/ja/overview/purpose.html
•BoKビルディング
•https://www.simplemodeling.org/ja/overview/bok-building.html
•Knowledge Development
•AI協調のための BoK生成アーキテクチャ
•https://www.simplemodeling.org/ja/knowledge-development/ai-collaboration-architecture.html

記事一覧(2/2)
•Blog
•SimpleModelingの運用イメージとモデル展開
•https://www.simplemodeling.org/ja/blog/cozy-method.html
•用語集の運用
•https://www.simplemodeling.org/ja/blog/glossary-feature.html
•AI駆動のプログラム自動生成 ―可能性と課題
•https://www.simplemodeling.org/ja/blog/dsl-ai.html
•AI時代のComponent-Based Development
•https://www.simplemodeling.org/ja/blog/cbd-ai.html
•Component-Based Development
•エラー・コンセプト
•https://www.simplemodeling.org/ja/component-based-development/error-concept.html
•Literate Modeling
•文芸モデル
•https://www.simplemodeling.org/ja/literate-modeling/what-is-literate-model.html
•Object-Functional Programming
•文芸モデル駆動開発のための Scala
•https://www.simplemodeling.org/ja/object-functional-programming/scala-literal-mdd.html
•Knowledge Development
•AI協調のための BoK生成アーキテクチャ
•https://www.simplemodeling.org/ja/knowledge-development/ai-collaboration-architecture.html

「生成AI時代のモデリング とは」
•一定規模以上の業務アプリケーションを AIコーディングのみで開発するのは難しいので
はないか。
•AIコーディングが強力であるのは確か。適材適所で使いたい。
•分割統治
•CBD
•抽象度を上げる
•モデル中心
•プログラミングからモデリングへ
•関数
•DSL駆動開発
•外部DSL/内部DSL
•AIとの連携
•文芸駆動開発
•BoK
•知識開発

展望
•ソフトウェア開発はメタの時代へ
•メタ・プログラミング
•メタ・モデリング
•知識の蓄積と AIによる活用
•プログラミング支援
•分析・設計支援
•コンポーネント活用
•ソフトウェア開発から知識開発へ
•情報から知識へ
•モデルから知識へ
•コンポーネントも問題解決のための手段として知識の一部となる