Architectural Recovery – Georgia Tech – Software Development Process
And sometimes architectural drift and erosion get you so far away from the point where your software architecture should be that your architecture is completely degraded, at this point, you have two main options. The first option is to keep frantically tweaking the code, And this normally leads to disaster.
Why? Because you only make things worse, You don’t know exactly what you are changing and therefore you’re stabbing in the dark trying to fix your system.
The other possibility is that you can try to determine the software system architecture from its implementation-level artifacts.
So you try to derive what the architecture is and try to fix it once you have derived the architecture, And this is what is normally called architectural recovery.
Determining a software architecture from an implementation and fixing it, as you can imagine, is normally a more recommended way to go than the first solution.