Architecture is a key factor to the success of the software product, but at least the state of art is not the state of practice. The connection between the completed system and the architecture has often been damaged after the original implementation. Reverse architecting is a method to recover the software architecture by analyzing the artifact. Since reverse architecting is not mature yet, the paper studies methods, tools, and major issues which hinder the person performing reverse architecting all together from knowing whether the reverse architecting method is repeatable and possible to apply on the different releases of the same product.