サイトの目的
SimpleModeling.org は、モデリングを中心としたソフトウェア開発の技術情報サイトです。
文芸モデル駆動開発 (Literate Model-Driven Development) を軸に、以下のような関連技術に関する知識体系と実践情報を提供します。
-
ドメイン・モデリング
-
オブジェクトと関数の統合
-
コンポーネント指向開発
-
クラウド・ネイティブ・アプリケーション構築
また文芸モデル駆動開発と生成AIを組み合わせることにより、次世代の開発方法論の構築・普及を目指しています。
本サイトの3つの目的
-
ソフトウェア開発のエキスパートになる早道を提供すること
-
文芸モデル駆動開発による一貫した開発方法論を示すこと
-
AI駆動開発を支える技術基盤を提供すること
以下、それぞれの目的について詳しく説明します。
エキスパートへの早道
SimpleModeling.org では、以下の分野における統一的な知識体系と実践パターンを提供します。
-
ドメイン・モデリング(Domain Modeling)
-
コンポーネント指向開発(Component-Based Development)
-
クラウド・ネイティブ・アプリケーション構築(Cloud-Native Application)
-
オブジェクト・関数統合型プログラミング(Object-Functional Programming)
これらの技術はソフトウェアの設計・実装・運用を支える中核技術であり、モデル駆動やAI支援との親和性も高く、将来性のある領域です。
当サイトでは、これらの技術を実務に活かすための再利用可能な知見やツールを体系的に紹介し、開発者が、最短ルートで実力を身につけられるよう支援します。
文芸モデル駆動開発
文芸モデル駆動開発は、自然言語と構造化記述を組み合わせたCML(Cozy Modeling Language)によりモデルを表現し、そこから自動生成されたコードをカスタマイズしてアプリケーションを構築する開発手法です。
モジュール構成
文芸モデル駆動開発は、以下の4つのモジュールで構成されます。
- CML (Cozy Modeling Language)
-
文芸モデルを自然言語+構造化テキストで記述するための言語
- Cozy
-
CML からプログラムを自動生成するモデルコンパイラ
- SimpleModelingLib
-
Scala / Cats ベースのクラスライブラリ。文芸モデル駆動開発に必要な基本機能を提供
- Cloud-Native Component Framework
-
コンポーネント単位でクラウド・ネイティブ・アプリケーションを構築するための実行基盤
文芸モデル駆動開発の活用
本サイトでは文芸モデル駆動開発がテーマの一つとなっています。
-
モデル駆動開発の採用による開発効率の向上
-
モデル駆動開発によるAI駆動開発への基盤の確立
同時にモデリング技術の解説を文芸モデル駆動開発と並行して行なっているのはモデリング技術解説の具体的なベースとなるからです。
モデリング技術の解説では、基本データ型やエラー・システムなどの基盤が定まっていないと、汎用的ではあるものの具体的な実装に落とせるものとは少し距離のあるモデルになりがちです。
この問題に対応するため、プログラミングによる実装のための基盤を定義した上で、モデリングの技術解説を行います。
この基盤として文芸モデル駆動開発の実行基盤を使用します。
またAI駆動開発を考える上でも、プログラミング層よりもモデリング層の抽象度でAIとの連携を考えた方が適切な場合も多いと思われます。
この観点でも文芸モデル駆動開発をベースに議論を進めていきます。
AI駆動開発の基盤提供
SimpleModeling.orgでは、開発の各ステージにおいてAIによる支援を活用できるように、以下のような情報構造と連携手段を整備しています。
CML : 人とAIの橋渡し
SimpleModeling.orgでは、ソフトウェア開発における文脈情報をAIに学習させることで、最小限の指示で正確なコード生成や設計補助が可能になることを目指します。
CMLで記述された文芸モデルは以下の特徴を持ちます。
-
人間にとって理解しやすい自然言語ベースの記述
-
コンピュータにとって処理可能な構造化データ形式
-
AIにとって学習しやすい両面性を持つモデル記述
現実世界のさまざまな情報からAIの支援によってCMLを作成することで、CMLを入力としたモデル駆動開発を進めることができます。
BoK(知識体系)
AI駆動開発を行うために開発者とAIが共有する知識の文脈をSimpleModelingではBoK(Body of Knowledge)と呼びます。
SimpleModeling.orgサイトが提供する情報そのものが文芸モデル駆動開発のBoKになっています。
SimpleModelingの知識体系であるBoKは、AIに文脈や用語の意味、構造的背景を教えるための重要な情報資源です。
開発者がWebページとして読む情報を、AIは文芸モデル駆動開発を進めるための文脈を記述したプロンプトとして学習することができます。
動作基盤
Cozyが生成するプログラムの動作基盤は以下のものから構成されます。
- Programming Environment
-
Scala/Catsによるオブジェクト指向&関数型プログラミング基盤
- SimpleModelingLib
-
文芸モデル駆動開発の実行基盤を提供するライブラリ
- Cloud Native Component Framework
-
クラウド・ネイティブ機能を実現するコンポーネント・フレームワーク
プログラミング環境にScala/Catsを採用しているのは、プログラミングが型ベースの数理モデルに近いものであるほど、曖昧さを排除してAIによる支援の精度を上げることができると考えられるためです。
これらの構成要素から提供される各種APIが実行環境に対するDSL(Domain Specific Language)を構成します。
実行環境のDSLが定まることで、AIはより適切な開発支援を行うことができます。