skip to main content
research-article

An Analysis of Language-Level Support for Self-Adaptive Software

Published: 01 July 2013 Publication History

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.

References

[1]
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.
[2]
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.
[3]
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.
[4]
Appeltauer, M., Hirschfeld, R., Haupt, M., and Masuhara, H. 2011. ContextJ: Context-oriented programming with Java. Inf. Media Technol. 6, 2, 399--419.
[5]
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.
[6]
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.
[7]
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.
[8]
Baresi, L., Di Nitto, E., and Ghezzi, C. 2006. Toward open-world software: Issue and challenges. Comput. 39, 10, 36--43.
[9]
Bellifemine, F. L., Caire, G., and Greenwood, D. 2007. Developing Multi-Agent Systems with JADE. Wiley Series in Agent Technology. John Wiley and Sons.
[10]
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.
[11]
Bockisch, C., Arnold, M., Dinkelaker, T., and Mezini, M. 2006a. Adapting virtual machine techniques for seamless aspect support. SIGPLAN Not. 41, 10, 109--124.
[12]
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.
[13]
Bollert, K. 1999. On weaving aspects. In Proceedings of the Workshop on Aspect-Oriented Programming (ECOOP’99).
[14]
Boner, J. 2004. AspectWerkz - Dynamic AOP for Java. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD’04).
[15]
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.
[16]
Brichau, J. and Haupt, M. 2005. Survey of aspect-oriented languages and execution models. Tech. rep. AOSD-Europe-VUB-01, AOSD-Europe.
[17]
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.
[18]
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.
[19]
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.
[20]
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.
[21]
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.
[22]
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.
[23]
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.
[24]
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.
[25]
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.
[26]
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.
[27]
Costanza, P. and Hirschfeld, R. 2007. Reflective layer activation in contextL. In Proceedings of the ACM Symposium on Applied Computing (SAC’07).
[28]
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.
[29]
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.
[30]
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.
[31]
Dastani, M. 2008. 2APL: A practical agent programming language. Auton. Agents Multi-Agent Syst. 16, 3, 214--248.
[32]
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.
[33]
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.
[34]
Denys, G., Piessens, F., and Matthijs, F. 2002. A survey of customizability in operating systems research. ACM Comput. Surv. 34, 450--468.
[35]
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.
[36]
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.
[37]
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.
[38]
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.
[39]
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.
[40]
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.
[41]
Gelernter, D. 1985. Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7, 1, 80--112.
[42]
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.
[43]
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.
[44]
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.
[45]
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.
[46]
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.
[47]
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).
[48]
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.
[49]
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.
[50]
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.
[51]
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.
[52]
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.
[53]
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.
[54]
Hirschfeld, R., Costanza, P., and Nierstrasz, O. 2008. Context-oriented programming. J. Object Technol. 7, 3.
[55]
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.
[56]
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.
[57]
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.
[58]
Janik, A. and Zielinski, K. 2010a. Aaop-based dynamically reconfigurable monitoring system. Inf. Softw. Technol. 52, 380--396.
[59]
Janik, A. and Zielinski, K. 2010b. Adaptability mechanisms for autonomic system implementation with aaop. Softw. Pract. Exper. 40, 209--223.
[60]
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.
[61]
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.
[62]
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.
[63]
Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. Comput. 36, 41--50.
[64]
Kiczales, G. and Rivieres, J. D. 1991. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA.
[65]
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.
[66]
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.
[67]
Kon, F., Costa, F., Blair, G., and Campbell, R. H. 2002. The case for reflective middleware. Comm. ACM 45, 33--38.
[68]
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.,
[69]
Krahn, R., Lincke, J., and Hirschfeld, R. 2012. Efficient layer activation in ContextJS. In IEEE Conference on Creating, Connecting and Collaborating through Computing (C5).
[70]
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.
[71]
Laddad, R. 2009. AspectJ in Action: Enterprise AOP with Spring Applications 2nd Ed. Manning Publications, Greenwich, CT.
[72]
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.
[73]
Ledoux, T. 1997. Implementing proxy objects in a reflective ORB. In Proceedings of the Workshop on CORBA: Implementation, Use and Evaluation (ECOOP’97).
[74]
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.
[75]
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.
[76]
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.
[77]
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.
[78]
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.
[79]
McKinley, P. K., Sadjadi, S. M., Kasten, E. P., and Cheng, B. H. C. 2004. Composing adaptive software. Comput. 37, 56--64.
[80]
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.
[81]
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.
[82]
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).
[83]
Nagy, I., Bergmans, L., and Aksit, M. 2005. Composing aspects at shared join points. In Proceedings of International Conference NetObjectDays (NODe’05). Springer.
[84]
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.
[85]
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.
[86]
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.
[87]
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.
[88]
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.
[89]
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
[90]
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.
[91]
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.
[92]
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.
[93]
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.
[94]
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.
[95]
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.
[96]
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).
[97]
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.
[98]
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.
[99]
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).
[100]
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.
[101]
Salehie, M. and Tahvildari, L. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4, 14:1--14:42.
[102]
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.
[103]
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.
[104]
Salvaneschi, G., Ghezzi, C., and Pradella, M. 2012a. Context-oriented programming: A software engineering perspective. J. Syst. Softw. 85, 8, 1801--1817.
[105]
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.
[106]
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.
[107]
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.
[108]
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.
[109]
Shoham, Y. 1993. Agent-oriented programming. Artif. Intell. 60, 1, 51--92.
[110]
Shoham, Y. and Leyton-Brown, K. 2008. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, Cambridge, UK.
[111]
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.
[112]
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.
[113]
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.
[114]
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.
[115]
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.
[116]
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.
[117]
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.
[118]
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.
[119]
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.
[120]
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.
[121]
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.
[122]
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.
[123]
Winikoff, M. 2005. JACK intelligent agents: An industrial strength platform. In Multi-Agent Programming, Languages: Platforms and Applications, Springer, 175--193.
[124]
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.
[125]
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.
[126]
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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Autonomous and Adaptive Systems
ACM Transactions on Autonomous and Adaptive Systems  Volume 8, Issue 2
July 2013
123 pages
ISSN:1556-4665
EISSN:1556-4703
DOI:10.1145/2491465
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 2013
Accepted: 01 December 2012
Revised: 01 November 2012
Received: 01 July 2012
Published in TAAS Volume 8, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Context
  2. autonomic computing
  3. context-oriented programming
  4. self-adaptive software

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 23 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media