Simulación Dinámica con JavaScript
|
|
Las ediciones Corporativa y suite de Enterprise Architect tienen la capacidad de utilizar Javascript para evaluar guardas, efectos y otros aspectos del comportamiento dentro del contexto de Simulación. Esto proporciona una ejecución inteligente, completamente automatizada de su modelo de Estado o Actividad, con un control fino sobre puntos de interrupción, velocidad de ejecución y variables de simulación.
Javascript se puede escribir que utiliza cualquier variable. Para permitirle mostrar los valores de a variable a la interfaz de usuario dos valores definen que sus miembros se muestran en la ventanaVariables Locales. Estas son sim y this; por ejemplo:
Todas la variables de arriba se mostrarán en la ventana Locales.
La convención recomendada es agregar cualquier variable global o de control no declarada en la Clase propietaria del objeto sim. En contraste sería normal agregar atributos del clasificador propietario al objeto this.
Algunos ejemplos de donde y como puede configurar el comportamiento de Simulación utilizando Javascript se muestra abajo. Vea el modelo EAExample.eap que viene con Enterprise Architect para algunos ejemplos más. También vea el Centro de Aprendizaje para más información sobre como configurar y trabajar con Javascript en Simulaciones.
Utilizando Javascript
Configuración
|
Acción
|
Ver También
|
Entrada de Script de Analista
|
Si ingresa código Javascript en el campo Entrada de la ventana del Analista de Ejecución, ese código será inyectado en la Simulación y ejecutado antes de que comience la Simulación. Esto es útil para establecer variables COM, contadores globales, funciones y otra inicialización.
|
|
Guardas de Transición y Flujo de Control
|
Esto es lo eficaz de la funcionalidad de Simulación. Mientras Enterprise Architect evalúa posibles rutas hacia adelante en cada nodo en una Simulación, prueba las Guardas de transiciones y flujos de control salientes y sólo se va a mover hacia adelante si hay una única ruta verdadera para seguir - sino la se considera a la Simulación "bloqueada" y se requiere intervención manual. Debe utilizar el operador "==" para probar la igualdad.
|
|
Comportamiento de Elementos
|
Los comportamientos de Entrada y Salidase pueden definir para Estados. Tal código se ejecutará en el momento apropiado y es útil para actualizar variables de Simulación y hacer otras tareas.
También puede simular el comportamiento de Clases, a través de sus Instancias de Objeto, y Actividades en su modelo.
|
Comportamientos de Llamada
|
Utilizando COM
|
Una característica muy importante de la implementación de Javascript en el simulador de Enterprise Architect es que soporta la creación de objetos COM. Esto proporciona la habilidad de conectar la Simulación en ejecución con casi cualquier otro proceso local o remoto e influenciar la Simulación basada en datos externos, o potencialmente cambiar datos o comportamientos en el mundo externo basado en el estado de Simulación actual (p.ej. actualizar un modelo mecánico o una simulación de software externa a Enterprise Architect). La sintaxis para crear objetos COM se muestra abajo.
this.name="Odd Even";
var logger = new COMObject("MySim.Logger");
logger.Show();
logger.Log("Simulation started");
|
|
Acciones Señalizadas
|
Es posible plantear un evento señalizado (disparado) directamente utilizando Javascript. El comando de BroadcastSignal() es utilizado para plantear un disparador nombrado el cual puede influenciar el estado actual de una simulación. Por ejemplo el siguiente fragmento plantea la señal (disparador) llamado "CancelPressed".
BroadcastSignal("CancelPressed");
Note que un disparador llamado CancelPressed debe existir dentro del entorno de simulación actual y debe únicamente tener ese nombre.
También puede llamar a la señal utilizando su GUID. Por ejemplo:
BroadcastSignal("{996EAF52-6843-41f7-8966-BCAA0ABEC41F}");
|
|
IS_IN()
|
El operador IS_IN(state) devuelve verdadero si la simulación actual tiene un estado activo en cualquier tema que coincida con el pasado del nombre. Por ejemplo es posible escribir código tal como el siguiente para controlar condicionalmente la ejecución:
if (IS_IN("WaitingForInput"))
BroadcastSignal("CancelPressed")
Note que el nombre debe ser único dentro de todos los contextos.
|
|
Trace()
|
El método Trazar(declaración) le permite imprimir declaraciones de Rastreo en cualquier punto arbitrario de su simulación. Este es un medio excelente de suplementar la el registro de la Simulación con información de salida adicional durante la ejecución.
|
|
Aprender más
Temas de Centro de aprendizaje
•
|
(Alt+F1) | Enterprise Architect | Simulación | Simulación Dinámica
|
•
|
Actividad Con JavaScript 1
|
•
|
Actividad Con JavaScript 2
|
•
|
Máquina de Estado Con JavaScript 1
|
•
|
Máquina de Estado Con JavaScript 2
|
•
|
Secuencia Con JavaScript 1
|
•
|
Secuencia Con JavaScript 2
|
•
|
Secuencia Con JavaScript 3
|
|