Prometheus: a practical agent oriented methodology

Agents are a powerful technology with many significant applications. A key issue in getting the technology into mainstream software development is the development of appropriate methodologies for engineering agent-oriented software. This paper presents the Prometheus methodology, which has been developed over several years in collaboration with Agent Oriented Software. The methodology has been taught at industry workshops and university courses. It has proven effective in assisting developers to design, document, and build agent systems. Prometheus is a detailed and complete (start to end) methodology for developing intelligent agents which has evolved out of industrial and pedagogical experience, and which is supported by tools. This paper gives a brief overview of the design process as a whole and then discusses envisaged tool support as well as the implemented tool prototypes we have been using. 1 Position Statement Agents are a powerful technology with many significant applications, both demonstrated and potential [8, 7]. A key issue in getting the technology into the mainstream of software development is the development of appropriate methodologies for engineering agent-oriented software. This paper motivates and presents the Prometheus1 methodology for developing intelligent agent systems. We consider a methodology to encompass (i) a set of concepts used; (ii) notations for modelling aspects of the software (requirements, designs, implementation); and (iii) a process that is followed in order to produce the software. The Prometheus methodology has been developed over the last several years in collaboration with Agent Oriented 1Prometheus was the wisest Titan. His name means “forethought” and he was able to foretell the future. Prometheus is known as the protector and benefactor of man. He gave mankind a number of gifts including fire. (http://www.greekmythology.com/) Software2 (AOS). Our goal in developing Prometheus was to have a process with associated deliverables which can be taught to industry practitioners and undergraduate students who do not have a background in agents and which they can use to develop intelligent agent systems. To this end Prometheus is detailed and complete in the sense of covering all the stages of software development as applied to agent systems. We believe that particular strengths of the Prometheus methodology include: • Provision of “start-to-end” support (from specification to detailed design, implementation and testing), including a detailed process, along with design artifacts constructed and steps for deriving artifacts. • Hierarchical structuring mechanisms which allow design to be performed at multiple levels of abstraction. Such mechanisms are crucial to the practicality of the methodology for large applications. • The structured nature of the design artifacts facilitates development of tool support, especially automated cross checking of design artifacts, and automated provision of skeleton artifacts at certain stages. Partial tool support already exists. • Support for detailed design of the internals of intelligent agents. This necessarily makes increased assumptions about the implementation platform. The detailed design assumes a plan based system where agents react to events, based on their beliefs about the situation. It is particularly well suited to BDI type systems. • The fact that the methodology has evolved out of practical industrial and pedagogical experience, and thus addresses issues in designing agent systems that have been experienced by both industrial practitioners and undergraduate students. Prometheus also uses an iterative process over the phases described in this paper, rather than a linear “waterfall” 2http://www.agent-software.com