码农的自我修养 - 流程图 Flowchart

什么是流程图?

 

设计和文档化是一个过程,需要将不同的步骤从开始到结束都绘制出来。在这种情况下,一个错误就会导致整个系统崩溃,造成时间、金钱、资本设备的重大损失,甚至可能威胁到执行该过程的人力的安全。因此,构建流程图是为了设计和记录的一种方法。

流程图是一个程序的逻辑步骤顺序的图解表示。流程图使用简单的几何图形来描述过程,用箭头来显示关系和过程/数据流。

流程图是一种描述过程、系统或计算机算法的图表。它们被广泛用于多个领域,以清晰、易懂的图表来记录、研究、计划、改进和沟通通常复杂的过程,也用于表示工作流程、程序、过程和表示算法。流程图使用矩形、椭圆形、菱形和潜在的许多其他形状来定义步骤的类型,同时使用连接箭头来定义流程和顺序。它们的范围从简单的手绘图表到全面的计算机绘制的图表,描述了多个步骤和路线。如果我们考虑到所有各种形式的流程图,它们是地球上最常见的图表之一,被众多领域的技术人员和非技术人员使用。流程图有时被称为更专业的名称,如Process Flowchart, Process Map, Functional Flowchart, Business Process Mapping, Business Process Modeling and Notation (BPMN),  or Process Flow Diagram (PFD)。它们与其他流行的图表有关,如Data Flow Diagrams(DFDs)和统一建模语言(UML)活动图(Activity Diagrams)。

下面就是一个最简单的流程图:

历史

记录商业流程的流程图在20世纪20年代和30年代开始使用。1921年,工业工程师Frank和Lillian Gilbreth向美国机械工程师协会(ASME)介绍了 "流程图"。 20世纪30年代初,工业工程师艾伦-H-摩根森使用Gilbreth的工具向其公司的业务人员介绍了关于使工作更有效率的会议。 20世纪40年代,Morgensen的两个学生Art Spinanger和Ben S. Graham更广泛地传播这些方法。Spinanger将工作简化方法介绍给了宝洁公司(Procter and Gamble)。Graham是标准注册工业公司的董事,他将流程图改编为信息处理。1947年,ASME采用了流程图的符号系统,源自Gilbreths的原始工作。

同样在40年代末,Herman Goldstine和John Van Neumann使用流程图来开发计算机程序,这种做图法很快在计算机程序和各种算法中变得越来越流行。流程图今天仍然被用于编程,尽管伪代码,一种旨在供人阅读的文字和编码语言的组合,经常被用来描述更深层次的细节,并更接近最终产品。

在日本,石川薰(1915-1989)是制造业质量举措的关键人物,他将流程图与直方图、检查表和因果图等补充工具一起命名为质量控制的关键工具之一,现在通常称为石川图。

流程图的目的

流程图是用来记录、设计和描述一个过程、程序或算法的。流程图有助于描绘上述内容,以可视化的方式描述流程,并控制资源。流程图被用来沟通各个领域的流程。演示流程图可以作为一种工具,将信息分解并向观众清楚地解释,使其易于理解和遵循。

流程图的符号

以下是绘制流程图时使用的一些常用符号(symbol), 还有其名字和目的(name & purpose):

- Terminal/Terminator/Start/Stop

在算法的开始和结束时使用,显示程序的开始和结束。

- Process

这是一个矩形的形状,用于表示一组具有形式、位置、数据、价值等变化的操作。它是流程图中表示的行动步骤或过程。

- Decision

流程图中的决策符号以钻石形状表示,带有一个yes/no或true/false的问题或测试,决定了程序的执行路径。

- Document

文件符号代表一个或多个文件。对于单个文件,使用单个波浪形矩形,而堆叠的波浪形矩形形状代表多个文件。

- Data, or Input/Output

菱形的输入/输出符号表示数据的输入或输出。

- Stored Data / Data File

- Flow Arrow / Flow line

显示不同形状之间的关系。

- Comment or Annotation ( 左边一种,右边一种,也有其他方式添加注释)

这个开放的矩形形状表示流程图中某个步骤的额外信息。

- Predefined process

这个符号有一个矩形的形状,两边有垂直的边缘,表示图表中的是一个子程序或预定义过程。

- On-page connector/reference

用一个小圆圈表示,里面时数字或字母,用来连接流程图的两个或多个部分,它们在同一页上。

如下图所示:

- Off-page connector/reference

连接分布在不同页面上的流程图的两个部分。

- Manual Operation / 手动操作:

流程图中的梯形符号代表需要手动的操作或过程调整。

- Preparation or Initialization/准备或初始化:

这个拉长的六边形符号在初始化一个程序或设置一个开关时使用。

计算机编程/算法的流程图

作为数据流的可视化表示,流程图在编写程序或算法并向他人解释或与他人合作时非常有用。你可以使用一个算法流程图,在开始编写程序代码之前,阐明一个程序背后的逻辑。它可以帮助组织整体大局的思考,并在编码时提供一个指南。更具体地说,流程图可以:

- 展示代码的组织方式。

- 可视化程序中的代码执行。

- 显示一个网站或应用程序的结构。

- 了解用户如何浏览一个网站或程序。

这些是在开发计算机流程图时需要记住的几点 -

- 流程图只能有一个开始和一个停止符号

- 页面上的连接器用数字来表示

- 页面外的连接器用字母来表示

- 流程的一般流向是从上到下或从左到右

- 箭头不应相互交叉

下面是一个计算两个数字的平均值的流程图:

通常,程序员可能会写伪代码,这是一种自然语言和计算机语言的结合,能够被人们阅读。这可能比流程图更详细,可以作为流程图的替代品或作为实际代码的下一步。

计算机软件中使用的相关图表包括:

- 统一建模语言(UML)。这是一种在软件工程中用于建模的通用语言。

- Nassi-Shneiderman图。用于结构化计算机编程。以Isaac Nassi和Ben Shneiderman命名,他们于1972年在SUNY-Stony Brook开发了它。也叫Structograms。

- DRAKON图表。DRAKON是一种算法的可视化编程语言,用于制作流程图。

流程图在众多领域中的应用

除了计算机编程,流程图在许多不同的领域也有许多用途。

这些领域包括教育、销售和营销、商务、制造、工程等。

- 记录和分析一个过程。

- 为提高效率和质量而对一个过程进行标准化。

- 方便一个流程的沟通,以便组织的其他部门的培训或理解。

- 识别流程中的瓶颈、冗余和不必要的步骤并加以改进。

- 计划课程作业和学术要求。

- 创建一个课程计划或口头报告。

- 组织一个小组或个人项目。

- 展示一个法律或民事程序,如选民登记。

- 计划和组织创意写作,如歌词或诗歌。

- 展示文学和电影的人物发展。

- 表现算法或逻辑谜题的流程。

- 理解一个科学过程,如克雷布斯循环(Krebs cycle)。

- 绘制解剖学过程,如消化。

- 描绘出疾病/障碍的症状和治疗方法。

- 用来沟通假设或理论,如马斯洛的需求层次。

- 描绘出调查的流程。

- 绘制销售流程图。

- 规划研究策略。

- 显示注册流程。

- 传播沟通政策,如紧急公关(PR: public relation)计划。

- 了解订单和采购流程。

- 表现一个员工的任务或日常工作。

- 了解用户在网上或实体店中的足迹。

- 制定一个商业计划或产品实现计划。

- 记录为审计做准备的过程,包括为了遵守法规,例如遵守萨班斯-奥克斯利法案(under the Sarbanes-Oxley Act)。

- 记录准备出售或合并的过程。

- 表示一个产品的物理或化学构成。

- 说明从头到尾的制造过程。

- 发现并解决制造或采购过程中的低效率问题。

- 表现工艺流程或系统流程。

- 设计和更新化学和工厂流程。

- 评估一个结构的生命周期。

- 绘制逆向工程流程图。

- 展示一个新结构或产品的设计和原型阶段。

更多流程图技巧

- 牢记你的听众,在你的图表中为他们展示细节。清晰的沟通是流程图的一个关键目标。

- 如果你所绘制的流程涉及到不同的团队或部门,可以考虑使用泳道图(Swimlane Diagram)来明确划分责任和交接。

- 使用页内或跨页连接器来 "编辑 "你的图表,使其更好的展现流程的逻辑。这可以让你把图表分解成独立的页面,并且仍然很流畅。

关于使用泳道图的例子:

流程图的类型

不同的作者用不同的术语描述各种类型的流程图。这些人包括为此著书发表的专家,如Alan B. Sterneckert, Andrew Veronis, Marilyn Bohl和Mark A. Fryman。

Sterneckert在他2003年出版的《关键事件管理》一书中,列出了四种流行的流程图类型,围绕着流程控制的概念而不是流程本身:

- 文件流程图:这些 "目的是显示通过系统组件的文件流的现有控制。该图从左到右阅读,记录了文件在各个业务部门的流动。

- 数据流图:这些图表显示了 "在一个系统中对数据流的控制。数据流图主要用于显示数据在系统中传输的渠道,而不是相关的控制如何流动。

- 系统流程图。这些 "显示数据流向和通过系统的主要组成部分,如数据输入、程序、存储介质、处理器和通信网络"。系统流程图显示物理或资源层面的控制。这种类型的图表显示了系统内的数据流以及根据控制事件而做出的决定。

- 程序流程图。这些图表显示了 "系统内部对一个程序的控制"。

Veronis,在他1978年出版的《微处理器:设计与应用》一书中,根据范围和详细程度概述了三种流程图类型。

- 系统流程图:确定要使用的设备。

- 一般流程图:显示概要

- 详细流程图:增加了细节。

Bohl在她1978年出版的《程序员指南》一书中,只列举了两种:

- 系统流程图

- 程序流程图。

但Fryman在他2001年出版的《质量和流程改进》一书中,从更多的商业角度而不是计算机角度,对这些类型进行了多种区分:

- 决策流程图。

- 逻辑流程图。

- 系统流程图。

- 产品流程图。

- 工艺流程图。

其他由他人定义的流程图类型包括:

- 泳道图:又称泳道流程图。划分谁在跨团队过程中做什么。

- 工作流程图:用于记录工作流程,通常涉及办公室的任务、文件和信息。

- 事件驱动流程链(EPC)流程图:记录或规划一个业务流程。 

- 规范和描述语言(SDL)流程图:使用三个基本组成部分对计算机算法进行头脑风暴:系统定义、块和过程。

还有其他的图有时也被认为是流程图的类型:

- 数据流图(DFD / Data Flow Diagram):绘制出任何系统或过程的信息流。

- 工艺流程图(PFD / Process Flow Diagram):又称Process Flowchart。说明一个工业工厂的主要部件之间的关系。

- 业务流程模型和符号(BPMN 2.0 / Business Process Model and Notation):为计划中的业务流程的步骤建模。

近年来,流程图已经演变成其他形式,包括统一建模语言(UML)的活动图(Activity Diagram)和事件驱动的流程链(EPC/Event-driven Process Chain)图。

如何制作流程图

你可以按照下面提到的五个基本步骤来构建一个专业的流程图。

第1步。确定流程图的目的

在你开始构建你的流程图之前,你应该明确其目的并收集信息。流程图是否应该帮助员工理解或执行一个过程,确定工作流程,促进操作或常规任务,或显示执行程序或算法的各种步骤?

第2步:选择一个流程图设计和模板

根据你的需要,你可以在各种平台上挑选不同的流程图模板。例如,要创建一个PowerPoint的流程图的演示,你可以选择一个模板。

第3步:根据正确的符号制作流程图

有时,流程图也会使用与标准流程图格式不相符的各种图像和图标来构建。例如,"法案如何成为法律的流程图 "可能包含与司法机构、议会有关的图标和符号,或其他可能在制作流程图信息图时显得醒目的图标。然而,标准的格式是按照正确的顺序使用符号,比如用标准的符号来表示开始、过程、条件、连接等。

第4步:确保你的流程图有正确的标签和连接

使用正确的符号和必要的术语是必要的,以确保流程图能够被正确阅读和理解。这对流程的执行和正确理解至关重要。在构建用于流程或程序的流程图时,即使是一个轻微的错误,有时也会产生可怕的后果。导致时间、金钱、设备的损失,影响人力。如果你使用流程图制作工具,通常流程图工具会提供文本占位符。用实际的文本来替换默认的标签是很有必要的。

第5步。使你的流程图风格化

为了使流程图易于理解和引人注目,你可以在不影响图表标准化的情况下,以视觉上令人愉悦的方式添加颜色、文本和图标。你可以使用颜色编码不同符号,以及不同的字体风格和时尚版本的流程图图标,使你的图表容易看懂。

一些建议

- 可以直接使用PPT、Word、Excel等工具来制作流程图,当然Visvo也可以

- 还可以使用UML建模工具来制作流程图,和活动图类似。还有些开发IDE里自带UML绘制功能或可以安装相应插件。

- 或者在网上搜索在线流程图,直接在网页上就可以制作,国内国外的网站都有,功能强大、界面美观,还能在线存储。

参考:

What is a Flowchart | Lucidcharticon-default.png?t=M0H8https://www.lucidchart.com/pages/what-is-a-flowchart-tutorial/#discovery__top

https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_flowchart_elements.htm#:~:text=On%2Dpage%20Connector,are%20spread%20over%20different%20pagesicon-default.png?t=M0H8https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_flowchart_elements.htm#:~:text=On-page%20Connector%2Care%20spread%20over%20different%20pages

Constructing a Flowchart - FAQs, Examples and PowerPoint Templatesicon-default.png?t=M0H8https://slidemodel.com/how-to-make-a-flowchart/

https://youtu.be/SWRDqTx8d4kicon-default.png?t=M0H8https://youtu.be/SWRDqTx8d4k

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
兴趣交流平台的E-R图可以包含以下几个实体: 1. 用户(User):表示注册并使用兴趣交流平台的用户。 2. 兴趣组(Group):表示用户创建或加入的兴趣组,每个组有一个唯一标识符。 3. 帖子(Post):表示用户在兴趣组内发布的帖子,每个帖子有一个唯一标识符。 4. 评论(Comment):表示用户对帖子或其他评论的回复,每个评论有一个唯一标识符。 5. 点赞(Like):表示用户对帖子或评论的点赞,每个点赞有一个唯一标识符。 6. 关注(Follow):表示用户对兴趣组或其他用户的关注,每个关注有一个唯一标识符。 以上实体之间的关系可以描述如下: 1. 用户(User)和兴趣组(Group)之间是多对多关系,一个用户可以加入多个兴趣组,一个兴趣组可以有多个用户。 2. 兴趣组(Group)和帖子(Post)之间是一对多关系,一个兴趣组可以有多个帖子,一个帖子只属于一个兴趣组。 3. 帖子(Post)和评论(Comment)之间是一对多关系,一个帖子可以有多条评论,一条评论只属于一个帖子。 4. 用户(User)和评论(Comment)之间是一对多关系,一个用户可以发表多条评论,一条评论只属于一个用户。 5. 用户(User)和点赞(Like)之间是多对多关系,一个用户可以点赞多个帖子或评论,一个帖子或评论可以被多个用户点赞。 6. 用户(User)和关注(Follow)之间是多对多关系,一个用户可以关注多个兴趣组或其他用户,一个兴趣组或用户也可以被多个用户关注。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值