Abstract: |
Since the pioneer work by Ottenstein and Ottenstein, the notion of Program Dependency Graph (PDG) has attracted a wide variety of compelling applications in software engineering, e.g. program slicing, information flow security analysis, debugging, code-optimization, code-reuse, code-understanding, and many more. In order to exploit the power of dependency graph in solving problems related to relational database applications, Willmor et al. first proposed Database Oriented Program Dependency Graph (DOPDG), an extension of PDG by taking database statements and their dependencies further into consideration. However, the dependency information generated by the DOPDG construction algorithm is prone to imprecision due to its syntax-based computation, and therefore the approach may increase the susceptibility of false alarms in the above-mentioned application scenarios. Addressing this challenge, in this paper, the following two main research objectives are highlighted: (1) How to obtain more precise dependency information (hence more precise DOPDG)? and (2) How to compute them efficiently? To this aim, a data-centric based approach is proposed to compute precise dependency information by removing false alarms. To refine the database-database dependency, the syntax-based DOPDG construction is augmented by adding three extra nodes and edges (as per the condition-action execution sequence) with each node that represents the database statement. |