Recognizing behavioral patterns atruntime using finite automata

  • Authors:
  • Lothar Wendehals;Alessandro Orso

  • Affiliations:
  • University of Paderborn, Germany;Georgia Institute of Technology

  • Venue:
  • Proceedings of the 2006 international workshop on Dynamic systems analysis
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

During reverse engineering, developers often need to understand the undocumented design of a software. In particular, recognizing design patterns in the software can provide reverse engineers with considerable insight on the software structure and its internal characteristics. Researchers have therefore proposed techniques based on static analysis to automatically recover design patterns in a program. Unfortunately, most design patterns comprise not only structural, but also significant behavioral aspects. Although static analysis is well suited for the recognition of structural aspects, it is typically limited and imprecise in analyzing behavior. To address this limitation, we present a new technique that complements our existing static analysis with a dynamic analysis, so as to perform a more accurate design-pattern recognition. The dynamic analysis is based on (1) transforming behavioral aspects of design patterns into finite automata, (2) identifying and instrumenting relevant method calls, and (3) monitoring relevant calls at runtime and matching them against the automata. The results of the dynamic analysis are then used to compute the likelihood of a pattern to be in the code. This paper describes our technique and presents a preliminary empirical study performed to assess the technique.