第三章 结构化方法
1. 结构化需求分析
1.1 基本术语
数据流:在结构化分析方法中,数据流是数据的流动
图例:
加工:加工是数据变换的单元,即它接受输入的数据,对其进行处理,并产生输出; 在使用中一般给出标识,且标识为动宾结构
图例:
数据存储:在结构化分析方法中,数据存储是数据的静态结构
图例:
数据源/数据谭:数据源是数据流的起点,数据潭是数据流的归宿地。数据流和数据潭是系统之外的实体, 可以是人、物或者其他软件系统。
图例:
1.2 系统功能模型表示
需求分析的首要任务是建立系统功能模型
结构化分析方法给出一种能表达功能模型的工具,即数据流图,简称DFD图
软件工程分析工具:HIPO(总体设计的工具)、N-S图(详细设计的工具)、PAD图(详细设计工具)、DFD图(结构化分析方法的表达功能模型的工具)
1.3 建模过程
(1)建立系统环境图,确定系统语境
结构化方法通过系统顶层数据流图来定义系统语境
(2)自顶向下,逐步求精,建立系统的层次数据流图
在顶层数据流图基础上,按功能分解的设计思想,进行“自顶向下,逐步求精”;
对加工进行分解,自顶向下地画出各层数据流图,直到底层的加工足够简单,功能清晰易懂,不必再继续分解为止,这样的加工称为 “叶加工”。
由“父图”生成“子图”。步骤:将父图的每一加工按其功能分解为若干个子加工,将父图的输入输出流分派到相关的子加工,在各加工之间建立合理的关联,必要时引入数据存储,使其形成有机的整体。
(3)定义数据字典
目标:定义数据流图包含的所有数据流和数据存储的数据结构, 直到给出构成以上数据的各数据项的基本数据类型。
顺序结构:数据A是由数据B和数据C顺序构成的, 并记为 “+” 例: 学生成绩 =姓名+性别+学号+科目+成绩
选择结构:数据A是由数据B0或是由数据C0定义的 ,即数据不可能同时是B0或C0, 并记为“|” 例: 性别 =男|女
重复结构:数据A是由多个重复的数据B构成的, 并记为 “{ }” 例: 学生成绩表={学生成绩}
数据流条目:给出DFD图中所有数据流的结构定义
数据存储:给出DFD图中所有数据存储的结构定义
数据项条目:给出DFD图中所有数据项的结构定义
(4)描述加工
目标:给出每一加工的小说明 ;对DFD图中每一加工给出加工的输入数据和输出数据间的关系; 即从外部来视察一个加工的逻辑。
3种表达工具:结构化自然语言、判定表、判定树
1.4 两个基本手段
抽象:从上往下,逐步概括,关注问题的主要方面, 忽略细节。
分解:自顶向下,把要解决的问题分解为多个步骤或阶段, 每一步是对上一步结果的细化,直到底层的加工足够简单。
1.5 需求阶段主要任务
需求发现、需求分析和需求验证,最终形成系统的软件需求规格说明书
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?