Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Database Management Systems
Analyzing Java Software by Combining Metrics and Program Visualization
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
XQuery: a query language for XML
Proceedings of the 2003 ACM SIGMOD international conference on Management of data
Java Quality Assurance by Detecting Code Smells
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
High-Level Polymetric Views of Condensed Run-time Information
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Detection Strategies: Metrics-Based Rules for Detecting Design Flaws
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Clone Detection in Source Code by Frequent Itemset Techniques
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
IEEE Security and Privacy
Interactive, scalable, declarative program analysis: from prototype to implementation
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Squash: A Tool for Analyzing, Tuning and Refactoring Relational Database Applications
Applications of Declarative Programming and Knowledge Management
Declaratively querying and visualizing knowledge bases in XML
INAP'04/WLP'04 Proceedings of the 15th international conference on Applications of Declarative Programming and Knowledge Management, and 18th international conference on Workshop on Logic Programming
Hi-index | 0.00 |
In this paper, we analyse Java source code of embedded database applications by means of static code analysis. If the underlying database schema of such an application is subject to refactoring or database tuning, then the SQL statements in the embedding Java program need to be adapted correspondingly. This should be done mostly automatically, since changing software manually is error-prone and time consuming. For determining the SQL statements that access the database, we can either look at the database logfile, an audit file, or at the Java source code itself. Here, we show how to derive the strings of dynamic SQL statements directly from the Java source code. We do this without using a debugger or a virtual machine technique; instead, we trace the values of variables that contribute to a query string backwards to predict the values of contributing program variables as precisely as possible. We use PROLOG's declarative features and its backtracking mechanism for code analysis, refactoring, and tuning.