软件工程-第五章(结构化分析与设计)
一、结构化分析
就软件需求分析而言,即:系统化地使用问题域术语,给出该问题的模型(即“系统必须做什么”的一个估算)。
二、数据流图——表达系统功能模型的工具(功能建模)。
三、分层数据流图的审查
· 检查图中是否存在错误或不合理的部分
· 父图与子图平衡
· 数据守恒
· 一个加工的输出数据流不能与该加工的输入数据流同名
· 考虑分层数据流中一个文件应画在哪些DFD中,不该画在哪些DFD中
· 同一个加工的输出数据流和输入数据流即使组成成分相同,仍应对它们取不同的名字,以表示它们是不同的数据流。
· 允许一个加工有两个相同的数据流分别流向二个不同的加工
· 每个加工至少有一个输入数据流和一个输出数据流
· 在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件
· 分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典的一致
· 分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约
· 适当命名:每个数据流、加工、文件、源和宿都应被适应地命名,名字应符合被命名对象的实际含义
· 画数据流而不是画控制流
· 避免一个加工有过多的数据流
· 分解尽可能均匀
· 先考虑稳定状态,忽略琐碎的枝节
· 随时准备重画
四、数据字典
数据字典是模型的核心,它包含了软件使用和产生所有数据的描述。
· 不同的开发组织或团队可以根据项目的需要定义字典条目的描述内容
· 字典条目中的描述内容主要包括
DFD元素的基本信息
定义
使用特点
控制信息
· 数据流组成是数据流条目的核心,它列出组成数据流的各数据项
· 当一个数据流的组成比较复杂时,可以将其分解成几个数据流
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理