Purpose of This Site

ASAMI, Tomoharu Created: 2025-07-21

SimpleModeling.org is a technical information site focused on modeling-centric software development.

Centered around Literate Model-Driven Development (Literate MDD), the site provides a structured body of knowledge and practical guidance on the following related technologies.

It also aims to develop and promote next-generation development methodologies by combining Literate MDD with generative AI.

Purpose of This Site

  • To provide a fast track to becoming a software development expert

  • To present a consistent development methodology through Literate Model-Driven Development

  • To provide the technical foundation for AI-driven development

The following sections explain each of these purposes in more detail. == Fast Track to Expertise

SimpleModeling.org provides a unified body of knowledge and practical patterns in the following areas:

These technologies are core to software design, implementation, and operations. They are also highly compatible with model-driven and AI-assisted development, making them promising for the future.

This site systematically introduces reusable knowledge and tools to help developers apply these technologies in practice and build real expertise via the shortest path.

Literate Model-Driven Development

Literate Model-Driven Development is a development approach where models are described using CML (Cozy Modeling Language), which combines natural language with structured notation, and applications are built by customizing the automatically generated code from those models.

Development Steps

  1. Describe the literate model using CML

  2. Automatically generate domain components using Cozy

  3. Customize the generated components

  4. Integrate into the application and run

Module Structure

Literate Model-Driven Development consists of the following four modules:

CML (Cozy Modeling Language)

A language for describing literate models using natural language and structured text

Cozy

A model compiler that automatically generates programs from CML

SimpleModelingLib

A Scala/Cats-based class library providing essential functionality for literate model-driven development

Cloud-Native Component Framework

A runtime platform for building cloud-native applications based on components

Applying Literate Model-Driven Development

Literate Model-Driven Development is one of the key themes of this site.

  • Improving development efficiency through model-driven development

  • Establishing a foundation for AI-driven development through model-driven approaches

We explain modeling techniques alongside Literate Model-Driven Development because it provides a concrete foundation for such explanations.

When explaining modeling techniques, without a foundation of basic data types, error handling, and system structure, models tend to remain general-purpose and difficult to apply directly to concrete implementations.

To address this issue, we define a practical foundation for implementation in programming before delving into modeling techniques.

We use the runtime platform of Literate Model-Driven Development as this foundation.

In considering AI-driven development, it is often more appropriate to think about integration with AI at the modeling layer, which offers a higher level of abstraction than the programming layer.

From this perspective as well, we base our discussions on Literate Model-Driven Development.

Providing the Foundation for AI-Driven Development

At SimpleModeling.org, we are developing information structures and integration mechanisms that enable AI-assisted support at every stage of the development process.

CML: Bridging Humans and AI

At SimpleModeling.org, we aim to enable accurate code generation and design assistance with minimal prompts by allowing AI to learn the contextual information involved in software development.

Literate models written in CML have the following characteristics:

  • Natural language-based descriptions that are easy for humans to understand

  • Structured data format that computers can process

  • A dual-natured model representation that is easy for AI to learn from

By using AI to assist in generating CML from various real-world information sources, we can enable model-driven development using CML as its input.

BoK (Body of Knowledge)

In SimpleModeling, the contextual knowledge shared between developers and AI for AI-driven development is referred to as the BoK (Body of Knowledge).

The content provided on the SimpleModeling.org site itself constitutes the BoK for Literate Model-Driven Development.

The BoK, as a structured knowledge system of SimpleModeling, serves as a key informational resource for teaching AI the context, meaning of terms, and structural background.

The information that developers read as web pages can be learned by AI as prompts that encode the context necessary to advance Literate Model-Driven Development.

Runtime Platform

The runtime platform for programs generated by Cozy consists of the following components:

Programming Environment

Programming Environment :: Object-oriented and functional programming foundation using Scala and Cats

SimpleModelingLib

A library that provides the runtime foundation for Literate Model-Driven Development

Cloud Native Component Framework

A component framework that enables cloud-native capabilities

Scala and Cats are chosen for the programming environment because the closer programming is to type-based mathematical models, the more ambiguity is eliminated and the more precise AI support can become.

The various APIs provided by these components form a domain-specific language (DSL) for the runtime environment.

By defining a DSL for the runtime, AI can provide more effective development assistance.

Integration with Cloud Platforms

By implementing adapters that conform to the Service Provider Interface (SPI) of the Cloud Native Component Framework, applications can be run in cloud environments.

AI-based code generation can be leveraged to assist in developing these adapters.

Diagram: Architecture for AI Utilization

Architecture for AI Utilization
Figure 1. Architecture for AI Utilization

References

Glossary

Literate Model-Driven Development (LMDD)

Literate Model–Driven Development (LMDD) is a software development methodology that integrates natural-language narrative and formal model structure within a unified text-based framework. It extends conventional Model–Driven Development (MDD) by treating documentation and models as a single, consistent source of truth. In LMDD, the descriptive and structural elements of development artifacts are expressed together using the SmartDox language. From this unified representation, ModelDox extracts structural data, CML (Cozy Modeling Language) defines domain-specific models, and Cozy generates executable code, documentation, and configuration artifacts. Artificial intelligence participates in the LMDD process by analyzing the narrative context, validating structural consistency, and supporting the refinement of models and generated artifacts. All artifacts are represented in text form, ensuring traceability, version control, and interoperability within standard development environments. By defining a formally connected and machine-interpretable relationship between documentation, design, and implementation, LMDD provides a foundation for AI-assisted model–driven engineering where human authorship and automated reasoning operate on the same representational layer.

CBD (Component-Based Development)

Component-Based Development (CBD) is a software development approach in which systems are constructed and reused through components that define clear responsibilities, contracts, and interfaces. Components are designed to be independent and replaceable, enabling loosely coupled architectures that improve maintainability and reusability. In the logical model, a component serves as an abstract structural unit defining functionality and contracts; in the physical model, it corresponds to implementation and deployment units.

CML (Cozy Modeling Language)

CML is a literate modeling language for describing Cozy models. It is designed as a domain-specific language (DSL) that forms the core of analysis modeling in SimpleModeling. CML allows model elements and their relationships to be described in a narrative style close to natural language, ensuring strong compatibility with AI support and automated generation. Literate models written in CML function as intermediate representations that can be transformed into design models, program code, or technical documentation.

literate model

A Literate Model is a “readable model” that integrates model structure with natural-language narrative (structured documentation). It extends the idea of literate programming into the modeling domain, unifying structure (model) and narrative (structured text) into a single intelligible artifact interpretable by both humans and AI. The concept of “Literate Modeling” has been explored previously by some researchers and developers, mostly as an approach to improve documentation or code comprehension. However, those attempts did not establish a systematic modeling methodology that integrates models, narrative, and AI assistance as a unified framework. The Literate Model is a modeling concept newly systematized and proposed by SimpleModeling for the AI era. Building upon the ideas of literate modeling, it redefines them as an intelligent modeling foundation that enables AI-collaborative knowledge circulation and model generation. It is not merely a modeling technique but a framework that embeds human reasoning and design intent as narrative within the model, enabling AI to analyze and reconstruct them to assist in design and generation.

Component

A software construct that encapsulates well-defined responsibilities, contracts, and dependencies as a reusable and replaceable unit. In the logical model, it serves as an abstract structural unit; in the physical model, it corresponds to an implementation or deployment unit.

error

A generic term used broadly in practice. In software engineering, it is ambiguous and may denote bugs or failures in general. In SimpleModeling, Error is treated as a broad label, with specifics clarified as Mistake, Defect, Fault, Failure, or Deviation.

BoK (Body of Knowledge)

At SimpleModeling, the core knowledge system for contextual sharing is called the BoK (Body of Knowledge). The goal of building a BoK is to enable knowledge sharing, education, AI support, automation, and decision-making assistance.

Prompt

A structured instruction or contextual representation that bridges retrieved knowledge (RAG) and the AI model’s reasoning process. It transforms the structured knowledge from the BoK into a narrative or directive form that the model can interpret, act upon, and internalize.

DSL (Domain Specific Language)

A DSL (Domain-Specific Language) is a language designed for a particular domain, enabling direct and concise expression of the domain’s concepts and structures. Compared to general-purpose programming languages (GPLs), DSLs offer a higher level of abstraction tailored for domain-specific problem solving and automation.

Cloud Native Component Framework (CNCF)

Cloud Native Component Framework (CNCF) is a framework for executing cloud application components using a single, consistent execution model. Centered on the structure of Component, Service, and Operation, it enables the same Operation to be reused across different execution forms such as command, server (REST / OpenAPI), client, and script. By centralizing quality attributes required for cloud applications—such as logging, error handling, configuration, and deployment—within the framework, components can focus on implementing domain logic. CNCF is designed as an execution foundation for literate model-driven development and AI-assisted development, separating what is executed from how it is invoked.