Two complementary software engineering approaches currently exist to make complex software systems adaptive. Self-adaptation approaches attack the problem by engineering proper feedback loops around components and systems, so as to make them adaptive by explicit design. Self-organization approaches, on the other hand, attack the problems by trying to mimic in software the capabilities of collective adaptation of natural systems, so as to make systems adaptive by emergence. In this talk, after having overviewed these approaches and discussed their pros and cons, I analyze the issue of reconciling them towards a novel, innovative, approach. The scenario of handing mobility in complex urban scenario is adopted as a case study to clarify the concepts presented.
Franco Zambonelli, Università degli Studi di Modena e Reggio Emilia