Generación de código - Diagramas de actividad

Superior  Previo  Próximo

 

La generación de código desde un diagrama de Actividad requiere una fase de validación, durante la cual Enterprise Architect usa el optimizador de gráfico de ingeniería de sistemas para analizar el diagrama y ordenarlo en varias estructuras generables de código. Las estructuras también se transforman en una de varios tipos de acción (si es apropiado), similar a las estructuras del diagrama de interacción. Los macros de generación de código EASL luego se usan para generar código de estas estructuras; vea el tema Macros de generación de código EASL.

Para proporcionar un análisis entendible de estas características, como ejemplo se muestran varios diagramas del proyecto EAExample.

Sentencia condicional

Para modelar una sentencia condicional, use nodos de Decisión/Combinación. Alternativamente, puede implicar Decisiones/Combinaciones internamente. El optimizador de gráfico espera un nodo de Combinación asociado para cada nodo de Decisión, para facilitar una búsqueda eficiente de varias ramas y  el análisis de las estructuras de código dentro de ellas.

El siguiente diagrama se interpreta como una sentencia Si anidada.

do validateusere

El código de Java que se puede generar de este diagrama es como el siguiente:

 

public boolean doValidateUser(String Password,String UserName)

{

loadAccountDetails();

boolean bRet;

if (Username==name)

{

if (Password == password)

{

bRet = true;

bValidUser = true;

}

else

{

bRet = false;

}

 

}

else

{

bRet = false;

}

 

return bRet;

}

Acciones de invocación (Acción Llamada a Operación, Acción Llamada a Comportamiento)

Las Acciones Llamada se manejan más eficientemente. Cada acción tiene argumentos para los parámetros del comportamiento asociado (use el botón Sincronizar de la ventana Argumentos para sincronizar argumentos y parámetros).

El siguiente diagrama demuestra el uso de Acción Llamada a Comportamiento y Acción Llamada a Operación mezclado con una sentencia condicional.

do markaccountclosed

El código Java generado aparece como el siguiente:

 

public void doMarkAccountClosed()

{

doValidateUser(password,name);

if (bValiduser)

{

setClosed(true);

 

}

else

{

System.out.println("Invalid user");

}

return;

}

Bucles

El optimizador de gráfico de ingeniería de sistema de Enterprise Architect también es capaz de analizar e identificar bucles. Un bucle identificado se ordena internamente como un Action Loop, el cual es interpretado por las macros de generación de código

EASL para generar el código requerido.

El siguiente diagrama demuestra como se puede modelar un bucle.

do checkforoutstandingorders

El código de Java generado puede aparecer como el siguiente:

 

public void doCheckForOutstandingOrders()

{

if (status != closed)

{

initializeStateMachine();

while (status != closed)

{

runStateMachine();

}

}

else

{

//No Outstanding orders;

}

return;

}