Specifying and generating multilanguage software development environments
Software Engineering Journal
Object-oriented modeling and design
Object-oriented modeling and design
Software reverse engineering: a case study
Software—Practice & Experience
GENOA: a customizable language- and front-end independent code analyzer
ICSE '92 Proceedings of the 14th international conference on Software engineering
A Logic-Based Approach to Reverse Engineering Tools Production
IEEE Transactions on Software Engineering - Special issue on software maintenance
Domain-specific issues in reverse engineering
The REDO compendium
The REDO compendium
The entity-relationship model—toward a unified view of data
ACM Transactions on Database Systems (TODS) - Special issue: papers from the international conference on very large data bases: September 22–24, 1975, Framingham, MA
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Structural Redocumentation: A Case Study
IEEE Software
A Framework for Source Code Search Using Program Patterns
IEEE Transactions on Software Engineering
PQL: A Language for Specifying Abstract Program Views
Proceedings of the 5th European Software Engineering Conference
A Methodology for Translating a Conventional File System into an Entity-Relationship Model
Proceedings of the Fourth International Conference on Entity-Relationship Approach
The Translation of a Cobol Data Structure to an Entity-Relationship Type Conceptual Schema
Proceedings of the Fourth International Conference on Entity-Relationship Approach
Implementing relational views of programs
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Design of Flexible Static Program Analyzers with PQL
IEEE Transactions on Software Engineering
An Extensible System for Source Code Analysis
IEEE Transactions on Software Engineering
Applying AI to Software Renovation
Automated Software Engineering
A System for Generating Reverse Engineering Tools: A Case Study of Software Modularisation
Automated Software Engineering
Hi-index | 0.00 |
Reverse engineering is a knowledge-intensive process. We believe the involvement of a domain expert is critical in any but a trivial reverse engineering task. Our approach to reverse engineering assumes close cooperation between a domain expert and a knowledge-based reverse engineering assistant tool. Reverse engineering progresses in steps. At each step, a tool applies heuristic rules to extract design views, while a domain expert accepts/rejects decisions made by a tool and provides additional input to tune in the reverse engineering process. In our projects, we reverse engineer to enhance program understanding and to facilitate software reengineering. We apply reverse engineering to variety of sources, produce many types of design views, use many design view presentation methods and, finally, deal with a rich, evolving set of reverse engineering heuristics. Therefore, we designed a flexible reverse engineering tool that can be easily customized to a reverse engineering task in hand. In particular, our tool (1) can be customized to work with different source languages, (2) contains an end-user facility to specify reverse engineering heuristics, to inspect design views extracted from source programs and to specify filters to tune in the reverse engineering process, and (3) can export design views to other tools for further processing.