Abstract
A major and so far unmet challenge in software engineering is to achieve and act upon a clear and sound understanding of the relationship between formalism and intuition in the development process. The challenge is salient in the development of cyber-physical systems, in which the computer interacts with the human and physical world to ensure a behaviour there that satisfies the requirements of the system’s stakeholders. The nature of the computer as a formally defined symbol-processing engine invites a formal mathematical approach to software development. Contrary considerations militate against excessive reliance on formalism. The non-formal nature of the human and physical world, the complexity of system function, and the need for human comprehension at every level demand application of non-formal and intuitional knowledge, of insight and technique rather than calculation. The challenge, then, is to determine how these two facets of the development process—formalism and intuition—can work together most productively. This short essay describes some origins and aspects of the challenge and offers a perspective for addressing it.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Endres, A., Rombach, D.: A Handbook of Software and Systems Engineering. Addison-Wesley (2003)
Klein, G.: Intuition at Work. Doubleday (2003)
Rochlin, G.I.: Trapped in the Net: The Unanticipated Consequences of Computerization. Princeton University Press (1997)
Weyl, H.: The Mathematical Way of Thinking; address given at the Bicentennial Conference at the University of Pennsylvania (1940)
Weyl, H.: David Hilbert and his mathematical work. Bull. Am. Math. Soc. 50, 612–654 (1944)
Turing, A M.: Checking a large routine. In: Report on a Conference on High Speed Automatic Calculating Machines, pp. 67–69. Cambridge University Mathematical Laboratory, Cambridge (1949). Discussed in: Jones, C.B.: The Early Search for Tractable Ways of Reasoning about Programs; IEEE Annals of the History of Computing, vol. 25(2), pp. 26–49. 2003
Backus, J.W., Bauer, F.L., Green, J., Katz, C., McCarthy, J., Perlis, A.J., Rutishauser, H., Samelson, K., Vauquois, B., Wegstein, J.H., van Wijngaarden, A., Woodger, M. Naur, P. (eds.): Report on the Algorithmic Language ALGOL 60. Commun. ACM. 3(5), 299–314 (1960)
Conway, M.E.: Design of a separable transition-diagram compiler. Commun. ACM 6(7), 396–408 (1963)
Dahl, O-J., Hoare, C.A.R.: Hierarchical program structures. In: Dahl, O-J., Dijkstra, E.W., Hoare, C.A.R. (eds.) Structured Programming. Academic (1972)
Dijkstra, E.W.: A case against the go to statement; EWD 215, published as a letter to the Editor (Go To Statement Considered Harmful). Commun. ACM. 11(3), 147–148 (1968)
Dickinson, E.R.: Production of Firing Tables for Cannon Artillery; Report No 1371, US Army Materiel Command, Ballistic research Laboratories, Aberdeen Proving ground, Maryland (1967)
Hayes, I.J., Jackson, M.A., Jones, C.B.: Determining the specification of a control system from that of its environment. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) Formal Methods: Proceedings of FME2003, Springer. Lecture Notes in Computer Science, vol. 2805, pp. 154–169. (2003)
Poincaré, H.: Science et Méthode; Flammarion 1908; English translation by Francis Maitland, Nelson, 1914 and Dover 1952, 2003
Acknowledgements
This essay owes much to years of cooperation and stimulating discussion with many people, especially Anthony Hall, Ian Hayes, Daniel Jackson, Cliff Jones, Thein Than Tun and Yijun Yu. Since none of them has yet seen even a draft of the essay, they cannot be held responsible for its deficiencies.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Jackson, M. (2013). Formalism and Intuition in Software Engineering. In: Münch, J., Schmid, K. (eds) Perspectives on the Future of Software Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37395-4_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-37395-4_20
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-37394-7
Online ISBN: 978-3-642-37395-4
eBook Packages: Computer ScienceComputer Science (R0)