Home > Research > Publications & Outputs > Self-awareness in Software Engineering

Electronic data

  • Self_Awareness_in_Software_Engineering__A_Systematic_Literature_Review

    Rights statement: © ACM, 2019. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM Transactions on Autonomous and Adaptive Systems, 14, 2, 2019 http://doi.acm.org/10.1145/3347269

    Accepted author manuscript, 1.03 MB, PDF document

    Available under license: CC BY-NC: Creative Commons Attribution-NonCommercial 4.0 International License

Links

Text available via DOI:

View graph of relations

Self-awareness in Software Engineering: A systematic literature review

Research output: Contribution to journalJournal article

Published
Close
Article number5
<mark>Journal publication date</mark>31/10/2019
<mark>Journal</mark>ACM Transactions on Autonomous and Adaptive Systems
Issue number2
Volume14
Number of pages42
Publication statusPublished
Original languageEnglish

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.

Bibliographic note

© ACM, 2019. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM Transactions on Autonomous and Adaptive Systems, 14, 2, 2019 http://doi.acm.org/10.1145/3347269