5月29日,三舞订婚了,我的首次软考经历也结束了,这个日期,在心里越久就越觉得特别,总觉得需要点仪式感去纪念,于是有了这篇文章~ 此处回顾一下备考,希望能督促自己坚持学习 ( •̀ ω •́ )✧
官方指定参考书有三本:
我报名的考试一共有两科,上午下午各考一科:
——上午基础知识题,均为选择题,一空一分,共75分;
——下午应用题,均为大题,每题15分,4道必做题,还有两道二选一,一共75分;
由于我开始准备考试的时候,离考试大概20天,一条条看知识点再做题,时间不够,而且我也想看看自己的底子(万一没复习完/遇到不会做的,看看自己蒙题能力哈哈),决定先不复习,盲作《冲刺》,做完一章,对答案,看解析,不懂的再翻资料,弄懂后接着下一章
——此处不建议这种方法,还是稳扎稳打好;
——官方有推出题库小程序,方便刷题;还有配套教学视频,但是我没有听,一方面我觉得时间紧迫、看书最快,另一方面是因为收费 ε(┬┬﹏┬┬)3
本着“先易后难,再见不难”的原则,我看了一下考点目录,感觉比较简单的就是上篇文章写的“软件知识产权基础知识”了,于是我就从此处开始刷基础选择题。
另外,《冲刺》一书在每个章节前面都列出了该章节所占考试分数,以基础题为例,有的考点比较重要,大概占12分,如面向对象方法;有的考点考的不多,分值大概3分。我根据分值,结合做题速度、备考时间,大概做了统计,决定每天至少拿下6分的量,上不封顶,一章12分的,单独拿出一天完成
为了督促自己学习,每解决一章,就在目录上记下当天日期
操作系统这一章节有一道PV操作题,“用PV操作控制进程的并发执行”,经典高频考点。
例举一题:
《冲刺》第三章试题16:进程P1、P2、P3和P4的前驱图如图3-2所示:
若用PV操作控制进程P1~P4并发执行的过程,则需要设置4个信号量S1、S2、S3和S4,且信号量S1-S4的初值都等于零。图3-3中,a、b、c、d处应分别填写___(16)___(16)A.V(S1) V(S2)、V(S4)、P(S2)和P(S3)、P(S4)
B.V(S1) V(S2)、V(S4)、P(S3)和P(S2)、P(S4)
C.V(S1) V(S4)、V(S2)、P(S2)和P(S3)、P(S4)
D.V(S1) V(S4)、V(S2)、P(S3)和P(S2)、P(S4)
给的选项分别是a、b、c和d处应该填写的操作,其中a处和d处均有两个操作
分析题目:
从前驱图得知,一共有4条路径,分别是:
解题思路:
《冲刺》书给了我们很好的一个解题规则:
- 一条路径对应一个信号量;
- 在路径的源端进程中,应该对与该路径对应的信号量做V操作;
- 在路径的终端进程中,应该对与该路径对应的信号量做P操作
我们截取题目的某一部分图来说明:
在前驱图中,
- P1-P4是所要执行的进程,用圆圈表示;
- S1-S4为信号量,标注在路径上
在流程图中,
- P1-P4是所要执行的进程,其执行的过程标注在箭头路径上;
- 对信号量S1-S4的PV操作用矩形表示
结合起来看,可以知道,上方的矩形指代的是对信号量S的P操作,下方的矩形指代的是对信号量S的V操作。如果把信号量当作开门的钥匙,则每个进程都被关在一个独立的房间里,按顺序开门并执行;有钥匙才能开门,有的门需要同时拥有两把钥匙;开门之后需要归还钥匙,然后执行进程,当前进程执行完成后就要去获取下一个门需要的钥匙。其中,获取钥匙就是对信号量的V操作,归还钥匙就是对信号量的P操作
代入题中:
案例分析题是大题,拿分大头,比较难,可能是程序填空、画图等等。大题做不出来,只有基础题的分,也不能算考试通过。刷了几天基础题,有了点感觉,案例分析题也开始刷起来。
先看数据流图的题,一开始做了三道题,一大篇文段以及复杂的联系差点把我气晕了,这是我能看懂的东西???冷静了几天后,拿起题开始慢慢看
此处列举一道经典例题以及个人解析,有不妥之处请多指教
题目:《冲刺》第十二章试题3
某营销企业拟开发一个销售管理系统,其主要动能描述如下
(1) 接受客户订单,检查库存货物是否满足订单要求。如果满足,进行供货处理,即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则进行缺货处理,即将缺货记录单存入缺货记录文件
(2) 根据缺货记录文件进行缺货统计,将缺货通知单发给采购部门
(3) 根据采购部门提供的进货通知单进行进货处理,即修改库存记录文件,并从缺货记录文件中取出缺货订单进行供货处理
(4) 根据保留的客户订单进行销售统计,打印统计报表给经理
现采用结构化方法对销售管理系统进行分析与设计,获得如图12-6所示的顶层数据流图和如图12-7所示的0层数据流图
1.使用说明中的词语,给出图12-6中的外部实体E1-E4的名称
2.使用说明中的词语,给出图12-7中的数据存储D1-D3的名称
3.图12-7:0层数据流中缺少了4条数据流,根据说明及顶层数据流图12-6所提供的信息,分别指出这4条数据流图的起点和终点
乍一看,乌泱泱的一篇长文,而且还不在同一页上,翻来翻去,看不懂记不住,很是费劲,这么多标记符号对于我来说也只是几个箭头和框框而已。直到我做了大概5-10题后发现,其实这些标记是有规律的
一般考题里涉及到的标记有:
① 矩形框,代表外部实体,通常是数据源的起点和终点,是存在于软件系统之外的人员或组织,一般为名词
② 圆角矩形,代表加工,是输入数据流到输出数据流之间的变换,一般是题目想要求解的系统
③ 箭头,代表数据流,表示数据的流向,数据流的流向可以分为以下几种:
- 从一个加工流向另一个加工
- 从加工流向数据存储(写)
- 从数据存储流向加工(读)
- 从外部实体流向加工(输入)
- 从加工流向外部实体(输出)
(后面我均会结合题目解释)④ 不封闭的矩形,代表数据存储,
数据流图考题一般考的就是识别外部实体(题1)、识别数据存储(题2),和补充/改正数据流(题3),还有可能考一些概念题,如“层次数据流图中父子图的平衡”,这些可以去看书本,或者关注一下历年来爱考哪些概念,从这些高频考点入手去一点点扩展,理解并记住
拿到题目,说明文字是最重要的,一定要好好阅读,我习惯一边阅读一边跟着文字画草稿,自己看得懂就行,主要是为了帮助理解,简单梳理关系、标注数据存储和外部实体等关键信息。当然,也可以自行画成数据流图,说明你已经很好地掌握了这个知识点。但是升级打怪,总有低级状态嘛,我画的基本都是天马行空,一道题反复看好几次,才逐渐往题目给的数据流图靠拢
来看题目,我把前面的题目截图过来
加工:
题目说,要设计一个销售系统,因此,本题的中心就是这个销售系统,也是整个图的核心,所有的数据流和数据存储均围绕着它,本题最大boss——主加工
外部实体
前面提到,外部实体是与软件无关的个人或组织,是数据的来源或终点。外部实体一般是一个名词,并且这个名词的内容以人为主体,与加工(销售系统)产生交互,共同完成某项流程。在上方的题目中,可以找到,分别是:客户、库房、采购部门、经理
再根据上下文和排除法,就可以填出题目1。如:“打印统计报表给经理”,说明统计报表是给经理的,E4就是经理
编号 | 外部实体名称 |
---|---|
E1 | 客户 |
E2 | 库房 |
E3 | 采购部门 |
E4 | 经理 |
注:真正答案中,E2是采购部门,E3是库房,我不认同,因为缺货通知单是给采购部门的,不是给库房的呀
接下来看数据存储
数据存储,在考题中接触到的,一般指的是某某文件、某某表等,题目中会描述对该文件的读写操作,一般也是名词。另外,数据存储一般不会在顶层数据流图出现。对比题目,本题的数据存储分别为:库存记录文件、缺货记录文件、订单记录文件
然后根据上下文联系去判断数据流图应该填在哪个位置
① 首先先找最明确的文件——订单记录文件,因为最后一句话告诉我们,系统需要通过该文件绘制报表,然后交给经理,因此可以得出,D3为订单记录文件:
② 在题目中,库存记录文件和缺货记录文件出现的位置比较靠近,在还没有很明确两者和加工流程的关系时,容易混淆
从大方向上看,收到订单之后,有两种情况:
一个是有货,修改库存记录文件;
另一个是缺货,填写缺货记录文件,
“有货”应该是图的右半部分,“缺货”应该是图的左半部分;因为“缺货”与“缺货通知单”是有关联的,“有货”是与“进货通知单”、“报表”、“备货单”有关联。仔细耐心些读题,可以找到答案
编号 | 数据存储名称 |
---|---|
D1 | 缺货记录文件 |
D2 | 库存记录文件 |
D3 | 订单记录文件 |
看了前两题,其实对数据流已经有了一定的了解,数据流有起点、终点、数据流名称。将前面提到的概念,此处截图过来,方便查看:
认识数据流的走向规则,知道可以从哪里起、可以到哪里去,这在“补充数据流”的题目中很重要,此处一条条看:
第一条,从一个加工流向另一个加工
当主加工被分解成很多个子加工时,会出现这种情况,子加工B依赖子加工A的完成,或者说,子加工A完成后,再执行子加工B;画图表示即从一圆角矩形起,到另一圆角矩形
本题题目给的图中,没有体现这一点
在这里,补充一点子加工的信息。题目可能以它想要求解的系统名称来指代所有子加工;正如本题,子加工一直以“销售管理系统”命名。我们有必要来认识一下,这些子加工具体指什么,帮助我们更清晰地理解题意,看清数据流图
一般子加工可以优先寻找动词。根据题目中的这些信息,我们可以大概得出这些子加工的具体含义(红色文字)
注:由于题目给的图12-7中,D1指向子加工,再传递出“缺货通知单”,因此,此处的子加工名称我选择“缺货统计”,而不是“缺货处理”
第二条,从加工流向数据存储(写)
一般指,某个加工(子加工)在执行中需要修改某数据
举个例子,在本题中,“修改库存记录文件”就是一个写的过程,箭头从“销售系统”指向“库存记录文件”
第三条,从数据存储流向加工(读)
一般指,某个加工(子加工)需要获得某数据才能执行某操作
举个例子,在本题中,“根据缺货记录文件进行缺货统计”就是一个读的过程,箭头从“缺货记录文件”指向“销售系统(缺货统计)”
第四条、第五条,从外部实体流向加工(输入),从加工流向外部实体(输出)
前面提到,外部实体是软件系统以外的个人或组织,是数据源或数据终点。其中,若从外部实体流入系统,则该实体为数据源,其操作为输入;若数据从系统流向外部实体的,则该实体为数据终点,该操作为输出。数据源或数据终点可能不止一个。
如本题,系统的开始是从“客户订单”开始的,客户为数据源,系统需要客户向系统“输入”订单;加工的过程还向库房、经理、采购部门等数据终点”输出“文件
加工必须有入有出,只有入没有出,称为“黑洞”;只有出没有入,称为“奇迹”;当前输入不足以支持某输出(比如需要文件ABC才能进行某操作,目前只传入文件AB,却有输出),称为“灰洞”
这些都是完成“补充、修改数据流”的依据
然后我们来完成第三题,这类题有些难,排除法不大顶用,比较容易看出来的就是“读”和“写”数据流,像前文提到的“修改库存记录文件”,题目出现两次,但只有一条数据流指向该文件,我们可以从此处入手
先来看题:
“修改库存记录文件”,第一处是在说明的第1点:“若库存货物满足订单要求,则进行供货处理,即修改库存记录文件”,在12-7图中已有所示:
第二处是在说明第3点中,“根据进货通知单进行进货处理,修改库存记录文件”,我们添加上这条数据流,起点为“进货处理”,终点为“库存记录文件,此为补充的第一条数据流:
针对第二个操作,补充数据流。起点:缺货记录文件,终点:进货处理
还剩一条数据流没有补充,再看一遍题目,看看还有什么隐藏的彩蛋。
我们看说明1的第一句话:“接受客户订单,检查库存货物是否满足订单要求”。拍一拍脑袋,原来彩蛋就在这里!接到客户订单后,“检查库存货物”不就是需要读取库存记录文件吗?因此补充一条数据流,即起点为库存记录文件,终点为处理订单,如图所示:
这次的记录先到这里啦
希望我能飘过线
over——