“数据流图”“系统流程图”“程序流程图”“数据流程图”这四个有什么区别

“数据流图”“系统流程图”“程序流程图”“数据流程图”这四个有什么区别,第1张

1数据流图(Data Flow Diagram);

坚持更DFD,它从数据的传递和加工角度,以图形方式来表达系统的逻辑功能,数据在系统内部的逻辑流向和逻辑交换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示放大。它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据流图的基本元素:

2系统流程(System Flowchart);

描绘系统物理模型的传统工具。他的基本思想是用图形符号以黑盒子的形式描绘系统理念的每个部件包括程序,文件,数据库,表格,人工过程等,表达信息在给个部件之间流动的情况,而不是表示对信息进行加工处理的控制过程。

例图:

3程序流程图;

4程序的系统结构图。

数据流程图:反应输就走向,它不考虑时序关系,主要用于业务分析,用作详细设计。途中的有向线段表示了数据流。

系统流程图:反应主体框架。

程序流程图:程序逻辑描述程序中控制流的情况,即程序中处理的执行顺序和执行序列所以来的条件,途中的有向线段表示的是控制流从一个处理走到下一个处理。

程序的系统结构图:反应的是系统中模块的调用关系和层次关系,谁调用谁有一个先后次序关系。途中的有向线段表示调用时程序的控制从调用模块一道被调用模块,并隐含了当调用结束时控制将交回给调用模块。

你好!

Keil5本身并不提供直接生成流程图的功能,但可以使用一些工具来生成流程图。

下面介绍一些生成Keil5程序流程图和子程序流程图的方法:

使用Doxygen工具

Doxygen是一种自动化文档生成工具,它可以自动分析源代码并生成各种文档,包括流程图。在Keil5中,可以将程序文件导出为一个文件夹,然后使用Doxygen对该文件夹进行分析,生成程序流程图和子程序流程图。具体使用方法可以参考Doxygen的官方文档。

使用GraphViz工具

GraphViz是一种开源的图形可视化工具,它可以生成各种流程图、状态图等。在Keil5中,可以将程序文件导出为一个dot文件,然后使用GraphViz将该文件转换成流程图。具体使用方法可以参考GraphViz的官方文档。

使用Cscope工具

Cscope是一种代码浏览器,它可以方便地查找函数、变量、宏等。在Keil5中,可以使用Cscope查找程序中的函数和调用关系,然后手动绘制流程图和子程序流程图。

业务流程图的表达的6个关键问题

业务流程图的“烹饪三部曲”

在绘制业务流程图前,思考如何精美,如何交互,使用什么工具,都不应该是重点。

真正重点的是将业务流程图的关键要素给搜集一番。请试图回答清楚以下几个问题,否则不要开始绘制流程图:

整个流程的起始点是什么?整个流程的终结点是什么?

在整个流程中,涉及到的角色都是谁?

在整个流程中,都需要做什么事情?(可是是一个会议,可以是一个任务)

这些会议和任务是可选还是必选的?

分别产出什么文档?

这有点像一个头脑风暴,能够帮助你将所需用到的原材料获取到,有了这些“米”和“水”,那就不愁去如何烹饪了。

在项目管理中,上个月,我们也试图给去规范化一个数据产品的设计开发流程。

这是一个数据产品的项目,而我们都不是对此很有经验的人。所以我们召集到所有相关的角色,组织了一次头脑风暴及卡片分类法的混合式应用。

让大家头脑风暴出自己认为在项目里必须的节点,如“需求调研”,“需求分析”,“kick off会议”,“PRD撰写及确认”,“数据评估”,“技术架构”,“DEMO绘制”,“指标算法定义”,等等。

在头脑风暴过程中,主持人将这些节点都写到白板上,等没有新的节点诞生后,大家一起对节点进行合并归类。之后呢?

将这些剩余下来的真正有价值的节点,撰写到即时贴上,开始进行排序。在排序过程中,可以由一个人先主导,他会按照自己的理解,将各个节点放到按角色排布的泳道中,并设计好先后的顺序。在他进行的过程中,其他人不断进行提问:“这项任务开始前,需要什么样的条件?”“这个任务是必须的吗?”然后一起调整先后顺序。直到最终没有人有任何重大的异议。

之后拍照留念。

然后可整理成电子文档,如project或者excel版本(使用excel做项目管理?)

但是,业务流程图和上述项目中的流程不太相同的是:

项目中的各种活动节点有更宽泛的可配置性,任务A和任务B是否并行,还是串行,如果项目组成员达成共识,是可以调整,并且多做尝试的。所以可以用集思广益的做法去头脑风暴出一个暂定比较合理的流程。而业务流程图的梳理,有两种:

一种是基于现实发生的业务流程如实反映。这显然不是你一个团队能够YY的结果。更需要走到现实环境中,去调研,去梳理,去确认。

另一种是基于流程优化的方案,当你已经掌握了目前的流程现实如何运作时,基于分析,讨论,能够判断出流程中不合理的地方,给出一个更完善或者有更效率、成本更低的新的流程出来——或许你要求增加一个部门,或者你需要删减一个环节,或者中间的若干步使用新开发的系统去取代。

总之,大多数时候,你要想做第二种流程图,必然要先将第一种给梳理出来。所以,第一种如实反映的流程图是躲不过的。既然如此,基于YY或者头脑风暴是不现实的。我们需要走到前线去,掌握现实中业务是如何运作的。而且很多时候,越细节越好。

那怎么做呢?基于有限的知识与经验,我可以给如下建议:

调研——2梳理呈现——3评审确认三部曲,如图所示:

       

2 调研——问正确的问题,多问问题,多问几个人

除了在本部分开始的那几个问题要顾及到,其实调研过程解决的仍然是who,what,why,how,以及where的问题:谁,在什么情况下,做了什么事情,这个事情需要什么前置条件,又输出了什么,这个事情在哪里完成的?搞明白这几个问题,我们的调研就可以圆满完成了。

流程图的表现,要回答这几个问题:

Who——谁?部门,角色,岗位

What——什么事情?

Where——在哪里做的?在我梳理的业务流程图上,where更多表示是文档还是各种系统,用来表示信息化的程度。比如当我们梳理中发现,有一项登记,是用excel而不是业务系统来进行的,那么在这里的where就可以表示为:excel文档。

Document——那产生的这份文档叫什么名字?也写出来,代表有文件的传递,而以后要进行信息化的话,此份人肉文档也是需要被消除而被系统取代的。(相反,如果这项工作是在某个系统里 *** 作的,where就可以写成“人事系统”,文档可以继续存在,即该系统中的表单名称:“员工登记表单”)

Condition——条件。在这种条件下,下一个活动还能够继续,即用逻辑链接线的方式来表示一项活动的输入和输出,指向某个活动的箭头就表示此活动的前置输入条件。

Dicision——决策。有些活动会产生一个条件判断,根据不同的判断结果从而走不同的分支流程。比如输入员工信息的时候,可以根据员工之前是否就职过,选择不同的流程,对于已经就职过的,选用之前的工号而不用生成新的工号。

举个案例(如果不太恰当,请意会)。假设你受命要调研两家餐饮店的业务流程,目的是给他们提供性价比最高的点餐系统。

在调研中:

1 你首先可以要求精通业务流程的人给你系统讲解一遍。

2 调研具体 *** 作的人,来验证他给你讲解的是否全面和偏差。

3 实地观察和记录(花点时间走遍业务流程)

三种方式相互结合使用。第一种方法可以让你首先建立一个系统观,了解大体枝干,但是很难切入到可能会出现问题的细节。第二种方法太依赖于问题的质量以及问问题的场景。有很多结论的不正确其实是因为问错了人或者问问题的方法不对。那么就需要借助第三种,在观察中再进行验证。

比如,你现在找到了一个厨师:

你主要负责做什么菜系?

热菜。

那菜单都是谁给你的?

我们的服务员。

她都怎么提供给你?

她负责客人点菜后,然后手写一个单子,给我放到窗口上。

单子上都会写什么?

桌号,菜名等

那如何客人点的是冷菜呢?

恩,有复印本,直接拿一份给冷菜间。

那你怎么开始工作呢?从洗菜到切菜,一直烹饪都是一个人吗?

哦,不,我只负责烹饪。当接到菜单后,首先我的助理会进行择菜,刀工进行切菜,这样如果有几个菜就完全可以并行。

当你们做好后呢?

放到窗口,按铃,喊桌号和菜名,传菜员就会传菜。

……

在这些问题中,就涉及到了“分单”,“切菜”,“择菜”,”烹饪”,“传菜”,“上菜”几个活动,也涉及到了“服务员”,“厨师”,“助理”,“刀工”,“传菜员”几个角色。几个活动的次序也比较清楚了。

而另一家餐饮店的业务流程却是不一样的,你同样抓住一个厨师进行询问:

要做什么菜,菜单是哪里来的?

打印出来的。

所有菜都会在这里打印吗?

哦,只有热菜在这里打印出来,冷菜、酒水就会在冷菜间和酒水间打印出来。

打印机是谁在 *** 作的?

没人 *** 作,它会自动打印不同的单子给我们。

……下面的问题,可能厨师就不了解了,要问点菜员了。

请问你是怎么点菜的?

拿设备啊,客人点菜就按几下,确认就好了。

之后呢?

之后就可以将菜单打印出来。

不同的菜系会在不同的烹饪间打印吗?

是的,我们可以分单打印。是在这中心打印机里完成分单。

然后,你可以继续调研烹饪后的传菜和上菜流程。

3 梳理并呈现

你的调研和观察使你拥有了“烹饪”所需的原材料。

角色:部门、岗位或人

活动:做了什么事情

次序:做这些事情的次序如何

规则:什么情况下到什么事情

还记得我们之前提过的流程图要素吗?回顾下:

接下来的任务是不是很简单,对,就像填空题一样简单。将活动/事件按照一定的规则填到由部门和时间两条维度决定的框框里。

这个阶段是paper work,你需要将调研阶段收集到的原材料用更直观明了的方式呈现出来。从而能够更好进行评审和确认。也为以后的流程评审和优化做准备。

在刚开始,笔和纸的原始搭配仍然是最好的起步工具。你可以暂时忽略掉美观或者可复用的因素。但是当你对要呈现的流程已经有足够的信心时,就可以借助软件工具了。

31 复杂流程的分解

不可能将所有的活动都放到一张图里呈现。

“业务流程是有层次性的,这种层次体现在由上至下、由整体到部分、由宏观到微观、由抽象到具体的逻辑关系。这样一个层次关系符合人们的思维习惯,有利于企业业务模型的建立  企业部门之间的层次关系表。一般来说,我们可以先建立主要业务流程的总体运行过程(其中包括了整个企业的大的战略),然后对其中的每项活动进行细化,落实到各个部门的业务过程,建立相对独立的子业务流程以及为其服务的辅助业务流程。”

——引自《百度百科》 业务流程词条

对于很多新人来讲,业务最难的在于划分业务流程图的层次上。

首先,明确你要梳理的业务流程的范围——用大的粗略的关键节点,讲清楚这个业务流程范围中的故事,就是顶层业务流程图。你的顶层业务流程图是业务全局故事的简单表达,但是请注意这里的业务全局不见得是公司整体的业务全局,而是你界定好的业务范围。比如,下图是餐厅的日常运作流程图,若你界定的业务范围是面向顾客的点餐和结帐流程,那么这就是顶层业务流程图。但是若你界定的是整个餐厅的运作业务流程,那这显然还是一个子集——并没有包含餐厅的采购、供应商管理、一级库存管理等工作。

其次,先从顶层的业务流程分解开始,由粗至细。顶层业务流程图的梳理原则:

1 界定范围内的业务全局故事。

2 包含该范围内的关键节点。并且,当被质疑说某某环节怎么不存在时,自己要清楚它在下一层分解中应该被包含在那个关键节点中。比如,赠送10周年优惠券,应该会在结帐节点分解中出现。而打印分单,会在点菜节点中分解。而准备儿童座椅应该是接待入座环节。

3 顶层流程图分解出来的关键节点未必都会细化分解下去,生成二级以及三级的流程图。这要看该节点涉及到的“活动”以及“角色”是否复杂。

再看一个案例,对传统生产型企业的进销存主业务流程进行分解。橙色的代表被分解点,已经可以分解为四层。当我们分解到第四层,发现再往下去涉及到的活动和角色都已经很少时,就不必再分解了,而是可以将第四层的关键节点直接作为第三层业务流程的“活动”,而不是子流程图。

当然,这是依赖于你梳理业务流程的目标。如果你偏偏是要对“打样”环节进行剖析优化,则还可以继续分解下去。

这一步的工作会帮你建立出清晰的流程目录结构,如下图所示是摘选于刚完成的一个流程梳理的项目中的目录结构部分。可以看到全图即是顶层关键节点,作为老大,可能只要看这一层就够了。下面则会对顶层做更多细化拆解。

“H3样品认证”在顶层业务流程图中,仅仅是一个“活动”,而在自己细化的这一个层次中,则会包含详细的子活动一级参与者。

32 流程图的常用图示

我常用的就是前两行的“活动”,“判断”,“逻辑关系线”,“起始与终止”,以及第二行的“子流程”,和“文件/表单”。如果你不是符号控,我建议这几个就足够了。

其中,“子流程”此图示就是可以帮助你将流程分解得到的子流程能够串联起来,比如,当在”A流程”中涉及到进一步需要分解的”A11流程”时,就可以在”A流程”中用子流程符号代表“A11”。然后你的读者就会明白要想进一步了解”A11″应该参考另外一个流程图。

流程图的常用结构:

给大家看一些案例:

基本上包含大多数图示的流程图:

只用到少数几个图示画的简单流程图(台湾人的文档中称为程序图——不过这里的程序不是指计算机程序,而是process,仅仅是体现任务之间的处理流程,所以使用极简单的符号也不为怪了):

以上两个流程图案例,从符号的复杂程度上来讲,一个是完整流程图,一个是基本流程图,但是从表现形式来讲,都属于“泳道图”——Swimlane。这也是我们最常用的一种表现形式了。泳道图能够很好体现部门或者角色在流程中的职责以及上下游的协作关系。且流程图本身的标准容易掌握,达成共识也就更加容易。

33 泳道图精要

2大维度:一般泳道图的横向会作为部门或岗位维,当然也有例外,如上述案例中就是横的泳道。而纵向则做为阶段维——时间是从上到下发展的。如果复杂的泳道图,在任务分解上可以在阶段维里做一些划分,比如“采购”,“生产”,“销售”,”配送”等。

活动流转:活动就像一个游泳员一样,游到不同的泳道中去执行任务。

在上文中的软件推荐部分,我推荐过smartdraw工具,此工具还附带了泳道图的模板,大家比较更快能够上手:

34 Do vs Donnot 业务流程图的注意事项!

DO

1 让涉众参与,不要闭门造车

业务流程图包含了你图上的各个参与角色代表,与他们适时确认事情的原本流程,禁止自己YY。

2 恰当的层次分解,不要将所有都铺到一张图上

如上所示。

3 逐渐深入,先抓枝干

切忌胡子眉毛一把抓。

4 流程一定有开始和结束

切忌交付出来的流程图,让读者还来问你:流程的开始点是什么?用清晰的代表开始和结束的符号来完成第一步和最后一步。

5 编号,编号,编号

这是让沟通效率更高的优化措施。当你有了编号系统,相当于对你的流程图都赋予了唯一识别身份z号。这比中文名称更有效。比如当我们完成了业务流程图后,负责业务流程规则审核和优化的部门能够清楚在邮件里传达:H51流程优化,大家就更明确指的是什么。

DONNOT

1 自己YY应用的环节而不是现实中的环节

2 所有的环节都试图放到一张图上

3 一开始就陷入细节,胡子眉毛一起抓

4 流程很难让人分清楚从哪里开始,到哪里结束

4 评审及后续行动

验证你是否做到了以上的DO,以及规避了Donnot的做法是什么?

很好办,及时与各位进行评审。将各个涉众都叫到一起,给他们看你梳理出来的成果。

这会发现一些有意思的事情,除了评审你的流程图是否符合现实外,也会评审目前的业务流程是否符合理想。不同的部门和岗位的代表会在这个评审中,确认当前,也会相互提出意见,甚至吵起来,这不失于做流程优化的一个很好的契机。暂且不表了。

打字打的很辛苦,希望LZ能够喜欢并且采纳!

以上就是关于“数据流图”“系统流程图”“程序流程图”“数据流程图”这四个有什么区别全部的内容,包括:“数据流图”“系统流程图”“程序流程图”“数据流程图”这四个有什么区别、keil5程序如何生成主程序流程图以及各子程序流程图、业务流程图怎么画等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9300750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存