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

news2024/9/18 22:23:06

📘 结构化分析SA

思想

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

核心模型

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

外部包含模型

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

数据流图(DFD)

主要作用

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

基本符号

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

层次

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

如何画DFD

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

检查和修改的准则

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

状态转换图 STD

适用场景

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

状态

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

数据字典 DD

条目

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

作用

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

总结 🧐

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

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

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

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

相关文章

QUIC的丢包处理

QUIC的重试数据包(Retry Packet)为什么会触发重启另一个连接 安全性考量 防止重放攻击 重试数据包(Retry Packet)是在初始握手过程中由服务端发送给客户端,用于验证客户端的IP地址,以防止重放攻击。 在一…

STM32上实现FFT算法精准测量正弦波信号的幅值、频率和相位差(标准库)

在研究声音、电力或任何形式的波形时,我们常常需要穿过表面看本质。FFT(快速傅里叶变换)就是这样一种强大的工具,它能够揭示隐藏在复杂信号背后的频率成分。本文将带你走进FFT的世界,了解它是如何将时域信号转化为频域…

【Android】【Compose】实现列表数据添加

序言 在使用列表的时候,以前是使用 Layout 布局里面添加Recyclerview进行列表的显示,但是在Compose里面,是没有这个Recyclerview使用的,那Compose怎么实现列表数据呢? 使用 【LazyColumn】 首先创建一个Compose项目…

java,深拷贝和浅拷贝

在 Java 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是对象拷贝的两种方式,主要区别在于它们如何处理对象的内部引用。 目录 一、浅拷贝(Shallow Copy) 实现方式 二、深拷贝&…

国际商城系统怎么弄 跨境电商商城怎样上线

国际商城系统一般涉及多个关键步骤。首先,需要选择合适的平台或开发工具,如商淘云国际电商系统或自定义开发。其次,系统应支持多语言、多币种以及国际支付网关,以满足全球客户的需求。第三,确保系统具有强大的物流和配…

推荐5款AI论文大纲生成器,一键极速生成!

在当今学术研究和写作领域,AI论文大纲生成器的出现极大地提高了写作效率和质量。以下是五款功能强大且全面的AI论文大纲生成器推荐: 一、千笔-AIPassPaper 千笔-AIPassPaper是一款基于深度学习和自然语言处理技术的AI写作助手,旨在帮助用户…

新160个crackme - 058-CZG-crackme1

运行分析 按下OK键后,程序退出 PE分析 C程序,32位,无壳 静态分析&动态调试 ida函数栏发现winMain(x,x,x,x),即打开窗口,双击函数跟进 继续跟进 双击DialogFunc函数,这个是窗口逻辑 继续跟进sub_401090函…

数据结构----栈和队列

(一)栈 1.栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First …

GFS 分布式文件系统 GlusterFS

一、GlusterFS概述 1.1、GlusterFS简介 GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。 包括其去中心化(无元数据服务器)的特性,这有…

【苍穹外卖】总结

1 pom 依赖 1.1 MyBatis Spring 用于简化 MyBatis 与 Spring Boot 的集成,提供了对 MyBatis 框架的自动配置支持,简化了数据访问层的开发 1.2 Lombok Lombok 是一个 Java 库,能够通过注解自动生成常见的代码(如 getter、setter、…

双亲委派机制知识点

类加载器 双亲委派模型 为什么采用双亲委派模型 打破双亲委派机制的场景 Tomcat 打破双亲委派机制:目的是可以加载不同版本的jar包 实现类隔离:在Tomcat中,每个Web应用使用独立的类加载器加载类文件,这样做的好处在于,当在同一T…

C++二叉搜索树(二叉树进阶)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 C二叉搜索树(二叉树进阶) 收录于专栏 [C进阶学习] 本专栏旨在分享学习C的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 二叉搜索树…

Java重修笔记 第五十七天 坦克大战(七)多线程基础 - 编程练习

1. 线程之间的协调控制(通知方式) public class Homework04 {public static void main(String[] args) {// 在 main 方法中启动两个线程// 第一个线程内循环打印 1 到 100 以内的整数// 直到第二个线程从键盘读取到 "Q" 指令后结束第一个线程…

Porcupine - 语音关键词唤醒引擎

文章目录 一、关于 Porcupine特点用例尝试一下 语言支持性能 二、Demo1、Python Demo2、iOS DemoBackgroundService DemoForegroundApp Demo 3、网页 Demo3.1 Vanilla JavaScript 和 HTML3.2 Vue Demos 三、SDK - Python 一、关于 Porcupine Porcupine 是一个高度准确和轻量级…

LC并联电路在正弦稳态下的传递函数推导(LC并联谐振选频电路)

LC并联电路在正弦稳态下的传递函数推导(LC并联谐振选频电路) 本文通过 1.解微分方程、2.阻抗模型两种方法推导 LC 并联选频电路在正弦稳态条件下的传递函数,并通过仿真验证不同频率时 vo(t) 与 vi(t) 的幅值相角的关系。 电路介绍 已知条件…

Axure RP实战:打造高效图形旋转验证码

Axure RP实战:打造高效图形旋转验证码 在数字产品设计的海洋中,验证码环节往往是用户交互体验的细微之处,却承载着验证用户身份的重要任务。 传统的文本验证码虽然简单直接,但随着用户需求的提高和设计趋势的发展,它…

vue2的diff算法

Vue2 的虚拟 DOM diff 算法是一种高效的算法,用于比较新旧两个虚拟 DOM 树,找出差异并更新到真实 DOM 上。这个算法的核心在于尽量减少不必要的 DOM 操作,提高性能。 虚拟dom:把DOM数据化,先通过不断地操作数据&#…

如何在手机端跑大模型?

最近新入手了一台 arm 开发板,内置安装了 Android 13 系统。 昨天把网络问题给解决了:安卓连接 WIFI 但无法上网?盘点踩过的那些坑 今日分享,继续带大家实操:如何把大模型(LLM)部署到移动端&a…

文章资讯职场话题网站源码整站资源自带2000+数据

介绍: 数据有点多,数据资源包比较大,压缩后还有250m左右。值钱的是数据,网站上传后直接可用,爽飞了 环境:NGINX1.18 mysql5.6 php7.2 代码下载

JUC学习笔记(三)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 八、共享模型之工具--JUC8.1 AQS 原理1. 概述2 实现不可重入锁自定义同步器自定义锁 3.心得起源目标设计1) state 设计2)阻塞恢复设计3)队列…