Abstract
Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-consuming procedures during the operating phase. These problems are primarily due to the open-loop structure often followed in software development. Therefore, there is a high demand for management complexity reduction, management automation, robustness, and achieving all of the desired quality requirements within a reasonable cost and time range during operation. Self-adaptive software is a response to these demands; it is a closed-loop system with a feedback loop aiming to adjust itself to changes during its operation. These changes may stem from the software system's self (internal causes, e.g., failure) or context (external events, e.g., increasing requests from users). Such a system is required to monitor itself and its context, detect significant changes, decide how to react, and act to execute such decisions. These processes depend on adaptation properties (called self-* properties), domain characteristics (context information or models), and preferences of stakeholders. Noting these requirements, it is widely believed that new models and frameworks are needed to design self-adaptive software. This survey article presents a taxonomy, based on concerns of adaptation, that is, how, what, when and where, towards providing a unified view of this emerging area. Moreover, as adaptive systems are encountered in many disciplines, it is imperative to learn from the theories and models developed in these other areas. This survey article presents a landscape of research in self-adaptive software by highlighting relevant disciplines and some prominent research projects. This landscape helps to identify the underlying research gaps and elaborates on the corresponding challenges.
- Abdelwahed, S., Kandasamy, N., and Neema, S. 2004. A control-based framework for self-managing distributed computing systems. In Proceedings of the Workshop on Self-Healing Systems. 3--7. Google ScholarDigital Library
- Al-Nashif, Y., Kumar, A., Hariri, S., Luo, Y., Szidarovsky, F., and Qu, G. 2008. Multi-Level Intrusion Detection System (ML-IDS). In Proceedings of the International Conference on Autonomic Computing. 131--140. Google ScholarDigital Library
- Alur, D., Crupi, J., and Malks, D. 2001. Core J2EE Patterns: Best Practices and Design Strategies. Prentice-Hall. Google ScholarDigital Library
- Aly, W. H. F. and Lutfiyya, H. 2007. Dynamic adaptation of policies in data center management. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems & Networks. 266--272. Google ScholarDigital Library
- Amoui, M., Salehie, M., Mirarab, S., and Tahvildari, L. 2008. Adaptive action selection in autonomic software using reinforcement learning. In Proceedings of the International Conference on Autonomic and Autonomous Systems. 175--181. Google ScholarDigital Library
- Appleby, K., Fakhouri, S., Fong, L., Goldszmidt, G., Kalantar, M., Krishnakumar, S., Pazel, D., Pershing, J., and Rochwerger, B. 2001. Oceano—SLA-based management of a computing utility. In Proceedings of the IFIP/IEEE International Symposium on Integrated Network Management. 855--868.Google Scholar
- Arshad, N., Heimbigner, D., and Wolf, A. 2003. Deployment and dynamic reconfiguration planning for distributed software systems. In Proceedings of the IEEE Conference on Tools with Artificial Intelligence. 39--46. Google ScholarDigital Library
- Asadollahi, R., Salehie, M., and Tahvildari, L. 2009. Starmx: A framework for developing self-managing java-based systems. In Proceedings of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems. TBA. Google ScholarDigital Library
- Babaoglu, O., Canright, G., Deutsch, A., Caro, G. A. D., Ducatelle, F., Gambardella, L. M., Ganguly, N., Jelasity, M., Montemanni, R., Montresor, A., and Urnes, T. 2006. Design patterns from biology for distributed computing. ACM Trans. Autonom. Adapt. Syst. 1, 1, 26--66. Google ScholarDigital Library
- Babaoglu, O., Jelasity, M., Montresor, A., Fetzer, C., Leonardi, S., van Moorsel, A., and van Steen, M. 2005. Self-Star Properties in Complex Information Systems: Conceptual and Practical Foundations (Lecture Notes in Computer Science). Google ScholarDigital Library
- Badr, N., Taleb-Bendiab, A., and Reilly, D. 2004. Policy-based autonomic control service. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems and Networks. 99. Google ScholarDigital Library
- Bantz, D. F., Bisdikian, C., Challener, D., Karidis, J. P., Mastrianni, S., Mohindra, A., Shea, D. G., and Vanover, M. 2003. Autonomic personal computing. IBM Syst. J. 42, 1, 165--176. Google ScholarDigital Library
- Bernon, C., Gleizes, M., Peyruqueou, S., and Picard, G. 2003. Adelfe: A methodology for adaptive multi-agent systems engineering. Engineering Societies in the Agents World III. Lecture Notes in Computer Science, vol. 2577. 156--169. Google ScholarDigital Library
- Bhat, V., Parashar, M., Liu, H., Khandekar, M., Kandasamy, N., and Abdelwahed, S. 2006. Enabling self-managing applications using model-based online control strategies. In Proceedings of the IEEE International Conference on Autonomic Computing. 15--24. Google ScholarDigital Library
- Bigus, J. P., Schlosnagle, D. A., Pilgrim, J. R., Mills, W. N., and Diao, Y. 2002. Able: A toolkit for building multiagent autonomic systems. IBM Syst. J. 41, 3, 350--371. Google ScholarDigital Library
- Birman, K., van Renesse, R., and Vogels, W. 2004. Adding high availability and autonomic behavior to web services. In Proceedings of the International Conference on Software Engineering. 17--26. Google ScholarDigital Library
- Boutilier, C., Das, R., Kephart, J. O., and Walsh, W. E. 2003. Towards cooperative negotiation for decentralized resource allocation in autonomic computing systems. In Proceedings of the International Joint Conference on Artificial Intelligence. 1458--1459. Google ScholarDigital Library
- Bradbury, J. S., Cordy, J. R., Dingel, J., and Wermelinger, M. 2004. A survey of self-management in dynamic software architecture specifications. In Proceedings of the ACM Workshop on Self-Managed Systems. 28--33. Google ScholarDigital Library
- Brown, A., Kar, G., and Keller, A. 2001. An active approach to characterizing dynamic dependencies for problem determination in a distributed environment. In Proceedings of the Integrated Network Management. 377--390.Google Scholar
- Buckley, J., Mens, T., Zenger, M., Rashid, A., and Kniesel, G. 2005. Towards a taxonomy of software change. J. Softw. Maint. Evol. Res. Prac. 309--332. Google ScholarDigital Library
- Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. 1996. A System of Patterns—Pattern Oriented Software Architecture. Wiley. Google ScholarDigital Library
- Candea, G., Cutler, J., and Fox, A. 2004. Improving availability with recursive microreboots: a soft-state system case study. Perform. Eval. 56, 1--4, 213--248. Google ScholarDigital Library
- Candea, G., Kiciman, E., Kawamoto, S., and Fox, A. 2006. Autonomous recovery in componentized internet applications. Cluster Comput. 9, 1, 175--190. Google ScholarDigital Library
- Cardellini, V., Colajanni, M., and Yu, P. 1999. Dynamic load balancing on Web-server systems. IEEE Intern. Comput. 3, 3, 28--39. Google ScholarDigital Library
- Carzaniga, A., Rosenblum, D. S., and Wolf, A. L. 2001. Design and evaluation of a wide-area event notification service. ACM Trans. Comput. Syst. 19, 3, 332--383. Google ScholarDigital Library
- Cheng, S.-W., Garlan, D., and Schmerl, B. 2006. Architecture-based self-adaptation in the presence of multiple objectives. In Proceedings of the Workshop on Self-Adaptation and Self-Managing Systems. 2--8. Google ScholarDigital Library
- Cim. Common information model standard. http://www.dmtf.org/standards/cim/.Google Scholar
- de Lemos, R. and Fiadeiro, J. L. 2002. An architectural support for self-adaptive software for treating faults. In Proceedings of the Workshop on Self-healing Systems. 39--42. Google ScholarDigital Library
- Diaconescu, A., Mos, A., and Murphy, J. 2004. Automatic performance management in component based software systems. In Proceedings of the International Conference on Autonomic Computing. 214--221. Google ScholarDigital Library
- Dilman, M. and Raz, D. 2002. Efficient reactive monitoring. IEEE J. Select. Areas Comm. 20, 4, 668--676. Google ScholarDigital Library
- Dobson, S., Denazis, S., Fernández, A., Gaïti, D., Gelenbe, E., Massacci, F., Nixon, P., Saffre, F., Schmidt, N., and Zambonelli, F. 2006. A survey of autonomic communications. ACM Trans. Autonom. Adapt. Syst. 1, 2, 223--259. Google ScholarDigital Library
- Dowling, J. 2004. The decentralised coordination of self-adaptive components for autonomic distributed systems. Ph.D. thesis, Department of Computer Science, Trinity College Dublin.Google Scholar
- Dowling, J. and Cahill, V. 2004. Self-managed decentralised systems using K-components and collaborative reinforcement learning. In Proceedings of the ACM Workshop on Self-Managed Systems. 39--43. Google ScholarDigital Library
- Duzan, G., Loyall, J. P., Schantz, R. E., Shapiro, R., and Zinky, J. A. 2004. Building adaptive distributed applications with middleware and aspects. In Proceedings of the International Conference on Aspect-Oriented Software Development. 66--73. Google ScholarDigital Library
- Floch, J., Hallsteinsen, S., Stav, E., Eliassen, F., Lund, K., and Gjørven, E. 2006. Using architecture models for runtime adaptability. IEEE Softw. 62--70. Google ScholarDigital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Google ScholarDigital Library
- Ganek, A. G. and Corbi, T. A. 2003. The dawning of the autonomic computing era. IBM Syst. J., Special Issue on Autonomic Computing 42, 5--18. Google ScholarDigital Library
- Garlan, D., Cheng, S.-W., Huang, A.-C., Schmerl, B., and Steenkiste, P. 2004. Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Comput. 37, 10, 46--54. Google ScholarDigital Library
- Garlan, D. and Schmerl, B. 2002. Model-based adaptation for self-healing systems. In Proceedings of the Workshop on Self-Healing Systems. 27--32. Google ScholarDigital Library
- Georgas, J. C., van der Hoek, A., and Taylor, R. N. 2005. Architectural runtime configuration management in support of dependable self-adaptive software. In Proceedings of the Workshop on Architecting Dependable Systems. 1--6. Google ScholarDigital Library
- Gjorven, E., Eliassen, F., and Aagedal, J. O. 2006. Quality of adaptation. In Proceedings of the International Conference on Autonomic and Autonomous Systems. 9--14. Google ScholarDigital Library
- Greenwood, P. and Blair, L. 2004. Using dynamic aspect-oriented programming to implement an autonomic system. In Proceedings of the Dynamic Aspects Workshop. 76--88.Google Scholar
- Hinchey, M. G. and Sterritt, R. 2006. Self-managing software. IEEE Comput. 39, 2, 107--109. Google ScholarDigital Library
- Horn, P. 2001. Autonomic computing: IBM's perspective on the state of information technology. http://www-1.ibm.com/industries/government/doc/content/bin/auto.pdf.Google Scholar
- Howe, A. E. 1995. Improving the reliability of artificial intelligence planning systems by analyzing their failure recovery. IEEE Trans. Knowl. Data Engin. 7, 1, 14--25. Google ScholarDigital Library
- Huebscher, M. C. and McCann, J. A. 2008. A survey of autonomic computing—degrees, models, and applications. ACM Comput. Surv. 40, 3, 1--28. Google ScholarDigital Library
- Hutchison, D., Coulson, G., Campbell, A., and Blair, G. S. 1994. Quality of service management in distributed systems. MPG 94-02, Lencater U. 273--302.Google Scholar
- Ibm. 2005. Autonomic computing toolkit: Developers guide. Tech. Rep. SC30-4083-03.Google Scholar
- Ibm-ac. 2001. Autonomic computing 8 elements. http://www.research.ibm.com/autonomic/overview/elements.html.Google Scholar
- Ibm btm. Build to manage tool. http://www.ibm.com/developerworks/eclipse/btm.Google Scholar
- Ibm ref. arch. 2005. An architectural blueprint for autonomic computing. IBM white paper. http://www-03.ibm.com/autonomic/pdfs/ACBlueprintWhitePaperV7.pdf.Google Scholar
- Ieee-iso/iec 14764. 2006. Standard for software maintenance - IEEE 14764-2006 - ISO/IEC 14764. URL = http://ieeexplore.ieee.org/iel5/11168/35960/01703974.pdf.Google Scholar
- Iso/Iec 9126-1. 2001. ISO/IEC 9126-1 Standard: Software Eng. -Product quality - Part 1: Quality model, International Standard Organization, 2001.Google Scholar
- Jelasity, M., Babaoglu, O., Laddaga, R., Nagpal, R., Zambonelli, F., Sirer, E. G., Chaouchi, H., and Smirnov, M. 2006. Interdisciplinary research: Roles for self-organization. IEEE Intel. Syst. 21, 2, 50--58. Google ScholarDigital Library
- Kaiser, G. E., Parekh, J., Gross, P., and Valetto, G. 2003. Kinesthetics extreme: An external infrastructure for monitoring distributed legacy systems. In Proceedings of the Active Middleware Services. 22--31.Google Scholar
- Karamanolis, C., Karlsson, M., and Zhu, X. 2005. Designing controllable computer systems. In Proceedings of the Hot Topics in Operating Systems Workshop. 49--54. Google ScholarDigital Library
- Karsai, G., Lédeczi, Á., Sztipanovits, J., Péceli, G., Simon, G., and Kovácsházy, T. 2001. An approach to self-adaptive software based on supervisory control. In Proceedings of the International Workshop on Self-Adaptive Software. 24--38. Google ScholarDigital Library
- Karsai, G. and Sztipanovits, J. 1999. A model-based approach to self-adaptive software. IEEE Intel. Syst. 14, 3, 46--53. Google ScholarDigital Library
- Keeney, J. and Cahill, V. 2003. Chisel: A policy-driven, context-aware, dynamic adaptation framework. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems and Networks. 3--14. Google ScholarDigital Library
- Keeney, R. L. and Raiffa, H. 1976. Decisions with Multiple Objectives. Wiley.Google Scholar
- Kephart, J. O. 2005. Research challenges of autonomic computing. In Proceedings of the International Conference on Software Engineering 15--22. Google ScholarDigital Library
- Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. IEEE Comput. 36, 1, 41--50. Google ScholarDigital Library
- Kephart, J. O. and Walsh, W. 2004. An artificial intelligence perspective on autonomic computing policies. In Proceedings of the IEEE International workshop on Policies for Distributed Systems and Networks. 3--13. Google ScholarDigital Library
- King, T. M., Babich, D., Alava, J., Clarke, P. J., and Stevens, R. 2007. Towards self-testing in autonomic computing systems. In Proceedings of the 8th International Symposium on Autonomous Decentralized Systems. 51--58. Google ScholarDigital Library
- Kokar, M. M., Baclawski, K., and Eracar, Y. A. 1999. Control theory-based foundations of self-controlling software. IEEE Intel. Syst. 14, 3, 37--45. Google ScholarDigital Library
- Kon, F., Costa, F., Blair, G., and Campbell, R. 2002. The case for reflective middleware. Comm. ACM 45, 6, 33--38. Google ScholarDigital Library
- Kramer, J. and Magee, J. 1990. The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Engin. 16, 11, 1293--1306. Google ScholarDigital Library
- Kramer, J. and Magee, J. 2007. Self-managed systems: an architectural challenge. In Proceedings of the ICSE—Future of Software Engineering. 259--268. Google ScholarDigital Library
- Kumar, V., Cooper, B., Cai, Z., Eisenhauer, G., and Schwan, K. 2007. Middleware for enterprise scale data stream management using utility-driven self-adaptive information flows. Cluster Comput. 10, 4, 443--455. Google ScholarDigital Library
- Laddaga, R. 1997. Self-adaptive software. Tech. Rep. 98-12, DARPA BAA.Google ScholarCross Ref
- Laddaga, R. 1999. Guest editor's introduction: Creating robust software through self-adaptation. IEEE Intel. Syst. 14, 3, 26--29. Google ScholarDigital Library
- Laddaga, R. 2000. Active software. In Proceedings of the International Workshop on Self-Adaptive Software. 11--26. Google ScholarDigital Library
- Laddaga, R. 2006. Self adaptive software problems and projects. In Proceedings of the IEEE Workshop on Software Evolvability. 3--10. Google ScholarDigital Library
- Laddaga, R., Robertson, P., and Shrobe, H. 2000. Introduction to self-adaptive software: Applications. In Proceedings of the International Workshop on Self-Adaptive Software. Lecture Notes in Computer Science, vol. 2614. 1--5. Google ScholarDigital Library
- Laddaga, R., Robertson, P., and Shrobe, H. E. 2001. Results of the 2nd International workshop on self-adaptive software. In Proceedings of the International Workshop on Self-Adaptive Software. 281--290. Google ScholarDigital Library
- Landauer, C. and Bellman, K. L. 2001. New architectures for constructed complex systems. Appl. Mathe. Comput. 120, 149--163. Google ScholarDigital Library
- Lapouchnian, A., Liaskos, S., Mylopoulos, J., and Yu, Y. 2005. Towards requirements-driven autonomic systems design. In Proceedings of the Workshop on Design and Evolution of Autonomic App. Software. 1--7. Google ScholarDigital Library
- Lehman, M. M. 1996. Laws of software evolution revisited. In Proceedings of the European Workshop on Software Process Technology. 108--124. Google ScholarDigital Library
- Lieberherr, K. J. and Palsberg, J. 1993. Engineering adaptive software. Projest Proposal, ftp://ftp.ccs.neu.edu/pub/people/lieber/proposal.ps.Google Scholar
- Litoiu, M., Woodside, M., and Zheng, T. 2005. Hierarchical model-based autonomic control of software systems. In Proceedings of the Workshop on Design and Evolution of Autonomic Applications Software. 27--33. Google ScholarDigital Library
- Liu, H., Parashar, M., and Hariri, S. 2004. A component-based programming model for autonomic applications. In Proceedings of the International Conference on Autonomic Computing. 10--17. Google ScholarDigital Library
- Loyall, J. P., Bakken, D. E., Schantz, R. E., Zinky, J. A., Karr, D. A., Vanegas, R., and Anderson, K. R. 1998. QoS aspect languages and their runtime integration. In Proceedings of the International Workshop on Languages, Compilers, and Run-Time for Scalable Computers. 303--318. Google ScholarDigital Library
- Lutfiyya, H., Molenkamp, G., Katchabaw, M., and Bauer, M. A. 2001. Issues in managing soft QoS requirements in distributed systems using a policy-based framework. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems & Networks. 185--201. Google ScholarDigital Library
- Maes, P. 1990. Situated agents can have goals. Robot. Auton. Syst. 6, 49--70.Google ScholarDigital Library
- Magee, J. and Kramer, J. 1996. Dynamic structure in software architectures. ACM SIGSOFT Softw. Engin. Notes 21, 6, 3--14. Google ScholarDigital Library
- McCann, J. A. and Huebscher, M. C. 2004. Evaluation issues in autonomic computing. In Proceedings of the Conference on Grid and Cooperative Computing Workshops. 597--608.Google Scholar
- McCann, J. A., Lemos, R. D., Huebscher, M., Rana, O. F., and Wombacher, A. 2006. Can self-managed systems be trusted? some views and trends. Knowl. Engin. Rev. 21, 3, 239--248. Google ScholarDigital Library
- McKinley, P. K., Sadjadi, M., Kasten, E. P., and Cheng, B. H. C. 2004. Composing adaptive software. IEEE Comput. 56--64. Google ScholarDigital Library
- Menascé, D. A. and Bennani, M. N. 2006. Autonomic virtualized environments. In Proceedings of the International Conference on Autonomic and Autonomous Systems. 28. Google ScholarDigital Library
- Klein, M., Kazman, R., Bass, L., Carriere, N., Berbacci, H., and Lipson, H. 1999. Attribute-based architectural styles. In Proceedings of the IEEE/IFIP 1st Workshop Conference on Software Architecture. 225--243. Google ScholarDigital Library
- Morandini, M., Penserini, L., and Perini, A. 2008. Towards goal-oriented development of self-adaptive systems. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems. 9--16. Google ScholarDigital Library
- Mukhija, A. and Glinz, M. 2005. Runtime adaptation of applications through dynamic recomposition of components. In Proceedings of the International Conference on Architecture of Computing Systems. 124--138. Google ScholarDigital Library
- Muller, H. A. 2006. Bits of history, challenges for the future and autonomic computing technology. In Proceedings of the Working Conference on Reverese Eng. 9--15. Google ScholarDigital Library
- Murch, R. 2004. Autonomic Computing. Prentice Hall. Google ScholarDigital Library
- Northrop, L. 2006. Ultra-large-scale systems: The software challenges of the future. Tech. rep., Carnegie Mellon University. July. http://www.sei.cmu.edu/uls/.Google Scholar
- Nowicki, T., Squillante, M. S., and Wu, C. W. 2005. Fundamentals of dynamic decentralized optimization in autonomic computing systems. In Lecture Notes in Computer Science, vol. 3460. 204--218. Google ScholarDigital Library
- Oreizy, P., Gorlick, M. M., Taylor, R. N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D. S., and Wolf, A. L. 1999. An architecture-based approach to self-adaptive software. IEEE Intel. Syst. 14, 3, 54--62. Google ScholarDigital Library
- Oreizy, P., Medvidovic, N., and Taylor, R. N. 1998. Architecture-based runtime software evolution. In Proceedings of the International Conference on Software Engineering. 177--186. Google ScholarDigital Library
- Parashar, M. and Hariri, S. 2005. Autonomic computing: An overview. Hot Topics, Lecture Notes in Computer Science, vol. 3566, 247--259. Google ScholarDigital Library
- Parekh, J., Kaiser, G., Gross, P., and Valetto, G. 2006. Retrofitting autonomic capabilities onto legacy systems. Cluster Comput. 9, 2, 141--159. Google ScholarDigital Library
- Parnas, D. L. 1985. Software aspects of strategic defense systems. Comm. ACM 28, 12, 1326--1335. Google ScholarDigital Library
- Patrascu, R., Boutilier, C., Das, R., Kephart, J. O., Tesauro, G., and Walsh, W. E. 2005. New approaches to optimization and utility elicitation in autonomic computing. In Proceedings of the Conference on Artificial Intelligence. 140--145. Google ScholarDigital Library
- Pavlovic, D. 2000. Towards semantics of self-adaptive software. In Proceedings of the International Workshop on Self-Adaptive Software. Lecture Notes in Computer Science, vol. 1936. 65--74. Google ScholarDigital 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 Metalevel Architectures and Separation of Crosscutting Concerns. 1--24. Google ScholarDigital Library
- Peltz, C. 2003. Web services orchestration and choreography. IEEE Comput. 36, 10, 46--52. Google ScholarDigital Library
- Pinto, M., Fuentes, L., Fayad, M., and Troya, J. 2002. Separation of coordination in a dynamic aspect oriented framework. In Proceedings of the International Conference on Aspect-Oriented Software Development. 134--140. Google ScholarDigital Library
- Poladian, V., Sousa, J. P., Garlan, D., and Shaw, M. 2004. Dynamic configuration of resource-aware services. In Proceedings of the 26th International Conference on Software Engineering. IEEE Computer Society, 604--613. Google ScholarDigital Library
- Popovici, A., Gross, T., and Alonso, G. 2002. Dynamic weaving for aspect-oriented programming. In Proceedings of the International Conference on Aspect-Oriented Software Development. 141--147. Google ScholarDigital Library
- Porcarelli, S., Castaldi, M., Giandomenico, F. D., Bondavalli, A., and Inverardi, P. 2003. A framework for reconfiguration-based fault-tolerance in distributed systems. In Proceedings of the ICSE Workshop on Architecting Dependable Systems II. 167--190.Google Scholar
- Qu, G. and Hariri, S. 2007. Autonomic Computing: Concepts, Infrastructures, and Applications. CRC, Chapter Anomaly-based self-protection against network attacks, 493--521.Google Scholar
- Ramadge, P. J. and Wonham, W. M. 1987. Supervisory control of a class of discrete event processes. SIAM J. Control Optim. 25, 1, 206--230. Google ScholarDigital Library
- Robertson, P. and Laddaga, R. 2005. Model based diagnosis and contexts in self adaptive software. In Proceedings of the Conference on Self-* Properties in Complex Information Systems. 112--127. Google ScholarDigital Library
- Robertson, P. and Williams, B. 2006. Automatic recovery from software failure. Comm. ACM 49, 3, 41--47. Google ScholarDigital Library
- Russell, D. M., Maglio, P., Dordick, R., and Neti, C. 2003. Dealing with ghosts: Managing the user experience of autonomic computing. IBM Syst. J. 42, 1, 177--188. Google ScholarDigital Library
- Russell, S. J. and Norvig, P. 1995. Artificial Intelligence: a Modern Approach. Prentice-Hall. Google ScholarDigital Library
- Saab, C. B., Bonnaire, X., and Folliot, B. 2002. Phoenix: A self adaptable monitoring platform for cluster management. Cluster Comput. 5, 1, 75--85. Google ScholarDigital Library
- Sadjadi, S. M. and McKinley, P. K. 2004. ACT: An adaptive CORBA template to support unanticipated adaptation. In Proceedings of the International Conference on Distributed Computing Systems. 74--83. Google ScholarDigital 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. Lecture Notes in Computer Science, vol. 3291. 1243--1261.Google ScholarCross Ref
- Salehie, M., Li, S., Asadollahi, R., and Tahvildari, L. 2009. Change support in adaptive software: A case study for fine-grained adaptation. In Proceedings of the IEEE Conference and Workshops on Engineering of Autonomic and Autonomous Systems. 35--44. Google ScholarDigital Library
- Salehie, M., Li, S., and Ladan, T. 2009. Employing aspect composition in adaptive software systems: A case study. In Proceedings of the ACM Practices of Linking Aspect Technology and Evolution Workshop. 17--21. Google ScholarDigital Library
- Salehie, M. and Tahvildari, L. 2005a. Autonomic computing: emerging trends and open problems. In Proceedings of the Workshop on Design and Evolution of Autonomic Applications Software. 82--88. Google ScholarDigital Library
- Salehie, M. and Tahvildari, L. 2005b. A policy-based decision making approach for orchestrating autonomic elements. In Proceedings of the IEEE International Workshop on Software Technology and Engineering Practice 173--181. Google ScholarDigital Library
- Salehie, M. and Tahvildari, L. 2007. A weighted voting mechanism for action selection problem in self-adaptive software. In Proceedings of the IEEE International Conference on Self-Adaptive and Self-Organizing Systems. 328--331. Google ScholarDigital Library
- Schmidt, D. C. 2002. Middleware for real-time and embedded systems. Comm. ACM 45, 6, 43--48. Google ScholarDigital Library
- Schmidt, D. C. and Cleeland, C. 1999. Applying patterns to develop extensible orb middleware. IEEE Comm. Mag. 37, 54--63. Google ScholarDigital Library
- Scott, J., Neema, S., Bapty, T., and Abbott, B. 2000. Hardware/software runtime environment for dynamically reconfigurable systems. Tech. Rep. ISIS-2000-06, Vanderbilt Univ.Google Scholar
- Serugendo, G. D. M., Foukia, N., Hassas, S., Karageorgos, A., Mostéfaoui, S. K., Rana, O. F., Ulieru, M., Valckenaers, P., and van Aart, C. 2003. Self-organisation: Paradigms and app. In Proceedings of the Engineering Self-Organising Applications Workshop. 1--19.Google Scholar
- Shiftone jrat. JRat (Java Runtime Analysis Toolkit). http://jrat.sourceforge.net/.Google Scholar
- Sloman, M. 1994. Policy driven management for distributed systems. J. Netw. Syst. Manage. 2, 4.Google ScholarCross Ref
- Smith, D., Morris, E., and Carney, D. 2005. Interoperability issues affecting autonomic computing. In Proceedings of the Workshop on Design and Evolution of Autonomic App. Software. 89--91. Google ScholarDigital Library
- Srivastava, B. and Kambhampati, S. 2005. The case for automated planning in autonomic computing. In Proceedings of the International Conference on Automatic Computing. 331--332. Google ScholarDigital Library
- Sterritt, R. 2003. Autonomic computing: the natural fusion of soft computing and hard computing. In Proceedings of the IEEE International Conference on Systems, Management and Cybernetics. vol. 5. 4754--4759.Google ScholarCross Ref
- Sterritt, R. and Bustard, D. W. 2003. Autonomic computing—a means of achieving dependability? In Proceedings of the IEEE Symposium and Workshops on Engineering of Computer-Based Systems 247--251.Google Scholar
- Sterritt, R., Parashar, M., Tianfield, H., and Unland, R. 2005. A concise introduction to autonomic computing. Adv. Eng. Informatics 19, 181--187. Google ScholarDigital Library
- Subramanian, N. and Chung, L. 2001. Software architecture adaptability: An nfr approach. In Proceedings of the International Workshop on Principles of Software Evolution. 52--61. Google ScholarDigital Library
- 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. 21--29. Google ScholarDigital Library
- Tanenbaum, A. S. and Woodhull, A. S. 2006. Operating Systems: Design and Implementation, Third ed. Pearson Prentice Hall. Google ScholarDigital Library
- Tesauro, G. 2007. Reinforcement learning in autonomic computing: A manifesto and case studies. IEEE Inter. Comput. 11, 1, 22--30. Google ScholarDigital Library
- Tesauro, G., Chess, D. M., Walsh, W. E., Das, R., Segal, A., Whalley, I., Kephart, J. O., and White, S. R. 2004. A multi-agent systems approach to autonomic computing. In Proceedings of the International Conference on Autonomous Agents and Multiagent Systems. 464--471. Google ScholarDigital Library
- Tuttle, S., Batchellor, V., Hansen, M. B., and Sethuraman, M. 2003. Centralized risk management using tivoli risk manager 4.2. Tech. rep., IBM Tivoli Software.Google Scholar
- Tziallas, G. and Theodoulidis, B. 2004. A controller synthesis algorithm for building self-adaptive software. Inform. Softw. Tech. 46, 11, 719--727.Google ScholarCross Ref
- Valetto, G. and Kaiser, G. 2003. Using process technology to control and coordinate software adaptation. In Proceedings of the International Conference on Software Engineering 262--273. Google ScholarDigital Library
- Verma, K. and Sheth, A. P. 2005. Autonomic web processes. In Proceedings of the International Conference on Service-Oriented Computing. Lecture Notes in Computer Science, vol. 3826. 1--11. Google ScholarDigital Library
- Walsh, W. E., Tesauro, G., Kephart, J. O., and Das, R. 2004. Utility functions in autonomic systems. In Proceedings of the IEEE Conference on Autonomic Computing. 70--77. Google ScholarDigital Library
- Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M., Quinn, B., Perry, J., Herzog, S., Huynh, A.-N., and Carlson, M. 2000. Policy terminology. IETF, Internet Draft draftietf-policy-terminology-00.txt.Google Scholar
- Weyns, D., Schelfthout, K., and Holvoet, T. 2005. Architectural design of a distributed application with autonomic quality requirements. SIGSOFT Softw. Engin. Notes 30, 4, 1--7. Google ScholarDigital Library
- White, J., Schmidt, D. C., and Gokhale, A. S. 2005. Simplifying autonomic enterprise java bean applications via model-driven development: A case study. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems 601--615. Google ScholarDigital Library
- Willebeek-LeMair, M., Reeves, A., Center, I., and Heights, Y. 1993. Strategies for dynamic load balancing on highly parallel computers. IEEE Trans. Parall. Distrib. Syst. 4, 9, 979--993. Google ScholarDigital Library
- Woodside, C. M. and Menascé, D. A. 2006. Guest editors' introduction: Application-level QoS. IEEE Intern. Comput. 10, 3, 13--15. Google ScholarDigital Library
- Zhang, J. 2007. A formal approach to providing assurance to dynamically adaptive software. Ph.D. thesis, Michigan State University. Google ScholarDigital Library
Index Terms
- Self-adaptive software: Landscape and research challenges
Recommendations
Self-awareness in Software Engineering: A Systematic Literature Review
Background: Self-awareness has been recently receiving attention in computing systems for enriching autonomous software systems operating in dynamic environments.
Objective: We aim to investigate the adoption of computational self-awareness concepts in ...
FuAET: a tool for developing fuzzy self-adaptive software systems
Internetware '14: Proceedings of the 6th Asia-Pacific Symposium on InternetwareHandling uncertainty in software self-adaptation has become an important and challenging issue. In our previous work, we proposed a fuzzy control based approach named Software Fuzzy Self-Adaptation (SFSA) to address fuzziness, a kind of uncertainty in ...
Model-Driven Engineering of Self-Adaptive Software with EUREMA
Special Section on Best Papers from SEAMS 2012The development of self-adaptive software requires the engineering of an adaptation engine that controls the underlying adaptable software by feedback loops. The engine often describes the adaptation by runtime models representing the adaptable software ...
Comments