managing complexity in software systems an agent - based approach for building complex software systems why agent - oriented approaches are well suited for .
Agent-based software engineering