Migrating business logic to an incremental computing DSL: a case study

To provide empirical evidence to what extent migration of business logic to an incremental computing language (ICL) is useful, we report on a case study on a learning management system. Our contribution is to analyze a real-life project, how migrating business logic to an ICL affects information system validatability, performance, and development effort. We find that the migrated code has better validatability; it is straightforward to establish that a program ‘does the right thing’. Moreover, the performance is better than the previous hand-written incremental computing solution. The effort spent on modeling business logic is reduced, but integrating that logic in the application and tuning performance takes considerable effort. Thus, the ICL separates the concerns of business logic and performance, but does not reduce effort.

[1]  Inderpal Singh Mumick,et al.  The Stanford Data Warehousing Project , 1995 .

[2]  Arie van Deursen,et al.  Little languages: little maintenance , 1998 .

[3]  Arie van Deursen,et al.  Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study , 1997 .

[4]  Ion Stoica,et al.  iOLAP: Managing Uncertainty for Efficient Incremental OLAP , 2016, SIGMOD Conference.

[5]  Miroslaw Staron,et al.  Adopting model driven software development in industry: a case study at two companies , 2006, MoDELS'06.

[6]  J. McGrath Methodology matters: doing research in the behavioral and social sciences , 1995 .

[7]  Milos Nikolic,et al.  DBToaster: Higher-order Delta Processing for Dynamic, Frequently Fresh Views , 2012, Proc. VLDB Endow..

[8]  Don S. Batory,et al.  Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study , 2000, ICSR.

[9]  Eelco Visser,et al.  The spoofax language workbench: rules for declarative specification of languages and IDEs , 2010, OOPSLA.

[10]  Yanhong A. Liu,et al.  Demand-driven incremental object queries , 2015, PPDP.

[11]  Magnus Carlsson Monads for incremental computing , 2002, ICFP '02.

[12]  Norman W. Paton,et al.  MOVIE: An incremental maintenance system for materialized object views , 2003, Data Knowl. Eng..

[13]  Eelco Visser,et al.  IceDust 2: Derived Bidirectional Relations and Calculation Strategy Composition , 2017, ECOOP.

[14]  Daniela Cruzes,et al.  What works for whom, where, when, and why? On the role of context in empirical software engineering , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[15]  Amir Shaikhha,et al.  DBToaster: higher-order delta processing for dynamic, frequently fresh views , 2012, The VLDB Journal.

[16]  Eelco Visser,et al.  WebDSL: a domain-specific language for dynamic web applications , 2008, OOPSLA Companion.

[17]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[18]  Elizabeth J. O'Neil,et al.  Object/relational mapping 2008: hibernate and the entity data model (edm) , 2008, SIGMOD Conference.

[19]  Hiroaki Nakamura Incremental computation of complex object queries , 2001, OOPSLA '01.

[20]  Camil Demetrescu,et al.  Reactive imperative programming with dataflow constraints , 2011, OOPSLA '11.

[21]  Matthias Felleisen,et al.  On the Expressive Power of Programming Languages , 1990, European Symposium on Programming.

[22]  Eelco Visser,et al.  DSL Engineering - Designing, Implementing and Using Domain-Specific Languages , 2013 .

[23]  Jan Vitek,et al.  R3: repeatability, reproducibility and rigor , 2012, SIGP.

[24]  Michael Isard,et al.  Differential Dataflow , 2013, CIDR.

[25]  Eelco Visser,et al.  Unifying and Generalizing Relations in Role-Based Data Modeling and Navigation , 2014, SLE.

[26]  Robert Harper,et al.  Self-adjusting computation , 2004, Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004..

[27]  Andreas Behrend,et al.  A case study in optimizing continuous queries using the magic update technique , 2014, SSDBM '14.

[28]  Michael Hicks,et al.  Adapton: composable, demand-driven incremental computation , 2014, PLDI.

[29]  Maria Kutar,et al.  Cognitive Dimensions of Notations: Design Tools for Cognitive Technology , 2001, Cognitive Technology.

[30]  Yannis Papakonstantinou,et al.  Utilizing IDs to Accelerate Incremental View Maintenance , 2015, SIGMOD Conference.

[31]  Kesheng Wu,et al.  Incremental View Maintenance over Array Data , 2017, SIGMOD Conference.

[32]  Yanhong A. Liu,et al.  Generating incremental implementations of object-set queries , 2008, GPCE '08.

[33]  Arie van Deursen,et al.  Using C language extensions for developing embedded software: a case study , 2015, OOPSLA.

[34]  K. T. Yeo,et al.  Critical failure factors in information system projects , 2002 .

[35]  R. Yin Validity and generalization in future case study evaluations , 2013 .

[36]  Miguel Goulão,et al.  Quality in use of domain-specific languages: a case study , 2011, PLATEAU '11.

[37]  Jarek Gryz,et al.  Stream Processing in a Relational Database: a Case Study , 2007, 11th International Database Engineering and Applications Symposium (IDEAS 2007).

[38]  Robert J. Walker,et al.  Implementing protocols via declarative event patterns , 2004, SIGSOFT '04/FSE-12.

[39]  Todd J. Green LogiQL: A Declarative Language for Enterprise Applications , 2015, PODS.

[40]  Robert Harper Self-adjusting computation , 2004, LICS 2004.

[41]  Sebastian Erdweg,et al.  IncA: A DSL for the definition of incremental program analyses , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[42]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[43]  Eelco Visser,et al.  IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs , 2016, ECOOP.

[44]  Todd L. Veldhuizen Incremental Maintenance for Leapfrog Triejoin , 2013, ArXiv.

[45]  Eelco Visser,et al.  The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge , 2013, SLE.

[46]  Carolyn Wong A Successful Software Development , 1984, IEEE Transactions on Software Engineering.

[47]  Don S. Batory,et al.  Achieving extensibility through product-lines and domain-specific languages: a case study , 2000, TSEM.

[48]  Qing Li,et al.  Design and selection of materialized views in a data warehousing environment: a case study , 1999, DOLAP '99.

[49]  Scott E. Donaldson,et al.  Successful software development 2nd edition , 2000 .