以往的程式没有架构文件，就算有，也可能已和实际实现的系统有相当的差异，软体架构恢复也可能是为了要进行软体改造，所要求提出的程序。
作法.大部份软体架构恢复的作法会针对系统进行静态程序分析，若是针对物件导向系统，其中有大量的函数多型以及机制，就需要用来理解系统的行为、物件的交叉作用，以这些资料来重建架构。在恢复架构的过程中，会依系统动态分析的结果来决定将程式实体组合成架构元素的方式，并且考虑在中，出现交叉作用的模式、以及其类型（类别以及介面）。