软考中级-软件设计师 答题解题思路
写在前面
本人于24年11月参加并通过软考中级-软件设计师,在备考过程中,针对大题进行了解题思路的整理,现在将其分享出来。主要是最近想申请一个创作者头衔,需要一定数量的原创文章:-)。注:本人非计算机方向,若存在笔误,还请指教,谢谢。
1数据流图题
题型如下:
- 识别实体
- 识别数据存储
- 识别缺失数据流及其起点和终点(很难找)
- 随机出题
1. 建议第一、二小题一起做(有余力可以连着第三题),因为都是在题干中找信息。
如何快速定位信息:由于题目内容是按【加工条目】介绍组织的,故可直接观察0层数据流图。例如查找E1实体名称,则首先找到0层数据流图同E1关联的加工,即可在题目中对应的加工条目中进行查找;再根据已知的数据流信息,其发送或接收方即为对应的实体。
2. 对第二小题,题目中会出现“存储”关键字以表示数据存储,如“将监测信息进行数据处理、可视化和存储等操作”;若题目中没有直接给出表名称,则采用“数据存储+表”来命名,如上文中即为“检测信息表”(数据存储用 表、信息表、记录、文件 等关键字均可)。
3. 对第三小题,答题格式如下:列表:|缺失数据流|起点|终点|;分值:1行1分
对第三小题,可根据以下几个原则进行:
1父图-子图平衡、2加工必有输入输出、3数据守恒(输入是否足够产生输出)、4数据流的起点和终点中必须有一个是加工
通常题目已经满足原则、 2;针对原则3,紧扣试题的系统说明部分,数据流图与系统说明有着严格的对应关系,系统说明部分的每一句话都能对应到图中,解题时可以一句一句地对照着图来分析。
数据流命名可以为名词或动词+名词。
存在数据流命名相似的情况,例如命名为检定记录检定信息检定信息记录等,实际填写的数据流按对应题干中数据填写;
4. 对随机小题的题型进行归总:
- 数据流组成
格式:数据流名称=A、B、C,在题干中查找即可。 - 结构化语言
通常为IF-ELSE语句,内部语句均用文字表述,以题干中逗号为标准进行分行并加冒号。 - 分解成哪些子加工;需要注意哪3种常见的错误
子加工:文中查找,注意加工为动词短语。
3种错误:有输入但是没有输出;有输出但是没有输入;输入不足以产生输出。
2数据库题
题型如下:
- 补充联系及联系类型
- 补充关系模式,并说明其主键和外键
- 随机出题
1. 对第一小题,题目内容是按【关系模式条目】介绍组织的,已经直接在条目中给出各实体间关系。通常联系可以用联系1、联系2、3…指代;注意联系类型只有1:1、1:n、m:n。
2. 对第二小题,考察ER图转关系模式时不同联系类型的转换。
- 针对补充关系模式,缺失的信息通常就是外键,故需要找到存在联系的关系模式的主键(有时题干中也会直接给出);注意同一空中可能存在多个属性需要填入。
- 注意弱实体通常没有给出关系模式,故其提供的外键即为所依赖的强实体的主键(而非题干中直接给出的信息)。
- 对于主键,在条目中通常会有“唯一”字样进行标识,例如“店号唯一确定专卖店关系中的每一个元组”,即“店名”为主键。
特殊情况:
- 某些联系类型为三方的,如1: m: n
- 某些E-R图要求填入属性,注意外键没有必要作为属性填入
3. 对随机小题的题型进行归总:
- 给出新增加的关系模式并标注主键和外键完整性约束
按关系模式:xx 主键:xx 外键:xx 的格式答题即可 - 增加实体及相应的属性,增加已有实体与新增实体之间的联系及其必要的属性;给出新增加的关系模式
注意若题目要求作图,最好在图中补全联系类型(不补或者错补不知道会不会扣分);给出新增加的关系模式时,除将实体转为关系模式,还要确认是否需要将联系转为关系模式 - 哪个联系类型发生何种变化;如何解决
何种变化:如一对多变为多对多
如何解决:转换为独立的关系模式
3 UML题
典型题型如下:
- 补充用例名
- 补充类名
- 随机出题
1. 对第一小题,通常填写的用例名为动词+名词短语,例如“处理处方”。特别注意泛化下的命名联系。
2. 对第二小题,类名通常为名词,需要在题干中筛选所有的名词,再根据类图中各类之间的联系确认选中的名词,作为类。
3. 对随机小题的题型进行归总:
- 根据新需求增加设计模式,说明原因
- 说明extend和/include/generalize关系的含义
- 补充用例参与者
4 C语言算法题
较难,建议放最后做。
典型题型如下:
- 代码填空
- 采用的算法策略;时间复杂度计算
- 随机,通常为给出输入值,求输出
常考排序、或者字符串递归。
算法通常为动态规划,注意关键词:最优子结构。
时间复杂度计算,通常是for嵌套,注意for条件判断部分典型一般为i<n,或i<j(j同n有关),则认为该层复杂度为n。
若存在两个输入则复杂度同m n 有关。
建议的做题顺序:
- 读题干,判断算法
- 查看代码,填写时间复杂度
- 根据前后问填空
5 JAVA题
考察设计模式,但实际上不需要了解也可做题。
典型题型如下:
- 代码填空
需要进行上下文分析。
核心原则: 创建的方法、属性等均需要被使用。
填空可分为下述类型:
1. 抽象类/接口填空
参考实现类实现方法即可。
- 注意补全返回数据类型和入参
- 务必确认抽象方法的正确语法以及同接口的区别
2. 全空行
- 全空行一般是填写未调用的方法,故查看本题中的类,有哪些未被调用的方法
3.· 一种特殊填空,方法形参同类的字段名一致,此时令this.字段名 = 方法形参名
注意通常答案不用加冒号,因为题目中已给出冒号。