Software as Knowledge

This paper presents a model of software development based on knowledge acquisition. The model was formulated from 10 years of studies of scientific software and scientists who develop software as part of their science. The model is used to examine assumptions behind software development models commonly described in software engineering literature, and compare these with the observed way scientists develop software.

We offer observations of how this type of scientist develops trustworthy software. We observe that these scientists work outside the ubiquitous method-based software development paradigms, using instead a knowledge acquisition-based approach to software development.

Hypergraphs are generalized graphs in which an edge can connect more than two nodes [Aui02]. This property allows us to represent more complicated relations between several objects for which standard graphs would require several additional nodes and edges. In our approach nodes represent different software artifacts and edges represent different relations between them. Using hypergraphs as data repositories allows us to look at software as knowledge. (p. 40)