engineering approach for multi-agent systems that is heavily based on software