110 likes | 281 Vues
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)
E N D
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 = 512 do 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 Refactoring workshop, WCRE'03 Rationale in action >
soft-goal:Type [Topic] Refactoring workshop, WCRE'03
TYPE [TOPIC] operationalization OPERATION-ALIZED SOFTGOAL TYPE [SUBTOPIC] Topic taxonomy Decomposition method <label> TYPE [TOPIC] Contributioninterdependency Type taxonomy SUBTYPE [TOPIC] 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 Refactoring workshop, WCRE'03
3. The goal-driven refactoring process … • Modelling non-functional qualities as soft-goals [Mylopoulos92] • Are they met? Decomposing soft-goals into interdependency graph [Chung94] • Catalogue the refactoring steps as operationalized soft-goals and make selections [c.f. Tahvildari01, Zou02] • Apply the refactoring steps and propagate the labels up to re-assess the soft-goals [Giorgini02] • Release the product that satisfice the NFRs • Redo refactoring after functionality changes [Fowler99] Refactoring workshop, WCRE'03
4. Summary SIG Quality:type [topic] taxonomy 1. Modeling - -- ++ + 6. Evolution Rationale: prioritization (bottleneck), metrics, constraints 2. Satisfiable? 5. Releasing 3. Selection Operationalizations: refactoringsteps + labelpropagation ++ + 4. Refactoring Refactoring workshop, WCRE'03