【软件设计师】程序猿需掌握的技能——数据流图

这篇具有很好参考价值的文章主要介绍了【软件设计师】程序猿需掌握的技能——数据流图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作为一个程序员,不仅要具备高水平的程序编码能力,还要是熟练掌握软件设计的方法和技术,具有一定的软件设计能力,一般包括软件分析设计图(常见的有数据流图,程序流程图,系统流程图,E-R图)和其他对业务表达的说明资料。

 🐓 什么是数据流图

数据流图(Data Flow Diagram,简称DFD)是一种图形化技术,它从数据传递和加工的角度,以图形方式描绘数据在系统中流动和处理的过程。数据流图既提供了功能建模机制,也提供了信息建模机制,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

数据流图特别适用于表示软件模型,因为它只反映系统必须完成的逻辑功能,是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果,它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

 🐓 数据流图的基本图形符号

【软件设计师】程序猿需掌握的技能——数据流图,软件设计师,数据库,流程图,程序人生,职场和发展

 1.加工

用圆或者椭圆进行描述,又称数据处理,表示输入数据在此进行变换产生输出数据,以数据结构或数据内容作为加工对象。加工的名字通常是一个动词短语,可以更简单的表明要完成的加工。

2.数据流

用箭头描述,由一组固定的数据项组成,箭头方向表示数据的流向,作为数据在系统内的传输通道,大多是在加工之间传输加工数据的命名通道,也有在数据存储文件和加工之间的非命名数据通道。

同一数据流图上不能由同名的数据流。如果由两个以上的数据流指向一个加工,或是从一个加工中输出两个以上的数据流,那么它们之间一定存在一定的关系

【软件设计师】程序猿需掌握的技能——数据流图,软件设计师,数据库,流程图,程序人生,职场和发展

3.数据存储文件
用双杆描述,在数据流图中起保存数据的作用,又称数据存储或文件,可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可以理解为写入文件或查询文件,从数据存储流出的数
据流可以理解为从文件读数据或得到查询结果。


4.数据源点或终点
用方框描述,表示数据流图中要处理数据的输入来源或处理结果要送往的地方,在图中仅作为一个符号,并不需要以任何软件的形式进行设计和实现,是系统外部环境中的实体,故称外部实体。它们作为系统与系统外部环境的接口界面,在实际的问题中可能是人员、组织、其他软硬件系统等。一般只出现在分层数据流的顶层图中。 

  🐓 数据流图设计要略

1.明确系统边界和接口:在顶层数据流图中,需要明确系统的输入和输出数据流,以及系统和外部环境的数据交换关系。这有助于确定系统的范围和边界。

2.自顶向下,逐步细化:从顶层数据流图开始,逐步细化系统的各个部分,直到达到足够详细的程度。每一层的数据流图都是对上一层的细化,这样可以确保系统的逻辑清晰、层次分明。

3.保持数据守恒:在数据流图中,一个加工的所有输出数据流中的数据必须全部来自该加工的输入数据流,或者是通过该加工能产生的数据。这有助于确保系统的数据处理逻辑的正确性。

4.适当命名:为数据流、加工、数据存储和外部实体等选择合适的命名,使其能够反映该成分的实际含义。这有助于理解和分析数据流图。

5.注意数据流的平衡:父图和子图之间必须保持平衡,即父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。这有助于确保系统的数据流动和处理逻辑的一致性。

6.使用标准符号:在绘制数据流图时,应使用标准的符号来表示不同的成分,如数据流、加工、数据存储和外部实体等。这有助于使数据流图更加清晰、易于理解。

7.考虑数据字典:为每个数据流和数据存储定义清晰的数据字典,包括数据元素的名称、类型、取值范围等。这有助于确保系统的数据定义的一致性和准确性。

 🐓 数据字典

数据字典(Data Dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。它是对系统中使用的所有数据元素定义的集合,主要对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述。数据字典的目的是对数据流图中的各个元素做出详细的说明,为简单的建模项目提供帮助。

数据字典的内容包括数据库中所有模式对象的信息,如视图、簇、索引等;分配的空间信息,如空间大小和当前使用空间等;列的缺省值;约束信息的完整性;用户的名字;用户及角色被授予的权限;用户访问或使用的审计信息;以及其他产生的数据库信息。

【软件设计师】程序猿需掌握的技能——数据流图,软件设计师,数据库,流程图,程序人生,职场和发展

 数据字典的四个条目

1.数据流:数据流是数据在系统内传播的路径,由一组成分固定的数据组成。在数据字典中,数据流条目给出了数据流的定义,通常列出该数据流的各组成数据项。

2.数据存储:数据存储是数据库或系统中的文件或数据库表,用于存储数据。在数据字典中,数据存储条目描述了存储的数据项、数据类型、数据长度和结构组成等信息。

3.数据项:数据项是数据的基本单位,它描述了数据的特性或属性。在数据字典中,数据项条目提供了数据项的名称、数据类型、取值范围、使用频率和使用方式等信息。

4.加工:加工是对数据进行处理或转换的过程。在数据字典中,加工条目描述了加工的名称、输入和输出数据流、处理逻辑和使用的程序等信息。

 🐓 分层数据流图

分层数据流图是一种数据流图的形式,它将整个系统的数据处理过程分解成多个层次,每一层都反映了系统的一个特定方面或模块。通过分层数据流图,可以更加清晰地展示系统的数据处理流程和逻辑关系,有助于开发人员理解和设计系统。

在分层数据流图中,通常将最高层的数据流图称为顶层数据流图,它描述了整个系统的输入和输出,以及系统的主要功能和处理过程。顶层数据流图中的加工通常被进一步细化,形成下一层的数据流图,称为中间数据流图(Intermediate Data Flow Diagram)。中间数据流图进一步描述了顶层数据流图中的某个加工的内部细节,包括其子加工、数据流和数据存储等。最终,最底层的数据流图描述了系统中最为具体的处理过程和数据流动情况。

注意事项:

1.每层数据流图应该聚焦于系统的不同方面或模块,避免重复和冗余。

2.上下层之间的数据流图应该保持一致性,即父图和子图之间必须保持平衡,确保数据流的守恒。

3.每个加工都应该被清晰地定义和描述,包括其功能、输入和输出数据流、以及所使用的数据存储等。

4.数据流图应该使用标准的符号和命名规范,以便于理解和交流。

【软件设计师】程序猿需掌握的技能——数据流图,软件设计师,数据库,流程图,程序人生,职场和发展

 🐓 系统流程图

系统流程图(System Flowchart)是另一种用于描述系统内部数据处理流程的传统工具。与数据流图不同,系统流程图更注重于描述系统内部各个部件之间的物理关系和控制流程,而不是数据流动的情况。 

系统流程图的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况和系统的操作控制。系统流程图中的每个部件都被视为一个独立的实体,通过数据流和控制流相互连接。

主要作用

1.描述系统内部各个部件之间的物理关系和控制流程,帮助开发人员了解系统的整体结构和运行方式。

2.作为系统分析和设计的重要工具,有助于开发人员识别系统中的瓶颈和问题,并进行相应的优化和改进。

3.可以作为系统实现和维护的参考文档,帮助维护人员快速定位和修复系统中的故障和问题。

 🐓 程序流程图

程序流程图(Program Flowchart)是另一种用于描述程序内部逻辑结构的图形化工具。它是程序分析中最基本、最重要的分析技术之一,主要用于表示程序中的操作顺序和流程控制。

程序流程图的基本思想是用图形符号来表示程序中的各个操作步骤和控制流程,包括顺序结构、选择结构和循环结构等。通过程序流程图,可以清晰地展示出程序从起点到终点的完整执行过程,以及各个操作步骤之间的逻辑关系和控制流。

主要作用

1.描述程序的内部逻辑结构和执行流程,帮助开发人员理解和分析程序的运行过程。

2.作为程序设计和开发的重要工具,有助于开发人员优化程序结构、提高代码质量和可维护性。

3.可以用于程序测试和调试,帮助测试人员快速定位和修复程序中的错误和问题。文章来源地址https://www.toymoban.com/news/detail-828239.html

到了这里,关于【软件设计师】程序猿需掌握的技能——数据流图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统架构设计高级技能 · 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】

    点击进入系列文章目录 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 软件架构概念 软件架构( Software Architecture ) = 软件体系结构 指系统的一个或者多个结构,结构包括: (1)结构

    2024年02月13日
    浏览(33)
  • 【软件设计师07】程序设计语言与语言处理程序基础

    编译与解释、文法、正规式、有限自动机、表达式、传值与传址、多中程序语言特点 (逐渐降低考察比例,很少考察) 概念 文法类型 语法推导树 有限自动机 与正规式(重点) 常见问题:给一个串比如01、10、001等,看图中起点到终点能否连起来得到这样的串 正规式 是有限自

    2023年04月08日
    浏览(52)
  • 中级软件设计师备考---程序设计语言和法律法规知识

    Fortran语言: 科学计算 、执行效率高 Pascal语言: 为教学而开发的 、表达能力强,演化出了 Delphi C语言:指针操作能力强、 高效 Lisp语言:函数式程序语言、符号处理、 人工智能 C++语言:面向对象、 高效 Java语言:面向对象、中间代码、 跨平台 C#语言:面向对象、中间代码

    2024年02月03日
    浏览(80)
  • 基于微信小程序的软件设计师考试助手

    不知道大家放假都在干啥捏,本人放假已经在家躺了一个星期了,哈哈哈哈。所以今天打算给大家分享一个基于微信小程序设计的小项目,主要从需求分析、总体设计、详细设计以及实现四个部分向大家分享!其中可能会有很多不成熟以及不规范的部分,还请各位见谅,也欢

    2024年02月14日
    浏览(33)
  • 软考:中级软件设计师:程序语言基础:表达式,标准分类,法律法规,程序语言特点,函数传值传址

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月09日
    浏览(50)
  • UI设计师都应该具备哪些职业技能优漫教育

      随着互联网的不断发展,越来越多的人都开始学习UI设计等相关技术,而今天我们就一起来了解一下,UI设计师都应该具备哪些职业技能。   计算机UI有什么职业     系统知识     系统知识对于每个职业来说都相当重要,对于设计来说更加重要,设计越做到后面越需

    2024年02月08日
    浏览(36)
  • 【3D程序软件】SideFX与上海道宁一直为设计师提供程序化 3D动画和视觉效果工具,旨在创造高质量的电影效果

    Houdini是一个 从头开始构建的程序系统 使艺术家能够自由工作 创建多次迭代 并与同事快速共享工作流程 Houdini FX为 视觉特效艺术家创作故事片 广告或视频游戏 凭借其基于程序节点的工作流程 Houdini FX可让 您更快地创建更多内容 从而缩短时间并 在所有创意任务中享受增强的

    2024年02月03日
    浏览(45)
  • 软件设计师——软件工程(四)

    本文主要是【软件工程】——软件设计师——软件工程的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句:狠狠沉淀,顶峰相见 21.某开发小组欲为一公司开发一个产品控制软件,监控

    2024年01月24日
    浏览(41)
  • 系统架构设计师-软件架构设计(3)

    目录 一、软件架构风格(其它分类)         1、闭环控制结构(过程控制)           2、C2风格         3、MDA(模型驱动架构 Model Driven Architecture)         4、特定领域软件架构(DSSA)                 4.1 DSSA基本活动及产出物:             

    2024年02月15日
    浏览(46)
  • 系统架构设计师-软件架构设计(6)

    目录 一、物联网分层架构 二、大数据分层架构 三、基于服务的架构(SOA)         1、SOA的特征         2、服务构件与传统构件的区别 四、Web Service(WEB服务)         1、Web Services 和 SOA的关系 五、REST(表述性状态转移) 六、ESB(企业服务总线) 七、微服务         1、微

    2024年02月14日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包