预订演示

请注意 : 本帮助页面不适用于最新版本的Enterprise Architect. 最新的帮助文档在这里.

前页 后页

业务规则的代码生成

在“规则流程图”中为所有“规则任务”元素建模规则后,Business Domain模型就可以进行代码转换了。提供的用于生成特定于技术的规则代码的内部代码模板与EASL代码模板紧密配合,以根据规则处理类及其规则流结构生成代码。

从规则流行为返回值

行动

也可以看看

1个

双击“规则流图”末端节点之前的最后一个“规则任务”元素。

显示元素的“属性”对话框。

创建业务领域模型

2

点击“效果”标签。

3

在“效果”字段中,输入return语句;例如,返回True。

4

单击保存按钮,然后单击确定按钮以关闭对话框。

为包含规则流行为的Class生成代码(在我们的第一个示例中,Rental System);生成业务规则逻辑代码,并以自然语言将规则语句表示为注释。

生成一个单一的类

此代码段是从EAExample模型中的Rental System Class元素生成的:

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

// RentalSystem.cs

//实现Class RentalSystem

//由Enterprise Architect生成

//创建于:2016年7月26日下午2:39:23

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

使用系统;

使用系统集合通用;

使用系统文字;

使用系统 IO ;

公共类RentalSystem

{

公共客户m_Customer;

公共汽车m_Car;

公共租金m_Rent;

公共RentalSystem()

{

}

〜RentalSystem()

{

}

公共虚拟无效Dispose()

{

}

/ *开始-EA为活动和互动生成的代码* /

公共布尔ProcessApplication(Rent m_rent,Application m_application)

{

//行为是一个活动

/ *不得将没有有效许可编号的汽车出租给客户* /

if(m_Customer.ValidLicenseNumber ==“ FALSE”)

{

m_application.Status =“拒绝”;

m_Customer.Eligible = false;

}

/ *不得将汽车出租给18岁以下的顾客* /

if(m_Customer.age <18)

{

m_application.Status =“拒绝”;

m_Customer.Eligible = false;

}

/ *禁止将汽车出租给具有不良历史水平3的客户* /

if(m_Customer.BadHistoryLevel == 3)

{

m_application.Status =“拒绝”;

m_Customer.Eligible = false;

}

如果(Customer.Eligible == true)

{

/ *小汽车租用每天80澳元* /

if(m_Car.type ==小)

{

m_rent.RentPerDay = 80;

}

/ *四驱车的租金为每天100澳元* /

if(m_Car.type == AWD)

{

m_rent.RentPerDay = 100;

}

/ *租用豪华轿车每天150澳元* /

if(m_Car.type ==豪华)

{

m_rent.RentPerDay = 150;

}

/ *按天计算的租金和租金的乘积计算得出的应付租金* /

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

如果(CustomerBadHistoryLevel> 0)

{

/ *对于历史记录为2级以上的客户,必须支付20%的租金罚款* //

if(m_Customer.BadHistoryLevel == 2)

{

m_rent.PenaltyFee = m_rent.RentPayable * 0.2;

}

/ *对于历史水平为1级的客户,必须施加10%的租金罚款* //

if(m_Customer.BadHistoryLevel == 1)

{

m_rent.PenaltyFee = m_rent.RentPayable * 0.1;

}

}

其他

{

}

/ *应付总金额是应付租金和罚款(如果有)的总和。* /

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

}

其他

{

}

返回m_application.Status;

}

/ *结束-EA为活动和互动生成的代码* /

}

//结束RentalSystem

笔记

  • Enterprise Architect的Unified版和Ultimate版提供了业务规则建模

学到更多