Skip to main content
Top
Published in: Minds and Machines 2/2011

01-05-2011

Specification

Author: Raymond Turner

Published in: Minds and Machines | Issue 2/2011

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

The specification and implementation of computational artefacts occurs throughout the discipline of computer science. Consequently, unpacking its nature should constitute one of the core areas of the philosophy of computer science. This paper presents a conceptual analysis of the central role of specification in the discipline.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Footnotes
1
Extreme programming, and even cowboy coding, may have very loose design strategies and no specified methodology of development, but they still have some goals.
 
2
We shall not try and be precise about the notion of a functional specification. This rough characterisation will serve our purpose. Nor shall we be concerned with the full range of practical aspects of software engineering that involve requirements capture and design methodologies. Here we shall concentrate on what we take to be the central philosophical issue.
 
3
“The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.” (Bass 2003).
 
4
Indeed, they are candidates for computer science examples of artificial kinds (Franssen 2009). There is much more that needs to be explored here, but it requires more space than we presently have.
 
5
With more complex specifications we have to work much harder. While choosing the appropriate underlying ontological setting makes it possible to make precise most aspects of a specification (Turner R, Computable Models, 2009), it is a non-trivial task.
 
6
One might suggest that ostensive definitions may be used as the basis of specification, and these may be based on physical devices. Suppose I request you to build me a stick of length one metre. Is this not to use a physical object, the stick in Paris, as the basis of a specification? Not in the sense that no abstract notion or device is involved. The length Metre is not something that changes with the length of the Paris stick. Once baptized, the length is fixed; it is the same in all possible worlds. There is clearly much more that might be said here, but it would take us too far afield.
 
7
Perhaps the artificial kinds of computer science are encoding some notion of real essence for these artefacts and thereby determine what fit for use might be taken to be.
 
8
This is not intended to be the same as the so called software/hardware distinction (Moor 1978).
 
9
Much the same is true of those object-oriented approaches to software design e.g. (Eden 2011).
 
10
Something akin to this is implicitly asserted in terms of clients and programmers, in (Morgan 1990).
 
11
…the other is to interpret rules and axioms of form (C) as empirical claims concerning the possible behaviour of the target machine thereby described… (Fetzer 1988).
… (C) is actually a prediction of what will occur when statement S is ultimately executed…It is a static prediction of its later dynamic execution (Colburn 2000).
 
12
We shall now go more deeply into the debate about the nature of explanation and its connection with causation. The main focus here is in the role of testing and verification of scientific theories.
 
13
Of course, specifications and designs do employ scientific and other knowledge; knowledge about how to construct the artefact. Often the difference is characterized as the difference between knowing how and knowing that (McCarthy 2006).
 
14
The difference between a model and a theory is controversial and not that significant for the present discussion since the central point may be phrased in terms of theories or models. Anguis (2010) contains a very clear account of this distinction as applied to program construction.
 
Literature
go back to reference Aho, A. S. (1985). Compilers principles, techniques and tools. Reading, Massachusetts: Addison-Wesley. Aho, A. S. (1985). Compilers principles, techniques and tools. Reading, Massachusetts: Addison-Wesley.
go back to reference Alan, J. (1994). Natural language understanding. London: Addison Wesley. Alan, J. (1994). Natural language understanding. London: Addison Wesley.
go back to reference Anguis, N. (2010). Abstraction and idelization in the verification of computer programs. Forthcoming. Anguis, N. (2010). Abstraction and idelization in the verification of computer programs. Forthcoming.
go back to reference Asperti, A. (2009). Social processes, program verification and all that. Mathematical Structures in Computer Science, 19(5), 877–896.MathSciNetMATHCrossRef Asperti, A. (2009). Social processes, program verification and all that. Mathematical Structures in Computer Science, 19(5), 877–896.MathSciNetMATHCrossRef
go back to reference Baier, C. J. (2008). Principles of model checking. Cambridge, MA.: MIT Press.MATH Baier, C. J. (2008). Principles of model checking. Cambridge, MA.: MIT Press.MATH
go back to reference Bass, L. C. (2003). Software architecture in practice. Pittsburgh: SEI. Bass, L. C. (2003). Software architecture in practice. Pittsburgh: SEI.
go back to reference Bengt Nordström, K. P. (1990). Programming in Martin-Löf’s type theory. Oxford: Oxford University Press.MATH Bengt Nordström, K. P. (1990). Programming in Martin-Löf’s type theory. Oxford: Oxford University Press.MATH
go back to reference Chalmers, A. (1999). What is this thing called science. Maidenhead: Open University Press. Chalmers, A. (1999). What is this thing called science. Maidenhead: Open University Press.
go back to reference Colburn, T. R. (2000). Philosophy and computer science. Explorations in philosophy, series. New York: M.E. Sharpe. Colburn, T. R. (2000). Philosophy and computer science. Explorations in philosophy, series. New York: M.E. Sharpe.
go back to reference Dawes, J. (1991). The VDM-SL reference guide. London: Pitman. Dawes, J. (1991). The VDM-SL reference guide. London: Pitman.
go back to reference De Millo, R. A., & Lipton, R. J. (1979). Social processes and proofs of theorems and programs. Communications of the ACM, 22, 271–280.MATHCrossRef De Millo, R. A., & Lipton, R. J. (1979). Social processes and proofs of theorems and programs. Communications of the ACM, 22, 271–280.MATHCrossRef
go back to reference Diller, A. Z. (1990). An introduction to formal methods. London: Wiley.MATH Diller, A. Z. (1990). An introduction to formal methods. London: Wiley.MATH
go back to reference Eden, A. (2011). Codecharts: Roadmaps and blueprints for object-oriented programs. Hoboken, NJ: Wiley-Blackwell. Eden, A. (2011). Codecharts: Roadmaps and blueprints for object-oriented programs. Hoboken, NJ: Wiley-Blackwell.
go back to reference Edmund, M., & Clarke, J. O. (1999). Model checking. Boston: MIT Press. Edmund, M., & Clarke, J. O. (1999). Model checking. Boston: MIT Press.
go back to reference Fernandez, M. (2004). Programming languages and operational semantics: An introduction. London: King’s College Publications.MATH Fernandez, M. (2004). Programming languages and operational semantics: An introduction. London: King’s College Publications.MATH
go back to reference Fetzer, J. (1988). Program verification: The very idea. Communications of the ACM, 31(9), 1048–1063.CrossRef Fetzer, J. (1988). Program verification: The very idea. Communications of the ACM, 31(9), 1048–1063.CrossRef
go back to reference Fuchs, N. (1992). Specifications are (preferably) executable. Software Engineering Journal, 7(5), 323–334.CrossRef Fuchs, N. (1992). Specifications are (preferably) executable. Software Engineering Journal, 7(5), 323–334.CrossRef
go back to reference Grady Booch, J. R. (1999). The unified modeling language. Reading, Massachusetts: Adison Wesley. Grady Booch, J. R. (1999). The unified modeling language. Reading, Massachusetts: Adison Wesley.
go back to reference Hale, B. (1987). Abstract objects. Oxford: Basil Blackwell. Hale, B. (1987). Abstract objects. Oxford: Basil Blackwell.
go back to reference Horty, J. (2007). Frege on definitions. New York: Oxford University Press. Horty, J. (2007). Frege on definitions. New York: Oxford University Press.
go back to reference Jacquette, D. (2002). Ontology. Chesham: Acumen Publishing Ltd. Jacquette, D. (2002). Ontology. Chesham: Acumen Publishing Ltd.
go back to reference Jones, C. (1986). Systematic software development using VDM. Hemel Hemstead: Prentice Hall.MATH Jones, C. (1986). Systematic software development using VDM. Hemel Hemstead: Prentice Hall.MATH
go back to reference Jones, C. (1990). Specifications are not (necessarily) harmful. Software Engineering Journal, 330–339. Jones, C. (1990). Specifications are not (necessarily) harmful. Software Engineering Journal, 330–339.
go back to reference Kripke, S. (1982). Wittgenstein on rules and private language. Boston: Harvard University Press. Kripke, S. (1982). Wittgenstein on rules and private language. Boston: Harvard University Press.
go back to reference Kroes, P., & Meijers, A. (Eds.). (2006). The dual nature of technical artifacts. Special issue of Studies in History and Philosophy of Science, 37, 1–158. Kroes, P., & Meijers, A. (Eds.). (2006). The dual nature of technical artifacts. Special issue of Studies in History and Philosophy of Science, 37, 1–158.
go back to reference McCarthy, N. (2006). Philosophy in the making. Ingenia, issue 26. McCarthy, N. (2006). Philosophy in the making. Ingenia, issue 26.
go back to reference Moor, J. (1978). Three myths of computer science. British Journal for the Philosophy of Science, 29, 213–222. Moor, J. (1978). Three myths of computer science. British Journal for the Philosophy of Science, 29, 213–222.
go back to reference Morgan, C. (1990). Programming from specifications. London: Prentice Hall.MATH Morgan, C. (1990). Programming from specifications. London: Prentice Hall.MATH
go back to reference O’Hearn, P. W. (2010). Abductive, inductive and deductive reasoning about resources. In csl: DBLP conference 2010. (pp. 49–50). O’Hearn, P. W. (2010). Abductive, inductive and deductive reasoning about resources. In csl: DBLP conference 2010. (pp. 49–50).
go back to reference Pierce, B. (2002). Types and programming languages. London: The MIT Press. Pierce, B. (2002). Types and programming languages. London: The MIT Press.
go back to reference Plotkin, G. (2004). A structural approach to operational semantics. Journal of Logic and Algebraic Programming, 60–61, 17–139.MathSciNet Plotkin, G. (2004). A structural approach to operational semantics. Journal of Logic and Algebraic Programming, 60–61, 17–139.MathSciNet
go back to reference Potter, B. S. (1991). An introduction to formal specification and Z. New Jersey: Prentice Hall.MATH Potter, B. S. (1991). An introduction to formal specification and Z. New Jersey: Prentice Hall.MATH
go back to reference Robinson, R. (1950). Definition. Oxford: Clarendon Press. Robinson, R. (1950). Definition. Oxford: Clarendon Press.
go back to reference Rosenberg, A. (2000). The philosophy of science. London: Routledge. Rosenberg, A. (2000). The philosophy of science. London: Routledge.
go back to reference Spivey, J. (1998). Understanding Z. Cambridge: Cambridge University Press. Spivey, J. (1998). Understanding Z. Cambridge: Cambridge University Press.
go back to reference Stoy, J. (1977). Denotational semantics. Massachusetts: MIT. Stoy, J. (1977). Denotational semantics. Massachusetts: MIT.
go back to reference Turner, R. (1991). Constructive foundations for functional languages. New York: Prentice Hall. Turner, R. (1991). Constructive foundations for functional languages. New York: Prentice Hall.
go back to reference Turner, R. (2007). Understanding programming languages. Minds and Machines, 17(2), 129–133.CrossRef Turner, R. (2007). Understanding programming languages. Minds and Machines, 17(2), 129–133.CrossRef
go back to reference Turner, R. (2010). Programming languages as mathematical theories. In J. Valllverdu, Thinking machines and the philosophy of computer science. IGI Global Publishers. Turner, R. (2010). Programming languages as mathematical theories. In J. Valllverdu, Thinking machines and the philosophy of computer science. IGI Global Publishers.
go back to reference Vallverdu, J. (2010). Thinking machines and the philosophy of computer science. IGI Global. Vallverdu, J. (2010). Thinking machines and the philosophy of computer science. IGI Global.
go back to reference Van Vliet, H. (2008). Software engineering: Principles and practice. Chichester: John Wiley. Van Vliet, H. (2008). Software engineering: Principles and practice. Chichester: John Wiley.
go back to reference Woodcock, J. (1996). Using Z- specifications, refinement and proof. New Jersey: Prentice Hall. Woodcock, J. (1996). Using Z- specifications, refinement and proof. New Jersey: Prentice Hall.
go back to reference Zalta, E. (1983). Abstract objects. Dordrecht, New York: D. Reidel. Zalta, E. (1983). Abstract objects. Dordrecht, New York: D. Reidel.
Metadata
Title
Specification
Author
Raymond Turner
Publication date
01-05-2011
Publisher
Springer Netherlands
Published in
Minds and Machines / Issue 2/2011
Print ISSN: 0924-6495
Electronic ISSN: 1572-8641
DOI
https://doi.org/10.1007/s11023-011-9239-x

Other articles of this Issue 2/2011

Minds and Machines 2/2011 Go to the issue

Premium Partner