Upload
icsm-2011
View
336
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Paper: Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case StudyAuthors: Gang Zhang, Liwei Shen, Xin Peng, Zhenchang Xing and Wenyun ZhaoSession: Industry Track Session 3: Evolution and migration
Citation preview
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
www.se.fudan.edu.cn/pengxin
27th IEEE International Conference on Software Maintenance
2011-10-06 http://www.se.fudan.edu.cn
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
IXM - A
AXM
IXM
IXM - G
IXM - MD IXM - U
History: > 10 years
Variants: 6 products
Scale: >10M LOC/product
300~400 modules/product
- 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
Cost of new feature development
Cost of maintenance
product branches
4/25
2011-10-06 http://www.se.fudan.edu.cn
Reengineering to SPLE
SPL core assets
Product A Product B
Product C
Support product customization Improve maintainability Improve extensibility
How to establish the core assets in an extractive way?
5/12
5/25
2011-10-06 http://www.se.fudan.edu.cn
SPL Reengineering: Incremental over Big-bang
Big-bang versus Incremental
The Economic Impact of Product Line Adoption and Evolution.
by K. Schmid and M. Verlage
IEEE Software 2002, 19(4)
Huge initial investment
6/25
2011-10-06 http://www.se.fudan.edu.cn
More Challenges
multi-tasking team
limited budget: often no additional budget for SPL reengineering
lack of SPLE knowledge and confidence
Can we achieve real benefits from SPL reengineering?
developer
management
Don’t bother me when I am busy working for a new delivery!
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
value-based increment definition
domain driven reengineering
localized impact
iterative propagation Early value delivery
Low Risk
Less initial investment
10/25
Early success
Principle Objective
2011-10-06 http://www.se.fudan.edu.cn
The Reengineering Process
11/25
an increment
(component)
The next increment Iterative propagated
to other products
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
Project dimension
(time)
SPL dimension
(space)
component shared without any differences
component shared with differences
product specific component
low medium high
13/25
possibility of being involved in future maintenance and extension
2011-10-06 http://www.se.fudan.edu.cn
Reference Product Selection • Be actively maintained
• Has the most “common” implementation of the component
14/25
Reference Product Selection for EntityManagement
2011-10-06 http://www.se.fudan.edu.cn
Domain Model Definition
Entity
System
Node Lookup
Indexing
UniqueID
ReadableID
ConcreteEntity
TypeA
ConcreteEntity
TypeXdomain
concept
responsibility
boundary
implementation
@reference
product
15/25
help the clarification and refactoring of
the component responsibility, boundary,
and internal implementation
help addressing the variability of the
components across variant products
2011-10-06 http://www.se.fudan.edu.cn
Domain-Driven Responsibility Alignment
@reference
product
Consistent
Partially consistent
Erroneous
Irrelevant
Consistent Partially consistent Erroneous Irrelevant
27 48 21 39
16/25
Component: EntityManagement
Keep unchanged
Re-aligned with domain model
Removed
Removed
2011-10-06 http://www.se.fudan.edu.cn
@reference
product
Boundary Reengineering
Component implementation
other components
adapter old boundary
new boundary
will be replaced latter
17/25
- 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
2011-10-06 http://www.se.fudan.edu.cn
EntityManager
Entity
LookupStrategy
EntityTypeStrategy
UniqueIDLookup
ReadableIDLookup
EntityTypeAStrategy
UniqueIDGenerator
ConfigManager_IXM
class common across products
class specific to IXM
Internal Implementation Reengineering
@reference
product
18/25
- improve the maintainability of the reference product
- enhance the reusability to support variability
2011-10-06 http://www.se.fudan.edu.cn
Iterative Propagation to Other Products
19/25
domain model continually refined and updated
component adapted and integrated in variant products
2011-10-06 http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement) - Metrics about variants support
Before reengineering
After reengineering
Lines of code 91,106 31,932 Average McCabe Complexity
5.85 2.62
Average statements/operation
15.82 7.03
Lines of code to support concreteTypeA
196 140
Code fragments to support concreteTypeA
139 2
20/25
2011-10-06 http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement) -effort/bug trend in integration (cont.)
Bugs Reported Trend in Integration
25
4 2 0 0
5
10
15
20
25
30
IXM IXM-MD IXM-A IXM-G
21/25
Integration Effort Trend (PY)
0.5
0.3 0.3
0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
IXM IXM-MD IXM-A IXM-G
2011-10-06 http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement) Return of Investment (ROI)
ROI=(R-I)/R (8.8-4.2)/4.2=110% 22/25
Return
Saved new feature
development cost in all
products
By person year (PY)
8.8 PY
Investment
I-1. Domain model analysis
I-2. Responsibility model definition
I-3. Boundary reengineering (all related
products)
I-4. Component level automation test
I-5. Internal implementation refactoring
I-6. Total integration and faults fixing cost
4.2 PY
2011-10-06 http://www.se.fudan.edu.cn
Evaluation (Component: EntityManagement ROI Trend
-4
-2
0
2
4
6
8
10
Initial >IXM >IXM-MD >IXM-A >IXM-G >IXM-U
Accumulated Return
Investment
Accumulated Profit
Accumulated Profit Trend
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
25/25
Thanks!