Agents Identification

 

Agents’ identification starts from the use case diagrams of the previous step. According to our definition of agent, it is possible to see an agent as a use case or a package of use cases in the functional decomposition of the previous phase. Starting from a sufficiently detailed diagram of the system functionalities, we group one or more use cases into stereotyped packages so as to form a new diagram (see figure). In so doing, each package defines the functionalities of a specific agent.

Agents Identification use cases

(Part of) The Agent Identification diagram obtained from the requirements described in the previous phase

 

Relationships between use cases of the same agent follow the usual UML syntax and stereotypes (see Purchase Monitor and Purchase Advisor agents in the figure), whilst relationships between use cases of different agents are stereotyped as “communication”.

The convention adopted for this diagram is to direct communication relationships between agents from the initiator towards the participant.

Note, for example, how the “include” relationship between the use cases Provide Books and Receive Delivery turned from “include” into “communication”, and furthermore it also changed navigability direction. This reflects the fact that in an autonomous organization of agents in a distributed system, we can organize things in a departmental manner, so as to have a StoreKeeper actor that records via UI any stock’s delivery that occurs. The Store UI agent may then notify that to the Purchase Manager agent. In so doing, the Purchase Manager does not need to keep bothering about the delivery of a stock, but it rather continues to work while another agent is taking care of this task.

 

Next phase: Role Identification

Previous phase: Domain Description

Home: PASSI homepage 

 

Definition of Agent

In PASSI, an agent is a significant software unit at both the abstract and concrete levels of design. According to this view, an agent is an instance of an agent class. So it is the software implementation of an autonomous entity capable of going after an objective through its autonomous decisions, actions and social relationships. An agent may undertake several functional roles during interactions with other agents to achieve its goals. A role is a collection of tasks performed by the agent in pursuing a sub-goal. A task, in turn, is defined as a purposeful unit of individual or interactive behaviour.