CSC/ECE 517 Fall 2013/ch1 1w07 d: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:
The practice of [http://en.wikipedia.org/wiki/Code_refactoring code refactoring] deals with changing the content or structure of code without changing the code's function in its execution.  Code refactoring has become a standard programming practice, as it potentially promotes readability, extensibility, and reusability of code.
The practice of [http://en.wikipedia.org/wiki/Code_refactoring code refactoring] deals with changing the content or structure of code without changing the code's function in its execution.  Code refactoring has become a standard programming practice, as it potentially promotes readability, extensibility, and reusability of code.


Whether done through an IDE or by hand, large-scale code projects can prove tedious to refactor.  If minimal non-functional benefits are achieved through refactoring, time is  
Whether done through an IDE or by hand, large-scale code projects can prove tedious to refactor.  If minimal non-functional benefits are achieved through refactoring, time is wasted.  Furthermore, if not done properly, code refactoring can actually break the functionality of the code.
 
wasted.  Furthermore, if not done properly, code refactoring can actually break the functionality of the code.


==Metrics==
==Metrics==
Line 22: Line 20:
}
}
</pre>
</pre>
In this example, there are two decision points, so the cyclomatic complexity is 2+1=3.


===Lines of Code===
===Lines of Code===

Revision as of 14:23, 18 September 2013

Background

The practice of code refactoring deals with changing the content or structure of code without changing the code's function in its execution. Code refactoring has become a standard programming practice, as it potentially promotes readability, extensibility, and reusability of code.

Whether done through an IDE or by hand, large-scale code projects can prove tedious to refactor. If minimal non-functional benefits are achieved through refactoring, time is wasted. Furthermore, if not done properly, code refactoring can actually break the functionality of the code.

Metrics

There are a variety of metrics that are used to quantify the merits of refactoring.

Complexity

Cyclomatic Complexity is a metric whose value is determined by the number of decision points in the code.

public void makeDecision(condition) {
  if(condition a) {
    choose(a);
  }
  else {
    choose(b);
  }
}

In this example, there are two decision points, so the cyclomatic complexity is 2+1=3.

Lines of Code

Change Over Time

Duplication

References