Evaluation of software architectures under uncertainty: a systematic literature review

Research output: Contribution to journalArticlepeer-review

Authors

Colleges, School and Institutes

External organisations

  • University of Hawaii

Abstract

Context: Evaluating software architectures in uncertain environments raises new challenges, which require continuous approaches. We define continuous evaluation as multiple evaluations of the software architecture that begins at the early stages of the development and is periodically and repeatedly performed throughout the lifetime of the software system. Numerous approaches have been developed for continuous evaluation;to handle dynamics and uncertainties at run-time, over the past years, these approaches are still very few,limited, and lack maturity.

Objective: This review surveys efforts on architecture evaluation and provides a unified terminology and perspective on the subject.

Method: We conducted a systematic literature review to identify and analyse architecture evaluation approaches for uncertainty including continuous and non-continuous, covering work published between 1990-2020. We examined each approach and provided a classification framework for this field. We present an analysis of the results and provide insights regarding open challenges.

Major results and conclusions: The survey reveals that most of the existing architecture evaluation approaches typically lack an explicit linkage between design-time and run-time. Additionally, there is a general lack of systematic approaches on how continuous architecture evaluation can be realised or conducted. To remedy this lack, we present a set of necessary requirements for continuous evaluation and describe some examples.

Details

Original languageEnglish
Article number51
Number of pages50
JournalACM Transactions on Software Engineering and Methodology
Volume30
Issue number4
Publication statusPublished - 3 Aug 2021

Keywords

  • Continuous software architecture evaluation, design-time software architecture evaluation, run-time software architecture evaluation, uncertainty