skip to main content
tutorial

Self-awareness in Software Engineering: A Systematic Literature Review

Published:17 October 2019Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. G. Blair, N. Bencomo, and R. B. France. 2009. Models@ run.time. Computer 42, 10 (2009), 22--27.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. Calinescu. 2013. Emerging Techniques for the Engineering of Self-Adaptive High-Integrity Software. Springer Berlin, 297--310.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. A. Gambi, G. Toffetti, and M. Pezzè. 2013. Assurance of Self-adaptive Controllers for the Cloud. Springer Berlin, 311--339.Google ScholarGoogle Scholar
  17. D. Garlan and M. Shaw. 1993. An Introduction to Software Architecture. Series on Software Engineering and Knowledge Engineering, Vol. 2. World Scientific.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. JabRef Development Team. accessed: 2018. JabRef. Retrieved from: http://www.jabref.org.Google ScholarGoogle Scholar
  24. J. O. Kephart and D. M. Chess. 2003. The vision of autonomic computing. Computer 36, 1 (2003), 41--50.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. B. A. Kitchenham and S. Charters. 2007. Guidelines for Performing Systematic Literature Reviews in Software Engineering. Technical Report. Keele University, UK.Google ScholarGoogle Scholar
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarCross RefCross Ref
  30. 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 ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarCross RefCross Ref
  32. 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 ScholarGoogle Scholar
  33. M. Salehie and L. Tahvildari. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Autonom. Adapt. Syst. 4, 2 (2009), 1--42.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle Scholar
  35. G. Steinbauer and F. Wotawa. 2013. Model-Based Reasoning for Self-Adaptive Systems—Theory and Practice. Springer Berlin, 187--213.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle Scholar
  37. 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 ScholarGoogle Scholar
  38. 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 ScholarGoogle Scholar
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Self-awareness in Software Engineering: A Systematic Literature Review

          Recommendations

          Reviews

          Andrea F Paramithiotti

          As researchers in the field of distributed software systems, the authors feel as though software self-awareness is becoming more and more fundamental to their work. On the one hand, they see a great number of scientific publications available; on the other, they feel these publications are not yet well framed within computer science as a whole. So, in response, they undertook an extensive survey of about 70 scientific papers to fill this gap. This literature review is systematic and thorough. The authors start from several broad, qualitative criteria: (i) how the studies have defined and characterised self-awareness, (ii) what inspired researchers when engineering self-awareness, (iii) what motivates researchers to use self-awareness, (iv) what software engineering practices and software paradigms have employed self-awareness, (v) how computational self-awareness is engineered to encode self-awareness properties within software systems, (vi) how the proposed self-aware systems are evaluated to quantify the accompanying benefits and overheads, and (vii) the real-world applications that are using self-awareness. From these criteria, they created a full-fledged review protocol composed of seven questions: RQ1. How to define and characterise self-awareness RQ2. What motivated the application of self-awareness in software engineering RQ3. What are the sources of inspiration for its engineering RQ4. In which software engineering practices and software paradigms is self-awareness employed RQ5. What are the approaches for engineering self-awareness RQ6. How are self-aware software systems evaluated RQ7. What are the working real-world applications adopting computational self- awareness Each paper is analyzed and in-depth, reporting where it stands in regard to each question. Tables and graphs present the results. By the end of their review, the authors have created a complete taxonomy of software self-awareness. The authors highlight a few shortcomings of the studies as a whole: a lack of proactive adaptation in the systems and algorithms studied; humans are still massively in the loop in supervision roles; unclear goal mapping by these software paradigms; and concerns about human privacy. On the other hand, they find the implications of these studies on future research deep, challenging, and rewarding. The authors also honestly point out some limitations of their own work: some relevant studies are missing, possible selection bias toward the most-cited papers, and possible inaccuracy in data extraction. The appendices report not only references to all studies cited and other relevant papers, but also the complete set of criteria, from review planning to data gathering to result presentation, which are the mark of a serious and comprehensive study that will undoubtedly benefit researchers in their future work.

          Access critical reviews of Computing literature here

          Become a reviewer for Computing Reviews.

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Autonomous and Adaptive Systems
            ACM Transactions on Autonomous and Adaptive Systems  Volume 14, Issue 2
            June 2019
            137 pages
            ISSN:1556-4665
            EISSN:1556-4703
            DOI:10.1145/3368391
            Issue’s Table of Contents

            Copyright © 2019 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 17 October 2019
            • Revised: 1 July 2019
            • Accepted: 1 July 2019
            • Received: 1 May 2017
            Published in taas Volume 14, Issue 2

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • tutorial
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format