2023 | |
25.
|
Christian Kröher, Lea Kristin Gerling und 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.
Zusammenfassung
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.
|
24.
|
Christian Kröher, Moritz Flöter, Lea Kristin Gerling und Klaus Schmid
(2023):
Incremental Software Product Line Verification - A Performance Analysis with Dead Variable Code
In:
Software Engineering 2023
Bd. P-332.
S. 79-80.
Gesellschaft für Informatik e.V..
Bonn, Germany.
Zusammenfassung
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.
|
2022 | |
23.
|
Christian Kröher, Lea Kristin Gerling und Klaus Schmid
(2022):
Combining Distributed and Central Control for Self-Adaptive Systems of Systems
In:
42nd International Conference on Distributed Computing Systems Workshops (ICDCSW)
S. 109-112.
IEEE.
1st DISCOLI Workshop on DIStributed COLlective Intelligence
Zusammenfassung
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.
|
22.
|
Christian Kröher
(2022):
Control Action Types - Patterns of Central Control for Self-adaptive Systems
Hildesheimer Informatik-Berichte
Heft / Ausgabe 1/2022, SSE 1/22/E.
Software Systems Engineering, Institut für Informatik, Universität Hildesheim.
Universitätsplatz 1, 31134 Hildesheim.
Zusammenfassung
An essential building block for any Self-adaptive System (SaS) is its inherent control mechanism. This mechanism enables a SaS to modify its domain functionality with respect to changes in its environment autonomously. Distributed control and central control represent two complementary paradigms to establish this capability. The selection of one of these paradigms 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 report, we build on our previous work and present a pattern catalog for integrating distributed and central control. We introduce these patterns by a taxonomy 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. While other approaches exist, which propose their individual integrations, we aim at a systematic discussion of the range of multi-paradigm control for a SaS.
|
21.
|
Christian Kröher, Moritz Flöter, Lea Kristin Gerling und 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
Bd. A.
S. 1.
ACM.
|
20.
|
Christian Kröher, Moritz Flöter, Lea Kristin Gerling und 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
Zusammenfassung
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.
|
2021 | |
19.
|
Christian Kröher, Klaus Schmid, Simon Paasche und Christian Severin Sauer
(2021):
Combining Central Control with Collective Adaptive Systems
In:
2021 IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion (ACSOS-C)
S. 56-61.
IEEE.
Zusammenfassung
Collective Adaptive Systems (CAS) achieve high resilience by providing distributed self-* properties through autonomous elements.While they are very beneficial for achieving high reliability, they are more difficult for dealing with targeted external inputs or ensuring globally optimal results. It is easier to achieve these properties with centralized approaches.
Ideally, one could combine the benefits of collective adaptive systems with aspects of central control to achieve the best of both paradigms. While such combinations have already been shown in previous work, here, we aim at a systematic discussion of the range of approaches to integrate both control paradigms. As a result, we present a taxonomy of control action types, which describes how a central control unit can interact with a CAS to achieve the desired overall behavior, providing a first step towards CAS control patterns and identifying the involved trade-offs.
|
2019 | |
18.
|
Christian Kröher, Lea Kristin Gerling und 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)
Bd. P-292.
S. 105-106.
Gesellschaft für Informatik e.V. (GI).
Zusammenfassung
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].
|
17.
|
Klaus Schmid, Sascha El-Sharkawy und Christian Kröher
(2019):
Improving Software Engineering Research Through Experimentation Workbenches
Kapitel: 6
In:
Maurice H. ter Beek, Alessandro Fantechi und Laura Semini (Hrsg.):
From Software Engineering to Formal Methods and Tools, and Back Lecture Notes in Computer Science
Bd. 11865.
S. 67-82.
Springer.
Zusammenfassung
Experimentation with software prototypes plays a fundamental role in software engineering research. In contrast to many other scientific disciplines, however, explicit support for this key activity in software engineering is relatively small. While some approaches to improve this situation have been proposed by the software engineering community, experiments are still very difficult and sometimes impossible to replicate.In this paper, we propose the concept of an experimentation workbench as a means of explicit support for experimentation in software engineering research.
In particular, we discuss core requirements that an experimentation workbench should satisfy in order to qualify as such and to offer a real benefit for researchers. Beyond their core benefits for experimentation, we stipulate that experimentation workbenches will also have benefits in regard to reproducibility and repeatability of software engineering research. Further, we illustrate this concept with a scenario and a case study, and describe relevant challenges as well as our experience with experimentation workbenches.
|
2018 | |
16.
|
Christian Kröher, Sascha El-Sharkawy und Klaus Schmid
(2018):
KernelHaven - An Experimentation Workbench for Analyzing Software Product Lines
In:
Proceedings of the 40th International Conference on Software Engineering (ICSE'18): Companion Proceedings
S. 73-76.
ACM.
Video: https://youtu.be/IbNc-H1NoZU
Zusammenfassung
Systematic exploration of hypotheses is a major part of any empirical research. In software engineering, we often produce unique tools for experiments and evaluate them independently on different data sets. In this paper, we present KernelHaven as an experimentation workbench supporting a significant number of experiments in the domain of static product line analysis and verification. It addresses the need for extracting information from a variety of artifacts in this domain by means of an open plug-in infrastructure. Available plug-ins encapsulate existing tools, which can now be combined efficiently to yield new analyses. As an experimentation workbench, it provides configuration-based definitions of experiments, their documentation, and technical services, like parallelization and caching. Hence, researchers can abstract from technical details and focus on the algorithmic core of their research problem. KernelHaven supports different types of analyses, like correctness checks, metrics, etc., in its specific domain. The concepts presented in this paper can also be transferred to support researchers of other software engineering domains. The infrastructure is available under Apache 2.0: github.com/KernelHaven. The plug-ins are available under their individual licenses. Video: youtu.be/IbNc-H1NoZU
|
15.
|
Christian Kröher, Sascha El-Sharkawy und Klaus Schmid
(2018):
KernelHaven - An Open Infrastructure for Product Line Analysis
In:
Proceedings of the 22nd International Systems and Software Product Line Conference (SPLC'18)
Bd. 2.
S. 5-10.
ACM.
Zusammenfassung
KernelHaven is an open infrastructure for Software Product Line (SPL) analysis. It is intended both as a production-quality analysis tool set as well as a research support tool. Its design follows the principle of an experimentation workbench [13] to support researchers in systematically exploring research hypothesis. For flexibility and ease of experimentation KernelHaven components are plug-ins for extracting certain information from SPL artifacts and processing this information, e.g., to check the correctness and consistency of variability information or to apply metrics. A configuration-based setup along with automatic documentation functionality allows different experiments and supports their easy reproduction.
Here, we describe KernelHaven as a product line analysis research tool and highlight its basic approach as well as its fundamental capabilities. In particular, we describe available information extraction and processing plug-ins and how to combine them. On this basis, researchers and interested professional users can rapidly conduct a first set of experiments. Further, we describe the concepts for extending KernelHaven by new plug-ins, which reduces development effort when realizing new experiments.
|
14.
|
Klaus Schmid, Christian Kröher und Sascha El-Sharkawy
(2018):
Variability Modeling with the Integrated Variability Modeling Language (IVML) and EASy-Producer
In:
Proceedings of the 22nd International Systems and Software Product Line Conference (SPLC'18)
Bd. 1.
S. 306-306.
ACM.
Zusammenfassung
EASy-Producer is an open-source research toolset for engineering product lines, variability-rich software ecosystems, and dynamic software product lines. In this tutorial, we will focus on its (textual) variability modeling capabilities as well as its configuration and validation functionality. Further, we will provide an outlook on how EASy-Producer can be applied to variability instantiation.
|
13.
|
Klaus Schmid, Christian Kröher und Sascha El-Sharkawy
(2018):
Model-based Product Line Development with EASy-Producer using VIL and VTL
In:
Proceedings of the 22nd International Systems and Software Product Line Conference (SPLC'18)
Bd. 1.
S. 303-303.
ACM.
Zusammenfassung
EASy-Producer is an open-source research toolset for engineering product lines, variability-rich software ecosystems, and dynamic software product lines. In this tutorial, we will focus on its model-based development and implementation capabilities, which are realized by the Variability Instantiation Language (VIL) and the Variability Template Language (VTL). Further, we will provide a basic introduction into the Integrated Variability Modeling Language (IVML) in order to use the provided information of IVML variability models and configurations during instantiation defined with VIL and as part of the templates created with VTL.
|
12.
|
Christian Kröher, Lea Kristin Gerling und 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)
Bd. 1.
S. 54-64.
ACM.
Best Paper Award
Zusammenfassung
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.
|
2017 | |
11.
|
Christian Kröher und Klaus Schmid
(2017):
A Commit-Based Analysis of Software Product Line Evolution: Two Case Studies
Heft / Ausgabe 2/2017, SSE 2/17/E.
1-57 Seiten.
University of Hildesheim.
Software Systems Engineering, Institut für Informatik, Universität Hildesheim.
Zusammenfassung
Software Product Line (SPL) evolution affects a variety of artifact types, each containing their artifact-specific information as well as variability information. While the former information type defines the basic content of an artifact, like the general program definition in code artifacts, the latter supports the customization of these artifacts for different products of the SPL. Existing work that aims at characterizing the state and evolution of a product line identifies general SPL evolution scenarios or evaluates the (co-)evolution of variability information in different types of artifacts. However, these results are typically based on a feature perspective, which abstracts from the SPL evolution at large. We argue that an artifact-based analysis of product line evolution will complement existing work by analyzing the intensity of changes to different artifact and information types. In this report, we therefore present an approach for and the results of the extraction and analysis of changes introduced to artifact-specific and variability information in code, build and variability model artifacts. This approach has been developed for and applied to the Linux kernel. In order to broaden our analysis, we also apply the approach to the Coreboot firmware. The results reveal the intensity of changes over the evolution history of both SPLs. Further, we compare the intensity of changes across both SPLs with respect to the size of the changes as well as over time.
|
10.
|
Christian Kröher und Klaus Schmid
(2017):
Towards a Better Understanding of Software Product Line Evolution
In:
Proceedings of the 19th Workshop Software-Reengineering and Evolution (WSRE '17) in Softwaretechnik-Trends
Bd. 37.
Heft / Ausgabe 2.
S. 40-41.
Gesellschaft für Informatik e.V., Fachgruppe PARS.
Zusammenfassung
In contrast to traditional software systems, the evolution of a Software Product Line (SPL) affects not only artifacts like source code or requirements, but also variability information, which supports the customization of these artifacts across different products of the SPL. While some work exists that aims at characterizing the state and evolution of a product line from a feature perspective, this abstracts away the details of code evolution, hence, ignoring aspects like the difference in size of features. In this paper, we present an approach for the extraction and analysis of changes introduced to code, build and variability model artifacts. This approach has been developed for and applied to the Linux product line.
|
2015 | |
9.
|
Sascha El-Sharkawy, Christian Kröher, Holger Eichelberger und Klaus Schmid
(2015):
Experience from Implementing a Complex Eclipse Extension for Software Product Line Engineering
In:
Proceedings of the Eclipse Technology eXchange (ETX '15)
Zusammenfassung
Software Product Line Engineering (SPLE) is a systematic approach for the development of related software products. These products share a common infrastructure but vary with respect to their individual capabilities, called variabilities. Variability management is a key part of SPLE and is responsible for developing, combining and configuring such variabilities. As these activities are inherently complex, SPLE significantly benefits from tool-support. We developed a customizable Eclipse extension for SPLE that consists of around 38 plug-ins. The resulting tool, called EASy-Producer, extends the Eclipse IDE by the capability to support the creation and management of software product line projects. To provide this capability, EASy-Producer utilizes the extension concepts of the Eclipse platform and integrates additional frameworks, like Xtext. In this paper, we share our experience while applying the Eclipse technologies and, in particular, realizing specific capabilities of our tool using the Eclipse framework. The focus of this paper is on our lessons learned regarding managing workspace information and conflicting build mechanism as well as using Eclipse extensions outside of Eclipse. These lessons serve as an input to the Eclipse community and may help other developers in realizing a complex Eclipse extension.
|
2014 | |
8.
|
Holger Eichelberger, Sascha El-Sharkawy, Christian Kröher und Klaus Schmid
(2014):
EASy-Producer: Product Line Development for Variant-rich Ecosystems
In:
Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools
Bd. 2.
S. 133-137.
ACM.
Zusammenfassung
Development of software product lines requires tool support, e.g., to define variability models, to check variability models for consistency and to derive the artifacts for a specific product. Further capabilities are required when product lines are combined to software ecosystems, i.e., management and development of distributed product lines across multiple different organizations. In this paper, we describe EASy-Producer, a prototypical tool set for the development of software product lines in general and variant-rich ecosystems in particular. To support the product line engineer, EASy-Producer differentiates between simplified views limiting the capabilities and expert views unleashing its full power. We will discuss how these two views support the definition of variability models, the derivation of product configurations and the instantiation of artifacts.
|
2013 | |
7.
|
Klaus Schmid, Rainer Koschke, Christian Kröher und Dierk Lüdemann
(2013):
Towards identifying evolution smells in Software Product Lines
In:
Stefan Sauer and Benjamin Klatt and Thomas Ruhroth (Hrsg.):
Proceedings of the 5th Workshop "Design For Future - Langlebige Softwaresysteme" (DFF)
Gesellschaft für Informatik e.V. (GI).
Zusammenfassung
As more and more companies shift to a product line approach, supporting the evolution of software product lines becomes increasingly important. While today already significant work exists along the lines of quality analysis for software product lines, there is much less work that addresses the evolution scenario. In this paper, we briefly describe different categories of approaches for identifying problems in product lines. Based on this we describe a new research direction for identifying problems in product line evolution scenarios.
|
6.
|
Holger Eichelberger, Christian Kröher und Klaus Schmid
(2013):
An Analysis of Variability Modeling Concepts: Expressiveness vs. Analyzability
In:
John Favaro and Maurizio Morisio (Hrsg.):
Proceeding of the 13th International Conference on Software Reuse (ICSR '13)
S. 32-48.
Springer.
Zusammenfassung
Variability modeling is a core activity of software product line engi-neering. Over the years, many different approaches to variability modeling have been proposed. Typically, the individual approaches have been designed with-out a detailed justification on why certain modeling concepts should be used. This yields a rather unfunded selection of modeling approaches in practice, e.g., selecting approaches that provide higher modeling concepts than actually need-ed, but less analyses capabilities than required. Thus, we propose that the focus of an analysis should not be to determine the best modeling language, but rather to provide a characterization on when to use what kind of approach. In particu-lar, the selection of one approach for a specific situation should be driven from the required modeling concepts (expressiveness) and the required analyzability. In this paper, we propose a classification of core concepts of variability model-ing based on expressiveness and analyzability. We discuss the methodology for and the classification of variability modeling concepts illustrated by a running example. The contribution of this paper is a modeling approach-independent classification of variability modeling concepts and their dependencies to pro-vide a systematic and rationale basis to anyone designing, standardizing, im-plementing or selecting a specific variability modeling approach.
|
5.
|
Klaus Schmid, Holger Eichelberger und Christian Kröher
(2013):
Domain-Oriented Customization of Service Platforms: Combining Product Line Engineering and Service-Oriented Computing
In: Journal of Universal Computer Science (JUCS), 19 (2): 233-253.
Zusammenfassung
Service-Oriented Computing (SoC) has been established as an important paradigm over the last decade. A particularly important part in a service-oriented solution is the service-oriented platform. This provides an environment and infrastructure for a number of service-oriented applications. An important challenge in complex application areas is the need to customize these platforms to the demands of a specific context. Product line technologies can support this by providing the concept of variability management to SoC. In this paper, we will provide a reference model for (domain-specific) service platforms and describe different approaches that provide customization possibilities in a service platform context. The complexity of handling the customization of large-scale service platforms in an integrated manner will be addressed by introducing the concept of production strategies for variability implementation techniques.
|
2012 | |
4.
|
Holger Eichelberger, Christian Kröher und Klaus Schmid
(2012):
Variability in Service-Oriented Systems: An Analysis of Existing Approaches
In:
Chengfei Liu and Heiko Ludwig and Farouk Toumani and Qi Yu (Hrsg.):
Proceedings of the 10th International Conference on Service Oriented Computing (ICSOC '12)
S. 516-524.
Springer.
Zusammenfassung
In service-oriented systems services can be easily reused and shared without modification. However, there are business situations where a variation of services is needed to meet the requirements of a specific customer or context. Variation of software systems has been well researched in product line engineering in terms of Variability Implementation Techniques (VITs). While most VITs focus on the customization of traditional software systems, several VITs have been developed for service-oriented systems. In this paper, we discuss the problem of service customization and provide an overview of different VITs for service variability. For this purpose, we will define four dimensions to describe, characterize and analyze existing VITs: the technical core idea, the object of variation, the forms of variation, and the binding time.
|
2011 | |
3.
|
Sascha El-Sharkawy, Christian Kröher und Klaus Schmid
(2011):
Support for Complex Product Line Populations
In:
Ina Schaefer and Isabel John and Klaus Schmid (Hrsg.):
Demonstration and Tools at the 15th International Software Product Line Conference (SPLC '11)
Bd. 2.
ACM.
Zusammenfassung
In this paper, we describe EASy-Producer, a prototypical tool for complex and large-scale Software Product Line (SPL) development. The tool enables SPL engineers to reduce complexity by combining derivation and composition techniques to manage one large SPL as a combination of individual, but interrelated SPLs.
|
2.
|
Sascha El-Sharkawy, Christian Kröher und Klaus Schmid
(2011):
Supporting Heterogeneous Compositional Multi Software Product Lines
In:
Ina Schaefer and Isabel John and Klaus Schmid (Hrsg.):
Proceedings of the Joint Workshop of the 3rd International Workshop on Model-driven Approaches in Software Product Line Engineering and the 3rd Workshop on Scalable Modeling Techniques for Software Product Lines (MAPLE/SCALE 2011) at the 15th Internationa
Bd. 2.
ACM.
Zusammenfassung
Software Product Line Engineering is inherently complex. This complexity increases further if multiple product line infrastructures are composed to yield the final products, an approach sometimes referred to as Multi Software Product Lines (MSPL). In this paper, we present an approach that targets this development scenario. The approach we present here aims at a lightweight, scalable, and practical approach to variability management for multi software product lines. Our approach explicitly supports heterogeneous product lines, i.e. situations where the various product lines use different generation approaches. The approach has been implemented in the EASy-Producer tool set and applied on some case studies.
|
2009 | |
1.
|
Klaus Schmid und Christian Kröher
(2009):
An Analysis of Existing Software Configuration Systems
In:
Dirk Muthig and John D. McGregor (Hrsg.):
Proceedings of the 3rd International Workshop on Dynamic Software Product Lines (DSPL '09) at the 13th International Software Product Line Conference (SPLC '09)
ACM.
Zusammenfassung
Dynamic Software Product Lines (DSPL) focuses on product lines where the resolution of variants happens at a later point in time, ideally at runtime. While runtime reconfiguration is still rather innovative, preconfiguration of software systems is well established and to some degree even standardized. Thus, we study such preconfiguration approaches to better understand how their capabilities relate to classical product line engineering on one hand and to dynamic software product lines on the other.
|