Logical foundations of artificial intelligence
Logical foundations of artificial intelligence
A plan-based intelligent assistant that supports the software development
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Plan-based intelligent assistance: an approach to supporting the software development process
Plan-based intelligent assistance: an approach to supporting the software development process
LaSSIE: a knowledge-based software information system
Communications of the ACM - Special issue on software engineering
SCALE: Process Modelling Formalism and Environment Framework for Goal-directed Cooperative Processes
SEE '95 Proceedings of the 1995 Software Engineering Environment Conferences
Hi-index | 0.00 |
One of the challenges in finding a suitable paradigm for defining software processes relates to the highly dynamic nature of software development. The actions required to carry out a given process are often dependent on detailed aspects of the current state. For example, the modules that need to be archived are just those that have been changed since they were last archived; the choice of archival method (i.e., source code control system versus local backup copy) depends on whether the module is in a steady state or still rapidly changing; use of certain debugging features is ruled out unless compilations were done with optimization disabled; and, many quite diverse factors influence the choice of relevant test cases to be run against a particular system version. The fact that development takes place, in part, through trial-and-error means that failures occur frequently, and recovery from failure must be accommodated. In spite of the programmer's best intentions, design reviews reveal areas needing rework, compilers find errors in source code, test cases fail, and tools sometimes exhibit bugs themselves.Powerful instantiation facilities represent one way to handle this type of dynamic behavior. A software project defines the process its programmers are to follow, and the actions taken by the programmers represent instantiations of this process. At an absolute minimum, instantiation involves binding parameters in the process definition to specific software objects in the environment. In this paper, we describe the relationship between instantiation facilities and the dynamics of process activities. First, we illustrate some limitations in instantiation mechanisms using a familiar paradigm: procedural definitions of processes. Then we describe a different approach to instantiation used in the AI planning paradigm.