Software refactoring guided by multiple softgoals Yijun Yu
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) n 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
TYPE [TOPIC] operationalization OPERATIONALIZED SOFTGOAL <label> Contribution interdependency Topic taxonomy TYPE [SUBTOPIC] Decomposition method TYPE [TOPIC] 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 n 1. Continuing changes n 2. Increasing complexity n 7. Declining quality in terms of performance [Lehmann 96] 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 … 1. 2. 3. 4. 5. 6. Modelling non-functional qualities as soft-goals [Mylopoulos 92] Are they met? Decomposing soft-goals into interdependency graph [Chung 94] Catalogue the refactoring steps as operationalized soft-goals and make selections [c. f. Tahvildari 01, Zou 02] Apply the refactoring steps and propagate the labels up to re-assess the soft-goals [Giorgini 02] Release the product that satisfice the NFRs Redo refactoring after functionality changes [Fowler 99] Refactoring workshop, WCRE'03
4. Summary 1. Modeling SIG Quality: type [topic] taxonomy ++ - + -- 6. Evolution 2. Satisfiable? 5. Releasing 3. Selection 4. Refactoring Rationale: prioritization (bottleneck), metrics, constraints Operationalizations: refactoring steps + label propagation Refactoring workshop, WCRE'03 ++ +
- Slides: 10