A Basic Taxonomy for Role Composition Elke Steegmans 1 , Kurt Schelfthout 1 , Tom Holvoet 1 , Yolande Berbers 1 , Paul Valckenaers 2 , and Bart Saint Germain 2 1 KULeuven Dept. of Computer Science Celestijnenlaan 200 A, 3001 Heverlee, Belgium {Elke.Steegmans,Kurt.Schelfthout,Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be 2 KULeuven Dept. of Mechanical Engineering Celestijnenlaan 300 B, 3001 Heverlee, Belgium {Paul.Valckenaers,Bart.SaintGermain}@mech.kuleuven.ac.be Abstract. Roles are the basic building blocks for defining the behavior of agents in multi-agent systems. Agents typically perform several roles. In this paper, we describe analysis and design issues in defining agents as compositions of roles. In short, specifying the behavior of an agent entails in essence two issues: which roles are assigned to a particular agent, and how does an agent select a role in a particular situation. Both issues can be decided upon either by the designer (i.e. at design time) or by the agent (i.e. at run-time). This paper describes a basic taxonomy for role composition based on both issues, and illustrates the different composition approaches using a case study in the domain of manufacturing control. 1 Introduction Roles are a key element in the development of agents and multi-agent systems [5,20,23]. Few research, however, considers the issue of composing several roles to describe the behavior of a single agent. In this paper we propose a basic taxonomy, where three different approaches for role composition are proposed and where the focus is on combining several individual roles to achieve a work- ing agent. We propose three different approaches: static, adaptive and dynamic composition of roles. This taxonomy is achieved by differentiating between the assignment of roles and the selection of roles. An important distinction is made between assignment and selection of roles at design time and at run-time. The composition of roles can be hierarchical, where a separate policy for assignment and selection between sub-roles can be chosen for each “layer” in the hierarchy. The proposed approaches encompass important software engineering require- ments such as flexibility, adaptability and composability. The most important requirements on which we focus in this paper is reusability and adaptability of the approaches within different applications. We explain in detail the validation of our work through practical experience of the three composition approaches in the product path planning example within the domain of manufacturing control. C. Lucena et al. (Eds.): SELMAS 2003, LNCS 2940, pp. 92–110, 2004. c Springer-Verlag Berlin Heidelberg 2004