A Methodology for Agent-Oriented Analysis and Design