Building reverse engineering tools using Lotus notes




Ma, Jun.

Journal Title

Journal ISSN

Volume Title



Reverse engineering (RE) tools can help people extract and understand high level abstractions of subject systems to facilitate software maintenance. However, many of these tools suffer adoption problems in industrial practice. Based on the assumption that industrial users are more likely to accept tools built on top of their current working platforms, the ACRE project (Adoption Centric Reverse Engineering) aims to attack the adoption problem by extending some commonly used tool platforms to implement RE features, rather than writing RE applications from scratch. As part of the ACRE project, my research aims to find a solution for building RE tools on top of a particular Commercial-Off-The-Shelf (COTS) host product-Lotus NotesIDomino and validating feasibility of this approach. My hypothesis is that it is practical to build tools on top of Lotus NotesIDomino to provide RE functionality and to exploit selected features of the host product, such as CSCW (Computer Supported Collaborative Work) features, to facilitate RE tasks. In this thesis, I discuss the benefits and drawbacks of building tools with Lotus NotesIDomino. I propose a solution-the ACRENotes Framework consisting of three layers: Data, Control and Presentation. This framework provides a methodology for using Lotus NotesIDomino to store, manipulate and render RE data. It also offers a Notes template and reusable libraries as a starter kit. Based on this framework, I implemented the prototype application CREST (Collaborative Reverse Engineering Support Tool), which provides selected collaborative RE features. By comparing CREST with Rigi, a traditional stand-alone RE research tool, I discuss CREST'S advantages and disadvantages. Given this prototype tool and the lessons learned, I believe that building RE tools on top of the COTS product Lotus Notes/Domino is feasible and practical.