Generación de Código - Máquinas de Estado [Guía de Usuario de Enterprise Architect]

Top Previous Next

Generación de Código - Máquinas de Estado

button_main button_prev button_next

Una Máquina de Estado ilustra como un objeto (representado por una Clase) puede cambiar de estado, cada cambio de estado siendo una transición iniciada por un disparador surgiendo desde un evento, a menudo bajo condiciones o restricciones definidas como guardas. Mientras modela como el objeto cambia de estado, puede generar y construir (compilar) código desde este, en el lenguaje apropiado y ejecutar el código, visualizando la ejecución a través del Simulador de modelo.

Esto también es posible, en Enterprise Architect, para combinar las Máquinas de Estado de objetos relacionados pero separados para ver cómo interactúan (a través de Eventos de Transmisión), y para crear y generar código desde variantes del modelo. Por ejemplo, puede llegar a modelar el comportamiento de:

La rueda trasera del lado de un vehículo en los modos de tracción trasera y tracción delantera (una Máquina de Estado)

El volante y las cuatro ruedas de un vehículo en el modo de tracción de 4 ruedas (cinco Máquinas de Estado)

Las ruedas de un vehículo todo terreno y de un auto deportivo (dos Artefactos, instancias de una combinación de Máquinas de Estado)

 

De importancia crítica para generar y probar código para todas estas opciones es el elemento Artefacto de Máquina de Estado Ejecutable. Esto actúa como el contenedor y unidad de generación de código de modelos de Máquina de Estado.

Requisitos Previos

Seleccione Herramientas | Opciones | Objetos y seleccione la casilla tipo de Parte y Puerto visible de manera predeterminada

Seleccione Herramientas | Opciones | Ingeniería de Código Fuente y, para el lenguaje de codificación apropiado (Java, C, C# o ANSI C++), configure la opción Utilice la Plantilla de Máquina de Estado nueva como Verdadera

Si está trabajando en C++, seleccione Herramientas | Opciones | Ingeniería de Código Fuente | C++ y configure la opción Versión C++ como ANSI

 

Este método de generación de código no se aplica a las plantillas de generación de código de la Máquina de Estado de Legado desarrollada anterior al Lanzamiento de Enterprise Architect 11.

Acceso Diagrama | Caja de Herramientas de Diagrama > Artefactos

Prepare su diagrama(s) de Máquina de Estado

Paso

Acción

Ver También

1

Para cada Máquina de Estado que quiera modelar, cree un nuevo diagrama de Clase.

Agregar Nuevos Diagramas

 

2

Desde la página de Elementos de Clase de la Caja de Herramientas, arrastre el ícono de Clase hacia su diagrama y dele al elemento un nombre apropiado.

 

Crear Elementos

3

Haga clic derecho en el elemento de Clase y seleccionar la opción del menú Nuevo Diagrama Hijo | Máquina de Estado.

Dele al diagrama de Máquina de Estado un nombre apropiado.

 

 

4

Crea el modelo de Máquina de Estado para reflejar las transiciones apropiadas entre Estados.

 

Máquinas de Estado

Configurar el Artefacto de Máquina de Estado Ejecutable

Paso

Acción

Ver También

1

Crear un nuevo diagrama de Clase para contener la Máquina(s) de Estado modelada desde la cual pretende generar código.

Agregar Nuevos Diagramas

 

2

Desde la página de Artefactos de Clase de la Caja de Herramientas, arrastre el ícono de Máquina de Estado Ejecutable hacia el diagrama para crear el elemento de Artefacto. Nombre el elemento y arrastre sus bordes para agrandarlo.

 

Artefacto

3

Desde el Explorador de Proyectos, arrastre el (primer) elemento de Clase que contiene un diagrama de Máquina de Estado hacia el elemento de Artefacto en el diagrama.

El <nombre del elemento>: Se muestra la ventana Pegar Como, con el campo Pegar Como predeterminado como Propiedad.

(Si la ventana no se muestra, presione Ctrl mientras arrastra el elemento de Clase desde el Explorador de Proyectos.)

 

 

 

Pegar desde Explorador de Proyectos

4

Haga clic en el botón Aceptar . El elemento de Clase es pegado adentro del Artefacto como una Parte.

 

Parte

5

Repita los pasos 3 y 4 para cualquier otra Clase con Máquinas de Estado que quiera combinar y generarles código. Estos podrían ser:

'Gotas' repetidas de la misma Clase y Máquina de Estado, modelando objetos paralelos

Diferentes Clases y Máquinas de Estado, modelando objetos interactuantes separados

 

 

6

Hacer clic derecho en el elemento Artefacto y seleccione la opción de Propiedades, y en el campo Lenguaje haga clic en la flecha de despliegue y configure el lenguaje de código para el mismo lenguaje definido para los elementos de Clase.

Ahora puede arrastrar este elemento de Artefacto de Máquina de Estado Ejecutable desde el Explorador de Proyectos hacia el diagrama de en varios momentos, y modificar las Partes para modelar variaciones del sistema o proceso, o el mismo sistema o proceso con diferentes lenguajes de programación.

 

 

Generar Código Desde Artefacto

Paso

Acción

Ver También

1

Haga clic derecho en el elemento de Artefacto de Máquina de Estado Ejecutable y seleccione la opción del menú Ingeniería de Código | Máquina de Estado Ejecutable | Generar.

Se muestra la ventana Generación de Código de Máquina de Estado Ejecutable.

 

 

2

En el campo Directorio de salida del Proyecto, escriba o explore el nombre de ruta del directorio bajo el cual crear los archivos de salida.

Durante la generación de código, todos los archivos existentes en este directorio son eliminados.

 

 

3

En el campo Ubicación del directorio de instalación <compilador> , escriba o explore la ruta del directorio de instalación del compilador, para estar mapeado automáticamente en la ruta local (mostrado a la izquierda del campo). Para cada lenguaje de programación, estos podrían asemejarse a lo siguiente:

 

Java

JAVA_HOME C:\Program Files (x86)\Java\jdk1.7.0_17

 

C/C++

VC_HOME C:\Program Files (x86)\Microsoft Visual Studio 9.0

 

C#

CS_HOME C:\Windows\Microsoft.NET\Framework\V3.5

 

 

4

Haga clic en el botón Generar . Los archivos de código son creados apropiadamente para el lenguaje de programación.

La ventana de Salida del Sistema se muestra con una pestaña de Salida de Máquina de Estado Ejecutable, mostrando el progreso y estatus de la generación.

Durante la generación de código, una función de validación automática es ejecutada para revisar errores para el diagrama o modelo contra las restricciones UML. Cualquier error es identificado por mensajes de error en la pestaña de Salida de Máquina de Estado Ejecutable.

Haga doble clic en un mensaje de error para mostrar la estructura de modelado en la cual ocurre el error, y corregir el error antes de volver a generar el código.

 

 

5

Cuando el código se genera sin error, haga clic derecho en el elemento de Artefacto y seleccione la opción del menú Ingeniería de Código | Máquina de Estado Ejecutable | Construir para compilar el código.

La ventana de Salida del Sistema se muestra con una pestaña de Construcción, mostrando el progreso y estatus de la compilación. Note que la compilación incluye la configuración de la operación de simulación (abajo).

 

 

Ejecutar/Simular Código Desde Artefacto

Paso

Acción

Ver También

1

Seleccione las dos opciones del menú:

Analista | Simulador para mostrar la ventana de Simulación

Analista | Eventos de Simulación para mostrar la ventana de Eventos de Simulación

 

Acople las dos ventas en un área conveniente de la pantalla.

 

 

Ventanas de Simulación

Ventana de Eventos de Simulación

2

En el diagrama o Explorador de Proyectos, haga clic derecho en el elemento de Artefacto y seleccione la opción del menú Ingeniería de Código | Máquina de Estado Ejecutable | Ejecutar.

El primer diagrama de Máquina de Estado de la serie se muestra con la simulación del proceso ya iniciado. En la ventana de Simulación, los pasos de procesamiento están indicados en este formato:

 

[03516677] Part1[Class1].Initial_367_TO_State4_142 Effect

[03516683] Part1[Class1].StateMachine_State4 ENTRY

[03516684] Part1[Class1].StateMachine_State4 DO

[03518375] Blocked

 

 

3

Haga clic en los botones de la barra de herramientas de la ventana de Simulación apropiada para pasar a través de la simulación como prefiera.

Cuando la simulación finaliza en el elemento Salir o Finalizar, haga clic en el botón Parar en la barra de herramientas de la ventana Simulación.

 

Ejecutar Simulación Modelo

 

4

Cuando la traza muestra Bloqueado, la simulación ha llegado a un punto donde el evento Disparador tiene que ocurrir antes de que el proceso pueda continuar. En la ventana de Eventos de Simulación, en la columna de Disparadores en Espera, haga doble clic en el Disparador apropiado.

Cuando el Disparador es disparado, la simulación continúa hasta el siguiente punto de pausa, Disparador o salida.

http://www.sparxsystems.com/enterprise_architect_user_guide/9.3/domain_based_models/spem_toolbox_pages.html

 

Disparadores

Disparadores Esperando

 

Notas

Si está haciendo pequeños cambios en un modelo de Máquina de Estado existente, puede combinar la generación de código, construir y ejecutar operaciones al seleccionar la opción Ingeniería de Código | Máquina de Estado Ejecutable | Generar, Construir y Ejecutar

También puede generar código en JavaScript y System C

 

Aprender más

Eventos de Transmisión