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

系统架构设计师 需求分析篇一

📘 结构化分析SA

思想

  • 自顶向下:像剥洋葱一样,层层深入,大问题拆成小问题,再拆成更小的问题。
    在这里插入图片描述

核心模型

  • 数据字典 📔:记录数据元素的点点滴滴,从属性到使用方式,无所不包。

外部包含模型

  • 数据模型 📊:用ER图描绘数据元素及其关系的家族树。
  • 功能模型 🔄:DFD,系统功能的流水线,数据流向的导航图。
  • 行为模型 🔄:STD,系统状态的日记本,事件的行程表。

数据流图(DFD)

主要作用

  • 理解与表达需求 🔍:需求分析的望远镜,内部逻辑的显微镜。
  • 描述系统逻辑 📝:需求分析的成果展示,开发计划的档案馆。

基本符号

  • 数据流 📈:箭头。
  • 加工 🛠️:圆圈。
  • 数据存储 💾:直线段。
  • 外部实体 🌐:带名字方框。

层次

  • 顶层图 🏢:系统的鸟瞰图,最高层的结构概览。
  • 逐层分解 🔎:顶层图的放大镜,细节的逐步展开。

如何画DFD

  1. 画输入和输出 📐:先确定系统的边界,画出信息的进出口。
  2. 画DFD内部 🔗:连接系统的输入、输出,构建内部的流程图。
  3. 命名数据流和加工 📝:为每个元素赋予名字,让它们有身份证。
  4. 检查和修改 🔍:确保图形符号和元素命名的准确性,像校对文章一样细致。

检查和修改的准则

  • 图形符号限制 📏:只使用四种基本图形元素,保持DFD的纯粹性。
  • 元素命名 🏷️:每个元素都要有名有姓,便于识别。
  • 加工的输入输出 🔄:数量守恒,每个加工至少有一个输入和一个输出。
  • 加工编号 📑:按层级编号,保持加工的秩序。
  • 子图与上层加工对应 🔗:子图与上层加工一一对应,保持数据流的一致性。
  • 数据存储的读写 📘:读写平衡,每个数据存储都要有读写的机会。
  • 物质流和控制流 🚚:物质流可以加入,帮助理解;🚫 控制流则不可混入。

状态转换图 STD

适用场景

  • 实时控制系统 🕒:事件驱动的实时反应,状态的快速转换。

状态

  • 状态 🌀:系统行为的快照,观察系统的不同面貌。
  • 初始状态 🔵:实心圆的起点,一切的开始。
  • 最终状态 🔴:同心圆的终点,旅程的结束。

数据字典 DD

条目

  • 数据元素 📘:数据的基本单位,构成数据结构的砖石。
  • 数据结构 🔗:数据元素的组合,形成数据的框架。
  • 数据流 📈:数据的流动路径,信息的传输带。
  • 数据存储 💾:数据的存储空间,信息的仓库。
  • 加工逻辑 🛠️:数据加工的规则,信息处理的逻辑。
  • 外部实体 🌐:系统与外界的接口,数据交换的桥梁。

作用

  • 工作依据 📚:确保数据的完整性和一致性,数据管理的宝典。

总结 🧐

  • 记忆口诀 🎓:SA分析,像剥洋葱,DFD画图,像搭积木,STD状态,像翻日记,DD字典,像查百科。😄
  • 辅助记忆 🧠:
    • 结构化分析SA:分析的大树,层层深入。
    • 数据流图DFD:数据的河流,流向清晰。
    • 状态转换图STD:状态的时钟,时刻转换。
    • 数据字典DD:数据的宝典,一应俱全。

参与点评
读者朋友们,如果您在阅读过程中,对文章的质量、易理解性有任何建议,欢迎在评论区指出,我会认真改进。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue中动态引入加载图片不显示
  • AI大模型与产品经理:替代与合作的深度剖析
  • 说⼀说hashCode()和equals()的关系
  • Corrupt block relative dba: 0x02c0b382 (file 11, block 45954)
  • 动态内存
  • 【Obsidian】当笔记接入AI,Copilot插件推荐
  • 函数模板(初阶)
  • C:字符串函数(续)-学习笔记
  • C语言中实现在动态库中访问另一个动态库变量
  • 白月光git
  • 为什么H.266未能普及?EasyCVR视频编码技术如何填补市场空白
  • 如何建立一个Webservice WSDL的简单例子(完整例子)
  • java数据结构----图
  • 清华大佬自曝:接到了省烟草局的offer,我就拒掉了华为!结果华为立马给我申请了特殊涨薪,总包70w是烟草的2倍,这可如何是好?
  • SpringBoot+vue集成sm国密加密解密
  • 07.Android之多媒体问题
  • Java 网络编程(2):UDP 的使用
  • Javascript 原型链
  • Java-详解HashMap
  • Leetcode 27 Remove Element
  • MySQL主从复制读写分离及奇怪的问题
  • Python - 闭包Closure
  • Redux系列x:源码分析
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • V4L2视频输入框架概述
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 数组大概知多少
  • 网页视频流m3u8/ts视频下载
  • 携程小程序初体验
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 智能合约开发环境搭建及Hello World合约
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (1)Jupyter Notebook 下载及安装
  • (7)STL算法之交换赋值
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (办公)springboot配置aop处理请求.
  • (分布式缓存)Redis持久化
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (自用)仿写程序
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • ../depcomp: line 571: exec: g++: not found
  • .env.development、.env.production、.env.staging
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net dataexcel winform控件 更新 日志
  • .NET Remoting学习笔记(三)信道
  • .net 发送邮件
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .Net的DataSet直接与SQL2005交互
  • ?
  • @Autowired自动装配