Today, the trend in software is to build bigger and complex software systems. Dealing with the increasing complexity of developing, integratingand managing open distributed applications is a continuous challenge for software engineers. In the last fifteen years, multi-agent systems have been put forward as one of the paradigms to tackle the complexity of open distributed applications. Since a few years, the research on multi-agent systems started to focus on software engineering for multi- agent systems, known under the term Agent-Oriented Software Engineering. In thecontext of Agent-Oriented Software Engineering, already a number of agent- oriented methodologies have been proposed and within some of them role modeling plays an important role.The focus of this dissertation is on modeling support for the development of multi-agent systems, and more in particular on suitable abstractions and models together with asuitable modeling language to design a multi-agent system in the architectural design phase of the software development process. The goal of this dissertation is twofold: (1) to offer proper modeling support for designing a situated multi-agent system by increasing the level of abstraction to design such a multi-agent system and by bridging the gap between architectural design, detailed design and implementation of situated agent architectures, and (2) to increase the reuse of multi-agent system models in different applications.