Detecting and Preventing Program Inconsistencies under Database Schema Evolution

Research output: Contribution in Book/Catalog/Report/Conference proceedingConference contribution

Abstract

Nowadays, 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 concatenation, or Object-Relational-Mapping (ORM) frameworks. This level of dynamicity significantly complicates the task of adapting application programs to database schema changes. Failing to correctly adapt programs to an evolving database schema results in program inconsistencies, which in turn may cause program failures. In this paper, we present a tool-supported approach, that allows developers to (1) analyze how the source code and database schema co-evolved in the past and (2) simulate a database schema change and automatically determine the set of source code locations that would be impacted by this change. Developers are then provided with recommendations about what they should modify at those source code locations in order to avoid inconsistencies. The approach has been designed to deal with Java systems that use dynamic data access frameworks such as JDBC, Hibernate and JPA. We motivate and evaluate the proposed approach, based on three real-life systems of different size and nature.

Original languageEnglish
Title of host publicationProceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages262-273
Number of pages12
ISBN (Electronic)9781509041275
DOIs
Publication statusPublished - 12 Oct 2016
Event2nd IEEE International Conference on Software Quality, Reliability and Security, QRS 2016 - Vienna, Austria
Duration: 1 Aug 20163 Aug 2016

Conference

Conference2nd IEEE International Conference on Software Quality, Reliability and Security, QRS 2016
CountryAustria
CityVienna
Period1/08/163/08/16

Keywords

  • database schema evolution
  • JDBC
  • ORM
  • program-database co-evolution
  • what-if approach

Fingerprint Dive into the research topics of 'Detecting and Preventing Program Inconsistencies under Database Schema Evolution'. Together they form a unique fingerprint.

Cite this