Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John...

10
Refactoring workshop, WCR E'03 Software refactoring guided by multiple soft- goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University of Toronto Erik H. D’Hollander, University of Ghent

Transcript of Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John...

Page 1: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

Software refactoring guided by multiple soft-goals

Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University of Toronto

Erik H. D’Hollander, University of Ghent

Page 2: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

1. Refactoring: modelling performance vs. complexity

real*8 A(512,512), B(512,512), C(512,512)M = L = N = 512do i = 1,M do j = 1, L do k = 1, N C(i,k) = C(i,k) + A(i,j) * B(j,k)

GOAL: apply transformations to speedup the above program 20 times without increasing the code complexity 4 times

Page 3: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

Experiment results

Rationale in action >

Page 4: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

soft-goal:Type

[Topic]

Page 5: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

Topic taxonomy

Type taxonomy

Decomposition method

TYPE [TOPIC]

TYPE

[SUBTOPIC]

TYPE [TOPIC]

SUBTYPE

[TOPIC]

operationalization

OPERATION-ALIZED

SOFTGOAL

Contributioninterdependency

<label>

Page 6: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

Label propagations verify the choices

Page 7: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

2. Software evolution

Without efforts, a software is generally subjected to

1. Continuing changes 2. Increasing complexity 7. Declining quality in terms of performance[Lehmann96] Laws of software evolution

revisited

Page 8: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

2. Header project: functionality and quality refactoring shift focus along evolution

0

0. 2

0. 4

0. 6

0. 8

1

1. 2

1 2 3 4 5 6 7 8 9 10 11 12 13

compl exi typerformancefuncti ons

Page 9: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

3. The goal-driven refactoring process …

1. Modelling non-functional qualities as soft-goals [Mylopoulos92]

2. Are they met? Decomposing soft-goals into interdependency graph [Chung94]

3. Catalogue the refactoring steps as operationalized soft-goals and make selections [c.f. Tahvildari01, Zou02]

4. Apply the refactoring steps and propagate the labels up to re-assess the soft-goals [Giorgini02]

5. Release the product that satisfice the NFRs6. Redo refactoring after functionality changes

[Fowler99]

Page 10: Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.

Refactoring workshop, WCRE'03

4. Summary

1. Modeling

2. Satisfiable?

3. Selection

4. Refactoring

5. Releasing

Quality:type [topic] taxonomy

Rationale: prioritization (bottleneck), metrics, constraints

Operationalizations:refactoringsteps + labelpropagation

++ + ---

++ +

6. Evolution

SIG