SwarmSimX: Real-time simulation environment for multi-robot systems
design patterns : elements of reusable object - oriented software .