2019-04-20 敏捷软件开发 第18-19章
下面会给出薪水支付案例的相关说明:
1.实现:为每个雇员支付薪水。按照规定方法准时给雇员支付正确数目的薪水,同时必须从雇员薪水中减去各种扣款。
2.雇员分类:
雇员为钟点工
按照雇员记录中每小时报酬字段值进行支付。临时雇员每天提交工作时间卡(记录了日期以及工作和时间)如果每天工作时间超过8小时,超过时间按照正常工资1.5倍支付。每周五支付
正常雇员
月底对他们进行支付
带薪雇员
根据销售情况,进行支付酬金,需要他们提交销售凭条,记录销售日期和数量
3.支付方式:(雇员可以选择支付方式)
将支付支票邮寄到指定的邮政地址
支票保存在出纳人员那里随时提取
将薪水直接存入他们的银行账号
4.扣除情况:
协会雇员,雇员记录中有一个每周应付款项字段,需要从薪水中扣除,有时也会针对单个雇员进行扣除。协会每周会提交服务费用,服务费用会从相应雇员下个月薪水总额中扣除
5.工作方式:
每天运作一次,为当天相应雇员进行支付,系统会告知雇员的支付日期,这样会计算从上次支付日期到这次支付日期印支付的费用
6.用例分析:
(1)增加新雇员:
1>正常情况:增加成功
2>异常情况:操作结构有错误,打印出来
通过Command模式创建:
(2)删除雇员
1>正常情况:删除对应雇员记录
2>异常情况:无效或未知的empId
(3)登记时间卡
1>正常情况:创建一条时间记录卡记录,并把该记录与对应的雇员记录关联起来。
2>异常情况:1)所选择的雇员不是钟点雇员
2)描述的操作结构中有错误
(4)登记销售凭条
1>正常情况:创建一条销售记录,并把记录与对应的雇员记录关联起来
2>异常情况:1)所选的雇员不是应付酬金的雇员
2)描述的操作结构有错误
(5)登记协会服务费
1>正常情况:创建一条服务费用记录,并把该记录与对应的协会成员关联起来
2>异常情况:描述的操作结构有错误
(6)更改雇员明细(基本信息,协会会员信息等)
可能操作:
更改雇员名
更改雇员地址
更改每小时报酬
更改薪水
更改酬金
持有支票
直接村矿
邮寄支票
使雇员加入协会
从协会去掉雇员
(7)在当日运行薪水支付程序
系统找出所有应该在指定日期进行支付的雇员,确定他们的应扣款项,并根据他们的支付方式进行支付。
因为钟点工薪水支付时间为每周五,带薪员工薪水支付时间为隔一周周五,正常员工为月末最后一天,所以将薪水支付时间抽象出来。
系统的核心模型如下:
后续将会逐一分析各个用例,并给出代码
---------------------