An Environment Aware Learning-based Self-Adaptation Technique with Reusable Components

Full Text (PDF, 940KB), PP.53-64

Views: 0 Downloads: 0


Kishan Kumar Ganguly 1,* Md. Saeed Siddik 1 Rayhanul Islam 2 Kazi Sakib 1

1. Institute of Information Technology, University of Dhaka

2. Institute of Leather Engineering and Technology, University of Dhaka

* Corresponding author.


Received: 30 Jan. 2019 / Revised: 23 Feb. 2019 / Accepted: 23 Apr. 2019 / Published: 8 Jun. 2019

Index Terms

Self-Adaptation, linear regression, environmental variant, design pattern, reusability, software variant, load balancer


Self-adaptive systems appeared in order to reduce the effort of manual software maintenance. Apart from software attributes, for example, different alternative software modules, self-adaptation decisions depend on environmental attributes, for example, service rate, bandwidth etc. Current well-known self-adaptation approaches can be further improved by incorporating environmental attributes. Moreover, reducing maintenance effort includes minimizing both operational and development effort. To reduce the effort of developing self-adaptive software, the constituent components should be reusable. This paper proposes a technique to incorporate environmental attributes to learning-based self-adaptation and to increase the reuse potential of self-adaptive system components. The environmental attributes are provided as a constraint to an optimization problem which results in an optimal software attribute selection. Design patterns for self-adaptive system components are proposed to improve its reusability. The proposed technique was validated on a news serving website called According to renowned reusability metrics such as Lines of Code (LOC), Message Passing Coupling (MPC) and Lack of Cohesion of Methods 4 (LCOM4), the proposed technique improved reuse potential. The website was further tested for adaptation effectiveness under two scenarios – adaptation and without adaptation. According to our experiments, Adaptation gradually improved the main goal response time of the website where it performed poorly without adaptation.

Cite This Paper

Kishan Kumar Ganguly, Md. Saeed Siddik, Rayhanul Islam, Kazi Sakib, "An Environment Aware Learning-based Self-Adaptation Technique with Reusable Components", International Journal of Modern Education and Computer Science(IJMECS), Vol.11, No.6, pp. 53-64, 2019.DOI: 10.5815/ijmecs.2019.06.06


[1]J. Andersson, L. Baresi, N. Bencomo, R. Lemos, A. Gorla, P. Inverardi and T. Vogel, "Software Engineering Processes for Self-Adaptive Systems," in Software Engineering for Self-Adaptive Systems II, Springer, 2013, pp. 51-75.
[2]K. K. Ganguly and K. Sakib, "Decentralization of Control Loop for Self-Adaptive Software through Reinforcement Learning," in 24th Asia-Pacific Software Engineering Conference Workshops (APSECW), Nanjing, China, 2017.
[3]D. Kim and S. Park, "Reinforcement Learning-Based Dynamic Adaptation Planning Method for Architecture-Based Self-Managed Software," in Software Engineering for Adaptive and Self-Managing Systems, 2009. SEAMS'09. ICSE Workshop on, 2009.
[4]H. N. Ho and E. Lee, "Model-Based Reinforcement Learning Approach for Planning in Self-Adaptive Software System," in Proceedings of the 9th International Conference on Ubiquitous Information Management and Communication, 2015.
[5]Elkhodary, N. Esfahani and S. Malek, "FUSION: A Framework for Engineering Self-Tuning Self-Adaptive Software Systems," in Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, 2010.
[6]N. Esfahani, A. Elkhodary and S. Malek, "A Learning-Based Framework for Engineering Feature-Oriented Self-Adaptive Software Systems," Software Engineering, IEEE Transactions on, vol. 39, pp. 1467-1493, 2013.
[7]S.-W. Cheng, Rainbow: Cost-Effective Software Architecture-Based Self-Adaptation, ProQuest, 2008.
[8]L. C. Briand, J. W. Daly and J. K. Wust, "A Unified Framework for Coupling Measurement in Object-Oriented Systems," IEEE Transactions on software Engineering, vol. 25, pp. 91-121, 1999.
[9]M. Hitz and B. Montazeri, Measuring Coupling and Cohesion in Object-Oriented Systems, Citeseer, 1995.
[10]Computing and others, "An Architectural Blueprint for Autonomic Computing," IBM White Paper, 2006.
[11]E. Gamma, Design Patterns: Elements of Reusable Object-Oriented Software, Pearson Education India, 1995.
[12]B. S. Shang-Wen Cheng, "Model Problem:," [Online]. Available: [Accessed 28 December 2018].
[13]S.-W. Cheng, D. Garlan and B. Schmerl, "Architecture-Based Self-Adaptation in the Presence of Multiple Objectives," in Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems, 2006.
[14]S.-W. Cheng, V. V. Poladian, D. Garlan and B. Schmerl, "Improving Architecture-Based Self-Adaptation Through Resource Prediction," in Software Engineering for Self-Adaptive Systems, Springer, 2009, pp. 71-88.
[15]J. Cámara and R. Lemos, "Evaluation of Resilience in Self-Adaptive Systems using Probabilistic Model-Checking," in Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, 2012.
[16]D. Weyns, B. Schmerl, V. Grassi, S. Malek, R. Mirandola, C. Prehofer, J. Wuttke, J. Andersson, H. Giese and K. M. Göschka, "On Patterns for Decentralized Control in Self-Adaptive Systems," in Software Engineering for Self-Adaptive Systems II, Springer, 2013, pp. 76-107.
[17]M. Luckey, B. Nagel, C. Gerth and G. Engels, "Adapt Cases: Extending Use Cases for Adaptive Systems," in Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, 2011.
[18]"," BizX, 5 October 1997. [Online]. Available: [Accessed 30 December 2018].
[19]N. Fenton and J. Bieman, Software Metrics: A Rigorous and Practical Approach, CRC Press, 2014.
[20]G. Gui and P. D. Scott, "Measuring Software Component Reusability by Coupling and Cohesion Metrics," Journal of computers, vol. 4, pp. 797-805, 2009.
[21]"Cohesion Metrics," [Online]. Available: [Accessed 28 December 2018].
[22]J. Floch, S. Hallsteinsen, E. Stav, F. Eliassen, K. Lund and E. Gjorven, "Using Architecture Models for Runtime Adaptability," IEEE software, vol. 23, pp. 62-70, 2006.
[23]N. Gui and V. De Florio, "Towards Meta-Adaptation Support with Reusable and Composable Adaptation Components," in Self-Adaptive and Self-Organizing Systems (SASO), 2012 IEEE Sixth International Conference on, 2012.
[24]M. Litoiu, M. Woodside and T. Zheng, "Hierarchical Model-Based Autonomic Control of Software Systems," in ACM SIGSOFT Software Engineering Notes, 2005.
[25]H. Müller, M. Pezzè and M. Shaw, "Visibility of Control in Adaptive Systems," in Proceedings of the 2nd international workshop on Ultra-large-scale software-intensive systems, 2008.
[26]J. Dowling and V. Cahill, "The K-Component Architecture Meta-Model for Self-Adaptive Software," in International Conference on Metalevel Architectures and Reflection, 2001.
[27]P.-C. David and T. Ledoux, "An Aspect-Oriented Approach for Developing Self-Adaptive Fractal Components," in International Conference on Software Composition, 2006.
[28]Y. Wu, Y. Wu, X. Peng and W. Zhao, "Implementing Self-Adaptive Software Architecture by Reflective Component Model and Dynamic AOP: A Case Study," in Quality Software (QSIC), 2010 10th International Conference on, 2010.