On malfunctioning software
- 363 Downloads
- 9 Citations
Abstract
Artefacts do not always do what they are supposed to, due to a variety of reasons, including manufacturing problems, poor maintenance, and normal wear-and-tear. Since software is an artefact, it should be subject to malfunctioning in the same sense in which other artefacts can malfunction. Yet, whether software is on a par with other artefacts when it comes to malfunctioning crucially depends on the abstraction used in the analysis. We distinguish between “negative” and “positive” notions of malfunction. A negative malfunction, or dysfunction, occurs when an artefact token either does not (sometimes) or cannot (ever) do what it is supposed to. A positive malfunction, or misfunction, occurs when an artefact token may do what is supposed to but, at least occasionally, it also yields some unintended and undesirable effects. We argue that software, understood as type, may misfunction in some limited sense, but cannot dysfunction. Accordingly, one should distinguish software from other technical artefacts, in view of their design that makes dysfunction impossible for the former, while possible for the latter.
Keywords
Artefact Design Dysfunction Function Misfunction SoftwareNotes
Acknowledgments
This article was developed initially as a collaboration between Jesse Hughes (see especially Hughes (2009)) and Luciano Floridi. We are extremely grateful to Jesse for having allowed us to re-use his very valuable work. We would also like to acknowledge the constructive feedback of the anonymous referees, whose comments enabled us to improve the article significantly.
References
- Angius, N. (2013). Abstraction and Idealization in the formal verification of software systems. Minds and Machines, 23(2), 211–226.CrossRefGoogle Scholar
- Angius, N. (2014). The problem of justification of empirical hypotheses in software testing. Philosophy and Technology, 27, 423–439. doi: 10.1007/s13347-014-0159-6.
- Berry, M. D. (2011). The philosophy of software: Code and mediation in the digital age. New York: Palgrave Macmillan.CrossRefGoogle Scholar
- Colburn, T. (1998). Information modelling aspects of software development. Minds and Machines, 8(3), 375–393.CrossRefGoogle Scholar
- Colburn, T. (1999). Software, abstraction and ontology. The Monist, 82(1), 3–19.CrossRefGoogle Scholar
- Colburn, T., & Shute, G. (2007). Abstraction in computer science. Minds and Machines, 17(2), 169–184.CrossRefGoogle Scholar
- Davies, P. S. (2000a). Malfunctions. Biology and Philosophy, 15(1), 19–38.CrossRefGoogle Scholar
- Davies, P. S. (2000b). The nature of natural norms: Why selected functions are systemic capacity functions. Noûs, 34(1), 85–107.CrossRefGoogle Scholar
- Fetzer, J. (1999). The role of models in computer science. The Monist, 82, 20–36.CrossRefGoogle Scholar
- Floridi, L. (2011). The philosophy of information. Oxford: Oxford University Press.Google Scholar
- Franssen, M. (2006). The normativity of artefacts. Studies in History and Philosophy of Science, 37, 42–57.CrossRefGoogle Scholar
- Fresco, N., & Primiero, G. (2013). Miscomputation. Philosophy and Technology, 26, 253–272. doi: 10.1007/s13347-013-0112-0.
- Gotterbarn, D. (1998). The uniqueness of software errors and their impact on global policy. Science and Engineering Ethics, 4(3), 351–356.CrossRefGoogle Scholar
- Gruner, S. (2011). Problems for a philosophy of Software Engineering. Minds and Machines, 21(2), 275–299.CrossRefGoogle Scholar
- Hansson, S. O. (2006). Defining technical function. Studies in History and Philosophy of Science, 37(1), 19–22.CrossRefGoogle Scholar
- Hodges, W. (1993). The meaning of specifications II: Set-theoretic specification, Semantics of Programming Languages and Model Theory, ed. Droste and Gurevich, Gordon and Breach, Yverdon, 1993, 43–68.Google Scholar
- Hodges, W. (1995). The meaning of specifications I: Initial models. Theoretical Computer Science, 152, 67–89.CrossRefGoogle Scholar
- Houkes, W., & Vermaas, P. E. (2010). Technical functions: On the use and design of artefacts. Dordrecht: Springer.CrossRefGoogle Scholar
- Hughes, J. (2009). An artifact is to use: An introduction to instrumental functions. Synthese, 168(1), 179–199.Google Scholar
- Irmak, N. (2012). Software is an abstract artifact. Grazer Philosophische Studien, 86(1), 55–72.Google Scholar
- Jespersen, B., & Carrara, M. (2011). Two conceptions of technical malfunction. Theoria, 77(2), 117–138.CrossRefGoogle Scholar
- Kirchner, H., & Mosses, P. (2001). Algebraic specifications, higher-order types and set-theoretic models. Journal of Logic and Computation, 11, 453–481.CrossRefGoogle Scholar
- Millikan, R. G. (1989). In defense of proper functions. Philosophy of Science, 56(2), 288–302.CrossRefGoogle Scholar
- Neander, K. (1995). Misrepresenting & malfunctioning. Philosophical Studies, 79(2), 109–141.CrossRefGoogle Scholar
- Neander, K. (2004). Teleological theories of mental content. In E. N. Zalta (Ed.), The Stanford encyclopedia of philosophy (2012 Ed.). http://plato.stanford.edu/archives/spr2012/entries/content-teleological.
- Northover, M., Kourie, D. G., Boake, A., Gruner, S., & Northover, A. (2008). Towards a philosophy of software development: 40 Years after the birth of software engineering. Journal for General Philosophy of Science, 39(1), 85–113.CrossRefGoogle Scholar
- Preston, B. (2000). The functions of things: A philosophical perspective on material culture. In P. G. Brown (Ed.), Matter, materiality and modern culture (pp. 22–49). London: Routledge.Google Scholar
- Radder, H. (2009). Why technologies are inherently normative. In A. Meijers (Ed.), Philosophy of technology and engineering sciences. Handbook of the philosophy of science (Vol. 9, pp. 887–921). Amsterdam: North-Holland.Google Scholar
- Schiaffonati, V., & Verdicchio, M. (2014). Computing and experiments: A methodological view on the debate on the scientific nature of computing. Philosophy and Technology. doi: 10.1007/s13347-013-0126-7.
- Suber, P. (1988). What is software. Journal of Speculative Philosophy, 2(2), 89–119.Google Scholar
- Symons, J. (2008). Computational models of emergent properties. Minds and Machines, 18(4), 475–491.CrossRefGoogle Scholar
- Symons, J., & Boschetti, F. (2013). How computational models predict the behavior of complex systems. Foundations of Science, 18(4), 809–821.CrossRefGoogle Scholar
- Turner, R. (2005). The foundations of specification. Journal of Logic and Computation, 15, 623–662.CrossRefGoogle Scholar
- Turner, R. (2011). Specification. Minds and Machines, 21(2), 135–152.CrossRefGoogle Scholar
- Vincenti, W. G. (1990). What engineers know and how they know it : Analytical studies from aeronautical history. In Johns Hopkins studies in the history of technology. New Series No. 11. Baltimore, MD: Johns Hopkins University Press.Google Scholar
- Winsberg, E. (1999). Sanctioning models: The epistemology of simulation. Science in Context, 12(2), 275–292.CrossRefGoogle Scholar
- Wright, L. (1973). Functions. Philosophical Review, 82(2), 139–168.CrossRefGoogle Scholar