310 likes | 546 Views
Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse. Julia Rubin IBM Research - Haifa, Israel University of Toronto, Canada. Joint work with Prof. Marsha Chechik. December 9, 2013.
E N D
Cloned Product Variants:From Ad-Hoc to Well-Managed Software Reuse Julia Rubin IBM Research - Haifa, IsraelUniversity of Toronto, Canada Joint work with Prof. Marsha Chechik December 9, 2013
Software Product Line Engineering emerged as a discipline that promotes Planned and PredictiveSoftware Reuse K. Pohl et al., Software Product Line Engineering: Foundations, Principles, and Techniques, 2005 P. C. Clements and L. Northrop, Software Product Lines: Practices and Patterns, 2001
In reality, software products are often created ad-hoc, by cloning and modifying existing variants (the “clone-and-own” approach)
Example – GPS Products Trip Computer Layered Map POI Life Traffic Info GPS-Pro * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Example – GPS Products A cheaper version … Trip Computer Layered Map Layered Map POI POI Life Traffic Info GPS-Pro GPS-EZ * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Example – GPS Products Product implementations start growing apart … Trip Computer Layered Map Layered Map POI (extended) POI 3D Buildings Life Traffic Info Night Mode Shortest TimeRouting GPS-Pro GPS-EZ * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Example – GPS Products Does Night Mode work with3D Buildings? Trip Computer Layered Map Layered Map POI (extended) POI 3D Buildings Life Traffic Info ? Night Mode Night Mode Shortest TimeRouting GPS-Pro GPS-EZ * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Example – GPS Products Can Shortest Time Routing be copied? Trip Computer Layered Map Layered Map POI (extended) POI 3D Buildings Life Traffic Info ? Night Mode Night Mode req Shortest TimeRouting GPS-Pro GPS-EZ * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Example – GPS Products Are the implementations of POI consistent between the products? Are the implementations of POI consistent between the products? Trip Computer Layered Map Layered Map POI (extended) POI 3D Buildings Life Traffic Info ? Night Mode Night Mode req Shortest TimeRouting GPS-Pro GPS-EZ * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
As the number of cloned variants grows and they further grow apart,ad-hoc reuse becomes challenging What can we do?
Unify clones into a Single Copy Representation(Merge-refactoring)
Unify clones into a Single Copy Representation(Merge-refactoring) Time-, cost- and labor-intensive
Despite disadvantages, some are happy with cloning Exploratory Study: 6 industrial product lines realized via cloning* Rapidly available Reuse of verified code Independence of developers No upfront investment * An Exploratory Study of Cloning in Industrial Software Product Lines, Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki, CSMR 2013
Strategy 1: Unify clones into a Single Copy Representation (Merge-refactoring) • cost- and effort-intensive, benefits are not always immediate Strategy 2: Provide support for efficient reuse with cloning(Clone-based Software Product Line Engineering) * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Both Strategies Coexist Which is oftendelayed Merge-refactoring is a long journey When performed, it is done incrementally(for a subset of products), while the remaining ones are still maintained as clones Companies need assistance with both merge-refactoring and supporting existing clones
Exploratory Study: Companies in Different Stages of Reuse Management Goal: study development activities, gather and classify needs and requirements Company 3 Company 2 Company 1 Result: a framework for managingcloned product variants * Managing Cloned Product Variants: A Framework and Experience. Julia Rubin, Krzysztof Czarnecki, and Marsha Chechik, SPLC 2013
A Framework for Managing Cloned Product Variants Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together Identify artifacts implementing a feature (known as feature location) development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together Are two features from distinct products indeed identical? development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Can two sets of features from distinct products work together? (known as feature interaction) Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together Does one feature require another from the same product? development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together Unification of either multiple sets of features from distinct products or of complete products development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together Product-preserving refactoring of a product line architecture development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Some operators received a lot of attention in the literature (under specific conditions)while other are poorly studied Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together common development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
A Framework for Managing Cloned Product Variants Our framework helps organizing knowledge around possible implementation of the operators Supporting Clones: establish new variants,share features, etc. Merge-Refactoring: put variants together common development activities conceptual operators 3. Same? 4. Interact? 5. Depends-on? 1. FindFD 2. FindFI 6. Merge 7. Reorganize
Main Benefits of the Framework Merge-Refactoring Supporting Clones development activities conceptual operators Identify required support Categorize existing work and identify gaps Scope company’s investment Build solutions for purpose …
What’s Next? • Improve the framework by considering additional scenarios • We do not claim that the current framework is complete(or will ever be), but it is reasonable for the real-life scenarios that we analyzed • Invest in the implementation of the individual operators • For realistic use cases • Investigate the economic effectiveness of merge-refactorings • Develop novel approaches for managed reuse that rely on cloning • Mitigating its disadvantages while leveraging advantages