Постоение 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

С помощью какого алгоритма это сделать? Перебрать все возможные пути в графе? А потом исключать полные пересечения цепей? Например


Ответы (0 шт):