Prompter - A Decision Support Tool using Distributed Intelligent Agents


Rory O'Connor
Tristan Renault
Dublin City University

Ireland
Objectif Technologie

France
roconnor@compapp.dcu.ie
renault@objectif.fr
Christophe Floch
Tony Moynihan
Annie Combelles
Objectif Technologie

France
Dublin City University

Ireland
Objectif Technologie

France
floch@objectif.fr
tonym@compapp.dcu.ie
akc@objectif.fr

Abstract

This paper describes work undertaken within the context of the P3 (Project and Process Prompter) Project which aims to develop the Prompter tool, a "decision-support tool to assist in the planning and managing of a software project". Prompter will have the ability to help project managers to assimilate best practice and "know how" in the field of software project management and incorporate expert critiquing which will assist project managers in solving the complex problems associated with software project management.


Keywords:

Expert Critiquing, Decision Support, Expert System, Intelligent Agent, CORBA.

1. Introduction

Software Project Management is the activity that covers and organises all the interactions that are involved in a software project, whether it is a reply to a call for tender or the launching of a product on the market place. This leads the project manager to make specific choices keeping the balance right between quality, functionality, schedule and cost of the product. However, the balance may change as the project progresses and this is the key reason why project management is (and always will be) a complex and demanding activity, as the project manager has to plan for the future, observe the actual and make decisions.

Software project managers make hundreds of decisions every day ranging from the relatively inconsequential to the significant. Ceteris paribus, good outcomes from those decisions are more desirable than bad outcomes. While some project managers may be 'lucky' in their decision-making processes, for most of us good outcomes in decision making are a result of making good decisions. "Good decision making" means that we are informed and that we have relevant and appropriate information on which to base our choices. Project managers make informed decisions based on a combination of judgement and information from staff, clients, research literature and current market forces, as well as knowledge gained from previous projects. Ideally, all relevant information should be brought together before judgement is exercised.

The quality of a decision depends on the adequacy of the available information, the quality of the information and the number of options available at the time of the decision. It is our belief that to improve the decision-making process, we need to improve information collection, presentation and analysis. In particular it is vital to analyse the proposed decision to assess the impact it will have on the project as a whole, analyse the risk to the project the decision will have, subject the decision to the critique of experts and suggest alternatives to the proposed decision.

To support project managers, organisations have sought to develop a number of information technology systems to assist with various aspects of the management of their software processes. Many tools exist in the market today that assist a project manager to address some of these objectives. These tools fall into three categories:

However, such systems fall short of supporting the project manager in his/her decision making process. In the light of this and having completed an extensive survey of tool users, we have identified several key areas which would be of benefit to the project manager in supporting the decision making process:

The aim of the P3 project is to build the Prompter tool which will assist the project manager in their decision-making process, by helping them to assimilate best practice in the field of software project management and incorporate expert critiquing which will assist project managers in solving the complex problems associated with software project planning.

One way to accomplish this goal is the use of Decision Support Systems (DSS) [7]. DSS are computer-based systems that bring together information from a variety of sources, assist in the organisation and analysis of information, and facilitate the evaluation of underlying assumptions. The availability of DSS provides the opportunity to improve data collection and analysis processes associated with decision making and further, DSS provide opportunities to improve the quality and responsiveness of decision making and hence the opportunity to improve the management of projects [12].

In addition to DSS, Expert Systems technology is well adapted to these kind of tasks. An Expert System (ES) is a computer program that represents and reasons with knowledge of some specialist subject with a view to solving problems or giving advice [5]. An ES may completely fill a function that normally requires human expertise, or it may play the role of assistant to a human decision maker. The symbolic reasoning of an ES enables them not only to draw conclusions, through a process similar to the one used by human experts, but also enables them to provide explanations concerning their estimations. ES technology is based on the domain knowledge of the problem being solved. A problem domain (e.g. software project management) defines the objects, properties, tasks and events within which a human expert works and also the heuristics that trained professionals have learned to use in order to perform better [6].

A third class of system which is suited to assisting in the decision-making process is Expert Critiquing Systems (ECS) [13]. These are a class of programs that receive as input the statement of the problem and the user-proposed solution. They produce as output a critique of the users judgement and knowledge in terms of what the program thinks is wrong with the user-proposed solution. Some critiquing systems also produce corrective repairs, while others attempt to prevent the user from committing some of the more common judgement errors in the first place. Simple, yet widely used example of critiquing system are spell checkers. However, more sophisticated critiquing systems have appeared in fields such as programming environments [3] and software risk management [8].

ECS are different to ES in that ES only accept the problem statement as input and provide their machine generated solution as output, whereas ECS take the solution as input and solve that. However, ECS do not necessarily solve problems for the user, they simply point out errors and sub-optimal conditions in the user-proposed solution that otherwise may remain undetected. ECS are particularly well suited to design tasks in complex problem domains as they do not always have an optimal solution and the problem cannot be precisely specified before attempting a solution [4]. ECS can function with only a partial understanding of the task, as they can provide support by applying generic domain knowledge, whereas ES are inadequate in situations where it is difficult to capture sufficient domain knowledge, because they leave the human out of the decision process and all 'intelligent' decisions are made by the computer. On the other hand, DSS assist the user in analysing and evaluating assumptions underlying a problem, but do not propose or critique a solution.

In the complex (ill-defined) domain of software project management, a useful tool to support the project manager in the decision making process is likely to be a hybrid of a number of techniques, including DSS, ES and ECS. The Prompter tool will therefore incorporate the information gathering and analysis techniques of DSS, with the ability of ES to propose possible solutions using expert knowledge and best practices and the power of ECS to critique the possible solutions, thus providing the project manager with every facility to make an informed and quality decision. This approach enables the inter-working of a variety of well understood techniques within a single underlying framework. The major benefits of this are facilitating and improving the quality of decision making by reducing information overload and by augmenting the cognitive limitations and bounds of the decision makers.


2. Prompter Approach To Knowledge Utilisation

Given the characteristics of software project management, it was decided that the most natural way to model the decision making process is as a collection of autonomous distributed problem solving intelligent agents [14]. In this context, an agent can be viewed as an encapsulated expert advisory entity which exhibits the following agent attributes [2]:

The choice of agents as a solution technology was further motivated by the following domain observations:

When collectively viewed, these observations support the use of intelligent agents as a strong solution candidate to implement the inter-working decision support framework described above. In the P3 project these problem-solving capabilities are encapsulated in distributed intelligent agents called "Daemons", that act as expert advisers helping users to define the process life cycle as well as providing continuous assessment on progress and quality of the project. Each daemon is an expert in a particular area of project management and continually analyses project parameters making the user aware of any possible weakness and helping to mitigate the associated risks. The daemons will use their expertise to "prompt" the user to choose between suggested alternatives, as well as providing justification for their advice. Daemons will encapsulate knowledge and best practice in the field of software engineering and in addition will have embedded the guidelines of quality standards [11] such as ISO 9000 and the Capability Maturity Model.

The decision making paradigm in Prompter can be seen in Figure 1. Two entities, daemons and a user, working together to contribute what they know about the domain to solving some problem and hence make a quality informed decision. The users primary role is to generate and modify solutions; the daemons is to analyse those solutions and produce a critique and advise on a possible solution for the human to apply in the next iteration of this process.

Figure 1 Prompter decision making paradigm

Daemons execute by attempting to assign values to the attributes in the conditional part of its rule-set from information in project database, data derived from user input or result of other daemon processing. When all the information a daemon needs is available it will proceed with its analysis, and produce its conclusions. For example, there may be a number of daemons who specialise in the selection of the most appropriate process model (lifecycle) for a particular project. The daemons could have a set of criteria [1] based on certain attributes of the project such as: the problem domain, product, available resources, personnel, and organisational attributes. These attributes would be examined and for each process model a comparative rating produced, indicating the most appropriate choice of process model. The daemons conclusions would be in two parts:

  1. Criticism / Advice Text - This text provides criticism, related to the daemon's 'competence' of the proposed project/process design, and advice on how things might be done differently.
  2. Justification Text - This is text which explains how the daemon arrived at its conclusion and acts as a justification for the advice offered.

Initially Prompter will have a basic set of daemons, located in a daemon library, which will be extended to include new services, thus allowing Prompter to be evolutionary. In the future, we envisage a community of daemons developers adding functionality to Prompter. This daemon library can be used in various contexts, namely: in a stand-alone mode; in a client server mode across a LAN; or in a distributed mode across an Intranet or the Internet. This provides the ability to update the daemon library remotely, where the daemon library runs on a server, whereas the application is locally distributed and asks for services from remote daemons (in the case of the Internet, this access can be subject to commercial and financial arrangements). This architecture provides the ability to modify, update and add to daemons in the library without creating a new version of the tool, thus creating a truly flexible distributed application.

3. Prompter Architecture

The Prompter architecture has been designed in such a manner as would lead to a prototype which is flexible and can be readily enhanced over time (e.g. adding new daemons or altering the GUI). It is desirable that the architecture will facilitate adjustment/alteration of any architectural element without causing major disruption to the overall system. Figure 2 illustrates the current tool architecture.

We have isolated the main functional parts of the tool into the following modules:

Figure 2 Prompter architecture

CORBA [9] was chosen as the interface bus on which to implement message passing between each of the modules in the Prompter architecture. The CORBA bus allows transparent access to distributed objects over a heterogeneous network of machines and operating systems. CORBA distributes messages via its Object Request Broker (ORB) transparently between registered objects. The ORB receives requests from a 'client' to send a message to an object. The broker locates the object referred to by the client and delivers the message to that object. This style of architecture combined with the flexibility of CORBA provides a unique solution to the requirements of independence of implementation language, capacity for evolution and interfacing ability.

This architecture allows us to remains independent with regards to implementation languages. However, as Prompter is intended for use in a typical project managers environment (i.e. a windows PC) certain limitations are placed on implementation. The use of CORBA allows us to maintain the tool kernel on a typical server while porting the GUI to any client, with both the daemons and the project database located physically anywhere on the network. With this in mind, the optimal choice could be :

The main advantages of this approach are:

The main drawbacks of this approach are related to the use of emerging technologies such as CORBA and Java and there associated risks. This will imply extra effort in testing the technologies to define more precisely their limits, in addition to the problems associated with the use of rapidly evolving technologies. Such actions have a cost and a risk which will have to be regularly evaluated and monitored to ensure a viable solution.

5. Conclusions

This paper has presented a brief résumé of some of the work undertaken in the P3 project. The architecture and its key mechanisms have been presented here, as has an outline of the implementation strategy. Work is currently underway in the development of an initial prototype for trial by a industrial panel of tool users to assess the added value of the Prompter approach to decision support in project management.

The Prompter approach is a fusion of a number of techniques within a single framework which aim to improve the quality of the decision making process. An important characteristic of this approach is the combination of these techniques in an open distributed environment with the potential for the continuous evolution of the knowledge base. However the ultimate decision of whether to accept or reject the advice of the system still lies with the judgement of the user.

References

[1] L.Alexander, A.Davis, "Criteria for Selecting Software Process Models", In Proceedings of the 15th International Computer Software and Applications Conference, IEEE Computer Society Press 1991.

[2]J.Bradshaw, "An Introduction to Software Agents", In Software Agents, MIT Press, 1997.

[3]G.Fischer, "A Critic for LISP", In Proceedings of the 10th International Joint Conference on Artificial Intelligence, Los Altos, Morgan Kaufman, 1987.

[4]G.Fischer, A.C.Lemke, T.Mastaglio, A.Morch, "The Role of Critiquing in Cooperative Problem Solving", ACM Transactions on Information Systems, April 1991.

[5]P.Jackson, "Introduction to Expert Systems" (2nd edition ), Addison-Wesley, 1990.

[6]M.Klein, L.B.Methlie, "Knowledge Based Decision Support Systems with Applications in Business" (2nd edition), John Wiley & Sons, 1995.

[7]E.Mallach, "Understanding Decision Support Systems and Expert Systems", Irwin, 1994.

[8]T.Moynihan, J.Power, W.Henry, "A Critiquing System Architecture for Software Risk Management", In Proceedings of ESCOM94, (Ivrea, Italy) May 1994.

[9]R.Orfali, D.Harkey, J.Edwards, "Instant CORBA", John Wiley & Sons, 1997

[10]D.J.Power, "DSS Glossary", World Wide Web, http://power.cba.uni.edu/DJP/dssglossary.html, 1997.

[11]J.Sanders, E.Curran, "Software Quality - A Framework for Success in Software Development and Support", Addison-Wesley, 1994.

[12]V.Sauter, "Decision Support Systems", John Wiley & Sons, 1997.

[13]B.Silverman, "Survey of Expert Critiquing Systems: Practical and Theoretical Frontiers", Communications of the ACM, Vol.35, No.4, April 1992.

[14]M.Wooldridge, N.Jennings, "Agents Theories, Architectures and Languages: A Survey", Lecture Notes in Artificial Intelligence, Springer-Verlag, 1995.

Acknowledgements

This research was supported by the Fourth Framework programme of the European Commission under ESPRIT project 22241. The authors gratefully acknowledge the value gained from discussions regarding this work with their research partners: Marty Sanders, Robert Cochran, Brian McCarthy (Catalyst Software), Martine Pauleito, Chantal Jourdain (Schneider Electric) and Vassilis Kopanas (Intracom).