前页 | 后页 |
业务规则的代码生成
在“规则流程图”中为所有“规则任务”元素建模规则后,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版提供了业务规则建模