Daniela Rabiser, P. Grünbacher, Herbert Prähofer, Florian Angerer
{"title":"A prototype-based approach for managing clones in clone-and-own product lines","authors":"Daniela Rabiser, P. Grünbacher, Herbert Prähofer, Florian Angerer","doi":"10.1145/2934466.2934487","DOIUrl":"https://doi.org/10.1145/2934466.2934487","url":null,"abstract":"Feature models are commonly used in industrial contexts to guide and automate the derivation of product variants. However, in real-world product lines the derivation process goes beyond selecting and composing product features. Specifically, developers often perform clone-and-own reuse, i.e., they copy, modify, and extend existing code to provide the functionality required by customers. Clones are created at different levels of granularity, ranging from individual features to entire systems. Refactoring and reverse engineering approaches have been proposed for dealing with cloned product variants. However, managing clones has not been addressed in the context of feature models. For instance, if clones are created to address customer requirements in specific product variants, the connection to the original feature models is frequently lost. We thus present a modeling approach based on prototypes, i.e., prefabricated objects from which clones are created. Our approach allows to manage prototypes and their clones at the levels of products, components, and features. We use compliance levels to define the required level of consistency between prototypes and clones. We further adapt an existing consistency checking framework for detecting inconsistent clones when the product line evolves. Our approach uses feature-to-code mappings to determine the impact of changes on code elements. We present a case study illustrating prototypes, clones, and compliance levels in selected development scenarios of our industry partner's product line. We also discuss the use of static code analysis techniques to support engineers in determining the impact of changed prototypes on affected clones, an area we plan to address in our future work.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114932202","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jabier Martinez, T. Ziadi, Tegawendé F. Bissyandé, Jacques Klein, Yves Le Traon
{"title":"Name suggestions during feature identification: the variclouds approach","authors":"Jabier Martinez, T. Ziadi, Tegawendé F. Bissyandé, Jacques Klein, Yves Le Traon","doi":"10.1145/2934466.2934480","DOIUrl":"https://doi.org/10.1145/2934466.2934480","url":null,"abstract":"Reengineering a Software Product Line from legacy variants remains a challenging endeavour. Among various challenges, it is a complex task to retrieve enough information for inferring the variability from experts' domain knowledge and from the semantics of software elements. We propose the VariClouds process that can be leveraged by domain experts to understand the semantics behind the different blocks identified during software variants analysis. VariClouds is based on interactive word cloud visualisations providing name suggestions for these blocks using tf-idf as weighting factor. We evaluate our approach by assessing its added-value to several previous works in the literature where no tool support was provided to domain experts to characterise features from software blocks.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114137909","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Toward robust product realisation in software product lines","authors":"A. Vasilevskiy, Franck Chauvel, Øystein Haugen","doi":"10.1145/2934466.2934484","DOIUrl":"https://doi.org/10.1145/2934466.2934484","url":null,"abstract":"Product derivation is a building process of products from selected features in software product lines (SPLs). Realisation paves the way for automatic product derivation. A realisation defines a mapping between abstract features in a feature tree and their implementation artefacts in a model, and therefore governs the derivation of a new product. We experience that a realisation is not always straightforward and robust against modifications in the model. In the paper, we introduce an approach to build robust realisations. It consists of automated planning techniques and a layered architecture to yield a product. We demonstrate how our approach can leverage modern means of software design, development and validation. We evaluate the approach on a use-case provided by an industry partner and compare our technique to the existing realisation layer in the Base Variability Resolution (BVR) language.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124957956","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Dynamic analysis of shared execution in software product line testing","authors":"Bo Wang","doi":"10.1145/2934466.2966351","DOIUrl":"https://doi.org/10.1145/2934466.2966351","url":null,"abstract":"Software product line (SPL), a family-based software development process, has proven to be a more effective technology than single software systems. Testing SPL products individually is redundant for product lines testing. Meanwhile, the complexity of systematically testing SPL programs is combinatorial, which limits the scalability of testing SPL. In this paper, I will introduce the idea of accelerating SPL testing by dynamic analysis. I intend to investigate a dynamic analysis of SPL testing, which analyzes all variants during the execution of a SPL, and forks the execution only a variant leads to a different state. In addition, to get the preliminary result, we can encode a family of variants into a single program to simulate a realization of SPL testing. The experimental result collected on the mutated C program, printtokens in Software-artifact Infrastructure Repository, shows our approach can accelerate the SPL testing with a speedup up to 4.83X than testing each variants at a time and pruning 87% of the variants.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"308 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131975100","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Philipp Kehrbusch, J. Richenhagen, Bernhard Rumpe, A. Schloßer, Christoph Schulze
{"title":"Interface-based similarity analysis of software components for the automotive industry","authors":"Philipp Kehrbusch, J. Richenhagen, Bernhard Rumpe, A. Schloßer, Christoph Schulze","doi":"10.1145/2934466.2934468","DOIUrl":"https://doi.org/10.1145/2934466.2934468","url":null,"abstract":"In a software product line similar products are derived based on a common foundation. With traditional methods a number of similar products exist independently. To derive a maintainable, reusable set of software components it is necessary to understand similarities and differences. However, an adequate similarity analysis involving several products is a cost-intensive and difficult task, compromising the pursued benefit. In this paper an automated syntactical similarity analysis for software component interfaces is proposed to support the software product line extraction and maintenance. We apply this general approach specifically to the automotive domain, as the static nature of the architecture and the high number of well-defined signals makes the interfaces especially expressive. The analysis supports three use cases: the identification of similarities between two interfaces, the automated extraction of a common interface for a set of interfaces and the evaluation of interface changes during the evolution history of a software component. In addition the syntactical analysis provides the foundation for further semantical examinations. Its applicability is indicated by a case study on different variants and versions of interfaces defined in an industrial context.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132892348","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards clone-and-own support: locating relevant methods in legacy products","authors":"Raúl Lapeña, Manuel Ballarín, Carlos Cetina","doi":"10.1145/2934466.2934485","DOIUrl":"https://doi.org/10.1145/2934466.2934485","url":null,"abstract":"Clone-and-Own (CAO) is a common practice in families of software products consisting of reusing code from methods in legacy products in new developments. In industrial scenarios, CAO consumes high amounts of time and effort without guaranteeing good results. We propose a novel approach, Computer Assisted CAO (CACAO), that given the natural language requirements of a new product, and the legacy products from that family, ranks the legacy methods in the family for each of the new product requirements according to their relevancy to the new development. We evaluated our approach in the industrial domain of train control software. Without CACAO, software engineers tasked with the development of a new product had to manually review a total of 2200 methods in the family. Results show that CACAO can reduce the number of methods to be reviewed, and guide software engineers towards the identification of relevant legacy methods to be reused in the new product.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"321 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115838671","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Product-centered view vs process-centered view","authors":"T. Tamai","doi":"10.1145/2934466.2971318","DOIUrl":"https://doi.org/10.1145/2934466.2971318","url":null,"abstract":"Looking back the history of software engineering, we can observe an alternating cycle of interest on product-centered view vs. process-centered view in software research and practices. From the late 1980's to early 1990's, software process became quite an active field. Activities concerning software process were hot in academia as well as in industry. The interest on software process saw its peak in early 1990's but lost the momentum soon. Then came the fever on software architecture. The book \"Software Architecture\" by M. Shaw and D. Garlan was published in 1996 and widely read. Design patterns and application frameworks drew attention about the same time, which together indicate a shift of interest from process to product. In 2000's, the interest on processes revived. One phenomenon is the upsurge of interest on the agile process. As software product lines (SPL) contains the word product in the term, it deals with a variety of products but its focus is also on the process of managing development and evolution of a family of similar software products. We will give a perspective on the alternating cycle of interest on product-centered view vs. process-centered view and then characterize SPL in this framework.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"354 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122800213","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Thomas Thüm, Márcio Ribeiro, R. Schröter, J. Siegmund, F. Dalton
{"title":"Product-line maintenance with emergent contract interfaces","authors":"Thomas Thüm, Márcio Ribeiro, R. Schröter, J. Siegmund, F. Dalton","doi":"10.1145/2934466.2934471","DOIUrl":"https://doi.org/10.1145/2934466.2934471","url":null,"abstract":"A software product line evolves whenever one of its products need to evolve. Maintenance of preprocessor-based product lines is a difficult task, as changes to the code base may unintentionally influence the behavior of uninvolved products. Hence, developers should be supported during maintenance. We present emergent contract interfaces to make product-line development more efficient and less error-prone. The key idea is that for a given maintenance point (i.e., an assignment), we calculate (a) features in the source code that may be affected and (b) assertions based on contracts defined in the code base. By means of a controlled experiment, we provide empirical evidence regarding efficiency and error-avoidance with emergent contract interfaces.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"275 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133341097","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Iris Groher, R. Weinreich, Georg Buchgeher, Robert Schossleitner
{"title":"Reusable architecture variants for customer-specific automation solutions","authors":"Iris Groher, R. Weinreich, Georg Buchgeher, Robert Schossleitner","doi":"10.1145/2934466.2934492","DOIUrl":"https://doi.org/10.1145/2934466.2934492","url":null,"abstract":"Manufacturing execution systems (MES) are key elements of industrial automation systems. MES can be deployed at different levels of scale from a single site or plant to a company with globally distributed production sites all over the world. Establishing or extending an MES is a complex process, which requires taking the already existing software and system architecture into account in addition to the desired MES features. We developed an approach and an associated tool to support the process of creating offers for customer-specific MES solutions based on a vendor-specific automation platform. We define architecture variants for selecting a specific MES feature set and for supporting different MES expansion stages. Additionally, we provide an architecture modeling approach to explore the integration with existing software and system infrastructures. The approach has been applied at the STIWA Group, a vendor of MES for industrial production lines.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134328783","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Takahiro Iida, M. Matsubara, Kentaro Yoshimura, H. Kojima, K. Nishino
{"title":"PLE for automotive braking system with management of impacts from equipment interactions","authors":"Takahiro Iida, M. Matsubara, Kentaro Yoshimura, H. Kojima, K. Nishino","doi":"10.1145/2934466.2934490","DOIUrl":"https://doi.org/10.1145/2934466.2934490","url":null,"abstract":"We report here an industrial application of the Product Line Engineering (PLE) for the development of electronic braking systems. The cost of software engineering in automotive control systems is increasing as new functions for safety, comfort, and improved fuel efficiency are integrated into electronic control units. Therefore, Component suppliers for automotive control systems adapt their products to the requirements of car manufacturers by modifying the software specifications, such that it makes minimal changes to the mechanical structure and the electrical and electronic (E/E) components hence reduces the cost. PLE is an effective approach to manage or even reduce the software variations resulting from these modifications. However, one problem is that the software specifications of automotive control systems need to be redesigned after system testing with vehicles. This is because vehicles consist of many mechanical parts manufactured by different suppliers, and the characteristics of the parts can interact with each other. This problem makes it difficult to reap the full benefits of PLE. We propose an approach to analyze the potential impact from such interactions by using a system model that expresses the system architecture that includes the parts of different suppliers. Based on this model, the software architecture was designed to localize the impact to several software components. Additionally, a feature model was designed to the enable management of the localized impact by expressing it as variability. This method helps software engineers specify the software components that can have an effect on the actual equipment, and determine which modifications to the software specifications are necessary. We applied PLE with the proposed method in the development of electronic brake control system. We confirmed that our approach greatly increased the efficiency of PLE for the development of such automotive control systems.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117069013","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}