+ All Categories
Home > Technology > Industry - Evolution and migration - Incremental and Iterative Reengineering towards Software...

Industry - Evolution and migration - Incremental and Iterative Reengineering towards Software...

Date post: 13-Jan-2015
Category:
Upload: icsm-2011
View: 328 times
Download: 2 times
Share this document with a friend
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
Popular Tags:
25
Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case Study Gang Zhang 1,3 , Liwei Shen 1 , Xin Peng 1 , Zhenchang Xing 2 , Wenyun Zhao 1 1 School of Computer Science, Fudan University, Shanghai, China 2 School of Computing, National University of Singapore, Singapore 3 Alcatel-Lucent Shanghai Bell, Shanghai, China [email protected] www.se.fudan.edu.cn/pengxin 27th IEEE International Conference on Software Maintenance
Transcript
Page 1: Industry - Evolution and migration - Incremental and Iterative Reengineering towards Software Product Line: An Industrial Case Study

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

[email protected]

www.se.fudan.edu.cn/pengxin

27th IEEE International Conference on Software Maintenance

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25/25

Thanks!


Recommended