Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
27th IEEE International Conference on Software Maintenance Incremental and Iterative Reengineering     towards Software Pr...
Background: Reengineering towards SPL• SPL: Software Product Line [SEI]    – a set of software-intensive systems that shar...
The Subject Case: IXM-PFa telecom product family in Alcatel-Lucent                 AXM                                    ...
Problems in IXM-PF Evolutionproduct          Cost of                        Cost ofbranches       new feature             ...
Reengineering to SPLE             Product A                    Product BHow to establish the coreassets in an extractive w...
SPL Reengineering:         Incremental over Big-bang                The Economic Impact of Product Line Adoption and Evolu...
More Challenges             Don’t bother me when             I am busy working for                     Can we achieve     ...
Requirements for SPL Reengineering Process    R1: Proper increment definition    R2: Steady reengineering process         ...
IXM-PF Reengineering Project Overview • The same team took on the regular   maintenance and delivery tasks of related   pr...
Principles in our Attempts           Principle                          Objective  value-based increment  definition      ...
The Reengineering Process              an increment              (component)             The next increment              I...
Key Practices Summary• Value-driven Increment Definition• Component Reengineering in Reference Product    –   reference pr...
Value-Driven Increment Definition SPL dimension    (space)productspecificcomponentcomponentshared withdifferencescomponent...
Reference Product Selection• Be actively maintained• Has the most “common” implementation of the componentReference Produc...
Domain Model Definition                                                               @reference                          ...
Domain-Driven Responsibility Alignment@referenceproductConsistent                               Keep unchanged            ...
Boundary Reengineering                                      other components              @reference                      ...
Internal Implementation Reengineering                                                         @reference                  ...
Iterative Propagation to Other Products  domain model continually refined and updatedcomponent adapted and integrated in v...
Evaluation (Component: EntityManagement)        - Metrics about variants support                              Before      ...
Evaluation (Component: EntityManagement)      -effort/bug trend in integration (cont.)     Integration Effort Trend (PY)  ...
Evaluation (Component: EntityManagement)       Return of Investment (ROI)Return                         Investment        ...
Evaluation (Component: EntityManagement               ROI Trend    10     8     6     4                                   ...
Conclusion• Incremental and iterative approach with  stakeholder-value considerations can help to    – achieve steady and ...
Thanks!                                           25/252011-10-06    http://www.se.fudan.edu.cn
Upcoming SlideShare
Loading in …5
×

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

490 views

Published on

Paper: Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case Study

Authors: Gang Zhang, Liwei Shen, Xin Peng, Zhenchang Xing and Wenyun Zhao

Session: Industry Track Session 3: Evolution and migration

Published in: Technology, Business
  • Be the first to comment

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

  1. 1. 27th IEEE International Conference on Software Maintenance Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case StudyGang 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. 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/252011-10-06 http://www.se.fudan.edu.cn
  3. 3. The Subject Case: IXM-PFa 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 adaptingfrom selected ancestors in an ad-hoc way- Variant products were maintained separately 3/252011-10-06 http://www.se.fudan.edu.cn
  4. 4. Problems in IXM-PF Evolutionproduct Cost of Cost ofbranches new feature maintenance development 4/252011-10-06 http://www.se.fudan.edu.cn
  5. 5. Reengineering to SPLE Product A Product BHow to establish the coreassets in an extractive way? Product C 5/12 Support product customization Improve maintainability Improve extensibility SPL core assets 5/252011-10-06 http://www.se.fudan.edu.cn
  6. 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 initialinvestment Big-bang versus Incremental 6/25 2011-10-06 http://www.se.fudan.edu.cn
  7. 7. More Challenges Don’t bother me when I am busy working for Can we achieve a new delivery! real benefits from SPL reengineering? developermulti-tasking team management lack of SPLE knowledge and confidence limited budget: often no additional budget for SPL reengineering 7/252011-10-06 http://www.se.fudan.edu.cn
  8. 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/252011-10-06 http://www.se.fudan.edu.cn
  9. 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. 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/252011-10-06 http://www.se.fudan.edu.cn
  11. 11. The Reengineering Process an increment (component) The next increment Iterative propagated to other products 11/252011-10-06 http://www.se.fudan.edu.cn
  12. 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/252011-10-06 http://www.se.fudan.edu.cn
  13. 13. Value-Driven Increment Definition SPL dimension (space)productspecificcomponentcomponentshared withdifferencescomponentshared without Project dimensionany 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. 14. Reference Product Selection• Be actively maintained• Has the most “common” implementation of the componentReference Product Selection for EntityManagement 14/252011-10-06 http://www.se.fudan.edu.cn
  15. 15. Domain Model Definition @reference product System Node Lookup UniqueID Entity Indexing ReadableID ConcreteEntity ConcreteEntity domain TypeA TypeX concepthelp the clarification and refactoring ofthe component responsibility, boundary, responsibilityand internal implementation boundaryhelp addressing the variability of thecomponents across variant products implementation 15/25 2011-10-06 http://www.se.fudan.edu.cn
  16. 16. Domain-Driven Responsibility Alignment@referenceproductConsistent Keep unchanged Re-aligned withPartially consistent domain modelErroneous RemovedIrrelevant Removed Component: EntityManagement Consistent Partially consistent Erroneous Irrelevant 27 48 21 39 16/252011-10-06 http://www.se.fudan.edu.cn
  17. 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 arecleaned up-- system level tests were executed continuously to guarantee that no side-effectwas introduced 17/25 2011-10-06 http://www.se.fudan.edu.cn
  18. 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. 19. Iterative Propagation to Other Products domain model continually refined and updatedcomponent adapted and integrated in variant products 19/252011-10-06 http://www.se.fudan.edu.cn
  20. 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/252011-10-06 http://www.se.fudan.edu.cn
  21. 21. Evaluation (Component: EntityManagement) -effort/bug trend in integration (cont.) Integration Effort Trend (PY) Bugs Reported Trend in Integration0.6 300.5 0.5 25 250.4 200.3 0.3 0.3 150.2 100.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. 22. Evaluation (Component: EntityManagement) Return of Investment (ROI)Return Investment I-1. Domain model analysisSaved new feature I-2. Responsibility model definitiondevelopment cost in all I-3. Boundary reengineering (all relatedproducts 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/252011-10-06 http://www.se.fudan.edu.cn
  23. 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/252011-10-06 http://www.se.fudan.edu.cn
  24. 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/252011-10-06 http://www.se.fudan.edu.cn
  25. 25. Thanks! 25/252011-10-06 http://www.se.fudan.edu.cn

×