Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse
description
Transcript of Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse
![Page 1: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/1.jpg)
Cloned Product Variants:From Ad-Hoc to Well-Managed
Software Reuse
Julia RubinIBM Research - Haifa, Israel
University of Toronto, Canada
December 9, 2013
Joint work with Prof. Marsha Chechik
![Page 2: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/2.jpg)
Software Product Line Engineering emerged as a discipline that promotes Planned and Predictive Software 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
![Page 3: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/3.jpg)
In reality, software products are often created ad-hoc,
by cloning and modifying existing variants (the “clone-and-own” approach)
![Page 4: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/4.jpg)
Example – GPS Products
GPS-Pro
Life Traffic InfoPOI
Layered MapTrip Computer
* Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
![Page 5: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/5.jpg)
Example – GPS Products
GPS-Pro GPS-EZ
Life Traffic InfoPOI
Layered MapTrip Computer
POILayered Map
A cheaper version …
* Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
![Page 6: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/6.jpg)
Example – GPS Products
GPS-Pro GPS-EZ
Life Traffic InfoPOI
Layered MapTrip Computer
POI (extended)Layered Map
Product implementations start growing apart …
3D Buildings
Shortest TimeRouting
Night Mode
* Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
![Page 7: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/7.jpg)
Example – GPS Products
GPS-Pro GPS-EZ
Life Traffic InfoPOI
Layered MapTrip Computer
POI (extended)Layered Map
Shortest TimeRouting
* Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Night Mode
3D Buildings
Night Mode ?
Does Night Mode work with
3D Buildings?
Does Night Mode work with
3D Buildings?
![Page 8: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/8.jpg)
Example – GPS Products
GPS-Pro GPS-EZ
Life Traffic InfoPOI
Layered MapTrip Computer
POI (extended)Layered Map
Shortest TimeRouting
* Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Night Mode
3D Buildings
Night Mode
Can Shortest Time Routing be
copied?
req ?
![Page 9: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/9.jpg)
Example – GPS Products
GPS-Pro GPS-EZ
Life Traffic InfoPOI
Layered MapTrip Computer
POI (extended)Layered Map
Shortest TimeRouting
* Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.
Night Mode
3D Buildings
Night Mode
Are the implementations of POI consistent
between the products?
Are the implementations of POI consistent
between the products?
?
Are the implementations of POI consistent
between the products?
Are the implementations of POI consistent
between the products?
req
![Page 10: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/10.jpg)
As the number of cloned variants grows and they further grow apart,
ad-hoc reuse becomes challenging
What can we do?
![Page 11: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/11.jpg)
Unify clones into a Single Copy Representation (Merge-refactoring)
![Page 12: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/12.jpg)
Unify clones into a Single Copy Representation (Merge-refactoring)
Time-, cost- and labor-
intensive
![Page 13: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/13.jpg)
Rapidly available
Independence of developers
Reuse of verified code
No upfront investment
Despite disadvantages, some are happy with cloning
* 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
Exploratory Study: 6 industrial product lines realized via cloning*
![Page 14: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/14.jpg)
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.
![Page 15: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/15.jpg)
Both Strategies Coexist
Which is often delayed
When performed, it is done incrementally
(for a subset of products), while the remaining ones are still
maintained as clones
Merge-refactoring is a long journey
Companies need assistance with both merge-refactoring and supporting existing clones
![Page 16: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/16.jpg)
Exploratory Study: Companies in Different Stages of Reuse Management
Company 3
Company 2
Company 1
Goal: study development activities, gather and classify needs and requirements
* Managing Cloned Product Variants: A Framework and Experience. Julia Rubin, Krzysztof Czarnecki, and Marsha Chechik, SPLC 2013
Result: a framework for managingcloned product variants
![Page 17: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/17.jpg)
A Framework for Managing Cloned Product Variants
development activities
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
![Page 18: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/18.jpg)
A Framework for Managing Cloned Product Variants
development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
Identify artifacts implementing a feature
(known as feature location)
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
![Page 19: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/19.jpg)
A Framework for Managing Cloned Product Variants
development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
Are two features from distinct products indeed identical?
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
![Page 20: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/20.jpg)
A Framework for Managing Cloned Product Variants
development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
Can two sets of features from distinct products work together? (known as feature interaction)
![Page 21: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/21.jpg)
A Framework for Managing Cloned Product Variants
development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
Does one feature require another from the same
product?
![Page 22: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/22.jpg)
A Framework for Managing Cloned Product Variants
development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
Unification of either multiple sets of features from distinct products or of
complete products
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
![Page 23: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/23.jpg)
A Framework for Managing Cloned Product Variants
development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
Product-preserving refactoring of a product line architecture
![Page 24: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/24.jpg)
A Framework for Managing Cloned Product Variants
common development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
Some operators received a lot of attention in the literature
(under specific conditions)while other are poorly studied
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
![Page 25: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/25.jpg)
A Framework for Managing Cloned Product Variants
common development activities
Merge-Refactoring: put variants together
Supporting Clones: establish new variants,
share features, etc.
conceptual operators
Our framework helps organizing knowledge around possible
implementation of the operators
6. Merge7. Reorganize
1. FindFD2. FindFI
3. Same?4. Interact?
5. Depends-on?
![Page 26: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/26.jpg)
Main Benefits of the Framework
development activities
Merge-Refactoring Supporting Clones
conceptual operators
Identify required support
Categorize existing work
and identify gaps
Build solutions for
purpose
…Scope
company’s investment
![Page 27: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/27.jpg)
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
![Page 28: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/28.jpg)
Summary
![Page 29: Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse](https://reader035.fdocuments.in/reader035/viewer/2022062518/568143a7550346895db02f97/html5/thumbnails/29.jpg)
Thank You!