Role Constraints Identification
This activity aims at identifying constraints between roles such as roles that have to be played simultaneously, priorities, mutual exclusions, preconditions for one role generated by another, and so on. Concurrency constraints are also important because they will drive the definition of role scheduling policies. The detailed constraints between roles must prevent their concurrent execution and force a precise execution sequence. Roles shall be played simultaneously if and only if they allow an exchange of information between two different organisations. A mean for realizing this exchange can be the agent internal context when both roles belong to the same agent. This constitutes an alternative to the use of services and a simplification of information transfer.
Relevant information for this activity can obviously be found in the description of the role behaviour provided by the Role Behaviour Description work product but also in the Organisation Dependencies Description activity results.
Constraints between roles are reported in the class diagrams describing each organisation using UML constraints and also in a text documentation associated to these diagrams.
MAS Metamodel Elements
Work to be done
Constraints between roles are identified thanks to roles dependencies and associated knowledge described in the previous activity. Role behaviour description also defines which information is eventually required from other organisations and it thus allows the identification of couples of roles that have to be played simultaneously.
In the presented case study, the environment is simulated by using one single agent. This implies that all boundary roles of the application have to be played by a single agent. This is described in figure 22, by a constraint between the two identified boundary roles (Play Field and Game Observer). This type of constraint will have relevant consequences on the structure of the final system as it will be detailed in section 5.7.