一、问题描述
假设雇员 Employ 有:
学历信息 eduInfo , 简历信息 resume ,
考核信息 annualExam 和奖惩信息 awardPunish ;
要确定其:
基本工资 basicSalary ,职务工资 dutySalary ,
分红金额 bonus 和 总工资 totalSalary .
规则如下:
【 1 】学历决定基本工资( basicSalary ):
====> 本科 1500 研究生 2500
【 2 】简历决定职务工资 (dutySalary) :
====> 技术 2000 管理 4500
【 3 】年度考核决定分红 (bonus) :
====> 分红总金额 1000
==> 考核结果:
==> 优秀 100% ( 1000 );良好 90% ( 900 );
合格 60% ( 600 ); 不合格 0% ( 0 );
【 4 】奖惩决定计算最终工资与【 123 】项工资之和的比例:
====> 奖励: * 110% ( +10% )
====> 惩罚: * 90% ( -10% )
====> 无: * 100% ( 0% )
【 5 】计算总工资: (【 1 】 + 【 2 】 + 【 3 】) * 【 4 】
二、问题分析
1. 基本流程:
P 【计算基本工资,计算职务工资,计算分红, 计算奖惩比例】
====> 计算总工资 ( 根据奖惩情况 )
其中, P[i,...,k] 表示任务 i,...,k 并发执行, ====> 表示顺序执行。
即有: P[1,2,3, 4] ===> 5
三、概要设计
【 1 】类 Employ 的设计:
【 2 】规则文件的编写和组织:
==> 学历规则文件: EduInfoRule.drl
==> 简历规则文件: ResumeRule.drl
==> 分红规则文件: BonusRule.drl
==> 奖惩规则文件: AwardPunish.drl
==> 计算总工资规则: TotalRule.drl
【 3 】规则文件的组合(规则流):
==> EduInfo.drl 含规则组 basic_salary
==> ResumeRule.drl 含规则组 duty_salary
==> BonusRule.drl 含规则组 bonus_salary
==> AwardPunish.drl 含规则组 award_punish
==> TotalRule.drl 含规则组 sum_salary
组合方式:
[start] ---> P[ basic_sal ary , duty_salary, bonus_salary, award_punish ]
---> sum_salary ---> [end]
其中: P 表示并发, ---> 表示顺序 【规则流图在后面的实现中给出】
【 4 】编写测试文件: EmployTest.java
四、详细设计
【 1 】使用 Eclipse IDE 作为开发环境,