A unified framework for studying architectural decay of software systems

Joshua Garcia · University of Southern California Digital Library · 2015

The effort and cost of software maintenance tends to dominate other activities in a software system's lifecycle. A critical aspect of maintenance is understanding and updating a software system's architecture. However, the maintenance of a system's architecture is exacerbated by the related phenomena of architectural drift and erosion?collectively called architectural decay?which are caused by careless, unintended addition, removal, and/or modification of architectural design decisions. These phenomena make the architecture more difficult to understand and maintain and, in more severe cases, can lead to errors that result in wasted effort or loss of time or money. To deal with architectural decay, an engineer must be able to obtain (1) the current architecture of her system and understand (2) the symptoms of decay that may occur in a software system and (3) the manner in which architectures tend to change and the decay it often causes. ? The high?level contribution of this dissertation is a unified framework for addressing different aspects of architectural decay in software systems. This framework includes a catalog comprising an expansive list of architectural smells (i.e., architectural?decay instances) and a means of identifying such smells in software architectures

Read the paper · More papers on PaperTik