Title: A Multi-dimensional Framework for Characterizing Domain Specific Languages
1A Multi-dimensional Framework for Characterizing
Domain Specific Languages
- Øystein Haugen
- Parastoo Mohagheghi
- SINTEF, UiO
- 21 October 2007
2Background
- MODELPLEX (MODELing solution for comPLEX software
systems) is an EU FP6 research project from 2006
to 2010. URL www.modelplex.org - In the model engineering work packages, we have a
task on language engineering with the objective
to establish guidelines for creating DSLs to
handle complex systems. - The ultimate success criterion for a DSL is
whether the usage of it produces good products.
It is also possible to harvest empirics from the
product design process. But is it possible to
give a fruitful evaluation of the DSL only by
assessing the language itself?
3The selected approach
- A structured questionnaire where the intention is
to characterize existing languages or guide
design of future languages. - Languages are characterized
- Separately,
- In combination with other languages but till at
one point in time, - Over time.
- The assessors will give a value between 0 (min)
and 10 (max) and up to 3 extra points to each
question, thus defining the relative importance
of the dimension in the domain in question. - The questionnaire was designed for evaluating
GPLs and relations to DSLs is discussed.
4Characteristics of one language at one point in
time
- Expressiveness is about how well a language
captures the concepts or reflects them, creates
identities or destroys them, or organize them in
layers. The MAGIC from OO languages. - Transparency is about the relation between the
language and the humans. - How easy is the language to use and to
understand? How distinct are constructs or how
much the model is similar to the system? Does
reasoning need the whole model? - Formalization is the relation between the
language and a semantic base (semantic model). A
reasonably precise semantics is the prerequisite
for a number of desirable properties such as
executability, collecting automated metrics and
model checking. - Is static analysis possible? Is the language
executable?
5Characteristics of several languages combined
- Integrability is about the integration of
languages that are used to model a system. - One approach to integration is to combine several
languages into one superlanguage. - To exchange information between the sub-models we
may define a common exchange format with its own
formal semantics. - The third apptoach is metamodel transformation
the metamodels are specified, as well as the
transformational relationships between them in a
suitable formal language. The advantage is the
possibility to combine and compare languages. The
metamodels are used to define a root metamodel. - Traceability When we describe systems where the
sub-systems are made in different languages, it
is practical to keep close control over
associations between entities in one sub-model
with entities in another. - Is it possible to define inter langauge
relations?
6Characteristics of language evolution over time
- Maintainability How is the language maintained?
- Is there a group of people or institutions that
take that responsibility? - Standardization bodies
- Language specific tools
- Extendability Does language have means to extend
it? Is it possible to restrict the language? - Scalability Scalability is the ability to work
well with small models as well as big and
gigantic models. Does the performance degrades in
case of execution?
7Question Min Max
Transparency
17. Syntax Counterintuitive syntax Different things are described differently. Similar things similarly. Intuitive symbols.
18. Descriptions vs. runtime Running system bears no resemblance to model Running system has a structure similar to that of the description
19. Locality Reasoning always need the whole model Understanding can be achieved for small units at the time
20. History dependence Execution can be understood only if the whole history is known Situation can be understood with a minimum of knowledge of earlier execution.
21. Educational prerequisite Unclear what knowledge is needed Well defined educational requirements. Otherwise intuitive.
22. Efficiency Not important It should be time-efficient to create or update a model
Formalization
23. Static analysis Not even syntax analysis possible Syntax rules are well-defined and so are the well-formedness rules
24. Executability Not executable Executable
8Characteristics of DSLs
- An important criterion is domain-appropriateness
A DSL must be powerful enough to capture the
major domain concepts and should match the mental
representation of the domain. - The language should be formal and accurate for
execution and code generation. - There may be a need for integration between
several DSLs used to model a system. - Any DSL with a diagrammatical syntax should have
proper layout, allowing easy distinction between
concepts. - Finally creating a DSL should be cost-effective.
They should increase productivity of users.
9Discussion
- The advantages
- The questionnaire can be applied at the early
stage of product development. - Other approaches such as extracting metrics of
the metamodel need establishing associations
between such metrics and language or model
characteristics, or the ease of working with a
language. Examples are metrics of size (number of
concepts, their relations or terminal nodes vs.
non-terminal nodes). - We can also evaluate characteristics of the
produced products such as LOC generated or time
needed to define the model. - The questions are defined based on experience and
literature review. They may be modified after
evaluation.
10Ideas for future work
- New questions
- Domain suitability Is the language adapted or
developed for the specific domain? - Determinism Does the language allows developing
several models of a system or a single one? - Views Are there several views of a system? Are
there relations between views? - UI Is the UI easy to use?
- Tools Does libraries and debuggers exist?
- Developing a framework that relates the questions
or possible metrics to different quality
characteristics. - Questions?