{"title":"Assisting the comprehension of legacy transactions","authors":"Suzanne M. Embury, J. Shao","doi":"10.1109/WCRE.2001.957841","DOIUrl":null,"url":null,"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 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.","PeriodicalId":150878,"journal":{"name":"Proceedings Eighth Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-10-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Eighth Working Conference on Reverse Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WCRE.2001.957841","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10
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 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.