Controlling Software Architecture Erosion: A Survey

Lakshitha Ramesh De Silva, Dharini Balasubramaniam

Research output: Contribution to journalArticlepeer-review

115 Citations (Scopus)

Abstract

Software architectures capture the most significant properties and design constraints of software systems. Thus, modifications to a system that violate its architectural principles can degrade system performance and shorten its useful lifetime. As the potential frequency and scale of software adaptations increase to meet rapidly changing requirements and business conditions, controlling such architecture erosion becomes an important concern for software architects and developers. This paper presents a survey of techniques and technologies that have been proposed over the years either to prevent architecture erosion or to detect and restore architectures that have been eroded. These approaches, which include tools, techniques and processes, are primarily classified into three generic categories that attempt to minimise, prevent and repair architecture erosion. Within these broad categories, each approach is further broken down reflecting the high-level strategies adopted to tackle erosion. These are: process-oriented architecture conformance, architecture evolution management, architecture design enforcement, architecture to implementation linkage, self-adaptation and architecture restoration techniques consisting of recovery, discovery and reconciliation. Some of these strategies contain sub-categories under which survey results are presented.

We discuss the merits and weaknesses of each strategy and argue that no single strategy can address the problem of erosion. Further, we explore the possibility of combining strategies and present a case for further work in developing a holistic framework for controlling architecture erosion.
Original languageEnglish
Pages (from-to)132–151
JournalJournal of Systems and Software
Volume85
Issue number1
DOIs
Publication statusPublished - Jan 2012

Fingerprint

Dive into the research topics of 'Controlling Software Architecture Erosion: A Survey'. Together they form a unique fingerprint.

Cite this