A Classification of Reverse Engineering Tools and Criteria for Their Evaluation and Selection


Dragan Bojić, Dušan Velašević




In the current trend of evolutionary software life cycles and the reuse of software components, great emphasis is put onto the reverse engineering and reengineering of existing software systems. This paper presents a classification of commercial tools that support reverse engineering and reengineering activities. The tools are classified according to the domains of their application: maintenance, reverse design, redocumentation, metrics analysis, restructuring, objectification, reusable component extraction, etc. Also presented is a general framework for the process of reverse engineering tool evaluation and selection by a potential user with emphasis on the criteria for their quantitative evaluation.