Incorporating product-line engineering techniques into agent-oriented software engineering for efficiently building safety-critical, multi-agent systems