Systematically Engineering Self-Organizing Systems: The SodekoVS Approach - Sudeikat, Jan; Braubach, Lars; Pokahr, Alexander; Renz, Wolfgang; Lamersdorf, Winfried (Electronic Communications of the EASST, 2009)
Self-organizing systems promise new software quality attributes that are very hard to obtain using standard software engineering approaches. In accordance with the visions of e.g. autonomic computing and organic computing, self-organizing systems promote self-adaptability as one major property helping to realize software that can manage itself at runtime. In this respect, self-adaptability can be seen as a necessary foundation for realizing e.g. self* properties such as self-configuration or self-protection. However, the systematic development of systems exhibiting such properties challenges current development practices. The SodekoVS project addresses the challenge to purposefully engineer adaptivity by proposing a new approach that considers the system architecture as well as the software development methodology as integral intertwined aspects for system construction. Following the proposed process, self-organizing dynamics, inspired by biological, physical and social systems, can be integrated into applications by composing modules that distribute feedback control structures among system entities. These compositions support hierarchical as well as completely decentralized solutions without a single point of failure. This novel development conception is supported by a reference architecture, a tailored programming model as well as a library of ready to use self-organizing patterns. The key challenges, recent research activities, application scenarios as well as intermediate results are discussed.