目录
考察方向
需求分析
需求分析 —— 结构化需求分析(SA)
1. 结构化需求分析概念
2. 结构化需求分析内容
1)功能模型
2)数据模型
3)行为模型
4)数据字典
5)数据流图基本概念
分层图
数据流图平衡原则
1) 父图与子图之间的平衡
2) 子图内平衡
解题技巧1
1) 详细分析试题说明
2)数据平衡原则解题
3) 中间件管理功能
解题技巧2
1) 补充实体
2) 补充存储
3) 补充数据流(最难)
4) 补充加工名
考察方向
需求分析
- 考查重点: 在软件工程案例分析题中属于高频考点(☆☆☆☆)
- 分析方法:
- 结构化需求分析:使用数据流图(DFD)进行分析
- 面向对象需求分析:使用UML建模语言进行分析
- 案例特点: 通常会结合具体案例场景,要求考生分析需求并绘制相应图表
需求分析 —— 结构化需求分析(SA)
1. 结构化需求分析概念
- 两大阵营:分为结构化需求分析和面向对象需求分析两大方法论体系
- 核心目标:通过建立系统化的模型来准确描述和定义软件需求
2. 结构化需求分析内容
1)功能模型
- 建模工具:使用数据流图(DFD)进行建模
- 分析维度:通过数据流向和处理过程来分析系统功能
- 关键作用:能清晰展示数据经过处理后得到的结果
- 典型元素:包含数据流、加工、数据存储、外部实体等组件
2)数据模型
- 建模工具:采用实体联系图(ER图)进行建模
- 组成要素:由实体(E)、联系(R)和属性三部分构成
- 应用场景:主要在数据库设计阶段详细使用
- 考试重点:在需求分析阶段仅作简要介绍
3)行为模型
- 建模对象:描述系统动态行为状态变化
- 典型工具:状态转换图(STD)
- 核心要素:包含状态(初态、终态)、事件和行为
- 考试频率:在考试中出现频率较低
- 酒店预订案例:
- 房间状态:空闲→预定→入住
- 状态变迁:由特定事件触发状态转换
- 建模价值:能清晰展示状态间的转换条件和规则
4)数据字典
- 定义:对系统中所有数据元素的详细说明文档
- 核心作用:
- 解释数据流图中各元素的精确含义
- 明确数据组成(如用户信息包含姓名、电话、地址等)
- 中心地位:同时服务于功能模型、数据模型和行为模型
- 类比说明:类似传统字典对词语的解释功能
5)数据流图基本概念
- 典型交互流程:培训部(外部实体)→"安排课程"(加工)→"课程"(数据存储)展示完整数据流动过程
- 关键区分点:外部实体不属于系统本身(如学员使用系统但不是系统组成部分),而数据存储是系统内部组件
分层图
顶层图
- 特征:仅包含一个代表整个系统的椭圆框(如"在线教育平台系统")和周边外部实体
- 作用:展示系统边界和主要外部交互,如系统与学员、培训部、辅导老师的交互关系
- 局限性:无法显示系统内部具体功能和处理流程
0层图
- 核心变化:将顶层图的单一系统分解为多个加工模块(如"安排课程"、"学员注册"、"产生类别列表")
- 详细程度:展示各加工模块的输入/输出数据流及其关联的数据存储(如"课程"表)
- 分层原理:体现结构化开发"自顶向下,逐步分解"的思想,通过多级细化逐步揭示系统细节
数据流图平衡原则
- 核心作用:平衡原则是解决DFD分层图中缺失数据流问题的关键技能,通过对比不同层级图的输入输出流来定位问题
- 应用场景:考试中常出现"掏空"的DFD图要求补充缺失数据流,平衡原则能系统化地发现问题
1) 父图与子图之间的平衡
- 相对性关系:父子关系具有层级相对性,顶层图相当于"爷爷辈",零层图是其子图;若零层图的加工再分解,则成为新子图的父图
- 数据流守恒:类比放大镜观察蚂蚁——放大后腿的数量不变,子图必须保持父图所有输入输出数据流,不能新增或缺失
- 实际案例:在线教育平台中,父图的"注册请求"和"课程安排"数据流必须在子图中完整保留
- 验证方法:逐项对比顶层图与零层图的数据流一致性,不一致处即为错误
2) 子图内平衡
① 黑洞
- 特征:加工只有输入数据流而无输出数据流
- 问题本质:数据被"吞噬"而无法产生预期结果,如提交注册信息后无任何反馈
- 记忆口诀:"有去无回黑洞现"
②奇迹
- 特征:加工无任何输入数据流却产生输出数据流
- 问题本质:违反"无中生有"的物理规律,如凭空生成课程安排数据
- 典型案例:无牛奶原料却产出奶制品的造假工厂
③灰洞
- 特征:输入输出流存在但缺乏合理转换逻辑
- 判断标准:输出数据不应由输入数据经加工自然产生
- 典型示例:
- 面粉加工厂产出米粉(原料应为大米)
- 化学合成冒充的乳制品
- 检查技巧:需仔细推敲数据转换的合理性,是最隐蔽的错误类型
- 记忆要点:"输入输出要匹配,逻辑不通即灰洞"
综合应用:考试时应优先检查黑洞/奇迹等明显异常,再通过数据溯源排查灰洞问题,避免被复杂线条干扰
解题技巧1
1) 详细分析试题说明
- 题干与图的对应关系: 题干描述与数据流图应保持高度一致性,因为数据流图本身就是将文字需求转化为图形化表达的工具。通过匹配题干描述和图形元素可以获取有价值的解题线索。
- 解题方法: 考试时给出的题干说明通常很详实,而数据流图往往被挖空,需要将两者联系起来进行分析。题干对系统的描述和图对系统的描述应该一一对应。
2)数据平衡原则解题
- 父图与子图平衡: 需要将顶层图和零层图的数据流进行一一匹配。例如顶层图有3条数据流(2入1出),而零层图只有2条入的数据流,就能发现零层图缺失了操作结果这条数据流。
- 完整性检查: 对于既没有输入也没有输出的加工点(如示例中的P点),必定存在问题。因为一个功能既不需要输入也不产生输出,就完全没有实际作用,违反了数据流图的基本原则。
- 匹配方法: 具体操作时可以逐条对比数据流,如示例中对比"权限不足信息"、"非法用户信息"、"格式错误信息"等都存在,但"处理后的结果"缺失,就能快速定位问题。
3) 中间件管理功能
- 用户管理: 维护用户信息(用户名、密码),存储在用户表中,与"用户管理"加工相关联。
- 操作管理: 维护数据实体的标准操作及其所属的后端数据库信息,存储在操作表中,与"操作管理"加工相关联。
- 权限管理: 维护用户可执行的操作信息,存储在权限表中,与"权限管理"加工相关联。
- 数据存储关系: 中间件中包含三个核心数据存储:用户表、操作表和权限表,分别对应三个管理功能模块。
解题技巧2
- 考察维度:补充实体、补充存储、补充数据流、补充加工名四种主要题型
- 解题核心:通过分析题目元素缺失类型,针对性运用不同解题策略
1) 补充实体
- 识别特征:
- 人物角色:客户、管理员、主管、经理、老师、学生等
- 外部系统:银行系统、工资系统、后台数据库(中间件开发场景)
- 解题步骤:
- 列出题干中所有可能成为实体的候选项
- 特别注意系统边界外的交互对象
- 对照三类实体特征进行匹配验证
- 记忆技巧:实体即系统外部的"对话者",包括自然人角色和第三方系统
2) 补充存储
- 关键词特征:带有"文件" "表" "库" "清单" "档案"等后缀的名词
- 关联验证:
- 必须与某个加工存在数据输入输出关系
- 例如权限表必然与权限管理加工相关联
- 解题流程:
- 扫描题干定位存储关键词
- 确认对应加工的输入输出流
- 验证存储位置在数据流图中的合理性
3)补充数据流(最难)
① 数据平衡原则
- 层级对比:
- 顶层图与0层图的数据流必须完全对应
- 检查是否存在缺失或多余的数据流
- 加工校验:
- 每个加工需同时具备输入流和输出流
- 异常情况:只有入/只有出、输入输出不匹配
- 典型错误:加工无法根据输入产生应有的输出数据
② 按题目说明与图进行匹配
- 逐句对应法:
- 题干每句话都应在图中有具体体现
- 重点标注实体和数据流的关键词
- 错误定位技巧:
- 先建立题干元素与图形元素的映射表
- 通过排除法锁定缺失或错误部分
4) 补充加工名
- 命名规则:
- 主流形式:"动词+名词"结构(生成报告、批改作业等)
- 例外情况:物流跟踪、用户管理等固化术语
- 推导方法:
- 标识加工涉及的所有数据流
- 在相关句子中提取动作性短语
- 验证短语与数据处理的匹配度
- 功能本质:加工即数据处理的功能模块,名称应体现核心处理动作