2023 | |
13.
|
Christian Kröher, Lea Kristin Gerling and Klaus Schmid
(2023):
Control Action Types – Patterns of Applied Control for Self-adaptive Systems
In:
18th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
IEEE.
Best Paper Award
abstract
A Self-adaptive System (SaS) modifies its domain functionality according to changes in its environment autonomously. Distributed control and central control represent two complementary paradigms to establish this capability. The selection of one of them leads to significant trade-offs regarding certain software qualities when designing a SaS. A promising approach to minimize these trade-offs is an integration, which combines the individual benefits to achieve the best of both paradigms. However, establishing such a multi-paradigm control requires comprehensive knowledge about control options and their interactions, which is hardly available.
In this paper, we present patterns for integrating distributed and central control. We introduce them by a schema of Control Action Types (CATs). Each CAT describes a unique type of interaction between a central controller and a distributed controlled SaS to achieve a desired adaptation. Further, we identify involved trade-offs between these CATs aiming at a systematic discussion of the range of multi-paradigm control for a SaS.
|
12.
|
Christian Kröher, Moritz Flöter, Lea Kristin Gerling and Klaus Schmid
(2023):
Incremental Software Product Line Verification - A Performance Analysis with Dead Variable Code
In:
Software Engineering 2023
vol. P-332.
pp. 79-80.
Gesellschaft für Informatik e.V..
Bonn, Germany.
abstract
In this work, we summarize our journal paper published in Empirical Software Engineering(EMSE) in 2022 [Kr22]. Verification approaches for Software Product Lines (SPL) aim at detectingvariability-related defects and inconsistencies. In general, these analyses take a significant amountof time to provide complete results for an entire, complex SPL. If the SPL evolves, these resultspotentially become invalid, which requires a time-consuming re-verification of the entire SPL foreach increment.
However, in previous work we showed that variability-related changes occur rather infrequently andtypically only affect small parts of a SPL. In this paper, we utilize this observation and presentan incremental dead variable code analysis as an example for incremental SPL verification, whichachieves significant performance improvements. It explicitly considers changes and partially updatesits previous results by re-verifying changed artifacts only. We apply this approach to the Linuxkernel demonstrating that our fastest incremental strategy takes only 3.20 seconds or less for most ofthe changes, while the non-incremental approach takes 1,020 seconds in median. We also discussthe impact of different variants of our strategy on the overall performance, providing insights intooptimizations that are worthwhile.
|
11.
|
Christian Kröher, Lea Kristin Gerling and Klaus Schmid
(2023):
Comparing the Intensity of Variability Changes in Software Product Line Evolution
In: Journal of Systems and Software, 203.
abstract
The evolution of a Software Product Line (SPL) typically affects multiple kinds of artifacts. The intensity (frequency and amount) in which developers change variability information in them was unknown, until we introduced a fine-grained approach for the variability-centric extraction and analysis of changes to code, build, and variability model artifacts. Its application to the commits of the Linux kernel revealed that changes to variability information occur infrequently and only affect small parts of the analyzed artifacts. Further, we outlined how these results may improve certain analysis and verification tasks during SPL evolution. However, the sole analysis of a single SPL did not allow for generic conclusions.
In this paper, we extend our previous work to a comparative evolution analysis of four SPLs. We provide a detailed analysis of the individual intensities of variability changes by applying our updated approach to each SPL. A comparison of these results confirms our findings of infrequent and small changes to variability information in our previous study. However, differences in the details of these changes exist, which we cannot explain solely by the characteristics of the SPLs or their development processes. We discuss their implications on supporting SPL evolution and on our previous optimization proposals.
|
2022 | |
10.
|
Christian Kröher, Lea Kristin Gerling and Klaus Schmid
(2022):
Combining Distributed and Central Control for Self-Adaptive Systems of Systems
In:
42nd International Conference on Distributed Computing Systems Workshops (ICDCSW)
pp. 109-112.
IEEE.
1st DISCOLI Workshop on DIStributed COLlective Intelligence
abstract
Distributed and central control are two complementary paradigms to establish self-adaptation in software systems. Both approaches have their individual benefits and drawbacks, which lead to significant trade-offs regarding certain software qualities when designing such systems. The significance of these trade-offs even increases the more complex the target system becomes. In this paper, we present our work-in-progress towards an integrated control approach, which aims at providing the best of both control paradigms. We present the basic concepts of this multi-paradigm approach and outline its inherent support for complex system hierarchies. Further, we illustrate the vision of our approach using application scenarios from the smart energy grid as an example for self-adaptive systems of systems.
|
9.
|
Adrian Hoff, Lea Kristin Gerling and Christoph Seidl
(2022):
Utilizing Software Architecture Recovery to Explore Large-Scale Software Systems in Virtual Reality
In:
2022 Working Conference on Software Visualization (VISSOFT)
pp. 1-12.
IEEE.
The PDF version of this paper available on this website is a prerpint of the final conference copy
abstract
Exploring an unfamiliar large-scale software system is challenging, especially when based solely on source code. While software visualizations help in gaining an overview of a system, they generally neglect architecture knowledge in their representations, e.g., by arranging elements along package structures rather than functional components or locking users in a specific abstraction level only slightly above the source code. In this paper, we introduce an automated approach for software architecture recovery and use its results in an immersive 3D virtual reality software visualization to aid accessing and relating architecture knowledge. We further provide a semantic zoom that allows a user to access and relate information both horizontally on the same abstraction level, e.g., by following method calls, and vertically across different abstraction levels, e.g., from a member to its parent class. We evaluate our contribution in a controlled experiment contrasting the usefulness regarding software exploration and comprehension of our concepts with those of the established CityVR visualization and the Eclipse IDE.
|
8.
|
Christian Kröher, Moritz Flöter, Lea Kristin Gerling and Klaus Schmid
(2022):
Incremental Software Product Line Verification , A Performance Analysis with Dead Variable Code
In:
26th ACM International Systems and Software Product Line Conference
vol. A.
pp. 1.
ACM.
abstract
This extended abstract summarizes our eponymous journal paper [1] published first in Empirical Software Engineering (EMSE).
|
7.
|
Christian Kröher, Moritz Flöter, Lea Kristin Gerling and Klaus Schmid
(2022):
Incremental Software Product Line Verification - A Performance Analysis with Dead Variable Code
In: Empirical Software Engineering, 27: 1-41.
Article number: 68
abstract
Verification approaches for Software Product Lines (SPL) aim at detecting variability-related defects and inconsistencies. In general, these analyses take a significant amount of time to provide complete results for an entire, complex SPL. If the SPL evolves, these results potentially become invalid, which requires a time-consuming re-verification of the entire SPL for each increment.
However, in previous work we showed that variability-related changes occur rather infrequently and typically only affect small parts of a SPL. In this paper, we utilize this observation and present an incremental dead variable code analysis as an example for incremental SPL verification, which achieves significant performance improvements. It explicitly considers changes and partially updates its previous results by re-verifying changed artifacts only. We apply this approach to the Linux kernel demonstrating that our fastest incremental strategy takes only 3.20 seconds or less for most of the changes, while the non-incremental approach takes 1,020 seconds in median. We also discuss the impact of different variants of our strategy on the overall performance, providing insights into optimizations that are worthwhile.
|
2020 | |
6.
|
Lea Kristin Gerling and Klaus Schmid
(2020):
Syntax-Preserving Slicing of C-BasedSoftware Product Lines: An Experience Report
In:
Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems (VaMoS '20)
pp. 1-5.
ACM.
Article 17
abstract
Program slicing is an important technique for various follow-up activities like program understanding or feature identification. So far only little work exists on program slicing of product lines. A key challenge in this context is to identify a slice including the implementation as well as the (relevant) variability information. It is our goal to create a program slicing approach to identify semantically related lines of code in a C-based software product line, using the C-Preprocessor as the basis for variability implementation. However, at the time of our research no existing approach was able to produce a program slice that fully preserves the structure of the preprocessor code. Thus, the variability structure in the slice was no longer intact. This is problematic as the desired slice should be a real subset of the product line implementation without modification of the syntax. Thus, we had to create a new syntax-preserving variability-aware slicing technique. In this paper, we report our experiences with the conception and implementation of this technique. We highlight the key challenges and our proposed solutions to foster discussions and future research about the handling of variability in static analysis.
|
5.
|
Jacob Krüger, Sofia Ananieva, Lea Kristin Gerling and Eric Walkingshaw
(2020):
Third International Workshop on Variability and Evolution of Software-Intensive Systems
In:
Proceedings of the 24th ACM Conference on Systems and Software Product Line (SPLC '20)
vol. Volume A.
pp. 1.
ACM.
abstract
Modern software systems are subject to continuous evolution in time (i.e., revisions) and space (i.e., variants). Different research communities are concerned with techniques for managing the evolution in these two dimensions, particularly in the areas of software configuration management and software product-line engineering. Unfortunately, due to both research areas acting mostly independent of each other, traditional technologies for managing software evolution do not provide unified support for revisions and variants. To address this problem, the 3rd International Workshop on Variability and Evolution of Software-Intensive Systems (VariVolution) aims to gather researchers and practitioners from different communities to present, and work on, advances in unifying evolution in time and space. For instance, reference architectures and analysis techniques that integrate both dimensions have been presented and extended during previous workshop editions, aiming to provide means for systematically managing evolving software systems. VariVolution offers researchers and practitioners an opportunity to exchange ideas, report real-world case studies, discuss open problems, and initiate new research in a collaborative and open environment.
|
2019 | |
4.
|
Lea Kristin Gerling and Klaus Schmid
(2019):
Variability-Aware Semantic Slicing Using Code Property Graphs
In:
Proceedings of the 23rd International Systems and Software Product Line Conference (SPLC'19)
pp. 65-71.
ACM.
abstract
Acommonproblem in program analysis is to identify semantically related statements in programs, for example, which statements change the value of a variable, or implement a specific feature or functionality. This is a very challenging task for large programs and gets even more complicated in the presence of variability implementations like #ifdef-annotations. Program slicing is a technique that can be used to aid developers with this challenge. But while slicing is a well-established technique for individual programs, there has been so far only little work on program slicing of product lines.
Here,we introduce a static-analysis approach for semantic slicing of product lines. Our approach introduces the novel concept of a variability-aware code property graph, which combines information about code properties (like statement type) and syntactical structure with data- and control-flow information. This graph is then traversed to gather semantically-related lines of code for a given entry node.We demonstrate our approach with a C-example, including preprocessor statements.
|
3.
|
Christian Kröher, Lea Kristin Gerling and Klaus Schmid
(2019):
Identifying the Intensity of Variability Changes in Software Product Line Evolution
In:
Proceedings of the 2019 Software Engineering and Software Management Conference (SE'19) in Lecture Notes in Informatics (LNI)
vol. P-292.
pp. 105-106.
Gesellschaft für Informatik e.V. (GI).
abstract
This extended abstract summarizes the paper Identifying the Intensity of Variability Changes in Software Product Line Evolution [KGS18] published in the proceedings of the SPLC 2018 [BBB+18].
|
2018 | |
2.
|
Lea Gerling
(2018):
Automated Migration Support for Software Product Line Co-Evolution
In:
Proceedings of the 40th International Conference on Software Engineering (ICSE'18): Companion Proceedings
pp. 456-457.
ACM.
abstract
The idea of automated migration support arises from the problems observed in practice and the missing solutions for software product line (SPL) co-evolution support. In practice it is common to realize new functionality via unsystematic code cloning: A product is separated from its related SPL and then modified. When a separated product and the SPL evolve over time, this is called SPL co-evolution. During this process, developers have to manually migrate, for example, features or bugfixes between the SPL and the product. Currently, there exists only partial automated solutions for this use case. The presented approach is the first, which aims at using semantic merging to migrate arbitrary semantic units, like features or bugfixes, between a SPL and separated products. The resulting solutions will be evaluated using real and artificial SPLs.
|
1.
|
Christian Kröher, Lea Kristin Gerling and Klaus Schmid
(2018):
Identifying the Intensity of Variability Changes in Software Product Line Evolution
In:
Proceedings of the 22nd International Systems and Software Product Line Conference (SPLC'18)
vol. 1.
pp. 54-64.
ACM.
Best Paper Award
abstract
The evolution of a Software Product Line (SPL) typically affects a variety of artifact types. The intensity (the frequency and the amount) in which developers change variability information in these different types of artifacts is currently unknown. In this paper, we present a fine-grained approach for the variability-centric extraction and analysis of changes to code, build, and variability model artifacts introduced by commits. This approach complements existing work that is typically based on a feature-perspective and, thus, abstracts from this level of detail. Further, it provides a detailed understanding of the intensity of changes affecting variability information in these types of artifacts. We apply our approach to the Linux kernel revealing that changes to variability information occur infrequently and only affect small parts of the analyzed artifacts. Further, we outline how these results may improve certain analysis and verification tasks during SPL evolution.
|