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

Fingerprint

Application programs
Servers

Keywords

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

Cite this

Meurice, L., Nagy, C., & Cleve, A. (2016). Detecting and Preventing Program Inconsistencies under Database Schema Evolution. In Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016 (pp. 262-273). [7589806] Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/QRS.2016.38
Meurice, Loup ; Nagy, Csaba ; Cleve, Anthony. / Detecting and Preventing Program Inconsistencies under Database Schema Evolution. Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016. Institute of Electrical and Electronics Engineers Inc., 2016. pp. 262-273
@inproceedings{e3b2d876352f41dab1aad9c975dfb6ce,
title = "Detecting and Preventing Program Inconsistencies under Database Schema Evolution",
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.",
keywords = "database schema evolution, JDBC, ORM, program-database co-evolution, what-if approach",
author = "Loup Meurice and Csaba Nagy and Anthony Cleve",
year = "2016",
month = "10",
day = "12",
doi = "10.1109/QRS.2016.38",
language = "English",
pages = "262--273",
booktitle = "Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016",
publisher = "Institute of Electrical and Electronics Engineers Inc.",

}

Meurice, L, Nagy, C & Cleve, A 2016, Detecting and Preventing Program Inconsistencies under Database Schema Evolution. in Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016., 7589806, Institute of Electrical and Electronics Engineers Inc., pp. 262-273, 2nd IEEE International Conference on Software Quality, Reliability and Security, QRS 2016, Vienna, Austria, 1/08/16. https://doi.org/10.1109/QRS.2016.38

Detecting and Preventing Program Inconsistencies under Database Schema Evolution. / Meurice, Loup; Nagy, Csaba; Cleve, Anthony.

Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016. Institute of Electrical and Electronics Engineers Inc., 2016. p. 262-273 7589806.

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

TY - GEN

T1 - Detecting and Preventing Program Inconsistencies under Database Schema Evolution

AU - Meurice, Loup

AU - Nagy, Csaba

AU - Cleve, Anthony

PY - 2016/10/12

Y1 - 2016/10/12

N2 - 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.

AB - 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.

KW - database schema evolution

KW - JDBC

KW - ORM

KW - program-database co-evolution

KW - what-if approach

UR - http://www.scopus.com/inward/record.url?scp=84995503678&partnerID=8YFLogxK

U2 - 10.1109/QRS.2016.38

DO - 10.1109/QRS.2016.38

M3 - Conference contribution

SP - 262

EP - 273

BT - Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016

PB - Institute of Electrical and Electronics Engineers Inc.

ER -

Meurice L, Nagy C, Cleve A. Detecting and Preventing Program Inconsistencies under Database Schema Evolution. In Proceedings - 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016. Institute of Electrical and Electronics Engineers Inc. 2016. p. 262-273. 7589806 https://doi.org/10.1109/QRS.2016.38