Intelligent Assistance for Software Development and Maintenance

Gail E. Kaiser; Peter H. Feiler; Steven S. Popovich

Intelligent Assistance for Software Development and Maintenance
Kaiser, Gail E.
Feiler, Peter H.
Popovich, Steven S.
Computer Science
Persistent URL:
Columbia University Computer Science Technical Reports
Part Number:
Department of Computer Science, Columbia University
Publisher Location:
New York
This article presents an architecture for controlled automation in software development environments. Controlled automation enables environments to behave as intelligent assistants by answering questions about the software project and automatically invoking tools to further the users’ goal of producing a working software system. The discussion of the architecture focuses primarily on the programming stages of development and maintenance. An environment assists programmers by understanding the technical aspects of the evolving software system and by actively participating in the programming process. The architecture supports these capabilities by providing two kinds of knowledge representation: (1) the knowledge specific to a particular software project is represented as entities in a database and (2) the knowledge that models programming activities in general is represented as rules amenable to forward and backward chaining. These rules enable an environment to automatically carry out each activity sometime between when its conditions are satisfied and its results are required. The rules are grouped into collections called strategies. One or more specific strategies are employed according to each user’s current context and goals, and determine when forward or backward chaining should be applied and which rules are considered during chaining. This architecture has been validated through a prototype implementation that models the capabilities of an existing environment that supports automation.
Computer science
Item views
text | xml
Suggested Citation:
Gail E. Kaiser, Peter H. Feiler, Steven S. Popovich, , Intelligent Assistance for Software Development and Maintenance, Columbia University Academic Commons, .

Columbia University Libraries | Policies | FAQ