@inproceedings{CerqueusCunhadeAlmeidaScherzinger, author = {Cerqueus, Thomas and Cunha de Almeida, Eduardo and Scherzinger, Stefanie}, title = {Safely Managing Data Variety in Big Data Software Development}, series = {2015 IEEE/ACM 1st International Workshop on Big Data Software Engineering, 23-23 May 2015, Florence, Italy}, booktitle = {2015 IEEE/ACM 1st International Workshop on Big Data Software Engineering, 23-23 May 2015, Florence, Italy}, publisher = {IEEE}, doi = {10.1109/BIGDSE.2015.9}, pages = {4 -- 10}, abstract = {We consider the task of building Big Data software systems, offered as software-as-a-service. These applications are commonly backed by NoSQL data stores that address the proverbial Vs of Big Data processing: NoSQL data stores can handle large volumes of data and many systems do not enforce a global schema, to account for structural variety in data. Thus, software engineers can design the data model on the go, a flexibility that is particularly crucial in agile software development. However, NoSQL data stores commonly do not yet account for the veracity of changes when it comes to changes in the structure of persisted data. Yet this is an inevitable consequence of agile software development. In most NoSQL-based application stacks, schema evolution is completely handled within the application code, usually involving object mapper libraries. Yet simple code refactorings, such as renaming a class attribute at the source code level, can cause data loss or runtime errors once the application has been deployed to production. We address this pain point by contributing type checking rules that we have implemented within an IDE plug in. Our plug in ControVol statically type checks the object mapper class declarations against the code release history. ControVol is thus capable of detecting common yet risky cases of mismatched data and schema, and can even suggest automatic fixes.}, language = {en} } @inproceedings{ScherzingerCerqueusCunhadeAlmeida, author = {Scherzinger, Stefanie and Cerqueus, Thomas and Cunha de Almeida, Eduardo}, title = {ControVol: A framework for controlled schema evolution in NoSQL application development}, series = {2015 IEEE 31st International Conference on Data Engineering, 13-17 April 2015, Seoul, Korea (South)}, booktitle = {2015 IEEE 31st International Conference on Data Engineering, 13-17 April 2015, Seoul, Korea (South)}, publisher = {IEEE}, isbn = {978-1-4799-7964-6}, doi = {10.1109/ICDE.2015.7113402}, pages = {1464 -- 1467}, abstract = {Building scalable web applications on top of NoSQL data stores is becoming common practice. Many of these data stores can easily be accessed programmatically, and do not enforce a schema. Software engineers can design the data model on the go, a flexibility that is crucial in agile software development. The typical tasks of database schema management are now handled within the application code, usually involving object mapper libraries. However, today's Integrated Development Environments (IDEs) lack the proper tool support when it comes to managing the combined evolution of the application code and of the schema. Yet simple refactorings such as renaming an attribute at the source code level can cause irretrievable data loss or runtime errors once the application is serving in production. In this demo, we present ControVol, a framework for controlled schema evolution in application development against NoSQL data stores. ControVol is integrated into the IDE and statically type checks object mapper class declarations against the schema evolution history, as recorded by the code repository. ControVol is capable of warning of common yet risky cases of mismatched data and schema. ControVol is further able to suggest quick fixes by which developers can have these issues automatically resolved.}, language = {en} }