Multi Software Product Lines in the Wild

Multi Software Product Lines in the Wild

AperTO - Archivio Istituzionale Open Access dell'Università di Torino Multi software product lines in the wild This is the author's manuscript Original Citation: Availability: This version is available http://hdl.handle.net/2318/1667454 since 2020-07-06T10:51:50Z Publisher: Association for Computing Machinery Published version: DOI:10.1145/3168365.3170425 Terms of use: Open Access Anyone can freely access the full text of works made available as "Open Access". Works made available under a Creative Commons license can be used according to the terms and conditions of said license. Use of all other works requires consent of the right holder (author or publisher) if not exempted from copyright protection by the applicable law. (Article begins on next page) 27 September 2021 Multi Software Product Lines in the Wild Michael Lienhardt Ferruccio Damiani [email protected] [email protected] Università di Torino Università di Torino Italy Italy Simone Donetti Luca Paolini [email protected] [email protected] Università di Torino Università di Torino Italy Italy ABSTRACT 1 INTRODUCTION Modern software systems are often built from customizable and A Software Product Line (SPL) is a set of similar programs, called inter-dependent components. Such customizations usually define variants, with a common code base and well documented variabil- which features are offered by the components, and may depend ity [1, 6, 19]. Modern software systems are often built as complex on backend components being configured in a specific way. As assemblages of customizable components that out-grow the expres- such system become very large, with a huge number of possible siveness of SPLs. Consider for instance a core wordpress web server. configurations and complex dependencies between components, Such system is built from at least five components: i) the actual maintenance and ensuring the consistency of such systems is a wordpress php code; ii) a web server; iii) a php interpreter; iv) a challenge. database to host the wordpress data; and v) the data in the database. In this paper, we propose a Multi Software Product Line model to Interestingly, many of these components can be realized by differ- capture the complexity of such systems and pave the way to formal ent software tools: the most common choice for the web server and studies on them. We applied and implemented our model on a full for the database is apache and mysql, but other options (like nginx Linux Distribution of almost 40,000 interconnected components and berkley-db) are possible. Moreover, these components are cus- and 3 million features, and present some initial analysis we did on tomizable in order to satisfy various functional and non-functional this model. requirements of the users. For instance, apache can support many authentication protocols, many scripting languages (for which it CCS CONCEPTS may required a backend interpreter) which may be activated or not • Software and its engineering → Software design engineer- by the user, depending on its requirements. In our example, apache ing; Software product lines; Feature interaction; Abstraction, mod- must have its php support enabled in order to execute wordpress, eling and modularity; Software libraries and repositories; Software which requires a php interpreter, but activating more of its features creation and management; may just add to its memory and computation load without any benefit for the overall system. KEYWORDS In such composed systems the concept of SPL can be used to describe each customizable software individually, while additional Software Product Line, Multi Software Product Line, Configurable mechanisms are needed to describe the relationship between dif- Software, Variability Modeling, Composition, Linux Distribution ferent SPLs (either requirements like in our example where apache ACM Reference Format: requires a php interpreter, or conflicts where two SPLs cannot be Michael Lienhardt, Ferruccio Damiani, Simone Donetti, and Luca Paolini. used together) and to describe the concept of components that can 2018. Multi Software Product Lines in the Wild. In VAMOS 2018: 12th Inter- be realized by different SPLs with similar functionalities. There- national Workshop on Variability Modelling of Software-Intensive Systems, fore these systems can be described as Multi Software Product Lines February 7–9, 2018, Madrid, Spain, Malte Lochau (Ed.). ACM, New York, NY, USA, 8 pages. https://doi.org/10.1145/3168365.3170425 (MPLs): an MPL is a sets of interdependent SPLs that need to be managed in a decentralized fashion by multiple teams and stake- This research has been partially funded by: EU Horizon 2020 project Hy- holders [15]. Var (www.hyvar-project.eu), GA No. 644298; ICT COST Action IC1402 ARVI (www.cost-arvi.eu); Ateneo/CSP D16D15000360005 project RunVar In this paper, we build upon previous works [10, 22] to define (runvar-project.di.unito.it); a formal model of MPL that aims to: i) capture the notion of rela- tionship between different components; ii) be flexible enough to Permission to make digital or hard copies of all or part of this work for personal or describe different real composed systems; and iii) support the con- classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation struction of tools to help in designing, maintaining and analyzing on the first page. Copyrights for components of this work owned by others than ACM composed systems. More precisely, the contributions of this paper must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a are: fee. Request permissions from [email protected]. VAMOS 2018, February 7–9, 2018, Madrid, Spain • a formal definition of SPL agnostic on a number of imple- © 2018 Association for Computing Machinery. mentation details, so it encompasses SPLs built with different ACM ISBN 978-1-4503-5398-4/18/02...$15.00 https://doi.org/10.1145/3168365.3170425 SPL approaches (we refer to [21] and [26] for a survey of VAMOS 2018, February 7–9, 2018, Madrid, Spain Michael Lienhardt, Ferruccio Damiani, Simone Donetti, and Luca Paolini different approaches for implementing and analyzing SPLs, (1) x?y implies y?x and x ⊕ y = y ⊕ x; respectively); (2) y?z and x?(y ⊕ z) imply x?y, (x ⊕ y)?z and x ⊕ (y ⊕ z) = • a formal definition of MPL based on the notions of: Depen- (x ⊕ y) ⊕ z; dent SPL which extends SPLs with dependencies capable of (3) ε?x and ε ⊕ x = x. expressing both requirements and conflicts; and SPL sub- Our definition of Software Product Line build upon this abstract typing which describes the commonalities shared between notion of variant, to which it adds variability (or customization) us- different SPLs, thus capturing the concept of components; ing a feature model and a generator function that maps the different • an implementation of this MPL model on top of the Linux products of the feature model to its corresponding variant: Gentoo distribution [13]; • a use of this implementation to extract interesting statistical Definition 2.2 (Feature Model, Software Product Line). A Feature data on how MPLs are used in practice; and Model M is a pair (F ; P) where F is a set of features and P ⊆ 2F • a discussion on the benefits of using a formal MPL model in is a set of products. M; = (;; ;) is the empty feature model. designing such large collection of components. A Software Product Line L is a pair (M; G) where M is the The rest of the paper is structured as follows: Section 2 constructs feature model of the SPL and G is the generator of the SPL, i.e., a step by step our MPL model; Section 3 introduces portage, the partial function from the products of M to variants v 2 V. package manager of the Gentoo Linux distribution, and shows how Note that in this definition, the generator of the SPL G can be it can be mapped into our model; Section 4 presents our analysis partial, i.e., some product may not have a corresponding variant, to on portage and its MPL structure while Section 5 discusses some also capture SPLs that are ill-defined and contains errors that make limitations of portage and how our model, together with some impossible the generation of a product’s variant. Note also that our extensions, could help in designing, maintaining and analysing notion of generator does not specify how variants are generated composed systems; finally, Section 6 discusses related work and from a specific product. This allows our model to capture several Section 7 concludes the paper. SPL approaches, like annotative product lines [1] (e.g., where the generator works by applying the C preprocessor on some source 2 MPL MODEL code), Feature-Oriented Programming [1] (where the generator To motivate an illustrate our model, we use a running example works by combining the artifacts stored in the selected features’ based on the main use case of the EC H2020 project HyVar which modules), or Delta-Oriented Programming [20] (where the gen- models software systems in a car. This use case is structured in three erator works by applying selected delta modules on a intial core Electronic Control Units (ECUs) with their dedicated functionalities artifact). • ECU_A is responsible for the core functionalities of the car, Feature models can be graphically represented as feature dia- which include i) the mandatory emergency call that auto- grams, arranging the features in a tree structure with additional matically calls the police in case of a crash using either the cross-tree constraints to describe their dependencies (see, e.g., [3]). european union (EU) or the russian protocol; and ii) an op- Figure 1 presents the feature models of the different ECUs in our tional connnection Gateway that allow message exchanges running example.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us