Обсуждение статьи "Язык визуального программиования ДРАКОН (Drakon) — средство общения для разработчика MQL и заказчика"

 

Опубликована статья Язык визуального программиования ДРАКОН (Drakon) — средство общения для разработчика MQL и заказчика:

ДРАКОН — язык визуального программирования, специально разработанный для упрощения взаимодействия между специалистами разных отраслей (биологами, физиками, инженерами...) с программистами в российских космических проектах (например, при создании создание комплекса "Буран"). В этой статье я расскажу о том, как ДРАКОН делает создание алгоритмов доступным и интуитивно понятным, даже если вы никогда не сталкивались с кодом, а также - как заказчику легче объяснить свои мысли при заказе торговых роботов, а программисту - совершать меньше ошибок в сложных функциях.

Технической работы у программиста не убавится, но мысли ваши он поймёт гораздо лучше, и меньше вероятность, что наделает ошибок в первых версиях. А ведь потом эти ошибки придется исправлять, что может потребовать дополнительного времени (и/или денег).

В общем, преимущества ДРАКОН-схем есть как для программиста, так и для заказчика, который с программированием незнаком, но зато очень хорошо (лучше всех) представляет, как именно он хочет, чтобы работал его советник.

Резюмировать это вступление хочу так: для меня ДРАКОН хорош тем, что:

  • Язык построен так, что он реально помогает думать. Когда я вижу перед собой нарисованный алгоритм, мне гораздо проще осознавать взаимосвязи частей в модулях и целых модулей - между собой, находить ошибки и использовать не очевидные сами по себе, но вытекающие из схемы решения.
  • ДРАКОН помогает лучше понимать заказчика.
  • Проще доносить до заказчика мои предложения, если таковые возникнут.
  • Заказчику легче критиковать мои ошибки.
  • Если заказчик нарисовал ДРАКОН-схему, то эту схему можно буквально переносить в код и считать ТЗ выполненным. Это гораздо легче, чем понимать в процессе работы, что не знаю, скажем, что делать, если сигнал не сработал. Просто для заказчика это настолько очевидно, что он забыл это уточнить, а после уточнения оказывается, что надо писать еще три экрана кода... Лучше разобраться с такими вещами до начала кодирования, и визуальные схемы в этих "разборках" сильно помогают.

Для меня графика в алгоритмах - просто чудесное средство для коммуникации. Когда двое заинтересованы в результате и ведут диалог, лучше им говорить на одном языке. И язык схем ДРАКОНа универсален для специалистов в любой профессии, если его один раз понять.


Автор: Oleh Fedorov

 

Навеяло:

Я с изумлением читал вывески. Их было три. На левой воротине строго блестела толстым стеклом синяя солидная вывеска с серебряными буквами:

    

НИИЧАВО
     ИЗБА НА КУРИНЫХ НОГАХ
     ПАМЯТНИК СОЛОВЕЦКОЙ СТАРИНЫ



На правой воротине сверху висела ржавая жестяная табличка: "Ул. Лукоморье, д. N_13, Н. К. Горыныч", а под нею красовался кусок фанеры с надписью чернилами вкривь и вкось:

    

КОТ НЕ РАБОТАЕТ

Администрация


 
Разработка эксперта средствами UML
Разработка эксперта средствами UML
  • www.mql5.com
В статье рассматривается создание торгового советника с помощью графического языка UML, который используется для визуального моделирования объектно-ориентированных программных систем. Основным преимуществом такого подхода является визуализация работы проектировщика. Приведен пример проектирования структуры и свойств советника при помощи программы Software Ideas Modeler.
 
Dmitry Fedoseev #:

Навеяло:

Я с изумлением читал вывески. 

...

А можете немного развернуть ассоциацию?

P.S. "Понедельник" тоже обожаю. Как и некоторые другие их вещи.

 
Супер. Спасибо.
 
Oleh Fedorov #:

А можете немного развернуть ассоциацию?

P.S. "Понедельник" тоже обожаю. Как и некоторые другие их вещи.

Ничего особенно. Начало такое сюрреалистичное: "Язык ДРАКОН разработан совместными усилиями Федерального космического агентства", на мгновение показалось, что Стругацких читаю.

 
Возможно, вы захотите попробовать Flowgorithm.
 
Dmitry Fedoseev #:

Ничего особенно. Начало такое сюрреалистичное: "Язык ДРАКОН разработан совместными усилиями Федерального космического агентства", на мгновение показалось, что Стругацких читаю.

Жуткое зрелище! Как представлю, сколько разрабам ПО Буран пришлось нарисовать диаграмм, чтобы осуществить автоматическую посадку, слезы выступают на глазах!

 
Alexey Volchanskiy #:

Жуткое зрелище! Как представлю, сколько разрабам ПО Буран пришлось нарисовать диаграмм, чтобы осуществить автоматическую посадку, слезы выступают на глазах!

Смысл этой штуки в том, что КБ в тех проектах, где использовали ДРАКОНа, отказались от программистов. Программы писали прикладники, те, кто и так должен был позаботиться обо всех алгоритмах безотказности. Им всё равно пришлось бы эти схемы рисовать, хотя бы для взаимодействия между отделами. Поэтому полезность технологии лично мне кажется вполне конкретной...
 
Soewono Effendi #:
Возможно, вы захотите попробовать Flowgorithm.

Выглядит очень интересно, спасибо.

Консоль в стиле чата мне не очень нравится, но там есть много интересного.

 

Мне показалось, что Flowgorithm больше подходит для образовательных целей, чем для программирования в реальном мире. Drakon ближе к тому, что я ищу: ближе к Grafcet, который не очень известен за пределами Франции и области автоматизации, но это жемчужина ;) https://www.researchgate.net/profile/Paul-Baracos-2/publication/243782363_Grafcet_step_by_step/links/588b7e3d45851567c93c9cdb/Grafcet-step-by-step.pdf


Когда-то давно во французской инженерной школе (не информатика, а традиционная инженерная область) меня учил преподаватель, который был членом комитета. До изучения этого курса я не интересовался кодингом и был почти последним, а с ним стал первым :)

Потом я забыл об этом, так как занимался традиционной программной инженерией. Спустя десятилетия я понял, что в традиционной программной инженерии нет настоящего моделирования, так как никто не использует UML, кроме черновиков, и я понял, что Grafcet или эквивалент + немного UML могут стать реальным способом быть на одном уровне с другими инженерными областями. Как и Drakon, он в первую очередь нацелен на спецификацию, но из-за своей простоты и фрактальности он легко сопоставляется с кодом, поэтому многие люди думают, что SFC эквивалентен Grafcet, в то время как SFC действительно происходит от Grafcet, это лишь язык кодирования для конкретной отрасли (автоматизация), не предназначенный для спецификации.

Как было сказано здесь,"одно из главных преимуществ GRAFCET - спецификация иерархических структур" https://www.sciencedirect.com/science/article/pii/S2405896319314387 и он исключительно событийный, поэтому очень подходит для торговых алгоритмов ;)

A model-driven approach for transforming GRAFCET specification into PLC code including hierarchical structures
A model-driven approach for transforming GRAFCET specification into PLC code including hierarchical structures
  • www.sciencedirect.com
GRAFCET, as defined in IEC 60848, is a powerful graphical modelling language to define the behavior of sequence controls with discrete event systems. …