FG Praktische Informatik / Softwaresystemtechnik
Refine
Year of publication
Document Type
Way of publication
- Open Access (3)
Keywords
- Softwaretechnik (10)
- Konfigurationsmanagement (4)
- Produktlinien (4)
- software evolution (4)
- Applications (2)
- Capture (2)
- Clustering (2)
- Design Rationale (2)
- Research Proposal (2)
- Softwaremetriken (2)
Institute
This open access book constitutes the proceedings of the 26th International Conference on Fundamental Approaches to Software Engineering, FASE 2023, which was held during April 22-27, 2023, in Paris, France, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2023.
The 12 regular papers presented in this volume were carefully reviewed and selected from 50 submissions. The proceedings also contain 2 tool papers, 2 NIER papers, and 2 competition papers from the Test-Comp Competition. The papers deal with the foundations on which software engineering is built, including topics like software engineering as an engineering discipline, requirements engineering, software architectures, software quality, model-driven development, software processes, software evolution, AI-based software engineering, and the specification, design, and implementation of particular classes of systems, such as (self-)adaptive, collaborative, AI, embedded, distributed, mobile, pervasive, cyber-physical, or service-oriented applications.
Optimization problems in software engineering typically deal with structures as they occur in the design and maintenance of software systems. In model-driven optimization (MDO), domain-specific models are used to represent these structures while evolutionary algorithms are often used to solve optimization problems. However, designing appropriate models and evolutionary algorithms to represent and evolve structures is not always straightforward. Domain experts often need deep knowledge of how to configure an evolutionary algorithm. This makes the use of model-driven meta-heuristic search difficult and expensive. We present a graph-based framework for MDO that identifies and clarifies core concepts and relies on mutation operators to specify evolutionary change. This framework is intended to help domain experts develop and study evolutionary algorithms based on domain-specific models and operators. In addition, it can help in clarifying the critical factors for conducting reproducible experiments in MDO. Based on the framework, we are able to take a first step toward identifying and studying important properties of evolutionary operators in the context of MDO. As a showcase, we investigate the impact of soundness and completeness at the level of mutation operator sets on the effectiveness and efficiency of evolutionary algorithms.
Graphs are used as a universal data structure in various domains. Sets of graphs (and likewise graph morphisms) can be specified using, e.g., the graph logic Image 1 of Graph Conditions (GCs). The evaluation of a graph against such a GC results in a Boolean satisfaction judgement on whether the graph is specified by the GC. The graph logic Image 1 is known to be as expressive as first-order logic on graphs. However, since infinitely many graphs exist, there are also infinitely many evaluations for each given GC. To support GC validation, testing, debugging, and repair, a suitable synthesis procedure generating a complete compact overview of how a given GC may be evaluated for possibly varying graphs is called for.
In a previous paper, we generated such an overview for a given GC in the form of a complete finite set of diverse evaluations for varying associated graphs formally given by so called Evaluation Trees (ETs). Each of these ETs concretely describes how its associated graph is evaluated against the given GC by recording the executed evaluation steps. Moreover, these generated ETs and the given GC for which they are generated have the same underlying structure easing comprehensibility of the represented evaluation steps. The returned ETs are complete since each possible ET subsumes one of the returned ETs and diverse by not containing superfluous ETs subsuming smaller ETs.
We now extend and refine this approach still solving the ET synthesis problem by (a) extending the graph logic GL allowing for the specification of a minimal number of graph patterns to be contained in specified graphs, (b) provide means to scale the size of the generated ETs up to a user-provided bound allowing for the generation of not just minimal ETs, (c) record the order of evaluations steps also for operators where the evaluation but not the operator itself defines such an order, and (d) generate ETs recording combinations of reasons for (non-)satisfaction of GCs where only single reasons were recorded before.
In model-driven engineering, the adaptation of large software systems with dynamic structure is enabled by architectural runtime models. Such a model represents an abstract state of the system as a graph of interacting components. Every relevant change in the system is mirrored in the model and triggers an evaluation of model queries, which search the model for structural patterns that should be adapted. This thesis focuses on a type of runtime models where the expressiveness of the model and model queries is extended to capture past changes and their timing. These history-aware models and temporal queries enable more informed decision-making during adaptation, as they support the formulation of requirements on the evolution of the pattern that should be adapted. However, evaluating temporal queries during adaptation poses significant challenges. First, it implies the capability to specify and evaluate requirements on the structure, as well as the ordering and timing in which structural changes occur. Then, query answers have to reflect that the history-aware model represents the architecture of a system whose execution may be ongoing, and thus answers may depend on future changes. Finally, query evaluation needs to be adequately fast and memory-efficient despite the increasing size of the history---especially for models that are altered by numerous, rapid changes.
The thesis presents a query language and a querying approach for the specification and evaluation of temporal queries. These contributions aim to cope with the challenges of evaluating temporal queries at runtime, a prerequisite for history-aware architectural monitoring and adaptation which has not been systematically treated by prior model-based solutions. The distinguishing features of our contributions are: the specification of queries based on a temporal logic which encodes structural patterns as graphs; the provision of formally precise query answers which account for timing constraints and ongoing executions; the incremental evaluation which avoids the re-computation of query answers after each change; and the option to discard history that is no longer relevant to queries. The query evaluation searches the model for occurrences of a pattern whose evolution satisfies a temporal logic formula. Therefore, besides model-driven engineering, another related research community is runtime verification. The approach differs from prior logic-based runtime verification solutions by supporting the representation and querying of structure via graphs and graph queries, respectively, which is more efficient for queries with complex patterns. We present a prototypical implementation of the approach and measure its speed and memory consumption in monitoring and adaptation scenarios from two application domains, with executions of an increasing size. We assess scalability by a comparison to the state-of-the-art from both related research communities. The implementation yields promising results, which pave the way for sophisticated history-aware self-adaptation solutions and indicate that the approach constitutes a highly effective technique for runtime monitoring on an architectural level.…
Modeling tools are commonly adopted in classrooms. However, complex state-based behavioral models still pose a challenge for students to understand and validate, mostly because of the intricate semantics of these models. We investigated this challenge and developed dedicated tool support in the form of a validation framework based on the YAKINDU Statechart Tools. Our validation framework simulates environments that interact with the code generated from statecharts as a means to animate various open-ended scenarios and predefined test cases that challenge the students' models. This enables short and user-friendly feedback cycles, which lowers the barrier for students to learn state-based behavioral models. We designed the validation framework to be extensible and made it available as an open source project together with two example environments and complete teaching materials. We report on our experiences in two undergraduate modeling courses (approx. 100 students each). Our results are promising in the sense that we detected positive effects of tool adoption and a surprising lack thereof, which we discuss w.r.t. lessons learned and future work.
Managing rationale in software development projects can be a cumbersome task with a potentially low return on investment. Especially in the agile context, documentation is therefore very unpopular. Research has not yet properly addressed an agile documentation workflow. In this paper, the author presents an integrated approach to agile rationale management based on a highly-flexible modelling approach using domainspecific languages. It facilitates the complete documentation workflow from capture to reuse, partially automates it and offers various customisation opportunities, making it applicable to agile methods.
Documenting design decisions and their rationale (Design Rationale, DR) in software development projects is vital
for supporting the comprehension of the product, product quality, and future maintenance. Although an increasing number of research publications address this topic, systematic approaches and supporting DR tools are found very rarely in practice. In software engineering education, DR is usually not well covered in teaching. The lack of suitable decision documentation is mainly an issue in agile software development. In agile approaches, documentation is regarded as less important than working products. To explore possibilities for integrating decision documentation into Scrum processes for educational software development projects, we conducted a series of eight case studies. These were part of software lab courses in three universities, i.e., BTU Cottbus, PUT Poznan, University of Stuttgart, with about 400 participants in 82 project teams. We introduced additional process elements in Scrum and developed a lightweight capture technique to support the decision capture.
This paper describes the case study setup and corresponding implementation and, thus, an example approach of managing
rationale in Scrum. Additionally, it presents a data analysis of the students’ most relevant decisions documented throughout the case studies. We conclude the paper with a discussion on the observations we made during the case study executions and the applicability of the approach in educational software projects.
Requirements are identified and elaborated on the basis of stakeholders' decisions. The reasoning behind those decisions can be expressed as rationales. Systematic rationale management offers both short-term benefits, such as clearer requirements leading to fewer defects, and long-term benefits, such as simplified requirements evolution. However, little guidance exists for managing requirements rationales. This article presents guidelines to pragmatically capture, trace, maintain, and reuse such rationales. A list of questions augments the guidelines, improving their usability.
More than thirty years of research on the topic of design rationale (DR) have passed. However, as of today there are just some exceptional cases where DR are applied in industrial practise. Researchers analysed them for its nature, its structure, its quality, and for analyses to be performed on them. The results showed that DR have the potential to sustainably contribute to the product life cycle in terms of product design, product re-design, product testing, maintenance, and product quality. Hence, this paper presents a proposal to tackle the lack DR usage in documenting software architectures. We strive to promote the use of DR for designing software architectures. Therefore, as a complement to the numerous approaches to formalise the representation of DR, this paper is proposing to pay more attention on research how to capture rationale. In short, within this paper we introduce the topic of DR, related research and elaborate on the intended research on the topic of DR capture.
Over the last thirty years many research has been conducted to capture the ”how” and ”why” behind design decisions. This information is known as design rationales (DR). Approaches to capture, store, preserve, and use DR have emerged from research activities. However, as of today they only found exceptional application within industrial practice. Rationales have been analysed in respect to its nature, its structure, and its quality. Additionally, some researchers performed analyses on them. They found out that DR have the potential to sustainably contribute to design, re-design, testing, maintenance, and improving product quality over the whole product-life cycle. Within this paper a research proposal is presented striving to tackle the exceptional use of DR in software documentation. We want to promote the capture of DR by paying more attention on the questions ”What information has to be captured by rationales?”, ”How detailed should the captured information be?”, and ”How should rationale capture be integrated into the development process?”. It is the goal to promote the use of DR within the whole software development process. In short, within this paper we introduce the topic of DR, related research and elaborate on the intended research on the topic of DR capture.