Clemson CPSC 950 - Model-Based Implementation of Meta-Variability Constructs: A Case Study using Aspects

Unformatted text preview:

Model-Based Implementation of Meta-Variability Constructs: A Case Study using Aspects Klaus Schmid, Holger Eichelberger University of Hildesheim, Institute of Computer Science Marienburger Platz 22 D-31141 Hildesheim, Germany +49 5121 883 761/ {schmid, eichelberger}@sse.uni-hildesheim.de Abstract In this paper, we introduce the concept of meta-variability, i.e., variability with respect to basic vari-ability attributes like binding time or constraints. While the main focus of this paper is on the introduc-tion of the concept, we will also illustrate the concept by providing a case study. The case study will feature a simple implementation environment based on aspect-oriented programming and will include an example that will exhibit some key characteristics of the envisioned production process. 1. Motivation Product line engineering has become increasingly rec-ognized in the last few years as a successful approach to dramatically reduce costs, reduce time-to-market and improve quality. It has also achieved significant acceptance in industry [12]. Along with the increasing recognition of product line engineering in industry, various approaches to variability modeling were proposed. In particular, fea-ture modeling concepts are widely discussed and par-tially used in industry [6, 9, 10, 16], but a large range of other approaches have been proposed as well, e.g. [4, 14, 17, 19, 20]. So far all these approaches share (at least) one commonality as they focus on variability as variation of specific attributes of the final product (e.g., func-tional or non-functional properties). Thus, they neglect the variability that may occur with respect to the char-acteristics of a specific variability itself. We term such variability of a variability attribute meta-variability. Thus, meta-variability relates to variability that may occur with respect to production processes of subsets of the product line. For example, for some products a specific variability may be bound at compile time, while other products still support a sub-range of vari-ability and the final binding happens during product initialization. Thus, the binding time itself may vary. Similar examples can be given for other variability attributes as well. At first glance, the issue of meta-variability may seem very esoteric; however, it is firmly grounded in industrial practice. A simple example, which we observed in one com-pany, was that some variation was relevant to both high-end and low-end products. While the low-end product was produced in high volume, the high-end product was produced only in low volume. As a con-sequence, their production processes were different due to economic reasons. Some variations were com-mon to these products, but for the low-end product, which also had less memory and processing power was reduced, the variation had to be bound at compile time. This way, each variant was produced independently and as this did save resources in the final variant and thus production costs, this was cost-effective. On the other hand, for the high-end product the variability had to be bound at initialization time (prior to sales, but after shipping to country offices). The reason for this was that sales personal in the various countries could determine the final product variant in order to adapt to fluctuations in demand. As the vol-ume of these high-end products was low, the added production costs were not relevant in comparison with the increased flexibility.This episode shows a clear need for variation with respect to binding time. More precisely, two different binding times could be selected alternatively for the same variability. In the following sections we will first discuss dif-ferent approaches to dealing with meta-variability. In Section 3, we will then describe some basic concepts of a prototypical production environment that we used as a basis for supporting meta-variability. In Section 4, we describe a simple case study. Finally, in Section 5 we will provide our conclusions and illustrations of possible future work. 2. Dealing with Meta-Variability To our knowledge, the problem of meta-variability has so far not been explicitly addressed. Only few ap-proaches explicitly allow multiple binding times for a single variability. One example is [19], however, the approach does not provide a precise interpretation and semantic foundation of multiple binding times. An early case study that used this concept is described in [18]. While the problem sketched above is not uncom-mon in industry, so far we have not seen it being fully addressed. Instead an approach is typically taken that can be interpreted as reification: the meta-variability is represented as a different variability in the form shown in Figure 1a. As this figure shows, reification leads to duplica-tion of the respective variant information. In practice, this is often handled implicitly, by modeling the varia-tion as something like Figure 1b and handling the case that both variants are selected in a special manner, by providing additional initialization code, without actu-ally modeling this as variability. However, this actually means that variability is only partially modeled. In cur-rent industrial practice, where variability is usually not modeled at all, or at least not completely, this is not yet an issue, but if the underlying goal is to move towards more systematic (and automatic) variant-based soft-ware production processes, this becomes a major prob-lem. Thus, we propose to deal with meta-variability explicitly and to accept it as a first class modeling ele-ment. This implies that variation of variability attrib-utes must be modeled explicitly. This approach in turn provides the advantage that the various product instan-tiations can be produced automatically. We will de-scribe this approach below and discuss it based on a case study. 3. Concepts of a Production Environment In this paper, we provide a vision of how future soft-ware production environments that explicitly support variability can look like. We do not yet present a full-fledged product derivation environment. We sketch a production environment that supports the automatic product derivation and instantiation of variability. The core idea is to use the variability model, together with the current variant selection to produce the binding of the variant parts. Depending on compiletimef1 f2f1 f2initializationtime compiletimef1 f2 Figure 1 (a) Reification of binding time


View Full Document

Clemson CPSC 950 - Model-Based Implementation of Meta-Variability Constructs: A Case Study using Aspects

Download Model-Based Implementation of Meta-Variability Constructs: A Case Study using Aspects
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Model-Based Implementation of Meta-Variability Constructs: A Case Study using Aspects and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Model-Based Implementation of Meta-Variability Constructs: A Case Study using Aspects 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?