Is there a (preferred free) tool that can analyze how many different combinations are possible in a method? I am currently refactoring a method that has many many if/switch statments and I am curious how many possible different execution ways this method had.
Let's say I have a simple method:
public void DoSomething(bool flag1, int value)
{
if (flag1)
{
if (value > 0)
{
Console.WriteLine("Flag1 & value > 0");
return;
}
else
{
Console.WriteLine("Flag1 & value <= 0");
return;
}
}
elseif (value > 0 and value < 10)
{
Console.WriteLine("Flag1 is false and value between 0 & 10");
return;
}
if (value < 0)
{
Console.WriteLine("Flag1 = false & value <= 0");
return;
}
elseif(value = 0)
{
Console.WriteLine("Flag1 = false & value >= 10");
return;
}
Console.WriteLine("nothing else matched");
}
there should be 6 possible ways in which the this method could be executed. I know there are tools out there that can calculate this number for me (I believe Visual Studio Ultimate can do this but unfortunately I only own a Professional version).
Maybe someone knows a good tool, that can do this.
What you mean is the Cyclomatic Complexity, and this calculation is already included with VS 2010, check here on MSDN.
I have been using a tool that can be integrated into VS2008 and VS2010. It can be found from http://www.blunck.info/ccm.html.
The metric you're looking for is "cyclomatic complexity." There are some free tools but I've used only the VS 2008 pro built-in metrics so I can't judge them, but it should make it easier to find them.
e.g. http://www.codeproject.com/KB/architecture/Cyclomatic_Complexity.aspx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With