Cloned Product Variants: From Ad-Hoc to Well-Managed Software Reuse Julia Rubin IBM Research - Haifa, Israel University of Toronto, Canada December 9,

Slides:



Advertisements
Similar presentations
Light Enterprise Architecture
Advertisements

Migration Considerations and Techniques to MPLS-TP based Networks and Services Nurit Sprecher / Nokia Siemens Networks Yaacov Weingarten / Nokia Siemens.
Sazalinsyah Razali (syah)‏ Dr. Q. Meng (Supervisor)‏
Flexible Product Line Engineering With a Virtual Platform Michał Antkiewicz NIER Track, ICSE’14 June 5,
Product Line Engineering Workshop Waterloo, December 9, 2013 Organizers: Michał Antkiewicz, Krzysztof Czarnecki, Andrzej Wąsowski, Ina Schaefer.
Lecture # 2 : Process Models
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes
CS3773 Software Engineering Lecture 01 Introduction.
HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Alternate Software Development Methodologies
Chapter 15 Application of Computer Simulation and Modeling.
Software Requirements
PRJ270: Essentials of Rational Unified Process
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Computer Systems & Architecture Lesson Software Product Lines.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application.
Software Architecture April-10Confidential Proprietary Master Data Management mainly inspired from Enterprise Master Data Management – An SOA approach.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Evolutionary Development and Rapid Prototyping By: Shelone Reid Amanda Smith.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
Software Development Process
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Institut Experimentelles Software Engineering Fraunhofer IESE Klaus Schmid Relating Product Line Adoption Mode and Transition Process.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Teaching material for a course in Software Project Management & Software Engineering – part II.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Enterprise Architecture Enterprise Architecture = a framework or ‘blueprint’ for how the organization achieves the business objectives at hand and in future.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi and Reidar Conradi Dept. Computer and.
HRL © 2009 IBM Corporation Model-Driven Product-Lines for Embedded Software and for Supply-Chain Companies Tali Yatzkar-Haham Julia Rubin,
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
University of Toronto Department of Computer Science Lifting Transformations to Product Lines Rick Salay, Michalis Famelis, Julia Rubin, Alessio Di Sandro,
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
1 Recommendations Now that 40 GbE has been adopted as part of the 802.3ba Task Force, there is a need to consider inter-switch links applications at 40.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Software Engineering Introduction.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Summary of persistence discussions with LHCb and LCG/IT POOL team David Malon Argonne National Laboratory Joint ATLAS, LHCb, LCG/IT meeting.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
A focus group is actually gathering of people who are customers or users representatives for a product to gain its feedback. The feedback can be collected.
Systems Development Process and Methodologies Dr. T. Ravichandran.
Chapter 12: Other Quality Attributes
TK2023 Object-Oriented Software Engineering
Design Patterns: MORE Examples
Variability-based model transformation
HCI in the software process
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Presented by Igor Ivković
Introduction to Software Engineering
Model-Driven Analysis Frameworks for Embedded Systems
Informatics 121 Software Design I
Requirements Engineering for Product Lines
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Practical Software Engineering
Introduction to Software Engineering
HCI in the software process
Chapter 1: Software and Software Engineering
Presentation transcript:

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

Software Product Line Engineering Planned and PredictiveSoftware 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

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 Info POI Layered Map Trip Computer * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.

Example – GPS Products GPS-ProGPS-EZ Life Traffic Info POI Layered Map Trip Computer POI Layered Map A cheaper version … * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.

Example – GPS Products GPS-ProGPS-EZ Life Traffic Info POI Layered Map Trip Computer POI (extended) Layered Map Product implementations start growing apart … 3D Buildings Shortest Time Routing Night Mode * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC 2012.

Example – GPS Products GPS-ProGPS-EZ Life Traffic Info POI Layered Map Trip Computer POI (extended) Layered Map Shortest Time Routing * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC Night Mode 3D Buildings Night Mode ? Does Night Mode work with 3D Buildings?

Example – GPS Products GPS-ProGPS-EZ Life Traffic Info POI Layered Map Trip Computer POI (extended) Layered Map Shortest Time Routing * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC Night Mode 3D Buildings Night Mode Can Shortest Time Routing be copied? req ?

Example – GPS Products GPS-ProGPS-EZ Life Traffic Info POI Layered Map Trip Computer POI (extended) Layered Map Shortest Time Routing * Managing forked product variants, Julia Rubin, Andrei Kirshin, Goetz Botterweck, Marsha Chechik, SPLC Night Mode 3D Buildings Night Mode 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)

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 delayed Which is often delayed incrementally When performed, it is done incrementally (for a subset of products), while the remaining ones are still maintained as clones long journey 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 Goalstudy development activities, gather and classify needs and requirements 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 Result: a framework for managing cloned product variants

A Framework for Managing Cloned Product Variants development activities 6. Merge 7. Reorganize 1. FindFD 2. FindFI 3. Same? 4. Interact? 5. Depends-on? Merge-Refactoring: put variants together Supporting Clones: establish new variant share features, etc. 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 variant share features, etc. Supporting Clones: establish new variants, share features, etc. conceptual operators Identify artifacts implementing a feature (known as feature location) 6. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. Supporting Clones: establish new variants, share features, etc. conceptual operators Are two features from distinct products indeed identical? 6. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. Supporting Clones: establish new variants, share features, etc. conceptual operators 6. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. Supporting Clones: establish new variants, share features, etc. conceptual operators 6. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. 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. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. Supporting Clones: establish new variants, share features, etc. conceptual operators 6. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. 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. Merge 7. Reorganize 1. FindFD 2. 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 variant share features, etc. Supporting Clones: establish new variants, share features, etc. conceptual operators Our framework helps organizing knowledge around possible implementation of the operators 6. Merge 7. Reorganize 1. FindFD 2. 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!