Complex 2004 Proceedings of the 7th Asia-Pacific Conference on Complex Systems Cairns Convention Centre, Cairns, Australia 6-10th December 2004 Software engineering for artificial life, complex systems, and agent-based distillation James Watson 1 , Hussein A. Abbass 2 , Chris Lokan 3 , and Peter Lindsay 1 1 School of Information Technology and Electrical Engineering, University of Queensland, QLD 4072, Australia. Email: {j.watson, Peter.Lindsay}@itee.uq.edu.au 2 Artificial Life and Adaptive Robotics Laboratory, School of Information Technology and Electrical Engineering, University of New South Wales, Australian Defence Force Academy, Canberra, ACT 2600, Australia. Email: h.abbass@adfa.edu.au. 3 School of Information Technology and Electrical Engineering, University of New South Wales, Australian Defence Force Academy, Canberra, ACT 2600, Australia. Email: c.lokan@adfa.edu.au Abstract Research in artificial complexity (i.e., artificial life, complex systems, and agent-based distillation), largely depends on the use of computer software. The reliability of the ob- tained results is directly related to two key assumptions: (1) that the software represents the problem as intended by the developer; and (2) that the software is bug-free. However, de- veloping software for artificial complexity offers new challenges to software engineering, and it becomes imperative to discuss the software engineering problems arising in artifi- cial complexity that are different from traditional computer programming. The first aim of this paper is to identify the possible challenges confronted by developers of systems involving artificial complexity. The second is to offer preliminary suggestions on how to incorporate existing software engineering techniques into artificial complexity’s simulation development. 1. Introduction Research in Artificial Life (ALife), complex systems science and engineering (CSSE), and agent-based distillation (ABD), is yielding solutions to real life problems where traditional approaches seem to fail. In this paper, we will refer to the previous three areas from herein as artificial complexity. Artificial complexity research is typified by its bottom-up approach to modelling systems, in which the interactions between components can be as important as the components themselves. The main principles here are: (1) there are often simple rules underlying complex systems; and (2) the complexity of a system is not only due to the complexity of the components but also to the interaction between the system’s components. Although a large number of models and problem solving techniques exist in the literature of complex problem solving, traditional methods typically look at a system from a top-down