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
Jan 14, 2016
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
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
Refactoring workshop, WCRE'03
Experiment results
Rationale in action >
Refactoring workshop, WCRE'03
soft-goal:Type
[Topic]
Refactoring workshop, WCRE'03
Topic taxonomy
Type taxonomy
Decomposition method
TYPE [TOPIC]
TYPE
[SUBTOPIC]
TYPE [TOPIC]
SUBTYPE
[TOPIC]
operationalization
OPERATION-ALIZED
SOFTGOAL
Contributioninterdependency
<label>
Refactoring workshop, WCRE'03
Label propagations verify the choices
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
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
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]
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