需求分析考试归类复习:数据流图、数据字典与软件过程考点精讲 简介一份面向软件工程课程《需求分析》的知识点归类PDF适合正在复习需求工程、软件过程或准备期末考试的学生使用。内容以问答形式梳理了业务需求、用户需求、系统需求的关系软件过程基本过程需求工程六个阶段B/S体系结构用户界面设计三部分需求规格说明文档作者与表现手段数据库结构设计与行为设计等高频考点也覆盖了结构化分析方法、数据流图、数据字典等常见试题。资源为单个PDF文件大小222KB轻量易携带方便手机或电脑随时翻阅已有213人学习属于考前归类笔记类资料。文档针对简答题给出条理清晰的答案要点例如软件过程的获取、供应、开发、运行、维护过程要点以及需求规约作为用户与开发者之间协议的作用适合考前快速回顾、查漏补缺和对照记忆。1. 需求分析考试题归类一份把高频考点按题型拆好的复习地图需求分析这门课考试挂不挂往往不是背没背的问题而是不知道一句话里踩了几个得分点。比如“业务需求、用户需求、系统需求”这道题很多人背得出定义却漏掉“分别在项目视图与范围文档、用例文档、系统需求规格中说明”这类出处采分点。这份《需求分析考试题归类.pdf》就是把需求分析考试里反复出现的简答题和综合应用题按考点归类好的复习资源三类需求的边界、五大软件过程、六阶段需求工程、结构化分析的数据流图与数据字典、判定表与判定树再到银行储蓄系统、图书管理系统两道完整建模题基本覆盖了软件工程课程中需求分析部分九成以上的考点。期末冲刺、考研复试或者刚入行想补需求分析知识体系的从业者都能直接拿它当考前目录用。2. 需求分类与软件过程先把最容易丢分的基础概念钉死2.1 业务需求、用户需求、系统需求三类需求的推导链与文档出处这道题几乎是需求分析考试的必考题但很多人只背了定义没背“出处”。定义和出处各占一半分漏一个就丢一半。把材料里的三类需求放在一条链上理解会更好记业务需求回答“为什么要做这个系统”用户需求回答“用户拿它完成什么任务”系统需求回答“开发人员要实现哪些功能来支撑上面的任务”。业务需求反映的是组织机构或客户对系统、产品高层次的目标要求写在项目视图与范围文档里。用户需求描述用户使用产品必须完成的任务写在使用实例文档也就是用例文档或方案脚本说明里。系统需求定义开发人员必须实现的软件功能用户能完成他们的任务最终业务需求才落地。我的习惯是写一个推导链业务目标 → 用户任务 → 系统功能答题时先写关系再写出处比单纯罗列定义稳得多。2.2 软件五大基本过程获取、供应、开发、运行、维护的记忆锚点软件过程也叫软件生存周期过程或软件过程组指软件生存周期中的一系列相关过程。概念题经常考“过程、活动、任务”三个层次的关系过程是活动的集合活动是任务的集合任务把输入加工成输出。活动执行方式可以是顺序的、迭代的、并行的、嵌套的也可以是有条件引发的——这几个词是填空题的常客。软件过程分三类基本过程、支持过程、组织过程。基本过程最常考包括获取、供应、开发、运行、维护五个。单个过程的内容容易背串我记这套锚点获取过程是甲方项目委托方干的活供应过程是乙方项目承包方干的活这两者其实是同一笔交易的买卖双方视角。获取过程从确定需求、招标、签订合同到对供应方监督、验收完成供应过程从理解需求、投标、签订合同到计划、实施、控制、评审评价、交付。谈判桌两边的动作一一对应。开发过程是核心的干活阶段过程实施准备之后依次做系统需求分析、系统结构设计、软件需求分析、软件体系结构设计、软件详细设计、软件编码和测试、软件集成、软件合格测试、系统集成、系统合格测试、软件安装、验收支持。运行过程是用户接手后的阶段包括运行准备、运行测试、产品转移、运行、运行支持、运行评价。维护过程是交付后的兜底阶段过程实施准备、问题分析和修改设计、修改实施、对维护的评审和验收、软件移植、软件退役。这张表建议考前默写一遍主体和动作对不上最容易丢分。过程名称主体关键动作高频采分点获取过程项目委托方确定需求、招标、签订合同、监督、验收供应过程项目承包方理解需求、投标、签订合同、计划、实施、控制、评审、交付开发过程软件开发人员需求分析、设计、编码测试、集成、安装、验收支持运行过程用户运行准备、运行测试、产品转移、运行支持、运行评价维护过程维护人员问题分析、修改实施、评审验收、软件移植、软件退役2.3 需求工程六阶段需求获取与需求规约的分工边界软件需求工程细分为六个阶段需求获取、需求分析与协商、系统建模材料里强调“系统建模”四字重复出现说明这是个必会概念、需求规约、需求验证、需求管理。简答常考其中两个阶段的目的和任务尤其是需求获取和需求规约因为这两个阶段的工作产品最容易混淆。需求获取是系统分析人员通过用户交流、观察现有系统、分析任务来确定系统范围的阶段。它的产出是范围限制性描述、相关人员及特征列表、技术环境描述、功能列表、领域限制、应用场景和原型。注意最后一条“为更好地定义需求而开发的任意原型”——考试写到原型踩点就齐了。需求规约是分析任务的最终产物要建立完整的信息描述、功能和行为描述、性能需求和设计约束说明、合适的验收标准。一句关键的话需求规约是用户和开发者之间的一个协议在后续工程阶段发挥重要作用。区分这两者我的办法是需求获取是“收集素材”需求规约是“签协议”。素材没收集齐后面的分析无从谈起规约写不好后面测试验收都没有依据。考题如果问“工作产品是什么”获取阶段的产品叫需求分析基础规约阶段的产品才叫需求规格说明。2.4 体系结构、B/S 与界面设计高频简答题的踩点组合软件体系结构这道题概念不难但答案要求完整。材料里的定义软件体系结构是具有一定形式的结构化元素即构件的集合包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工数据构件是被加工的信息连接构件把体系结构的不同部分组合连接起来。三个构件各是什么角色这是第一个踩点。B/S 体系结构是另一个常见考点浏览器客户机—Web 服务器—数据库服务器。实现方式的三个特点要答全客户机只需装浏览器不需要开发前端应用程序中间层 Web 应用服务器承担主要的数据计算和应用所以对中间层服务器的要求较高后台数据库服务器负责数据管理。答题时把“C/S 要装客户端B/S 只用浏览器”这个对比写一句能体现你真的理解它而不只是背了结构图。用户界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。结构设计也叫概念设计是界面设计的骨架基于用户研究和任务分析制定整体架构常用纸质的低保真原型Paper Prototype做用户测试这里“目录体系的逻辑分类和语词定义”是用户易理解的重要前提。交互设计的目标是让产品能简单使用人的因素是核心。视觉设计则参照目标群体的心理模型和任务达成包括色彩、字体、页面。判断题喜欢考“低保真原型的作用”和“结构设计是不是画页面”——结构设计解决的是信息架构问题不是视觉美化问题。3. 结构化分析三件套DFD、数据字典、加工逻辑的实战套路3.1 DFD 四要素与命名规范画图前先分清这四种符号数据流图简称 DFD是结构化分析SA方法中用于表示系统逻辑模型的工具一种功能模型。它用图形方式描绘数据在系统中流动和处理的过程反映系统必须完成的逻辑功能。考试要求默写四种基本符号的含义这个分必须拿满。符号名称含义→ 箭头数据流数据在系统中流动○ 圆或椭圆加工对数据执行的处理 双杠数据存储数据停留的地方□ 方框源点/终点数据的外部来源或去向命名是画 DFD 最容易出问题的地方。材料里专门列出注意事项数据流、数据存储、加工都要命名且命名要合适画数据流而不是控制流一般不画物质流每个加工至少有一个输入数据流和一个输出数据流说明数据从哪里来、加工结果到哪里去父图与子图要平衡局部数据存储要注意还要提高图的可理解性。一个关键点加工必须“有进有出”只有输入没有输出说明数据被吞了只有输出没有输入说明数据凭空产生。这两个检查规则在考试和仿真实验里都适用后面避坑章我会展开。3.2 数据字典的四种条目数据流、数据项、数据存储、基本加工数据字典简称 DD用来定义数据流图中各个成分的具体含义是一种准确、无二义性的说明方式。它的作用是给系统的分析、设计、维护提供一致的元素定义让分析人员能查到数据流图中名字的详细定义并且和数据流图一起构成系统的逻辑模型成为需求规格说明书的主要组成部分。考试要求掌握的条目有四种数据流、数据项、数据存储、基本加工。每种条目都有自己的标准字段。数据流条目要写名称、别名、简述、来源、去向、数据流量、组成数据存储条目要写名称、别名、简述、组成、组织方式、查询要求加工条目要写加工名、编号、激发条件、优先级、输入、输出、加工逻辑。这四种条目里数据项最容易漏。很多复习资料只讲数据流、数据存储、加工三类但材料明确给出四个条目考试填空就靠这个拉开差距。数据项描述单个字段的性质比如类型、取值范围、长度、默认值它是数据流组成的最小单位。答题套路是先写“数据字典简称 DD用于定义数据流图成分的具体含义”再加“四种条目”最后补一句“和数据流图共同构成逻辑模型”这句话本身就是采分点。3.3 加工逻辑三工具结构化语言、判定表、判定树怎么选描述加工逻辑的工具教材里给了三种结构化语言、判定表、判定树。选型的判断标准就一条条件分支多不多。单个条件、简单分支用结构化语言多个条件组合、每个组合对应不同动作判定表和判定树更清晰。结构化语言不是编程语言是介于自然语言和程序语言之间的半形式化描述常见的是 If、Else、EndIf 和 REPEAT、Until 结构。材料里的职工分岗政策用结构化语言描述出来是下面这个样子我把它还原成缩进伪码REPEAT If 年龄 20 岁 Then If 文化程度 初中 Then 动作: 脱产学习 Else If 文化程度 高中 Then 动作: 电工 EndIf Else If 年龄在 20 到 40 岁之间 Then If 文化程度 初中 Then If 性别 男 Then 动作: 钳工 Else 动作: 车工 Else If 文化程度 大学 Then 动作: 技术员 EndIf Else If 年龄 40 岁 Then If 文化程度 初中 Then 动作: 材料员 Else If 文化程度 大学 Then 动作: 技术员 EndIf EndIf Until 没有剩余未分配员工这个结构里的 REPEAT…Until 表示对所有职工逐个做判断。考试时用结构化语言答题注意两个规范动作词统一不要一会儿“安排”一会儿“分配”每个 If 都有对应的 EndIf嵌套层次用缩进对齐阅卷老师一眼就能看到条件的覆盖范围。判定表适合条件组合多的场景。判定树则适合表达层级分类第一层是主要条件第二层是次要条件叶子节点是动作。三者都描述同一段政策但考场时间紧我的建议是先用判定树理清层次再根据题目要求选一种写进答案。材料第 12 题要求三选一或二我会在下一章给出完整判定表。3.4 IDEF0 与 SA 方法优缺点和适用边界的固定答法IDEF0 是美国空军 1981 年针对集成化计算机辅助制造工程项目中用于复杂系统分析和设计的方法基于结构化分析与设计技术提出。IDEF0 方法的两个特点要记住采用方框和箭头描述系统活动、数据流以及活动所受的约束和实现机制采用严格的自顶向下、逐层分解方式建立系统功能模型。这里的“约束”和“实现机制”是答题关键词漏掉就少一个点。SA 方法的优缺点也是高频简答。优点方面公认、有成效、技术成熟、使用广泛比较适合数据处理类型软件的需求分析用图形半形式化工具表达需求简明易读为后一阶段的设计、测试、评价提供有利条件。缺点方面有四条要完整第一主要用于数据处理问题DFD 只体现系统“做什么”的功能是静态模型没反映处理顺序即控制流程不适合描述实时控制系统第二在分析与描述“数据要求”方面有局限第三DFD 不适合描述人机界面系统的要求第四为了更精确地描述需求、提高可靠性和安全性可以结合形式化方法。4. 综合题实战银行储蓄系统、图书管理系统与职工分岗的完整建模4.1 银行储蓄系统从存/取款单到数据字典一次拿全材料第 10 题是经典的建模题银行计算机储蓄系统把储户填写的存款单或取款单输入系统存款时记录存款人姓名、住址、存款类型、存款日期、利率打印存款单给储户取款时系统计算清单给储户。我的建模步骤固定为四步先找外部实体再找数据流然后找加工最后找数据存储。外部实体只有一个储户它是所有数据流的源头和终点。数据流有三条存款单、取款单、清单。加工有三个分类检查、统计、记录。数据存储有一个账单。先把这四类元素列出来再逐个写数据字典就不会乱。数据流条目三条要按统一字段写。存款单的组成是姓名住址存款类型存款日期利率取款单的组成是姓名住址取款类型取款日期利率清单的组成是姓名住址取款类型取款日期利率余额。注意清单比取款单多一个“余额”因为取款后要给储户一个回执回执里必须体现剩余金额这个细节是数据字典组成字段的采分点。数据存储条目写账单存放储户信息及其账目组成是姓名住址余额存款类型最后修改日期利率查询要求是能立即查询。加工条目要写三条。分类检查加工接收存/取款单加工逻辑是判断单据类型后分流统计加工根据账单检查储户是否存在、取款数是否小于余额满足条件则余额减取款数并输出清单和现金不满足则输出错误清单记录加工根据账单检查储户是否存在不存在则建立储户余额加存款数并输出存款单。材料里有一个笔误需要留意分类检查的加工逻辑写的是“存款单输出到统计”但按题意存款单应输出到记录、取款单输出到统计。我在笔记里把这条标记为“此处按题意修正”答题时不要照抄逻辑错误。4.2 图书管理系统分层 DFD 的自顶向下分解材料第 11 题的图书管理系统包含借书、还书、查询三个功能要求画出分层 DFD。分层 DFD 的标准画法是先画顶层图再画 0 层图最后按需要画 1 层图。顶层图只有一个加工节点“图书管理系统”一个外部实体“读者”数据流是读者提交的借书证、图书信息系统返回的借阅记录、罚款单、统计表。0 层图把系统拆成三个加工借书处理、还书处理、查询处理数据存储有两个借书文件、库存目录文件。加工编号加工名输入数据流输出数据流触发条件1借书处理借书证、图书信息借阅记录、拒借通知读者提交借书证2还书处理借书证、图书信息罚款单、归还成功通知读者提交归还图书3查询处理查询请求读者情况、图书借阅情况、库存情况读者或管理员发起查询1 层图继续分解借书处理。借书处理内部有 1.1 检查借书证有效性、1.2 检查借书数量、1.3 办理借书三个子加工。1.1 判断借书证是否有效第一次借书要建立档案否则查借书文件。1.2 查阅借书文件检查已借数量超过 10 本拒借。1.3 办理借书包含检查库存、修改库存目录、登入借书文件两步这一步引用了两个数据存储最终返回借阅记录。还书处理在 1 层分解为 2.1 读取借书记录、2.2 检查借阅日期、2.3 罚款或正常归还。查询处理分解为读者查询、图书/库存查询、统计表打印。分层 DFD 的难点在父图与子图平衡0 层图借书处理的输入输出数据流必须和 1 层图的边界数据流完全一致。画完 1 层图后逐个核对每个数据流的名称是否在 0 层出现这是仿真实验自动判分最常检查的一项。4.3 职工分岗判定表把文字政策转成条件取值表材料第 12 题的职工分岗政策是年龄等于或低于 20 岁的初中文化脱产学习高中文化当电工20 岁到 40 岁之间的中学初中文化男性当钳工、女性当车工大学文化都当技术员40 岁以上的初中文化当材料员大学文化当技术员。先把题目里的排版错误纠正一下“伙岁以下”是 20 岁以下“中学中学文化程度”是中学文化程度考试时遇到这类明显错误按合理语义答题并在答案里标注。条件取值表的建立分三步。第一步提取条件年龄、文化程度、性别。第二步列出取值范围年龄取三值≤20 记为 C20~40 记为 D≥40 记为 E文化程度取三值初中记为 G高中记为 H大学记为 I性别取两值男 M、女 F。第三步梳理条件组合与动作的映射判定表可以用六列规则表达条件/规则123456年龄CCDDDE文化程度初中高中初中初中大学初中性别——男女——动作脱产学习电工钳工车工技术员材料员这个表格还可以加一列 E大学同样为技术员和规则 5 合并处理。注意一个逻辑漏洞政策没有定义“20~40 岁高中文化”和“40 岁以上高中文化”的去向。答题时如果时间允许补一句话“题干未覆盖高中文化程度在两个年龄段的分岗规则实际建模时需补充该分支”这能体现你的分析能力也是阅卷的加分项。职工分岗这道题还同时适合用判定树作答第一层分支是年龄三档第二层在每一档下分文化程度第三层只在“20~40 岁且初中”分支下分性别。树的层次和判定表的规则完全等价喜欢哪种工具就用哪种不要同时写两份浪费考场时间。5. 避坑与常见问题考前最容易翻车的五个地方5.1 DFD 画成了程序流程图把数据流和控制流搞混现象画出来的 DFD 里出现“第一步做什么、第二步做什么”的顺序箭头甚至带上了循环结构。原因DFD 的功能模型本质是静态的反映的是数据在加工之间的流动关系不是执行顺序。SA 方法的缺点里明确写了 DFD“没有反映处理的顺序即控制流程”这是教材原话。解决画完检查每条箭头上标的应该是数据存款单、取款单、清单而不是“下一步”“然后”这类控制语义。如果题目是实时控制系统DFD 本来就不适用答题时直接点出这个局限反而是采分点。5.2 父图与子图不平衡顶层和 0 层对不上现象分层 DFD 画完之后0 层图比顶层图多了一个数据流或者少了一个数据流仿真实验提交后判分报“数据流不一致”。原因画子图时只盯着内部加工画完没有回溯父图核对边界数据流。解决每画完一层先把父图里该加工的所有输入输出数据流抄到草稿纸上再一一和子图的边界数据流对照。局部数据存储是唯一的例外只被一个加工使用的数据存储画在子图里就行父图不用出现。5.3 数据字典只写字段不写加工逻辑现象数据字典里数据流条目和数据存储条目写得很全加工条目只有一句“处理数据”或者干脆空着。原因把数据字典理解成了数据库字段表忽略了它还定义了系统的行为。解决每个加工条目都必须包含激发条件、优先级、输入、输出、加工逻辑五个要素。加工逻辑用 If/Else 结构化语言写比如“If 取款数 余额 Then 余额 余额 - 取款数 Else 输出错误清单”这是数据字典里唯一体现行为的部分。5.4 需求获取和需求规约的工作产品分不清现象简答题问“需求获取的工作产品”答成需求规格说明书反过来又问需求规约的任务又写“和用户交流”。原因两个阶段都带“需求”两个字但一个是分析的前半段一个是分析任务的最终产物。解决记住两个关键词获取是“基础”规约是“协议”。需求获取的产出包括范围描述、人员特征列表、技术环境描述、功能列表、应用场景和原型为后期设计提供需求分析报告需求规约是分析任务的最终产物包含信息描述、功能行为描述、性能需求和验收标准是用户和开发者之间的协议。答题时先写这句关系再展开基本不会跑偏。5.5 数据库结构设计和行为设计只答了结构现象问“数据库设计的内容”只写概念设计、逻辑设计、物理设计把行为设计漏了。原因教材重心在结构设计上思维惯性就把“数据库设计”和“表结构设计”划了等号。解决结构设计是静态的、稳定的数据库模式一经形成不容易改变行为设计是动态的确定用户行为和动作通过应用程序实现本质就是应用程序设计。常用方法也有四个直观设计法、规范设计法、计算机辅助设计法、自动化设计法少写一个都扣分。6. 临考两小时把这份归类 PDF 当检查清单用的具体做法拿到这份 PDF 之后最有效的用法不是从头到尾通读一遍而是把它当成一个“考点自检目录”。我自己的做法是第一遍快速浏览每章的归类标题看到“需求分类”“软件过程”“DFD”“数据字典”这些名词在脑子里先默背一遍对应的踩点词卡住的地方用笔标记出来这通常就是你的薄弱点。第二遍只看标记过的位置完整默写一遍相关定义。这份资源本身就是按“简答题踩点综合题建模步骤”组织的所以它可以同时当地图和错题本用。考前两小时的检查有四个固定动作。第一个动作默写三类需求的定义与文档出处重点核对“项目视图与范围文档、用例文档、系统需求规格”三个出处有没有写全。第二个动作默画五大软件过程的表格主体和动作一一对应比如获取过程对应委托方供应过程对应承包方这两个最容易互相串。第三个动作把数据字典的四种条目写一遍数据流、数据项、数据存储、基本加工一个都不能少。第四个动作找一道综合题练手按“外部实体→数据流→加工→数据存储”四步走画完 DFD 后核对四个事项加工有没有有进有出、数据流标注的是数据不是控制、父图子图平衡、数据字典加工逻辑完整。遇到头歌这类平台上的需求分析仿真实验卡壳时我一般也会把这套方法当对照答案用。实验判分报“数据流不一致”就检查父图子图平衡报“加工缺少输入”就检查每个加工是否至少有一个输入和一个输出。这套排查逻辑和考试完全通用。几个小技巧最后再提一句简答题如果能画出对应的小图或表格一定要画阅卷看到判定表和结构化语言会比纯文字更容易给全分数据流名称和加工名称用名词短语不要用动词开头比如“存款单”而不是“填写存款单”综合题先写数据字典再画 DFD因为字典里的组成字段会提醒你哪些数据流必须出现在图里。这份 PDF 里的答案并不是每一句都必须原样背下来它更重要的作用是告诉你“老师出题时脑子里那根线是什么”。从那以后我每次复习需求分析都强制自己把 PDF 里每一章的标题当成问题先自问一遍答不上来才翻正文答上来就直接跳过。这个方法帮我省掉了大量重复背诵时间。希望帮到你。本文还有配套的精品资源点击获取