|
|
|
|
|
|
|
|
|
|
|
|
Fragment Name:
Refactoring |
|
|
Originating Method: XP |
|
|
|
Definition:
"A change made to the internal structure of software to
make it easier to understand and cheaper to modify without changing its
observable
behavior" [Fowler, M. (2000).
Refactoring: Improving the Design of Existing Code. Addison-Wesley,
Read-
ing
|
|
|
|
Description: improving code without changing its
function. |
|
|
|
|
|
|
|
|
|
|
Method Fragment: Refactoring |
|
|
|
|
|
|
|
|
|
|
|
|
Contributes
to |
|
|
Major Softgoal |
sub softgoal |
Cont. Value from Fragment |
Study |
Situation |
|
|
Improve productivity |
Improve productivity during code-writing iterations |
++ |
|
Productivity of
iteration immediately following a refactoring shows significant bump. |
|
|
|
- |
|
Non-trivial
refactorings are risky and time-consuming |
|
|
- |
|
more difficult and
time-consuming than expected |
|
|
Improve code quality |
Improve understanding of code |
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reduce
complexity of code |
+ |
|
the method that began
with the most lines of code showed the most improvement after refactoring. |
|
|
++ |
|
replace code that
works with code that works better, faster or costs less to release |
|
|
+ |
|
|
|
|
|
|
|
|
|
|
Estimate/target improvement gain |
|
|
able to make a
correspondence between refactoring type and attributes that influence
external quality |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Increase ad hoc code reusability |
Improve code quality |
++ |
S76 |
Code reusability
measured indirectly by measuring quality indicators |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|