A Design Complexity Evaluation Framework for Agent-Based System Engineering Methods Anthony Karageorgos 1 , Nikolay Mehandjiev 1 and Simon Thompson 2 1 Department of Computation, UMIST, Manchester M60 1QD, UK {karageorgos, mehandjiev}@acm.org 2 Intelligent Business Systems, BT Exact Technologies, Ipswich IP5 3RE, UK simon.2.thompson@bt.com Abstract. Complexity in software design refers to the difficulty in understand- ing and manipulating the set of concepts, models and techniques involved in the design process. Agents are sophisticated software artefacts, associated with a large number of features and therefore Agent-Based System (ABS) engineering methods involve considerable design complexity. This paper proposes a frame- work to evaluate ABS engineering methods against a number of design com- plexity related criteria. The framework is applied to a number of representative ABS engineering methods and the results are used to motivate and guide fur- ther work in the area. 1 Introduction ABSs can currently be designed using a number of ad-hoc methods, formal methods or informal but structured methods. In addition, design can be done either statically, before the ABS is deployed, or dynamically on run-time. All existing methods have certain weaknesses and involve considerable difficulty in understanding and manipu- lating the concepts and models needed for the detailed ABS design. This is referred to as design complexity. The term complexity has been given many definitions in the literature and the ma- jority of them are based on the Oxford English dictionary definition, referring to “difficulty in understanding”. Software engineering complexity relates to how diffi- cult it is to implement a particular computer system [14]. It is considered that high software complexity results to low software quality [8]. In this work, the focus is on ABS engineering complexity and in particular on that related to ABS design. The sophisticated structure and properties of software agents increase the complex- ity inherent in ABS design. For example, designing agents to operate in dynamic and open environments and carry out non-trivial tasks that require maximisation of some utility payoff function involves high design complexity [25]. Lower software complexity provides advantages such as lower development and maintenance time and cost, less functional errors and increased reusability. Therefore, it is common in software metrics research to try to predict software qualities based on complexity metrics [14]. Furthermore, certain factors associated with lower complex-