Generación de código para las reglas de negocio

Superior  Previo  Próximo

 

Luego de haber modelado las reglas de negocio para todos los elementos de tareas de regla en el diagrama de flujo de reglas, puede generar código desde el comportamiento de flujo de reglas.

Para devolver un valor desde el comportamiento de flujo de reglas:

1.Haga doble clic en el último elemento de tarea de reglas antes del nodo final del diagrama del flujo de regla. Se abre la ventana Propiedades del elemento.
2.Haga clic en la pestaña Efecto.
3.En el campo Efecto, ingrese return; por ejemeplo, return true.
4.Haga clic en el botón Guardar, y en el botón Aceptar para cerrar la ventana.

Generar código para la Clase que contiene el comportamiento flujo de regla (en nuestro ejemplo inicial, Sistema de alquiler). Se genera el código para la lógica de las reglas de negocio, con las declaraciones de regla expresadas en lenguaje natural como comentarios.

El siguiente fragmento de código se generó desde el elemento Clase RentalSystem en nuestro ejemplo:

 

///////////////////////////////////////////////////////////

// RentalSystem.cs

// Implementation of the Class RentalSystem

// Generated by Enterprise Architect

// Created on: 08-May-2009 2:39:23 PM

///////////////////////////////////////////////////////////

 

 

public class RentalSystem {

 

public Customer m_Customer;

public Car m_Car;

public Rent m_Rent;

 

public RentalSystem(){

 

}

 

~RentalSystem(){

 

}

 

public virtual void Dispose(){

 

}

 

/* Begin - EA generated code for Activities and Interactions */

 

public bool ProcessApplication(Rent m_rent,Application m_application)

{

// behavior is an Activity

/*CAR MUST NOT BE RENTED TO CUSTOMERS WITHOUT A VALID LICENCE NUMBER*/

if( m_Customer.ValidLicenceNumber == "FALSE" )

{

m_application.Status = "Reject";

m_Customer.Eligibile = false;

}

/*CAR MUST NOT BE RENTED TO CUSTOMERS OF AGE LESS THAN 18*/

if( m_Customer.age < 18 )

{

m_application.Status = "Reject";

m_Customer.Eligibile = false;

}

/*CAR MUST NOT BE RENTED TO CUSTOMERS WITH BAD HISTORY LEVEL 3*/

if( m_Customer.BadHistoryLevel == 3 )

{

m_application.Status = "Reject";

m_Customer.Eligibile = false;

}

if (Customer.Eligible == true)

{

 

/*RENT FOR SMALL CARS IS 80 AUD PER DAY*/

if( m_Car.type == Small )

{

m_rent.RentPerDay = 80;

}

/*RENT FOR AWD CARS IS 100 AUD PER DAY*/

if( m_Car.type == AWD )

{

m_rent.RentPerDay = 100;

}

/*RENT FOR LUXURY CARS IS 150 AUD PER DAY*/

if( m_Car.type == Luxury )

{

m_rent.RentPerDay = 150;

}

/*RENT PAYABLE IS CALCULATED AS THE PRODUCT OF RENTPERDAY AND RENTALPERIOD IN DAYS*/

m_rent.RentPayable = m_rent.RentPerDay * m_rent.No_of_rent_days;

if (CustomerBadHistoryLevel > 0)

{

 

/*PENALTY OF 20 % OF RENT MUST BE APPLIED FOR CUSTOMERS WITH BAD HISTORY LEVEL 2*/

if( m_Customer.BadHistoryLevel == 2 )

{

m_rent.PenaltyFee = m_rent.RentPayable * 0.2;

}

/*PENALTY OF 10 % OF RENT MUST BE APPLIED FOR CUSTOMERS WITH BAD HISTORY LEVEL 1*/

if( m_Customer.BadHistoryLevel == 1 )

{

m_rent.PenaltyFee = m_rent.RentPayable * 0.1;

}

}

else

{

 

}

 

/*TOTAL AMOUNT PAYABLE IS CALCULATED AS THE SUM OF RENT PAYABLE AND PENALTY IF ANY.*/

m_rent.TotalAmountPayable = m_rent.RentPerDay + m_rent.PenaltyFee;

}

else

{

 

}

return m_application.Status;

}

 

/* End - EA generated code for Activities and Interactions */

 

}//end RentalSystem