Reverse engineering is an imperfect process driven by imperfect knowledge. Most current reverse engineering tools do not adequately consider these inherent characteristics. They focus on representing precise, complete, and consistent knowledge and work towards enforcing predefined structures on the processes. According to our experience, this design paradigm seriously limits human-centred reverse engineering tools. An altogether different approach is to directly support the statement and subsequent resolution of imperfections. Doing so requires the imperfect knowledge be represented and imperfect procedures accommodated for. This paper argues that effective tools need to act as a manipulable medium for imperfect knowledge and, based on our experiences with a prototype, elaborate requirements for such tools.
Jens H. Jahnke, Andrew Walenstein