Automating Requirements Engineering Using Artificial Intelligence Planning Techniques
John Anderson
Committee:
Technical Report(Dec 1969)
Keywords:

`Requirements engineering is a critical and yet poorly understood aspect of software engineering and other complex design tasks. In this dissertation I focus on requirements engineering for a particular class of designed artifacts, referred to as reactive systems, which provide services in response to events in the environment. For this class of systems, the requirements engineering task is to identify the set of services that best satisfy the client's requirements, and to ensure that the client understands and agrees to any trade-offs between competing concerns such as functionality, performance, ease of use, and cost. Coming to consensus requires bridging the gap between the cli­ent's requirements, which describe states in the application domain, and the functional specification, which describes the services to be provided by the target artifact.

My thesis is that the process of constructing and validating a functional specification of a reactive system can be carried out using artificial intelligence planning techniques. The client's requirements can be expressed as a set of planning problems: finding a sequence of actions that lead from an initial state to a goal state. The sequence of actions required to reach the goal state may include actions to be performed by the target artifact. These actions determine the services that must be provided by the target artifact.

I have implemented an automated planner and used it to explore the role of planning in the requirements engineering process. In this dissertation I first describe how requirements engineering can be viewed as a planning problem in which actions are composed into sequences that achieve goal states. I then show how the automated planner can be used in several parts of the requirements engineering process: proposing action sequences that satisfy the requirements, constructing function­al specifications based on those sequences, and critiquing the functional specifications by showing violations of client restrictions. I describe an extended example of using the automated planner to develop a functional specification of a benchmark problem, a library database. I evaluate the strengths and weaknesses of the planning approach to requirements engineering based on experi­ence with the automated planner.