1. 数据流图设计(优先级1)
为结构化分析与设计,考查数据流图DFD的绘制,考查形式:
-
写出上下文数据流图中空缺的外部实体
-
写出0层数据流图中空缺的数据存储
-
写出遗漏的数据流及其起点和终点
-
用结构化语言描述某段的加工逻辑。(待学习)
1.1 数据流图基本概念
数据流:名词,反应含义。
加工:做处理。
数据存储:表、文件。
外部实体:人员、组织。
顶层图与细化:
分层思路:顶层分解,逐步细化。关键:主图与子图的平衡。
1.2 数据字典
不需要深究,只用懂得怎么用,啥意思就行。
1.3 数据流图平衡原则
父图与子图之间的平衡:
-
顶层图和子图的数据流要一致,外部实体的连接等,在系统细化不能表示,不需要管。
-
注意数据流的方向和含义名称。
子图内平衡(寻找错误,图本身出现问题):
-
黑洞情况:加工只有输入没有输出。
-
奇迹情况:加工只有输出没有输入。
-
正常情况:有输出有输入。
1.4 答题技巧
- 详细分析试题说明
题干分析,要把每一句话对应起来,不要笼统分析。
比如:数据库管理员是一个外部实体;说明图中必然包含数据库管理员且为一个实体。
- 利用数据平衡原则
主图与子图要数据平衡,在主图和子图中的数据流是否匹配,这是解题的技巧也是关键。
比如:主图中有修改数据这一条数据流,但是子图没有,那么子图必然缺少了这条数据流。
1.5 解题流程
大体的看结构。
看题目,首先回答概念类的问题。
通过阅读题干,先找出系统管理的关键字,各个外部实体根据相应的描述对应上去,对应出外部实体,当遇到不确定的外部实体,可以继续往下看,利用排除法确定外部实体。
找出子图的文件,方法差不多。
查找子图缺少的数据流,首先与父图比较,找出缺少的数据流,可以对外部实体进行数据流的匹配,看数量是否一致。
分析系统中缺少的数据流,可以通过加工本身是否有错误,如果没有就从题干寻找,然后一一对应下来,最终把缺少的数据流寻找出来。
答题总结:
-
实体E的名称严格按照题中描述
-
数据存储:数据的存储用来表示存储的数据,每个数据存储都有一个名字。(…表或…信息表或…文件)
-
补充流图以表格形式展示,标题分别为数据流名称,起点,终点;几分就缺失几个;起点和终点以图中序号表示。
-
数据流的组成,几分就写几个。
-
一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同。
-
画数据流而不是控制流,数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语。
-
每个加工P至少有一个输入数据流和一个输出数据流。
-
父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。
-
数据存储D一般情况下有输入就会有输出。
常见的结构化语言
IF 条件 THEN
分支内容
ELSE IF 条件 THEN
分支内容
ELSE
分支内容
ENDIF
WHILE 下雨
DO
{
在家
IF 不下雨 THEN
出门
ENDIF
}
ENDDO
保持父图与子图的平衡。也就是说,父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。如果父图中的一个输入(输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。(eg:非常重要,会考,背下来)
2. 数据库设计(优先级2)
为数据库的分析和设计,考查ER图的绘制以及ER图与关系模式的映射,考查形式:
-
补充完成ER图(增加实体,联系,以及联系类型,属性)
-
将关系模式补充完整(属性,字段填空)
-
找出关系模式的主键,外键
-
增加部分信息,修改原实体关系图及实体间的联系
2.1 数据库设计过程
2.2 ER模型
实体间联系类型:
答题技巧
1、详细分析试题说明
ER模型的补充,关系模式的补充等。
2、熟练掌握基本知识
解题流程:
先看问题,查看问题格式,比如关系模式的格式,n:m那写的时候要对应。
分析关系模式的问题时,不要只凭自己的感觉,要返回题干,找出题干中的说辞,从两个维度,对应出对应关系。
寻找单独出现的实体,没有任何连接,对它进行分析,因为它必然是问题的所在。
对于补充属性时,一定要注意关系模式,一般不仅仅只缺少实体的属性,还需要考虑关系模式的属性,是否存在。
3. UML分析与设计(优先级3)
为面向对象分析与设计,考查常用UML图形相关知识,如:用例图,类图,顺序图,活动图和状态图,考查形式为:
-
图形填空,如给出空缺类名
-
给出对应部分的多重度
-
增加需求,对原类图进行修改
-
采用了何种设计模式,采用的原因
-
描述下extend和include关系的含义,结合用例图。
3.1 用例关系
include和extend关系的含义
答:
include表达的是一种包含关系,提取公共行为逻辑,箭头由调用用例指向被包含用例。
如图所示:创建,修改和保存就是一种包含关系,要想保存工作簿,首先我们需要创建和修改了工作簿,才可以去保存。
extend表达的是一种扩展关系,当基本用例在特定条件下触发可选分支逻辑时,通过扩展关系关联该分支用例,箭头由扩展用例指向基本用例。
如图所示:支付失败处理和在线支付就是一种扩展关系,我们在线支付的时候,只有当支付失败了,才会触发支付失败处理用例。
包含关系
[结账下单] -----<<include>>----> [添加到购物车]
也就是说箭头指向的是前置条件(必须条件)。
扩展关系
[使用优惠券] -----<<extend>>----> [订单支付]
箭头尾部是条件触发的用例。
3.2 类图
1. 依赖关系
虚线箭头,箭头指向被依赖的类。
举例:驾驶员开车时依赖汽车。驾驶员------>车
3.2 关联关系
实线箭头(单向)或无箭头实线(双向)。
举例:学生与课程之间存在多对多关联。
3.3 泛化关系
定义:即继承关系,表示子类继承父类的属性和方法(如“猫头鹰是鸟”)。
带空心三角箭头的实线,箭头指向父类。
举例:Dog
类继承Animal
类。
3.4 实现关系
定义:类实现接口中定义的行为,强制要求完成接口的方法
带空心三角箭头的虚线,箭头指向接口。
举例:Circle
类实现Drawable
接口。
3.5 聚合关系
一种特殊的关联关系,表示整体与部分的关系,但部分可以独立存在(如“汽车与轮胎”)
4. 面向对象程序设计(优先级4)
考查对常见设计模式的掌握情况,通常结合一个设计模式实洌,给出类图和实例描述,然后进行代码填空,有c++和java两个语言版本,二选一
5. C语言算法设计(最后做)
考查对常用数据结构和算法的掌握情况,如贪心算法,动态规划,回溯法,背包问题,最短路径,拓扑排序,堆排序等
考查形式:
-
C语言代码填空
-
采用了什么设计策略
-
时间,空间复杂度,算法稳定性分析
-
输出结果是什么
知识点:
递归:自顶向下
for循环:自底向上