No system is exempted from the need of evolving either to fix bugs or to add new features. To evolve becomes particularly problematic when the system to evolve can not be stopped. Traditionally the evolution of a nonstopping system is tackled on by calculating all the possible evolutions in advance and hardwiring them in the application itself. This approach gives origin to the code pollution phenomenon where the code of the application is polluted by code that could never be applied. The approach has the following defects: i) code bloating, ii) it is impossible to forecast any possible change and iii) the code becomes hard to read and maintain. Computational reflection by definition allows an application to introspect and intercede on its own structure and behavior endowing, therefore, a reflective application with (potentially) the ability of self-adapting. Furthermore, to deal with the evolution as a nonfunctional concerns, i.e., that can be separated from the current implementation of the application, can limit the code pollution phenomenon. To bring the design information (model and/or architecture) at run-time provides the application with a basic knowledge about itself to reflect on when a change is necessary. The availability of such a knowledge at run-time frees the designer from forecasting and including any possible evolution for its application in favor of a sort of evolutionary engine that, to some extent, can evaluate which countermove to apply. In this contribution, the author will explore the role of reflection in the development of self-adapting applications and in particular the benefits of planning the evolution on the application design information rather than directly on the code.

Cogito, Ergo Muto! / W. Cazzola - In: Proceedings of the Workshop on Self-Organizing Architecture (SOAR'09) / [a cura di] D. Weyns, S. Malek, R. de Lemos, J. Andersson. - [s.l] : Katholieke Universiteit Leuven, 2009 Sep. - pp. 1-7 (( convegno Workshop on Self-Organizing Architecture tenutosi a Cambridge, United Kingdom nel 2009.

Cogito, Ergo Muto!

W. Cazzola
Primo
2009

Abstract

No system is exempted from the need of evolving either to fix bugs or to add new features. To evolve becomes particularly problematic when the system to evolve can not be stopped. Traditionally the evolution of a nonstopping system is tackled on by calculating all the possible evolutions in advance and hardwiring them in the application itself. This approach gives origin to the code pollution phenomenon where the code of the application is polluted by code that could never be applied. The approach has the following defects: i) code bloating, ii) it is impossible to forecast any possible change and iii) the code becomes hard to read and maintain. Computational reflection by definition allows an application to introspect and intercede on its own structure and behavior endowing, therefore, a reflective application with (potentially) the ability of self-adapting. Furthermore, to deal with the evolution as a nonfunctional concerns, i.e., that can be separated from the current implementation of the application, can limit the code pollution phenomenon. To bring the design information (model and/or architecture) at run-time provides the application with a basic knowledge about itself to reflect on when a change is necessary. The availability of such a knowledge at run-time frees the designer from forecasting and including any possible evolution for its application in favor of a sort of evolutionary engine that, to some extent, can evaluate which countermove to apply. In this contribution, the author will explore the role of reflection in the development of self-adapting applications and in particular the benefits of planning the evolution on the application design information rather than directly on the code.
reflection, software evolution, design information
Settore INF/01 - Informatica
set-2009
Book Part (author)
File in questo prodotto:
Non ci sono file associati a questo prodotto.
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/196022
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact