Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Category:

Пробуйте ArchiMate3 как DSL на Scala

Вот пример реализации ArchiMate от Константина Борисова, в виде DSL на Scala -- https://github.com/smeagol74/semod (там внутри есть и примеры, отрисовка через PlantUML).

Я считаю реализацию DSL языков «человеческого моделирования» (исполняемых не компьютером, а глазеющим на диаграмму человеком) очень переспективной. Любые эксперименты в этом направлении – это бесценный опыт. Julia или Scala – это не так важно, хотя Julia имеет спецмеханизмы для удобного построения DSL и активно в этом направлении развивается. Но опыт есть опыт, он на любом языке может быть получен.

ArchiMate я сильно разлюбил в последнее время. Это самый системный язык из тех, что я знаю (включая SysML), но он всё-таки недостаточно системный. Это чётко показала работа с ним в рамках попытки достижения соглашения о моделировании SysArchi (https://yadi.sk/i/zhht0RshtJzyMQ).

Визуализация картинки – я не считаю её как-нибудь ценной (аж целую книжку написал об этом: https://ridero.ru/books/vizualnoe_myshlenie/). Я наблюдал работу с моделером Орг-Мастер, который поддерживал по факту расширенный IDEF0 в формате нортон коммандера: два окна псевдографики с наборами понятий, и можно было делать связи, тыкая в выбранные элементы в двух окнах – понятия связывались. Вот: http://bigc.ru/instruments/bigmasterpro/bm/om/. На этом Орг-Мастеренём скорость работы была космическая, но много лет клиенты ныли, что «хотим картинку». Редактирование WYSIWYG для IDEF0 таки потом сделали, но показывали её исключительно как маркетинговую фишку, при начальных шагах работы. А дальше не использовали: при 20 понятиях модели картинка уже бесполезна. А основная работа велась в по факту режиме программирования: генерация необходимых отчётов по модели. Генерировали должностные инструкции, органиграммы, положения о службах и всё остальное. Фишка была в том, что если «слесарь» заменяли на «слюсарь», то это делалось в одном месте модели, и во всех нужных документах слово генерировалось то, что нужно, правка была локальной, а последствия глобальны. Я лично видел, как используется псевдографический (два табличных окошка) моделер с программируемым бэкендом по генерации отчётов и понимаю, насколько он круче любых моделеров графических языков. В визуализацию картинками и редактирование картинок копать не нужно, визуализацию держать только для первой-второй демонстрации, "маркетинга" (менеджеры все очень хотят картинок! Они ж не работают с моделером, они только решения принимают по покупке моделера, но им картинки нравятся по принципу «чтобы было»).

Сам я смотрю на развитие подобного моделирования в направлении SysMoLan -- https://ailev.livejournal.com/1443879.html. Увы, ArchiMate плохо для этого предназначен. И нужно бы делать свой язык. И моделер из IDE. Скажем, взять MS Visual studio и развивать моделер на её основе. Это очень удобно, если у тебя язык в форме DSL к поддерживаемому Visual Studio языку (Julia, кстати поддерживается). Конечно, все эти современные IDE связаны с облаками, поддерживают групповую работу онлайн и т.д. Это будет «из коробки», если язык системного моделирования делать как DSL в рамках расширяемого языка программирования.

Ну, а мой основной опыт в создании моделеров -- проект https://github.com/TechInvestLab/dot15926/, там редактор тоже псевдографика "бесконечного дерева" во многих окнах, но плюс полноценная питон-консоль. Для особо желающих демонстрировался визуальный выход (например, P&ID диаграммы, потенциальные пользователи там ведь были весьма специфичны), альтернативный интерфейс ввода -- связка с Excel. Ох, там много интересного было наисследовано в этом проекте.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments