Feature-to-Code Mapping in Two Large Product Lines

نویسندگان

  • Thorsten Berger
  • Steven She
  • Rafael Lotufo
  • Krzysztof Czarnecki
  • Andrzej Wasowski
چکیده

Large software product lines have complex build systems that enable compiling the source code into different products that make up the product line. Unfortunately, the dependencies among the available build options, which we refer to as features and their mapping to the source code they control, are implicit in complex imperative build-related logic. As a result, reasoning about dependencies is difficult; this not only makes maintenance of the variability harder, but also hinders development of support tools such as feature-oriented traceability support, debuggers for variability models, variability-aware code analyzers, or test schedulers for the product line. Thus, we advocate the use of explicit variability models, consisting of a feature model specifying the available features and their dependencies and a mapping between product specifications conforming to the feature model and the implementation assets. Previously, we extracted feature models from the Linux kernel and the Ecos embedded operating system. The Ecos model directly embeds the feature-to-code mapping. However, this is not the case for Linux. Now, we extract the feature-tocode mapping from the build systems of the prominent operating systems Linux and FreeBSD. We represent the mapping as presence conditions. A presence condition (PC) is an expression on an implementation artifact written in terms of features. If a PC evaluates to true for a configuration, then the corresponding artifact is included in the product. We show that the extraction of mappings from build systems is feasible. We extracted 10,155 PCs, each controlling the inclusion of a source file in a build. The PCs reference the total of 4,774 features and affect about 8M lines of code. We publish the PCs for Linux and FreeBSD as they constitute a highly realistic benchmark for researchers and tool designers. In the poster, we describe the build systems of the Linux and FreeBSD kernel as well as our approach to transforming the imperative build-system logic into a large Abstract Syntax Tree (AST) and to deriving presence conditions. Furthermore, we expand on basic characteristics of the resulting expressions. We hope our work deepens understanding of variability in build systems and that the insights will eventually lead to extracting complete variability models encompassing the feature model and the mapping from features to code.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Parametric DeltaJ 1.5: Propagating Feature Attributes into Implementation Artifacts

Systematic reuse of software artifacts can be achieved with software product lines, which represent a family of similar software systems. A variability model, e.g., feature model, describes their commonalities and variabilities and serves as a basis for a product configuration, i.e., the selection of features according to constraints defined in the model. These variability models can contain ad...

متن کامل

The Hyper/UML Approach for Feature Based Software Design

The market requests complex but adaptable software systems. There are different concepts to meet this demand, for example software reusability, component-based development, agile processes, generative programming and domain analysis. For similar products within a domain product lines are a very promising approach for shortening development time and cost and for improving quality. Software produ...

متن کامل

Feature-Oriented Development of Software Product Lines: Mapping Feature Models to the Architecture

Software product lines (PLs) present a solid approach in large scale reuse. Due to the PLs’ inherit complexity, many PL methods use the notion of ”features” to support requirements analysis and domain modelling (e.g. FODA, FORM, FeatuRSEB). Nevertheless, the link between features and architecture remains weak in all methodologies, with a large impact on the traceability of high-level concerns i...

متن کامل

Software Product Lines from Customer to Code

The process of establishing a software product line and instantiating products from it is motivated, not only by technical reasons, but also by business reasons. The customer perspective reveals the importance of the basic function of the products and helps us distinguish between product lines and product families. One single feature is never the only difference between two products, but instea...

متن کامل

Visualizing Software Product Line Variabilities in Source Code

Implementing software product lines is a challenging task. Depending on the implementation technique the code that realizes a feature is often scattered across multiple code units. This way it becomes difficult to trace features in source code which hinders maintenance and evolution. While previous effort on visualization technologies in software product lines has focused mainly on the feature ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010