zoukankan      html  css  js  c++  java
  • 结构化系统建模之程序流程图|系统流程图|数据流图

    具体地讲,流程图包含这么几类:

    1 程序流程图(程序框图)

    1.1 定义

    结构化程序设计方法中过程设计阶段的核心建模工具之一。
    历史最悠久应用最广泛的描述过程设计的工具。

    程序流程图又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。
    程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。
    程序框图是进行程序设计的最基本依据,因此它的质量直接关系到程序设计的质量。
    程序流程图由处理框、判断框、起止框、连接点、流程线、注释框等构成,并结合相应的算法,构成整个程序流程图。
    
    早期的非结构化语言中都有go to语句,它允许程序从一个地方直接跳转到另一个地方去。
    执行这样做的好处是:程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,
    如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。
    
    而结构化程序设计,就是要把这团乱麻理清。
    
    经过研究,人们发现,任何复杂的算法,都可以由【顺序结构】、【选择(分支)结构】和【循环结构】这三种基本结构组成。
    因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。
    正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是【结构化方法】。
    
    遵循这种方法的程序设计,就是结构化程序设计。
    
    相应地,只要规定好三种基本结构的【程序流程图】的画法,就可以画出任何算法的流程图。
    

    1.2 组件

    1.3 样例

    2 系统流程图

    2.1 定义

    系统流程图用于描绘系统物理模型,表达数据在系统各个部件之间(程序、文件、数据库、表格、人工过程等)流动的情况。

    系统流程图是概括的描绘系统物理模型的工具。
    它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个具体部件(程序、文件、数据库、表格、人工过程等),表达数据在系统各个部件之间流动的情况。
    而不是对数据加工处理的过程,他是物理数据流图而不是程序流程图。
    
    系统流程图表达的是系统各部件的流动情况,而不是表示对信息进行加工处理的控制过程。
    
    系统流程图的作用表现在以下几个方面:
      1,制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员做进一步分析的依据。
      2,系统流程图是系统分析员、管理员、业务操作员相互交流的工具。
      3,系统分析员可直接在系统流程图上画出可以有计算机处理的部分。
      4,可利用系统流程图来分析业务流程的合理性。
    

    2.2 组件

    如果描绘的是系统流程图代表的物理系统时,还经常会用到下列10种符号:

    2.3 样例

    • 系统流程图案例背景
      某生鲜品牌有一个前置仓,存放其业务配送所需的各种生鲜,前置仓的各种生鲜的数量及其库存量临界值等数据记录在前置仓主文件上,当前置仓中生鲜数量发生变化时,应更改库存文件。

      若某种生鲜的库存量少于库存临界值,则立即报告采购部门以便订货,规定每天向采购部门送一份采购报告。

    • 用系统流程图的符号进行解释
      生鲜的发放和接受称为变更记录,由键盘输入到计算机中。

      系统中库存清单程序对变更记录进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的订货信息记录写在联机存储上。

      最后,每天由报告生成程序读一次联机存储,并且打印出订货报告。

    • 形成系统流程图

    2.4 程序流程图 与 系统流程图的区别

    在系统流程图中相当一部分符号与程序流程图中符号形式相同,但是这是系统流程图而不是程序流程图
    区别:

    程序 流程图描述的是完整的业务流程,以业务逻辑处理过程为中心。不强调数据流动,但强调控制/处理过程。

    • 程序流程图表示对信息进行加工处理的【控制】过程,也称为【控制流】

    系统 流程图用于描绘系统物理模型,表达数据在系统各个部件之间(程序、文件、数据库、表格、人工过程等)流动的情况。

    • 系统流程图表达的是信息在系统各部件之间的【流动】情况,也称为【数据流】

    3 数据流程图(数据流图)

    3.1 定义

    数据流图:简称DFD,一种结构化系统分析工具,一种图形化技术。
    它描绘信息流数据从输入移动到输出的过程中经受的变换,数据流图没有具体的物理部件。
    它只是描述数据在软件中流动被处理的逻辑过程
    数据流图是系统逻辑功能的图形表示,设计它只需考虑基本逻辑功能,不需考虑如何实现功能。

    3.2 组件

    3.3 样例

    • 第0层DFD称为系统基本模型,可以将整个软件系统表示为一个具有输入和输出的黑匣子。用一个圆圈表示。
    • 上一层DFD中的每一个圆圈可以进一步扩展成一个独立的数据流图,以揭示系统中程序的细节部分。
    • 循序渐进继续进行,直到最低层的图仅描述原子过程操作为止。 每一层数据流图必须与它上一层数据流图保持平衡和一致,因此,子图的所有输入输出流要与其父图相匹配。

    概括地说:自外向内,自顶向下,逐层细化,完善求精。

    • 点餐系统
    • 家教系统

    3.4 系统流程图 与 数据流图的区别

    • 相同点:两者都是描述数据的流动情况。
    • 不同点:

    系统流程图允许硬件,文档,甚至人工的介入,有物理设备等。
    数据流图无硬件设备,系统物理部件等,只是描述数据在系统中加工变换的情况。

    4 拓展实践

    4.1 页面流程图

    X 参考文献

    赞赏-支付宝二维码
    本文作者千千寰宇
    本文链接 https://www.cnblogs.com/johnnyzen
    关于博文:评论和私信会在第一时间回复,或直接私信我。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:若本文对您有帮助,可点击右下角推荐一下。您的鼓励、【赞赏】(左侧赞赏支付码)是博主技术写作的重要动力!
  • 相关阅读:
    Self Host 使用 Exceptionless 实时监控程序运行日志服务
    Asp.Net Core 集成 Hangfire 配置使用 Redis 存储
    阿里云负载不支持 WebSocket 协议与 WSS 和 Nginx 配置问题
    使用 Scrapyd 管理部署 Scrapy 的一些问题
    Ubuntu 安装配置最新版 PostgreSQL
    Anaconda 科学计算环境与包的管理
    Linux 部署 ASP.NET Core 的一些问题记录
    关于 IdentityServer 部署到生产环境相关问题踩坑记录
    推荐一个 MYSQL 的命令行的客户端 MYCLI
    可能是 2017 最全的机器学习开源项目列表
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/14644010.html
Copyright © 2011-2022 走看看