29
Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse Julia Rubin IBM Research - Haifa, Israel University of Toronto, Canada December 9, 2013 Joint work with Prof. Marsha Chechik

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

  • Upload
    devaki

  • View
    47

  • Download
    0

Embed Size (px)

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

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

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

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

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

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

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

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

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

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

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

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

Unify clones into a Single Copy Representation (Merge-refactoring)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Summary

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

Thank You!