Инструменты или библиотеки программирования для визуализации пользовательской логики
-
09-09-2019 - |
Вопрос
Я ищу инструменты, которые помогут в визуализации пользовательской бизнес-логики, используемой для выполнения генерации документов.Логика выражается в виде объектно-ориентированной модели, состоящей из графика точек принятия решений и действий рендеринга.Основные строительные блоки относительно просты, но общее дерево решений довольно большое и сложное, что затрудняет его визуализацию.
Мы ищем предложения по инструментам и / или библиотекам построения графиков, которые можно использовать для визуального представления дерева решений и действий по рендерингу.Выбор языка программирования не имеет решающего значения (Delphi, C #, Java были бы великолепны), и мы можем легко извлечь логику в XML или другой формат данных по мере необходимости.Предпочтение отдается чему-то, что будет работать под управлением Windows и позволит печатать или выводить в формате PDF части результирующей диаграммы.
Требования
Точки принятия решения могут быть простыми "да" / "нет" или несколькими выходами, например(да, нет, иногда, всегда и т.д.).
Точки принятия решения связаны с внешней бизнес-логикой, которая существует в другом месте среды выполнения.Нам нужно пометить узел графика типом точки принятия решения (напримерboolean) и строка, описывающая используемое бизнес-правило.
Действия рендеринга связаны с именованными объектами контента с помощью необязательных переменных слияния и встроенной логики рендеринга.Как минимум, нам нужно иметь возможность помечать узлы именем элемента, а в идеале также информацией о переменных, используемых для отображения содержимого.
Мы рассматривали возможность создания чего-либо вокруг Visio или Винграфвиз, или, возможно, с использованием сторонней библиотеки построения графиков / блок-схем.Мы были бы весьма признательны за любые идеи или указания.
Решение
Покопавшись еще немного, я нашел ВинГрафвИза и Точка XML чтобы максимально соответствовать моим требованиям.Ранее я не знал об элементе "record", который позволяет мне отображать решения в логическом потоке чистым и разборчивым способом.