Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John...
-
Upload
sylvia-watkins -
Category
Documents
-
view
217 -
download
0
Transcript of Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John...
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