The development and application of software engineering practices over the last thirty years have undoubtedly resulted in the production of significantly improved software. However, the majority of modem software systems remain intrinsically fragile and highly vulnerable to environmental change and require continuing and problematic manual adaptation. In this paper and given the problems inherent in manual software adaptation, the authors argue that imbuing the software system with the ability to self-adapt offers a potentially profitable route forward. For support of this claim, the authors draw on the emerging discipline of self-adaptive software, which seeks to devolve some of the responsibility for maintenance activity to the software itself. Realizing such auto-adaptive capability proves to be a challenging problem. The authors contend that many of the themes, problems and goals currently identified in the field of self-adaptive software bear a striking resemblance to problems that have long formed the basis of enquiry in the well-established field of cybernetics. Classical cybernetics, drawing on mathematical models of the adaptive processes of biological organisms, seeks to identify the general principles of control and communication required for organisms to survive in a changing environment. Consequently, cybernetics appears to offer the potential to apply naturally developed adaptation strategies to software artifacts. Therefore, after discussing these theoretical foundations, this paper reports their practical application by presenting the initial findings from the development of an experimental, agent based, adaptive In-Vehicle Telematics System (IVTS) for use by the Emergency Services.
['A. G. Laws', 'A. Taleb-Bendiab', 'S. J. Wade', 'D. Reilly']
From wetware to software: A cybernetic perspective of self-adaptive software