Abstract
Background: Self-awareness has been recently receiving attention in computing systems for enriching autonomous software systems operating in dynamic environments.
Objective: We aim to investigate the adoption of computational self-awareness concepts in autonomic software systems and motivate future research directions on self-awareness and related problems.
Method: We conducted a systemic literature review to compile the studies related to the adoption of self-awareness in software engineering and explore how self-awareness is engineered and incorporated in software systems. From 865 studies, 74 studies have been selected as primary studies. We have analysed the studies from multiple perspectives, such as motivation, inspiration, and engineering approaches, among others.
Results: Results have shown that self-awareness has been used to enable self-adaptation in systems that exhibit uncertain and dynamic behaviour. Though there have been recent attempts to define and engineer self-awareness in software engineering, there is no consensus on the definition of self-awareness. Also, the distinction between self-aware and self-adaptive systems has not been systematically treated.
Conclusions: Our survey reveals that self-awareness for software systems is still a formative field and that there is growing attention to incorporate self-awareness for better reasoning about the adaptation decision in autonomic systems. Many pending issues and open problems outline possible research directions.
- M. Baldauf, S. Dustdar, and F. Rosenberg. 2007. A survey on context-aware systems. Int. J. Ad Hoc Ubiq. Comput. 2, 4 (2007), 263--277.Google ScholarDigital Library
- G. Blair, N. Bencomo, and R. B. France. 2009. Models@ run.time. Computer 42, 10 (2009), 22--27.Google ScholarDigital Library
- P. Bozzelli, Q. Gu, and P. Lago. 2013. A Systematic Literature Review on Green Software Metrics. Technical Report. VU University Amsterdam, Department of Computer Science, The Netherlands. Retrieved from: http://www.sis.uta.fi/pt/TIEA5_Thesis_Course/Session_10_2013_02_18/SLR_GreenMetrics.pdf.Google Scholar
- O. P. Brereton, B. A. Kitchenham, D. Budgen, M. Turner, and M. Khalil. 2007. Lessons from applying the systematic literature review process within the software engineering domain. J. Syst. Softw. 80, 4 (2007), 571--583.Google ScholarDigital Library
- R. Calinescu. 2013. Emerging Techniques for the Engineering of Self-Adaptive High-Integrity Software. Springer Berlin, 297--310.Google Scholar
- J. Camara, R. de Lemos, C. Ghezzi, and A. Lopes. 2013. Assurances for Self-adaptive Systems: Principles, Models, and Techniques. Springer, Berlin New York.Google Scholar
- B. Cheng, R. de Lemos, H. Giese, P. Inverardi, J. Magee, J. Andersson, B. Becker, N. Bencomo, Y. Brun, B. Cukic, G. Marzo Serugendo, S. Dustdar, A. Finkelstein, C. Gacek, K. Geihs, V. Grassi, G. Karsai, H. M. Kienle, J. Kramer, M. Litoiu, S. Malek, R. Mirandola, H. Müller, S. Park, M. Shaw, M. Tichy, M. Tivoli, D. Weyns, and J. Whittle. 2009. Software Engineering for Self-Adaptive Systems: A Research Roadmap. Springer-Verlag, 1--26.Google Scholar
- D. S. Cruzes and T. Dyba. 2011. Recommended steps for thematic synthesis in software engineering. In Proceedings of the International Symposium on Empirical Software Engineering and Measurement. 275--284.Google Scholar
- R. de Lemos, H. Giese, H. A. Müller, M. Shaw, J. Andersson, M. Litoiu, B. Schmerl, G. Tamura, N. M. Villegas, T. Vogel, D. Weyns, L. Baresi, B. Becker, N. Bencomo, Y. Brun, B. Cukic, R. Desmarais, S. Dustdar, G. Engels, K. Geihs, K. Goschka, A. Gorla, V. Grassi, P. Inverardi, G. Karsai, J. Kramer, A. Lopes, J. Magee, S. Malek, S. Mankovskii, R. Mirandola, J. Mylopoulos, O. Nierstras, M. Pezze, C. Prehofer, W. Schafer, R. Schlichting, D. Smith, P. J. Sousa, L. Tahvildari, K. Wong, and J. Wuttke. 2013. Software Engineering for Self-Adaptive Systems: A Second Research Roadmap. Lecture Notes in Computer Science, Vol. 7475. Springer-Verlag, 1--32.Google Scholar
- S. Dustdar, C. Dorn, F. Li, L. Baresi, G. Cabri, C. Pautasso, and F. Zambonelli. 2010. A roadmap towards sustainable self-aware service systems. In Proceedings of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’10). ACM, New York, NY, 10--19.Google Scholar
- T. Dybå and T. Dingsøyr. 2008. Empirical studies of agile software development: A systematic review. Inform. Softw. Technol. 50, 9--10 (2008), 833--859.Google ScholarDigital Library
- T. Dybå, T. Dingsøyr, and G. Hanssen. 2007. Applying systematic reviews to diverse study types: An experience report. In Proceedings of the 1st International Symposium on Empirical Software Engineering and Measurement (ESEM’07). 225--234.Google Scholar
- European Commission (FP7). 2010. FP7: FET Proactive Initiative: Self-Awareness in Autonomic Systems (AWARENESS). Retrieved from: http://cordis.europa.eu/fp7/ict/fet-proactive/aware_en.html.Google Scholar
- R. B. France and B. Rumpe. 2007. Model-driven development of complex software: A research roadmap. In Proceedings of the Conference on the Future of Software Engineering (FOSE’07). 37--54.Google Scholar
- R. Frei and G. D. M. Serugendo. 2014. Self-Healing Software. In The Computer After Me, Jeremy Pitt (Ed.). Chapter 18, 71--82. https://doi.org/10.1142/9781783264186_0005Google Scholar
- A. Gambi, G. Toffetti, and M. Pezzè. 2013. Assurance of Self-adaptive Controllers for the Cloud. Springer Berlin, 311--339.Google Scholar
- D. Garlan and M. Shaw. 1993. An Introduction to Software Architecture. Series on Software Engineering and Knowledge Engineering, Vol. 2. World Scientific.Google Scholar
- H. Giese, T. Vogel, A. Diaconescu, S. Götz, N. Bencomo, K. Geihs, S. Kounev, and K. L. Bellman. 2017. State of the Art in Architectures for Self-aware Computing Systems. Springer International Publishing, 237--275.Google Scholar
- M. Gil, V. Pelechano, J. Fons, and M. Albert. 2016. Designing the human in the loop of self-adaptive systems. In Ubiquitous Computing and Ambient Intelligence, C. R. García, P. Caballero-Gil, M. Burmester, and A. Quesada-Arencibia (Eds.). Springer International Publishing, 437--449.Google Scholar
- T. Greenhalgh and R. Peacock. 2005. Effectiveness and efficiency of search methods in systematic reviews of complex evidence: Audit of primary sources. BMJ 331, 7524 (2005), 1064--1065.Google Scholar
- M. C. Huebscher and J. A. McCann. 2008. A survey of autonomic computing—Degrees, models, and applications. Comput. Surveys 40, 3, Article 7 (2008), 7:1--7:28 pages.Google Scholar
- A. Iosup, X. Zhu, A. Merchant, E. Kalyvianaki, M. Maggio, S. Spinner, T. Abdelzaher, O. Mengshoel, and S. Bouchenak. 2017. Self-awareness of Cloud Applications. Springer International Publishing, 575--610.Google Scholar
- JabRef Development Team. accessed: 2018. JabRef. Retrieved from: http://www.jabref.org.Google Scholar
- J. O. Kephart and D. M. Chess. 2003. The vision of autonomic computing. Computer 36, 1 (2003), 41--50.Google ScholarDigital Library
- B. A. Kitchenham, O. P. Brereton, D. Budgen, M. Turner, J. Bailey, and S. Linkman. 2009. Systematic literature reviews in software engineering—A systematic literature review. J. Inform. Softw. Technol. 51, 1 (2009), 7--15.Google ScholarDigital Library
- B. A. Kitchenham and S. Charters. 2007. Guidelines for Performing Systematic Literature Reviews in Software Engineering. Technical Report. Keele University, UK.Google Scholar
- S. Kounev, X. Zhu, J. O. Kephart, and M. Kwiatkowska. 2015. Model-driven algorithms and architectures for self-aware computing systems (Dagstuhl Seminar 15041). Dagstuhl Rep. 5, 1 (2015), 164--196.Google Scholar
- C. Krupitzer, F. M. Roth, S. VanSyckel, G. Schiele, and C. Becker. 2015. A survey on engineering approaches for self-adaptive systems. Pervas. Mob. Comput. 17, Part B (2015), 184--206.Google Scholar
- P. R. Lewis. 2017. Self-aware computing systems: From psychology to engineering. In Proceedings of the Design, Automation Test in Europe Conference Exhibition (DATE’17). 1044--1049.Google ScholarCross Ref
- P. R. Lewis, A. Chandra, S. Parsons, E. Robinson, K. Glette, R. Bahsoon, J. Torresen, and X. Yao. 2011. A survey of self-awareness and its application in computing systems. In Proceedings of the 5th IEEE Conference on Self-Adaptive and Self-Organizing Systems Workshops (SASOW’11). 102--107.Google Scholar
- S. Mahdavi-Hezavehi, V. H. S. Durelli, D. Weyns, and P. Avgeriou. 2017. A systematic literature review on methods that handle multiple quality attributes in architecture-based self-adaptive systems. Inform. Softw. Technol. 90 (2017), 1--26.Google ScholarCross Ref
- E. Riccobene, P. Scandurra, and F. Albani. 2011. A modeling and executable language for designing and prototyping service-oriented applications. In Proceedings of the 37th EUROMICRO Conference on Software Engineering and Advanced Applications. 4--11.Google Scholar
- M. Salehie and L. Tahvildari. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Autonom. Adapt. Syst. 4, 2 (2009), 1--42.Google ScholarDigital Library
- J. Schaumeier, J. Pitt, and G. Cabri. 2012. A tripartite analytic framework for characterising awareness and self-awareness in autonomic systems research. In Proceedings of the IEEE 6th International Conference on Self-Adaptive and Self-Organizing Systems Workshops. 157--162.Google Scholar
- G. Steinbauer and F. Wotawa. 2013. Model-Based Reasoning for Self-Adaptive Systems—Theory and Practice. Springer Berlin, 187--213.Google Scholar
- E. Vassev, M. Hinchey, and B. Gaudin. 2012. Knowledge representation for self-adaptive behavior. In Proceedings of the 5th International C* Conference on Computer Science and Software Engineering (C3S2E’12). ACM, 113--117.Google Scholar
- N. M. Villegas, H. A. Müller, G. Tamura, L. Duchien, and R. Casallas. 2011. A framework for evaluating quality-driven self-adaptive software systems. In Proceedings of 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’11). 80--89.Google Scholar
- D. Weyns, M. U. Iftikhar, S. Malek, and J. Andersson. 2012. Claims and supporting evidence for self-adaptive systems: A literature study. In Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’12). IEEE Press, 89--98.Google Scholar
- E. Yuan, N. Esfahani, and S. Malek. 2014. A systematic survey of self-protecting software systems. ACM Trans. Autonom. Adapt. Syst. 8, 4 (2014), 1--41.Google ScholarDigital Library
Index Terms
- Self-awareness in Software Engineering: A Systematic Literature Review
Recommendations
Self-adaptive software: Landscape and research challenges
Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-...
Motivation in Software Engineering: A systematic literature review
Objective: In this paper, we present a systematic literature review of motivation in Software Engineering. The objective of this review is to plot the landscape of current reported knowledge in terms of what motivates developers, what de-motivates them ...
A domain model for self-adaptive software systems
ECSA '17: Proceedings of the 11th European Conference on Software Architecture: Companion ProceedingsModern software systems operate in a continuously changing environment. To keep up with these changes, they can benefit from self-adaptation mechanisms. A number of modeling frameworks have been introduced to realize self-adaptive software systems. ...
Comments