当前位置: 首页 > article >正文

结构化分析方法 数据流图详解

文章目录

    • 引言
    • 一、数据流(Data Flow)
      • 1.1 数据流定义
      • 1.2 示意图
      • 1.3 案例分析(智能图书馆)
      • 1.4 设计原则
    • 二、加工(Process)
      • 2.1 加工定义
      • 2.2 示意图
      • 2.3 案例分解
      • 2.4 设计原则
    • 三、数据存储(Data Store)
      • 3.1 存储类型
      • 3.2 示意图
      • 3.3 案例存储结构
      • 3.4 设计原则
    • 四、外部实体(External Entity)
      • 4.1 实体分类
      • 4.2 示意图
      • 4.3 案例实体交互
      • 4.4 设计原则
    • 五、分层数据流图(Hierarchical DFD)
      • 5.1 分层结构
      • 5.2 案例分层实现
        • 顶层图
        • 0 层图
        • 子层图(P3.1 借阅登记)
      • 5.3 设计原则
    • 六、完整案例:智能图书馆管理系统
      • 6.1 顶层数据流图
      • 6.2 0 层数据流图
      • 6.3 子层数据流图(P3.1 库存检查)
    • 七、Mermaid 高级技巧
      • 7.1 节点样式设置
      • 7.2 条件分支表示
      • 7.3 子图封装
    • 八、数据流图验证方法

引言

结构化分析方法(SA)通过数据流图(DFD)建立系统逻辑模型。本教程从数据流、加工、数据存储、外部实体和分层 DFD 五个维度展开,结合 “智能图书馆管理系统” 案例进行解析。

数据流图(DFD)基本成分及其图形表示

成分名称定义图形符号示例
外部实体系统之外的数据源或数据终点,如人、组织或其他系统。矩形(内部标注实体名称) 例:[用户][财务系统]
处理过程对数据进行加工或转换的操作步骤,通常用编号和名称标识。圆形或圆角矩形(内部标注处理逻辑) 例:P1.1 身份验证P3.2 生成借阅单
数据流数据在系统中的流动方向,包含数据名称和流向。箭头线(箭头上标注数据流名称) 例:→ 借阅请求→ 缴费确认
数据存储数据保存的地方,如文件、数据库或缓冲区。开口矩形(内部标注数据存储名称) 例:[(图书信息库)][(预约数据库)]

一、数据流(Data Flow)

1.1 数据流定义

数据流是数据在系统内的流动路径,包含:

  • 方向:数据流动方向
  • 名称:数据内容描述
  • 数据项:具体数据元素集合

1.2 示意图

选课请求
课程信息
选课结果
学生
课程管理模块
选课处理模块
学生

1.3 案例分析(智能图书馆)

借阅请求
图书信息
库存状态
借阅成功通知
用户
借阅处理
图书数据库

1.4 设计原则

  1. 每个数据流名称唯一
  2. 名称应准确反映数据内容
  3. 避免循环数据流

二、加工(Process)

2.1 加工定义

加工是数据处理逻辑单元,包含:

  • 编号:层次化标识符
  • 名称:动词短语描述
  • 输入 / 输出:明确数据流

2.2 示意图

P1.1 身份验证
P2.1 图书查询
P3.1 借阅登记

2.3 案例分解

身份验证
图书查询
借阅登记
权限检查
借阅记录更新

2.4 设计原则

  1. 单一职责原则
  2. 高内聚性
  3. 精确逻辑描述

三、数据存储(Data Store)

3.1 存储类型

  • 临时存储:事务处理临时表
  • 永久存储:基础信息数据库

3.2 示意图

图书信息库
借阅处理
归还处理
借阅记录库

3.3 案例存储结构

图书信息库
借阅处理
借阅记录库
归还处理

3.4 设计原则

  1. 最少冗余
  2. 完整性约束
  3. 访问控制

四、外部实体(External Entity)

4.1 实体分类

  • 用户角色:学生、教师
  • 外部系统:财务系统、学籍系统

4.2 示意图

借阅请求
缴费通知
学生
借阅模块
缴费模块
财务系统

4.3 案例实体交互

用户
借阅模块
图书数据库
财务系统

4.4 设计原则

  1. 明确系统边界
  2. 唯一标识
  3. 双向交互

五、分层数据流图(Hierarchical DFD)

5.1 分层结构

顶层图
0层图
子层图1
子层图2

5.2 案例分层实现

顶层图
借阅请求
借阅结果
缴费通知
缴费确认
用户
图书馆系统
财务系统
0 层图
身份验证
图书查询
借阅处理
权限检查
记录更新
图书信息库
借阅记录库
子层图(P3.1 借阅登记)
检查库存
更新借阅表
发送通知
通知模板库

5.3 设计原则

  1. 父图子图平衡
  2. 分解粒度控制
  3. 层次化编号

六、完整案例:智能图书馆管理系统

6.1 顶层数据流图

图书借阅请求
借阅结果反馈
超期提醒
缴费通知
缴费确认
用户
图书馆管理系统
财务系统

6.2 0 层数据流图

身份验证
图书检索
借阅处理
权限校验
记录更新
图书信息库
借阅记录库
通知生成
通知模板库

6.3 子层数据流图(P3.1 库存检查)

库存充足
库存不足
查询库存
生成借阅单
加入预约队列
图书信息库
预约数据库

七、Mermaid 高级技巧

7.1 节点样式设置

用户
处理模块
数据库

7.2 条件分支表示

有效
无效
借阅请求
身份验证
图书查询
拒绝请求

7.3 子图封装

子系统2
子流程4
子流程3
子系统1
子流程2
子流程1
主流程

八、数据流图验证方法

  1. 平衡验证:父图子图输入输出匹配
  2. 完整性验证:无黑洞 / 灰洞加工
  3. 一致性验证:数据流名称与数据字典一致
  4. 逻辑验证:数据流方向符合业务规则

http://www.kler.cn/a/614799.html

相关文章:

  • 工业控制系统安全:从漏洞到防线,Python如何成为你的护卫者
  • 图论 岛屿问题 ACM 模式 JS
  • 怎么搭建区块链服务私有云平台
  • C++实现布隆过滤器
  • 创意 Python 爱心代码分享
  • Python常用爬虫库介绍
  • vue3+element plus +el-tree-v2实现树形单选
  • presto任务优化参数
  • Uniapp微信开发树形选择组件
  • LeetCode 热题 100_杨辉三角(82_118_简单_C++)(动态规划)
  • Tof 深度相机原理
  • 0基础STM32之滤波函数(卡尔曼滤波)
  • 抽象的算法0.1.3.1版本
  • 算法训练营第二十八天 | 动态规划(一)
  • WinForm真入门-简介
  • NLP语言模型训练里的特殊向量
  • Linux系统中应用端控制串口的基本方法
  • 数据结构----栈
  • 记录vite引入sass预编译报错error during build: [vite:css] [sass] Undefined variable.问题
  • resnet网络迁移到昇腾执行(OM上篇)