Fuksa, M. (2022). ViMoTest: a low code approach to specify ViewModel-based tests with a projectional DSL using JetBrains MPS. Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings
, 189–194. https://doi.org/10.1145/3550356.3558513
AbstractAutomated testing for software is a fundamental part of achieving high-quality software systems. In particular, the user interface (UI) is one suitable abstraction layer for automated tests. However, software test developers usually spend considerable effort writing automated UI tests in a maintainable way. Therefore, this work proposes a concept to design a low code approach using the ViewModel architectural pattern as an abstraction layer to develop automated UI tests. We use the Design Science Research method to design a projectional DSL as an artifact to refine our approach. As planned results, we aim to (1) develop a projectional DSL to specify ViewModel-based tests, (2) apply this novel approach in an industrial and an open-source project, and (3) perform empirical studies to get feedback for improving this approach w.r.t. creation, maintenance, and understandability of test suites. We conclude that a low code approach using a projectional DSL to specify automated tests based on ViewModels could have several benefits compared to similar approaches.
Fuksa, M., & Becker, S. (2021). Mini Programming Worlds: Teaching MDSD via the Hamster Simulator. 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)
, 696–701. https://doi.org/10.1109/MODELS-C53483.2021.00113
AbstractModel-driven software development (MDSD) aims at the total or partial generation of software systems from instances of Domain-specific Languages (DSLs). However, teaching MDSD often suffers from small, comprehensible systems which can be understood easily but are not entirely artificial. In teaching programming, so-called mini programming worlds (MPWs) play the role of small, easy-to-comprehend but still realistic systems. In teaching MDSD, on the contrary, toy examples are often used based on well-known examples like UML2RDBMS. In this paper, we present our approach to transferring the idea of using MPWs to teach MDSD. We have developed a full-fledged MDSD project to model new MPWs and generate code for them in the two supported programming languages C++ and Java. We will use both simulators in our introductory programming courses.
AbstractTeaching programming can be performed in many different ways, such as focusing on object-oriented concepts in first place combined with mini-worlds like the hamster simulator. At the University of Stuttgart, such a solution is provided with the focus on teaching Java. But now the need to teach C++ in a similar way is also intended. To solve this necessity, a model-driven solution is proposed to model mini-worlds and generate code into multiple programming languages like Java or C++. The proposed solution covers requirements based on the existing approaches relevant for teaching programming at the University of Stuttgart at the Institute of Software Engineering. Based on these requirements, a modeling environment is designed which provides a framework part and a concrete mini-world simulator part. Technically, the modeling environment is based on the Eclipse platform and makes use of research related tooling for input modeling, model-to-model transformations and code generation. Generated simulators are based on a modular architecture, which enables high automation for tests and independence of concrete third-party frameworks. Further, the interface provided for students is based on object-oriented principles and contract-based design, including formalized pre- and postconditions defined for commands. By providing a metamodel to define mini-worlds in a generic way, the proposed solution can be adapted for modeling of different mini-worlds. In addition, a code generator is developed to transform adjusted intermediary models to concrete source code. By achieving that most complexity is handled by model-to-model transformations, this allows also to adapt the solution for further programming languages. Finally, different aspects for the proposed solution are evaluated. On the one hand, the combination of object-oriented teaching concepts with model-driven software development is evaluated. On the other hand, the use of existing ideas such as the generation of graph transformations at Fujaba or technologies such as Henshin is discussed. The functionality of the solution is shown by adapting it to the Java and C++ programming languages. Furthermore, another mini-world is adapted in addition to the hamster simulator with Kara the ladybug.