J. McGregor, M. Aoyama, Linda M. Northrop, Klaus Schmid
Why does it change? How does it change? Ultra-large scale systems [Northrop, 2006 1] exceed our ability to manage and tax our ability to understand and yet the infrastructure modern society needs, such as the power grid, is in fact at this scale. How does this new scope affect software product line organizations? Some have suggested that ecosystems are a natural follow on to software product lines, but what is the transition and which concerns does this address? And what changes as the scale increases even more?
{"title":"Scale changes everything, but...","authors":"J. McGregor, M. Aoyama, Linda M. Northrop, Klaus Schmid","doi":"10.1145/2491627.2500224","DOIUrl":"https://doi.org/10.1145/2491627.2500224","url":null,"abstract":"Why does it change?\u0000 How does it change?\u0000 Ultra-large scale systems [Northrop, 2006 1] exceed our ability to manage and tax our ability to understand and yet the infrastructure modern society needs, such as the power grid, is in fact at this scale. How does this new scope affect software product line organizations? Some have suggested that ecosystems are a natural follow on to software product lines, but what is the transition and which concerns does this address? And what changes as the scale increases even more?","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"42 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133069924","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}
Product line engineering requires changes in approaching software development. Two main processes are to be established: creating a reusable infrastructure, and utilizing it for developing products. In practice, these two processes cannot strictly be separated as product enhancements are requested frequently by customers and a changeable infrastructure is essential to react on market needs. Thus, various approaches, such as proactive, reactive, or agile, have been introduced to handle changes. At a finer level of granularity, however, changes comprise many activities with variable duration and thus result in sets of concurrent and overlapping software development activities. This paper, therefore, investigates changes in more detail and assumes that provisioning comprehensive information on changes and respective states are crucial to organizations for keeping a software product line manageable. As features are a common notion used in software engineering to reflect customer requirements, the paper proposes a conceptual framework for managing feature information and for defining role-specific views throughout all life cycle processes. Its concepts have been derived from an industrial context.
{"title":"A framework for role-based feature management in software product line organizations","authors":"Dirk Muthig, Julia Schroeter","doi":"10.1145/2491627.2491653","DOIUrl":"https://doi.org/10.1145/2491627.2491653","url":null,"abstract":"Product line engineering requires changes in approaching software development. Two main processes are to be established: creating a reusable infrastructure, and utilizing it for developing products. In practice, these two processes cannot strictly be separated as product enhancements are requested frequently by customers and a changeable infrastructure is essential to react on market needs. Thus, various approaches, such as proactive, reactive, or agile, have been introduced to handle changes. At a finer level of granularity, however, changes comprise many activities with variable duration and thus result in sets of concurrent and overlapping software development activities. This paper, therefore, investigates changes in more detail and assumes that provisioning comprehensive information on changes and respective states are crucial to organizations for keeping a software product line manageable. As features are a common notion used in software engineering to reflect customer requirements, the paper proposes a conceptual framework for managing feature information and for defining role-specific views throughout all life cycle processes. Its concepts have been derived from an industrial context.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121242146","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}
Alexandr Murashkin, M. Antkiewicz, Derek Rayside, K. Czarnecki
The decision-making process in Product Line Engineering (PLE) is often concerned with variant qualities such as cost, battery life, or security. Pareto-optimal variants, with respect to a set of objectives such as minimizing a variant's cost while maximizing battery life and security, are variants in which no single quality can be improved without sacrificing other qualities. We propose a novel method and a tool for visualization and exploration of a multi-dimensional space of optimal variants (i.e., a Pareto front). The visualization method is an integrated, interactive, and synchronized set of complementary views onto a Pareto front specifically designed to support PLE scenarios, including: understanding differences among variants and their positioning with respect to quality dimensions; solving trade-offs; selecting the most desirable variants; and understanding the impact of changes during product line evolution on a variant's qualities. We present an initial experimental evaluation showing that the visualization method is a good basis for supporting these PLE scenarios.
{"title":"Visualization and exploration of optimal variants in product line engineering","authors":"Alexandr Murashkin, M. Antkiewicz, Derek Rayside, K. Czarnecki","doi":"10.1145/2491627.2491647","DOIUrl":"https://doi.org/10.1145/2491627.2491647","url":null,"abstract":"The decision-making process in Product Line Engineering (PLE) is often concerned with variant qualities such as cost, battery life, or security. Pareto-optimal variants, with respect to a set of objectives such as minimizing a variant's cost while maximizing battery life and security, are variants in which no single quality can be improved without sacrificing other qualities. We propose a novel method and a tool for visualization and exploration of a multi-dimensional space of optimal variants (i.e., a Pareto front). The visualization method is an integrated, interactive, and synchronized set of complementary views onto a Pareto front specifically designed to support PLE scenarios, including: understanding differences among variants and their positioning with respect to quality dimensions; solving trade-offs; selecting the most desirable variants; and understanding the impact of changes during product line evolution on a variant's qualities. We present an initial experimental evaluation showing that the visualization method is a good basis for supporting these PLE scenarios.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127206259","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}
An open issue in industry is the combination of software reuse in the context of large scale Agile Software Development. The speed offered by Agile Software Development is needed for short time to market, while reuse strategies such as Software Product Line Engineering are needed for long-term productivity, efficiency, and profit. The paper investigates, through a survey, communication factors affecting both speed and reuse in 3 large companies developing embedded systems and employing Agile Software Development and Software Product Line Engineering. Our results include a prioritized list of communication related factors obtained by statistical analysis and the recognition and spread of the factors in the companies. We have recognized 5 interfaces with the Agile development team that need to be improved: system engineers (architects), product management, distributed teams, inter-project teams and sales unit. Few factors (involving inter-project communication) depend on the business drivers for the company. We also reveal that Agile teams need strategic and architectural inputs in order to be implanted in a large company employing Software Product Line Engineering. Academic and industrial training as well as different tactics for co-location would improve the communication skills of engineers. There is also a need for solutions, in the reference architecture, for fostering Agile Software Development: the goal is the combination of the focus on customer value of the teams, reusability, system requirements and avoidance of organizational dependencies.
{"title":"Communication factors for speed and reuse in large-scale agile software development","authors":"A. Martini, L. Pareto, J. Bosch","doi":"10.1145/2491627.2491642","DOIUrl":"https://doi.org/10.1145/2491627.2491642","url":null,"abstract":"An open issue in industry is the combination of software reuse in the context of large scale Agile Software Development. The speed offered by Agile Software Development is needed for short time to market, while reuse strategies such as Software Product Line Engineering are needed for long-term productivity, efficiency, and profit. The paper investigates, through a survey, communication factors affecting both speed and reuse in 3 large companies developing embedded systems and employing Agile Software Development and Software Product Line Engineering. Our results include a prioritized list of communication related factors obtained by statistical analysis and the recognition and spread of the factors in the companies. We have recognized 5 interfaces with the Agile development team that need to be improved: system engineers (architects), product management, distributed teams, inter-project teams and sales unit. Few factors (involving inter-project communication) depend on the business drivers for the company. We also reveal that Agile teams need strategic and architectural inputs in order to be implanted in a large company employing Software Product Line Engineering. Academic and industrial training as well as different tactics for co-location would improve the communication skills of engineers. There is also a need for solutions, in the reference architecture, for fostering Agile Software Development: the goal is the combination of the focus on customer value of the teams, reusability, system requirements and avoidance of organizational dependencies.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128164033","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}
Feature models originating from Software Product Line Engineering are a well-known approach to variability modeling. In many situations, the variability does not apply only on features but also on the number of times these features can be cloned. In such a case, cardinality-based feature models are used to specify the number of clones for a given feature. Although previous works already investigated approaches for feature modeling with cardinality, there is still a lack of support for constraints in the presence of clones. To overcome this limitation, we present an abstract model to define constraints in cardinality-based feature models and propose a formal semantics for this kind of constraints. We illustrate the practical usage of our approach with examples from our recent experiences on cloud computing platform configuration.
{"title":"Cardinality-based feature models with constraints: a pragmatic approach","authors":"Clément Quinton, Daniel Romero, L. Duchien","doi":"10.1145/2491627.2491638","DOIUrl":"https://doi.org/10.1145/2491627.2491638","url":null,"abstract":"Feature models originating from Software Product Line Engineering are a well-known approach to variability modeling. In many situations, the variability does not apply only on features but also on the number of times these features can be cloned. In such a case, cardinality-based feature models are used to specify the number of clones for a given feature. Although previous works already investigated approaches for feature modeling with cardinality, there is still a lack of support for constraints in the presence of clones. To overcome this limitation, we present an abstract model to define constraints in cardinality-based feature models and propose a formal semantics for this kind of constraints. We illustrate the practical usage of our approach with examples from our recent experiences on cloud computing platform configuration.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"258 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132858448","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}
Ryosuke Tsuchiya, T. Kato, H. Washizaki, M. Kawakami, Y. Fukazawa, Kentaro Yoshimura
If traceability links between requirements and source code are not clarified when conducting maintenance and enhancements for the same series of software products, engineers cannot immediately find the correction location in the source code for requirement changes. However, manually recovering links in a large group of products requires significant costs and some links may be overlooked. Here, we propose a semi-automatic method to recover traceability links between requirements and source code in the same series of large software products. In order to support differences in representation between requirements and source code, we recover links by using the configuration management log as an intermediary. We refine the links by classifying requirements and code elements in terms of whether they are common or specific to the products. As a result of applying our method to real products that have 60KLOC, we have recovered valid traceability links within a reasonable amount of time. Automatic parts have taken 13 minutes 36 seconds, and non-automatic parts have taken about 3 hours, with a recall of 76.2% and a precision of 94.1%. Moreover, we recovered some links that were unknown to engineers. By recovering traceability links, software reusability will be improved, and software product line introduction will be facilitated.
{"title":"Recovering traceability links between requirements and source code in the same series of software products","authors":"Ryosuke Tsuchiya, T. Kato, H. Washizaki, M. Kawakami, Y. Fukazawa, Kentaro Yoshimura","doi":"10.1145/2491627.2491633","DOIUrl":"https://doi.org/10.1145/2491627.2491633","url":null,"abstract":"If traceability links between requirements and source code are not clarified when conducting maintenance and enhancements for the same series of software products, engineers cannot immediately find the correction location in the source code for requirement changes. However, manually recovering links in a large group of products requires significant costs and some links may be overlooked. Here, we propose a semi-automatic method to recover traceability links between requirements and source code in the same series of large software products. In order to support differences in representation between requirements and source code, we recover links by using the configuration management log as an intermediary. We refine the links by classifying requirements and code elements in terms of whether they are common or specific to the products. As a result of applying our method to real products that have 60KLOC, we have recovered valid traceability links within a reasonable amount of time. Automatic parts have taken 13 minutes 36 seconds, and non-automatic parts have taken about 3 hours, with a recall of 76.2% and a precision of 94.1%. Moreover, we recovered some links that were unknown to engineers. By recovering traceability links, software reusability will be improved, and software product line introduction will be facilitated.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130311349","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}
Self-adaptive systems are a class of software applications, which are able to dynamically transform their internal structure and hence their behavior in response to internal or external stimuli. The transformation may provide the basis for new functionalities or improve or maintain non-functional properties in order to match the application better to its operational requirements and standards. Software Product Line Engineering has rich methods and techniques in variability modeling and management which is one of the main issues in developing self-adaptive systems. Dynamic software product lines (DSPL) have been proposed to exploit the knowledge acquired in SPLE to develop self-adaptive software systems. In this tutorial, we portray the problem of developing self-adaptive systems. Then we investigate how the idea of dynamic software product line could help to deal with the challenges that we face in developing efficient self-adaptive software. We also offer insight into the different approaches that use dynamic software product line engineering for developing self-adaptive systems focusing on practical approaches by showing how the approaches are applied to real case studies and also methods for evaluating these approaches. This tutorial also discuss how DSPL could be used some relevant areas to self-adaptive systems and challenges which still exist in the area.
{"title":"Engineering self-adaptive systems and dynamic software product line","authors":"Mahdi Bashari, E. Bagheri","doi":"10.1145/2491627.2493906","DOIUrl":"https://doi.org/10.1145/2491627.2493906","url":null,"abstract":"Self-adaptive systems are a class of software applications, which are able to dynamically transform their internal structure and hence their behavior in response to internal or external stimuli. The transformation may provide the basis for new functionalities or improve or maintain non-functional properties in order to match the application better to its operational requirements and standards. Software Product Line Engineering has rich methods and techniques in variability modeling and management which is one of the main issues in developing self-adaptive systems. Dynamic software product lines (DSPL) have been proposed to exploit the knowledge acquired in SPLE to develop self-adaptive software systems.\u0000 In this tutorial, we portray the problem of developing self-adaptive systems. Then we investigate how the idea of dynamic software product line could help to deal with the challenges that we face in developing efficient self-adaptive software. We also offer insight into the different approaches that use dynamic software product line engineering for developing self-adaptive systems focusing on practical approaches by showing how the approaches are applied to real case studies and also methods for evaluating these approaches. This tutorial also discuss how DSPL could be used some relevant areas to self-adaptive systems and challenges which still exist in the area.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"159 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115295714","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}
Zhihong Xu, Myra B. Cohen, Wayne Motycka, G. Rothermel
Software Product Line (SPL) engineering offers several advantages in the development of families of software products. There is still a need, however, to generate test cases for individual products in product lines more efficiently. In this paper we propose an approach, CONTESA, for generating test cases for SPLs using test suite augmentation. Instead of generating test cases for products independently, our approach generates new test cases for products in an order that allows it to build on test cases created for products tested earlier. In this work, we use a genetic algorithm to generate test cases, targeting branches not yet covered in each product, although other algorithms and coverage criteria could be utilized. We have evaluated CONTESA on two non-trivial SPLs, and have shown that CONTESA is more efficient and effective than an approach that generates test cases for products independently. A further evaluation shows that CONTESA is more effective at achieving coverage, and reveals as many faults as an existing feature-based testing approach.
{"title":"Continuous test suite augmentation in software product lines","authors":"Zhihong Xu, Myra B. Cohen, Wayne Motycka, G. Rothermel","doi":"10.1145/2491627.2491650","DOIUrl":"https://doi.org/10.1145/2491627.2491650","url":null,"abstract":"Software Product Line (SPL) engineering offers several advantages in the development of families of software products. There is still a need, however, to generate test cases for individual products in product lines more efficiently. In this paper we propose an approach, CONTESA, for generating test cases for SPLs using test suite augmentation. Instead of generating test cases for products independently, our approach generates new test cases for products in an order that allows it to build on test cases created for products tested earlier. In this work, we use a genetic algorithm to generate test cases, targeting branches not yet covered in each product, although other algorithms and coverage criteria could be utilized. We have evaluated CONTESA on two non-trivial SPLs, and have shown that CONTESA is more efficient and effective than an approach that generates test cases for products independently. A further evaluation shows that CONTESA is more effective at achieving coverage, and reveals as many faults as an existing feature-based testing approach.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131251502","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}
As automotive electronics systems are getting lager and more complex, much more capability of software development is now indispensable to us automotive suppliers. In this presentation we show automotive software trend and features, then show our activities to realize more efficient software development.
{"title":"Innovation of automotive software development","authors":"Masahiro Goto","doi":"10.1145/2491627.2491803","DOIUrl":"https://doi.org/10.1145/2491627.2491803","url":null,"abstract":"As automotive electronics systems are getting lager and more complex, much more capability of software development is now indispensable to us automotive suppliers. In this presentation we show automotive software trend and features, then show our activities to realize more efficient software development.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"375 1-6","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120907407","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}
Most research in product line engineering focuses on the domain engineering phase. However, the ultimate reason of any Software Product Line Engineering (SPLE) activity is the derivation of products and thus application engineering. In this research we focus on how the configuration activity within application engineering can be supported to achieve sufficient efficiency. We aim to provide a broad overview of the potential research landscape where we also discuss the actual coverage of the field by research work. As a result, we do not only provide an overview of the field, but do also describe several potential research approaches that have so far received very little attention.
{"title":"Supporting the effective configuration of software product lines","authors":"Sascha El-Sharkawy, Klaus Schmid","doi":"10.1145/2364412.2364432","DOIUrl":"https://doi.org/10.1145/2364412.2364432","url":null,"abstract":"Most research in product line engineering focuses on the domain engineering phase. However, the ultimate reason of any Software Product Line Engineering (SPLE) activity is the derivation of products and thus application engineering. In this research we focus on how the configuration activity within application engineering can be supported to achieve sufficient efficiency.\u0000 We aim to provide a broad overview of the potential research landscape where we also discuss the actual coverage of the field by research work. As a result, we do not only provide an overview of the field, but do also describe several potential research approaches that have so far received very little attention.","PeriodicalId":339444,"journal":{"name":"Software Product Lines Conference","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115769135","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}