Aditya K. Ghose
Decision Systems Lab
Department of Information Systems
University of Wollongong
NSW 2522 Australia
aditya@uow.edu.au
This position paper presents a technology forecast. We forecast that agent-mediated tools will be developed and deployed to add value at every stage of the systems development lifecycle, specially in supporting user-specified requirements in a multi-stakeholder, multi-perspective development environment. Our argument is motivated by the following observations.
Supporting user objectives (and more generally, the objectives of all stakeholders) is critical in all phases the systems development lifecycle. Current tools and techniques tend to focus on explicit user objectives (or goals, or requirements) only during the requirements engineering phase. The underlying assumption is that the end-products of requirements engineering (RE) represent a consistent, refined and elaborated version of user goals that can form the basis for downstream phases in the lifecycle. We argue that this assumption is often inappropriate. User goals are often modified or discarded during the RE process, usually to maintain consistency with other goals [11] Decisions made during the design, implementation and maintenance phases may, however, make it feasible to satisfy these goals that would otherwise have been ignored (for instance, by weakening and rendering infeasible, other goals that these goals might have been inconsistent with). Other changes, such as changes in the environment that the system is situated in, as well as modifications in other (explicit) stakeholder objectives could also make these goals feasible. A key motivation for the REAGENT framework described in this paper is the need to ensure that user requirements play an explicit and active role at every stage of the lifecycle.
Tool support for user goals should ideally involve autonomous entities that are reactive (i.e., that constantly monitor and react to changes in the environment) as well as pro-active (i.e., that alert human developers and the larger development environment of situations where additional user goals could be satisfied, as well as suggest strategies for achieving this). The REAGENT project aims to explore the role of agent-based tools in supporting user requirements throughout the systems development lifecycle, and we shall present our technology forecast in the context of the objectives of this project. In this approach, the goals of each user (or group of users sharing common goals) are maintained and supported by an agent endowed with knowledge/beliefs, the ability to monitor the development and run-time environment, the ability to plan (and more generally, reason) and the ability to act. The idea of using agents to represent stakeholder requirements has its roots in the ViewPoints framework (where agents are abstract representations of both the software development process and a partial specification) [7,8,3,1]. The REAGENT framework seeks to exploit intelligent agent technologies to add value in providing automated (or at least semi-automated) support for the following key processes:
The REAGENT framework is being currently implemented within the context of the BDI agent architecture [10] using the abstract programming constructs offered by the AgentSpeak(L) agent programming language [9]. While this is not the only available choice (the CONGOLOG language [6] is an obvious alternative), the AgentSpeak(L) framework offers a simple set of constructs that are powerful enough to capture the intuitions that we currently seek to explore. An agent's problem-solving knowledge is encoded in part in its beliefs (we simplify the discussion here by using the terms knowledge and belief interchangeably) and in part in its plans. A plan specifies when and how an agent must act to achieve its goals or respond to external events and consists of a trigger (which must match a goal/sub-goal or an event), a set of pre-conditions (which the agent must believe to be true for the plan to be invoked) and a sequence of actions (some of which might involve asserting sub-goals that invoke other plans). Plans can thus tell an agent how to elaborate and refine goals, how to elicit new goals from stakeholders, how to negotiate resolutions to goal conflicts with other agents, when to generate alerts indicating that user goals currently considered infeasible might have become feasible again etc.
The REAGENT implementation is being designed as a configurable plug-in to existing CASE toolkits, with its constituent agents serving as knowledge-based monitors and assistants to both users and developers throughout the software lifecycle. We believe that agent-mediated tools will play an increasingly important role in settings such as these and that the time is ripe for exploring a synthesis of agent technology and software engineering tools.