Constraint Programming as a Means to Manage Configurations in Self-Adaptive Systems

In recent years, new software architectures have been developed in which components can be bound and unbound dynamically as the context demands. This capacity to dynamically adapt the software's structure, behaviour and quality of service should make resilience easier to achieve by allowing systems to respond more flexibly to changing environmental contexts. However, because the decision of how to react to a new context is devolved to a run-time decision-making element that senses the context and selects an appropriate component configuration, a new approach to how software is specified is needed. A self-adaptive system that uses architectural adaptation may be conceptualized as a dynamic SPL. In this paper we argue that the problem of specifying a DSPL can be reduced to a constraint satisfaction problem. We combine goal modeling techniques with constraint programming to provide the analyst with a means to identify the system variants best suited to the various environmental contexts that a system might encounter at runtime. We illustrate our approach using the example of a self-adaptive wireless sensor network.

[1]  Nelly Bencomo,et al.  Requirements-Aware Systems: A Research Agenda for RE for Self-adaptive Systems , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[2]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[3]  Peter J. Stuckey,et al.  Efficient constraint propagation engines , 2006, TOPL.

[4]  Kurt Geihs,et al.  Architectural Constraints in the Model-Driven Development of Self-Adaptive Applications , 2008, IEEE Distributed Systems Online.

[5]  Nelly Bencomo,et al.  Towards requirements aware systems: Run-time resolution of design-time assumptions , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[6]  Camille Salinesi,et al.  Constraints: The Heart of Domain and Application Engineering in the Product Lines Engineering Strategy , 2012, Int. J. Inf. Syst. Model. Des..

[7]  Régine Laleau,et al.  Extended KAOS Method to Model Variability in Requirements , 2009, ENASE.

[8]  Gordon S. Blair,et al.  An experiment with reflective middleware to support grid‐based flood monitoring , 2008, Concurr. Comput. Pract. Exp..

[9]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[10]  Jeff Magee,et al.  Exploiting non-functional preferences in architectural adaptation for self-managed systems , 2010, SAC '10.

[11]  Sooyong Park,et al.  Dynamic Software Product Lines , 2008, Computer.

[12]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.