Stopping (and reversing) the architectural erosion of software systems. An industrial case study
During the evolution of a software system it becomes more and more difficult to understand the originally planned software architecture. An architectural erosion happens for various reasons during the development phases. In this paper we describe an approach to stop and reverse architectural degeneration of software systems. Using this method, the software architecture can even be improved, especially on the long term. Many projects suffer a loss of the initial software architecture over the project lifetime and end up with a nearly unmanageable code base. Symptoms are e.g. undocumented software architectures, unwanted or unknown dependencies, and an unknown number of changes. In the end such systems often end like the "big ball of mud" and the only solution is to throw them away and start again from scratch. In most cases however one can not afford to lose the investment in the current code base, therefore it is essential to keep an eye on the architecture and monitor it on a regular basis. Recently several tools have become available to accomplish and automate this task and we were able to apply it to a critical project. SICK AG is the worldwide leading provider of sensor solutions, especially laser scanners. We describe a real case study where we were able to stop and even reverse the architectural erosion.
Full Text: PDF