Modernizing a legacy system is a costly process that requires deep understanding of the system architecture and its components. Without an understanding of the software architecture that will be rewritten, the entire process of reengineering can fail. For this reason, semi-automatic and automatic techniques for architecture recovery have been active focuses of research. However, there are still important improvements that need to be addressed on this field of research w.r.t. achieving a more accurate architecture recovery process. In our research, we have proposed ways to use visualization and clustering techniques applied together to provide a higher accuracy on the software architecture recovery process and co-change clusters analysis. We have conducted experimental studies in a industrial environment and publicly available software repository to empirically evaluate our investigations.