Machine code and metaphysics : a perspective on software engineering
A major, but too-little-considered problem for Software Engineering (SE) is a lack of consensus concerning Computer Science (CS) and how this relates to developing unpredictable computing technology. We consider some implications for SE of computer systems differing scientific basis, exemplified with the International Standard Organisations Open Systems Interconnection (ISO-OSI) layered architectural model. An architectural view allows comparison of computing technology components facilitating a view of computing as a continuum. For example, at one layer of computer architecture, components written in Turing-complete machine language can be seen as deterministic and consistent with a theoretical paradigm of CS. At another layer, components (applications) closer to the human sphere have been seen as non-deterministic and inconsistent with theoretical CS. We compare unpredictable development of computing technology against the cyclic legacy of technological advance and scientific discovery, and suggest that SE indicates an enabling cycle, discernible in previous scientific revolution(s), is stalled or possibly hidden. The CS consequence of divorcing technological advance from scientific consensus is particularly concerning. For example human/computing events could be seen as unpredictable virtual phenomena that somehow extend the ontology of CS. Our approach challenges practical and philosophical boundaries by investigating if applying scientific method (SM) resolves any SE/Science dichotomy.