CGGAD Graphic Tool
Manual del Usuario

1      Introducción

Coupled GGAD Graphic tool es una herramienta de diseño de modelos DEVS acoplados. Entre sus funciones podemos destacar:

·       Diseño gráfico de un modelo DEVS acoplado, incluyendo los modelos atómicos y/o acoplados que lo componen , la interconexión de los mismos, y sus puertos de entrada y puertos de salida.

·       Diseño de la estructura y funcionalidad de un modelo atómico DEVS, incluyendo los estados, transiciones internas y externas, los ports de entrada  y salida, las variables de estado y las acciones asociadas a las transiciones.

·       Almacenamiento de los modelos generados y exportación de los mismos en formato GADscript para ser simulados mediante la aplicación CD++.

2      Definición

La herramienta de simulación CD++ realiza simulaciones de modelos acoplados DEVS. Para la definición del modelo acoplado a simular usa un lenguaje que describe la interconexión entre los modelos atómicos y/o acoplados que lo componen. Los modelos atómicos pueden ser “clásicos”, es decir que el simulador CD++ ya conoce su funcionamiento, o “GGAD”, los cuales se definen a través de un archivo de texto que describe su estructura y funcionamiento y cuyo formato se denomina GADscript.

 La herramienta Coupled GGAD Graphic tool está concebida en 2 partes. En una permite la creación y edición de un modelo DEVS acoplado y en la otra de modelos DEVS atómicos “GGAD”. El modelo acoplado inicial o raíz, puede incluir otros modelos acoplados, modelos atómicos GGAD o modelos atómicos clásicos.

Un modelo acoplado tiene un nombre y un archivo de texto que describe su composición (normalmente con extensión .ma). Los modelos atómicos GGAD también poseen un nombre de modelo y un archivo que los describe, a diferencia de los modelos atómicos clásicos que simplemente son incluidos con un nombre y una lista de parámetros y sus valores asociados, dado que el simulador CD++ ya conoce su estructura y funcionamiento.

Para la simulación de un modelo acoplado creado con esta herramienta, se debe exportar el mismo en formato GADscript. Esto creará un archivo con extensión “.ma” que tendrá una sección para cada modelo integrante del acoplado raíz. En las secciones correspondientes a modelos atómicos clásicos solo habrá parámetros, en las secciones correspondientes a submodelos acoplados estará la descripción de su estructura, y en las secciones correspondientes a modelos atómicos GGAD estará el nombre del archivo que contiene su estructura y funcionamiento más los parámetros que el modelo acepte.

3      Edición de modelos acoplados con GGADTool

3.1     Inicio

Una vez iniciada la aplicación aparecerá tal como en la figura 1.

Figura 1

Aquí podemos ver la división de la ventana en 3 grupos de información:

Figura 2

 

·       la zona de dibujo (1)

·       la zona de definición jerárquica del modelo acoplado que estamos diseñando (2)

·       la zona de propiedades y valores del objeto seleccionado (3)

 

Para comenzar a diseñar un modelo DEVS acoplado basta con escribir un nombre para el objeto a insertar, y presionar el botón correspondiente en la barra de herramientas.

Se pueden agregar modelos acoplados, modelos atómicos, ports de entrada o salida del modelo acoplado raíz, ports de entrada o salida de cada modelo atómico (si es que son modelos atómicos clásicos) y conexiones entre ports.

Figura 3

 

3.2     Agregar modelos atómicos

Para agregar modelos atómicos primero se escribe el nombre en el casillero “Name” y luego se presiona el botón correspondiente. Una vez agregado se puede cambiar el valor de sus atributos en la zona de propiedades de los objetos. Para ello, seleccione el modelo atómico recién creado con un click del mouse sobre su imagen, o en su nombre en la zona de definición jerárquica.

Atributos de un modelo atómico:

·         Name : no modificable

·         Definition file: nombre de archivo que define este modelo atómico (*.ggd). Se puede asignar en el momento de creación para que tome su estructura de un archivo ya existente, o se puede explotar el modelo atómico con el correspondiente botón de la barra de herramientas y en la nueva ventana diseñarlo gráficamente para después almacenarlo en un archivo.

·         Params: lista de parámetros para este modelo atómico. Se debe usar cuando en el modelo acoplado se incluyen modelos atómicos clásicos (predefinidos en el CD++), que por estar ya compilados, necesitan parámetros para ser instanciados. También se pueden definir parámetros para un modelo atómico GGAD.

·         Class: Nombre de la clase del modelo. En el caso de que sean modelos GGad su clase será Ggad. Cuando se agregan modelos clásicos, se debe especificar su clase en este casillero.

Figura 4

3.3     Agregar ports

Para agregar ports, se escribe el nombre en el casillero “Name” y luego se presiona el botón correspondiente en la barra de herramientas, según sea de entrada o salida.

Los ports pueden ser creados en dos niveles:

·       Como ports del modelo raíz

·       Como ports de un modelo atómico clásico para poder definir las conexiones que el mismo tiene con el resto de los modelos

 Si el objeto seleccionado es un modelo atómico, el port será creado para este modelo, en otro caso será un port del modelo acoplado raíz. La funcionalidad de crear ports para modelos atómicos está prevista para los modelos atómicos clásicos, si el modelo atómico seleccionado es GGAD, la forma correcta de agregarle un port es explotar el modelo y editarlo en la aplicación GGAD Graphic tool. Cabe destacar que al editar un modelo atómico con GGAD Graphic tool, se perderán todos los atributos y ports creados en el nivel del modelo acoplado.

 

3.4     Agregar conexiones entre ports

Las conexiones entre ports tienen como punto inicial un port de entrada del modelo raíz o un port de salida de alguno de los modelos interiores, ya sea atómico o acoplado, y pueden terminar en un port de salida del modelo  raíz o un port de entrada de otro de los modelos interiores.

Para realizar una conexión, siga estos pasos:

1-      Seleccione en la zona de definición jerárquica el port de inicio de la conexión

2-      Presione el botón correspondiente en la barra de herramientas

3-      Del cuadro de diálogo abierto, elija un port de finalización de la conexión y presione Ok

Figura 5

Figura 6

Nota: Una manera alternativa de realizar conexiones, es arrastrando y soltando el port inicial sobre el port final en la zona de definición jerárquica del modelo acoplado.

3.5     Borrar objetos

Para borrar un objeto, selecciónelo y luego presione el botón correspondiente en la barra de herramientas. Los modelos atómicos y las conexiones entre ports pueden ser seleccionados indistintamente en la zona gráfica de dibujo como en la zona de la definición jerárquica del modelo, en tanto que los ports solo pueden ser seleccionados en la zona de definición jerárquica, ya que no tienen representación gráfica.

 

Tenga en cuenta que al borrar un objeto se borran automáticamente todos los objetos dependientes, es decir que si se borra un modelo atómico desaparecerán los ports del mismo y las conexiones en las que participe alguno de sus ports.

 

3.6     Explotar un modelo

 

Al seleccionar un modelo y presionar el botón correspondiente en la barra de herramientas:

·       Si el objeto seleccionado es un modelo acoplado sin Definition file

Þ     Se abre otra ventana con la aplicación CGGAD Graphic tool con un modelo acoplado en blanco. No se podrá volver al modelo raíz hasta no finalizar esta aplicación. Si el modelo editado se guarda en un archivo (con extensión .cgd) al cerrar esta nueva ventana, los cambios se verán reflejados en el atributo “Definition file” del modelo en cuestión. Si el modelo tenía definidos ports antes de ser explotado, estos serán reemplazados por los definidos mientras fue editado.

·       Si el objeto seleccionado es un modelo atómico de clase Ggad sin Definition file especificado:

Þ     Se abre otra ventana con la aplicación GGAD Graphic tool con un modelo vacío para editar. No se podrá volver al modelo raíz hasta no finalizar esta aplicación. Si el modelo editado se guarda en un archivo (con extensión .ggd) al cerrar esta nueva ventana, los cambios se verán reflejados en el atributo “Definition file” del modelo en cuestión. Si el modelo tenía definidos ports antes de ser explotado, estos serán reemplazados por los definidos mientras fue editado.

·       Si el objeto seleccionado es un modelo con Definition file especificado:

Þ     Se abre otra ventana con la aplicación CGGAD ó GGAD Graphic tool, según si el modelo explotado es atómico o acoplado, con el modelo descripto en el archivo en cuestión. No se podrá volver al modelo raíz hasta no finalizar esta aplicación.

 

Figura 7

3.7     Guardar el modelo

Una vez terminado el modelo acoplado, el mismo puede ser guardado en un archivo “.cgd” para su posterior edición con el comando del menú File “Save”, o puede ser exportado para su uso por el simulador CD++ con extensión “.ma” con el comando del menú File “Export to CD++”. El formato de exportación (GADscript) solo almacena la información relevante para el simulador CD++, por lo que siempre se debe guardar el modelo acoplado en formato ”cgd” para su posterior edición.

Nota: Antes de poder exportar un modelo acoplado, todos sus componentes deben haber sido guardados en formato “.cgd” o “.ggd”

4      Edición de modelos atómicos GGAD

4.1     Inicio

Una vez iniciada la aplicación (por haber explotado un modelo atómico en la aplicación CGGAD), aparecerá tal como en la figura

Figura 8

 

Aquí podemos ver la división de la ventana en 3 grupos de información:

 

Figura 9

 

·       la zona de dibujo (1)

·       la zona de definición jerárquica del modelo atómico que estamos diseñando (2)

·       la zona de propiedades y valores del objeto seleccionado (3)

 

Para comenzar a diseñar un modelo DEVS atómico basta con escribir un nombre para el objeto a insertar, y presionar el botón correspondiente en la barra de herramientas.

Se pueden agregar estados, transiciones internas o externas, ports de entrada o salida, variables del modelo, o acciones a las transiciones.

 

Figura 10

 

4.2     Agregar estados

Para agregar estados primero se escribe el nombre en el casillero “Name” y luego se presiona el botón correspondiente. Una vez agregado se puede cambiar el valor de sus atributos en la zona de propiedades de los objetos.

Atributos de un estado:

·         Name : no modificable

·         Time advance: tiempo que el simulador permanecerá en este estado antes de disparar una transición interna. Su valor puede ser expresado en unidades de tiempo con el formato 00:00:00:00 (horas:minutos:segundos:centésimas de segundo) o como “infinite” (sin las comillas) si se desea que el time advance sea infinito.

Figura 11

4.3     Agregar ports

Para agregar ports, se escribe el nombre en el casillero “Name” y luego se presiona el botón correspondiente en la barra de herramientas, según sea de entrada o salida.

4.4     Agregar transiciones internas

Las transiciones internas conectan 2 estados y pueden tener una función de salida asociada. La función de salida consiste en 0 o más pares de port/valor, es decir que ante la ocurrencia de la transición interna se puede especificar distintos valores que serán enviados por los ports de salida elegidos.

Para crear una transición interna siga estos pasos:

·       Seleccione en la zona gráfica el estado incial haciendo un click sobre él.

·       Presionando la tecla ctrl haga un click sobre el estado final de la transición también en la zona gráfica

·       Si la transición a crear tiene una función de salida asociada, seleccione el port de salida correspondiente en la zona de definición jerárquica del modelo

·       Presione el botón correspondiente de la barra de tareas

 

 

Figura 12

 

Figura 13

Si desea agregar más valores de salida en otros ports:

·       Seleccione la transicion interna en la zona gráfica o en la zona de definición jerárquica del modelo.

·       En la zona de propiedades y valores del objeto seleccionado, presione el botón correspondiente a la función de salida (Output function).

·       En el cuadro de diálogo rellene la tabla con los pares de ports y valores que serán emitidos a través de ellos. Tenga en cuenta que solo serán agregados los pares de port/valor cuyos nombres de port existan como ports de salida del modelo. El valor a ser ingresado puede ser una expresión compuesta por llamadas a funciones Built-in cuyos parámetros sean constantes o variables del modelo.

 

Figura 14

 

 

 

4.5     Agregar transiciones externas

Las transiciones externas conectan 2 estados a partir de un evento externo. Un evento externo se define como la aparición de un valor en al menos un port de entrada del modelo.

Cada transición externa posee una condición que debe cumplirse para ser activada. Esta condición se define por medio de una función cuyos parámetros pueden ser valores recibidos en los ports de entrada, variables del modelo o constantes numéricas. Las funciones a aplicar deben estar soportadas por el simulador CD++. En su versión actual soporta las siguientes funciones:

·       Add(n1,n2): devuelve la suma de n1 y n2

·       And(n1,n2): retorna verdadero si ambos parámetros son verdaderos (1)

·       Any(port1): retorna verdadero si el port port1 recibió un valor en este evento

·       Between(n1,n2,n3): retorna verdadero si n2 es mayor qeu n1 y menor que n3

·       Compare(n1,n2,n3,n4,n5): retorna n3, n4 o n5 si n1 es mayor, igual  o menor que n2 respectivamente

·       Divide(n1,n2): retorna n1 divido n2

·       Equal(n1,n2): retorna verdadero si n1 es igual a n2

·       Minus(n1,n2): devuelve n1-2

·       Multiply(n1,n2): retorna n1 multiplicado por n2

·       NotEqual(n1,n2): retorna verdadero si n1 es distinto de n2

·       Pow(n1,n2): retorna n1 a la potencia n2

·       Value(port1): retorna el valor que recibió el port1 en este evento

 

Para crear la transición externa siga estos pasos:

·       Seleccione en la zona gráfica el estado incial haciendo un click sobre él.

·       Presionando la tecla ctrl haga un click sobre el estado final de la transición, también en la zona gráfica

·       Seleccione el primer port de entrada (si es en función a uno o más ports)

·       Presione el botón correspondiente de la barra de tareas

Figura 15

·       Para modificar la condición que dispara esta transición, seleccione la transición en el diagrama jerárquico y edite la expresión. Recuerde que la expresión es una función con los parámetros correspondientes, que pueden ser constantes, variables del modelo, ports de entrada u otras funciones anidadas.

·       Por ejemplo la expresión:

And ( Value ( Port1 ) ? 2 , Equal ( var1, 5 ) )

Significa que la condición se cumple si en el port “Port1” hay un valor 2 y la variable “var1” es igual a 5.

 

Figura 16

·       Una manera alternativa de modificar la condición de una transición externa es presionando el botón “Edit Expression”. De esta manera aparecerá un cuadro de diálogo como el de la figura 17 que permite editar más comodamente la expresión. Haciendo doble click en la lista de funciones disponibles se agregará el nombre de la función Builtin a la expresión.

Figura 17

4.6     Agregar acciones a las transiciones

Tanto las transiciones internas como las externas, tienen la capacidad de ejecutar una lista de acciones en el momento de su activación, es decir cuando la condición para su ejecución ha sido satisfecha. Las acciones permiten asignar valores a las variables del modelo en tiempo de ejecución. El valor asignado proviene de la ejecución de una función Built-in sobre parámetros que pueden ser ports de entrada, variables del modelo y constantes.

Para agregar acciones a una transición, selecciónela y presione el botón “Actions” en la zona de propiedades del objeto seleccionado.

Figura 18

 

4.7     Borrar objetos

Para borrar un objeto, selecciónelo en la representación gráfica del modelo y luego presione el botón correspondiente en la barra de herramientas. Tenga en cuenta que al borrar un objeto se borran automaticamente todos los objetos dependientes, es decir que si se borra un estado desaparecerán las transiciones internas y externas en las que participaba.

 

4.8     Guardar el modelo

Una vez realizado el modelo atómico, el mismo puede ser guardado en un archivo “.ggd” para su posterior edición con el comando del menú File “Save”. Para realizar una simulación unicamente con este modelo atómico, genere un modelo acoplado que contenga únicamente a este modelo atómico y exporte el modelo acoplado. El formato de exportación solo almacena la información relevante para el simulador CD++, por lo que siempre se debe guardar el modelo atómico en formato CGGAD Graphic Tool para su posterior edición.

 

4.9     Otras funciones

 

En el menú “Options” aparecen dos opciones:

·         Show Transitions Names: Si está activada, en la zona del gráfico las transiciones tendrán sobreimpreso un texto con la función de salida o la condición para ejecutarse (Según sean internas o externas)

·         Show Transitions Tooltips: al activarla, cada vez que el mouse pase por una transición en la zona gráfica, aparecerá un “tooltip” con los atributos de la transición (incluyendo las acciones)

En el menú Tools, aparece un comando “Builtin functions”. A través de este comando se puede editar las funciones builtin disponibles para las expresiones en GGADTool. Para que tenga sentido deben estar implementadas en el simulador CD++.


 

5      TABLA DE CONTENIDOS

CGGAD Graphic Tool Manual del Usuario.. 1

1     Introducción.. 1

2     Definición.. 1

3     Edición de modelos acoplados con GGADTool. 1

3.1      Inicio. 1

3.2      Agregar modelos atómicos. 3

3.3      Agregar ports. 4

3.4      Agregar conexiones entre ports. 4

3.5      Borrar objetos. 5

3.6      Explotar un modelo. 6

3.7      Guardar el modelo. 7

4     Edición de modelos atómicos GGAD.. 7

4.1      Inicio. 7

4.2      Agregar estados. 10

4.3      Agregar ports. 11

4.4      Agregar transiciones internas. 11

4.5      Agregar transiciones externas. 13

4.6      Agregar acciones a las transiciones. 15

4.7      Borrar objetos. 16

4.8      Guardar el modelo. 16

4.9      Otras funciones. 16

5     TABLA DE CONTENIDOS. 17