Reusable Self-Adaptation through Bidirectional Programming

Reusable Self-Adaptation through Bidirectional Programming
复制标题

DOI:
10.1145/2897053.2897055
复制
发表时间:
2016-05
期刊:
2016 IEEE/ACM 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS)
影响因子:
--
通讯作者:
Kevin Colson;R. Dupuis;Lionel Montrieux;Zhenjiang Hu;Sebastián Uchitel;Pierre-Yves Schobbens
Kevin Colson;R. Dupuis;Lionel Montrieux;Zhenjiang Hu;Sebastián Uchitel;Pierre-Yves Schobbens
中科院分区:
其他
文献类型:
--
作者:
Kevin Colson;R. Dupuis;Lionel Montrieux;Zhenjiang Hu;Sebastián Uchitel;Pierre-Yves Schobbens

文献摘要

相似文献

在自适应系统中,自适应策略可以应用于目标系统的几个实现。重用此策略需要独立于其实现的目标系统模型。特别是,配置文件必须转换为抽象配置,但正确地同步这两种表示并不是小事。我们提出了一种方法,使用基于回调的双向编程,以保证这种同步是正确的建设。我们证明了我们的方法的正确性,以及它如何处理配置文件的典型功能,如隐式默认值和上下文重写。我们还表明,我们的方法可以用来迁移配置文件从一个实现到另一个。我们用一个案例研究来说明我们的方法,在那里我们使用相同的抽象模型来适应两个Web服务器实现。对于每个实现,我们都提供了一个双向程序,该程序使用配置的抽象模型来正确地解析配置文件。第一个场景演示了抽象模型上的相同更改为每个实现产生了一个新的配置,该配置正确地反映了对抽象模型所做的更改,而没有副作用。第二个场景验证配置文件从一个Web服务器实现使用的格式到另一个Web服务器实现使用的格式的迁移。
In self-adaptive systems, an adaptation strategy can apply to several implementations of a target system. Reusing this strategy requires models of the target system that are independent of its implementation. In particular, configuration files must be transformed into abstract configurations, but correctly synchronizing these two representations is not trivial. We propose an approach that uses putback-based bidirectional programming to guarantee that this synchronization is correct by construction. We demonstrate the correctness of our approach and how it handles typical features of configuration files, such as implicit default values and context overriding. We also show that our approach can be used to migrate configuration files from one implementation to another. We illustrate our approach with a case study, where we use the same abstract model to adapt two web server implementations. For each implementation, we provide a bidirectional program that correctly synchronizes the configuration file with an abstract model of the configuration. A first scenario demonstrates that the same changes on the abstract model produce, for each implementation, a new configuration that correctly reflects the changes made to the abstract model, without side effects. A second scenario validates the migration of a configuration file from the format used by one web server implementation to another.