news 2026/5/15 3:02:25

软考软件设计师 · 每日备考 2026-05-07

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
软考软件设计师 · 每日备考 2026-05-07

📚 软考软件设计师 · 每日备考 2026-05-07

📅 距离考试还有16天(2026年5月23日)
🎯 今日主题:下午题五大题型专项突破 · 解题模板与实战技巧


一、下午题整体结构与得分策略

题号题型分值难度推荐做题顺序
第一题数据流图(DFD)15分⭐⭐✅ 优先做
第二题数据库设计15分⭐⭐⭐✅ 第二做
第三题UML建模15分⭐⭐⭐✅ 第三做
第四题算法设计与实现15分⭐⭐⭐⭐✅ 第四做
第五题设计模式15分(二选一)⭐⭐⭐选熟悉的做

⚡ 考场策略:先易后难,每道题至少拿到基础分。数据流图和数据库设计是"必拿分"题型,务必保证正确率。


二、题型一:数据流图(DFD)—— 15分必拿题

📌 四大基本元素

元素符号说明
外部实体长方形系统外部的人/机构/系统(用户、管理员、银行系统等)
加工(处理)圆圈/圆角矩形数据处理逻辑
数据存储双平行线/开口矩形数据暂存地(XX表、XX文件、XX库)
数据流带箭头线段数据的流向

🔑 解题核心原则:数据平衡原则

原则1:顶层图与0层图平衡

  • 顶层图的输入/输出数据流 → 0层图必须有对应体现
  • 顶层图有5条输入3条输出 → 0层图的输入输出也必须是5+3

原则2:父图与子图平衡

  • 子图的输入输出 = 父图中对应加工的输入输出
  • 子图多出来的数据流 → 说明父图缺少数据流

原则3:加工自身平衡

  • ❌ 只有入没有出 = 数据黑洞
  • ❌ 只有出没有入 = 数据奇迹(凭空产生)
  • ✅ 有入有出,且输出可由输入推导

📝 四大常考题型与解法

题型1:补充外部实体

  • 方法:圈出题干中"用户"“系统”“客户”"管理员"等角色词
  • 人物角色、组织机构、外部系统均可为外部实体
  • ⚠️ 当开发"中间件"时,后台数据库往往是外部实体

题型2:补充数据存储

  • 方法:找题干中"XX文件"“XX表”“XX库”“XX清单”"XX档案"等词
  • 找到后看哪个加工需要读写这些数据,补充连线

题型3:补充数据流(⭐最常考)

步骤1:对比顶层图和0层图数据流,圈出不匹配的地方 步骤2:按题目说明逐句匹配,标注实体和数据流 步骤3:检查加工与存储的交互(读→出线,写→入线)
  • 答题模板:"在加工Y与存储Z之间添加数据流'XX信息'"

题型4:补充加工名

  • 方法:找"动词 + 名词"结构
  • 例:生成报告、发出通知、记录分数、用户管理

🚫 三大铁律(绝对不能违反)

铁律说明
数据存储之间不直连数据存储A → 数据存储B ❌(必须经过加工)
外部实体间不直连外部实体A → 外部实体B ❌(必须经过加工)
加工必须有入有出只有入或只有出都不行 ✅

🎯 真题模拟

题目:某图书馆管理系统,读者可以通过系统借阅图书。管理员维护图书信息和学生信息。学生借书需先出示借书证,系统验证后可借阅。还书时更新借阅记录。

问题:补充缺失的外部实体和数据流。

参考答案

  • 外部实体:读者(发起借书还书)、管理员(维护信息)
  • 缺失数据流:借书证信息(读者→验证加工)、借阅结果(验证加工→读者)、图书信息(图书存储→借书加工)、借阅记录(还书加工→借阅记录存储)

三、题型二:数据库设计—— 15分必拿题

📌 五步解题流程

第一步:从题干中提取所有实体(名词→实体) 第二步:确定每个实体的属性(找描述中的定语和量词) 第三步:确定实体间联系(1:1 / 1:N / M:N) 第四步:画出ER图(矩形=实体、椭圆=属性、菱形=联系) 第五步:转换关系模式(实体→表、联系→外键或独立表)

🔑 ER图→关系模式转换规则

联系类型转换方式示例
1:1任一方加入对方主键作为外键,或将两个关系合并员工(工号,姓名,部门号) + 部门(部门号,部门名)
1:NN方加入1方主键作为外键学生(学号,姓名,班级号) + 班级(班级号,班级名)
M:N独立建关系表,包含两个实体的主键作为外键选课(学号,课程号,成绩)

📝 范式判断速查

范式要求消除问题判断方法
1NF属性不可再分消除重复组每个字段都是原子的
2NF满足1NF,非主属性完全依赖于候选键消除部分依赖复合主键时,非主属性是否依赖整个键
3NF满足2NF,非主属性直接依赖于候选键消除传递依赖A→B→C(A决定B,B决定C)则不满足3NF
BCNF所有决定因素都是候选键消除主属性对候选键的部分/传递依赖更严格的3NF

🎯 真题模拟

题目:某医院系统有医生(工号,姓名,科室号,职称)、科室(科室号,科室名,科室电话)、患者(病历号,姓名,性别,联系电话)。一个医生属于一个科室,一个科室有多名医生。一个患者可以看多个医生,一个医生可以看多个患者。

问题1:画出ER图
问题2:转换为关系模式,标注主键和外键

参考答案

医生(工号, 姓名, 科室号, 职称) PK=工号, FK=科室号 科室(科室号, 科室名, 科室电话) PK=科室号 患者(病历号, 姓名, 性别, 联系电话) PK=病历号 就诊(工号, 病历号, 诊断日期, 诊断结论) PK=(工号,病历号,诊断日期), FK=工号, FK=病历号
  • 医生与科室:1:N → 医生表中加入科室号外键
  • 医生与患者:M:N → 独立建"就诊"表

四、题型三:UML建模—— 15分

📌 类图六大关系速记(从弱到强)

关系符号含义软考频率
依赖虚线+箭头-->临时使用⭐⭐
关联实线+箭头长期引用⭐⭐⭐
聚合实线+空心菱形◇—整体-部分(弱拥有)⭐⭐⭐
组合实线+实心菱形◆—整体-部分(强拥有,同生共死)⭐⭐⭐⭐
泛化实线+空心三角继承⭐⭐⭐⭐
实现虚线+空心三角△- -实现接口⭐⭐⭐

🔑 补充类/属性/方法的解题技巧

补充属性

  • 从题干描述中找名词修饰语
  • 例:“每个学生有学号、姓名和出生日期” →+学号: String, +姓名: String, +出生日期: Date

补充方法

  • 从题干描述中找动词
  • 例:“学生可以选课和退课” →+选课(): void, +退课(): void

判断关系类型

A是B的一种 → 泛化(继承) A使用B → 依赖 A有B → 关联 A包含B但可独立 → 聚合(空心菱形) A包含B且不可独立 → 组合(实心菱形) A实现B的接口 → 实现

📝 用例图与序列图要点

用例图

  • 包含:<<include>>虚线箭头(基用例→被包含用例),每次都执行
  • 扩展:<<extend>>虚线箭头(扩展用例→基用例),条件满足时执行
  • ⚠️ 方向别搞反:include是基→子,extend是子→基

序列图(时序图)

  • 从上到下表示时间顺序
  • 生命线:对象下方的虚线
  • 激活条:对象上的窄矩形(表示正在执行)
  • 消息类型:同步消息(实线箭头)、返回消息(虚线箭头)、异步消息(实线开放箭头)

🎯 真题模拟

题目:在线购物系统中,商品(Product)有商品编号、名称、价格。订单(Order)包含多个订单项(OrderItem)。订单项关联一个商品和购买数量。当订单取消时,订单项也被删除。用户可以查看商品列表和下订单。

问题:补充类的关系和缺失的方法。

参考答案

Order ◆—— OrderItem (组合关系,订单取消订单项也删除) OrderItem —— Product (关联关系)
  • Order 缺失方法:+取消订单(): void, +生成订单(): void
  • OrderItem 属性:+数量: int
  • Product 属性:+商品编号: String, +名称: String, +价格: double

五、题型四:算法设计与实现—— 15分

📌 四大常考算法策略

策略核心思想常考题型代码特征
分治法分解→求解→合并归并排序、快速排序、二分查找递归+基准条件
动态规划最优子结构+重叠子问题0-1背包、最长公共子序列(LCS)、矩阵连乘dp数组+多重循环
回溯法DFS+剪枝N皇后、全排列、图着色、迷宫递归+撤销选择
贪心法局部最优→全局满意哈夫曼编码、活动安排、最小生成树先排序再选取

🔑 算法题答题三步法

第一步:读题→确定算法策略 - "最优解""最大/最小" → 动态规划 - "所有方案""组合" → 回溯法 - "排序""选取" → 贪心法 - "分半""递归" → 分治法 第二步:看代码→找填空规律 - 循环边界条件(i从0还是1?<还是<=?) - 递归参数传递(传什么?返回什么?) - 数组下标(从0开始!C语言!) 第三步:验证→代入简单数据 - 用n=3或n=4的小数据手动跑一遍 - 检查边界条件是否正确

📝 动态规划高频填空模板

// 0-1背包问题for(i=1;i<=n;i++){for(j=W;j>=weight[i];j--){dp[j]=max(dp[j],dp[j-weight[i]]+value[i]);// 填空1:j的起始条件(从大到小,避免重复选)// 填空2:状态转移方程(选或不选取最大)}}// 最长公共子序列(LCS)for(i=1;i<=m;i++){for(j=1;j<=n;j++){if(A[i-1]==B[j-1]){dp[i][j]=dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}}

📝 回溯法填空模板

voidbacktrack(intt){if(t>n){// 到达叶子节点输出当前解;return;}for(inti=0;i<候选数;i++){x[t]=i;if(约束条件(x,t)){// 剪枝:满足条件才继续backtrack(t+1);// 递归下一层}x[t]=0;// ⚠️ 回退!填空常考!}}

🚫 算法题常见扣分陷阱

陷阱说明正确做法
数组下标C语言从0开始循环for(i=0; i<n; i++)
边界条件<vs<=注意题目是"不超过"还是"小于"
递归终止没有基准条件必须有if(low >= high) return;
变量初始化未初始化就使用dp数组初始化为0或-∞
回退操作递归后忘记还原x[t] = 0;这是必填空

六、题型五:设计模式—— 15分(二选一)

📌 高频设计模式速查表

类别模式核心意图识别关键词
创建型单例模式保证只有一个实例“唯一”“全局”“只有一个”
创建型工厂方法子类决定创建哪个对象“创建”“生产”“不同类型”
创建型抽象工厂创建一族相关对象“多套风格”“产品族”
结构型适配器模式接口转换“兼容”“适配”“旧接口”
结构型装饰器模式动态添加功能“装饰”“增强”“额外功能”
结构型桥接模式抽象与实现分离“多维变化”“平台+实现”
结构型代理模式控制访问“代理”“远程”“延迟加载”
结构型组合模式树形结构“部分-整体”“树形”“文件夹”
行为型观察者模式一对多通知“通知”“订阅”“发布”
行为型策略模式算法封装可替换“算法切换”“不同策略”“规则”
行为型状态模式状态改变行为“状态切换”“不同状态不同行为”
行为型模板方法固定骨架延迟步骤“骨架”“钩子”“流程固定”
行为型命令模式请求封装为对象“命令”“撤销”“重做”“队列”
行为型迭代器模式顺序访问集合“遍历”“迭代”“集合”
行为型职责链模式沿链传递请求“审批”“处理链”“逐级”

🔑 设计模式识别技巧

题干出现以下关键词 → 对应模式: "创建多种对象但不想指定具体类" → 工厂方法/抽象工厂 "不修改已有代码增加新功能" → 装饰器模式 "一个对象状态改变通知其他对象" → 观察者模式 "将请求发送者和接收者解耦" → 命令模式 "系统在不同状态下行为不同" → 状态模式 "需要在运行时切换算法" → 策略模式 "需要控制对对象的访问" → 代理模式 "处理树形结构(部分-整体)" → 组合模式 "将复杂对象的构建与其表示分离" → 建造者模式

📝 设计模式答题模板

模式名称:XXX模式 模式类型:创建型/结构型/行为型 核心意图:[一句话描述] 参与者: - XXX(类名):[职责] - YYY(类名):[职责] 工作原理: 1. [步骤1] 2. [步骤2] 3. [步骤3]

七、10道选择题精练(下午题相关知识点)

第1题 · 数据流图

在数据流图中,外部实体是指( )。
A. 系统内部的数据库
B. 系统外部的数据来源或去向
C. 系统内部的加工过程
D. 系统内部的数据存储

答案:B。外部实体是系统外部的数据来源或去向,用长方形表示。

第2题 · 数据流图原则

在DFD中,以下哪种情况违反了数据平衡原则?( )
A. 父图的某个加工有3条输入,子图中对应加工也有3条输入
B. 0层图比顶层图多了一条数据流
C. 某加工有2条输入1条输出
D. 数据存储之间通过加工相连

答案:B。父图与子图必须平衡,0层图的输入输出必须与顶层图一致。

第3题 · 数据库设计

在ER图中,一个学生可以选修多门课程,一门课程可以被多个学生选修,这种联系属于( )。
A. 1:1联系
B. 1:N联系
C. M:N联系
D. 递归联系

答案:C。多对多关系需要建立独立的关系表。

第4题 · 范式

关系模式R(A, B, C),函数依赖集F={A→B, B→C},则R最高满足( )。
A. 1NF
B. 2NF
C. 3NF
D. BCNF

答案:A。候选键为A,B→C存在传递依赖(A→B→C),不满足3NF;同时只有A一个属性作为候选键,不存在部分依赖,满足2NF。注意:候选键为A(不是AB),因为A能决定所有属性。B不是候选键(B→C但B不能决定A),所以不存在部分依赖,满足2NF。但存在传递依赖A→B→C,不满足3NF。因此最高为2NF。

第5题 · UML关系

在UML类图中,聚合(Aggregation)和组合(Composition)的区别是( )。
A. 聚合用实心菱形,组合用空心菱形
B. 聚合表示弱拥有关系,部分可独立于整体存在
C. 组合表示弱拥有关系,聚合表示强拥有关系
D. 两者没有区别

答案:B。聚合=空心菱形=弱拥有=部分可独立;组合=实心菱形=强拥有=同生共死。

第6题 · UML用例

在UML用例图中,<<include>>关系表示( )。
A. 基用例在特定条件下执行被包含用例
B. 基用例每次执行时都执行被包含用例
C. 被包含用例扩展基用例
D. 两个用例互斥

答案:B。include=每次必执行,extend=条件满足才执行。

第7题 · 算法策略

以下算法中,属于贪心算法的是( )。
A. 归并排序
B. 0-1背包问题
C. 哈夫曼编码
D. N皇后问题

答案:C。哈夫曼编码是贪心算法(每次选权值最小的两个节点合并)。归并排序=分治,0-1背包=动态规划,N皇后=回溯。

第8题 · 动态规划

使用动态规划求解0-1背包问题时,核心思想是( )。
A. 每次选择当前最优物品
B. 将问题分解为重叠子问题,避免重复计算
C. 深度优先搜索所有可能方案
D. 用递归求解后合并结果

答案:B。动态规划的核心是重叠子问题+最优子结构+记忆化/递推。

第9题 · 设计模式

当需要在不修改已有对象结构的情况下,动态地给对象添加额外的职责时,应使用( )。
A. 适配器模式
B. 装饰器模式
C. 代理模式
D. 桥接模式

答案:B。装饰器模式=动态添加功能,不修改原有代码。

第10题 · 设计模式

在审批流程中,请求沿处理者链传递,直到某个处理者处理为止。这是( )模式。
A. 观察者模式
B. 策略模式
C. 职责链模式
D. 命令模式

答案:C。职责链(Chain of Responsibility)=请求沿链传递,逐级审批。


八、考前16天复习建议

📋 本周重点任务(5/7-5/13)

日期复习重点任务
5/7下午题模板熟记五大题型解题模板(今天的内容)
5/8下午题实战做2-3套真题下午题,计时练习
5/9上午题查漏复习错题本,整理易混淆概念
5/10全真模拟做1套完整真题(上午+下午),严格计时
5/11-13弱项强化针对模拟中暴露的弱项专题突破

⏰ 考试时间分配建议(下午题150分钟)

题型建议用时目标得分
数据流图25分钟12/15
数据库设计30分钟11/15
UML建模30分钟10/15
算法题35分钟8/15
设计模式30分钟10/15
检查10分钟

💡 考场终极提醒

  1. 先做会的:不要纠结难题,先把能拿的分拿到
  2. 画图要规范:DFD的箭头方向、UML的菱形实心空心别画错
  3. 写全步骤:计算题即使结果不对,步骤分也能拿
  4. C语言注意:数组下标从0开始、递归要有终止条件
  5. 时间管理:下午题150分钟,平均每题30分钟,超时立即跳下一题

📌 昨日回顾与今日速记口诀

考前16天今日口诀

数据流图三铁律:存储不直连、外部不直连、加工有出入 ER转换三规则:1:1放任方、1:N放多方、M:N独立表 UML关系弱到强:依赖关联聚组泛实 算法四策略:分治递归合、动规重叠子、回溯DFS剪、贪心先排再选 设计模式看关键词:唯一→单例、通知→观察、切换→策略、状态→状态

📝 今日内容整理自软考软件设计师官方大纲、历年真题解析及权威备考资料
📅 下次推送:2026-05-08 · 预计主题:下午题实战模拟与真题精练

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 3:00:52

Msyql——用户管理

用户表Mysql中的mysql库内有一张user表&#xff0c;里面存放的就是用户管理信息&#xff0c;包括但不限于&#xff1a;用户名、密码、是否可以插入等&#xff1a;localhost表明这个用户可以从哪里登录&#xff0c;localhost表示用户只能从本地登录Mysql上面只是显示一部分&…

作者头像 李华
网站建设 2026/5/15 2:58:13

命令行工具实现个人财务数据自动化抓取与整合

1. 项目概述&#xff1a;一个为个人财务赋能的命令行工具如果你和我一样&#xff0c;对个人财务数据的管理既感到必要又时常觉得繁琐&#xff0c;那么elvismusli/moneyclaw这个项目可能会让你眼前一亮。它不是一个功能繁杂的桌面软件&#xff0c;也不是一个需要你交出所有数据的…

作者头像 李华
网站建设 2026/5/15 2:54:59

Vue.js数据同步利器:vsync库的核心原理与工程实践

1. 项目概述&#xff1a;一个基于Vue.js的现代化同步解决方案最近在梳理前端状态管理和数据同步的实践时&#xff0c;我遇到了一个挺有意思的开源项目&#xff1a;Hardik455abc/vsync。乍一看这个标题&#xff0c;vsync很容易让人联想到计算机图形学里的“垂直同步”&#xff0…

作者头像 李华
网站建设 2026/5/15 2:54:58

基于Git日志的轻量级代码统计工具开发实践

1. 项目概述&#xff1a;一个为开发者定制的轻量级代码统计工具如果你和我一样&#xff0c;日常重度依赖 Cursor 这类 AI 驱动的代码编辑器&#xff0c;那你肯定有过这样的体验&#xff1a;看着编辑器里飞速增长的代码行数&#xff0c;心里却有点没底。我到底写了多少行代码&am…

作者头像 李华
网站建设 2026/5/15 2:54:42

tmp97vtwomx

AI优化病例报告表&#xff1a;从字段设计到逻辑校验&#xff0c;如何减少人工返工 CRF返工通常不是发生在“填表”阶段&#xff0c;而是埋在字段口径不一致、跳转逻辑冲突、版本变更未同步这些细节里。本文从技术架构角度复盘一个AI辅助CRF设计与校验服务的实现思路&#xff0…

作者头像 李华
网站建设 2026/5/15 2:52:34

基于Vue 3与腾讯云SDK构建轻量级CVM管理界面实践

1. 项目概述与核心价值 最近在折腾云服务器管理&#xff0c;发现一个挺有意思的开源项目&#xff0c;叫 tencent-cvm-ui 。这名字一看就知道&#xff0c;是针对腾讯云CVM&#xff08;Cloud Virtual Machine&#xff0c;云服务器&#xff09;的一个Web管理界面。我作为一个经…

作者头像 李华