scispace - formally typeset
Search or ask a question
Proceedings ArticleDOI

On Designing Applied DSLs for Non-Programming Experts in Evolving Domains

01 Oct 2021-pp 227-238
TL;DR: In this paper, the authors propose an iteration of alternating activities in a human-centred design method that seeks to minimise the need for expensive implementation and user involvement for domain-specific languages.
Abstract: Domain-specific languages (DSLs) have emerged as a plausible way for non-programming experts to efficiently express their domain knowledge. Recent DSL research has taken a technical perspective on how and why to create DSLs, resulting in a wealth of innovative tools, frameworks and technical approaches. Less attention has been paid to the design process. Namely, how can it ensure that the created DSL realises the expected benefits? This paper seeks to answer this question when designing DSLs for highly specialised domains subject to resource constraints, an evolving application domain, and scarce user participation. We propose an iteration of alternating activities in a human-centred design method that seeks to minimise the need for expensive implementation and user involvement. The method moves from a low-validity exploration of highly diverse language designs towards a higher-validity exploration of more homogeneous designs. We give an in-depth case study of designing an actuarial DSL called MAL, or Management Action Language, which allows actuaries to model so-called future management actions in asset/liability projections in life insurance and pension companies. The proposed human-centred design method was synthesised from this case study, where we found it useful for iteratively identifying and removing usability problems during the design.
Citations
More filters
Journal ArticleDOI
TL;DR: This work surveys and analyzes the design and implementation of 57 JSON-style DSLs for visualization and identifies tensions throughout these areas, such as between formal and colloquial specifications, among types of users, and within the composition of languages.
Abstract: There has been substantial growth in the use of JSON-based grammars, as well as other standard data serialization languages, to create visualizations. Each of these grammars serves a purpose: some focus on particular computational tasks (such as animation), some are concerned with certain chart types (such as maps), and some target specific data domains (such as ML). Despite the prominence of this interface form, there has been little detailed analysis of the characteristics of these languages. In this study, we survey and analyze the design and implementation of 57 JSON-style DSLs for visualization. We analyze these languages supported by a collected corpus of examples for each DSL (consisting of 4395 instances) across a variety of axes organized into concerns related to domain, conceptual model, language relationships, affordances, and general practicalities. We identify tensions throughout these areas, such as between formal and colloquial specifications, among types of users, and within the composition of languages. Through this work, we seek to support language implementers by elucidating the choices, opportunities, and tradeoffs in visualization DSL design.

3 citations

Proceedings ArticleDOI
28 Sep 2022
TL;DR: This paper categorizes the key UXD aspects, primarily based on the experience in developing industrial DSMLs, that language engineers should consider during graphical DSML development and proposes definitions and guidelines for UX and user experience design (UXD) aspects in graphical DS MLs.
Abstract: Domain-specific modelling languages (DSMLs) help practitioners solve modelling challenges specific to various domains. As domains grow more complex and heterogeneous in nature, industrial practitioners often face challenges in the usability of graphical DSMLs. There is still a lack of guidelines that industrial language engineers should consider for improving the user experience (UX) of these practitioners. The overall topic of UX is vast and subjective, and general guidelines and definitions of UX are often overly generic or tied to specific technological spaces. To solve this challenge, we leverage existing design principles and standards of human-centred design and UX in general and propose definitions and guidelines for UX and user experience design (UXD) aspects in graphical DSMLs. In this paper, we categorize the key UXD aspects, primarily based on our experience in developing industrial DSMLs, that language engineers should consider during graphical DSML development. Ultimately, these UXD guidelines help to improve the general usability of industrial DSMLs and support language engineers in developing better DSMLs that are independent of graphical modelling tools and more widely accepted by their users.

1 citations

Proceedings ArticleDOI
23 Oct 2022
TL;DR: In this paper , the authors present a code generator for a DSL called the Management Action Language (MAL) as a form of variability management, which allows actuaries to easily create company-specific models.
Abstract: Danish insurance and pension companies are required by financial regulations to report certain financial quantities to prove that they are solvent and managed responsibly. Parts of these quantities are computed the same way for all companies, whereas so-called management actions, describing, e.g., surplus sharing, vary between companies. Hence it is desirable to have a flexible calculation platform that allows actuaries to easily create company-specific models, which are also computationally efficient. In this paper, we present our work with implementing a code generator for a DSL called the Management Action Language (MAL) as a form of variability management. While one of the goals of MAL is to generate efficient code from an actuary's specification, it is non-trivial how to produce such code. We identify four reoccurring patterns in the models created by actuaries as subjects to optimisations. We describe our process for implementing a code-generator by a) identifying four specification patterns (inheritance, union types, type filtering, and numerical maps) that are pervasive in these calculations, and b) describing how to generate efficient C# from MAL for these patterns. We evaluate the code-generator by benchmarking it against handwritten production code and show an approximate 1.3× speedup in a production environment. This evaluation demonstrates that, with MAL, an individual pension company may reuse the general calculation platform and all of the optimisations built into MAL's code generator when modelling the company's business rules.
Proceedings ArticleDOI
18 Oct 2021
TL;DR: In this article, the authors investigate the possibility of accommodating domain specific languages by conducting a workshop with 11 prospective users of a domain-specific language named MAL for the pension industry, and they hypothesise that co-design workshops are a viable approach for DSLs in a similar situation.
Abstract: Domain-specific languages seek to provide domain guarantees that eliminate many errors allowed by general-purpose languages. Still, a domain-specific language requires additional quality assurance measures to ensure that specifications behave as intended by the users. However, some domains may have specific quality assurance measures (e.g., proofs, experiments, or case studies) with little tradition of using quality assurance measures customary to software engineering. We investigate the possibility of accommodating such domains by conducting a workshop with 11 prospective users of a domain-specific language named MAL for the pension industry. The workshop emphasised the need for supporting actuaries with new analytical tools for quality assurance and resulted in three designs: quantity monitors let users identify outlier behaviour, fragment debugging lets users debug with limited evaluative power, and debugging spreadsheets let users visualise, analyse, and remodel concrete calculations with an established domain tool. Based on our experiences, we hypothesise that co-design workshops are a viable approach for DSLs in a similar situation.
References
More filters
Journal ArticleDOI
TL;DR: It is suggested that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method.
Abstract: This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of a familiar programming exercises.

11,419 citations

Journal ArticleDOI
TL;DR: The authors examines five common misunderstandings about case-study research: theoretical knowledge is more valuable than practical knowledge, one cannot generalize from a single case, therefore, the single-case study cannot contribute to scientific development, the case study is most useful for generating hypotheses, whereas other methods are more suitable for hypotheses testing and theory building, case study contains a bias toward verification, and it is often difficult to summarize specific case studies.
Abstract: This article examines five common misunderstandings about case-study research: (a) theoretical knowledge is more valuable than practical knowledge; (b) one cannot generalize from a single case, therefore, the single-case study cannot contribute to scientific development; (c) the case study is most useful for generating hypotheses, whereas other methods are more suitable for hypotheses testing and theory building; (d) the case study contains a bias toward verification; and (e) it is often difficult to summarize specific case studies. This article explains and corrects these misunderstandings one by one and concludes with the Kuhnian insight that a scientific discipline without a large number of thoroughly executed case studies is a discipline without systematic production of exemplars, and a discipline without exemplars is an ineffective one. Social science may be strengthened by the execution of a greater number of good case studies.

8,876 citations

Journal ArticleDOI
TL;DR: In this article, the authors identify patterns in the decision, analysis, design, and implementation phases of DSL development and discuss domain analysis tools and language development systems that may help to speed up DSL development.
Abstract: Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage.Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems.

1,778 citations

Proceedings ArticleDOI
01 May 1993
TL;DR: It is found that the detection of usability problems as a function of number of users tested or heuristic evaluators employed is well modeled as a Poisson process, which can be used to plan the amount of evaluation required to achieve desired levels of thoroughness or benefits.
Abstract: For 11 studies, we find that the detection of usability problems as a function of number of users tested or heuristic evaluators employed is well modeled as a Poisson process. The model can be used to plan the amount of evaluation required to achieve desired levels of thoroughness or benefits. Results of early tests can provide estimates of the number of problems left to be found and the number of additional evaluations needed to find a given fraction. With quantitative evaluation costs and detection values, the model can estimate the numbers of evaluations at which optimal cost/benefit ratios are obtained and at which marginal utility vanishes. For a “medium” example, we estimate that 16 evaluations would be worth their cost, with maximum benefit/cost ratio at four.

1,715 citations

Book
01 Jan 2013
Abstract: It's not surprisingly when entering this site to get the book. One of the popular books now is the the design of everyday things revised and expanded edition. You may be confused because you can't find the book in the book store around your city. Commonly, the popular book will be sold quickly. And when you have found the store to buy the book, it will be so hurt when you run out of it. This is why, searching for this popular book in this website will give you benefit. You will not run out of this book.

1,530 citations