The Pragmatic Engineer · Published 2024-12-04

Evolution of software architecture with the co-creator of UML (Grady Booch)

Open on YouTube ↗

Summary

Overview

  • Speaker: Grady Booch and Gergely Orosz
  • Channel: The Pragmatic Engineer
  • Main topic: The evolution of software engineering, architecture, UML, and object-oriented design
  • Purpose: To provide deep historical context and practical insights on software engineering, architecture, and design from a pioneer in the field. Grady Booch, a trailblazer in software engineering and co-author of UML, discusses the history of software engineering from the perspective of rising levels of abstraction. He covers the golden ages of software engineering, the creation and evolution of UML, his work on legacy systems and AI, and reflections on the industry's past, present, and future.

Topic Map

The Rise of Abstraction in Software Engineering

  • Explanation: Software history is characterized by rising levels of abstraction, moving from machine code and assembly to frameworks, platforms, and modern cloud services.
  • Key claims:
    • Software engineering history is defined by rising levels of abstraction.
    • Architectural decisions are increasingly economic and systemic, not just software-centric.
  • Examples:
    • Moving from assembly language to cloud platforms like AWS and Azure.
  • Terminology:
    • abstraction
    • framework
    • systemic problems
  • Why it matters: Explains how developers build more powerful systems faster by leveraging higher-level abstractions.

The Golden Ages of Software Engineering

  • Explanation: Booch identifies two distinct golden ages of software engineering: the first focused on algorithms and structured analysis, and the second on distributed systems and object-oriented design.
  • Key claims:
    • The first golden age focused on algorithmic decomposition and structured analysis.
    • The second golden age was driven by distributed systems, object orientation, and systems engineering.
  • Examples:
    • SAGE semi-automatic ground environment system.
    • Rise of object-oriented design and languages like C++.
  • Terminology:
    • golden age
    • algorithmic decomposition
    • distributed systems
  • Why it matters: Provides historical framing for how software engineering methodologies evolved to tackle increasing complexity.

The Creation and Evolution of UML

  • Explanation: UML was created to provide a visual language to reason about, specify, and document software-intensive systems, but its evolution into a programming language was a mistake.
  • Key claims:
    • UML was intended as a visual modeling and reasoning language, not a programming language.
    • Treating UML as a programming language led to excessive complexity and the decline of its adoption.
  • Examples:
    • UML 1.0 creation by Booch, Rumbaugh, and Jacobson.
    • Using UML diagrams for design before writing code.
  • Terminology:
    • UML
    • object management group
    • visual language
  • Why it matters: Highlights the balance between visual modeling and code generation in software architecture.

Legacy Systems and Technical Debt

  • Explanation: All code is legacy system code from the moment it is written until it is discarded, carrying technical debt that requires active management.
  • Key claims:
    • Old code never dies; you have to kill it.
    • Systems retain technical debt and business rules embedded deep within legacy codebases.
  • Examples:
    • IRS systems running IBM 360 assembly language.
    • Financial institutions maintaining codebases from the 1960s.
  • Terminology:
    • legacy system
    • technical debt
    • emulation
  • Why it matters: Addresses the reality of maintaining long-lived software systems in enterprise environments.

AI, Large Language Models, and Human Architecture

  • Explanation: Large Language Models are powerful tools that act as stochastic parrots, but they lack human embodiment and deep architectural reasoning.
  • Key claims:
    • LLMs enable global-scale bullshit generators because they lack true reasoning and embodiment.
    • Human intelligence and architecture emerge from physical embodiment and complex neurological structures.
  • Examples:
    • AlphaFold and Watson Jeopardy performance.
    • Human cerebral cortex and architectural design.
  • Terminology:
    • large language models
    • embodiment
    • stochastic parrot
  • Why it matters: Provides a pragmatic, critical perspective on the limits and capabilities of AI in software engineering.

Key Points

Architecture is decision-making

  • Explanation: Software architecture represents the set of significant design decisions that shape the form and function of a system, where significance is measured by cost of change.
  • Evidence: Derived from Mary Shaw and Grady Booch's work on software architecture definitions.
  • Practical implication: Architects must focus on making and documenting high-consequence decisions rather than just assembling frameworks.

The Booch Method and Object-Oriented Design

  • Explanation: The Booch method shifted software design from pure algorithmic decomposition to class and object-based decomposition.
  • Evidence: Early work on Rational Software, C++, and object-oriented analysis and design.
  • Practical implication: Encouraged modular, object-oriented thinking that underpinned modern software engineering practices.

Limits of AI in Architecture

  • Explanation: While AI tools are incredibly useful for acceleration, they cannot replace human architectural judgment and systemic reasoning.
  • Evidence: Observations on LLMs as stochastic parrots lacking true embodiment and systemic context.
  • Practical implication: Developers should use AI as an accelerator while retaining ownership of critical architectural decisions.

Frameworks, Models & Processes

4+1 View Model of Architecture

  • How it works: Describes software architecture through multiple concurrent views addressing different stakeholder concerns.
  • Components:
    • Use case view
    • Logical view
    • Process view
    • Implementation view
    • Deployment view
  • When to use: When designing and documenting complex, distributed software-intensive systems.

Examples & Case Studies

Grady Booch turned down an offer from Bill Gates to be Microsoft's chief architect.

  • Illustrates: The career trajectory of a pioneer who chose research, writing, and independent contribution over corporate leadership.
  • Lesson: Staying aligned with personal research goals can yield broader industry impact than executive titles.

IBM Watson winning Jeopardy against human champions.

  • Illustrates: The peak of statistical and knowledge-engineering approaches before the modern deep learning boom.
  • Lesson: Demonstrates the power and limits of non-neural AI architectures in specific problem domains.

Actionable Takeaways

  • Immediate:
    • Focus on making informed architectural decisions rather than just chasing new tools.
    • Recognize that all software incurs technical debt and requires lifecycle management.
  • Strategic:
    • Understand that software engineering history is driven by rising levels of abstraction.
    • Balance the use of AI tools with human architectural oversight and judgment.
  • Questions to investigate:
    • How will large language models change the role of software architects in the next decade?
    • What are the limits of automated code generation in maintaining long-term system integrity?

Claims Worth Verifying

  • Grady Booch built his first computer 57 years ago at the age of 12. (biographical)
  • Rational Software was acquired by IBM in 2003 for billions. (historical)

Notable Quotes

"The entire history of software engineering is one of rising levels of abstraction." (at 0:00) "Old code never dies, you have to kill it." "All architecture is design, but not all design is architecture."

Compressed Summary

  • Software history is defined by continuous increases in abstraction.
  • UML was created for visual reasoning, not as a programming language.
  • AI models lack embodiment and are stochastic parrots, not true architects.
  • Keywords: software architecture, uml, history, object-oriented, ai
  • Core insight: Software architecture evolves through rising levels of abstraction, balancing technical decisions, economic realities, and human judgment against the limits of emerging technologies like AI.

Core insights

6
Failure Modemedium noveltystrong evidence

UML failed at scale because a visual modeling/reasoning language was pushed into being an executable programming language; the overreach added complexity and killed adoption, even though the modeling use case itself was sound.

Why it matters

It is a concrete historical case of an abstraction layer absorbing a neighboring layer's responsibility (reasoning/notation taking on execution/code generation), with a measurable penalty: complexity growth and adoption collapse. Agentic systems face the identical temptation when a spec/plan/DSL artifact is upgraded into the runtime that executes the work.

Generalization

Any notation, schema, or intermediate representation that starts as a human reasoning artifact should not silently acquire execution semantics; when it does, complexity compounds and users defect. Keep specification and execution as separate layers with a narrow, explicit bridge between them.

UML was intended as a visual modeling and reasoning language, not a programming language.
Open source video
Treating UML as a programming language led to excessive complexity and the decline of its adoption.
Open source video
Mental Modelmedium noveltymoderate evidence

Architecture is defined as the set of significant design decisions, where significance is measured by cost of change — i.e., 'architectural' is an economic property of reversibility, not a category of artifact.

Why it matters

It gives an operational test for what deserves architectural attention, review, and documentation: rank decisions by how expensive they are to reverse. This directly transfers to agent systems, where model/vendor choice, tool contracts, memory schema, and eval harness shape are far more expensive to change than prompts.

Generalization

Before applying heavy governance (review gates, ADRs, oversight) to a design choice, first estimate its cost of change; concentrate human judgment on low-reversibility decisions and let high-reversibility ones iterate freely.

Software architecture represents the set of significant design decisions that shape the form and function of a system, where significance is measured by cost of change.
Open source video
Architects must focus on making and documenting high-consequence decisions rather than just assembling frameworks.
Open source video
Practicemedium noveltystrong evidence

All code becomes legacy the moment it is written, and nothing deprecates on its own — 'old code never dies; you have to kill it' — with business rules remaining embedded deep inside long-lived codebases.

Why it matters

It reframes maintenance as an active lifecycle obligation (explicit retirement, migration, emulation) rather than a passive state that resolves over time. For AI systems, this implies prompt chains, adapters, and wrapper layers around legacy services accumulate permanently unless a decommissioning step is budgeted and scheduled.

Generalization

Plan the death of every component at creation time: name an owner, a retirement trigger, and a migration path. Treat 'no one has asked to delete it' as evidence of missing offboarding, not of continued value.

All code is legacy system code from the moment it is written until it is discarded, carrying technical debt that requires active management.
Open source video
Old code never dies; you have to kill it.
Open source video
Systems retain technical debt and business rules embedded deep within legacy codebases.
Open source video
Predictionmedium noveltyweak evidence

Booch treats LLMs as powerful accelerators but not as architectural reasoners — describing them as global-scale bullshit generators that lack true reasoning and embodiment, with human architectural judgment grounded in physical embodiment and neurological structure.

Why it matters

If the deficiency is grounding/embodiment rather than scale, then more data and parameters will not close the gap, and the correct deployment pattern is a fixed division of labor: model does generation and search, human (or a separately-verified system) owns systemic, cross-cutting architectural decisions. It also predicts a specific failure mode — fluent, confident output lacking systemic context.

Generalization

For tasks whose errors are systemic rather than local, treating model output as an accelerator draft rather than a decision is safer than trying to build a verification harness that substitutes for the missing grounding. Allocate oversight by decision cost (see cost-of-change), not uniformly.

LLMs enable global-scale bullshit generators because they lack true reasoning and embodiment.
Open source video
Human intelligence and architecture emerge from physical embodiment and complex neurological structures.
Open source video
Developers should use AI as an accelerator while retaining ownership of critical architectural decisions.
Open source video
Mental Modelmedium noveltymoderate evidence

Software engineering history is organized by rising levels of abstraction, and as abstractions rise, architectural decisions become increasingly economic and systemic rather than software-centric.

Why it matters

It predicts where design authority migrates: from code-level structure to platform, cost, and cross-system concerns. Agent builders should expect the durable design surface to be orchestration, contracts, and cost/latency envelopes rather than prompt craft, and should place interfaces at the boundary that is most likely to be re-hosted.

Generalization

When a layer is commoditizing fast (compute, hosting, model serving), do not invest architectural weight there; invest at the layer whose change cost stays high and whose concerns are economic and systemic.

Software engineering history is defined by rising levels of abstraction.
Open source video
Architectural decisions are increasingly economic and systemic, not just software-centric.
Open source video
Architecturelow noveltymoderate evidence

The 4+1 view model documents architecture as several concurrent views, each serving a distinct stakeholder concern, and is scoped to complex distributed software-intensive systems.

Why it matters

It is a concrete, reusable template for multi-view documentation of an agentic system where no single diagram suffices: task/use-case behavior, component decomposition, concurrency and tool-call process flow, code/implementation structure, and deployment across model endpoints and runtimes.

Generalization

For any system with heterogeneous stakeholders, document multiple orthogonal views rather than one mega-diagram; each view must be answerable to a specific question a specific stakeholder asks.

Describes software architecture through multiple concurrent views addressing different stakeholder concerns.
Open source video
When designing and documenting complex, distributed software-intensive systems.
Open source video
Use case view
Open source video
Deployment view
Open source video

Deep dives

5

Cost-of-change as an operational routing rule for AI vs. human decision ownership

Research question

Can reversibility cost be estimated per agentic design decision (model/vendor, tool schemas, memory layout, eval harness, prompt templates) reliably enough to route decisions between autonomous generation and human review, and does cost-based routing beat uniform review on total cost and rework rate?

Why

The pass-1 material asserts both 'significance = cost of change' and an AI/human division of labor, but supplies no mechanism connecting them. Without an estimator, the split stays a slogan and oversight gets applied uniformly (expensive and slow) or not at all (risky). An estimator converts two opinions into one measurable policy for where human architectural judgment is spent.

Software architecture represents the set of significant design decisions that shape the form and function of a system, where significance is measured by cost of change.
Open source video
Developers should use AI as an accelerator while retaining ownership of critical architectural decisions.
Open source video
Architects must focus on making and documenting high-consequence decisions rather than just assembling frameworks.
Open source video
Source video

Layer-absorption creep: detecting when a specification artifact silently acquires execution semantics

Research question

What observable signals precede an abstraction layer absorbing a neighboring layer's responsibility (a notation gaining execution semantics, a wrapper gaining business logic), and can those signals be detected early enough to prevent the complexity growth and adoption collapse seen with executable UML?

Why

This is the pass-1 insight with the strongest evidence base and the clearest modern analogue: prompt chains, DSL specs, and plan artifacts in agent systems are constantly being upgraded into the thing that executes the work. A detection heuristic would let teams keep the reasoning/execution boundary explicit and lossy-by-design rather than discovering the overreach after complexity compounds.

UML was intended as a visual modeling and reasoning language, not a programming language.
Open source video
Treating UML as a programming language led to excessive complexity and the decline of its adoption.
Open source video
Source video

Retirement triggers for agent components: scheduled death as a design requirement

Research question

If every agent component (prompt chain, adapter, wrapper around a legacy service, tool shim) is required to declare an owner, a retirement trigger, and a migration or emulation path at creation time, does long-lived complexity stay bounded compared to components created without retirement metadata?

Why

The pass-1 claims are strong ('old code never dies; you have to kill it') and load-bearing for AI systems, where wrapper layers accumulate permanently and suppress the underlying service migration that prompted them. Turning retirement from an emergent outcome into an artifact of creation is a concrete engineering consequence rather than a maxim.

All code is legacy system code from the moment it is written until it is discarded, carrying technical debt that requires active management.
Open source video
Old code never dies; you have to kill it.
Open source video
Systems retain technical debt and business rules embedded deep within legacy codebases.
Open source video
Source video

Emulation vs. re-derivation for legacy capabilities with embedded business rules

Research question

For a bounded legacy service with business rules embedded deep in the codebase, does emulation-hosted reuse or rule-extraction-and-reimplementation yield higher rule-recovery completeness at lower operational cost, and how do their failure modes differ?

Why

The pass-1 material names emulation as terminology and notes decades-old codebases still running, but gives no decision criteria. Agent systems make this urgent: wrapping a legacy service in an agent-accessible adapter is functionally emulation, chosen by default rather than by comparison.

Systems retain technical debt and business rules embedded deep within legacy codebases.
Open source video
All code is legacy system code from the moment it is written until it is discarded, carrying technical debt that requires active management.
Open source video
Source video

Multi-view documentation of agentic systems as the default, not the exception

Research question

For an agentic system, does documenting orthogonal views (use-case/task behavior, component decomposition, tool-call and concurrency process flow, implementation structure, deployment across model endpoints) reduce cross-stakeholder misalignment compared to a single unified diagram, and which views carry the most decision weight per unit of maintenance cost?

Why

The pass-1 insight is low-novelty but concretely actionable and directly reusable: distributed agentic systems are exactly the 'heterogeneous stakeholder, no single sufficient diagram' case the view model was scoped for. The measurable question is whether the view split earns its documentation cost under agent churn.

Describes software architecture through multiple concurrent views addressing different stakeholder concerns.
Open source video
When designing and documenting complex, distributed software-intensive systems.
Open source video
Use case view
Open source video
Deployment view
Open source video
Source video

Article ideas

4

Your Spec Language Is Not Your Runtime

Agent teams are repeating UML's mistake: intermediate representations that begin as human reasoning artifacts (plans, DSLs, schemas, prompt templates) are being upgraded into execution mechanisms, and the predictable result is complexity growth followed by abandonment. The correct architecture keeps notation and execution as separate layers joined by a narrow, explicitly lossy bridge, and forgoes round-trip model-driven execution as the price of preserved adoption.

Angle

Historical failure case (UML as programming language) mapped onto current agent orchestration practice, with the abstraction-creep pattern named and illustrated.

Source video

Architecture Review Should Be Priced by Reversibility, Not by Importance

Most architecture review budgets are spent on artifacts that sound foundational (frameworks, layer diagrams, diagram conventions) and not on decisions that are actually expensive to undo. If 'architectural' is defined as cost of change, then model/vendor commitments, tool contracts, memory schemas, and evaluation definitions deserve gates while prompts and prompt templates should iterate without ceremony. Oversight should be allocated by reversibility cost, and the same rule is the correct routing function for AI-generated versus human-owned decisions.

Angle

Operational definition plus a review-allocation policy; ties the cost-of-change test to the AI/human division of labor as a single rule rather than two separate heuristics.

Source video

Old Code Never Dies: Retirement as a Creation-Time Requirement

Treating legacy as an age or ownership state produces passive maintenance strategies that fail, because nothing deprecates on its own and business rules hide deep inside long-lived codebases. The practical correction is to demand an owner, a retirement trigger, and a migration or emulation path at the moment a component is created — including the prompt chains, adapters, and legacy-service wrappers that agent systems accumulate by default. 'No one has asked to delete it' is evidence of missing offboarding, not of continued value.

Angle

Lifecycle-engineering argument with agent-system-specific wrapper accumulation as the motivating modern instance.

Source video

LLMs as Accelerators, Not Architects: Why More Scale Does Not Close the Systemic Gap

If the model's deficiency is grounding rather than capacity, then scaling data and parameters will not fix errors that are systemic rather than local, and the durable deployment pattern is a fixed division of labor: the model generates and searches, humans or separately verified systems own cross-cutting architectural decisions. Practically, this argues for treating model output as an accelerator draft rather than a decision, and for allocating oversight by decision cost instead of uniformly — rather than attempting to build a verification harness that substitutes for the missing grounding.

Angle

Positions the critique as a scoping argument about which failure classes scale cannot address, and derives a concrete oversight-allocation policy; treats the claim's weak evidence strength explicitly as a hypothesis under test.

Source video

Project ideas

4

Reversal-Cost Router

gatehouse

Routing agent-assisted decisions to human review by estimated cost of change (low reversibility to humans, high reversibility to the model) dominates uniform human review on total cost and on downstream rework rate.

Proof of concept

Instrument an agent-assisted workflow to log decision type, a reversibility-cost estimate, routing outcome, and whether the decision was later reverted. Build a small taxonomy of agent-system decisions (model/vendor choice, tool schema, memory layout, eval harness, prompt template), assign each a cost band, and A/B the cost-based routing policy against uniform review on a bounded set of real tasks.

Measurement

Rework rate per decision, total human review minutes, and cost per accepted decision; pass condition is lower or equal rework at materially lower review time for the cost-based policy.

Source video

Abstraction-Creep Linter

movement-lab

Layer absorption is detectable before it becomes expensive: artifacts that start as reasoning/notation and begin acquiring execution semantics (code generation, side effects, control flow, state mutation) exhibit measurable structural signals that predict later complexity growth and contributor defection.

Proof of concept

Define a minimal ladder of execution-semantics indicators (emits executable artifacts, mutates external state, owns control flow, becomes a required runtime dependency) and run the checker over a set of agent-repo specification artifacts — plan/DSL artifacts, schema definitions, prompt-template layers — tracking which ones cross rungs over time.

Measurement

Precision/recall of flagged artifacts against a hand-labeled set of 'this became a runtime' cases, plus correlation between rung crossings and subsequent maintenance cost or usage decline in the tracked repos.

Source video

Retirement-Trigger Registry

new

Requiring an owner, a retirement trigger, and a migration or emulation path at component creation bounds long-lived complexity: components registered with retirement metadata are actually removed or migrated at a higher rate than unregistered components of comparable age.

Proof of concept

Add a creation-time manifest for every new component in a bounded repo (prompt chains, adapters, legacy-service wrappers, tool shims) recording owner, retirement trigger condition, and migration path. Run for a fixed period and compare removal/migration events against a matched set of pre-registry components.

Measurement

Fraction of registered components that reach an explicit retirement or migration event; count of registered components that outlive their stated trigger without action (the failure signal); total line/component count versus the pre-registry baseline.

Source video

Grounding-Signal Comparison Harness

beyond-evals

Grounding provenance matters more than grounding presence: agent architectures differing only in grounding signal (static context vs. live execution feedback vs. simulated environment interaction) differ measurably in decision quality on cross-cutting systemic tasks, and execution feedback partially substitutes for embodiment-style grounding.

Proof of concept

Build three otherwise-identical agent configurations on a task set requiring systemic, cross-cutting decisions (e.g., choosing and justifying a tool-contract or memory-schema design), swap only the grounding signal, and blind-score outputs for systemic consistency and for confidently-stated but contextually wrong claims.

Measurement

Rate of systemic-context errors per configuration, plus score stability across repeated runs; refutation condition is no significant difference attributable to grounding signal.

Source video

Architectural implications

3

A modeling artifact drifted into an execution mechanism, adding complexity and losing users.

Before

Notation and models are treated as the source of truth and elevated into an executable/code-generating layer.

After

Notation stays a reasoning and communication layer; execution lives in code, with a narrow, explicit, lossy bridge between them.

Consequence

Slower abstraction creep, lower tooling complexity, and preserved adoption — at the cost of forgoing round-trip model-driven execution.

Source video

'Architectural' is defined by cost of change rather than by artifact type or team role.

Before

Architecture review is applied broadly or to whatever sounds foundational (frameworks, diagrams, layers).

After

Review intensity and documentation are allocated by reversibility cost of each decision.

Consequence

Oversight concentrates on irreversible choices (data schemas, vendor/model commitments, tool contracts, evaluation definitions) while cheap choices iterate without ceremony.

Source video

No component retires on its own; legacy persists with embedded business rules.

Before

Replacement is assumed to happen organically as systems age or teams churn.

After

Every component ships with an explicit retirement trigger, owner, and migration or emulation plan; embedded rules are extracted before kill.

Consequence

Higher upfront design cost in exchange for bounded long-lived complexity and the ability to actually remove things.

Source video

Tradeoffs and failure modes

3

Modeling language converted into a programming language

Benefit

Executable models and code generation from a single source of truth; design and implementation stay synchronized.

Cost or risk

Excessive complexity as the notation absorbs execution semantics, followed by decline in adoption across the ecosystem.

Treating UML as a programming language led to excessive complexity and the decline of its adoption.
Open source video
Source video

LLM acceleration of engineering work

Benefit

High-leverage acceleration across engineering tasks and scale that individual humans cannot match.

Cost or risk

Fluent output without systemic context, described as a global-scale bullshit generator lacking true reasoning and embodiment; risk of confident errors on cross-cutting, high-consequence decisions.

LLMs enable global-scale bullshit generators because they lack true reasoning and embodiment.
Open source video
Source video

Long-lived legacy code carrying embedded business rules

Benefit

Preserves accumulated business logic and institutional knowledge; avoids risky rewrites.

Cost or risk

Technical debt requires active management; rules embedded deep in the codebase must be rediscovered (or emulated) before any retirement, and nothing deprecates by default.

Systems retain technical debt and business rules embedded deep within legacy codebases.
Open source video
Source video

Open questions

4

Can the 'significance = cost of change' test be operationalized into a repeatable scoring rubric for agentic design decisions?

Why unresolved

The summary states the definition but gives no method for estimating or comparing change costs across decision types.

Research direction

Build a small taxonomy of agent-system decisions (model/vendor choice, tool schemas, memory layout, eval harness, prompt templates), estimate reversal cost for each, and test whether ranking by that cost predicts which decisions cause later rework.

Source video

Is embodiment-style grounding a prerequisite for architectural reasoning, or can execution feedback and tool use substitute for it?

Why unresolved

The summary asserts human intelligence and architecture emerge from physical embodiment without specifying whether that grounding is necessary or merely how humans acquired it.

Research direction

Compare agent architectures that differ only in grounding signal (static context vs live execution feedback vs simulated environment interaction) on tasks requiring cross-cutting systemic decisions, and measure whether grounding changes decision quality.

Source video

Where can the AI-acceleration / human-oversight boundary be drawn so it is measurable rather than a slogan?

Why unresolved

Both the summary's framing and the takeaway assert a division of labor without a mechanism for deciding which decisions cross the line.

Research direction

Instrument agent-assisted workflows to log decision type, reversibility cost, and outcome; test whether routing low-reversibility decisions to human review and high-reversibility ones to the model dominates uniform review on cost and error rate.

Source video

For legacy systems with embedded business rules, when is emulation preferable to extraction and re-implementation?

Why unresolved

The summary names emulation as terminology and cites decades-old codebases still running, but gives no decision criteria for emulation versus rewrite.

Research direction

Compare emulation-hosted legacy capabilities against re-derived implementations on rule-recovery completeness, operational cost, and failure modes in a bounded domain (e.g., a single legacy service).

Source video

Key claims

8
factualVerification needed

UML was created as a visual modeling and reasoning language for specifying and documenting software-intensive systems, not as a programming language.

Evidence

UML was intended as a visual modeling and reasoning language, not a programming language.

Question

Do the OMG UML specifications and Booch/Rumbaugh/Jacobson's original intent statements support a non-executable, modeling-only purpose?

Source video
causalVerification needed

Treating UML as a programming language caused excessive complexity and a decline in its adoption.

Evidence

Treating UML as a programming language led to excessive complexity and the decline of its adoption.

Question

Can the decline in UML adoption be causally linked to executable-model/code-generation tooling, as opposed to broader shifts in tooling, agile practice, or model-driven engineering failures?

Source video
opinionVerification not requested

Software architecture is the set of significant design decisions, with significance measured by cost of change.

Evidence

Software architecture represents the set of significant design decisions that shape the form and function of a system, where significance is measured by cost of change.

Source video
factualVerification needed

All code becomes legacy from the moment it is written until discarded, and it always retains technical debt requiring active management.

Evidence

All code is legacy system code from the moment it is written until it is discarded, carrying technical debt that requires active management.

Question

Is 'all code is legacy from the moment written' a useful operational definition, and does it predict maintenance cost better than definitions based on age or ownership churn?

Source video
causalVerification needed

Old code does not die on its own; it must be actively killed.

Evidence

Old code never dies; you have to kill it.

Question

Across large enterprise codebases, what fraction of code is removed absent an explicit decommissioning project, versus decaying organically through disuse?

Source video
opinionVerification needed

LLMs function as global-scale bullshit generators because they lack true reasoning and embodiment.

Evidence

LLMs enable global-scale bullshit generators because they lack true reasoning and embodiment.

Question

Does lack of embodiment specifically (rather than objective grounding, verification loops, or training distribution) predict the failure rate of LLMs on systemic, cross-cutting reasoning tasks?

Source video
causalVerification needed

Human intelligence and architecture emerge from physical embodiment and complex neurological structures.

Evidence

Human intelligence and architecture emerge from physical embodiment and complex neurological structures.

Question

Is physical embodiment a necessary condition for architectural reasoning, or one sufficient route among others such as interactive feedback from an environment?

Source video
comparativeVerification needed

Booch identifies two golden ages of software engineering: the first centered on algorithmic decomposition and structured analysis, the second on distributed systems and object orientation.

Evidence

The first golden age focused on algorithmic decomposition and structured analysis.

Question

Do the two identified periods partition the field's methodological shifts without omitting equally significant transitions, such as open-source, cloud, or data-driven development?

Source video

Connections

4