The PASSI Design Process

PASSI (a Process for Agent Societies Specification and Implementation) is a step-by-step requirement-to-code methodology for designing and developing multi-agent societies integrating design models and concepts from both OO software engineering and artificial intelligence approaches using the UML notation. The models and phases of PASSI encompass anthropomorphic representation of system requirements, social viewpoint, solution architecture, code production and reuse, and deployment configuration supporting mobility of agents. The design process with PASSI is supported by PTK (PASSI ToolKit) which is composed by an add-in for Rational Rose and a tool for reusing patterns of agents. [The PASSI Design Process]

I have recently followed the PASSI process to develop an Architecture for Context-Dependent Information Systems, as a component of the middleware layer (the layer between the transport and the application layer). JADE has been the framework I used to work with agents.

JADE (Java Agent DEvelopment Framework) is a software framework fully implemented in Java language. It simplifies the implementation of multi-agent systems through a middle-ware that claims to comply with the FIPA specifications and through a set of tools that supports the debugging and deployment phase. The agent platform can be distributed across machines (which not even need to share the same OS) and the configuration can be controlled via a remote GUI. The configuration can be even changed at run-time by moving agents from one machine to another one, as and when required. The only system requirement is the Java Run Time version 1.4 or later. [JADE Homepage]

I must say that I’m impressed with how much the PASSI process can be so powerful in its semplicity. Have a look at the PASSI Home Page to find out how the steps you have to follow are easy to understand and to put in practice. The partition in five models allows designers to look at the multi-agent system in different ways. The models are: System Requirements Model, Agent Society Model, Agent Implementation Model, Code Model, and Deployment Model. For more information have a look at the PASSI lifecycle.

Looking at the documentation, it would seem that PASSI is a waterfall process, but it is not. PASSI is iterative, sequential and top-down, as the authors (M.Cossentino and C.Potts) write in paragraph 2.2 of the research paper about it. There are two kinds of iteration in PASSI. The first one is related to requirement elicitation and involves dependencies among the System Requirements Model, the Agent Society Model and the Agent Implementation Model. The second type of iteration is related to Multi-Agent System Implementation and takes place inside the Agent Implementation Model in the manner shown in figure.

passi_iteration.jpg

PASSI has been very helpful to me for developing a well-structured agent-based software application. In particular the Deployment Model helped me to get the picture of the software I was on the point to develop. I’ve been run the Deployment Configuration phase (the only one of Deployment Model) during the phases of Agent Implementation Model because I needed to understand how effectively components (placed in different containers) could communicate among themselves. Moreover, since the application I developed implied agent mobility, I needed some deployments diagrams to describe any constraints on migration and mobility, in order to describe the behaviours of module providing mobility.

PASSI is without doubt a good process to follow but the online documentation about iterations and phases overlap is not clear enough. That’s why I have just written this post! ;)

Popularity: 48% [?]



Related Posts:
  • Rational Unified Process
  • Software Architecture: Perspectives on a Maturing Discipline
  • About Franciov
  • Leave a Reply

    *
    To prove you're a person (not a spam script), type the security word shown in the picture.
    Anti-Spam Image


    Close
    E-mail It