An integrated approach to developing self-adaptive software in open environments
Abstract
One of the main challenges of developing self-adaptive systems in open environment comes from uncertain self-adaptation requirements due to the unpredictability of environment changes and its co-existence with well-defined self-adaptation requirements in self-adaptive systems. This paper presents an integrated approach that combines off-line and on-line self-adaptation together in a unified technical framework to support the development and running of such systems. We consider self-adaptive system as a multi-agent organization and propose a novel dynamic binding self-adaptation mechanism inspired from organization metaphors to specify and analyze self-adaptation. A description language, SADL, is designed to program well-defined self-adaptation logic at design-time and implement off-line self-adaptation. In order to deal with uncertain self-adaptation, a reinforcement learning method is incorporated with the dynamic binding mechanism, which enables software agents to make decisions on self-adaptation at run-time and implement on-line self-adaptation. Our approach provides a unified frame-work to accommodate off-line and on-line approaches and a general-purpose methodology to develop complex self-adaptive systems in a systematic way. A supported platform called SADE+ is developed and a case is studied to illustrate the proposed approach.Citation
Mao, X. J., et al. (2014). An Integrated Approach to Developing Self-Adaptive Software. Journal of Information Science and Engineering 30(4) 1071-1085.Journal
Journal of Information Science and EngineeringAdditional Links
http://journal.iis.sinica.edu.tw/paper/1/120241-1.pdf?cd=2BAF857DB4A13EF08http://www.iis.sinica.edu.tw/page/jise/Introduction.html
Type
ArticleLanguage
enISSN
1016-2364Collections
The following license files are associated with this item:
- Creative Commons
Except where otherwise noted, this item's license is described as http://creativecommons.org/licenses/by-nc-nd/4.0/