Constructing Self-Adaptive Software in Ubiquitous Computing Space

Self-adaptation endows software with the ability to adjust its behavior according to the changes in its environment. It is an effective approach to deal with dynamic environments, such as ubiquitous computing spaces. However, adaptability will significantly complicate software implementation and bring great challenges to software engineering practices. This paper presents an engineering approach for self-adaptive software, which systematically enables the reuse of software adaptation on both software architecture and development process. We propose a novel conceptual model as the foundation of our work at first, in which each software entity can imitate the reacting/joining behavior pattern of the individuals in natural adaptive systems. And then, mainly based on the enhancement of component technology, we map this conceptual model into a practical and reusable software architecture. A software factory with a model-driven process is presented as well. Several applications have been developed to validate the effectiveness and generality of our approach.

[1]  Yves Le Traon,et al.  A systematic review on the engineering of software for ubiquitous systems , 2016, J. Syst. Softw..

[2]  Peter J. Denning,et al.  Computing as a discipline , 1989, Computer.

[3]  Wolfgang Trumler,et al.  AMUN - Autonomic Middleware for Ubiquitous eNvironments Applied to the Smart Doorplate Project , 2004, ICAC.

[4]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[5]  Vicente Pelechano,et al.  Software Engineering for Pervasive Systems. Applying Models, Frameworks and Transformations , 2007, IEEE International Conference on Pervasive Services.

[6]  A. Ferworn,et al.  Applying Model-Driven Development to Pervasive System Engineering , 2007, First International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments (SEPCASE '07).

[7]  Mahadev Satyanarayanan,et al.  Pervasive computing: vision and challenges , 2001, IEEE Wirel. Commun..

[8]  Gregor Schiele,et al.  PCOM - a component system for pervasive computing , 2004, Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the.

[9]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[10]  James Beck,et al.  Challenges: an application model for pervasive computing , 2000, MobiCom '00.

[11]  Laurent Ciarletta,et al.  A conceptual model for pervasive computing , 2000, Proceedings 2000. International Workshop on Parallel Processing.

[12]  Sebastian VanSyckel,et al.  A survey on engineering approaches for self-adaptive systems , 2015, Pervasive Mob. Comput..

[13]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[14]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[15]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[16]  Kanagasabai Rajaraman,et al.  Semantic Web service discovery: state-of-the-art and research challenges , 2012, Personal and Ubiquitous Computing.

[17]  Cris Kobryn,et al.  Modeling components and frameworks with UML , 2000, CACM.

[18]  John R. Koza,et al.  Hidden Order: How Adaptation Builds Complexity. , 1995, Artificial Life.

[19]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[20]  Shi Dianxi Pervasive middleware technology , 2007 .

[21]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[22]  David Garlan,et al.  Stitch: A language for architecture-based self-adaptation , 2012, J. Syst. Softw..

[23]  Klara Nahrstedt,et al.  Gaia: A Middleware Infrastructure to Enable Active Spaces1 , 2002 .

[24]  Chiyoung Seo,et al.  Exploring the Role of Software Architecture in Dynamic and Fault Tolerant Pervasive Systems , 2007, First International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments (SEPCASE '07).

[25]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[26]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.