29
A Case Study on the Evolution of a Component-based Product Line Wolfgang Heider 1 , Michael Vierhauser 2 , Daniela Lettner 1 , Paul Grünbacher 1 1 Christian Doppler Lab. for ASE, Johannes Kepler University 2 Siemens VAI Metals Technologies Linz, Austria August 23, 2012

A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

A Case Study on the Evolution of a

Component-based Product Line

Wolfgang Heider1, Michael Vierhauser2, Daniela Lettner1, Paul Grünbacher1

1 Christian Doppler Lab. for ASE,

Johannes Kepler University 2 Siemens VAI Metals Technologies

Linz, Austria

August 23, 2012

Page 2: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Context, Motivation, Goal

• Maintenance and evolution of product lines

is increasingly complex

• We developed a product line engineering tool suite,

the DOPLER tool suite

• We observed the evolution of this industrial product line

while it was refactored for industrial use cases by Siemens VAI

Analyze developer challenges and tool support requirements

2

Page 3: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Involved Artifacts

3

Component InterfaceDependency

Page 4: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Involved Artifacts

4

Component InterfaceProduct Line

FeatureDependency

Solution SpaceProblem Space

Product LineRelease

Page 5: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Involved Artifacts

5

Component InterfaceProduct Line

FeatureDependency

Solution SpaceProblem Space

Product LineRelease

Page 6: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Involved Artifacts

6

Component InterfaceProduct Line

FeatureDependency

Derived Product

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

generate

reuse

Page 7: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Involved Artifacts

7

Component InterfaceProduct Line

FeatureDependency

Derived Product

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

generate

reuse

Page 8: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Questions

8

Goal: Developer challenges and tool support requirements

RQ1: Which basic development activities

are performed by developers

to evolve the product line?

RQ2: Which types of change impact analyses

are performed by developers?

RQ3: Which tool features are needed to perform these analyses?

Page 9: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

… a project for transitioning the research tool to industrial settings

• Siemens VAI project

• Siemens managers and business users were involved as stakeholders

• 4 hired developers

• Researchers advised and observed development

• 30 person-months of professional development

• 6 derived products that need to be maintained

The Case

9

Siemens VAI Project to Refactor the DOPLER Tool Suite

v2.0 v2.10 Δ

LoC (measured with cloc 1.53) 192,427 154,924 -20%

Java Classes 1,902 1,776 -6%

Eclipse Plugins, Features 61 101 +66%

Page 10: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

10

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

Trace Information Model & Desired Trace Links

categorize

by

select

Impact

Analyses

categorize

by

select

derive

map to

PLE

Scenarios

derive derive

Page 11: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

11

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select select

- Add / change / remove component

- Add / change / remove interface

- Add / remove dependency

- Define release

RQ1

Page 12: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

12

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select

Impact

Analyses

categorize

by

select

- Which components are affected?

- Which interfaces are changed?

- Which dependencies are added?

- Which features do change?

- Which product files need to be adapted?

RQ1

RQ2

Page 13: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

13

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select

Impact

Analyses

categorize

by

select

map to

PLE

Scenarios

- Add feature

- Remove feature

- Define feature variability

- Maintain architecture

- Maintain assets

RQ1

RQ2

Page 14: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

14

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

Trace Information Model & Desired Trace Links

categorize

by

select

Impact

Analyses

categorize

by

select

derive

map to

PLE

Scenarios

derive derive

RQ1

RQ2

RQ3

Changed artifact type Analyzed artifact type

Page 15: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

15

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Epic: Refactor Configuration Workflow

Story: Add additional authentication

Task: Define authentication extension point

Action Item: Develop authentication interface

Open Issues: How to adapt old authentication?

Which products need which authentication?

Impediment: The fu*beep* build server is offline!

Page 16: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

16

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

select select

Add Smartcard Authentication

Page 17: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

17

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select select

- Change configuration UI plugin

- Add authentication interface

- Add authentication plugins

Page 18: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

18

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select

Impact

Analyses

categorize

by

select

- Which plugins are affected

by the new authentication?

- Which product files need to be adapted

to include the new authentication?

Page 19: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

19

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select

Impact

Analyses

categorize

by

select

map to

PLE

Scenarios

- Add authentication feature

- Define authentication variability

Page 20: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Research Process

20

Changes relevant to PL evolution

TeamForge Artifacts

(epics, stories, tasks)

Daily SCRUM Meeting Protocols

(action items, open issues)

Development

Activities

categorize

by

select

Impact

Analyses

categorize

by

select

map to

PLE

Scenarios

While defining feature variability,

the configuration UI plugin was changed

and developers analyzed which product files need to be adapted?

Page 21: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

21

Component InterfaceProduct Line

FeatureDependency

Derived Product

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

Page 22: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

22

Component InterfaceProduct Line

FeatureDependency

Derived Product

1641

29

115

16

11

136

3

77

4

13

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

reuse5

Page 23: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

23

Component InterfaceProduct Line

FeatureDependency

Derived Product

1641

29 16

11

13

77D

om

ain

Engi

nee

rin

gA

rtif

acts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

Page 24: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

24

Component InterfaceProduct Line

FeatureDependency

Derived Product

115

6

4

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

Developers need to see the effects of changes

on features and feature variability

Page 25: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

25

Component InterfaceProduct Line

FeatureDependency

Derived Product

11Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

The tool presents features related to a component under change.

Page 26: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

26

Component InterfaceProduct Line

FeatureDependency

Derived Product

4

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

The tool presents affected features and violated feature variability

(if dependencies between components are added or removed).

Page 27: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

27

Component InterfaceProduct Line

FeatureDependency

Derived Product

3

13

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

5

Developers need to see the impact of changes

on derived products

Page 28: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Resulting Trace Information Model

28

Component InterfaceProduct Line

FeatureDependency

Derived Product

13

Do

mai

nEn

gin

eeri

ng

Art

ifac

ts

Ap

plic

atio

nEn

gin

eeri

ng

Art

ifac

ts

Solution SpaceProblem Space

Product LineRelease

Generated Executable Product

ComponentsComponentsComponents

The tool presents already derived products or ongoing product derivations

based on a previous PL release to analyze the possibility of product updates.

Page 29: A Case Study on the Evolution of a Component-based Product ...wicsa2012.soberit.hut.fi/wp/assets/WEB-wicsa2012_pres_v2.pdf · A Case Study on the Evolution of a Component-based Product

August 23, 2012 Christian Doppler Laboratory for Automated Software Engineering

Summary / Future work

Before we developed approaches and solutions …

• We conducted a case study to find industrial challenges

• We observed the evolution of an industrial product line

• We derived scenarios of impact analysis as requirements

• Our approach to provide impact analysis:

Regression testing with variability models

[Heider et al. @SPLC2012]

29