Communicating sequential processes
Communicating sequential processes
PROUST: Knowledge-Based Program Understanding
IEEE Transactions on Software Engineering
Tailoring the software process to project goals and environments
ICSE '87 Proceedings of the 9th international conference on Software Engineering
The semantics of programming languages: an elementary introduction using structural operational semantics
Computation of Probabilities for an Island-Driven Parser
IEEE Transactions on Pattern Analysis and Machine Intelligence
Understanding natural programs using proper decomposition
ICSE '91 Proceedings of the 13th international conference on Software engineering
Communication and Concurrency
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
IEEE Expert: Intelligent Systems and Their Applications
Plan analysis of programs
SCRUPLE: a reengineer's tool for source code search
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
Towards environment-retargetable parser generators
Advances in software engineering
Detecting similar Java classes using tree algorithms
Proceedings of the 2006 international workshop on Mining software repositories
Approximate graph clustering for program characterization
ACM Transactions on Architecture and Code Optimization (TACO) - HIPEAC Papers
Detecting similar software applications
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
Reverse engineering focuses on the development of tools and techniques for understanding unfamiliar code. The main objective in design recovery is to understand program behavior. In order to understand the behavioral aspects of a program, concepts of language semantics and flow analysis can be used. In this paper we consider a program representation method in which communication of a code fragment with the rest of the system represents its behavior. Code fragments are viewed as objects capable of using resources and updating variables. Program similarity between simple code fragments can be proven in terms of the structure and the information residing in the nodes of program description trees. Program description trees are labeled trees in which nodes represent either code fragments or actions encoding the communication of a code fragment. Recognition and control algorithms for plan instance localization and recognition are investigated in order to assist partial design recovery when no complete recognition is possible. Finally, we discuss the underlying " Goal-Question-Analysis-Action" strategy for modeling the design recovery.