Case study on applying WebDSL and IceDust in conjunction
Master Project of Jesse Tilro

Project description

In the past decade, researchers at the programming languages group have engineered and applied domain specific languages (DSLs) tailored to the domain of developing web applications with rich data models. These DSLs include WebDSL and IceDust. WebDSL can be viewed as a collection of linguistically integrated languages each dedicated to confined and specific aspects involved in web application development (e.g. specifying the data model, generating views, handling user input). IceDust on the other hand is a DSL for declaratively specifying a relational data model, featuring native multiplicities, bi-directional relations and support for high-level declaration of different computational strategies (e.g. calculate-on-read, calculate-on-write, and eventual calculation). The strengths of these languages compared to general purpose languages are mainly the domain-specific abstraction mechanisms and static consistency checks. Although IceDust can be compiled to WebDSL, the integration between the languages and the practicality of using them in conjunction for building real applications remain interesting topics for further research.

This project revolves around a case study on the application of WebDSL and IceDust for building a particular web-based application. The specific case concerns the financial departments of Delft University of Technology, which are currently in the process of improving their means of reporting and gaining insight in financial project administrations. The idea is to build a system that facilitates maintaining this administration and generating reports in a uniform manner across departments, taking into account different cash flows, levels of reporting and target audiences.

The first goal of the case study is to further verify the practical tractability of building real applications with the WebDSL and IceDust technologies. A possible contribution resulting from this might be a number of small improvements to the WebDSL language, IceDust language and/or their integration.

A second goal is researching the readability and comprehensibility of the involved domain specific languages, assessing the degree to which domain experts without a technical background or programming know-how are able to verify the functional correctness of an implemented specification. A possible extension might be to also consider these domain experts in the role of socalled end-user programmers and discover whether they are able to implement specifications themselves using the studied DSLs. An aimed contribution resulting from this would be a form of improvement to the linguistic design of the DSLs to better enable comprehension and/or implementation by non-programmers.

Visser, E. (2007). WebDSL: A Case Study in Domain-Specific Language Engineering. In Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007 (Vol. 5235, pp. 291–373). Braga, Portugal: Springer.

Harkes, D., Groenewegen, D. M., & Visser, E. (2016). IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs. In 30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy (Vol. 56). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik.

Harkes, D., & Visser, E. (2017). IceDust 2: Derived Bidirectional Relations and Calculation Strategy Composition. In 31st European Conference on Object-Oriented Programming, ECOOP 2017, June 19-23, 2017, Barcelona, Spain (Vol. 74). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik.

Case study on applying WebDSL and IceDust in conjunction

Student: Jesse Tilro
Supervisor(s): Eelco Visser, Danny Groenewegen