Creacion De Diagramas Con DRAKON

Drakon es un sistema de programación visual y creación de diagramas creado para el programa espacial Buran en la Unión Soviética.

Es un lenguaje algorítmico visual, que permite ordenar las ideas y pasos de un proyecto o algoritmo. Esta demostrado que el lenguaje es Turing completo y puede expresar cualquier algoritmo. Es un lenguaje definido y formal, tanto que se puede verificar y convertir a cualquier otro lenguaje de programación. Además, existen otros diagramas para definir esquemas de datos, ya sean clases o bases de datos que se pueden utilizar desarrollados por el mismo grupo, estos se definen en un lenguaje llamado ERIL, para mapas mentales, que no lleven involucrada una receta, sólo conceptos, algunos de los criterios estéticos de DRAKON se llevaron a un sublenguaje llamado GRAF.

Diagramas en DRAKON

Existen 2 tipos de diagramas principales en DRAKON, los diagramas sencillos, y los diagramas de silueta.

En general, los diagramas de silueta tienen diferentes carriles que responden a las siguientes preguntas:

El orden de las ramas es importante, deben ir de izquierda a derecha ya sea cronológicamente o por importancia, esimportante que las ramas de la derecha sigan a las de la izquierda en orden de eventos. Las ramas NO se conectan mas que por abajo o por arriba del diagrama nunca entre sí.

Existen criterios formales y estéticos para lograr buenos diagramas en DRAKON.

Un diagrama simple consta de un carril principal, un indicador de inicio, un indicador de fin y varias acciones, estas acciones pueden ser acciones sencillas, decisiones, ciclos u opciones.

Los símbolos de las diferentes partes se pueden ver en la siguiente imagen.

Las reglas de DRAKON son todos los daigramas se leen de arriba a abajo y de izquierda a derecha, las partes mas deseables o el camino ideal va a la izquierda y los diferentes caminos en orden de deseabilidad o importancia a la derecha. No existen saltos entre ramas. No se debe doblar o desviar el camino principal. No debe haber repeticiones innecesarias. Se debe minimizar el número de ángulos. No debe haber intersecciones de líneas.

sintaxis de DRAKON

A continuación pongo un diagrama sencillo para el algoritmo de linear search.

búsqueda lineal en DRAKON

Editor de DRAKON

El DRAKON-Editor es un programa en Ubuntu que nos permite crear diagramas en el lenguaje DRAKON. Estos diagramas pueden ser traducidos a Python, por ejemplo.

Este es el código que se genera del diagrama

# Autogenerated with DRAKON Editor 1.27

def linear_search(array, target):
    for i in range(0, len(array)):
        #item 19
        if array[i] == target:
            #item 22
            return i
        else:
            pass
    #item 23
    return -1

Después de pasarlo por pylint y llevarlo a un score de 10, queda de la siguente manera:

""" 
Function for linear search inside a list                                         
"""                                                                                                                     

def linear_search(array, target):                                                
"""                                                                          
Input: array, target                                                         
Output: index of target if found in array, if not found returns -1           
"""                                                                          
for i in enumerate(array):                                                   
    #item 19                                                                 
    if array[i[0]] == target:                                                
        #item 22                                                             
        return i[0] 
#item 23                                                                     
return -1                                                                                 

Diagrama de silueta

Los diagramas de silueta son los diagramas arquetípicos de DRAKON, responden claramente, cuantas partes tiene la solución propuesta y en que consisten estas partes o alternativas, tienen un encabezado, los nombres de las ramas, y hacia donde apunta la rama que estamos recorriendo. Estos diagramas pueden representar fácilmente y demostrar la validez de autómatas de estados finitos. Tambien pueden utilizarse para representar programas sumamente complejos con diagramas auxiliares, incluyendo diagramas en lenguajes funcionales. Se puede demostrar la validez de un diagrama en DRAKON con ayuda del validador y con casos de prueba.

Un ejemplo de un diagrama de silueta es el siguiente, que ejemplifica la metodología de IBM para los desarrollos de ciencia de datos.

diagrama de ciencia de datos en DRAKON