Does there exist a software solution of some form that has the ability to map out the actions of calling a function. So what I mean is, let's say that we have the following class.public class Foo{    public Foo()    {       if (this.SomeProperty)       {           DoSomething();       }    }    private void DoSomething()    {        var Bar = new Bar();        Bar.DoSomethingElse();    }}public class Bar{    public void DoSomethingElse()    {        //call something else or whatever here.    }}Would there be something that would generate a flow chart (or some kind of map of sorts) of this if I were to say, what does creating a Foo do?I'm asking this because a large majority of our code base was written on the fly without any kinds of documentation, and I'm just trying to help map out some behavior and make sure that it is all understood.
Code mapping in .NET (or in general)
code quality;documentation generation