Постоение Sequence diagram
подскажите какой алгоритм на графах следует применить.
Допустим есть исходный код программы, примерной такой:
namespace _4lewel
{
class Program
{
static void Main(string[] args)
{
Foo1();
Foo2();
Foo6();
}
public static void Foo1()
{
Foo2();
}
public static void Foo2()
{
Foo3();
}
public static void Foo3()
{
Foo4();
}
public static void Foo4()
{
}
public static void Foo6()
{
Foo7();
}
public static void Foo7()
{
}
}
}
Изображение диаграмы последовательности и графа построенных вручную:
Выходит что необходимо найти в графе три цепи.
1) Main->Foo1->Foo2->Foo3->Foo4
2) Main->Foo2->Foo3->Foo4
3) Main->Foo6->Foo7
С помощью какого алгоритма это сделать? Перебрать все возможные пути в графе? А потом исключать полные пересечения цепей? Например

