Assisting the Comprehension of Legacy Transactions

  • Authors:
  • Suzanne M. Embury;Jianhua Shao

  • Affiliations:
  • -;-

  • Venue:
  • WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

One of the principal aims of data reverse engineering is to facilitate comprehension of the internal structure and behaviour of data-intensive systems by programmers. However, the majority of the research in this area has so far concentrated on the development of techniques to assist comprehension of the data structures used by such systems, and much less attention has been paid to the equally pressing problem of understanding the ways in which those structures are manipulated by the systems to solve business problems. In particular, there are few tools which can help a programmer to comprehend the functionality provided by a collection of database transactions. While some relevant techniques have been developed by the software reverse engineering community, in general their applicability to transactions is limited by the fact that they focus on program state alone. In-depth analysis of source code that manipulates data stored in a database (or other persistent store) must take into account the effects of that source code on {\em both} the program state and the database state.In this paper, we present an extension of the technique of symbolic execution that takes into account the specific semantics of database access commands. This extended symbolic execution engine can extract declarative representations of the data manipulations carried out by transactions, in the form of logical conditions over the database state rather procedural manipulation of the program state. The engine is then used to annotate transactions with automatically generated comments, to assist the transaction programmer in comprehending its behaviour.