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.
- Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., and Perscheid, M. 2009. A comparison of context-oriented programming languages. In Proceedings of the International Workshop on Context-Oriented Programming (COP’09). ACM, New York, 1--6. Google Scholar
Digital Library
- Appeltauer, M., Haupt, M., and Hirschfeld, R. 2010a. Layered method dispatch with invokedynamic: An implementation study. In Proceedings of the 2nd International Workshop on Context-Oriented Programming (COP’10). ACM, New York, 4:1--4:6. Google Scholar
Digital Library
- Appeltauer, M., Hirschfeld, R., Masuhara, H., Haupt, M., and Kawauchi, K. 2010b. Event-specific software composition in context-oriented programming. In Proceedings of the 9th International Conference on Software Composition (SC’10). B. Baudry and E. Wohlstadter Eds., Lecture Notes in Computer Science Series, vol. 6144, Springer, 50--65. Google Scholar
Digital Library
- Appeltauer, M., Hirschfeld, R., Haupt, M., and Masuhara, H. 2011. ContextJ: Context-oriented programming with Java. Inf. Media Technol. 6, 2, 399--419.Google Scholar
- Aracic, I., Gasiunas, V., Mezini, M., and Ostermann, K. 2006. An overview of CaesarJ. In Transactions on Aspect-Oriented Software Development. I. A. Rashid and M. Aksit Eds., Lecture Notes in Computer Science Series, vol. 3880, Springer, 135--173. Google Scholar
Digital Library
- Avgustinov, P., Christensen, A. S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., and Tibble, J. 2005. Optimising AspectJ. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’05). ACM, New York, 117--128. Google Scholar
Digital Library
- Bachara, P., Blachnicki, K., and Zielinski, K. 2010. Framework for application management with dynamic aspects J-EARS case study. Inf. Softw. Technol. 52, 67--78. Google Scholar
Digital Library
- Baresi, L., Di Nitto, E., and Ghezzi, C. 2006. Toward open-world software: Issue and challenges. Comput. 39, 10, 36--43. Google Scholar
Digital Library
- Bellifemine, F. L., Caire, G., and Greenwood, D. 2007. Developing Multi-Agent Systems with JADE. Wiley Series in Agent Technology. John Wiley and Sons. Google Scholar
Digital Library
- Blair, G. S., Coulson, G., Andersen, A., Blair, L., Clarke, M., Costa, F., Duran-Limon, H., Fitzpatrick, T., Johnston, L., Moreira, R., Parlavantzas, N., and Saikoski, K. 2001. The design and implementation of Open ORB 2. IEEE Distrib. Syst. Online 2. Google Scholar
Digital Library
- Bockisch, C., Arnold, M., Dinkelaker, T., and Mezini, M. 2006a. Adapting virtual machine techniques for seamless aspect support. SIGPLAN Not. 41, 10, 109--124. Google Scholar
Digital Library
- Bockisch, C., Kanthak, S., Haupt, M., Arnold, M., and Mezini, M. 2006b. Efficient control flow quantification. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’06). ACM, New York, 125--138. Google Scholar
Digital Library
- Bollert, K. 1999. On weaving aspects. In Proceedings of the Workshop on Aspect-Oriented Programming (ECOOP’99). Google Scholar
Digital Library
- Boner, J. 2004. AspectWerkz - Dynamic AOP for Java. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD’04).Google Scholar
- Bordini, R. H., Hübner, J. F., and Vieira, R. 2005. Jason and the Golden Fleece of agent-oriented programming. In Multi-Agent Programming: Languages, Platforms and Applications. R. H. Bordini, M. Dastani, J. Dix, and A. E. F. Seghrouchni Eds., Multiagent Systems, Artificial Societies, and Simulated Organizations, vol. 15, Springer, New York, 3--37.Google Scholar
- Brichau, J. and Haupt, M. 2005. Survey of aspect-oriented languages and execution models. Tech. rep. AOSD-Europe-VUB-01, AOSD-Europe.Google Scholar
- Bruneton, E., Lenglet, R., and Coupaye, T. 2002. ASM: A code manipulation tool to implement adaptable systems. In Proceedings of the Adaptable and Extensible Component Systems. 1--12.Google Scholar
- Bull, J. M., Smith, L. A., Westhead, M. D., Henty, D. S., and Davey, R. A. 1999. A methodology for benchmarking Java Grande applications. In Proceedings of the ACM Conference on Java Grande (JAVA’99). ACM, New York, 81--88. Google Scholar
Digital Library
- Bull, J. M., Smith, L. A., Westhead, M. D., Henty, D. S., and Davey, R. A. 2000. A benchmark suite for high performance Java. Concurr. Pract. Exper. 12, 6, 375--388.Google Scholar
Cross Ref
- Capra, L., Emmerich, W., and Mascolo, C. 2003. CARISMA: Context-aware reflective middleware system for mobile applications. IEEE Trans. Softw. Engin. 29, 10, 929--945. Google Scholar
Digital Library
- Chan, A. T. S. and Chuang, S.-N. 2003. MobiPADS: A reflective middleware for context-aware mobile computing. IEEE Trans. Softw. Eng. 29, 12, 1072--1085. Google Scholar
Digital Library
- Charfi, A. and Mezini, M. 2004. Aspect-oriented web service composition with AO4BPEL. In Proceedings of the European Conference on Web Services (ECOWA’94). L.-J. Zhang and M. Jeckle Eds., Lecture Notes in Computer Science Series, vol. 3250, Springer, 168--182.Google Scholar
- Chiba, S. 1995. A metaobject protocol for C++. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’95). ACM, New York, 285--299. Google Scholar
Digital Library
- Cibrán, M. A., Verheecke, B., Vanderperren, W., Suvée, D., and Jonckers, V. 2007. Aspect-oriented programming for dynamic web service selection, integration and management. World Wide Web 10, 3, 211--242. Google Scholar
Digital Library
- Costanza, P. and D’Hondt, T. 2008. Feature descriptions for context-oriented programming. In Proceedings of the 12th International Conference on Software Product Lines (SPLC’08). 9--14.Google Scholar
- Costanza, P. and Hirschfeld, R. 2005. Language constructs for context-oriented programming: An overview of ContextL. In Proceedings of the Symposium on Dynamic Languages (DLS’05). ACM Press, New York, 1--10. Google Scholar
Digital Library
- Costanza, P. and Hirschfeld, R. 2007. Reflective layer activation in contextL. In Proceedings of the ACM Symposium on Applied Computing (SAC’07). Google Scholar
Digital Library
- Costanza, P., Hirschfeld, R., and De Meuter, W. 2006. Efficient layer activation for switching context-dependent behavior. In Proceedings of the 7th Joint Conference on Modular Programming Languages (JMLC’06). Springer, 84--103. Google Scholar
Digital Library
- Courbis, C. and Finkelstein, A. 2005. Towards aspect weaving applications. In Proceedings of the 27th International Conference on Software Engineering (ICSE’05). ACM, New York, 69--77. Google Scholar
Digital Library
- Dahm, M. and Berlin, F. U. 1998. Byte code engineering with the BCEL api. Tech. rep. B-17-98, Freie Universitt Berlin - Institut fr Informatik.Google Scholar
- Dastani, M. 2008. 2APL: A practical agent programming language. Auton. Agents Multi-Agent Syst. 16, 3, 214--248. Google Scholar
Digital Library
- David, P.-C. and Ledoux, T. 2006. An aspect-oriented approach for developing self-adaptive fractal components. In Proceedings of the 5th International Conference on Software Composition (SC’06). Springer, 82--97. Google Scholar
Digital Library
- Dawson, D., Desmarais, R., Kienle, H. M., and Müller, H. A. 2008. Monitoring in adaptive systems using reflection. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’08). ACM Press, New York, 81--88. Google Scholar
Digital Library
- Denys, G., Piessens, F., and Matthijs, F. 2002. A survey of customizability in operating systems research. ACM Comput. Surv. 34, 450--468. Google Scholar
Digital Library
- Dowling, J., Schäfer, T., Cahill, V., Haraszti, P., and Redmond, B. 2000. Using reflection to support dynamic adaptation of system software: A case study driven evaluation. In Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering. Papers from OORaSE 1999. Springer, 169--188. Google Scholar
Digital Library
- Durr, P., Staijen, T., Bergmans, L., and Aksit, M. 2005. Reasoning about semantic conflicts between aspects. In Proceedings of the European Interactive Workshop on Aspects in Software.Google Scholar
- Eliassen, F., Andersen, A., Blair, G. S., Costa, F., Coulson, G., Goebel, V., Ivind Hansen, Kristensen, T., Plagemann, T., Rafaelsen, H. O., Saikoski, K. B., and Yu, W. 1999. Next generation middleware: Requirements, architecture, and prototypes. In Proceedings of the 7th IEEE Workshop on Future Trends in Distributed Computing Systems. IEEE Computer Society Press, 60--65. Google Scholar
Digital Library
- Engel, M. and Freisleben, B. 2005. Supporting autonomic computing functionality via dynamic operating system kernel aspects. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD’05). ACM, New York, 51--62. Google Scholar
Digital Library
- Epifani, I., Ghezzi, C., Mirandola, R., and Tamburrelli, G. 2009. Model evolution by run-time parameter adaptation. In Proceedings of the 31st International Conference on Software Engineering (ICSE’09). IEEE Computer Society, 111--121. Google Scholar
Digital Library
- Gamma, E., Helm, R., Johnson, R. E., and Vlissides, J. M. 1993. Design patterns: Abstraction and reuse of object-oriented design. In Proceedings of the 7th European Conference on Object-Oriented Programming (ECOOP’93). Springer, 406--431. Google Scholar
Digital Library
- Gelernter, D. 1985. Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7, 1, 80--112. Google Scholar
Digital Library
- Ghezzi, C., Pradella, M., and Salvaneschi, G. 2011. An evaluation of the adaptation capabilities in programming languages. In Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’11). ACM Press, New York, 50--59. Google Scholar
Digital Library
- González, S., Mens, K., and Heymans, P. 2007. Highly dynamic behaviour adaptability through prototypes with subjective multimethods. In Proceedings of the Symposium on Dynamic Languages (DLS’07). ACM Press, New York, 77--88. Google Scholar
Digital Library
- González, S., Cardozo, N., Mens, K., Cádiz, A., Libbrecht, J.-C., and Goffaux, J. 2010. Subjective-C: Bringing context to mobile platform programming. In Proceedings of the International Conference on Software Language Engineering.Google Scholar
- Gowing, B. and Cahill, V. 1995. Making meta-object protocols practical for operating systems. In Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems. 52--55. Google Scholar
Digital Library
- Grace, P., Blair, G., and Samuel, S. 2003. ReMMoC: A reflective middleware to support mobile client interoperability. In Proceedings of the OTM Confederated International Conferences, CoopIS, DOA, and ODBASE. R. Meersman, Z. Tari, and D. Schmidt Eds., Lecture Notes in Computer Science Series, vol. 2888, Springer, 1170--1187.Google Scholar
- Greenwood, P. and Blair, L. 2003. Using dynamic aspect-oriented programming to implement an autonomic system. In Proceedings of the Dynamic Aspect Workshop (DAW’04).Google Scholar
- Greenwood, P. and Blair, L. 2006. A framework for policy driven auto-adaptive systems using dynamic framed aspects. In Transactions on Aspect-Oriented Software Development II. Springer, 30--65. Google Scholar
Digital Library
- Haupt, M. and Mezini, M. 2004. Micro-measurements for dynamic aspect-oriented systems. In Proceedings of the 5th Annual International Conference on Object-Oriented and Internet-Based Technologies, Concepts, and Applications for a Nerworked World. M. Weske and P. Liggesmeyer Eds., Lecture Notes in Computer Science Series, vol. 3263, Springer, 277--305.Google Scholar
- Haupt, M., Mezini, M., Bockisch, C., Dinkelaker, T., Eichberg, M., and Krebs, M. 2005. An execution layer for aspect-oriented programming languages. In Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments (VEE’05). ACM Press, New York, 142--152. Google Scholar
Digital Library
- Hellerstein, J. L. 2009. Configuring resource managers using model fuzzing: A case study of the .NET thread pool. In Proceedings of the 11th IFIP/IEEE International Conference on Symposium on Integrated Network Management (IM’09). IEEE Press, 1--8. Google Scholar
Digital Library
- Hewitt, C., Bishop, P., and Steiger, R. 1973. A universal modular actor formalism for artificial intelligence. In Proceedings of the 3rd International Joint Conference on Artificial Intelligence (IJCAI’73). Morgan Kaufmann Publishers, San Francisco, CA, 235--245. Google Scholar
Digital Library
- Hirschfeld, R. 2003. AspectS - aspect-oriented programming with Squeak. In Revised Papers from the International Conference on NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World (NODe’02). Springer, 216--232. Google Scholar
Digital Library
- Hirschfeld, R., Costanza, P., and Nierstrasz, O. 2008. Context-oriented programming. J. Object Technol. 7, 3.Google Scholar
Cross Ref
- Hsieh, W., Fiuczynski, M., Garrett, C., Savage, S., Becker, D., and Bershad, B. 1996. Language support for extensible operating systems. In Proceedings of the Workshop on Compiler Support for System Software. 127--133.Google Scholar
- Huebscher, M. C. and McCann, J. A. 2008. A survey of autonomic computing -- Degrees, models, and applications. ACM Comput. Surv. 40, 7:1--7:28. Google Scholar
Digital Library
- Itoh, J.-I., Lea, R., and Yokote, Y. 1995. Using meta-objects to support optimisation in the Apertos operating system. In Proceedings of the USENIX Conference on Object-Oriented Technologies (COOTS’95). USENIX Association, Berkeley, CA, 11--11. Google Scholar
Digital Library
- Janik, A. and Zielinski, K. 2010a. Aaop-based dynamically reconfigurable monitoring system. Inf. Softw. Technol. 52, 380--396. Google Scholar
Digital Library
- Janik, A. and Zielinski, K. 2010b. Adaptability mechanisms for autonomic system implementation with aaop. Softw. Pract. Exper. 40, 209--223. Google Scholar
Digital Library
- Kamina, T., Aotani, T., and Masuhara, H. 2010. Designing event-based context transition in context-oriented programming. In Proceedings of the 2nd International Workshop on Context-Oriented Programming (COP’10). ACM Press, New York, 2:1--2:6. Google Scholar
Digital Library
- Kamina, T., Aotani, T., and Masuhara, H. 2011. EventCJ: A context-oriented programming language with declarative event-based context transition. In Proceedings of the 10th International Conference on Aspect-Oriented Software Development (AOSD’11). ACM Press, New York, 253--264. Google Scholar
Digital Library
- Kephart, J. O. 2005. Research challenges of autonomic computing. In Proceedings of the 27th International Conference on Software Engineering (ICSE’05). ACM Press, New York, 15--22. Google Scholar
Digital Library
- Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. Comput. 36, 41--50. Google Scholar
Digital Library
- Kiczales, G. and Rivieres, J. D. 1991. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA. Google Scholar
Digital Library
- Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., and Irwin, J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP’97). Lecture Notes in Computer Science, vol. 1241, Springer, 220--242.Google Scholar
Cross Ref
- Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. 2001. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP’01). J. Knudsen Ed., Lecture Notes in Computer Science Series, vol. 2072, Springer, 327--354. Google Scholar
Digital Library
- Kon, F., Costa, F., Blair, G., and Campbell, R. H. 2002. The case for reflective middleware. Comm. ACM 45, 33--38. Google Scholar
Digital Library
- Koppen, C. and Storzer, M. 2004. PCDiff: Attacking the fragile pointcut problem. In European Interactive Workshop on Aspects in Software (EIWAS’04). K. Gybels, S. Hanenberg, S. Herrmann, and J. Wloka Eds.,Google Scholar
- Krahn, R., Lincke, J., and Hirschfeld, R. 2012. Efficient layer activation in ContextJS. In IEEE Conference on Creating, Connecting and Collaborating through Computing (C5). Google Scholar
Digital Library
- Kramer, J. and Magee, J. 2007. Self-managed systems: An architectural challenge. In Proceedings of the Conference on Future of Software Engineering (FOSE’07). IEEE Computer Society, 259--268. Google Scholar
Digital Library
- Laddad, R. 2009. AspectJ in Action: Enterprise AOP with Spring Applications 2nd Ed. Manning Publications, Greenwich, CT. Google Scholar
Digital Library
- Lamm, E. 2001. Component libraries and language features. In Proceedings of the 6th International Conference Leuven on Reliable Software Technologies (Ada-Europe’01). D. Craeynest and A. Strohmeier Eds., Lecture Notes in Computer Science, vol. 2043, Springer, 215--228. Google Scholar
Digital Library
- Ledoux, T. 1997. Implementing proxy objects in a reflective ORB. In Proceedings of the Workshop on CORBA: Implementation, Use and Evaluation (ECOOP’97).Google Scholar
- Lincke, J., Appeltauer, M., Steinert, B., and Hirschfeld, R. 2011. An open implementation for context-oriented layer composition in ContextJS. Sci. Comput. Program. 76, 12, 1194--1209. Google Scholar
Digital Library
- Madany, P. W., Islam, N., Kougiouris, P., and Campbell, R. H. 1992. Reification and reflection in C++: An operating systems perspective. Tech. rep. UIUCDCS-R-92-1736, University of Illinois at Urbana-Champaign.Google Scholar
- Maes, P. 1987. Concepts and experiments in computational reflection. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’87). ACM Press, New York, 147--155. Google Scholar
Digital Library
- Mamei, M. and Zambonelli, F. 2009. Programming pervasive and mobile computing applications: The TOTA approach. ACM Trans. Softw. Eng. Methodol. 18, 4, 15:1--15:56. Google Scholar
Digital Library
- Masuhara, H., Matsuoka, S., Watanabe, T., and Yonezawa, A. 1992. Object-oriented concurrent reflective languages can be implemented efficiently. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’92). ACM Press, New York, 127--144. Google Scholar
Digital Library
- McKinley, P. K., Sadjadi, S. M., Kasten, E. P., and Cheng, B. H. C. 2004. Composing adaptive software. Comput. 37, 56--64. Google Scholar
Digital Library
- Menezes, R. and Tolksdorf, R. 2003. A new approach to scalable Linda-systems based on swarms. In Proceedings of the ACM Symposium on Applied Computing (SAC’03). ACM Press, New York, 375--379. Google Scholar
Digital Library
- Murphy, A. L., Picco, G. P., and Roman, G.-C. 2006. LIME: A coordination model and middleware supporting mobility of hosts and agents. ACM Trans. Softw. Eng. Methodol. 15, 3, 279--328. Google Scholar
Digital Library
- Nagy, I., Bergmans, L., and Aksit, M. 2004. Declarative aspect composition. In Software-Engineering Properties of Languages for Aspect Technologies (SPLAT!): in conjunction with the 3rd International Conference on Aspect-Oriented Software Development (AOSD’04).Google Scholar
- Nagy, I., Bergmans, L., and Aksit, M. 2005. Composing aspects at shared join points. In Proceedings of International Conference NetObjectDays (NODe’05). Springer.Google Scholar
- Nicoara, A., Alonso, G., and Roscoe, T. 2008. Controlled, systematic, and efficient code replacement for running Java programs. In Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems (Eurosys’08). ACM Press, New York, 233--246. Google Scholar
Digital Library
- Okamuray, H., Ishikawayy, Y., and Tokoroy, M. 1992. AL-1/D: A distributed programming system with multi-model reflection framework. In Workshop on New Models for Software Architecture.Google Scholar
- Oreizy, P., Medvidovic, N., and Taylor, R. N. 1998. Architecture-based runtime software evolution. In Proceedings of the 20th International Conference on Software Engineering (ICSE’98). IEEE Computer Society, 177--186. Google Scholar
Digital Library
- Oreizy, P., Medvidovic, N., and Taylor, R. N. 2008. Runtime software adaptation: Framework, approaches, and styles. In Companion of the 30th International Conference on Software Engineering (ICSE’08). ACM Press, New York, 899--910. Google Scholar
Digital Library
- Pawlak, R., Seinturier, L., Duchien, L., and Florin, G. 2001. JAC: A flexible solution for aspect-oriented programming in Java. In Proceedings of the 3rd International Conference REFLECTION. A. Yonezawa and S. Matsuoka Eds., Lecture Notes in Computer Science, vol. 2192, Springer, 1--24. Google Scholar
Digital Library
- Pawlak, R., Seinturier, L., Duchien, L., Florin, G., Legond-Aubry, F., and Martelli, L. 2004. JAC: An aspect-based distributed dynamic framework. J. Softw. Practice Exper. 34, 12, 1119--1148 Google Scholar
Digital Library
- Popovici, A., Gross, T., and Alonso, G. 2002. Dynamic weaving for aspect-oriented programming. In Proceedings of the 1st International Conference on Aspect-Oriented Software Development (AOSD’02). ACM Press, New York, 141--147. Google Scholar
Digital Library
- Popovici, A., Alonso, G., and Gross, T. 2003. Just-in-time aspects: Efficient dynamic weaving for Java. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD’03). ACM Press, New York, 100--109. Google Scholar
Digital Library
- Rao, A. S. 1996. AgentSpeak(L): BDI agents speak out in a logical computable language. In Proceedings of the 7th European Workshop on Modeling Autonomous Agents in a Multi-Agent World: Agents Breaking Away (MAAMAW’96). Springer, 42--55. Google Scholar
Digital Library
- Rashid, A., Moreira, A., and Araújo, J. 2003. Modularisation and composition of aspectual requirements. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD’03). ACM Press, New York, 11--20. Google Scholar
Digital Library
- Redmond, B. and Cahill, V. 2006. Supporting unanticipated dynamic adaptation of application behaviour. In Proceedings of the 16th European Conference on Object-Oriented Programming (ECOOP’02). B. Magnusson Ed., Lecture Notes in Computer Science, vol. 2374, Springer, 29--53. Google Scholar
Digital Library
- Rho, T., Appeltauer, M., Lerche, S., Cremers, A. B., and Hirschfeld, R. 2011. A context management infrastructure with language integration support. In Proceedings of the 3rd International Workshop on Context-Oriented Programming (COP’11). ACM Press, New York, 3:1--3:6. Google Scholar
Digital Library
- Rivard, F. 1996. A new smalltalk kernel allowing both explicit and implicit metaclass programming. In Proceedings of the Workshop on Extending the Smalltalk Language (OOPSLA’96).Google Scholar
- Roman, M., Kon, F., and Campbell, R. 1999. Design and implementation of runtime reflection in communication middleware: The dynamicTAO case. In Proceedings of the 19th IEEE International Conference on Distributed Computing Systems Workshops on Electronic Commerce and Web-based Applications/Middleware. 122--127.Google Scholar
- Rose, J. R. 2009. Bytecodes meet combinators: Invokedynamic on the JVM. In Proceedings of the 3rd Workshop on Virtual Machines and Intermediate Languages (VMIL’09). ACM Press, New York, 2:1--2:11. Google Scholar
Digital Library
- Sadjadi, S. M., McKinley, P. K., Cheng, B. H. C., and Stirewalt, R. E. K. 2004. TRAP/J: Transparent generation of adaptable Java programs. In Proceedings of the International Symposium on Distributed Objects and Applications (DOA’04).Google Scholar
- Sadjadi, S. M., McKinley, P. K., and Cheng, B. H. C. 2005. Transparent shaping of existing software to support pervasive and autonomic computing. In Proceedings of the Workshop on Design and Evolution of Autonomic Application Software (DEAS’05). ACM Press, New York, 1--7. Google Scholar
Digital Library
- Salehie, M. and Tahvildari, L. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4, 14:1--14:42. Google Scholar
Digital Library
- Salvaneschi, G., Ghezzi, C., and Pradella, M. 2011a. Context-oriented programming: A programming paradigm for autonomic systems. CoRR abs/1105.0069. http://arxiv.org/vc/arxiv/papers/1105/1105.0069vl.pdf.Google Scholar
- Salvaneschi, G., Ghezzi, C., and Pradella, M. 2011b. JavaCtx: Seamless toolchain integration for context-oriented programming. In Proceedings of the 3rd International Workshop on Context-Oriented Programming (COP’11). ACM Press, New York, 4:1--4:6. Google Scholar
Digital Library
- Salvaneschi, G., Ghezzi, C., and Pradella, M. 2012a. Context-oriented programming: A software engineering perspective. J. Syst. Softw. 85, 8, 1801--1817. Google Scholar
Digital Library
- Salvaneschi, G., Ghezzi, C., and Pradella, M. 2012b. ContextErlang: Introducing context-oriented programming in the actor model. In Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development (AOSD’12). ACM Press, New York, 191--202. Google Scholar
Digital Library
- Sato, Y., Chiba, S., and Tatsubori, M. 2003. A selective, just-in-time aspect weaver. In Proceedings of the 2nd International Conference on Generative Programming and Component Engineering (GPCE’03). Springer, 189--208. Google Scholar
Digital Library
- Ségura-Devillechaise, M., Menaud, J.-M., Muller, G., and Lawall, J. L. 2003. Web cache prefetching as an aspect: Towards a dynamic-weaving based solution. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD’03). ACM Press, New York, 110--119. Google Scholar
Digital Library
- Sharifi, A., Srikantaiah, S., Mishra, A. K., Kandemir, M., and Das, C. R. 2011. Mete: Meeting end-to-end QoS in multicores through system-wide resource management. SIGMETRICS Perform. Eval. Rev. 39, 1, 13--24. Google Scholar
Digital Library
- Shoham, Y. 1993. Agent-oriented programming. Artif. Intell. 60, 1, 51--92. Google Scholar
Digital Library
- Shoham, Y. and Leyton-Brown, K. 2008. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, Cambridge, UK. Google Scholar
Digital Library
- Smith, B. C. 1984. Reflection and semantics in lisp. In Proceedings of the 11th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL’84). ACM Press, New York, 23--35. Google Scholar
Digital Library
- Spinczyk, O., Gal, A., and Schröder-Preikschat, W. 2002. AspectC++: An aspect-oriented extension to the c++ programming language. In Proceedings of the 40th International Conference on Tools Pacific: Objects for Internet, Mobile and Embedded Applications (CRPIT’02). 53--60. Google Scholar
Digital Library
- Stroud, R. J. and Wu, Z. 1996. Using metaobject protocols to satisfy non-functional requirements. In Advances in Object-Oriented Metalevel Architectures and Reflection. C. Zimmerman Ed.Google Scholar
- Suvée, D., Vanderperren, W., and Jonckers, V. 2003. JAsCo: An aspect-oriented approach tailored for component based software development. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD’03). ACM Press, New York, 21--29. Google Scholar
Digital Library
- Tarr, P., Ossher, H., Harrison, W., and Sutton, Jr., S. M. 1999. N degrees of separation: Multidimensional separation of concerns. In Proceedings of the 21st International Conference on Software Engineering (ICSE’99). ACM Press, New York, 107--119. Google Scholar
Digital Library
- Tatsubori, M., Chiba, S., Itano, K., and Killijian, M.-O. 1999. OpenJava: A class-based macro system for Java. In Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering. 117--133. Google Scholar
Digital Library
- Vanderperren, W., Suvée, D., Verheecke, B., Cibrán, M. A., and Jonckers, V. 2005. Adaptive programming in JAsCo. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD’05). ACM Press, New York, 75--86. Google Scholar
Digital Library
- Vasseur, A. 2004. Dynamic aop and runtime weaving for Java -- How does AspectWerkz address it? In Proceedings of the DAW Dynamic Aspects Workshop. 135--145.Google Scholar
- Viroli, M., Casadei, M., Montagna, S., and Zambonelli, F. 2011. Spatial coordination of pervasive services through chemical-inspired tuple spaces. ACM Trans. Auton. Adapt. Syst. 6, 2, 14:1--14:24. Google Scholar
Digital Library
- White, S., Hanson, J., Whalley, I., Chess, D., and Kephart, J. 2004. An architectural approach to autonomic computing. In Proceedings of the International Conference on Autonomic Computing. 2--9. Google Scholar
Digital Library
- Whitehouse, K., Sharp, C., Brewer, E., and Culler, D. 2004. Hood: A neighborhood abstraction for sensor networks. In Proceedings of the 2nd International Conference on Mobile Systems, Applications, and Services (MobiSys’04). ACM Press, New York, 99--110. Google Scholar
Digital Library
- Win, B. D., Vanhaute, B., and Decker, B. D. 2001. Security through aspect-oriented programming. In Proceedings of the 1st Annual Working Conference on Network Security: Advances in Network and Distributed Systems Security. 125--138. Google Scholar
Digital Library
- Winikoff, M. 2005. JACK intelligent agents: An industrial strength platform. In Multi-Agent Programming, Languages: Platforms and Applications, Springer, 175--193.Google Scholar
- Xu, J., R, B., and Zorzo, A. F. 1996. Implementing software-fault tolerance in C++ and Open C++: An object-oriented and reflective approach. In Proceedings of the International Workshop on Computer Aided Design, Test, and Evaluation for Dependability. 224--229.Google Scholar
- Yang, Z., Cheng, B. H. C., Stirewalt, R. E. K., Sowell, J., Sadjadi, S. M., and McKinley, P. K. 2002. An aspect-oriented approach to dynamic adaptation. In Proceedings of the 1st Workshop on Selfhealing Systems (WOSS’02). ACM Press, New York, 85--92. Google Scholar
Digital Library
- Yokote, Y. 1992. The Apertos reflective operating system: The concept and its implementation. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’92). ACM Press, New York, 414--434. Google Scholar
Digital Library
Index Terms
An Analysis of Language-Level Support for Self-Adaptive Software
Recommendations
Programming language support to context-aware adaptation: a case-study with Erlang
SEAMS '10: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing SystemsSoftware applications are increasingly situated in a world where context changes continuously. At the same time, applications need to provide continuous service, and the service provided often needs to change in order to adapt to the new contexts. ...
Self-Managing Software
The properties of an autonomic or self-managing system provide the basis for future selfware development.
Reusing legacy software in a self-adaptive middleware framework
ARM '11: Adaptive and Reflective Middleware on Proceedings of the International WorkshopSoftware that adapts its behavior to an operational context and/or feedback from within is self-adaptive. For instance, a computer vision system to detect people may change its behavior due to change in context such as nightfall. This may entail ...






Comments