Software Change Impact Analysis
Software Change Impact Analysis
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
Refactoring Databases: Evolutionary Database Design
Refactoring Databases: Evolutionary Database Design
Mining Version Histories to Guide Software Changes
IEEE Transactions on Software Engineering
Database application evolution: a transformational approach
Data & Knowledge Engineering - Special issue: ER 2003
Impact analysis of database schema changes
Proceedings of the 30th international conference on Software engineering
Graceful database schema evolution: the PRISM workbench
Proceedings of the VLDB Endowment
Collateral evolution of applications and databases
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Data-Intensive System Evolution
Computer
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Program analysis and transformation for data-intensive system evolution
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Update rewriting and integrity constraint maintenance in a schema evolution support system: PRISM++
Proceedings of the VLDB Endowment
Schema evolution analysis for embedded databases
ICDEW '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering Workshops
Relational schema evolution for program independency
CIT'04 Proceedings of the 7th international conference on Intelligent Information Technology
Hi-index | 0.00 |
Modern database applications are among the most widely used and complex software systems. They constantly evolve, responding to changes to data, database schemas, and code. It is challenging to manage these changes and ensure that everything co-evolves consistently. For example, when a database schema is modified, all the code that interacts with the database must be changed accordingly. Although database evolution and software evolution have been extensively studied in isolation, the co-evolution of schema and code has largely been unexplored. This paper presents the first comprehensive empirical analysis of the co-evolution of database schemas and code in ten popular large open-source database applications, totaling over 160K revisions. Our major findings include: 1) Database schemas evolve frequently during the application lifecycle, exhibiting a variety of change types with similar distributions across the studied applications; 2) Overall, schema changes induce significant code-level modifications, while certain change types have more impact on code than others; and 3) Co-change analyses can be viable to automate or assist with database application evolution. We have also observed that: 1) 80% of the schema changes happened in 20-30% of the tables, while nearly 40% of the tables did not change; and 2) Referential integrity constraints and stored procedures are rarely used in our studied subjects. We believe that our study reveals new insights into how database applications evolve and useful guidelines for designing assistive tools to aid their evolution.