Does AI have a methodology which is different from software engineering?

This paper argues that the conventional methodology of software engineering is inappropriate to AI, but that the failure of many in AI to see this is producing a Kuhnian paradigm ‘crisis’. The key point is that classic software engineering methodology (which we call SPIV: Specify-Prove-Implement-Verify) requires that the problem be capable of being circumscribed or surveyed in a way that it is not, for areas of AI, like natural language processing. In addition, it also requires that a program be open to formal proof of correctness. We contrast this methodology with a weaker form complete Specification And Testability (SAT — where the last term is used in a strong sense: every execution of the program gives decidably correct/incorrect results) which captures both the essence of SPIV and the key assumptions in practical software engineering. We argue that failure to recognize the inability to apply the SAT methodology to areas of AI has prevented development of a disciplined methodology (which is unique to AI and which we call RUDE: Run-Understand-Debug-Edit) that will accommodate the peculiarities of AI and also yield robust, reliable, comprehensible, and hence maintainable AI software.

[1]  C. A. R. Hoare,et al.  The emperor's old clothes , 1981, CACM.

[2]  Thomas E. Cheatham,et al.  Software Technology in the 1990's: Using a New Paradigm , 1983, Computer.

[3]  Roger C. Schank,et al.  The Current State of AI: One Man's Opinion , 1983, AI Mag..

[4]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[5]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[6]  Frederick Hayes-Roth,et al.  Building expert systems , 1983, Advanced book program.

[7]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[8]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[9]  V S Johnston,et al.  Computer programs as theories in biology. , 1984, Journal of theoretical biology.

[10]  Edward Yourdon,et al.  Techniques of Program Structure and Design , 1976 .

[11]  D Partridge Artificial Intelligence: Applications in the Future of Software Engineering , 1986 .

[12]  T. Kuhn,et al.  The Structure of Scientific Revolutions. , 1964 .

[13]  Alan Bundy,et al.  The Nature of AI: A Reply to Schank , 1983, AI Mag..

[14]  Y. Wilks Decidability and Natural Language , 1971 .

[15]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[16]  ROBERT KOWALSKI Software engineering and artificial intelligence in new generation computing , 1984, Future Gener. Comput. Syst..

[17]  Richard V. Giddings Accommodating uncertainty in software design , 1984, CACM.

[18]  Richard J. Lipton,et al.  Social processes and proofs of theorems and programs , 1979, CACM.

[19]  Theory Choice in a Two-level Science* , 1975, The British Journal for the Philosophy of Science.