Abstract
The challenges of pervasive and mobile computing environments, which are highly dynamic and unpredictable, have motivated the development of self-adaptive software systems. Although noteworthy successes have been achieved on many fronts, the construction of such systems remains significantly more challenging than traditional systems. We argue this is partially because researchers and practitioners have been struggling with the lack of a precise vocabulary for describing and reasoning about the key architectural characteristics of self-adaptive systems. Further exacerbating the situation is the fact that existing frameworks and guidelines do not provide an encompassing perspective of the different types of concerns in this setting. In this article, we present a comprehensive reference model, entitled FOrmal Reference Model for Self-adaptation (FORMS), that targets both issues. FORMS provides rigor in the manner such systems can be described and reasoned about. It consists of a small number of formally specified modeling elements that correspond to the key concerns in the design of self-adaptive software systems, and a set of relationships that guide their composition. We demonstrate FORMS's ability to precisely describe and reason about the architectural characteristics of distributed self-adaptive software systems through its application to several existing systems. FORMS's expressive power gives it a potential for documenting reusable architectural solutions (e.g., architectural patterns) to commonly encountered problems in this area.
- Andersson, J., de Lemos, R., Malek, S., and Weyns, D. 2009a. Modeling dimensions of self-adaptive software systems. In Hot Topics on Software Engineering for Self-Adaptive Systems, B. H. C. Cheng et al., Eds., Lecture Notes in Computer Science, vol. 5525, Springer. Google ScholarDigital Library
- Andersson, J., de Lemos, R., Malek, S., and Weyns, D. 2009b. Reflecting on self-adaptive software systems. In Proceedings of the Workshop on Software Engineering for Adaptive and Self-Managing Systems. Google ScholarDigital Library
- Andrade, L. F., Fiadeiro, J. L., Gouveia, J., Lopes, A., and Wermelinger, M. 2000. Patterns for coordination. In Proceedings of the International Conference on Coordination Languages and Models. Lecture Notes in Computer Science, vol. 1906, Springer, 317--322. Google ScholarDigital Library
- Arbab, F. 2004. Reo: A channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14, 3, 329--366. Google ScholarDigital Library
- Blair, G., Coulson, G., and Grace, P. 2004. Research directions in reflective middleware: The Lancaster experience. In Proceedings of the 3rd Workshop on Adaptive and Reflective Middleware (ARM'04). ACM Press, New York. Google ScholarDigital Library
- Braione, P. and Picco, G. P. 2004. On calculi for context-aware coordination. In Proceedings of the International Conference on Coordination Models and Languages. Lecture Notes in Computer Science, vol. 2949, Springer, 38--54.Google ScholarCross Ref
- Brewington, B. and Cybenko, G. 2000. Keeping up the changing Web. Comput. 33, 5, 52--58. Google ScholarDigital Library
- Capra, L., Emmerich, W., and Mascolo, C. 2001. Reflective middleware solutions for context-aware applications. In Proceedings of the International Conference on Metalevel Architectures and Separation of Crosscutting Concerns. 126--133. Google ScholarDigital Library
- Cardelli, L. and Gordon, A. D. 2000. Mobile ambients. Theor. Comput. Sci. 240, 1, 177--213. Google ScholarDigital Library
- Carzaniga, A., Picco, G. P., and Vigna, G. 1997. Designing distributed applications with mobile code paradigms. In Proceedings of the International Conference on Software Engineering. ACM Press, New York, 22--32. Google ScholarDigital Library
- Cazzola, W., Savigni, A., Sosio, A., and Tisato, F. 1999. Rule-Based strategic reflection: Observing and modifying behavior at the architectural level. In Proceedings of the International Conference on Automated Software Engineering. Google ScholarDigital Library
- Cheng, B., de Lemos, R., Giese, H., Inverardi, P., and Mafee, J., et al. 2009. Software engineering for self-adaptive systems: A research road map. In Hot Topics on Software Engineering for Self-Adaptive Systems, B. H. C. Cheng et al., Eds., Lecture Notes in Computer Science, vol. 5525, Springer. Google ScholarDigital Library
- CZT. 2010. http://czt.sourceforge.net/.Google Scholar
- Dey, A. 2000. Providing architectural support for building context-aware applications. Ph.D. thesis, Atlanta, USA. Google ScholarDigital Library
- Dowling, J. and Cahill, V. 2001. The k-component architecture meta-model for self-adaptive software. In Proceedings of the International Conference on Metalevel Architectures and Separation of Crosscutting Concerns. Google ScholarDigital Library
- Edwards, G., Garcia, J., Tajalli, H., Popescu, D., Medvidovic, N., Sukhatme, G., and Petrus, B. 2009. Architecture-Driven self-adaptation and self-management in robotics systems. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems. Google ScholarDigital Library
- Erickson, T. 2002. Some problems wit the notion of context-aware computing. Comm. ACM 45, 2, 102--104. Google ScholarDigital Library
- Fok, C.-L., Roman, G.-C., and Hackmann, G. 2004. A lightweight coordination middleware for mobile computing. In Proceedings of the COORDINATION Conference. R. D. Nicola, G. L. Ferrari, and G. Meredith, Eds., Lecture Notes in Computer Science, vol. 2949, Springer, 135--151.Google Scholar
- 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, 46--54. Google ScholarDigital Library
- Geihs, K., et al. 2009. Software Engineering for Self-Adaptive Systems. Springer. Chapter Modeling of context-aware self-adaptive applications in ubiquitous and service-oriented environments. Google ScholarDigital Library
- Haque, M. and Ahamed, S. 2007. An omnipresent formal trust model (ftm) for pervasive computing environment. In Proceedings of the International Computer Software and Applications Conference. IEEE Computer Society, Los Alamitos, CA, 49--56. Google ScholarDigital Library
- Henricksen, K., Indulska, J., and Rakotonirainy, A. 2002. Modeling context information in pervasive computing systems. In Pervasive, F. Mattern and M. Naghshineh, Eds., Lecture Notes in Computer Science, vol. 2414, Springer, 167--180. Google ScholarDigital Library
- Hinchey, M. G. and Sterritt, R. 2006. Self-Managing software. Comput. 39, 107-. 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. Google ScholarDigital Library
- IBM. 2006. An architectural blueprint for autonomic computing. Tech. rep., IBM.Google Scholar
- Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. IEEE Comput. 36, 1, 41--50. Google ScholarDigital Library
- Kramer, J. and Magee, J. 2007. Self-Managed systems: An architectural challenge. In Proceedings of the International Conference on Software Engineering. Google ScholarDigital Library
- Maes, P. 1987. Concepts and experiments in computational reflection. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'87). Google ScholarDigital Library
- Malek, S., Seo, C., Ravula, S., Petrus, B., and Medvidovic, N. 2007. Reconceptualizing a family of heterogeneous embedded systems via explicit architectural support. In Proceedings of the International Conference on Software Engineering. 591--601. Google ScholarDigital Library
- Malone, T. and Crowston, K. 1994. Toward an interdisciplinary theory of coordination. ACM Comput. Surv. 26, 1, 87--119. Google ScholarDigital Library
- Miller, B. 2005. The autonomic computing edge: The role of knowledge in autonomic systems. Tech. rep., IBM.Google Scholar
- Murphy, A., Picco, G. P., and Roman, G.-C. 2006. Lime: A coordination model and middleware supporting mobility of hosts and agents. ACM Trans. Softw. Engin. Methodol. 15, 3, 279--328. Google ScholarDigital Library
- Nahrstedt, K., Xu, D., Wichadakul, D., and Li, B. 2001. QOS-Aware middleware for ubiquitous and heterogeneous environments. IEEE Comm. Mag. 39, 11, 140--148. 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. Google ScholarDigital Library
- Ossowski, S. and Menezes, R. 2006. On coordination and its significance to distributed and multi-agent systems: Research articles. Concurr. Comput. Pract. Exper. 18, 4, 359--370. Google ScholarDigital Library
- Ranganathan, A. and Campbell, R. H. 2003. An infrastructure for context-awareness based on first order logic. Person. Ubiq. Comput. 7, 6, 353--364. Google ScholarDigital Library
- Román, M., Hess, C., Cerqueira, R., Ranganathan, A., Campbell, R. H., and Nahrstedt, K. 2002. A middleware infrastructure for active spaces. IEEE Pervas. Comput. 1, 4, 74--83. Google ScholarDigital Library
- Schilit, B., Adams, N., and Want, R. 1999. Context-Aware computing applications. In Proceedings of the 1st Workshop on Mobile Computing Systems and Applications. IEEE Computer Society, Los Alamitos, CA, 85--90. Google ScholarDigital Library
- Schmidt, A., Aidoo, K. A., Takaluoma, A., Tuomela, U., Van Laerhoven, K., and Van de Velde, W. 1999. Advanced interaction in context. Lecture Notes in Computer Science, vol. 1707, Springer, 89--101. Google ScholarDigital Library
- Shaw, M. 1995. Beyond objects: A software design paradigm based on process control. ACM SIGSOFT Softw. Engin. Notes 20, 1, 27--38. Google ScholarDigital Library
- Sterritt, R. 2005. Autonomic computing. Innov. Syst. Softw. Engin. 1, 1, 79--88.Google ScholarCross Ref
- Tisato, F., Savigni, A., Cazzola, W., and Sosio, A. 2001. Architectural reflection: Realising software architectures via reflective activities. In Proceedings of the International Workshop on Engineering Distributed Objects. Springer. Google ScholarDigital Library
- Vassev, E. and Hinchey, M. 2011. The assl approach to specifying self-managing embedded systems. Concurr. Comput. Pract. Exper. doi: 10.1002/cpe.1758. Google ScholarDigital Library
- Weiser, M. 1993. Ubiquitous computing. Comput. 26, 71--72. Google ScholarDigital Library
- Wermelinger, M. and Fiadeiro, J. L. 1999. Algebraic software architecture reconfiguration. In Proceedings of the European Software Engineering Conference and International Symposium on Foundations of Software Engineering. Google ScholarDigital Library
- Weyns, D., Malek, S., and Andersson, J. 2010a. On decentralized self-adaptation: Lessons from the trenches and challenges for the future. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems. Google ScholarDigital Library
- Weyns, D., Haesevoets, R., Helleboogh, A., Holvoet, T., and Joosen, W. 2010b. The MACODO middleware for context-driven dynamic agent organizations. ACM Trans. Auton. Adapt. Syst. 5, 1. Google ScholarDigital Library
- Weyns, D., Malek, S., and Andersson, J. 2010c. FORMS: A formal reference model for self-adaptation. In Proceedings of the International Conference on Autonomic Computing and Communications. Google ScholarDigital Library
- Weyns, D., Malek, S., and Andersson, J. 2010d. Z specifications of FORMS. Tech. rep. CW 579, K.U. Leuven. www.cs.kuleuven.be/publicaties/rapporten/cw/CW579.abs.html.Google Scholar
- Wooldridge, M. and Jennings, N. 1995. Intelligent agents: Theory and practice. Knowl. Engin. Rev. 10, 2, 115--152.Google ScholarCross Ref
- Ye, J., Coyle, L., Dobson, S., and Nixon, P. 2007. Ontology-Based models in pervasive computing systems. Knowl. Engin. Rev. 22, 4, 315--347. Google ScholarDigital Library
- Zhang, J. and Cheng, B. H. C. 2006. Model-Based development of dynamically adaptive software. In Proceedings of the International Conference on Software Engineering. Google ScholarDigital Library
Index Terms
- FORMS: Unifying reference model for formal specification of distributed self-adaptive systems
Recommendations
A Formal Framework for ASTRAL Intralevel Proof Obligations
ASTRAL is a formal specification language for real-time systems. It is intended to support formal software development, and therefore has been formally defined. This paper focuses on how to formally prove the mathematical correctness of ASTRAL ...
Towards a New Adaptation Engine for Self-Adaptation of BPMN Processes Instances
ENASE 2019: Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software EngineeringIn this paper we introduce an adaptation engine supporting self-adaptation of running BPMN process instances. This adaptation engine implements the MAPE-K (Monitor, Analyze, Plan, Execute, Knowledge) approach from autonomic computing for self-adaptation. ...
Towards the Composition of Specifications in Event-B
The development of a system can start with the creation of a specification. Following this viewpoint, we claim that often a specification can be constructed from the combination of specifications which can be seen as composition. Event-B is a formal ...
Comments