Master Thesis MSTR-2023-115

BibliographyNeumann, Tim: Design and Implementation of a DSL for Authoring as Code in a Specification Tool for Automotive Diagnostics.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 115 (2023).
97 pages, english.
Abstract

Context. Domain specific languages (DSLs) are a powerful tool for allowing domain experts to efficiently describe specific circumstances of their domain in a computer-readable way. One domain where many domain experts are involved in the development of software intensive systems is the automotive industry. This is especially the case for the complex task of software development for electronic control units (ECUs). One part of that task is the specification of the diagnostics interface of those ECUs. To help with the modeling of these interfaces experts can use the authoring tool Vector CANdelaStudio. As part of the lifecycle of a CANdela document, domain experts might import various other documents, change properties, run validators and export the data to various other formats. Problem. Currently, these tasks can only be done manually via the graphical user interface or with a very limited, slow, and hard to use command line interface (CLI). However, lately customers want to do some of these actions in continuous integration pipelines. For this, a well-integrated solution is required with which the domain experts can concisely, comfortably, and easily describe the exact process steps that should be performed. Objective. The goal of this thesis is to design a DSL filling this authoring as code use-case by allowing to formally describe parts of the authoring process. It should be able to represent relevant actions in a way that is easy to understand and write for the domain experts. Additionally, the design must be evaluated for its suitability in that context. Finally, this thesis should also determine benefits and disadvantages of parser-based and projectional-editor-based approaches for implementing such a DSL. Method. First, we conduct a requirements engineering phase to elicit the requirements for the DSL and its editor. We then create a design for both the language and the editor founded on these requirements. Based on this design, we implement two language prototypes, one parser-based and one with a projectional editor. Finally, we evaluate the two prototypes with the help of a user study with 13 participants including a quasi-experiment and a questionnaire. Result. The result is a comprehensive requirements document with 194 requirements and a new DSL called CAIpl, defined by an extensive language and editor design specification with 275 language concepts. Additionally, there are two prototypes demonstrating the language. The first is parser-based and implemented using the language engineering framework Langium and the second is projectional-editor-based implemented using the language workbench JetBrains MPS. The evaluation shows that the design of the language and editor is well suited for the intended use case. Though the experiment does not show a statistically significant difference in the performance of the participants between the two prototypes, the evaluation still uncovers various benefits and disadvantages of the two approaches for the users. The main disadvantage of the MPS-based prototype is that the users have problems commanding the editor, whereas the Langium-based prototype has a suboptimal auto-completion. Based on the results of the user study and the experienced drawbacks of each approach for the language developer we give recommendations for which approach to use based on five key decision factors. Conclusion. The thesis shows that a DSL based on the developed design is a suitable solution for the given use case. Additionally, it demonstrates that, both presented approaches can be used for implementing such a DSL. It concludes that the choice of the implementation approach should be based on the specific circumstances of the project.

Department(s)University of Stuttgart, Institute of Software Technology, Software Quality and Architecture
Superviser(s)Becker, Prof. Steffen; Fuksa, Mario
Entry dateJuly 2, 2024
   Publ. Computer Science