SlideShare a Scribd company logo
27th IEEE International Conference on Software Maintenance




 Incremental and Iterative Reengineering
     towards Software Product Line:
        An Industrial Case Study
Gang Zhang1,3, Liwei Shen1, Xin Peng1, Zhenchang Xing2, Wenyun Zhao1
         1School of Computer Science, Fudan University, Shanghai, China
        2School of Computing, National University of Singapore, Singapore

                  3Alcatel-Lucent Shanghai Bell, Shanghai, China


                          pengxin@fudan.edu.cn
               www.se.fudan.edu.cn/pengxin
Background: Reengineering towards SPL
• SPL: Software Product Line [SEI]
    – a set of software-intensive systems that share a
      common, managed set of features
    – developed from a common set of core assets in a
      prescribed way
• SPL adoption by reengineering is common
    – a collection of variant products developed with ad-hoc
      reuse already exist there
    – reengineering: migration to SPL in an extractive way
         commonality and variability among variant products are identified
         core assets are extracted
         legacy products are reconstructed based on the shared core assets
                                                                          2/25
2011-10-06                   http://www.se.fudan.edu.cn
The Subject Case: IXM-PF
a telecom product family in Alcatel-Lucent
                 AXM
                                       History: > 10 years
                 IXM                   Variants: 6 products
                                       Scale: >10M LOC/product
  IXM-G                   IXM-A
                                                300~400 modules/product
             IXM-U     IXM-MD


- New products were developed by branching and adapting
from selected ancestors in an ad-hoc way
- Variant products were maintained separately
                                                                   3/25
2011-10-06                http://www.se.fudan.edu.cn
Problems in IXM-PF Evolution




product          Cost of                        Cost of
branches       new feature                     maintenance
               development

                                                             4/25
2011-10-06        http://www.se.fudan.edu.cn
Reengineering to SPLE


             Product A                    Product B

How to establish the core
assets in an extractive way?

                                          Product C   5/12



                                       Support product customization
                                       Improve maintainability
                                       Improve extensibility

       SPL core assets                                            5/25
2011-10-06               http://www.se.fudan.edu.cn
SPL Reengineering:
         Incremental over Big-bang
                The Economic Impact of Product Line Adoption and Evolution.
                                               by K. Schmid and M. Verlage
                                                  IEEE Software 2002, 19(4)




Huge initial
investment


               Big-bang versus Incremental
                                                                     6/25
 2011-10-06          http://www.se.fudan.edu.cn
More Challenges
             Don’t bother me when
             I am busy working for                     Can we achieve
             a new delivery!                           real benefits from
                                                       SPL reengineering?




      developer
multi-tasking team                                  management
                                             lack of SPLE knowledge
                                                  and confidence

                    limited budget:
   often no additional budget for SPL reengineering                    7/25
2011-10-06                http://www.se.fudan.edu.cn
Requirements for SPL Reengineering Process
    R1: Proper increment definition
    R2: Steady reengineering process

                              to deal with


    Insufficient confidence on the success
    Limited additional budget for reengineering
    Parallel work on regular product delivery


                                                  8/25
2011-10-06          http://www.se.fudan.edu.cn
IXM-PF Reengineering Project Overview
 • The same team took on the regular
   maintenance and delivery tasks of related
   products during the reengineering process
 • Some principles from agile development
   are adopted
 • Achieved initial success after 1.5 years
     – an initial set of core assets established
     – reused in both legacy products and several new products
     – the confidence of the organization on SPL reengineering
       strengthened
                                                                 9/25
 2011-10-06              http://www.se.fudan.edu.cn
Principles in our Attempts
           Principle                          Objective
  value-based increment
  definition                           Early success

  domain driven reengineering          Less initial investment

  localized impact                    Low Risk

  iterative propagation               Early value delivery


                                                          10/25
2011-10-06           http://www.se.fudan.edu.cn
The Reengineering Process

              an increment
              (component)




             The next increment              Iterative propagated
                                             to other products
                                                                    11/25
2011-10-06                   http://www.se.fudan.edu.cn
Key Practices Summary
• Value-driven Increment Definition
• Component Reengineering in Reference Product
    –   reference product selection
    –   domain model definition
    –   component responsibility alignment
    –   boundary reengineering on reference product
    –   internal Implementation Reengineering
    –   integration into reference product
• Iterative Core Assets Refinement
    – external design refinement
    – core assets extension and integration
                                                        12/25
2011-10-06                 http://www.se.fudan.edu.cn
Value-Driven Increment Definition
 SPL dimension
    (space)
product
specific
component

component
shared with
differences

component
shared without                                                  Project dimension
any differences
                                                                           (time)
                   low                 medium             high
               possibility of being involved in future maintenance and extension
                                                                                   13/25
  2011-10-06                     http://www.se.fudan.edu.cn
Reference Product Selection
• Be actively maintained
• Has the most “common” implementation of the component




Reference Product Selection for EntityManagement
                                                      14/25
2011-10-06           http://www.se.fudan.edu.cn
Domain Model Definition
                                                               @reference
                                                               product
                                              System



                                               Node             Lookup

                                                                           UniqueID
                                               Entity           Indexing
                                                                           ReadableID

                                    ConcreteEntity      ConcreteEntity         domain
                                       TypeA               TypeX               concept

help the clarification and refactoring of
the component responsibility, boundary,                  responsibility
and internal implementation
                                                         boundary
help addressing the variability of the
components across variant products                       implementation
                                                                                         15/25
  2011-10-06                    http://www.se.fudan.edu.cn
Domain-Driven Responsibility Alignment

@reference
product

Consistent                               Keep unchanged
                                         Re-aligned with
Partially consistent                     domain model
Erroneous                                Removed

Irrelevant                               Removed


               Component: EntityManagement
  Consistent      Partially consistent        Erroneous    Irrelevant
  27              48                          21           39


                                                                        16/25
2011-10-06                    http://www.se.fudan.edu.cn
Boundary Reengineering
                                      other components              @reference
                                                                       product


 new boundary
 old boundary                                 adapter

                                Component implementation
                                  will be replaced latter
- internal-adapters were implemented to provide the expected interfaces
- external-dependencies of other components on the current component are
cleaned up-
- system level tests were executed continuously to guarantee that no side-effect
was introduced
                                                                          17/25
  2011-10-06                   http://www.se.fudan.edu.cn
Internal Implementation Reengineering
                                                         @reference
                                                         product
                                                             UniqueIDLookup

                       EntityManager       LookupStrategy
                                                                   ReadableIDLookup


                           Entity          EntityTypeStrategy      EntityTypeAStrategy


                       UniqueIDGenerator
                                                            class common across products

                       ConfigManager_IXM                    class specific to IXM




- improve the maintainability of the reference product
- enhance the reusability to support variability
                                                                                           18/25
 2011-10-06          http://www.se.fudan.edu.cn
Iterative Propagation to Other Products




  domain model continually refined and updated




component adapted and integrated in variant products
                                                  19/25
2011-10-06          http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement)
        - Metrics about variants support
                              Before                  After
                              reengineering           reengineering
  Lines of code                         91,106               31,932
  Average McCabe                          5.85                 2.62
  Complexity
  Average                                 15.82                 7.03
  statements/operation
  Lines of code to support                    196                140
  concreteTypeA

  Code fragments to support                  139                      2
  concreteTypeA


                                                                          20/25
2011-10-06               http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement)
      -effort/bug trend in integration (cont.)


     Integration Effort Trend (PY)             Bugs Reported Trend in Integration

0.6                                          30
0.5       0.5                                25        25
0.4                                          20
0.3                0.3     0.3               15
0.2                                          10
0.1                                 0.1       5                  4
                                              0                        2      0
 0                                                  IXM       IXM-MD IXM-A IXM-G
        IXM     IXM-MD   IXM-A   IXM-G




                                                                             21/25
 2011-10-06                      http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement)
       Return of Investment (ROI)
Return                         Investment
                               I-1. Domain model analysis
Saved new feature              I-2. Responsibility model definition
development cost in all        I-3. Boundary reengineering (all related
products                       products)
                               I-4. Component level automation test
       8.8 PY                  I-5. Internal implementation refactoring
                               I-6. Total integration and faults fixing cost




                                                   4.2 PY

                   By person year (PY)
ROI=(R-I)/R (8.8-4.2)/4.2=110%                                          22/25
2011-10-06                http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement
               ROI Trend
    10



     8



     6



     4                                                          Accumulated Return
                                                                Investment
                                                                Accumulated Profit
                                                                Accumulated Profit Trend
     2



     0
         Initial   >IXM   >IXM-MD   >IXM-A    >IXM-G   >IXM-U


    -2



    -4
                                                                                       23/25
2011-10-06                      http://www.se.fudan.edu.cn
Conclusion
• Incremental and iterative approach with
  stakeholder-value considerations can help to
    – achieve steady and successful SPL reengineering
    – in a risk-reduced and cost-effective manner
• Agile principles fit well for SPL reengineering

• SPL adoption can be regarded as an emergent
  result of reconstruction and improvement of
  existing product assets
                                                        24/25
2011-10-06            http://www.se.fudan.edu.cn
Thanks!

                                           25/25
2011-10-06    http://www.se.fudan.edu.cn

More Related Content

PPT
Les outils de Devops IBM
PDF
Life After PPM
PPTX
Objectif cloud
PDF
Eight deadly defects in systems engineering and how to fix them
PPTX
Estimating Packaged Software - The first part of a framework
PDF
Object and method exploration for embedded systems
PDF
Exploiting Tools for Faster, More Acceptable Process Improvement Initiatives
PDF
Visure Requirements for Product and Embedded Devolpment - Visure Solutions - ...
Les outils de Devops IBM
Life After PPM
Objectif cloud
Eight deadly defects in systems engineering and how to fix them
Estimating Packaged Software - The first part of a framework
Object and method exploration for embedded systems
Exploiting Tools for Faster, More Acceptable Process Improvement Initiatives
Visure Requirements for Product and Embedded Devolpment - Visure Solutions - ...

What's hot (20)

PDF
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
PDF
IBM Rational 8/16 Webinar Presentation
PDF
Aggregating application, service, and portfolio demand using HP Project and P...
PDF
Malone r12 upgrade-versus-reimplementation
PDF
Day 1 p3 - project and portfolio management
PDF
Conspectus January 2010 News Bulletin
PDF
Enterprise IPv6 Deployment
PPT
Systems Engineering - a smarter way
PDF
General and Systemic View of Life Cycle of Projects and Products
PDF
LeverX - A Comprehensive Guide to SAP PLM 7.01
PDF
Key strategies for discrete manufacturers j caie arc japan 2008
PPTX
Who is GEM, Inc.
PDF
Why bmc remedy is better than hp 4.5
PPT
Smartere test og udvikling med virtualiserede miljøer, Mark Garcia, IBM US
PDF
Derek Wiggill, CEO, Argility
PDF
Organizing Design-Driven Development Using Rational Requirements Composer
KEY
Structured development in BMC Remedy AR System
PDF
Optimising and prioritising your SDLC using business intelligence
PPT
Systems engineering and project management – partners in successful projects
PDF
Scrum Day 2012 Keynote: Combining Design and Development
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
IBM Rational 8/16 Webinar Presentation
Aggregating application, service, and portfolio demand using HP Project and P...
Malone r12 upgrade-versus-reimplementation
Day 1 p3 - project and portfolio management
Conspectus January 2010 News Bulletin
Enterprise IPv6 Deployment
Systems Engineering - a smarter way
General and Systemic View of Life Cycle of Projects and Products
LeverX - A Comprehensive Guide to SAP PLM 7.01
Key strategies for discrete manufacturers j caie arc japan 2008
Who is GEM, Inc.
Why bmc remedy is better than hp 4.5
Smartere test og udvikling med virtualiserede miljøer, Mark Garcia, IBM US
Derek Wiggill, CEO, Argility
Organizing Design-Driven Development Using Rational Requirements Composer
Structured development in BMC Remedy AR System
Optimising and prioritising your SDLC using business intelligence
Systems engineering and project management – partners in successful projects
Scrum Day 2012 Keynote: Combining Design and Development
Ad

Viewers also liked (20)

PDF
Industry - Estimating software maintenance effort from use cases an indu...
PDF
Natural Language Analysis - Mining Java Class Naming Conventions
PDF
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
PDF
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
PDF
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
PDF
Reliability and Quality - Predicting post-release defects using pre-release f...
PDF
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
PDF
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
PDF
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
PDF
Richard Kemmerer Keynote icsm11
PDF
Lionel Briand ICSM 2011 Keynote
PDF
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
PDF
Faults and Regression Testing - Fault interaction and its repercussions
PDF
Industry - The Evolution of Information Systems. A Case Study on Document Man...
PDF
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
PDF
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
PDF
ERA - Measuring Maintainability of Spreadsheets in the Wild
PDF
Industry - Testing & Quality Assurance in Data Migration Projects
PDF
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
PDF
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
Industry - Estimating software maintenance effort from use cases an indu...
Natural Language Analysis - Mining Java Class Naming Conventions
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Reliability and Quality - Predicting post-release defects using pre-release f...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Richard Kemmerer Keynote icsm11
Lionel Briand ICSM 2011 Keynote
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
Faults and Regression Testing - Fault interaction and its repercussions
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
ERA - Measuring Maintainability of Spreadsheets in the Wild
Industry - Testing & Quality Assurance in Data Migration Projects
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
Ad

Similar to Industry - Evolution and migration - Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case Study (20)

PDF
7 - Architetture Software - Software product line
PDF
Plm Data Migration
PDF
Code Craftsmanship Checklist
PDF
An Introduction To Space Based Architecture
PDF
Devnology back toschool software reengineering
PPTX
[DSBW Spring 2009] Unit 03: WebEng Process Models
PDF
Product Development
PPTX
From traditional software development process to scrum
PDF
Data oriented and Process oriented Strategies for Legacy Information Systems ...
PPT
Introduction and life cycle models
PDF
7 5-94-101
PDF
7 5-94-101
PDF
Globalizing Existing Applications
PPSX
Software engineering
KEY
On the Relationship Between Change Coupling and Software Defects
PDF
Simple design
PPT
Online Tv Music Channel Presentation
PPT
Software enginnering unit 01 by manoj kumar soni
PDF
Itag Jan09 Agile Coclarity
PPT
PLM - ERP integration
7 - Architetture Software - Software product line
Plm Data Migration
Code Craftsmanship Checklist
An Introduction To Space Based Architecture
Devnology back toschool software reengineering
[DSBW Spring 2009] Unit 03: WebEng Process Models
Product Development
From traditional software development process to scrum
Data oriented and Process oriented Strategies for Legacy Information Systems ...
Introduction and life cycle models
7 5-94-101
7 5-94-101
Globalizing Existing Applications
Software engineering
On the Relationship Between Change Coupling and Software Defects
Simple design
Online Tv Music Channel Presentation
Software enginnering unit 01 by manoj kumar soni
Itag Jan09 Agile Coclarity
PLM - ERP integration

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
A Presentation on Artificial Intelligence
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
project resource management chapter-09.pdf
PPTX
A Presentation on Touch Screen Technology
PDF
Hybrid model detection and classification of lung cancer
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
August Patch Tuesday
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation theory and applications.pdf
Programs and apps: productivity, graphics, security and other tools
A novel scalable deep ensemble learning framework for big data classification...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
TLE Review Electricity (Electricity).pptx
Getting Started with Data Integration: FME Form 101
NewMind AI Weekly Chronicles - August'25-Week II
A comparative analysis of optical character recognition models for extracting...
Chapter 5: Probability Theory and Statistics
A Presentation on Artificial Intelligence
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
project resource management chapter-09.pdf
A Presentation on Touch Screen Technology
Hybrid model detection and classification of lung cancer
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
August Patch Tuesday
Accuracy of neural networks in brain wave diagnosis of schizophrenia

Industry - Evolution and migration - Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case Study

  • 1. 27th IEEE International Conference on Software Maintenance Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case Study Gang Zhang1,3, Liwei Shen1, Xin Peng1, Zhenchang Xing2, Wenyun Zhao1 1School of Computer Science, Fudan University, Shanghai, China 2School of Computing, National University of Singapore, Singapore 3Alcatel-Lucent Shanghai Bell, Shanghai, China pengxin@fudan.edu.cn www.se.fudan.edu.cn/pengxin
  • 2. Background: Reengineering towards SPL • SPL: Software Product Line [SEI] – a set of software-intensive systems that share a common, managed set of features – developed from a common set of core assets in a prescribed way • SPL adoption by reengineering is common – a collection of variant products developed with ad-hoc reuse already exist there – reengineering: migration to SPL in an extractive way  commonality and variability among variant products are identified  core assets are extracted  legacy products are reconstructed based on the shared core assets 2/25 2011-10-06 http://www.se.fudan.edu.cn
  • 3. The Subject Case: IXM-PF a telecom product family in Alcatel-Lucent AXM History: > 10 years IXM Variants: 6 products Scale: >10M LOC/product IXM-G IXM-A 300~400 modules/product IXM-U IXM-MD - New products were developed by branching and adapting from selected ancestors in an ad-hoc way - Variant products were maintained separately 3/25 2011-10-06 http://www.se.fudan.edu.cn
  • 4. Problems in IXM-PF Evolution product Cost of Cost of branches new feature maintenance development 4/25 2011-10-06 http://www.se.fudan.edu.cn
  • 5. Reengineering to SPLE Product A Product B How to establish the core assets in an extractive way? Product C 5/12 Support product customization Improve maintainability Improve extensibility SPL core assets 5/25 2011-10-06 http://www.se.fudan.edu.cn
  • 6. SPL Reengineering: Incremental over Big-bang The Economic Impact of Product Line Adoption and Evolution. by K. Schmid and M. Verlage IEEE Software 2002, 19(4) Huge initial investment Big-bang versus Incremental 6/25 2011-10-06 http://www.se.fudan.edu.cn
  • 7. More Challenges Don’t bother me when I am busy working for Can we achieve a new delivery! real benefits from SPL reengineering? developer multi-tasking team management lack of SPLE knowledge and confidence limited budget: often no additional budget for SPL reengineering 7/25 2011-10-06 http://www.se.fudan.edu.cn
  • 8. Requirements for SPL Reengineering Process R1: Proper increment definition R2: Steady reengineering process to deal with Insufficient confidence on the success Limited additional budget for reengineering Parallel work on regular product delivery 8/25 2011-10-06 http://www.se.fudan.edu.cn
  • 9. IXM-PF Reengineering Project Overview • The same team took on the regular maintenance and delivery tasks of related products during the reengineering process • Some principles from agile development are adopted • Achieved initial success after 1.5 years – an initial set of core assets established – reused in both legacy products and several new products – the confidence of the organization on SPL reengineering strengthened 9/25 2011-10-06 http://www.se.fudan.edu.cn
  • 10. Principles in our Attempts Principle Objective value-based increment definition Early success domain driven reengineering Less initial investment localized impact Low Risk iterative propagation Early value delivery 10/25 2011-10-06 http://www.se.fudan.edu.cn
  • 11. The Reengineering Process an increment (component) The next increment Iterative propagated to other products 11/25 2011-10-06 http://www.se.fudan.edu.cn
  • 12. Key Practices Summary • Value-driven Increment Definition • Component Reengineering in Reference Product – reference product selection – domain model definition – component responsibility alignment – boundary reengineering on reference product – internal Implementation Reengineering – integration into reference product • Iterative Core Assets Refinement – external design refinement – core assets extension and integration 12/25 2011-10-06 http://www.se.fudan.edu.cn
  • 13. Value-Driven Increment Definition SPL dimension (space) product specific component component shared with differences component shared without Project dimension any differences (time) low medium high possibility of being involved in future maintenance and extension 13/25 2011-10-06 http://www.se.fudan.edu.cn
  • 14. Reference Product Selection • Be actively maintained • Has the most “common” implementation of the component Reference Product Selection for EntityManagement 14/25 2011-10-06 http://www.se.fudan.edu.cn
  • 15. Domain Model Definition @reference product System Node Lookup UniqueID Entity Indexing ReadableID ConcreteEntity ConcreteEntity domain TypeA TypeX concept help the clarification and refactoring of the component responsibility, boundary, responsibility and internal implementation boundary help addressing the variability of the components across variant products implementation 15/25 2011-10-06 http://www.se.fudan.edu.cn
  • 16. Domain-Driven Responsibility Alignment @reference product Consistent Keep unchanged Re-aligned with Partially consistent domain model Erroneous Removed Irrelevant Removed Component: EntityManagement Consistent Partially consistent Erroneous Irrelevant 27 48 21 39 16/25 2011-10-06 http://www.se.fudan.edu.cn
  • 17. Boundary Reengineering other components @reference product new boundary old boundary adapter Component implementation will be replaced latter - internal-adapters were implemented to provide the expected interfaces - external-dependencies of other components on the current component are cleaned up- - system level tests were executed continuously to guarantee that no side-effect was introduced 17/25 2011-10-06 http://www.se.fudan.edu.cn
  • 18. Internal Implementation Reengineering @reference product UniqueIDLookup EntityManager LookupStrategy ReadableIDLookup Entity EntityTypeStrategy EntityTypeAStrategy UniqueIDGenerator class common across products ConfigManager_IXM class specific to IXM - improve the maintainability of the reference product - enhance the reusability to support variability 18/25 2011-10-06 http://www.se.fudan.edu.cn
  • 19. Iterative Propagation to Other Products domain model continually refined and updated component adapted and integrated in variant products 19/25 2011-10-06 http://www.se.fudan.edu.cn
  • 20. Evaluation (Component: EntityManagement) - Metrics about variants support Before After reengineering reengineering Lines of code 91,106 31,932 Average McCabe 5.85 2.62 Complexity Average 15.82 7.03 statements/operation Lines of code to support 196 140 concreteTypeA Code fragments to support 139 2 concreteTypeA 20/25 2011-10-06 http://www.se.fudan.edu.cn
  • 21. Evaluation (Component: EntityManagement) -effort/bug trend in integration (cont.) Integration Effort Trend (PY) Bugs Reported Trend in Integration 0.6 30 0.5 0.5 25 25 0.4 20 0.3 0.3 0.3 15 0.2 10 0.1 0.1 5 4 0 2 0 0 IXM IXM-MD IXM-A IXM-G IXM IXM-MD IXM-A IXM-G 21/25 2011-10-06 http://www.se.fudan.edu.cn
  • 22. Evaluation (Component: EntityManagement) Return of Investment (ROI) Return Investment I-1. Domain model analysis Saved new feature I-2. Responsibility model definition development cost in all I-3. Boundary reengineering (all related products products) I-4. Component level automation test 8.8 PY I-5. Internal implementation refactoring I-6. Total integration and faults fixing cost 4.2 PY By person year (PY) ROI=(R-I)/R (8.8-4.2)/4.2=110% 22/25 2011-10-06 http://www.se.fudan.edu.cn
  • 23. Evaluation (Component: EntityManagement ROI Trend 10 8 6 4 Accumulated Return Investment Accumulated Profit Accumulated Profit Trend 2 0 Initial >IXM >IXM-MD >IXM-A >IXM-G >IXM-U -2 -4 23/25 2011-10-06 http://www.se.fudan.edu.cn
  • 24. Conclusion • Incremental and iterative approach with stakeholder-value considerations can help to – achieve steady and successful SPL reengineering – in a risk-reduced and cost-effective manner • Agile principles fit well for SPL reengineering • SPL adoption can be regarded as an emergent result of reconstruction and improvement of existing product assets 24/25 2011-10-06 http://www.se.fudan.edu.cn
  • 25. Thanks! 25/25 2011-10-06 http://www.se.fudan.edu.cn