Stability in Software Engineering: Survey of the State-of-the-Art and Research Directions

Maria Salama, Rami Bahsoon, Patricia Lago

Research output: Contribution to JournalArticleAcademicpeer-review

Abstract

With the increasing dependence on software systems, their longevity is becoming a pressing need. Stability is envisioned as a primary property to achieve longevity. Stability has been defined and treated in many different ways in the literature. We conduct a systematic literature review to analyse the state-of-the-art related to stability as a software property. We formulate a taxonomy for characterising the notion, analyse the definitions found in the literature, and present research studies dealing with stability. Also, as architecture is one of the software artefacts with profound effects throughout the software lifecycle, we focus on software engineering practices for realising architectural stability. The analysis results show a wide variation in dimensions when dealing with stability. The state-of-the-art indicates the need for a shift towards a multi-dimensional concept that could cope with runtime dynamics and emerging software paradigms. More research efforts should be directed toward the identified gaps. The presented taxonomy and analysis of the literature aim to help the research community in consolidating the existing research efforts and deriving future developments.

Original languageEnglish
Article number8747478
Pages (from-to)1468-1510
JournalIEEE Transactions on Software Engineering
Volume47
Issue number7
DOIs
Publication statusE-pub ahead of print - 27 Jun 2019

Keywords

  • architectural stability
  • architecture design
  • architecture evaluation
  • Computer architecture
  • longevity
  • quality
  • software architecture
  • Software engineering
  • Software systems
  • stability
  • Stability criteria
  • Taxonomy

Fingerprint

Dive into the research topics of 'Stability in Software Engineering: Survey of the State-of-the-Art and Research Directions'. Together they form a unique fingerprint.

Cite this