CAISE 2016 - Static Analysis of Dynamic Database Usage in Java Systems

Several authors recognized the usefulness of understanding the links between application programs and their database, in order to solve a variety of problems such as migrating an information system towards a new database platform, evolving the data structures, or assessing the quality of the overall system. Modern data-intensive applications tend to access their underlying database in an increasingly dynamic way. The queries that they send to the database server are usually built at runtime, through String concatenations, or Object-Relational Mapping frameworks such as Hibernate and JPA. This trend significantly complicates the task of identifying which portion of the source code accesses which portion of the database. In this paper, we present a static analysis approach to program-database links recovery, allowing developers to automatically identify the source code locations accessing given database tables and columns. The technique combines the analysis of native query JDBC invocations, Hibernate API calls and JPA-based access.

 

You can download the article here.

Authors
image

Loup Meurice . Ph.D. Student at the Faculty of Informatics of the University of Namur and member of the PReCISE research center.

Csaba Nagy . Postdoctoral Researcher at the University of Namur and member of the PReCISE research center.

Anthony Cleve . Professor at the Faculty of Informatics of the University of Namur and co-director of the PReCISE research center.

The Oscar system [HOMEPAGE]

Oscar is an open-source information system that is widely used in the healthcare industry in Canada. OSCAR is a so-called Electronic Medical Record (EMR) system whose primary purpose is to maintain electronic patient records and interface with a variety of other information systems used in the healthcare industry. OSCAR has been developed since 2001. The source code comprises approximately two million lines of code. OSCAR uses MySQL as the relational database engine and a combination of different ways to access it, including Hibernate object-relational middleware, JPA and dynamic SQL via JDBC. Downloading the Oscar system repository here.


The OpenMRS system [HOMEPAGE]

OpenMRS is a collaborative open source project to develop software to support the delivery of health care in developing countries (mainly in Africa). It was conceived as a general purpose electronic medical record system that could support the full range of medical treatments. It has been developed since 2006. OpenMRS uses a MySQL database accessed via Hibernate and dynamic SQL (JDBC). Downloading the OpenMRS system repository here.


The BroadLeafCommerce system [HOMEPAGE]

BroadleafCommerce is an open-source, e-commerce framework written entirely in Java on top of the Spring framework. It is targeted at facilitating the development of enterprise-class, commerce-driven sites by providing a robust data model, services and specialized tooling that take care of most of the heavy lifting work. BroadleafCommerce has been developed since 2008. It uses a relational database accessed via JPA. Downloading the BroadLeafCommerce system repository here.


Evaluation

You can find here the evaluation of our tool applied to those 3 systems

Contact Us

You can contact us at loup.meurice@unamur.be