软件工程:数据流图相关知识和多实例分析

目录

一、数据流图相关知识

1. 基本介绍

2. 常用符号

3. 附加符号

二、数据流图实例分析

1. 活期存取款业务处理系统

2. 工资计算系统

3. 商业自动化系统

4. 学校人事管理系统

5. 教材征订系统

6. 高考录取统分子系统

7. 订货系统

8. 培训中心管理系统

9. 考务处理系统

10. 实验上机安排系统


一、数据流图相关知识

1. 基本介绍

数据流图(Data Flow Diagram),简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

2. 常用符号

符号说明图例
数据源点/终点通常是人或部门,可重复表示 或 
处理一个处理框可以代表一系列程序、单个程序或程序的一个模块 或 
数据存储可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等,数据存储是处于静止状态的数据 或 
数据流描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件 ,数据流是处于运动中的数据

3. 附加符号

符号说明图例
*表示“与”关系 或 
+表示“或”关系 或 
表示互斥关系 或 

二、数据流图实例分析

1. 活期存取款业务处理系统

欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理。

(1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;

(2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;

(3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。

顶层数据流图:

一层数据流图:

2. 工资计算系统

工资计算系统中的一个子系统有如下功能: 

(1)计算扣除部分—由基本工资计算出应扣除(比如水电费、缺勤)的部分; 
(2)计算奖金部分—根据职工的出勤情况计算出奖励金; 
(3)计算工资总额部分—根据输入的扣除额及奖金计算出总额; 
(4)计算税金部分—由工资总额中计算出应扣除各种税金; 
(5)生成工资表—根据计算总额部分和计算税金部分传递来的有关职工工资的详细信息生成工资表。 

3. 商业自动化系统

建立一个简化的商业自动化系统,其中:
(1)营业员通过该系统记录每日销售的商品(商品名,商品编号,单价,数量,销售时间);
(2)收款员通过该系统记录收到的现金数额以及购物余额;
(3)商店经理每日统计销售额,并在必要时查看某种商品的销售情况(商品名,商品编码,金额)。

顶层数据流图:

一层数据流图:

4. 学校人事管理系统

在要建立的某学校人事管理信息系统中:
(1)人事科:负责在本地数据库录入本年度新进的每一教工的基本信息(姓名、工作证编号、职称、性别、出生年月、系别);并将这一信息传送该教务科。
(2)教务科:负责在本地数据库录入本年度每一教员的教学信息(姓名、年度、学科、学时、学生人数、缺课情况);
(3)人事科领导:①必要时,依据“工作证编号”、“年度”查询某一教员的教学工作量;②统计教员的职称结构,即产生每一等级职称的人数。 

顶层数据流图:

 一层数据流图:

二层数据流图:

5. 教材征订系统

教材征订系统设计如下:

(1)学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。

(2)各种资金往来通过学校的会计科办理。 

6. 高考录取统分子系统

高考录取统分子系统有如下功能:
(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;

(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。

顶层数据流图:

一层数据流图:

7. 订货系统

订货系统设计如下:

(1)采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。

(2)对于每个需要再次定货的零件,应该列出:零件编号,零件名称,定货数量,目前价格,主要/次要供应者。

(3)零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。

(4)当某种零件的库存量少于库存量的临界值时,就应该再次定货。

顶层数据流图:

一层数据流图:

二层数据流图:

8. 培训中心管理系统

某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。

(1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。

(2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。

(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。

9. 考务处理系统

一个考务处理系统的要求如下,试画出该系统的数据流图。

(1)对考生送来的报名表进行检查;

(2) 对合格的报名表编好准考证号码后将准考证送给考生, 并将汇总后的考生名单送给
阅卷站;
(3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者;
(4)填写考生通知单(内容包含考试成绩及合格 ∕不合格标志),送给考生;
(5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难度分析,
产生统计分析表。

顶层数据流图:

一层数据流图:

二层数据流图: 

10. 实验上机安排系统

学校拟开发一套实验上机安排系统,可以帮助教师的安排上机。

(1)教师安排实验时首先需要提交实验项目,然后选择有空闲的机房,再查询学生的空余时间。

(2)安排好每次的实验时间后,经过汇总形成实验安排报表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​已解决java.lang.ArrayIndexOutOfBoundsException异常的正确解决方法,亲测有效!!!​

已解决java.lang.ArrayIndexOutOfBoundsException异常的正确解决方法,亲测有效!!! 目录 报错问题 解决思路 解决方法 总结 Q1 - 报错问题 java.long.ArrayIndexOutOfBoundsException 是Java中的一个运行时异常​&#xff0c…

强化学习5——动态规划初探

动态规划具体指的是在某些复杂问题中,将问题转化为若干个子问题,并在求解每个子问题的过程中保存已经求解的结果,以便后续使用。实际上动态规划更像是一种通用的思路,而不是具体某个算法。 在强化学习中,被用于求解值函…

【网络工程师】交换机的配置

一、交换机5大基本工作模式 配置网络设备,需要使用console线,在PC上需要使用软件 “超级终端” 1、用户模式:switch> 可以查看交换机的额基本简单信息,且不能做任何修改配置! 2、特权模式:switch## …

在使用Composer管理的项目中安装和使用

在使用Composer管理的项目中安装 如果项目框架本身就是使用Composer来管理包的话,直接在项目根目录执行Composer安装命令后,即可在项目控制器中调用QueryList来使用,这种框架有: Laravel、ThinkPHP5等。 在项目根目录执行compo…

SQL日期列更新操作详解

在实际的数据库管理过程中,有时我们需要对数据库中的日期列进行更新。这篇博客将详细介绍一条 SQL 语句,该语句用于更新 referral_up_order 表中的多个日期列,并将它们的日期部分更改为 2023-10-24,同时保留原始时间部分。 1、背…

LeGO-LOAM 几个特有函数的分析(2)

接上回LeGO-LOAM 几个特有函数的分析(1) 二、广度优先遍历 广度优先遍历(Breadth-First Search, BFS)是一种用于遍历或搜索树或图的算法。这种算法从树的根(或图的某一指定节点)开始,然后探索…

Linux 常见服务配置

笔记所以内容很多,建议选择性看看 SSH 对应服务 sshd 注意:配置文件 配制文件修改需要重启或重载sshd服务才能生效 systemctl sshd reload # 重载 sshd 配置文件 systemctl sshd restart # 重启 sshd 服务客户端配置文件 man ssh_config 可以…

数据库高可用mha

MHA搭建的步骤 一.配置主从复制 1.初始化环境 #在四台服务器上初始化环境 systemctl stop firewalld systemctl disable firewalld setenforce 0 2.修改 Master、Slave1、Slave2 节点的主机名 #在Master上 hostnamectl set-hostname mysql1 su#在Slave1 hostnamectl set-h…

泛型-限定存储数据类型

泛型 泛型的本质&#xff1a;参数类型化 概述&#xff1a;将类型由原来的具体的类型参数化&#xff0c;然后在 使用/调用 时传入具体的类型 格式&#xff1a; <类型> 指定一种类型的格式&#xff0c;这里的类型可以看成是 方法中的形参&#xff08;如果不理解可去看下形…

Flink窗口与WaterMark

本文目录 窗口的生命周期Window Assigners窗口函数&#xff08;Window Functions&#xff09;TriggersEvictorsAllowed Lateness 窗口 窗口&#xff08;Window&#xff09;是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中&#xff0c;再对每个“桶”加以处理。…

域名流量被劫持怎么办?如何避免域名流量劫持?

随着互联网不断发展&#xff0c;流量成为线上世界的巨大财富。然而一种叫做域名流量劫持的网络攻击&#xff0c;将会在不经授权的情况下控制或重定向一个域名的DNS记录&#xff0c;导致用户在访问一个网站时&#xff0c;被引导到另一个不相关的网站&#xff0c;从而劫持走原网站…

企微私域流量引流:从策略到实践的全面解析

随着互联网的发展&#xff0c;流量变得越来越贵&#xff0c;如何将流量转化为企业的价值成为了重要的议题。在这个背景下&#xff0c;企微私域流量成为了企业关注的焦点。本文将从策略和实践两个角度&#xff0c;全面解析企微私域流量的引流方法。 一、策略篇 1. 明确目标&…

maven pom.xml 加载本地.jar库文件方法

一般我们使用的jar包,都是从maven仓库中加载的, 那如果是从本地该如何加载呢? 本文介绍maven加载本地jar的方法 在 pom.xml 的 dependencies 节点内增加以下配置即可 <dependency> <groupId>cn.tekin</groupId> <artifactId>mylib</artifactI…

leetcode:908. 最小差值 I

一、题目 二、函数原型 int smallestRangeI(int* nums, int numsSize, int k) 三、思路 本题题目有些绕口&#xff0c;但是无伤大雅。本质就是可以对数组中的每个元素进行加/减 k 的操作&#xff0c;然后求数组中的最大、最小元素的最小差值。 分为几种情况&#xff1a; …

怎么查询网络出口IP

怎么查询自己的网络的出口IP 背景 一般跟第三方服务进行接口数据交互的时候&#xff0c;对方都会让我们提供调用接口的网络的出口IP&#xff0c;对方会把该IP地址加到对方的白名单中。这样我们才能有权限进行接口的访问。 解决办法 下面介绍三种常用的查询网络出口IP的办法…

C语言编译器(C语言编程软件)完全攻略(第二十九部分:Linux GCC简明教程(使用GCC编写C语言程序))

介绍常用C语言编译器的安装、配置和使用。 二十九、Linux GCC简明教程&#xff08;使用GCC编写C语言程序&#xff09; 市面上常见的 Linux 都是发行版本&#xff0c;典型的 Linux 发行版包含了 Linux 内核、桌面环境&#xff08;例如 GNOME、KDE、Unity 等&#xff09;和各种…

[Verilog语言入门教程] 乘法器详解 与 设计/仿真

依公知及经验整理,原创保护,禁止转载。 专栏 《Verilog》 <<<< 返回总目录 <<<< 乘法器可以分为以下5种类型: 顺序乘法器(Sequential Multiplier):顺序乘法器是最简单的乘法器类型,采用逐位相乘的方法实现。这种乘法器适用于小规模的乘法运算…

go构建项目与打包

环境搭建 使用的组件及版本 operator-sdk v1.22.0go 1.20.0 linux/amd64git 1.8.3.1k8s 1.18.5docker 20.10.5 前期配置 安装Git yum install git安装docker yum install docker-ce安装go 官网下载 tar -C /usr/local/ -xvf go1.20.linux-amd64.tar.gz 环境配置 // 将go配置…

【赠书第16期】码上行动:用ChatGPT学会Python编程

文章目录 前言 1 ChatGPT简介 2 Python编程简介 3 使用ChatGPT学习Python编程 4 如何使用ChatGPT学习Python编程 5 推荐图书 6 粉丝福利 前言 随着人工智能技术的不断发展&#xff0c;聊天机器人已经成为我们日常生活和工作中不可或缺的一部分。其中&#xff0c;ChatGP…

HarmonyOS@Extend装饰器:定义扩展组件样式

Extend装饰器&#xff1a;定义扩展组件样式 在前文的示例中&#xff0c;可以使用Styles用于样式的扩展&#xff0c;在Styles的基础上&#xff0c;我们提供了Extend&#xff0c;用于扩展原生组件样式。 说明 从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。…