赞
踩
涉及知识点
提问形式:
(1)、从近年来的真题来看,试题一给出的图基本上都是两层流图:图1-1 上下文数据流图(图1-1 顶层图)、图1-2 0层数据流图。
(2)、提问形式相对固定:
总结:
① 问题1 ~ 问题3 的出题形式每一年都相对固定,问题4 则是变化的!
② 问题4 的出题形式,从近些年的真题来看,采用上述表格中 形式1 的出题方式已经 连续三年考查了 (要么是上半年考,下半年
就不考了,而上半年没有考,下半年必考)
设计原则
解题技巧 ( 以2022年下半年软件设计师下午试题作为案例 )
问题一:补充实体
提问形式:使用说明中的词语,给出图1-1中的实体E1~E4的名称。 (4分)
解题方法:这边提供一种我做题的方法 (仅供参考)。
可以直观的看到、试题说明都是好多段的文字描述,怎么快速准确的找出答案,是我们必须要考虑的事情!!!
我们不能上来就对着说明从头到尾的一字一句的找下来,这样做题的效率很低效!!!(自我认为)
首先:我们带着 “实体代码E1~E4” 去图1-2中找与之相关联的加工的名称 (如上述图片所示)
然后:就在说明中找对应加工名称的那段文字说明 (正常情况下说明中每一段文字的第一句话就是图1-2中对应的加工名称)
其次:在对应加工名称字段中寻找实体,实体可能是:相关人员(管理员、客户、经理…)、组织机构(供应商、银行…)、外部系统(银行系统、工资系统…)
问题二:补充数据存储
提问形式: 使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。(5分)
解题方法:这边提供一种我做题的方法 (仅供参考)。
首先我们要在 图1-2 0层数据流图 中观察与某个数据存储相关联的加工是那个,然后在对应的一个或多个加工对应说明文字当中,找出数据存储名词作为答案(这种情况建立在:说明当中直接给出数据存储的名称)
如果文中说明没有直接给出数据存储的名称 我们就直接通过观察:图1-2 0层数据流图中观察数据存储D1~D5 对应的 输入数据流 和 输出数据流 的文字说明来:自拟该数据存储的名称。(如上图所示)
其次就是要注意的是数据存储名称的特征是:xx文件、xx表. . . . . .
问题三:补充数据流
提问形式:根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。 (4分)
解题方法:这边提供一种我做题的方法 (仅供参考)。
首先就是 判断父图和子图是否数据平衡: 依据父图和子图间的数据平衡原则来 核对父图中的每个输入、输出数据流是否都能在子图中找到。(直接看图1-1中外部实体的输入、输出数据流的个数和名称 在子图中是否有对应存在、不存在就是你要找的缺失数据流)
然后就是 判断子图内部是否数据平衡: 依据子图内数据平衡原则来 核对子图中的每个加工是否都有输入、输出数据流。 如存在只有输入数据流没有输出数据流 或 只有输出数据流没有输入数据流 其就是你要找的缺失数据流。
其次就是 详细阅读题目说明中的描述、核对每句话是否在子图当中有所体现。 如发现有在图中没有体现的话术、其就是你要找的缺失数据流。( 这种情况居多 )
注意点:补充的缺失数据流,不论起点还是终点,每一条数据流中,必须要有一个是加工。不然肯定是错的。
问题四:情景问答
提问形式:根据说明,给出 “充电检测与计量数据” 数据流的组成。 (2分)
解题方法:这边提供一种我做题的方法 (仅供参考)。
首先问题四这部分的提问形式总是在改变。但是反反复复还是考查后续总结的这几种提问形式的题目,我们只需要去记忆和理解,足以应对该部分提问形式的变化。
就本题出现的这种提问形式而言:首先的就是找出该条数据流在说明中的具体描述,然后详细的阅读、找出跟数据流相关的组成成分就好了!!! (所上图所示)
特别讲解:就是从近些年的试题一中的问题四真题来看、连续三年考了下面这种提问形式!!!
① 提问形式:根据说明,采用结构化语言对 “xxxxx” 的加工逻辑进行描述。
② 必要了解:
什么是结构化语言
结构化语言是介于自然语言和形式语言之间的一种半形式语言,是在自然语言基础之上加了一些限度,使用有限的词汇和有限的语句来描述加工逻辑。
结构化语言的基本结构
结构化语言采用 顺序 、选择 和 循环 3种基本结构。
语法
一般在题目当中出现的时候,基本上都是多分支,顺序结构、选择结构和循环结构三者彼此嵌套着使用!!!
③ 案例解析:(这边就拿2022年上半年软件设计师下午试题一中的问题四的真题来作为案例进行解析)
提问形式:根据说明,采用结构化语言对 “订单处理” 的加工逻辑进行描述。 (3分)
上述问题答案为:
注意事项:
① 在此类问题中、结构化语言的基本结构都是以嵌套着的方式出现,例如:顺序结构 + 选择结构(里面在嵌套着:
选择结构)、顺序结构 + 循环结构(里面在嵌套着:选择结构) 等等形式展现!
② 判断基本结构的时候,要特别注意是否为:循环结构。正常情况下文中说明可以很直观的判断出:顺序结构和
选择结构,循环结构则需要一些分析、理解和常识来判断!
解题方法:这边提供一种我做题的方法 (仅供参考)。
① 首先先看问题、看是对那个加工的逻辑进行描述,在题目说明中找到对应描述段落的语句。
② 其次判断该加工所在段落的描述:符合结构化语言基本结构中的那种或者说那几种结构嵌套的。
③ 然后需要特别注意的是说明描述中的一些关键字:若、则、否则 … 这些关键字往往对应基本机构中语法中的:
IF 、ELSE IF 、ELSE …
④ 最后就是在该加工说明描述语句中加上结构化语句的基本结构语法、注意加工逻辑的合理性书写下去即可。
补充说明:试题一中问题四近几年其他出题形式的固定回答模式!!!
①、如何保持数据流图平衡!
答案: 既保持父图与子图间平衡:父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量和名称上面相同。父图的一个输入/输出数据流对应着子图中几个输入/输出数据流,而子图中组成的这些数据流的数据项全体正好是父图中的一个数据流。
②、"xxxx"可以分解为哪些子加工!
解决方法: 加工是用于处理数据流的,如果要把某个加工分解成一些子加工,可以把该加工涉及到的数据流,在说明中标识出来。再在数据流名称所在的句子中找 "动词 + 名词 " 的结构(普遍情况下),分析是否可以作为要分解加工的子加工。
③、分解子加工的时候需要注意哪些错误!
答案:黑洞、奇迹、灰洞。
黑洞:若一个加工只有输入数据流而无输出数据流,则称为黑洞。
奇迹:若一个加工只有输出数据流而无输入数据流,则称为奇迹。
灰洞:若一个加工的输入数据流无法通过加工产生输出数据流,则称为灰洞。
一个数据流图中,不允许数据流同名。
总结
涉及知识点
(1)、E-R图(实体-联系图)
实体又分为:弱实体,两者是从属关系,无联系类型。两者之间的图像联系的表示为:
联系两端 需要标注联系类型 、实体与实体之间的联系类型分为:一对一 (1:1)、一对多 (1:N) 或 (1: *)、多对多 (M:N) 或 ( * : * )
这边需要特别注意的就是:在E-R图中标注联系类型的时候,要根据题目说明中给出的联系类型来标注。
要么使用:1:1、1:n、m:n 、 要么使用:1:1、1 : * 、* : * 。不可以混着使用、要统一!!!
(2)、关系模式
关系模式:在二维表中的行定义,即对关系的描述称为关系模式 ,以名称和属性名来表示一个关系。
一般表示为:名称(属性1,属性2,… , 属性n)。
(3)、主键和外键
主键:唯一标识当前关系的属性,不能为空,是用来保证数据完整性。
外键:是其他关系模式的主键或者为空,外键可以有多个,是用来和其他关系模式建立联系的。
提问形式:根据需求描述,图2-1实体联系图中缺少上联系。请在答题纸对应的实体联系图中补充三个联系及联系类型。注:联系名可用联系1、联系2、联系3,也可根据你对题意的理解取联系名。 (6分)
上述问题答案为:
解题方法:
这道题的关键主要就是:根据题目提供的描述,确认哪些实体之间存在联系 并且 联系类型是那一种,之后进行连线即可。
注意点1: 补充E-R图这是重中之重,E-R图如果弄错了,对后续做题都会有一定的影响。
注意点2: 补充缺失的联系名和联系类型的时候,一定要使用题目所给的联系名和联系类型。整个E-R图中的所补充的联系
名和联系类型一定要统一。归根到底就是要根据题目说明来答题就没有问题!!!
提问形式:
题目得分:(6分)
(1) 将关系模式中的空___(a)___、 ___(b)___的属性补充完整,并填入答题纸对应的位置上。
(2) 专卖店关系的主键_____(d)_____ 和外键____(e)______ 。职员关系的主键___(f)____ 和外键: ____ (g)____ 。
上述问题的答案为:
(1)、(a):店长、分公司编号; (b):专卖店号。
(2)、(d):专卖店号; (e):店长、分公司编号; (f):职员号; (g):专卖店号。
解题方法:
本道题实际上考查的就是:将 E-R图转换为关系模式,补充缺失的属性。
第一步:将问题中缺失属性对应的关系模式、带入到题目描述中进行比对,缺少那个属性补充上去就行了。(如上图所示)
第二步:完成第一步还没有解决问题的话,就按照 E-R转换为关系模式的规则来补充缺失的属性。(规则如下)
E-R转换为关系模式的规则:
首先每一个实体都要转换为一个关系模式。
对于联系共分为三种情况来考虑
① 一对一:联系作为一个属性随便加入到那个实体中去。
② 一对多:联系可以单独转换为一个关系模式(一般不考查这种)
或者 联系作为一个属性加入到N端中 并且 N端实体 应包含 1端的主键(关注)。
③ 多对多:联系必须单独转换为一个关系模式、并且该关系模式 必须包含两端实体的主键。( 常考、重点关注 )
注意事项:
① 转换之后、原来的两个实体之间的联系必须还存在。
② 填写某个实体的属性时,还要考虑到其 联系的属性 也要包含在其中。
③ 还有一种情况是让你:标注主键和外键的完整性约束。
主键的话:在对应的主键属性下面画一条 实线。
外键的话:在对应的主键属性下面画一条 虚线。
其中需要特别注意的是:同一个属性存在:即是主键又是外键的情况。(一般出现在多对多联系中)
所以这种情况下,标注的时候就要在属性下面画两条线:一条实线、一条虚线。
提问形式:
题目得分:(3分)
(1) 为了在紧急情况发生时,能及时联系到职员的家人,专卖店要求每位职员至少要填写位紧急联系人的姓名、与本人关系
和联系电话。根据这种情况,在图2-1中还需要添加的实体是___(h)___,职员关系与该实体的联系类型为 __ (k) __ 。
(2) 给出该实体的关系模式 。
上述问题的答案为:
(1)、(h):紧急联系人; (k):一对多
(2)、紧急联系人(紧急联系人编号,职员号,紧急联系人的姓名,关系,联系电话)
要是要求在E-R图中补充出来的话如下图所示:
解题方法:
本道题本质上也是在考查:联系类型 和 E-R图转换为关系模式的。 运用上述问题一和问题二的解题方法即可!!!
问题三出现的形式:给出一段文字描述,根据文字描述让你:添加新的实体、联系类型和关系模式。
涉及知识点
事物:
UML中的事物又分为:结构事物、行为事物、分组事物和注释事物。
① 结构事物包括:类(Class)、接口(Interface)、协作(Collaboration)、用例(Use Case)、主动类(Active Class)、构件(Component)、制品(Artifact)和节点(Node)
各种结构事物的图形化表示如下图所示。
② 行为事物包括:交互(Interaction)、状态机(State Machine)和 活动(Activity)
各种行为事物的图形化表示如下图所示。
③ 分组事物包括:包(Package)
④ 注释事物包括:注释(Note)
关系:
UML中的关系又分为:依赖、关联、实现 和 泛化。 其中关联又细分为:聚合 和 组合。
① 关系对应的图形表示如下图所示:
② 几种关系的强弱顺序:
泛化(继承)= 实现 > 组合 > 聚合 > 关联 > 依赖
③ 多重度(Multiformity)
通常在关联、聚合、组合上标注。就是代表有多少个关联对象存在。使用 数字…星号(数字) 表示。
图:
UML中的图又分为:用例图、类图、对象图、包图、状态图、活动图、交互图、部署图、组件图。其中交互图又细
分为:序列图和协作图。
根据近些年的真题可以总结出来:UML建模部分的试题,都只考查 用例图 和 类图 这两种图了。
所以下面对用例图和类图做详细的解析,至于其他图的解析这边不做过多的解析,如若想了解可以自行查阅资料。
用例图
① 用例图展现了一组 用例、参与者 以及 它们之间的关系,如所下图所示:
② 其中的参与者是人、硬件或者其他系统可以扮演的角色;用例是参与者完成的一系列操作;它们之间的关系
分为:扩展关系(<< extend >>)、 包含关系(<< include >>)和 泛化关系(<< generalization >>)。
关系的图形化表示:
类图
① 类图展现了一组 类、接口、协作 和 它们之间的关系,如下图所示:
② 其中它们之间的关系分为:依赖关系、泛化关系 和 关联关系。其中关联又细分为:聚合和组合。
③ 其中类的图形化表示及完整的内部组成如下图所示:
出题形式:
补充用例图:
主要会考察这几个部分:补充用例名称、补充参与者名称、补充或解释用例之间的关系。
补充用例名称 和 补充参与者名称 的这种提问形式,只需根据题目所给出的描述,都是可以很轻易得出答案。
补充或解释用例之间的关系:重点在于理解并熟悉包含(<< include >>)、扩展(<< extend >>)、泛化的这三种关系的概念及图形化的表示。
难点在于:判断其关系是包含还是扩展。两者的关键在于是不是必须操作! 包含是必须、扩展不是必须。
举图书管理系统为例进行说明:
补充类图:
主要会考察这几个部分:补充类名、补充类的属性名、补充类的方法名、补充类之间的关系、补充多重度。
识别设计模式:
解题技巧: ( 以2022年下半年软件设计师下午试题作为案例 )
问题一:
提问形式:根据说明中的描述,给出图3-2中U1~U4所对应的用例名。(4分)
上述问题的答案为:U1:显示温度 、U2:显示华氏度、U3:温度计显示、U4:单位换算。
解题方法:
问题二:
提问形式:根据说明中的描述,给出图3-3中C1~C8所对应的类名(类名使用图3-1中标注的词汇)。 (8分)
上述问题的答案为:
C1:TemperatureCovertorDialog
C2~C4:FahrenheitEditBox 、 CelsiusEditBx 、 TemperatureBar
C5~C8:FahrenheitRaise 、FahrenheitLower 、CelsiusRaise 、CelsiusLower
解题方法:
问题三:
提问形式:现需将图3-1所示的界面改造为一个更通用的GUI应用,能够实现任意计量单位之间的换算,例如千克和确之间的模算、厘米和英寸之间的换算等等。为了实现这个新的需求,可以在图3-3所示的类图上增加那种设计模式?请解释选择该设计模式的原因(不超过50字)。 (3分)
上述问题的答案为:
解题方法:
总结
概念:Java的设计模式共分为三大类型、23种模式。
创建型模式(5种模式):主要用于创建对象。
抽象工厂(Abstract Factory)模式、工厂(Factory Method)模式、建造者(Builder )模式、
原型(Prototype )模式、单例(Singleton )模式。
结构型模式(7种模式):主要用于处理类或者对象组合。
适配器(Adapter)模式、桥接(Bridge)模式、组合(Composite )模式、装饰(Decorator )模式、
外观(Facade )模式、享元(Flyweight )模式、代理(Proxy )模式。
行为型模式(11中模式): 主要用于描述类或者对象怎么样去交互、分配职责的。
责任链(Chain of Responsibility)模式、命令(Command )模式、解释器(Interpreter )模式、
迭代器(Iterator )模式、中介者(Mediator )模式、备忘录(Memento )模式、观察者(Observer )模式、
状态(State )模式、策略(Strategy )模式、模板(Template )模式、访问者(Visitor )模式。
历年来真题中试题六(Java)部分考查的设计模式如下:
归纳总结:
定义类语法:
class 类名{
成员属性;
成员方法;
}
[修饰符] 数据类型 属性名;
创建对象:
类名 对象名 = new 类名();
访问对象:
对象名.属性名;
对象名.方法名();
补充知识点 - 修饰符
访问修饰符 (可以使用访问修饰符来保护对类、变量、方法和构造方法的访问)
Java支持下列4种不同的访问权限:
访问的范围从大到小的顺序:public > protected > default > private
非访问修饰符(为了实现一些其他功能)这边列举常见的几个非访问修饰符:
抽象方法
:被 abstract 修饰的方法,称为抽象方法。
特点:抽象方法只有声明,没有具体实现。既没有方法体,以分号结尾。
代码示例:
public abstract class Animal { // 抽象类的定义方式:
public abstract class 类名{}
public abstract void run(); // 抽象方法的定义方式:public abstract 返回值类型 方法名();
}
注意点:
定义抽象方法时,修饰符必须为 public
或者 protected
(因为如果为 private
,父类则不能被子类继承,子类便无法实现该方法) 一般情况下都采用:public
。
构造方法
:构造方法是类的一种特殊方法(也称为:构造函数 或 构造器)用于创建和初始化对象。
特点:方法名 必须 和类名相同、没有返回值(也不能写作 void
)。
代码示例:
public class Puppy {
private String name;
public Puppy(){ // 无参构造方法。
}
public Puppy(String name){ // 有参构造方法。
this.name = name;
}
}
概念:将类的属性封装在类中,不允许在类的外部直接访问。从而起到保护数据的安全,使内容可控。只能通过被授权的方
法才能对数据进行访问。
实现封装步骤:
private
修饰属性)public
修饰方法
代码示例:
public class Student {
private String name; // 第一步:将属性私有化。
public String getName() { // 第二步:提供对外访问的取值方法(getter方法)。
return name;
}
public void setName(String name) { // 第二步:提供对外访问的赋值方法(setter方法)。
this.name = name;
}
}
概念:通过 extends 关键字,让一个类和另一个类建立起父子关系。此时子类继承了父类中的属性和方法。
语法:
class 子类名 extends 父类名{
}
语法:被 abstract 修饰的类,称为抽象类。
abstract class 类名{
}
概念:从本质上讲,接口是一种特殊的抽象类,只能包含 常量 和 抽象方法。
语法:
interface 接口名{
常量;
抽象方法;
}
public static final
修饰,既接口中只能有常量。public abstract
修饰,既接口中只能有抽象方法。实现接口语法:实现接口的类,称为实现类。
class 类名 implements 接口名{
}
super
super()
访问父类的构造方法,必须位于第一行。super.
访问父类的属性和方法,解决父类和子类成员同名的问题。this
this()
访问当前类中的构造方法,必须位于第一行。this.
访问当前类中的属性和方法,解决当前类中全局变量和局部变量同名问题。this.
static
static
修饰的变量,称为静态变量 或 类变量(非static修饰的变量称为实例变量)类名.属性名
(推荐)或者 对象名.属性名
static
修饰的方法,称为静态方法 或 类方法(非static修饰的方法称为实例方法)this
关键字。类名,方法名()
(推荐)或者 对象名.方法名()
抽象类相关
(一般情况下会从以下角度去考查)
⑴ 在抽象类的方法体中挖空,让你去补全抽象类中:缺失的抽象方法。
依据:子类继承抽象类后,必须 实现 或 重写 抽象类中所有的抽象方法。
代码示例:(真题中的相关部分代码)
注意点:① 抽象类不能被实例化,既不能使用 new
创建一个对象,只能被继承。
② 抽象方法只有声明,没有具体实现,既没有方法体,以分号结尾。
③ 抽象类不一定有抽象方法,但含有抽象方法的类,一定是抽象类。
⑵ 补全抽象类中:定义属性缺失部分。
public (公开的)
、default (默认)
、protected (受保护的)
、private (私有的)
接口相关
public abstract
修饰,既接口中只能有抽象方法。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。