Methods and Tools for Engineering Self-Organizing Software Systems - Vilenica, Ante; Sudeikat, Jan (Electronic Communications of the EASST, 2011)
Developing software systems that can cope with constantly changing contexts and at runtime is a challenging task. Most importantly, changing contexts require adaptive system behavior in order to maintain system functionality even under dynamically changing environment conditions. And this relates not only to the core system functionality but also to non-functional aspects such as, e.g., reliability and/or scalability. In order to deal with such challenges adequately, this paper presents an approach that adapts the paradigm of Self-Organization to computer software systems. It enables systems to preserve their main caracteristics while changing their structure in consequence to outside influences without the existence of any central controller. So, the specific aim of this paper is to address the utilization of Self-Organization in engineering software systems. Accordingly, it presents a set of methods and tools as developed in a recent research project for engineering self-organizing software systems. The underlying approach is organised around state-of-the-art software engineering phases such as system modelling, programming, and the respective software development procedure.