Skip to content
#software testing Open access

Bugs in a Perfect Substrate: An Ontology of Software Defects

Sep 2026 · Zenodo (CERN European Organization for Nuclear Research)

Abstract

The word bug entered engineering usage with a precise referent: a substrate intrusion — a physical object occupying space in a mechanism whose designed geometry excluded it. Around defects of this kind, a measurement apparatus was built — statistical process control, defect density, process capability — whose load-bearing assumption was that defects are draws from a stable probability distribution over substrate-induced deviations across a population of nominally identical units. That ontology and that apparatus were carried into software engineering through the late 1980s. The substrate did not come with them. This paper recovers what bug can mean in a substrate without an instantiation gap. The constructive ontology is that a bug is not a property of a unit of software, but rather a witnessed event in which something an engineering practice was proceeding as though it knew did not hold for a specific execution. Based on the formalism of the bounded local theory established in a companion paper, we identify four fundamental disjuncts which can produce such an event: a hidden distinction mattered, the expectation was wrong, the system was used outside its envelope, or the accepted tolerance was too generous. None of the four locates the bug in the software itself, but rather in the relationship between the operative theory, the system it describes, and the context in which the system operates. The paper traces the historical inheritance from Shewhart's 1931 control charts through Humphrey's importation into the CMM and on to ASPICE and ISO 26262, identifies the four preconditions of statistical process control that fail on the software substrate (population, repeatable process, stable distribution, substrate causation), and develops the constructive ontology of quality as alignment under an operational measure rather than dispersion across a population. Specific interventions practitioners already use — type systems, code review, testing, formal methods — are reframed not as lower-quality versions of statistical process control but as the correct kind of intervention for the substrate: each addresses one or more of the possibilities a witness leaves open, and none is a statistical operation on a population of artifacts. The argument has direct consequences for ASPICE Level 4/5, CMMI Quantitatively Managed, ISO 26262 safety integrity claims, and every safety case that treats defect metrics as evidence of capability. The paper belongs to a programme that began with The Wrong Substrate (TWS) and the formal trio of CCI, CHP, and SSEP, and continues in Conditional System Guarantees (CSG, forthcoming). TWS traced what the inherited engineering wisdom assumed about the substrate and identified the structural properties that fail. The formal trio established the substrate's own properties: faithful realization, ageometric state space, and specification–implementation equivalence. The present paper applies those results to the specific question of bugs and quality. CSG develops the operational alternative: a guarantee algebra structured around alignment evidence, measure estimation, monitoring discipline, and the honest accounting of what the substrate permits to be known. Change History: Version 2.0: Replaced the observation-map mismatch with formal language from the "Towards Achievable Locality" companion paper. The four disjuncts locate the bug to elements of the engineers' bounded local theories. Keywords: software defects, software quality, statistical process control, observation maps, gauge structure, distinguishability, perfect substrate, software measurement, KPIs, defect density, process capability, CMMI, ASPICE, ISO 26262, computational holographic principle, causally complete interfaces, specification equivalence, software ontology

View source

Similar papers

#computer vision Review Sep 2017

Agile Software Development Methods: Review and Analysis

This publication proposes a definition and a classification of agile software development approaches and analyses ten software development methods that can be characterized as being "agile" against the defined criterion.

P. Abrahamsson, O. Salo, Jussi Ronkainen et al. · 727 citations · ⚡54
#computer vision Jun 2008

The impact of agile practices on communication in software development

The study shows that agile practices improve both informal and formal communication, but indicates that, in larger development situations involving multiple external stakeholders, a mismatch of adequate communication mechanisms can sometimes even hinder the communication.

M. Pikkarainen, Jukka Haikara, O. Salo et al. · 401 citations · ⚡48
#machine learning Review Open access Oct 2014

Software development in startup companies: A systematic mapping study

The results indicate that software engineering work practices are chosen opportunistically, adapted and configured to provide value under the constrains imposed by the startup context.

Nicolò Paternoster, Carmine Giardino, M. Unterkalmsteiner et al. · 394 citations · ⚡54
#computer vision Review Mar 2008

Agile methods in European embedded software development organisations: a survey on the actual use and usefulness of Extreme Programming and Scrum

The results show that the embedded industry has been able to apply agile methods in its development processes and that the appreciation of the agile methods and their individual practices appears to increase once adopted and applied in practice.

O. Salo, P. Abrahamsson · 238 citations · ⚡9
#computer vision Open access Jul 2017

What happens when software developers are (un)happy

Consequences of happiness and unhappiness that are beneficial and detrimental for developers' mental well-being, the software development process, and the produced artifacts are found.

D. Graziotin, Fabian Fagerholm, Xiaofeng Wang et al. · 236 citations · ⚡13
#computer vision Open access Oct 2004

Mobile-D: an agile approach for mobile application development

The Mobile-D approach is briefly outlined here and the experiences gained from four case studies are discussed, which helped develop an agile development approach for mobile application development.

P. Abrahamsson, Antti Hanhineva, H. Hulkko et al. · 225 citations · ⚡18

Related blog posts

MIT News · Artificial Intelligence Oct 2, 2026

Documenting the tech worker movement

Writing as a participant and researcher, PhD student JS Tan SM ’22 has co-authored a new book about the rise of tech worker protests and the employer backlash that followed.

GPT-Lab Sep 23, 2026

Requirements Don’t Live in Isolation: What We’re Exploring with Req-Space

Requirements in large systems rarely exist in isolation. Their meaning depends on the wider project context - other requirements, policies, decisions, tests, and implementation details. That becomes especially important when AI is used for review, because spotting a possible conflict or gap is only the beginning. ReqSpace explores how AI, visualisation, and connected project context can help reviewers understand those findings, trace the relationships behind them, and focus on the questions that…

GPT-Lab Sep 17, 2026

Beyond Prompt Engineering: The Role of Tacit Knowledge in Software Engineering

AI is making software generation faster, but speed does not remove the need for expertise. As more work is delegated to AI, tacit knowledge may become one of the most important human advantages in software engineering. The post Beyond Prompt Engineering: The Role of Tacit Knowledge in Software Engineering appeared first on GPT-Lab.

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.