Harness EngineeringとSimpleModeling
Harness Engineeringは、AI時代において不可欠な基盤です。AIがコード生成を加速する一方で、構造の不安定性や品質属性 (Quality Attribute)の欠落が顕在化しています。これらを抑制するには、実行側で制約 (Constraint)と保証を与える仕組みが必要です。
SimpleModelingは、BoK(知識基盤)からDSL、実行基盤までを一貫して接続し、「意味に基づいて実行を制御するHarness」を提供します。その結果、開発者はドメインロジックに集中しつつ、AI生成コードも含めて一貫した品質と再現性を確保できます。
Harness Engineeringの本質
Harness Engineeringとは、アプリケーションを直接実行するのではなく、実行を制御する基盤(Harness)を介して動作させることで、品質・再現性・安全性を統一的に担保するアプローチです。
その本質は、ソフトウェアを直接動かすのではなく、制約された実行環境を通じて動作させる点にあります。この考え方は、DevOpsやPlatform (プラットフォーム) Engineeringが提供する基盤の上で、実行のあり方を定義し、品質を統一的に担保する役割を担います。
-
品質属性をフレームワーク側に集約する
-
再現性と安全性を担保する
SimpleModelingの構造
SimpleModelingは、次の4層構造を持ちます。
-
BoK(知識基盤)
-
文芸モデル (Literate Model)(Literate Model (モデル))
この構造は、単なる実行制御 (Execution Control)にとどまらず、「意味 → 仕様 → 実行」を一貫して扱うことを目的としています。
Executable Harnessという概念
SimpleModelingが提示するのは、単なるHarnessの拡張ではなく、ドメイン構造と品質属性があらかじめ固定された実行枠組みとしてのHarnessです。
従来の開発では、ドメイン構造、実行方式、品質属性が明確に分離されているわけではなく、実際には一体として設計・実装する必要がありました。熟練した開発者はこれらを意識的に分離して扱うことができますが、そうでない場合は構造が混在し、複雑で不安定な実装になりがちです。AIによる生成コードも同様に、このような混在した構造になりやすい傾向があります。
SimpleModelingでは、この問題に対して、ドメイン構造はDSLとモデルコンパイラによって定義され、品質属性は実行基盤(CNCF)によって担保される形で明確に分離・固定されます。
その結果、開発者は構造や品質属性を個別に設計する必要がなくなり、ドメインロジックの記述に専念できるようになります。
この「構造と品質が固定された実行枠組み」こそが、Executable Harnessの本質です。これは、Harness Engineeringを構造レベルで実現したものと言えます。
まとめ
SimpleModelingは、Harness Engineeringと高い親和性を持ちながら、その対象領域を「意味」まで拡張します。それは単なる実行基盤ではなく、意味・仕様・実行を一貫したものとして扱うための開発基盤です。このアプローチにより、開発者はドメインロジックに集中しながら、AI生成コードを含めたシステム全体の品質と再現性を安定して確保することができます。これは、AI時代におけるソフトウェア開発の新しい基盤モデルを示すものです。
参照
用語集
- BoK (Body of Knowledge)
-
SimpleModelingでは文脈共有の核となる知識体系をBoK (Body of Knowledge)と呼んでいます。 BoKの構築は、知識の共有、教育、AIによる支援、自動化、意思決定支援を可能にするための基盤です。
- DSL (Domain Specific Language)
-
DSL(ドメイン固有言語)は、特定の領域(ドメイン)に特化して設計された言語であり、その分野の概念や構造を直接的かつ簡潔に表現することを目的とします。 一般的な汎用プログラミング言語(GPL)に比べ、DSLは特定ドメインの問題解決や自動生成に適した高い抽象度を持ちます。
- シンプルモデリング (SimpleModeling)
-
SimpleModelingは、KnowledgeからDomain Modelを構成し、CMLで形式化し、CozyとAIによって実行可能ソフトウェアへ実現し、Textus上で動作させる、モデリング中心のソフトウェア開発方法論と技術体系です。
- 品質属性 (Quality Attribute)
-
Quality Attributeとは、ソフトウェアが機能を実行できることに加えて、どの程度の品質で要求を満たすかを表す特性です。Security、Performance、Availability、Reliability、Resilience、Observability、Maintainabilityなどが含まれます。
- 制約 (Constraint)
-
UMLにおけるConstraintは、一つ以上のModel ElementのSemanticsの一部を宣言するため、自然言語または機械可読言語で表した条件または制限です。評価結果はBooleanであり、評価は副作用を持ちません。
- プラットフォーム (Platform)
-
Platformとは、ソフトウェアを構築、配置、実行、運用するために共通して利用する技術的な基盤とサービスの集合です。
- モデル (Model)
-
Modelとは、対象を特定のPurposeとConcernに基づいて選択し、理解、判断、検証、構築に利用できる形で表した抽象です。対象そのものではなく、目的に必要な要素、関係、意味を保持する表現です。
- 文芸モデル (Literate Model)
-
Undefined
- Cozy Modeling Language (CML)
-
CML(Cozy Modeling Language)は、オブジェクト・モデルのうち、プログラム生成と実行へ接続する実行可能モデルを記述するSimpleModelingの形式モデリング言語です。
- Cozy
-
Cozyは、CMLと各種DSLで記述されたModelを解析し、プログラム、設定、文書などの実現成果物へ変換するSimpleModelingのツールチェーンです。
- Cloud Native Component Framework (CNCF)
-
Cloud Native Component Framework(CNCF)は、クラウド・アプリケーションを構成するコンポーネントを、単一かつ一貫した実行モデルで実行するためのフレームワークです。 Component / Service / Operation という構造を中核とし、command、server(REST / OpenAPI)、client、script といった異なる実行形態から、同一の Operation を再利用できることを特徴とします。 ログ、エラー処理、設定、配備といったクラウド・アプリケーションに必要な品質属性をフレームワーク側に集約することで、コンポーネントはドメイン・ロジックの実装に集中できます。 CNCF は、文芸モデル駆動開発および AI 支援開発を前提に、「何を実行するか」と「どのように呼び出すか」を分離するための実行基盤として設計されています。
- 実行制御 (Execution Control)
-
Undefined