Cloned Product Variants From AdHoc to WellManaged Software

  • Slides: 29
Download presentation
Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse Julia Rubin IBM Research -

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

Software Product Line Engineering emerged as a discipline that promotes Planned and Predictive Software

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

In reality, software products are often created ad-hoc, by cloning and modifying existing variants

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 *

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 POI Life

Example – GPS Products A cheaper version … Trip Computer Layered Map POI Life Traffic Info Layered Map POI 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

Example – GPS Products Product implementations start growing apart … Trip Computer Layered Map POI Life Traffic Info Night Mode Layered Map POI (extended) 3 D Buildings Shortest Time Routing 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 with 3 D Buildings? Trip Computer

Example – GPS Products Does Night Mode work with 3 D Buildings? Trip Computer Layered Map POI Life Traffic Info Night Mode Layered Map POI (extended) 3 D Buildings Night Mode ? Shortest Time Routing 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? req Trip Computer Layered

Example – GPS Products Can Shortest Time Routing be copied? req Trip Computer Layered Map POI Life Traffic Info Night Mode Layered Map POI (extended) 3 D Buildings Night Mode ? Shortest Time Routing 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? req

Example – GPS Products Are the implementations of POI consistent between the products? req Trip Computer Layered Map POI Life Traffic Info Night Mode Layered Map POI (extended) 3 D Buildings Night Mode ? Shortest Time Routing 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

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)

Unify clones into a Single Copy Representation (Merge-refactoring) r o b a l d

Unify clones into a Single Copy Representation (Merge-refactoring) r o b a l d n a t s o c , e v e i s m i n T inte

Despite disadvantages, some are happy with cloning Exploratory Study: 6 industrial product lines realized

Despite disadvantages, some are happy with cloning Exploratory Study: 6 industrial product lines realized via cloning* Reuse of verified code No upfront investment Rapidly available Independence of developers * 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,

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 Merge-refactoring is a long journey Which is often delayed When performed,

Both Strategies Coexist Merge-refactoring is a long journey Which is often delayed 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: Goal study development activities,

Exploratory Study: Companies in Different Stages of Reuse Management Goal: Goal study development activities, gather and classify needs and requirements Company 3 Company 2 Company 1 Result: Result a framework for managing cloned 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 Merge-Refactoring: put variants together Supporting Clones: establish

A Framework for Managing Cloned Product Variants Merge-Refactoring: put variants together Supporting Clones: establish new variants, variant share features, etc. development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Merge-Refactoring: Supporting Clones: establish new variants, variant

A Framework for Managing Cloned Product Variants Merge-Refactoring: Supporting Clones: establish new variants, variant share features, etc. Identify artifacts implementing a feature (known as feature location) put variants together development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Merge-Refactoring: put variants together Supporting Clones: variant

A Framework for Managing Cloned Product Variants Merge-Refactoring: put variants together Supporting Clones: variant Are twoestablish featuresnew fromvariants, distinct share features, etc. products indeed identical? development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Merge-Refactoring: put variants together Supporting Clones: Can

A Framework for Managing Cloned Product Variants Merge-Refactoring: put variants together Supporting Clones: Can two sets of features from distinct products establishwork new together? variants, variant (known as feature interaction) share features, etc. development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Merge-Refactoring: Does one feature require put variants

A Framework for Managing Cloned Product Variants Merge-Refactoring: Does one feature require put variants together another from the same product? Supporting Clones: establish new variants, variant share features, etc. development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Merge-Refactoring: Supporting Clones: establish new variants, variant

A Framework for Managing Cloned Product Variants Merge-Refactoring: Supporting Clones: establish new variants, variant put variants together Unification of either multipleshare sets features, of etc. features from distinct products or of complete products development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Merge-Refactoring: Supporting Clones: establish new variants, variant

A Framework for Managing Cloned Product Variants Merge-Refactoring: Supporting Clones: establish new variants, variant put variants together sharerefactoring features, etc. Product-preserving of a product line architecture development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Some operators received Supporting Clones: Merge-Refactoring: a

A Framework for Managing Cloned Product Variants Some operators received Supporting Clones: Merge-Refactoring: a lot of attention in the literature establish new variants, variant put variants together (under specific share conditions) features, etc. while other are poorly studied common development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

A Framework for Managing Cloned Product Variants Supporting Clones: Merge-Refactoring: Our framework helps organizing

A Framework for Managing Cloned Product Variants Supporting Clones: Merge-Refactoring: Our framework helps organizing establish new variants, variant put variants together knowledge around possible share features, etc. implementation of the operators common development activities conceptual operators 1. Find. FD 2. Find. FI 3. Same? 4. Interact? 5. Depends-on? 6. Merge 7. Reorganize

Main Benefits of the Framework Merge-Refactoring Supporting Clones development activities conceptual operators Identify required

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

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

Summary

Summary

Thank You!

Thank You!