十五、数据流图

十五、数据流图

本文章学习了zst_2001大佬的视频。本人亲自写的笔记。
其中部分图片是结合了给位大佬的笔记图片整理的。目的是为了帮助速记。
不喜勿喷
,侵权联系删除

「软件设计师」 下午题 #1 试题一_哔哩哔哩_bilibili

1、做题技巧

1、多做多做多做

2、父图子图平衡

  • 会给两张图,这两张图找连连看,找数据流不同的(就是横线上的字)

  • 如果有缺少的数据流图就要进行补充(对应的是第三问)

3、加工既有输入数据流又有输出数据流

  • 就是P一定要有输入箭头和输出箭头

  • 不然也就是会缺少数据流

4、数据守恒

  • 这玩意只能一条一条看。

  • 不要过度脑补,不然就歇逼

5、第一问

  • 都是找实体,仔细看题,就行

6、第二问

  • 是找D,数据库的名称,一般有xxx表,xxx文件啥的。

7、第四问

  • 这样看命(必须要写东西)

8、补充:结构化语言

9、例子

某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:   1. 每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。   2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。   3. 在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。   4. 对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。   5. 若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。   6. 在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。   7. 根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。 2. ......
<think>好的,我现在需要给用户介绍数据流图。首先,用户之前已经询问过解释器架构和面向对象架构,现在转向数据流图,可能是想了解系统设计或需求分析相关的工具。数据流图(DFD)在结构化系统分析中很常用,但需要确认用户是否已经有一些基础,或者需要从零开始解释。 首先,我应该明确数据流图的定义,包括它的主要用途,比如可视化系统的数据动和处理过程。接下来,需要说明DFD的基本组成部分,比如外部实体、过程、数据存储和数据。这部分需要结构清晰,用例子帮助理解。 然后,要介绍数据流图的层次结构,比如上下文图、0层图、1层图等,说明分层的作用和如何逐步细化系统。可能用户对分层不太了解,需要用简单易懂的语言解释。 接下来是绘制规则,这部分要强调注意事项,比如避免控制、保持数据命名清晰等。同时,需要举一些例子说明正确和错误的做法,帮助用户避免常见错误。 在应用场景方面,要涵盖系统分析、需求沟通、程优化等,说明DFD在不同阶段的作用。比较部分需要指出DFD与其他图表(如程图、UML)的区别,突出其专注于数据动的特点。 最后,通过一个简单的案例,比如在线购物系统,展示如何绘制DFD,从上下文图到0层图,让用户更直观地理解。同时,提醒用户注意平衡分解粒度,保持命名规范,避免复杂化。 需要检查是否有遗漏的部分,比如DFD的优缺点,但用户可能更关注基本介绍和应用。另外,确保语言通俗易懂,避免过多技术术语,必要时用例子辅助说明。最后,总结DFD的重要性和使用场景,帮助用户形成整体认识。</think>以下是对数据流图(Data Flow Diagram,DFD)的详细介绍,包括其定义、核心元素、绘制规则及典型应用: --- ### **一、数据流图的定义** **数据流图**(Data Flow Diagram,DFD)是一种用于**可视化系统数据动和处理逻辑**的图形化工具,属于结构化系统分析的核心技术。 - **核心目标**:描述数据在系统中的输入、处理、存储和输出过程。 - **适用阶段**:需求分析、系统设计、业务程优化。 - **主要用户**:系统分析师、开发人员、业务人员(用于沟通需求)。 --- ### **二、数据流图的核心元素** #### **1. 外部实体(External Entity)** - **定义**:与系统交互的外部对象(如人、组织、其他系统)。 - **符号**:矩形或圆角矩形,标注实体名称。 - **示例**:用户、银行、物系统。 #### **2. 过程(Process)** - **定义**:对数据的处理或操作(如计算、验证、转换)。 - **符号**:圆形或带圆角的矩形,标注动词短语(如“验证订单”)。 - **规则**:每个过程必须有输入和输出数据。 #### **3. 数据存储(Data Store)** - **定义**:系统中存储数据的逻辑位置(如数据库、文件)。 - **符号**:两条平行线或开口矩形,标注名词(如“订单表”)。 - **示例**:用户信息库、库存数据库。 #### **4. 数据(Data Flow)** - **定义**:数据在实体、过程和存储之间的动方向。 - **符号**:带箭头的线段,标注动的数据内容(如“订单详情”)。 - **规则**:数据不可在外部实体之间直接动,必须通过过程。 --- ### **三、数据流图的层次结构** DFD通过**分层分解**描述系统细节,典型层级包括: 1. **上下文图(Level 0 DFD)** - 描述系统与外部实体的交互(仅一个过程)。 - **示例**: $$ \text{用户} \rightarrow \text{在线购物系统} \rightarrow \text{物系统} $$ 2. **0层图(Level 1 DFD)** - 分解上下文图中的过程,展示主要子过程和数据。 - **示例**: $$ \text{用户} \rightarrow \text{提交订单} \rightarrow \text{订单数据库} \rightarrow \text{生成物单} \rightarrow \text{物系统} $$ 3. **1层图(Level 2 DFD)** - 进一步细化0层图中的某个子过程(如“支付处理”的详细步骤)。 --- ### **四、数据流图的绘制规则** 1. **数据守恒**:过程输出的数据必须由输入数据生成。 2. **命名规范**: - 过程使用动词短语(如“计算运费”)。 - 数据使用名词短语(如“订单信息”)。 3. **避免控制**:DFD不描述条件判断、循环等控制逻辑(由程图负责)。 4. **禁止黑洞**:过程必须有输入和输出,不可仅有输入或仅有输出。 --- ### **五、数据流图的应用场景** 1. **系统分析**:识别功能需求和数据依赖关系。 2. **需求沟通**:帮助业务人员与技术团队对齐理解。 3. **程优化**:发现冗余数据处理环节。 4. **系统文档**:作为技术文档的基础部分。 --- ### **六、DFD与其他图表的区别** | **对比维度** | **数据流图(DFD)** | **程图(Flowchart)** | **UML图(如活动图)** | |----------------|--------------------------------------|----------------------------------|------------------------------| | **关注点** | 数据动与处理 | 控制与步骤顺序 | 对象交互与行为 | | **适用阶段** | 需求分析 | 详细设计 | 设计与实现 | | **符号元素** | 外部实体、过程、数据存储、数据 | 开始/结束框、判断框、操作框 | 活动、分支、对象生命线 | --- ### **七、DFD实例:在线购物系统** #### **上下文图** $$ \text{用户} \leftrightarrow \text{在线购物系统} \leftrightarrow \text{支付网关} $$ #### **0层图分解** 1. 用户提交订单 → 订单验证 → 订单数据库 2. 订单数据库 → 生成支付请求 → 支付网关 3. 支付网关返回结果 → 更新订单状态 → 通知用户 --- ### **八、注意事项** 1. **平衡分解粒度**:避免过度细化(如一个过程分解为数十个子过程)。 2. **保持一致性**:同一数据在不同层级中名称需一致。 3. **聚焦数据**:不描述硬件、网络拓扑等非数据相关细节。 --- 通过数据流图,可以清晰展现系统的核心逻辑与数据交互,是系统分析和设计阶段不可或缺的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

章鱼哥小哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值