需求分析实例[任务管理]


最近一直比较关注需求分析,很多时候经常在来来回回修改..一些原因是代码写的不够'完美',还有原因就是需求理解不透彻,没能纵观全局,没能提前预想到一些'必须的'扩展功能

接下来准备拿几个实例来练习下,如何做需求分析
首先:任务管理


需求列表

不谈论具体实现,不讨论技术细节,只关心"客户希望有什么",此列表作为最终验证功能实现的参考,作为测试的示例,作为产品推广的广告.---学习如何站在客户立场提需求,如何把需求描述为客户可理解的需求,人人可看懂的需求.

  1. 必须有,肯定会用的登陆,用户管理,部门管理,角色等不说了,先说目前没有上系统我们是怎么做的.
  2. 我(集团老总)定期会收到财务总监给我的一些报告文件,记录了集团的整体运营,预算等情况.
  3. 我(集团财务总监)会把一些excel文件作为模板发给指定的部门(包括分子公司),这些部门会有相应的人去下载并填写数据,然后先由部门内部审核通过,再提交给我.我会对各个部门提交的模板文件进行数据合并,汇总.会出一个总的文件上报给懂事会
  4. 我(分子公司财务总监)会把集团给我的excel文件转发给指定的部门,等他们内部填写并审核确认后提交给我,我自己也会填写一份数据,并对提交的excel文件进行数据合并,然后把合并后的发给集团.
  5. 我(部门长)会把集团发给我的excel文件转发给下属,下属填写后再发给我,我会做一些小修改,或者退回给下属修改,确认无误,我会把文件发给集团
  6. 我(人事部长)定期会收到各部门对所有员工进行考评 汇总和明细.
  7. 我(研发部长)会绘制一个考评的excel文件,发给各个项目总监和项目经理,要求他们对各自负责的人员进行考评.等他们考评完后,我会将所有的进行合并汇总..
  8. 我(项目总监)会把部长给我的excel文件转发给我手下的项目经理,要求他们先自己对自己进行考评,打分,然后提交给我,我在分别对他们打分,考评,然后再做一个汇总提交给部长.
  9. 我(项目经理)会把部长给我的excel文件转发给我手下的项目成员,要求他们先自己对自己进行考评,打分,然后提交给我,我在分别对他们打分,考评,然后再做一个汇总提交给部长.
  10. 我(项目经理/员工)会收到总监/经理给的excel文件,对自己进行考评打分,然后提交.
  11. 我(综合部门助理)会把考评的excel文件,发给所有需要自评的人员(有总监的经理,和项目下成员).他们下载填写后,提交给他们自己的负责人(总监或经理).可能一个人同时提交给多个经理(同时参与多个项目的).各个总监或经理对提交给自己的excel文件进行补充(完成考评).提交给我,我对所有的进行整理汇总

技术角度列表-基础

  1. 把每件事情称为一个任务.做一个任务管理的功能,提供给用户使用
  2. 提供一个工具设计excel模板文件.领导下发的不包含数据的excel文件 可称为动态模板,最后汇总只供查看的最终文件称为静态模板.--动态模板可对应一堆报表文件(虚拟报表)
  3. 当下级下载模板并填写了数据的文件,称为虚拟报表.转发的过程称为任务启动,任务启动时根据选择的下发对象,直接生成相应的文件,
  4. 当对同一个模板的一堆虚拟报表进行合并汇总(格式一样,主要针对相同坐标格子数据求和),称为报表合并.
  5. 任务下发给各个分支,每个分支都有唯一的父节点,能够找到一个串行线,把报表绑定到这条线上,一个节点提交后到下一个节点,如果驳回则回到开始节点..通过属性控制每个节点是否可编辑,是否可驳回,---
  6. 建立的分支树可重复使用,称为流程管理,专门来构建流程树..设置串行的事件节点,以及树状的类似组织架构的角色流程,以及各个节点对应的人员.
  7. 任务管理来定义任务,选择报表,选择流程,定义任务,启动,回收任务..查看任务细节等..
  8. 细节 只针对简单的,单个角色节点,单个报表文件,单条线,无分支,无合并,无特殊情况,一个提交给另一个,另一个继续提交给上级或驳回到开始,至到整个结束
  9. 总体上.先建审批流程(指定某人在某组下,干什么事,干完后给谁)..再建任务(选一个审批流,设置报表模板等属性)..启动任务(拿模板分析维度,构建虚拟报表.) ...登陆查询待办(审批流发布时就创建了activiti工作流定义,启动任务时根据不同情况启动实例,并绑定报表信息)...
  10. 总体上,wf00,wf01,wf02,wf03存放审批流定义信息..activit表存放发布的流程信息,以及启动中的...de05存放任务基本信息,wf10存放任务定义的流程信息.-->任务启动后,待办任务,当前节点在activiti中,wf04存放wf10的一个备份....
  11. wf05存放任务履历信息,wf13存放参与人信息,wf14存放管理任务时的参数信息,补充activit自带的参数信息.wf933任务的文件夹表

    activit工作流带给我们什么---如果不要如何替换

  12. 提交自动到下一个节点,回退到开始节点,待办查询,任务查询,参数保存<审批意见,任务信息等>,

特殊情况-UI需求

  1. 要操作方便,越方便越好
  2. ---a.页面分解
  3. ---b.

特殊情况-实际场景

  1. 类考评系统的,同一个报表文件,但不同层级上的节点打开报表时,看到不同的sheet...[将报表sheet信息,绑定到每个阶层]
  2. 类考评系统的,同一个人参与多个项目,需要将自评的报表文件,同时发给多个项目经理;;按之前的需要填写多份,每个经理会对应一份,期望只填写一份..[下发生成报表时,仍然生成多份,首页显示时过滤下只显示一份,用户填写一份,但当提交时,将一份的数据内部复制到其他报表中去]
  3. 类考评系统(营销系统),每个人都要进行填写;;按之前的,需要为每个人建一个节点,节点下只包含一个人的,任务定义时只能选择节点,不能选人员..[定义任务时,设置一个属性是按节点,还是按节点下人员,如果按人员,则节点下所有人每人一份报表文件.]
  4. 类中钞预算,一类报表是从另一类报表中提取的数据,如预算审核时的报表,是各个部门提交的预算初稿的汇总,也即一个任务完成后(初稿填写完毕)才能启动下一个任务(进行预算审核).或者说启动一个任务的前提是另一个任务启动且已完成..[为任务的定义,添加关联任务属性,所设置的关联任务启动且结束才能启动本任务],
  5. 类中超预算,有一类报表只供浏览,或审批不能更改..[通过属性设置审批模式进行控制]
  6. 类中超预算,对于设置了审批模式的报表,某些分支具有不同的操作权限..[类似设置sheet一样,设置sheet的编辑性]
  7. 类中超预算,比如预算审核时,如果不通过,则驳回到各个部门重新填写预算初稿.也即不是把审核的报表退回修改,而是修改数据来源,因审核的报表是一张动态提取数据的..[通过关联任务中的,退回到任务..前提时当前的节点设置了退回到的任务,并且只有一层,也即自身是不能退回的]
  8. 类中超预算,同一张报表同时提交个多个领导都审批通过,才能继续到下一个节点...[定义任务时,设置审批模式为只审阅,且创建流程时设置为只审阅,则根据流程节点下人员创建带并行分支的工作流.]
  9. 类报支系统,一个节点的父节点并不唯一,需要根据填写的某项数据,走不同的分支...[未实现]
  10. 类工程集团,同一个任务中,选择了一堆分支,其中分支1,2,3提交给同一个人,这个人会对提交的报表进行一次人工合并,合并后把合并的报表继续提交...[未实现]
  11. 类工程集团,每个季度都会有20多个任务,唯一区别就是 期间维度不一样.能否把这20个作为一个模板,能够每季度自动生成..[未实现]
  12. 类工程集团的,期望对定义好的任务每个月执行一次,后者设置一个时间点,到时间自动执行...[未实现]
  13. 类营销本部,对于角色流节点除了组织架构维度,期间维度,人员维度外,还要设置板块维度..最好做成能够任意扩展维度的....[未实现]

怎么修改

  1. 想:维持现有审批流维护不变,把报表维度相关信息更多的设置在任务上面..
  2. 想:能再审批流,任务之间插入一层,类似任务模板用来启动新的任务是实例.可预留一些参数值,启动实例的时候再设置.
  3. 想:尽可能多地利用现有内容,目前对于多个节点对应一个节点的情况,是通过任务关联实现的..一个任务结束开始另一个...能否两个一起启动,但A任务中的一个节点是需要另一个任务完成才能进行操作的..
  4. 想:对于任务模板,可批量定义任务,定义的时候把一些属性(比如维度)定义为参数方式,在复制新增的时候,弹出参数共修改,修改后再批量复制..

开始改

  1. 任务定义的时候,可以为节点设置额外的属性(包括,关联任务,合并节点,额外维度等)..那么对该节点要特殊处理.暂定在节点上右键设为合并节点,弹出窗体,选择关联任务等相关信息.
  2. 任务定义的详细流程信息存在wf10表中,用目前的wfRoleType存放是否为一级节点,目前roleType只有一种情况是start的为开始节点,否则为null,增加一个值startMerge.标志位合并,另外 wfStepTime字段存放关联子任务信息,原本想用来控制节点完成日期的,一直没用..
  3. 这个不急..在设置任务维度的时候,目前只选择期间维度,希望可以选择多个维度类型对应的多个值,为节点绑定维度...
  4. 特殊处理0.存储一个标记,标记出来是合并的节点 ;1.启动该任务时,遇到合并的节点,不生成虚拟报表,或预留一个特殊的标记 2.查看到该节点的待办任务时,(可依据任务节点属性,也可以依据虚拟报表标记.)显示为合并任务. 3.对于合并任务,点击提交时必须设置一个报表.该报表可以是合并后的,或者其他的什么都行....4.对于合并的任务,点击处理任务时,跳转到合并报表界面,进行报表合并的工作.5.合并报表页面,查询该任务对应的子任务,提供可供选择可并的报表,进行合并,查看,可选择一个合并后的进行发布提交 6.当合并报表任务的节点被驳回时,处理驳回任务时,可选择继续驳回,或修改等..7.如果选择继续驳回,则启动关联的任务..8.关联任务提交,再重新合并...

  5. 用de05 表中的taskType作为任务类型(任务模板,一般任务)

  6. BUSINESS_DIM_INFO 原本存放的期间维度,还可以存放其他值,包括其他维度类型,以及存为变量
  7. TASK_PARAMS 除了现在暂时用的.reComputeEveryTime:false,writeEveryLevel:2 还可以继续续,比如 paramterToCopy:a,b,c
  8. TASK_STATUS 还作为状态,但期望新增一些状态,另外REMARK 用来作为 状态备注

sunpander -java C#。
Published under (CC) BY-NC-SA in categories tagged with