Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse

Preview:

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

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 (the “clone-and-own” approach)

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.

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.

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.

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?

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 ?

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

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

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*

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

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

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

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?

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?

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)

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?

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?

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

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?

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?

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

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

Thank You!

Recommended