Affiliation:
1. Technische Universität Darmstadt
2. Politecnico di Milano
Abstract
Self-adaptive software has become increasingly important to address the new challenges of complex computing systems. To achieve adaptation, software must be designed and implemented by following suitable criteria, methods, and strategies. Past research has been mostly addressing adaptation by developing solutions at the software architecture level. This work, instead, focuses on finer-grain programming language-level solutions. We analyze three main linguistic approaches: metaprogramming, aspect-oriented programming, and context-oriented programming. The first two are general-purpose linguistic mechanisms, whereas the third is a specific and focused approach developed to support context-aware applications. This paradigm provides specialized language-level abstractions to implement dynamic adaptation and modularize behavioral variations in adaptive systems.
The article shows how the three approaches can support the implementation of adaptive systems and compares the pros and cons offered by each solution.
Funder
Seventh Framework Programme
Publisher
Association for Computing Machinery (ACM)
Subject
Software,Computer Science (miscellaneous),Control and Systems Engineering
Cited by
17 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. μ -DSU: A Micro-Language Based Approach to Dynamic Software Updating;Computer Languages, Systems & Structures;2018-01
2. Software Adaptation in Wireless Sensor Networks;ACM Transactions on Autonomous and Adaptive Systems;2017-12-31
3. Building efficient and highly run-time adaptable virtual machines;ACM SIGPLAN Notices;2017-05-11
4. Fully-reflective VMS for ruling software adaptation;2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C);2017-05
5. Building efficient and highly run-time adaptable virtual machines;Proceedings of the 12th Symposium on Dynamic Languages;2016-11