一,系统模块划分:
二,系统必要信息:机器信息、人员信息
三,系统核心:任务管理
(将每个坏‘机器’即为一个‘任务’,任务由‘人’负责)
四,任务管理流程:
1,首先,管理员将任务分配给各组组长
2,然后,组长将本组任务分配给组员
3,组员完成自己的任务后,将任务提交给本组组长
4,组长审核提交的任务,任务完成合格,审批通过;任务完成不合格,审批未通过;
审批通过的任务,标记为'已完成';审批未通过的任务,组员继续负责该任务,提交任务….
五,看似不大的一个系统,真正开发起来问题也出现不少。
首先,最初把系统想的太简单,需求都还没分析好,就开始建数据库开发了,以致于真正开发起来,我的“任务管理模块”举步维艰
然后,还是最初想的太简单,每人负责一个模块,感觉谁和谁的模块都不会扯上什么关系
最后,数据库没设计好,直接导致不能满足业务需求
结果怎样?
1,删除小组时,(1)该小组的成员是否也全部删除?(2)该组对应的已分配但未完成的任务如何处理?
(同理:删除成员时?删除机器时?——分别与已分配出去的任务的处理关系)
2,管理员1在给某小组分配任务的同时,管理员2正在删除改组,如何办?
同理:组长1在给某组员分配任务的同时,管理员1正在删除该组员,如何办?
3,我的管理员分配任务的设计:管理员分配任务给某小组,该小组必须有组长,不然会出现系统bug;
而韩义的添加小组和人员设计:先添加小组,后添加人员。(即,添加小组和添加成员是分开的) 我在想:(1)管理员只添加了“第1小组”,但是并未给改组分配成员和组长;
(2)管理员只添加了“第1小组”,也添加了成员,但是忘记添加组长
问题出现了:如果韩义添加了小组“第5小组”,但是没有分配组长,那么管理员分配任务给“第5小组”就会出问题
如何解决?
解决方案1:韩义的“添加小组”和“添加人员”同时进行:
什么意思?
即,先添加人员,在添加小组的时,要选择该小组的成员和组长。这样就可以避免在只有小组没有组长情况下,管理员分配任务出现的问题了。
解决方案2:在给“第5小组分配任务”时,验证此小组有没有组长,没有组长就不允许分配任务
(解决方案2的弊端:如果验证太多,导致管理员都不知道哪个小组分配了任务,哪个小组没有分配任务。)
4,如果改组换组长呢?改组没有完成的任务谁负责?
我的设计问题,组任务应该对应小组,不该对应组长(此需求改进中)
解决方案1:换组长时,查询任务分配表,将改组未完成的任务负责人更新为新组长
解决方案2:组任务对应小组(这个方案不现实,因为还要改数据库,其他需求受牵连)
5,“添加问题类型”功能设计弊端
两个人添加了同一个类型,但是起的名字不一样,怎么办?
…..
很多在开发中遇到的,但在开发前未想到的问题,让我们头大,又让我们Enjoy….贾琳师哥说,这就是项目经验,有了这一次经验,下次开发时,同样的问题就会提前意识到,做好处理,不会再等到问题发生时再去处理