Automating Feature Requests for User-Driven Model Evolution at Runtime

Karl Kegel · 2023

As software projects progress, requirements can change and diverge between individual users. This happens in particular in consumer software. Subsequently, the maintenance of such software becomes a complex and resource-intensive task. However, system parts can be modified and individualized at runtime if domain-specific evolution and configuration tasks are transferred to the user. This reduces development efforts and contributes to sustainable and long-living software products called eternal software. In model-driven engineering, a target for this evolution is the domain's metamodel. The adaptive object model architecture style is a known approach, enabling variable metamodels at runtime. However, specifying transformations for evolving the metamodel can be challenging, particularly for end-users. Editor-based solutions are complex to develop and require multiple user interactions to achieve a desired change. We propose a new approach based on textual feature requests from community-driven software development to address this issue. We define a language for feature requests that target model evolution. We define this language on top of formal delta models. End-users can use the language to formulate model evolution on a high level. These requests are transformed into a sequence of low-level change operations, which are executed at runtime. A case study shows the approach's feasibility. We realize an issue tracker where users can evolve domain classes using textual requests at runtime. A user study evaluates usability.

Read the paper · More papers on PaperTik