服务器

1 理解目标

       目标可以理解成是完成一个产品的支撑流程。其实生活中每一个完整的业务背后都暗含着一个流程,可以抽象成为完成某个目标,谁在什么环节做什么事。

2 理解产品

       产品是我们的最终目标,流程支撑的最终产物。

       我们的产品通常是一个完整的网站,比如类似于“京东”和“淘宝”这样的购物网站,也可以是一款可以安装在           iPhone和Android手机上的App(手机应用)。

理解流程

       流程无处不在,流程可以看成按照一定顺序,不同行为操作信息进而又产生一些信息,最终完成目标的过程。

       例如我们工作中的请假流程

      ①从人资资源部拿到请假单

       ②在请假单中填写请假人的姓名,部门,请假类型,请假时间,请假原因,工作交接内容

       ③由工作交接人确认工作交接的内容然后签字

       ④主管确认请假单填写内容,是否签字批准以及填写日期

       ⑤经理确认请假单填写内容,是否签字批准以及填写日期

       ⑥人力资源部确认签字并填写日期

       ⑦等再次上班的时候,到人力资源部销假确认以及填写日期

       这个流程中,不同角色在不同环节通过这个纸制的表(请假单),记录数据和获得数据,完成了请假这个过程。 同样道理,我们现在的流程是指引我们如何支撑产品,即一个完整的网站或者手机App,结合下面的图,进一步体会流程

       

理解空转

      空转是指由项目经理主持,多个参与者分别扮演项目的不同用户角色,每个角色拥有多张表格,按照项目的流程图,不同角色,在不同环节,填写或者查看与流程对应的表格,直到走完项目的流程图。
      空转目的是判断不同用户角色根据手中的表进行填写和查看是否能将整个项目业务逻辑能够走通,如果过程中卡主了,需要对问题进行讨论,对手中的表进行调整,直到能够走通。实质是通过空转测试页面逻辑的正确性和完整性,同时得到了一组记录信息的表格,我们将这些表格以树状的形式展示,我们叫它为全站信息结构图。
     流程图(BPMN),可以精准地将业务进行建模,是需求对接的沟通结果。下面将介绍流程图的基本组成要素:

      泳道 (Swimlanes)

      一个业务往往涉及到多人,每个人有不一样的子流程。泳道代表了流程图中的参与者,每个参与者的子流程就在相应的泳道里展开。

      下图中的 “name” 代表参与者名称,可以是 “管理员”“消费者”“经销商” 等等,依业务而定。

      

      事件 (Event)

      代表发生的事情,包括开始事件、中间事件、终止事件,依次为下图中从左到右。

  • 开始事件: 作为流程的触发器。
  • 中间事件:发生在开始事件和结束事件之间的事。
  • 结束事件:代表流程的结果。

      

      任务 (Task)

      代表要做的事情,不必过细

      

      网关 (Gateway)

      用于控制流程的分支与合并,内部有 + 和 x 两种标记,表示不同的控制类型:

  • + : 从这个网关分支出的任务是同时执行的
  • x : 从这个网关分支出的任务不是同时进行的,而是根据条件判断执行其中一个任务,这也就是普通流程图中表示条件判断的常见菱形

      

      连接 (Connections)

      将事件、任务、网关连接起来,构成流程。

  • 顺序流(Sequence Flow):用于指定任务执行的顺序。
  • 信息流(Message Flow):用于表示跨泳道的信息。

       

      注释 (Annotation)

      为任务进行补充说明,任务的重点在于 “动作”,而这个动作中涉及到的“信息” 就在注释中进行补充。

      

          拓展

      其实流程图的元素远不止本文中介绍的这几种,掌握本文中介绍的几种元素基本可以满足我们以后的工作需求(如果有兴趣了解更加规范的流程图画法,可以参见BPMN2.0 wikipedia )

          疑问

      这里所介绍的流程图是否和上一节中体会流程的示意图有很大差别?其实它们只是表现形式不一样而已,本质上没有任何区别。流程图(BPMN)的意思是每个执行人(示意图中不同颜色的人)单独研究其行为(泳道图)。

理解工作目标

       我们的工作实质是在扮演空转过程中的笔和表格,帮助用户将信息存储的表格中和将呈现表格中信息。换句话说是将空转中确定的逻辑注入到产品中。

理解行动

       在接到任务时,应该意识到页面是经过空转验证过的,我们的行动是完成页面背后所暗含的写表和读表的动作,在这个过程中所操作的数据(录入的数据和读取的数据),称为信息点我们将结合项目的诉求树和全站信息结构图与页面中涉及的信息点相对应,已经确定当前的表以及逻辑和信息来源没有问题,而在行动的过程中操作的数据,称为信息点。

6_1 理解环境

       项目经过空转后,已经基本确定信息结构图以及页面间的逻辑关系的正确性。

6_2 理解整体

       确定页面上的信息点->完成标注->逻辑处理->测试完成,这个过程就是我们需要完成的整个步骤。将表中的信息呈现在页面中,或者使使用页面可以将信息存到对应的表中就是我们需要完成步骤后索要达到的目标

6_2_1 标注

       标注的操作对象是信息点,而在页面中信息点的表现形式有很多,可以是一个输入框,也可以是一张图片,也可以是一小段的文本甚至是页面元素的属性,我们也需要当做一个信息点对待,无论页面上的是输入还是输出内容,都是信息点,信息点是不区分输入输出的,标注的过程就是为了将表中的字段与页面上的信息点映射起来。

6_2_2 逻辑处理

       逻辑处理可以简单的理解为根据空转中的确定的逻辑,以某种条件将需要处理真实数据从数据库中取出或删除或者又在某种条件下将页面提交或者修改的数据以表的形式保存在数据库中

6_2_3 测试

       在做完标注与逻辑处理过程后,将整组页面或者单个页面的按照空转时的业务逻辑走一遍,查看信息是否完整

6_3 关键点

6_3_1 数据与表

       所有的数据都是以表格的形式保存,无论是传统的纸质表格还是现代的电子表格,如下表中,每一列就是表中的一个字段,下面的每一行代表着该表的一条记录

用户ID手机号密码账号类型用户名邮箱
10011336363564123普通用户read31read31@...
10021386673782111会员用户挥挥手123456@...
..................

6_3_2 文件

       文件只是表的字段中某种类型,与其他的字段并没有本质区别,依然是一个信息点

6_3_3 处理器

       对上传的图片、文件、时间等数据做二次处理,而该处理过程已经有现成的代码模板支持,不需要自己再手写。比如上传图片的裁剪,文件相对路径与绝对路径之间的转换、时间格式修改等等都是由处理器完成