|
EPSRC Network on Evolvability in Biology & Software SystemsSoftware Evolution and Evolutionary Computation Symposium Abstracts
University of Hertfordshire, Hatfield, U.K.
|
A.G. LAWS, A. TALEB-BENDIAB AND S.J. WADE
School of Computing and Mathematical Sciences, Liverpool John Moores University Liverpool L3 3AF
The development and application of software engineering practices over the last thirty years have undoubtedly resulted in the production of significantly improved software, yet the majority of modern software systems remain intrinsically frangible. Nowhere is this more apparent than in those systems that attempt to model real world situations. Here, the abstractions and assumptions made in attempting to capture the unbounded, unspecifiable richness of the real world in the finite and static medium of software, inevitably result in systems that are deeply riven with uncertainty. Such systems remain highly vulnerable to environmental change and consequently require continuing, problematic adaptation and evolution. In this paper, the authors concede to the inevitability of such uncertainty and argue that the key to the problem lies in the adaptability of the software system. Moreover, given the problems inherent in human-oriented software evolution, it is further contended that imbuing the software system with a degree of self-adaptation 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 system itself, although realising such auto-adaptive systems proves to be a challenging problem. However, the authors argue 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, rooted in 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. Such is the generality of cybernetic thinking that the principles involved are entirely applicable to both biological and man-made entities and consequently, cybernetics appears to offer the potential to apply naturally developed adaptation strategies to software artefacts. Moreover, further cybernetic development in the form of the managerial cybernetics of Beer's Viable System Model (VSM) identifies the necessary and sufficient systems required for any entity to survive in a changing environment and as such appears to offer a conceptual blueprint for the design of viable auto-adaptive software systems. Although the full-scale realisation of such a design remains a long-term goal, recent advances in software construction, particularly multi-agent systems, offer a practical and immediate approach to apply and explore these ideas by providing a means to construct loosely-coupled systems from small, specifiable, communicating components. Therefore, the paper, after discussing these theoretical foundations, reports their practical implementation in an on-going research project in evolving large-scale dependable software systems. The initial findings from the development of an experimental, agent-based, adaptive In-Vehicle Telematics System (IVTS) for use by the Emergency Services are presented. The paper concludes by considering the broader contribution such a cybernetic approach can make to current software-oriented research.