Methodologies for Designing Agent Societies