Consolidating software variants into software product lines: a - - PowerPoint PPT Presentation

consolidating software variants into software product
SMART_READER_LITE
LIVE PREVIEW

Consolidating software variants into software product lines: a - - PowerPoint PPT Presentation

Consolidating software variants into software product lines: a research outline Rainer Koschke University of Bremen, Germany Working Conference on Reverse Engineering 10th of October 2005 Motivation software product lines grow out of


slide-1
SLIDE 1

Consolidating software variants into software product lines: a research outline

Rainer Koschke

University of Bremen, Germany

Working Conference on Reverse Engineering 10th of October 2005

slide-2
SLIDE 2

Motivation

software product lines grow out of experience they often emerge through ad-hoc copying in-the-large with adaptations to the specific context maintaining these software variants becomes a nightmare → we want to consolidate these software variants into product lines → commonalities/variabilities at both architecture and source code level need to identified

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

2 / 10

slide-3
SLIDE 3

Bauhaus/PL

Bauhaus/PL is a three-year project funded by the University of Bremen (started 1 of November 2005) Bauhaus/PL builds on our tools and experiences in software clone detection reflexion model feature location protocol reconstruction Challenges: extend these techniques to multiple variants by minimizing the effort of the analysis to the delta

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

3 / 10

slide-4
SLIDE 4

Clone detection

Clone detection is used to find corresponding code between two variants available: very fast token-based clone detection (variant of Baker’s) syntax-based clone detector (variant of Baxter’s) additions/extensions: search between variants rather than within a single system propagate result to architecture level

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

4 / 10

slide-5
SLIDE 5

Feature location

Feature location gives us mapping of features onto code. available: concept-lattice based feature location additions/extensions: additional dimension for each variant

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

5 / 10

slide-6
SLIDE 6

Feature location (Eisenbarth et al., 2003)

Which code implements these features specifically?

static program slicing feature−specific units common units common features feature implication formal concept analysis f3 u3 u4 t3 f2 u2 t2 f1 u1 t1 [Birkhoff, 1940] features f1 f2 f3 X X X X X test case t3 profile t3 X X test case t2 profile t2 X X X u1 u2 u3 u4

  • exec. units

X X X test case t1 profile t1 instrumented program instrumentation program

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

6 / 10

slide-7
SLIDE 7

Reflexion model

Reflexion model gives us module view Hierarchical reflexion model (Koschke and Simon, 2003)

H3 H1 H2

additions/extensions: variabilities in hypothesized model source entities may differ existing mapping should be carried onto next system under analysis

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

7 / 10

slide-8
SLIDE 8

Protocol Reconstruction

Protocol reconstruction: behavioral information (Eisenbarth et al., 2005)

empty non−empty white−box analysis push init pop [!is_empty] is_empty pop [is_empty] is_empty init push is_empty pop protocol t * black−box unification init is_empty pop push instance n ... ... init push pop is_empty instance 1

additions/extensions: protocol variations

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

8 / 10

slide-9
SLIDE 9

Eisenbarth, Thomas, Rainer Koschke, and Daniel Simon. 2003. Locating features in source code. IEEE Transactions on Software Engineering 29(3). Eisenbarth, Thomas, Rainer Koschke, and Gunther Vogel. 2005. Static

  • bject trace extraction for programs with pointers.

Journals of Systems and Software . Koschke, Rainer, and Daniel Simon. 2003. Hierarchical reflexion models. In Working conference on reverse engineering, 36–45. IEEE Computer Society Press.

Rainer Koschke (Univ. Bremen) Consolidating software variants into software product lines

  • 10. Nov. 2005

10 / 10