One of the most appealing features of multiagent technology is its natural way to modularise a complex system in terms of multiple, interacting and autonomous components. As a natural extension of classes, castes introduced in the formal specification language SLAB provide a language facility that provides modularity in the formal specification of multiagent systems. A caste represents a set of agents of common structural and behavioural characteristics. A caste description defines the tasks that the agents of the caste are capable of, the rules that govern their behaviour, and the environment that they live in. The inheritance relationship between castes defines the sub-group relationship between the agents so that special capabilities and behaviours can be introduced. The instance relationship between an agent and a caste declares that an agent is a member of a caste. This paper discuses how the caste facility can be employed to specify multiagent systems so that the notion of roles,...