Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


A Systematic Mapping Study on Domain-Specific Languages

Work presented at the Seventh International Conference on Software Engineering and Advances - ICSEA 2012

Leandro Nascimento

on 13 December 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of A Systematic Mapping Study on Domain-Specific Languages

Leandro Nascimento
, Daniel Viana, Paulo Silveira Neto, Dhiego Martins,
Vinicius Garcia, Silvio Meira

A Systematic Mapping Study on Domain-Specific Languages
Related Work
(Bentley 1986) - Programming Pearl: Little Languages

(van Deursen et al. 2000) - Domain-Specific Languages: An Annotated Bibliography

(Mernik et al. 2005) - When and How to Develop Domain-Specific Languages

(Vasudevan and Tratt 2011) - Comparative Study of DSL Tools
Basic Concepts
Domain-specific languages (DSLs) are languages tailored to a specific application domain (Mernik et al. 2005)
A systematic mapping study allows the evidence in a domain to be plotted at a high level of granularity (Kitchenham 2007)
A software engineering systematic map is a defined method to build a classification scheme and structure a software engineering field of interest. The analysis of results focuses on frequencies of publications for categories within a predefined scheme (Petersen et al. 2008)
DSLs: The Main Goal
Examples of DSLs
Gains in expressiviness and ease of use
The Systematic Mapping Study Process
Definition of the research question
In which manner are Domain Specific Languages (DSLs) being created, used and maintained?
Research sub-questions
Q3. In which domains are these DSLs being used?
Research sub-questions
Q1. Which techniques, methods and/or processes are used while working with DSLs, i.e. creation, application, evolution and extension of DSLs?
Q2. Which DSLs have been created and are available for use or are described in some type of publication?
Q4. Which tools are used for the development and usage of DSLs and how such tools support those activities?
Conduct search
"domain-specific language"

"domain-specific modeling language"

"generative programming"
Automatic Search
: ACM Digital Library, IEEEXplore, SpringerLink, Science Direct, Scopus and Engineering Village (also known as El Compendex)
Manual search
: using DBLP, relevant journals/conferences have been searched. This includes the process of "snow-balling"
Screening of papers
Inclusion criteria
Books, papers, technical reports and 'grey' literature regarding DSL, DSML or generative programming. No date filter applied
While checking articles, at least one of the following questions must have 'yes' as an answer:
Is it a DSL or DSML?
Is it a technique, method/process DSLs/DSMLs?
Is it a tool for DSL/DSMLs?
Is it a philosophical paper that discusses concepts of DSLs, DSMLs
Exclusion criteria
Articles not written in English
Literature only available in the form of abstracts or Powerpoint presentations. Posters, short papers (less than 2 pages) are also excluded
Duplicated and/or incomplete studies
Filtering papers
Distribution of primary studies
Classification Scheme
Facet 3 - Domains
Facet 1 - Classes of research
Facet 2 - DSL Research Type
Main findings
Bubble Chart - Mapping between domains and different types of DSL research
Concluding remarks
Bentley J (1986) Programming pearls: little languages. Communications of the ACM 29:711–721.

van Deursen A, Klint P, Visser J (2000) Domain-specific languages: An Annotated Bibliography. ACM SIGPLAN Notices 35:26–36. doi: 10.1145/352029.352035

Kitchenham B (2007) Guidelines for performing systematic literature reviews in software engineering, version 2.3. Keele University EBSE Technical Report EBSE200701 45:65.

Mernik M, Heering J, Sloane A (2005) When and how to develop domain-specific languages. ACM Computing Surveys (CSUR) 37:316–344.

Petersen K, Feldt R, Mujtaba S, Mattsson M (2008) Systematic mapping studies in software engineering. 12th International Conference on Evaluation and Assessment in Software Engineering. pp 71–80

Vasudevan N, Tratt L (2011) Comparative Study of DSL Tools. Electronic Notes in Theoretical Computer Science 264:103–121. doi: 10.1016/j.entcs.2011.06.007
Control Systems
: "railway systems", "automotive systems", "naval", "lighting", "flight control"
Data intensive apps
: "query language", "sql-like language", "data processing", "data consistency"
Dynamic Systems
"context-aware systems", "ambient intelligence", "adaptive systems"
: "education"
Embedded systems
: "embedded systems"
Low-level software
: "device drivers", "operating system", "pipeline", "application scheduling"
: "networked environment", "sensor networks", "distributed systems", "routing"
Parallel computing
"high performance computing", "multi threading", "multi-core platform", "multitask systems"
Real-time systems
: "real time systems"
: "security policies", "access control", "cryptography"
: "ants simulation", "urban simulation", "space simulation"
: "test automation", "test code generation", "domain testing", "dsl testing"
Visual Language
"visual programming languages"
: "web services", "semantic web", "web apis", "rest", "SLA", "soa", "ws-bpel", "services mashup"
: "chemistry", "medical", "physics", "e-commerce", "engineering", "math", "soccer" "finance", "animation"
After cataloguing
1440 relevant studies
from an initial set of
our questions initially made could be answered:
. Several techniques, methods and/or processes identified, e.g.:
language factories, UML profiling, language-oriented programming

Q2 and Q3
. A
full mapping of DSLs
and their respective domains have been provided

. Several tools identified. Tools for using DSLs and learning to program:
Language workbenchs -
XText, MetaEdit+, Spoofax, MPS JetBrains

For future work:
Investigate more deeply the area of language workbenches through a Systematic Review
Full transcript