Developing Interacting Domain Specific Languages

Stc
Date: 2007-10-25

Time: 11:45

Room: BBL room 471

Speaker: Sander Mak

Title: Developing Interacting Domain Specific Languages

Abstract

Domain specific languages (DSLs) and model driven software development (MDSD) both aim at raising the abstraction level for programmers, thereby enhancing both quality and productivity in software development. Many approaches exist to create and use DSLs. Unfortunately, almost all of these DSL based solutions depend on having a single, monolithic model of the domain as basis. From a software engineering point of view, this approach does not scale very well.

In this thesis project, we explore a road less travelled. Instead of starting from a monolithic model, we propose to improve this practice by splitting up different concerns over different domain specific languages. Consequently, the models expressed in these languages must together form a complete application, and therefore need to interact. This cross-language modularity provides more possibilities for reuse and allows DSLs to be narrower and more focused. Examples of this idea are occasionally found in model driven software development approaches. However, the interaction is often implicitly handled and poorly formalized. We have studied these issues from a more traditional programming language and compiler based point of view.

A case study was performed, entailing the creation of two textual domain specific languages for technical domains (and the design for a third). The first language, DomainModel, is geared towards modeling persistent data models, and targets the existing Java Persistence Architecture framework. The second language, WebLayer, is concerned with creating a web-application around such a data model, and targets the JBoss Seam framework. This prototype forms the basis of our study on the interaction amongst those languages. Through this case study, we investigate whether such DSL interaction is feasible and practical, and what the design issues are.