The concept of role has been investigated in various fields of computer science as well as social sciences. While there is no clear consensus on how roles should be represented, a survey of the literature suggests that we should address both responsibilities and rights in the modeling of roles . Based on this, we argue that the responsibilities and rights of roles can be captured by leveraging the notions of business contract and goal (in the sense of the goals of an actor being constrained by the rights associated with the role played by the actor) in the realm of requirements engineering. We leverage existing work on the formalization of business contracts  and the formulation of goals in the i* modeling framework . We devise formal techniques for reasoning about the composition and substitutability of roles and illustrate them through a running example. © 2012 Springer-Verlag.