Static analysis of dynamic database usage in java systems

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

Abstract

Understanding the links between application programs and their database is useful in various contexts such as migrating information systems towards a new database platform, evolving the database schema, or assessing the overall system quality. In the case of Java systems, identifying which portion of the source code accesses which portion of the database may prove challenging. Indeed, Java programs typically access their database in a dynamic way. The queries they send to the database server are built at runtime, through String concatenations, or Object- Relational Mapping frameworks like Hibernate and JPA. This paper presents a static analysis approach to program-database links recovery, specifically designed for Java systems. The approach allows developers to automatically identify the source code locations accessing given database tables and columns. It focuses on the combined analysis of JDBC, Hibernate and JPA invocations. We report on the use of our approach to analyse three real-life Java systems.

Original languageEnglish
Title of host publicationAdvanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings
PublisherSpringer Verlag
Pages491-506
Number of pages16
Volume9694
ISBN (Print)9783319396958
DOIs
Publication statusPublished - 2016
Event28th International Conference on Advanced Information Systems Engineering, CAiSE 2016 - Ljubljana, Slovenia
Duration: 13 Jun 201617 Jun 2016

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume9694
ISSN (Print)03029743
ISSN (Electronic)16113349

Conference

Conference28th International Conference on Advanced Information Systems Engineering, CAiSE 2016
CountrySlovenia
CityLjubljana
Period13/06/1617/06/16

Fingerprint

Static analysis
Static Analysis
Java
Concatenation
Application programs
Schema
Tables
Information Systems
Information systems
Servers
Recovery
Server
Strings
Query

Keywords

  • Database access recovery
  • Java
  • ORM
  • Static analysis

Cite this

Meurice, L., Nagy, C., & Cleve, A. (2016). Static analysis of dynamic database usage in java systems. In Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings (Vol. 9694, pp. 491-506). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 9694). Springer Verlag. https://doi.org/10.1007/978-3-319-39696-530
Meurice, Loup ; Nagy, Csaba ; Cleve, Anthony. / Static analysis of dynamic database usage in java systems. Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings. Vol. 9694 Springer Verlag, 2016. pp. 491-506 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{c5f2e96a6a5b4a9d803a8271500091c7,
title = "Static analysis of dynamic database usage in java systems",
abstract = "Understanding the links between application programs and their database is useful in various contexts such as migrating information systems towards a new database platform, evolving the database schema, or assessing the overall system quality. In the case of Java systems, identifying which portion of the source code accesses which portion of the database may prove challenging. Indeed, Java programs typically access their database in a dynamic way. The queries they send to the database server are built at runtime, through String concatenations, or Object- Relational Mapping frameworks like Hibernate and JPA. This paper presents a static analysis approach to program-database links recovery, specifically designed for Java systems. The approach allows developers to automatically identify the source code locations accessing given database tables and columns. It focuses on the combined analysis of JDBC, Hibernate and JPA invocations. We report on the use of our approach to analyse three real-life Java systems.",
keywords = "Database access recovery, Java, ORM, Static analysis",
author = "Loup Meurice and Csaba Nagy and Anthony Cleve",
year = "2016",
doi = "10.1007/978-3-319-39696-530",
language = "English",
isbn = "9783319396958",
volume = "9694",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "491--506",
booktitle = "Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings",
address = "Germany",

}

Meurice, L, Nagy, C & Cleve, A 2016, Static analysis of dynamic database usage in java systems. in Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings. vol. 9694, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 9694, Springer Verlag, pp. 491-506, 28th International Conference on Advanced Information Systems Engineering, CAiSE 2016, Ljubljana, Slovenia, 13/06/16. https://doi.org/10.1007/978-3-319-39696-530

Static analysis of dynamic database usage in java systems. / Meurice, Loup; Nagy, Csaba; Cleve, Anthony.

Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings. Vol. 9694 Springer Verlag, 2016. p. 491-506 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 9694).

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

TY - GEN

T1 - Static analysis of dynamic database usage in java systems

AU - Meurice, Loup

AU - Nagy, Csaba

AU - Cleve, Anthony

PY - 2016

Y1 - 2016

N2 - Understanding the links between application programs and their database is useful in various contexts such as migrating information systems towards a new database platform, evolving the database schema, or assessing the overall system quality. In the case of Java systems, identifying which portion of the source code accesses which portion of the database may prove challenging. Indeed, Java programs typically access their database in a dynamic way. The queries they send to the database server are built at runtime, through String concatenations, or Object- Relational Mapping frameworks like Hibernate and JPA. This paper presents a static analysis approach to program-database links recovery, specifically designed for Java systems. The approach allows developers to automatically identify the source code locations accessing given database tables and columns. It focuses on the combined analysis of JDBC, Hibernate and JPA invocations. We report on the use of our approach to analyse three real-life Java systems.

AB - Understanding the links between application programs and their database is useful in various contexts such as migrating information systems towards a new database platform, evolving the database schema, or assessing the overall system quality. In the case of Java systems, identifying which portion of the source code accesses which portion of the database may prove challenging. Indeed, Java programs typically access their database in a dynamic way. The queries they send to the database server are built at runtime, through String concatenations, or Object- Relational Mapping frameworks like Hibernate and JPA. This paper presents a static analysis approach to program-database links recovery, specifically designed for Java systems. The approach allows developers to automatically identify the source code locations accessing given database tables and columns. It focuses on the combined analysis of JDBC, Hibernate and JPA invocations. We report on the use of our approach to analyse three real-life Java systems.

KW - Database access recovery

KW - Java

KW - ORM

KW - Static analysis

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

U2 - 10.1007/978-3-319-39696-530

DO - 10.1007/978-3-319-39696-530

M3 - Conference contribution

SN - 9783319396958

VL - 9694

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 491

EP - 506

BT - Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings

PB - Springer Verlag

ER -

Meurice L, Nagy C, Cleve A. Static analysis of dynamic database usage in java systems. In Advanced Information Systems Engineering - 28th International Conference, CAiSE 2016, Proceedings. Vol. 9694. Springer Verlag. 2016. p. 491-506. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)). https://doi.org/10.1007/978-3-319-39696-530