Methodologies and Software Engineering for Agent Systems: the Agent-oriented Software Engineering Handbook