What is Determinism? Definitions and Implications for Airworthiness and Critical Software

Bjorn A. Andersson, Dionisio de Niz, William Vance, John Ross, Mark Wotell, Willie James Fitzpatrick, Tuan Bui · 2024

The word determinism is commonly used among software practitioners (software developers, certification staff), in certification standards, and among researchers in software engineering and computer science. We have found that the word determinism is used differently among these people and documents. This different use of the word is unfortunate because (i) it hampers communication between these groups which hampers collaboration (between industry participants), technology transfer (from researchers to practitioners), and research feedback (practitioners informing researchers about important pain points), and (ii) even within one group, there is sometimes disagreement on the meaning of this word. Therefore, in this paper, we discuss different meanings of the word determinism, and their consequences for software engineering. We present a taxonomy that gives different meanings of the word determinism in critical systems (comprising software, hardware platform, and external environment). With these definitions, we discuss their implications for airworthiness and critical software.

Read the paper · More papers on PaperTik