Software engineering development is crucial for industrial and commercial applications as systems are required to operate in increasingly complex, distributed, open, dynamic, unpredictable, and inherently highly interactive environments. This work is being motivated by the need to engineer complex systems with autonomous entities, to manage systems’ inherent complexity during analysis, design and implementation. This article presents the Agent Role Locking (ARL) theory that provides a new conceptualization of the relation between agents and roles in Multi Agent Systems. ARL concepts are being explained and illustrated using an e-learning system case study. ARL extends UML with both static and dynamic structures by means of role class, agent class diagrams and Agent Interaction Protocol (AIP) diagrams.