Purpose of This Site
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.
-
Domain Modeling
-
Object-Functional Programming
-
Component-Based Development
-
Cloud-Native Application
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:
-
Domain Modeling
-
Component-Based Development
-
Cloud-Native Application Development
-
Object-Functional Programming
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
-
Describe the literate model using CML
-
Automatically generate domain components using Cozy
-
Customize the generated components
-
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.