Software Architecture for Essential and Accidental Uncertainty
Software systems must deal with various aspects of uncertainty. Some uncertainty comes from external factors, such as unreliable data transmission, while other uncertainty is inherent to the problem itself. We define these as accidental and essential uncertainty. For accidental uncertainty, there exists a transformation of the data which allows us to eliminate or mitigate the uncertainty. For essential uncertainty, there is no such transformation possible. Accidental uncertainty has been extensively studied, but essential uncertainty has not. We explore essential uncertainty in more depth, including its impact on software architecture. We examine different levels of essential uncertainty and associated architectural approaches, leading to a spectrum of uncertainty and architecture. We propose an informal process using uncertainty to guide the architectural process, and give examples.
Authors
- George Rudolph (ORCID: https://orcid.org/0009-0001-1047-3683)
- Neil B. Harrison (ORCID: https://orcid.org/0009-0007-4620-8818)
- Peter Aldous
Publication Details
- Journal
- ScholarSpace (University of Hawaii at Manoa)
- Published
- 2025-12-23
- Primary Topic
- Advanced Software Engineering Methodologies
- Type
- article
- Field-Weighted Citation Impact
- 0.00