software refactoring guided by multiple soft-goals

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

Upload: kalli

Post on 14-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

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. 1. Refactoring: modelling performance vs. complexity. real*8 A(512,512), B(512,512), C(512,512) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Software refactoring guided by multiple soft-goals

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: Software refactoring guided by multiple soft-goals

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: Software refactoring guided by multiple soft-goals

Refactoring workshop, WCRE'03

Experiment results

Rationale in action >

Page 4: Software refactoring guided by multiple soft-goals

Refactoring workshop, WCRE'03

soft-goal:Type

[Topic]

Page 5: Software refactoring guided by multiple soft-goals

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: Software refactoring guided by multiple soft-goals

Refactoring workshop, WCRE'03

Label propagations verify the choices

Page 7: Software refactoring guided by multiple soft-goals

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: Software refactoring guided by multiple soft-goals

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: Software refactoring guided by multiple soft-goals

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: Software refactoring guided by multiple soft-goals

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