Общий раздел > ПО Аналитика
Как генерировать диаграмму последовательностей из существующего проекта SparxEA?
(1/1)
Виталий И:
Как генерировать диаграмму последовательностей из существующего проекта?
Я попробовал разобраться с документацией.
Я построил диаграмму последовательностей.
Я получаю
Это всё?
(Полное изображение: 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
Использую:
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;
}
--- Конец кода ---
Процесс построения диаграммы
Step-1
Step-2
Step-3
Result
[прилетело НЛО и...]:
С Марсу кажется, что ручное переписывание кода метода в конструкции диаграммы последовательности сработало бы быстрее.
Если что, я не шарю в C# и в егойном Invoke
Код для 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
[прилетело НЛО и...]:
===
@startuml
[-> ParserWorker : Worker()
loop for i in parserSettings.StartPoint..parserSettings.EndPoint
break isActive
note over ParserWorker: выход из цикла
end
ParserWorker -> loader : GetSourceByPageId(i)
loader --> ParserWorker : source
create HtmlParser
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
@enduml
===
Навигация
Перейти к полной версии