A framework for the design and automated implementation of communication aspects in multi-agent systems