Abstract
On the basis of an earlier contribution to the philosophy of computer science by Amnon Eden, this essay discusses to what extent Eden’s ‘paradigms’ of computer science can be transferred or applied to software engineering. This discussion implies an analysis of how software engineering and computer science are related to each other. The essay concludes that software engineering can neither be fully subsumed by computer science, nor vice versa. Consequently, also the philosophies of computer science and software engineering—though related to each other—are not identical branches of a general philosophy of science. This also implies that not all of Eden’s earlier arguments can be directly mapped from the domain of computer science into the domain of software science. After the discussion of this main topic, the essay also points to some further problems and open issues for future studies in the philosophy of software science and engineering.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
One of the anonymous reviewers of the pre-print draft of this article suggested that Eden would have “conjectured” the technocratic paradigm mainly for methodological reasons, so-to-say as an ideal methodological entity without a strong basis in reality. However, Eden has recently confirmed (in private communication) that he still believes that “the technocratic paradigm is not only live and kicking, but it also has all but taken over computer science, at least at the level of funding and other forms of decision making, which singularitly affects the direction that this field is taking” (18 Oct 2010, via eMail).
Anfangsproblem.
Hugo Dingler, Peter Janich, et al. Their methodological constructivism must not be confused with epistemological constructivism (truth as social construct) and also not with Brouwer’s mathematical constructivism, a.k.a. intuitionism (in which, amongst others, the classical tertium-non-datur axiom, \(\neg\neg A\equiv A\), is not accepted).
Welt.
Zeug.
Unless, of course, we would be willing to amputate the semantics of ‘explanation’ deliberately and ad-hoc to such a crippled extent that it becomes, by decree, equivalent to the semantics of ‘comprehensive description’.
Grundlagenstreit.
About the philosophy of computer science at least two special editions have already appeared in print: one in this journal, Minds and Machines (Springer-Verlag 2007), and another one in the Journal of Applied Logic (Elsevier 2008), see http://pcs.essex.ac.uk/. There are also textbooks such as Floridi (1999) and Colburn (2000).
The same argument even holds for computer hardware design which is becoming increasingly dependent on software-based modelling tools.
I have heard about such a software-epistemological position in a lecture presented by Manfred Nagl in the late 1990s.
References
Amman, P., & Offut, J. (2008). Introduction to software testing. Cambridge: Cambridge University Press.
Broy, M., & Rombach, D. (2002). Software engineering: Wurzeln, stand und perspektiven. In Informatik spektrum (Vol. 16, pp. 438–451). Heidelberg: Springer.
Cleland, C. E. (2001). Recipes, algorithms, and programs. In Minds and machines (Vol. 11, No. 2, pp. 219–237). Dordrecht/Heidelberg:Kluwer Academic Publ./Springer.
Colburn, T. R. (2000). Philosophy and computer science series: Explorations in philosophy. Armonk, NY: M.E. Sharpe Publ.
De Marco, T. (1986). Controlling software projects: Management, measurement, and estimates. London: Prentice Hall Publ.
De Marco, T. (2009). Software engineering: An Idea whose time has come and gone? In IEEE Software (Vol. 26, No. 4, pp. 95–96). IEEE Computer Society Press.
Denning, P. J. (2007). Computing is a natural science. In Communications of the ACM (Vol. 50, No. 7, pp. 13–18). ACM Press.
Diemer, A. (Ed.). (1968). System und Klassifikation, including three classical essays by Lambert, J. H. Drei Abhandlungen zum Systembegriff, 1782–1787.
Eden, A. (2007). Three paradigms of computer science. In Minds and Machines (Vol. 17, No. 2, pp. 135–167). Heidelberg: Springer.
Edmonds, E. (2007). The art of programming or programs as art. In Proceedings of new trends in software methodologies, tools and techniques (pp. 119–125). IOS Press.
Fetzer, J. H. (1988). Program verification: The very Idea. In Communications of the ACM (Vol. 31, No. 9, pp. 1048–1063). ACM Press.
Fetzer, J. H. (1998). Philosophy and computer science: Reflections on the program verification debate. In: T. Bynum & J. H. Moor (Eds.), The digital phoenix: How computers are changing philosophy (pp. 253-273). Basil Blackwell Publ.
Fetzer, J. H. (1999). The role of models in computer science. In The Monist (Vol. 82, pp. 20–36). Hegeler Institute Publ.
Floridi, L. (1999). Philosophy and computing: An introduction. London: Routledge Publ.
Gruner, S. (2010). Software engineering between technics and science: Recent discussions about the foundations and the scientificness of a rising discipline. In Zeitschrift für allgemeine Wissenschaftstheorie (Vol. 41, No. 1, pp. 237–260). Heidelberg: Springer.
Kondoh, H. (2000). What is mathematicalness in software engineering? Towards precision software engineering. In Lecture Notes in Computer Science (Vol. 1783, pp. 163–177). Heidelberg: Springer.
Kroeze, J. H. (2010). Ontology goes Postmodern in ICT. In Proceedings of the SAICSIT’10 Conference, South Africa (pp. 153–159). ACM Press. ISBN 978-1-60558-950-3.
Lakatos, I. (1978). The methodology of scientific research programmes. In Philosophical papers (Vol. 1). Cambridge: Cambridge University Press.
Landauer, R. (1961). Irreversibility and heat generation in the computing process. IBM Journal of Research and Development, 5(3). Reprinted in IBM Journal of Research and Development, 44(1/2), pp. 261–269, 2000. IBM Press.
Maibaum, T. (2008). Formal methods versus engineering. In Proceedings of the First Iinternational workshop on formal methods in education and training at the ICFEM’08 international conference on formal engineering methods, Japan.
Masterman, M. (1970). The nature of a paradigm. In: I. Lakatos & A. Musgrave (Eds.), Criticism and the growth of knowledge (Proceedings of the 1965 International Colloquium in the Philosophy of Science ay Bedford College) (Vol. 4, pp. 59–89). Cambridge: Cambridge University Press.
Northover, M., Kourie, D. G., Boake, A., Gruner, S., Northover, A. (2007). Agile software development: A contemporary philosophical perspective. In Proceedings of the SAICSIT’07 Conference, South Africa (pp. 106–115). ACM Press. ISBN 978-1-59593-775-9.
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. In Zeitschrift für allgemeine Wissenschaftstheorie (Vol. 39, No. 1, pp. 85–113). Heidelberg: Springer.
Olson, E. T. (1997). The ontological basis of strong artificial life. In Artificial Life (Vol. 3, No. 1, pp. 113–126). Cambridge: MIT Press.
Rapp, F. (Ed) (1974). Contributions to a philosophy of technology: Studies in the structure of thinking in the technological sciences. Dordrecht: Reidel Publ.
Roettgers, K. (1983). Der Ursprung der Prozeidee aus dem Geiste der Chemie. In Archiv für Begriffsgeschichte (Vol. 27, pp. 93–157). Meiner-Verlag.
Rombach, D., & Seelisch, F. (2008). Formalisms in software engineering: Myths versus empirical facts. In Lecture notes in computer science (Vol. 5082, pp. 13–25). Heidelberg: Springer.
Smith, B. C. (1998). On the origin of objects. Cambridge: MIT Press.
Snelting, G. (1998). Paul Feyerabend und die Softwaretechnologie. In Informatik Spektrum (Vol. 21, No. 5, pp. 273–276). New York: Springer. English translation: Paul Feyerabend and Software Technology. Software Tools for Technology Transfer, Vol. 2, No. 1, pp. 1–5, 1998. Heidelberg: Springer.
Tichy, W. (2007). Empirical Methods in Software Engineering Research. In Invited lecture, Proceedings of the 4th IFIP WG 2.4 summer school on software technology and engineering, South Africa.
Zhirnov, V., Cavin, R., Leeming, G., Galatsis, K. (2008). An assessment of integrated digital cellular automata architectures. In Computer (Vol. 41, No. 1, pp. 38–44). IEEE Computer Society Press.
Acknowledgments
Thanks to the students of my software engineering seminars at the University of Pretoria for some interesting discussions in the context of this essay. Thanks also to Tom Maibaum for some inspiring conversations during the ICFEM International Conference on Formal Engineering Methods, 2008. Several fruitful discussions with my colleagues Derrick Kourie and Morkel Theunissen are gratefully acknowledged, too. Last but not least many thanks to the editors of this journal, to the guest-editors of this special issue, as well as to their anonymous reviewers, for the helpful comments which they have provided on the pre-print drafts of this essay.
Author information
Authors and Affiliations
Corresponding author
Additional information
This essay is written in commemoration of the 100th birthdays of Konrad Zuse and Lothar Collatz (both *1910) during the year 2010. Zuse contributed to the science of computing coming from the domain of engineering, Collatz from the domain of mathematics.
Rights and permissions
About this article
Cite this article
Gruner, S. Problems for a Philosophy of Software Engineering. Minds & Machines 21, 275–299 (2011). https://doi.org/10.1007/s11023-011-9234-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11023-011-9234-2