Model-Based Self-Adaptation from Requirements to Architectures: A Decision-Making Process
Model-based self-adaptation has been proposed as one way to dynamically tune
parameters, change structures and behaviors of software systems in response to
the changing environments. Specifically, requirements and architecture models
have been used for self-adaptation. However, requirements-driven approaches
usually assume that requirements elements can be directly mapped to
architectural elements, and architecture-based approaches usually assume that
requirements are well-understood at design time and unchanged at runtime.
In this talk, we propose to combine requirements-driven and architecture-based
self-adaptations. Requirements adaptations capture requirements as goal models
to reason about the best plan within the problem space, and architecture-based
adaptations capture architectural design decisions as decision trees to search
for the best design for the desired requirements. Following these adaptations,
component-based architecture models are reconfigured using incremental and
generative model transformations.
||| G. S. Blair, N. Bencomo, and R. B. France. Models@run.time. Computer,
||| D. Garlan, S.-W. Cheng, A.-C. Huang, B. Schmerl, and P. Steenkiste. Rainbow:
Architecture-based self-adaptation with reusable infrastructure. Computer,
||| Y. Wang and J. Mylopoulos. Self-repair through reconfiguration: A
requirements engineering approach. In ASE, pages 257-268, 2009.
||| B. Chen, X. Peng, Y. Yu, and W. Zhao. Are your sites down?
Requirements-driven self-tuning for the survivability of Web systems. In RE,
pages 219-228, 2011.
||| X. Peng, B. Chen, Y. Yu, and W. Zhao. Self-tuning of software systems
through dynamic quality tradeoff and value-based feedback control loop. J. Syst.
Softw., 85(12):2707-2719, 2012.