Форум Сообщества Аналитиков

Общий раздел => ПО Аналитика => Тема начата: Виталий И от 26 Июня 2023, 11:13:18

Название: Как генерировать диаграмму последовательностей из существующего проекта SparxEA?
Отправлено: Виталий И от 26 Июня 2023, 11:13:18
Как генерировать диаграмму последовательностей из существующего проекта?


Я попробовал разобраться с документацией.
Я построил диаграмму последовательностей.
Я получаю
(https://i.ibb.co/Cvj0SHG/image.png)

Это всё?
(Полное изображение: https://i.ibb.co/Cvj0SHG/image.png)


Мои ожидания: увидеть на диаграмме детальную работу метода **Worker()** класса **ParserWorker**
Путь: Node_Root.Package1.Parser.Core.ParserWorker


Проект:
Папка:  c:\ProjectTest\5214\ParserExtrem\Project\
Github: https://github.com/jhon65496/ParserSequenceDiagrams (https://github.com/jhon65496/ParserSequenceDiagrams)
(https://i.ibb.co/DrB8YYq/image.png)


Использую:
Sparx Systems Enterprise Architect -15.2

Класс: ParserWorker;
Метод: Worker();
private async void Worker()
{
    for(int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
    {
        if (!isActive)
        {
            OnCompleted?.Invoke(this);
            return;
        }

        var source = await loader.GetSourceByPageId(i);
        var domParser = new HtmlParser();

        var document = await domParser.ParseAsync(source);

        var result = parser.Parse(document);

        OnNewData?.Invoke(this, result);
    }

    OnCompleted?.Invoke(this);
    isActive = false;
}



Процесс построения диаграммы


(https://i.ibb.co/ZSvPB31/261830108232780.png)
(https://i.ibb.co/cvGjzHw/527890108256347.png)
(https://i.ibb.co/mGvBtqW/126771009241434.png)

(https://i.ibb.co/6vfBjLr/513490208247815.png)
(https://i.ibb.co/L8xvMC3/287020308250602.png)
(https://i.ibb.co/cYLrSDj/311400408261955.png)
(https://i.ibb.co/GHwxhpc/105011108246765.png)
(https://i.ibb.co/KshS6c5/432891108243049.png)


(https://i.ibb.co/7VfnTRb/215392108256622.png)
(https://i.ibb.co/F6zt4K6/459042008246905.png)




(https://i.ibb.co/gtmNKTz/26862408247313.png)
(https://i.ibb.co/YRTsvHg/318932408243155.png)

(https://i.ibb.co/QFhG1cd/556672408253175.png)

(https://i.ibb.co/wh1sXQW/29163108246731.png)
(https://i.ibb.co/qmRPJ5t/208033208255114.png)
(https://i.ibb.co/X7BBCS2/384803308246908.png)
(https://i.ibb.co/C6MMbbt/318553608256360.png)


(https://i.ibb.co/Cv6bkG1/399122708253821.png)
(https://i.ibb.co/zX1NXyz/240662708230819.png)

(https://i.ibb.co/XC4yMx4/279712808233923.png)



(https://i.ibb.co/fGwdW6k/145123708248740.png)
(https://i.ibb.co/Bwgdzm7/102793808242327.png)


Step-1
(https://i.ibb.co/9ntw8gV/490353808261942.png)

Step-2
(https://i.ibb.co/RjWBx4r/342204008251297.png)

Step-3
(https://i.ibb.co/f1DHy59/554784008236412.png)


(https://i.ibb.co/thxq9Mw/115344608254981.png)
(https://i.ibb.co/PcP4yM2/394904208234939.png)
(https://i.ibb.co/D4s3PvV/404094708261811.png)


Result
(https://i.ibb.co/924PXBW/87735508231538.png)



Название: Re: Как генерировать диаграмму последовательностей из существующего проекта SparxEA?
Отправлено: [прилетело НЛО и...] от 04 Июля 2023, 01:53:59
С Марсу кажется, что ручное переписывание кода метода в конструкции диаграммы последовательности сработало бы быстрее.
(http://sp.cs.msu.ru/Temp/msc.png)
Если что,  я не шарю в C# и в егойном Invoke
Код для https://sequencediagram.org (https://sequencediagram.org)
[->ParserWorker:Worker()
loop for i in parserSettings.StartPoint..parserSettings.EndPoint
  break isActive
  note over ParserWorker: выход из цикла
  end
  ParserWorker->loader:GetSourceByPageId(i)
  loader-->ParserWorker:source
  ParserWorker-->*HtmlParser:new
  ParserWorker->HtmlParser:ParseAsync(source)
  HtmlParser-->ParserWorker:document
  ParserWorker->parser:Parse(document)
  parser-->ParserWorker:result
  opt OnNewData != NULL
   ParserWorker->OnNewData:Invoke(this, result)
  end 
end
opt OnCompleted != NULL
   ParserWorker->OnCompleted:Invoke(this)
end
ParserWorker->ParserWorker:isActive = FALSE
[<--ParserWorker:return