Roles are an essential concept within agent-oriented software engineering (AOSE). Role definitions in current AOSE methodologies are usually claimed to be for use at the requirements level. However, in most methodologies, they are too low level, specifying too much detail. In this paper, we present a 'higher level' role specification. The role specification method described in this paper works together with other agent specification/analysis methods that we and others have developed. However, we believe that role specification may also be used with non-agentbased systems, and provide a useful abstraction for specifying the requirements of any software system.