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