Affordable Access

Download Read

Intelligent Assistance for Software Development and Maintenance

Department of Computer Science, Columbia University
  • Computer Science


untitled Intelligent Assistance for Software Development and Maintenance Gail E. Kaiser Columbia University Department of Computer Science New York, NY 10027 Peter H. Feiler Steven S. Popovich Carnegie Mellon University Software Engineering Institute Pittsburgh, PA 15213 Final version to appear in IEEE Software, May 1988. 5 June 1987 1 Overview This article presents an architecture for controlled automation in software development en- vironments. 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 ac- tively 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 pro- gramming activities in general is represented as rules amenable to forward and backward chain- ing. These rules enable an environment to automatically carry out each activity sometime be- tween 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. 1. Introduction 1In 1973, Winograd discussed his dream of an intelligent assistant for programmers. He proposed that the most

There are no comments yet on this publication. Be the first to share your thoughts.