Models and paradigms of interaction
Objects have inherently greater computation power than functions because they provide clients with continuing services over time. They determine a marriage contract for interactive services that cannot be expressed by a pattern of time-independent sales contracts. Objects express the programming-in-the-large paradigm of software engineering, while functions express the programming-in-the-small paradigm of the analysis of algorithms. Objects have a functional semantics specified by their interface, a serial semantics specified by traces of interface procedures, and a fully abstract semantics that specifies behavior over time for all possible interactions. They assign meaning to the time between the execution of interface procedures as well as to algorithmic effects. Church's thesis that computable functions capture the intuitive notion of effective computation for algorithms cannot be extended to objects.
Components are defined by generalizing from accidental to necessary properties of persistent interaction units. Scalability for software problems, defined as “asymptotic openness”, is shown to be the analog of complexity for algorithmic problems. Paradigms of interaction are examined for functions and procedures, objects and processes, APIs and frameworks, databases, GUIs, robots, and virtual-reality systems. Early models of computing stressed computation over interaction for both theoretical reasons (greater tractability) and practical reasons (there were no software components with which to interact). However, scalable software systems, personal computers, and databases require a balance between algorithmic and interactive problem solving. Models of interaction express the behavior of actual software systems and therefore capture the intuitive notion of truly effective computation more completely than mere algorithms.
Keywordsmodel interaction object component interface algorithm problem complexity scalability computability semantics API framework database GUI robot virtual reality
Unable to display preview. Download preview PDF.
- [BC]Len Bass and Joelle Coutaz, Developing Software for the User Interface, Addison Wesley 1991.Google Scholar
- [Br]R. A. Brooks, Intelligence Without Reason, Proc 12th International Joint Conference on Artificial Intelligence, August 1991.Google Scholar
- [GJ]M. Garey and D. Johnson, Computers and Intractability, Freeman 1979.Google Scholar
- [Ja]I. Jacobson, Object-Oriented Software Engineering, Addison-Wesley/ACM-Press, 1991.Google Scholar
- [Kn]D. E. Knuth, The Art of Computer Programming, Volume I, Addison Wesley 1969.Google Scholar
- [Mi]Robin Milner, Elements of Interaction, CACM, January 1993 (1992 Turing Lecture).Google Scholar
- [Pe]Roger Penrose, The Emperor's New Mind, Oxford 1989.Google Scholar
- [Po]K. Popper, The Open Society and its Enemies, Princeton University Press, 1966.Google Scholar
- [Ru]James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1990.Google Scholar
- [Si]H. Simon, The Sciences of the Artificial, MIT Press, Second Edition, 1982.Google Scholar
- [Tu]A. M. Turing, Computing Machinery and Intelligence, Mind 1950Google Scholar
- [We]P. Wegner, Tradeoffs Between Reasoning and Modeling, in Research Directions in Concurrent Object-Oriented Programming, Eds Agha, Wegner, Yonezawa, MIT Press, November 1993.Google Scholar