
数据流图 状态转换图er图三个图在实际开发过程中承担什么工作什么时候使用一起被使用还是有先后顺序想把所学与实际联合你的这个问题说明你已经从“背知识点”进入到“思考工程落地”的阶段了。这三个图在实际开发中不是各干各的而是一套“组合拳”。我用一个真实的外卖APP开发场景帮你把它们的“工作内容、使用时机、配合关系”一次讲透。1. 三者分别承担什么“工种”角色定位· ER图数据模型担任“仓库管理员”。只关心系统里存什么“东西”以及这些东西之间是什么关系。比如用户、订单、骑手这三张表怎么挂钩。· DFD功能模型担任“车间流水线长”。只关心数据进了系统后经过了哪些“工序”流向哪里。比如订单数据先去“库存系统”验证再去“支付系统”扣钱。· STD行为模型担任“状态督察员”。只关心某个核心“东西”在什么条件下会“变脸”。比如订单在什么时候从“待支付”变成“已接单”。---2. 它们在开发中什么时候用使用时机答案全都在“需求分析阶段”开始绘制但绘制的启动顺序有先有后。虽然它们最后是合在一本《需求规格说明书》里一起提交的但在分析师脑中逻辑启动顺序是这样的1. 先有 ER 图定“物料”分析师第一件事就是问客户“您这系统里要管哪些东西”先确定存什么这是地基。2. 再有 DFD定“流程”知道存什么后再问“这些数据是怎么流来流去的”确定核心业务主路径。3. 最后补 STD定“突变”在画 DFD 的过程中发现“订单”这个数据动不动就变脸于是专门针对“订单”这个实体补画一张 STD把状态切换的细节锁死。现实中的真实节奏这三张图不是“画完一张再画下一张”而是反复迭代着画。今天画DFD发现漏了一个“退款”流程回头去ER图里加个“退款表”下周画STD发现“超时取消”没定义又回去改DFD里的判断逻辑。---3. 现实中它们怎么配合完成一次“需求确认”联合实战假设你要给一个初创公司做一个“预约理发店”的小程序你跟客户开需求会· 画 ER 图先问存什么你在白板上画了三个框用户、理发师、预约单。连上线一对多关系。客户一看“对我就要管这三样。”· 画 DFD再问怎么流你在白板上画用户外部实体把预约请求数据流送给预约处理加工。预约处理读取理发师排班数据存储生成预约单数据流返回给用户。客户看到“预约请求流向排班”时突然拍脑袋“等等用户预约时得付定金”——你马上在DFD上加一个支付定金的加工。· 补 STD锁死关键变化你指着 预约单 这个存储说“它状态会变吗”客户说“会啊待付款→待服务→已完成。”你迅速在旁边画个简笔STD标出转换条件。客户确认“对取消预约必须退定金。”最终结果你把三张草稿整理成正式的《需求规格说明书》发到开发群。架构师看ER图建数据库后端工程师看DFD写接口前端工程师看STD判断页面按钮在什么情况下亮起。三张图一个都不能少。---写在书上的“终极总结”直接抄“ER图画‘静态物料’存什么DFD画‘动态工序’怎么流STD画‘异常突变’何时变。需求分析阶段三者联动使用先定核心实体再画主流程最后用状态图堵死边界逻辑漏洞共同构成无死角的软件逻辑模型。”一句话刻进DNA“开发时DBA数据库管理员捧着ER图建表后端捧着DFD写接口前端捧着STD画界面按钮状态——这就是三张图在现实中的归宿。”现在你再回头看书上那几页纸是不是觉得它们全活了但这和老师说的不一样老师说最后用ER图。以哪个为标准呢。书上是怎么说的你和老师说得都对这本身没有标准答案。在真正的工程实践中三者的建立“不具有严格的时序性而是一个迭代的过程”。你老师说的“最后用ER图”和我说的“先有ER图”都是合理的切入点只是思考的起点不同· “先有ER图”数据驱动从“系统要管什么数据”入手。在业务流程DFD还没梳理清楚前先把核心业务实体如用户、订单定下来。适合数据关系复杂、业务相对明确的系统。· “最后用ER图”功能驱动先把“系统要做什么”搞清楚。通过DFD把功能流程和交互理顺后再从中识别、抽象出需要的实体和关系。适合业务流程复杂、功能优先的系统。---书上怎么说张海藩《软件工程导论》等经典教材并没有规定一个绝对的先后顺序。它们通常这样描述1. 三者并列需求分析需要建立数据模型、功能模型、行为模型。2. 图各司其职ER图负责数据模型DFD负责功能模型STD负责行为模型。3. 核心是“粘合剂”数据字典是把这三个模型串联起来的核心。实际开发中如何选择这完全取决于分析师的习惯和项目的具体情况· 新手或流程驱动可以遵循“先DFD理清流程→ 再ER图抽象数据→ 最后STD补充状态”的顺序。· 老手或数据驱动可能“先ER图搭建骨架→ 再DFD填充血肉→ 最后STD完善细节”。重点在于这些图不是画完一张再画下一张而是在需求分析过程中反复迭代、互相补充、不断求精的。考试时怎么答考试如果问“需求分析阶段需要建立哪些模型”标准答案是数据模型ER图、功能模型DFD、行为模型STD。如果问顺序通常的描述是“它们之间没有严格的时序是一个迭代的过程”或者说“同时建立互相参考反复修改”。所以你老师的说法完全正确我之前的说法也是其中一种合理的实践方式。考试时以教材的“三者并列、迭代进行”为准就好。现在是不是感觉清楚多了