Avoiding Architectural Degeneration: An Evaluation Process for Software Architecture

  • Authors:
  • Mikael Lindvall;Roseanne Tesoriero;Patricia Costa

  • Affiliations:
  • -;-;-

  • Venue:
  • METRICS '02 Proceedings of the 8th International Symposium on Software Metrics
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software systems undergo constant change causing thearchitecture of the system to degenerate over time.Redirecting development effort toward reversing systemdegeneration takes extra effort and delays the release of thenext version. The value of an improved architecture is clearto technical staff, but it is often difficult to convince uppermanagement that the extra effort is necessary. Improvedarchitecture is intangible and does not translate into visibleuser features that can be marketed. Due to a lack ofrepresentative metrics, technical staff has problemsarguing that stopping degeneration is indeed necessary andthat the effort will result in an improved architecture thatwill pay off. We believe that architectural metrics wouldgive technical staff better tools to argue their case. Thispaper defines and uses a set of architectural metrics andoutlines a process for analyzing architecture to supportsuch an argument.The paper reports on a case study from a projectwhere we restructured the architecture of an existingclient-server system written in Java while adding newfunctionality. The modules of the existing version of thesystem were "library-oriented" and had a disorganizedcommunication structure. The new architecture is based oncomponents and utilizes the mediator design pattern. Thegoal of the study is to evaluate the new architecture from amaintainability perspective. The paper describes ourevaluation process, the metrics used, and provides somepreliminary results. The architectural evaluation showsthat the components of the system are only loosely coupledto each other and that an architectural improvement hasoccurred from a maintenance perspective. The processused to evaluate the architecture is general and can bereused in other contexts.