A Theory of Software Development
by R. Feldt
We present a theory of software development as an incremental learning process. The focus is on the internal models of the developer. There are two main ways in which a development process can make progress: by refining an internal model or by refining an artefact based on an internal model. Refining the internal models is a prerequisite for being able to write a concrete specification and program that show acceptable behaviour. The theory has implications for tools to support software development. By creating novel test cases they can force the developer to question his internal models and realize where they are incomplete or incorrect.


  author =    "Robert Feldt",
  title =     {A Theory of Software Development},
  year =      "2002",
  institution = "Dept. of Computer Engineering, Chalmers University of Technology, Gothenburg",
  number =    "Tech. report 02-22",
  keywords =  "Software Development; Theory",
  url =       "",