Discussão do artigo "Linguagem de programação visual DRAKON — ferramenta de comunicação Desenvolvedor/Cliente MQL"

 

Novo artigo Linguagem de programação visual DRAKON — ferramenta de comunicação Desenvolvedor/Cliente MQL foi publicado:

DRAKON é uma linguagem de programação visual especialmente desenvolvida para facilitar a interação entre especialistas de diferentes áreas (biólogos, físicos, engenheiros...) com programadores em projetos espaciais russos (por exemplo, na criação do complexo "Buran"). Neste artigo, vou falar sobre como o DRAKON torna a criação de algoritmos acessível e intuitivamente compreensível, mesmo para quem nunca teve contato com código, e também como é mais fácil quer seja para o cliente explicar suas ideias ao encomendar robôs de negociação quer seja para o programador cometer menos erros em funções complexas.

O programador não terá menos trabalho técnico, mas entenderá muito melhor suas ideias e terá menos probabilidade de cometer erros nas primeiras versões. Afinal, depois esses erros terão que ser corrigidos, o que pode exigir tempo adicional (e/ou dinheiro).

De modo geral, os diagramas DRAGON trazem vantagens tanto para o programador quanto para o cliente, que não sabe de programação, mas tem uma ideia muito boa (melhor do que ninguém) de como exatamente ele quer que seu EA funcione.

Para resumir esta introdução, gostaria de dizer que para mim, DRAKON é bom porque:

  • É uma linguagem construída de tal forma que realmente ajuda a pensar. Quando vejo um algoritmo desenhado na minha frente, percebo mais facilmente as interrelações das partes nos módulos e dos módulos inteiros, encontro erros e recorro a soluções que não são óbvias em si mesmas, mas que decorrem do diagrama.
  • O DRAGON ajuda a entender melhor o cliente.
  • É mais fácil comunicar minhas sugestões, se houver, ao cliente.
  • O cliente consegue criticar meus erros com mais facilidade.
  • Se o cliente tiver esboçado um diagrama DRAGON, esse diagrama poderá ser literalmente transformado em código e os TdR poderão ser considerados satisfeitos. Isso evita que, durante o processo, eu veja que não sei, por exemplo, o que fazer se o sinal não funcionar. Mesmo que isso seja tão óbvio para o cliente que ele não especificou o assunto e, inclusive fazendo o esclarecimento, é preciso escrever mais três telas de código... É melhor resolver essas coisas antes de codificar, e os diagramas ajudam muito a resolver esses "desnorteamentos".

Para mim, os diagramas nos algoritmos são simplesmente um meio maravilhoso de comunicação. Quando duas partes estão interessadas no resultado e mantêm um diálogo, é melhor que falem a mesma língua. E os diagramas DRAGON são universais para especialistas em qualquer profissão, uma vez que sejam compreendidos.

Autor: Oleh Fedorov

 

Era assustador:

Eu lia as placas com espanto. Havia três delas. No portão esquerdo, uma placa azul sólida com letras prateadas brilhava estritamente com vidro grosso:

NICHAVO
CABANA SOBRE PERNAS DE GALINHA
MONUMENTO DA ANTIGUIDADE SOLOVETSKY



Uma placa de estanho enferrujada estava pendurada no portão direito, de cima para baixo: "Lukomorye Street, N_13, N. K. Gorynych", e embaixo dela havia um pedaço de madeira compensada com uma inscrição escrita a tinta em uma linha torta:

.

O GATO NÃO FUNCIONA

Administração


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

Isso me faz lembrar:

Eu li as placas com espanto.

...

Você poderia falar um pouco mais sobre a associação?

P.S. Eu também adoro "Monday". Assim como algumas de suas outras músicas.

 
Stanislav Korotky #:
Postagem relacionada.
Super. Obrigado.
 
Oleh Fedorov #:

Você pode falar um pouco mais sobre a associação?

P.S. Eu também adoro "Monday". Assim como algumas de suas outras músicas.

Nada em especial. O início é tão surreal:"A linguagem DRAGON foi desenvolvida por esforços conjuntos da Agência Espacial Federal", por um momento pensei que estava lendo Strugatsky.

 
Talvez você queira experimentar o Flowgorithm.
 
Dmitry Fedoseev #:

Nada de especial. O início é tão surreal:"A linguagem DRAGON foi desenvolvida por esforços conjuntos da Agência Espacial Federal", que por um momento pensei que estava lendo Strugatsky.

É uma visão assustadora! Ao imaginar quantos diagramas os desenvolvedores do software Buran tiveram que desenhar para fazer um pouso automático, lágrimas vieram aos meus olhos!

 
Alexey Volchanskiy #:

É uma visão horrível! Quando imagino quantos diagramas os desenvolvedores do software Buran tiveram que desenhar para fazer um pouso automático, lágrimas vêm aos meus olhos!

A questão é que, nos projetos em que usaram o DRAGON, os departamentos de design se recusaram a contratar programadores. Os programas eram escritos por engenheiros de aplicativos, aqueles que tinham que cuidar de todos os algoritmos à prova de falhas. Eles teriam que desenhar esses esquemas de qualquer forma, pelo menos para a interação entre os departamentos. Portanto, a utilidade da tecnologia me parece pessoalmente bastante concreta...
 
Soewono Effendi #:
Talvez você queira experimentar o Flowgorithm.

Ele parece muito interessante, obrigado.

O console no estilo de bate-papo não é tão bom para mim, mas há muitas coisas interessantes nele.

 

Descobri que o Flowgorithm é mais para fins educacionais do que para programação no mundo real. O Drakon está mais próximo do que estou procurando: mais próximo do Grafcet, que não é muito conhecido fora da França e do campo da automação, mas é uma joia ;) https://www.researchgate.net/profile/Paul-Baracos-2/publication/243782363_Grafcet_step_by_step/links/588b7e3d45851567c93c9cdb/Grafcet-step-by-step.pdf


Há muito tempo, na escola de engenharia francesa (não na área de ciência da computação, mas na área de engenharia tradicional), um professor que fazia parte do comitê me ensinou. Antes de aprender, eu não tinha nenhum interesse em codificação e estava quase em último lugar, mas com isso me tornei o primeiro :)

Depois me esqueci disso, pois estava na engenharia de software tradicional. Depois de décadas, percebi que não há modelagem real na engenharia de software tradicional, pois ninguém usa UML de fato além de rascunhos, e percebi que o Grafcet ou equivalente + um pouco de UML poderia ser uma maneira real de estar no mesmo nível de outros campos da engenharia. Assim como o Drakon, o primeiro objetivo é a especificação, mas, devido à sua simplicidade e fractalidade, ele pode ser facilmente mapeado com código, de modo que muitas pessoas pensam que o SFC é equivalente ao Grafcet, enquanto o SFC é, de fato, derivado do Grafcet, mas é apenas uma linguagem de codificação para um setor específico (automação), não destinada à especificação.

Como foi dito aqui, "uma das principais vantagens do GRAFCET é a especificação de estruturas hierárquicas" https://www.sciencedirect.com/science/article/pii/S2405896319314387 e ele é exclusivamente orientado a eventos, portanto, muito adequado para algoritmos de negociação ;)

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. …