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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- Arbab, F. 2004. Reo: A channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14, 3, 329--366. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Cross Ref
- Brewington, B. and Cybenko, G. 2000. Keeping up the changing Web. Comput. 33, 5, 52--58. Google Scholar
Digital 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 Scholar
Digital Library
- Cardelli, L. and Gordon, A. D. 2000. Mobile ambients. Theor. Comput. Sci. 240, 1, 177--213. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- Erickson, T. 2002. Some problems wit the notion of context-aware computing. Comm. ACM 45, 2, 102--104. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- Hinchey, M. G. and Sterritt, R. 2006. Self-Managing software. Comput. 39, 107-. Google Scholar
Digital Library
- Huebscher, M. C. and McCann, J. A. 2008. A survey of autonomic computing- Degrees, models, and applications. ACM Comput. Surv. 40, 3. Google Scholar
Digital 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 Scholar
Digital Library
- Kramer, J. and Magee, J. 2007. Self-Managed systems: An architectural challenge. In Proceedings of the International Conference on Software Engineering. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- Malone, T. and Crowston, K. 1994. Toward an interdisciplinary theory of coordination. ACM Comput. Surv. 26, 1, 87--119. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- Shaw, M. 1995. Beyond objects: A software design paradigm based on process control. ACM SIGSOFT Softw. Engin. Notes 20, 1, 27--38. Google Scholar
Digital Library
- Sterritt, R. 2005. Autonomic computing. Innov. Syst. Softw. Engin. 1, 1, 79--88.Google Scholar
Cross 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 Scholar
Digital 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 Scholar
Digital Library
- Weiser, M. 1993. Ubiquitous computing. Comput. 26, 71--72. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Cross 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 Scholar
Digital 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 Scholar
Digital 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 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 ...
Improving Architecture-Based Self-Adaptation through Resource Prediction
Software Engineering for Self-Adaptive SystemsAn increasingly important concern for modern systems design is how best to incorporate self-adaptation into systems so as to improve their ability to dynamically respond to faults, resource variation, and changing user needs. One promising approach is ...






Comments