Each FUN defines a set of roles which are filled by one or more agents. Roles have associated joining criteria which specify the services which an agent must provide in order to fill the role. The figure below illustrates the concept of FUNs applied to a simple model of Logica. It should be noted that the use of FUNs is not restricted to modelling human organisations. Software functions provided by member agents can be organised by FUNs into higher level software functionalities for use by other agents so as to represent a breakdown of a high-level software architecture.
FUNs are a useful concept during application analysis and development and at application runtime.
The FUN concept was adapted by Logica for this project from previous Logica work. During application development, FUNs serve as a useful analysis tool for identifying the organisations of agent components that will make up the application. In order to support application developers in the process of FUN analysis , we have produced a set of guidelines. The analysis results in the production of a FUN specification which is used as an input to the Agent design phase. At application runtime, FUNs allow the independent agent components that make up an agent application to have control over which agents should service their requests without compromising the loose coupling between agent components described in Section 9.1.3.