Cloned Product Variants From AdHoc to WellManaged Software
- Slides: 29
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 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 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 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 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 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 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 becomes challenging What can we do?
Unify clones into a Single Copy Representation (Merge-refactoring)
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 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, 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, 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, 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 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 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 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 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 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 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 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 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 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 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
Summary
Thank You!
- Ad hoc polymorphism c++
- Adhoc.com
- Judaism variants
- Hemoglobin variants
- Efficient variants of the icp algorithm
- Efficient variants of the icp algorithm
- Pram models
- Variants of english language
- Copy number variants
- Luke gill
- Product life cycle kotler
- Contoh produk bersama
- What is a firm
- Product line and product mix examples
- Mkt 600
- Inner product outer product
- Product/service desirability examples
- Overview definition
- Sifat perkalian dot vektor
- Core customer value
- Dogld
- Hasil kali silang vektor
- Domestic product and national product
- Generic product in software engineering
- Agile product lifecycle management software
- Software product lines
- Product specification software
- Software that is not complicated
- Product class examples
- Characteristics of a good software product