Modeling

Software engineering has always relied on abstraction. Large systems exceed what any engineer can reason about directly, so engineers understand them through purposeful views. A dependency graph exposes relationships among components; a state machine exposes legal behavior; a schema exposes permitted structure; a quantitative model exposes a resource bound. Each representation preserves what an engineering question needs and suppresses what it does not.

Explicit models have nevertheless remained secondary in much code-centric software practice because another representation costs work to create, maintain, and reconcile with a changing system. Commodity intelligence changes that economics. Agents can increasingly derive, regenerate, reconcile, and query structured representations cheaply. At the same time, rapid autonomous implementation increases their value: engineering knowledge that once needed to be reconstructed occasionally may otherwise be reconstructed across many tasks and fresh reasoning states.

Modeling principle

Externalize engineering knowledge and intent into explicit, structured models that both engineers and agents can reason through.

Appropriate representations make broader engineering questions tractable and make additional properties available for Alignment.

MAGE therefore treats Modeling as an engineering activity in its own right:

What should I model, and what will the model let me know?

Which model is useful depends on what the engineer needs to know. A concurrency question may require ownership and lifecycle; an architectural-boundary question may require components and permitted communication edges. Different questions about the same system therefore call for different reductions.

This Part develops six broad classes of engineering question:

These classes organize recurring engineering questions rather than partitioning systems. They overlap, and they are not exhaustive. The same worker may appear as a component in one model, an actor in a lifecycle in another, and the owner of work in a third. Architectural reasoning may traverse several such views at once.

DocAble is the running example—the production accessibility service introduced in Part I. A document enters, remediation is distributed across workers and services, the result is validated, and a corrected document returns with a record of what changed. The real system is far more complicated than any representation ahead. That is the point. Each model keeps only the relationships its question needs.

Each chapter begins with a familiar engineering representation, the properties it makes expressible, and the analyses it supports, then specializes that representation to DocAble. Four terms stay distinct throughout the Part. A property is a claim that can be expressed over a model. An invariant is a property required to hold over a declared domain. An analysis or check produces evidence about a property. Whether the engineered environment enforces the resulting obligation is a separate question of enforcement, taken up in Part III.

Four questions for every model

Every model section ahead opens on the same four lines:

Part III adds a fifth question: what enforces the property? Modeling makes properties explicit; Alignment makes selected obligations enforceable.

The final chapter, System Knowledge, shows how the six models connect without becoming a seventh model.

© James C. Davis, 2026–present