Why Reconstruct Software Development Methodology?

Created: 2026-07-20

Software development has progressed through successive levels of abstraction, from machine language to high-level languages, libraries, and frameworks. With the arrival of AI, the domain model has become a new working abstraction primarily handled by humans.

Programming does not disappear. As AI performs more programming work underneath, the primary subject handled directly by humans shifts from code to models.

This article examines why this change requires software development methodology to be reconstructed around modeling.

Article at a Glance

Part 1 at a glance: treating the Domain Model as a working abstraction connected to implementation. summary en

A History of Abstraction

The history of software development can be understood as a history of abstraction.

Abstraction Human Focus

Machine Language

Instructions executed by the CPU

Assembly Language

Symbols and addresses representing machine instructions

High-Level Language

Types, functions, control structures, and objects

Library

Reusable functions and APIs

Framework

Application structures and extension points

Each advance in abstraction has moved human work upward. Instead of arranging machine instructions directly, developers describe types and functions in high-level languages. Instead of repeatedly implementing common behavior, they use libraries. Instead of assembling all application control from scratch, they place application-specific behavior within structures provided by frameworks.

This change does not mean that details ceased to matter. It means that reliable mechanisms took responsibility for those details, allowing humans to concentrate on higher-level problems.

Domain models have existed for a long time. In many cases, however, they remained views of the problem domain without a direct connection to implementation. Object-oriented languages such as Java, design conventions, and code generation have all been used to align domain models with implementations, but much of the transformation still depended on humans, leaving a substantial gap between model and implementation.

With the arrival of AI, the domain model has become a new working abstraction primarily handled by humans. Here, a working abstraction means an abstraction with a realization path to implementation that can directly drive development forward. AI interprets domain models, translates them into implementations, and fills in the required implementation details. Textus then provides the execution platform, establishing a path from domain models to executable software. The domain model can therefore function not as an analysis document detached from implementation, but as a software development abstraction connected to implementation.

Abstraction Requires Realization

Every successful abstraction has a reliable means of reaching the lower layer.

High-level languages did not make machine language unnecessary. Compilers translate high-level languages into machine language, so humans no longer need to write machine instructions directly. Frameworks did not eliminate runtime processing either. Their runtimes take responsibility for common control, allowing developers to focus on application-specific concerns.

Abstraction therefore requires more than creating abstract representations. It needs a path from those representations to executable software. Abstraction and realization are a paired mechanism supporting software engineering.

SimpleModeling defines a domain model as a view of the problem domain and a working abstraction primarily handled by humans. AI translates domain models into implementations and fills in the necessary implementation details. Textus provides the execution platform for realizing the resulting software. Together, they establish a path from domain models to implementation and execution.

What AI Changes

AI increasingly assists with and performs program generation, modification, testing, refactoring, and other implementation work.

This does not mean that programming itself disappears. Generated software is still composed and executed through programming languages, libraries, frameworks, and runtimes. What changes is not the existence of programming, but where humans participate in that work.

When asking AI to implement software, humans must specify what should be built, which constraints must be preserved, where responsibilities belong, and what counts as a correct result. Instead of directly specifying each line of code, the important work becomes providing the meaning and structure on which implementation depends.

In this process, AI translates domain models into implementations and fills in the necessary implementation details. This work connects domain models to implementation.

From Programming to Modeling

Modeling is the activity of expressing this meaning and structure.

Software modeling here means more than drawing diagrams. It clarifies, through different views, how the problem domain is understood, what responsibilities software elements have, how execution proceeds, and how knowledge is structured. A domain model is the view of the problem domain within this broader modeling activity.

The shift of human work from programming to modeling does not mean that humans will never write code. It means that the primary subject humans must directly design for development to succeed shifts from code construction to model construction.

The New Choke Point

As AI accelerates implementation, ambiguity and contradictions in models also reach implementation faster. When the structure is unclear, AI may generate code that works locally while failing to preserve responsibilities and consistency across the system.

When goals, terminology, responsibilities, boundaries, and execution rules are modeled clearly and consistently, AI can interpret that structure and more readily implement, validate, and modify the software. Clarity and consistency, however, do not mean that the model is valid and accurate with respect to actual business needs and requirements. AI will also faithfully implement a clearly described but incorrect model.

Software quality therefore depends more strongly than before on the quality of modeling.

Modeling becomes the new choke point of software development.
This means more than saying that modeling becomes important. As implementation capability becomes widely available through AI, the source of differences in development outcomes shifts from the amount of implementation to what is modeled and how it is modeled.

Improving Domain Model Accuracy

SimpleModeling treats model accuracy as something that cannot be established all at once. It provides a mechanism in which domain experts, developers, and AI collaborate to iteratively improve domain model accuracy, using a glossary, use cases, BoK, and the domain model metamodel as a shared foundation.

Foundation Role

Glossary

Clarifies the meaning and boundaries of terminology.

Use Cases

Checks model validity against business scenarios.

BoK

Shares knowledge in HTML (Web) form with domain experts, developers, and AI. AI accesses the BoK through MCP, while developers and AI also use knowledge and functions provided as components.

Domain Model Metamodel

Gives models structure and rigor through objects, types, constraints, functions, and related concepts.

The three parties construct domain models from this shared knowledge and use cases to evaluate their validity for business scenarios. They reflect identified omissions and contradictions in the BoK, terminology, constraints, and models, after which AI updates the implementation. Repeating this cycle improves the accuracy of both models and implementations.

Domain experts confirm business knowledge and model validity, while developers examine model structure, constraints, and feasibility. AI refers to the BoK to help organize knowledge, identify contradictions and omissions, and support modeling. Rather than relying on AI alone to generate a correct model, the three parties continuously improve the model through collaboration and iteration.

Why Methodology Must Be Reconstructed

Existing software engineering provides many valuable techniques, including object orientation, design patterns, domain-driven design, CQRS, and knowledge graphs. AI does not diminish their value.

However, when the abstraction level handled directly by humans changes, the roles and uses of individual techniques must be reorganized. A body of knowledge listing techniques alone cannot determine which techniques to select, which design decisions to fix, or how development should proceed.

What is needed is to select existing techniques around modeling, define their respective roles, and integrate them into a development approach that reaches executable software from abstraction. This is why software development methodology must be reconstructed.

SimpleModeling’s Position

SimpleModeling does not aim to collect individual technologies newly appearing in the AI era. It selects existing software engineering knowledge from a modeling-centered viewpoint and organizes it into a concrete software development methodology.

Literate Model-Driven Cloud-Native Development with Object-Functional Paradigms for the AI Era
Under this phrase, SimpleModeling.org uses Literate Model-Driven development, Cloud-Native development, and Object-Functional paradigms as the three axes of its methodology.

Axis Role in the Methodology

Literate Model-Driven

Connects knowledge, explanations, models, and implementations.

Cloud-Native

Connects models to executable software through components and an execution platform.

Object-Functional

Combines object responsibilities and collaboration with rigorous expression through types and functions.

Nor is producing models an end in itself. Software engineering requires both abstraction and a realization path connecting that abstraction to executable software. Throughout this series, we will explain how SimpleModeling constructs this path.

Next

SimpleModeling's model-centered direction did not begin with the arrival of AI. Through CML, DSLs, Literate Modeling, and executable models, it has long pursued a path from models to executable software.

The next article, "What SimpleModeling Has Pursued," will explain this historical continuity and how AI complements the transformation from knowledge to models.

References

Glossary

Model

A Model is an abstraction that represents a subject according to a particular Purpose and Concern so that it can be understood, reasoned about, evaluated, or constructed. It is not the subject itself; it preserves the elements, relationships, and meanings required for its purpose.

Software Development Methodology

A Software Development Methodology is a coherent system of models, model transformations, technologies, design principles, and decision rules used in software development. It defines what is modeled, how models are constructed, and how they are connected to executable software. In general usage, a Software Development Methodology may also include a Development Process. SimpleModeling separates the Methodology that defines models and model transformations from the Development Process that operates it in practical development.

Object

An Object is an Instance classified by a Class or another Classifier and may have structure, State, and Behavior. It is treated as an individual that can be referred to separately from other Instances of the same Classifier.

Type

Undefined

Dependency

In UML, a Dependency is a directed Relationship indicating that the specification or implementation of a client Model Element depends semantically or structurally on the definition of a supplier Model Element.

View

A View is a representation that projects selected parts of a Model according to a particular Purpose and Concern so they can be understood, reasoned about, evaluated, or used. A View presents part of a Model and does not own meaning independently of the source Model.

Textus

Textus is the runtime foundation for operating software realized through SimpleModeling. It provides execution, operational, and integration mechanisms shared by applications.

SimpleModeling

SimpleModeling is a modeling-centered software development methodology and technology system for constructing a Domain Model from Knowledge, formalizing it in CML, realizing it as executable software through Cozy and AI, and running it on Textus.

Test

A Test is an activity and specification that executes or evaluates a subject under stated conditions and compares observed results with expected results or Constraints to check conformance to requirements or contracts.

Responsibility

A Responsibility is an obligation stating what an Object or Role must know, decide, perform, or protect. It assigns ownership of rules and Behavior, not merely structural information.

Constraint

In UML, a Constraint is a condition or restriction expressed in natural language or a machine-readable language to declare part of the Semantics of one or more Model Elements. Its evaluation yields a Boolean value and has no side effects.

Activity

A concrete action or task performed within an Activity Space to move an Alpha to a more advanced state, typically producing or refining Work Products.

Glossary

A Glossary is a knowledge resource that manages the names, meanings, boundaries, synonyms, and identifiers of terms used in a subject domain. It provides a common foundation for participants to use the same terms with the same meanings.

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.

Use Case

In UML, a Use Case is a Model Element that specifies a set of Actions performed by a subject to yield an observable result of value to an Actor or other stakeholder.

Model Context Protocol (MCP)

The Model Context Protocol (MCP) is an open protocol for connecting applications that use generative AI with external data sources and tools and for providing context and capabilities in a standardized form.

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.

Domain-Driven Design (DDD)

Domain-Driven Design is a set of principles, patterns, and practices for understanding a complex problem domain through a Domain Model and connecting business meaning with software design through Ubiquitous Language, Bounded Contexts, Aggregates, and related concepts.

knowledge graph

A semantic graph-based knowledge base where nodes represent entities or concepts and edges represent their relationships.

Object-Functional Paradigm

The Object-Functional Paradigm is a design paradigm combining structures based on Object Identity, Responsibility, State, and Collaboration with rigorous computational expression through types, values, functions, and composition.

Collaboration

In UML, a Collaboration is a Classifier describing a structure of participant Roles that perform specialized functions and collectively accomplish desired functionality.

CML (Cozy Modeling Language)

CML (Cozy Modeling Language) is the SimpleModeling formal modeling language for describing the Executable Model portion of an Object Model that connects to program generation and execution.

Literate Modeling

Undefined

Executable Model

Undefined

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.