Nothing Special   »   [go: up one dir, main page]

skip to main content
tutorial

Self-awareness in Software Engineering: A Systematic Literature Review

Published: 17 October 2019 Publication History

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

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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
Accepted: 01 July 2019
Revised: 01 July 2019
Received: 01 May 2017
Published in TAAS Volume 14, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Adaptation processes
  2. research challenges
  3. self-adaptive software
  4. self-aware software
  5. self-properties
  6. software architecture
  7. survey
  8. systematic literature review

Qualifiers

  • Tutorial
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)64
  • Downloads (Last 6 weeks)7
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)The Role of Machine Learning in Software DevelopmentInternational Journal of Innovative Science and Research Technology (IJISRT)10.38124/ijisrt/IJISRT24MAY2519(3183-3185)Online publication date: 18-Jun-2024
  • (2024)The self-awareness of the forestFutures10.1016/j.futures.2024.103429163(103429)Online publication date: Oct-2024
  • (2023)Data subject rights as a research methodology: A systematic literature reviewJournal of Responsible Technology10.1016/j.jrt.2023.10007016(100070)Online publication date: Dec-2023
  • (2022)The vision of self-evolving computing systemsJournal of Integrated Design and Process Science10.3233/JID-220003(1-17)Online publication date: 2-May-2022
  • (2021)Self-Awareness as a Prerequisite for Self-Adaptivity in Computing Systems2021 IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion (ACSOS-C)10.1109/ACSOS-C52956.2021.00039(146-149)Online publication date: Sep-2021
  • (2021)A Framework of Software Project Scope Definition Elements: An ISM-DEMATEL ApproachIEEE Access10.1109/ACCESS.2021.30570999(26839-26870)Online publication date: 2021
  • (2020)Synergizing Domain Expertise With Self-Awareness in Software Systems: A Patternized Architecture GuidelineProceedings of the IEEE10.1109/JPROC.2020.2985293108:7(1094-1126)Online publication date: Jul-2020

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media