2020年软件设计师知识点
- 高速缓存和主存间的地址映射由硬件自动完成。
全相联映射-将主存一个块的地址与内容一起存入 cache 中,拷贝灵活但是比较器电路难设计实现;
直接映射-一个主存块只能拷贝到 cache 的特定行上 去,硬件简单成本低但是容易冲突效率下降。
组相联映射-主存块放到哪个组是固定的,但 是放到哪一行是灵活的,折中办法广泛采用。
- 存储器:内存,外存
- 运算器:算术逻辑单元ALU,累加寄存器AC,数据缓冲寄存器DR,状态条件寄存器PSW
- 控制器:指令寄存器IR,程序计数器PC,地址寄存器AR,指令译码器ID
- 浮点数相加减
运算过程:对阶(阶码小的向阶码大的对齐 损失更少精度)、尾数求和((阶码用双符号位,尾数用单符号位)、规格化、舍入、溢出判断
指令执行速度(MIPS)=主频(MHz)/cpi ;CPI=机器周期*时钟周期;
中断向量提供中断服务程序入口地址,用来恢复运行。
认证只能阻止主动攻击(中断,篡改,伪造),不能阻止被动攻击(窃听)。
- 路由信息协议(RIP) 是一种距离矢量协议,这表示它根据跳数来判断到达目标的最佳路由。
- OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。
- BGP协议一般指边界网关协议。 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。
- UDP协议一般指UDP。 Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。
MIME互联网标准,扩展了电子邮件标准,使其能够支持附件等功能。
S/MIME安全多用途互联网邮件扩展协议
- 常见unix命令
修改权受到永久保护。作者的署名权、修改权、保护作品完整权的保护期不受限制。
发表权、著作财产权的保护期为作者终生及其死亡后五十年,截止于作者死亡后第五十年的12月31日;如果是合作作品,截止于最后死亡的作者死亡后第五十年的12月31日。
加密算法
非对称:EIGamal,背包算法,Rabin(RSA的特例),ECC(椭圆曲线加密算法)
结构化分析方法中 ,数据流图中的元素在数据字典中进行定义。
启发式设计原则
提高模块独立性
模块作用域在其控制域之内
降低模块接口复杂性
关键路径指的是花费时间最长的事件和活动的序列。
相关概念说明:
①最早开始时间:某段工程开始点之前最长的输入流之和
②最晚开始:关键路径-开始点到最后整个工程最后结束点的距离
③最早结束:某段工程结束点之前最长的输入流之和
④最晚结束:关键路径-该结束点到整个工程最后结束点的距离1.关键路径:从开始到结束得所有路径中,所花费时间最长的一条为关键路径。
注意:在关键路径上的任务的松弛时间为0
最早开始时间:在关键路径上,从开始到该任务的最早执行的时间
最晚开始时间:关键路径的总时间-反向得出该任务的时间
2.松弛时间(最多延迟执行的时间)
第一种求法:最晚开始时间-最早开始时间
第二种求法:关键路径的总时间-包含该任务的关键路径花的时间软件项目成本估算模型 COCOM01I 中,体系结构阶段模型基于源代码的行数进行估算。
语法树 后缀式(逆波兰式) 原语法按中序排列构造,再按后序遍历得出
C/C++语言 预处理、编译、汇编、链接
进程 资源 能否化简即为判断有无死锁
页式存储 根据页面大小计算高位和页内地址,高位通过表转换 拼接页内地址得到变换后的物理地址
索引文件结构
根据题干可得:
其中0
4号节点为直接索引,对应逻辑块号为04。
其中5~6号节点为一级间接索引方式,对应逻辑块号从5开始。本题第一空选择B选项。
每个索引盘大小为1KB,地址项大小为4B,故每个索引盘有(1KB/4B)=256个索引。
一级间接索引有2个盘块,共有512个索引,对应512个逻辑盘块。
其中7号节点为二级间接索引,共有256 * 256=65536个索引,对应65536个逻辑盘块。
单个文件最大为:(5+512+65536)*1KB=66053KB。PV操作中信号量的分析
PV信息量的取值表示资源数,最大值为初始可用资源5;
当信号量取值小于0时,可表示排队进程数,此时n个进程,最大排队数为n-5,信号量最小取值为-(n-5)。本题选择D选项。喷泉模型 是面向对象的开发方法的软件过程模型,不包括开发活动之间存在明显界限
面向对象的概念
- 多态
参数多态:应用广泛、最纯的多态。
包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。包含多态在许多语言中都存在,最常见的例子就是子类型化,即一个类型是另外一个类型的子类型。
强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
过载多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。 目前软设考查比较多的是过载多态。- 封装
- 继承
UML类图 面向对象的
抽象类没有直接对象。因为A标识为{abstract},即抽象类,抽象类不能直接进行实例化,即没有直接对象,只能有非直接对象,即子类的对象。
对象图:展现了某一个时刻一组对象以及它们之间的关系。
类图:展现了一组对象、接口、协作和它们之间的关系。
用例图:展现了一组用例、参与者以及它们之间的关系。
序列图:是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
多重度:图示表示的是1个A可以对应多个B,1个B只能对应1个A 。
UML对象图
重点:对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 一般对象图的对象名会有:标识,且一般不会出现多重度。
UML状态图
状态图展现了一个状态机,它由状态、转换、事件和活动组成,通常包括简单状态和组合状态、转换(事件和动作)。
由于状态可以是单一的,也可以是嵌套的(嵌套在另一个状态中的状态称为子状态,含有子状态的状态称为组合状态),所以活动可以在状态内执行,也可以在状态迁移时执行,A选项说法是正确的。
转换(迁移)是两个状态之间的一种关系,表示对象将在源状态执行一定的事件或动作,并在某个特定事件发生而且某个特定的监护条件满足时离开当前状态而进入目标状态,事件触发没有特定监护条件的迁移,对象也会离开当前状态,B选项正确。
转换(迁移)是从源状态和目的状态之间的一种关系,可以包含触发事件、监护条件、状态(源状态和目的状态)、动作,C选项说法不准确,本题选择C选项。
当某个事件发生后,对象的状态将发生变化,事件可以触发迁移,D选项说法是正确的。
- 设计模式:Builder关键字,是生成器模式。
生成器(构建器)模式的意图是:将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。
- Builder:抽象建造者,为创建一个Product对象各个部件指定抽象接口,把产品的生产过程分解为不同的步骤,从而使具体建造者在具体的建造步骤上具有更多弹性,从而创造出不同表示的产品。
- ConcreteBuilder:具体建造者,实现Builder接口,构造和装配产品的各个部件定义并明确它所创建的表示,提供一个返回这个产品的接口。
- Director:指挥者,构建一个使用Builder接口的对象。即对应本题waiter。
- Product:产品角色,被构建的复杂对象,具体产品建造者,创建该产品的内部表示并定义它的装配过程。包含定义组成组件的类,包括将这些组件装配成最终产品的接口。
CFG (上 下文无关文法)
形式文法描述形式语言的基本想法是,从一个特殊的初始符号出发,不断的应用一些产生式规则,从而生成出一个字串的集合。产生式规则指定了某些符号组合如何被另外一些符号组合替换。
(id 表示单个字母表示的 变量)
P:E→E+T|E-T|T
T→T*F|F
F→-F|id
首先E能推导出T推导出F推导出id 即字母 a
E推导出E-T推导出E+T-T
F推导-F推导出-id得出-b
T推导F推导id得出c
a+-b-c
关于冲突的概念:
属性冲突。同一属性可能会存在于不同的分E-R图,由于设计人员不同或是出发点不同,对属性的类型、取值范围和数据单位等可能会不一致
命名冲突。相同意义的属性在不同的分E-R图中有着不同的命名,或是名词相同的属性在不同的分E-R图中代表着不同的意义。
结构冲突。同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体,而在另一分E-R图中又被抽象为属性,需要统一。本题厲于结构冲突,选择C选项。
没有实体冲突的说法。(2020.44) 根据函数依赖,首先找到入度为o的属性集合A,又根据A一 BC,这里根据amstrong公理中的分解规则,可以得到A-B, A一C,同时存在B一D,此时有传递两数依赖A一D,可以通过A遍历全图,因此候选键为A。本题选择C
最优二叉树 (哈夫曼树)
权值越大的叶子离根结点越近,Huffman (哈夫曼)树中不存在只有一个子树的结点,Huffman (哈夫曼)树中的结点总数一定为奇数。
二分查找
顺序存储,元素排列有序。
图的遍历 广度优先 深度优先
快速排序的实现。 找一个当标准值,从后往前找比标准小的,从前往后找比标准大的 交换 ,再在替换的位置里面继续寻找替换,最后递归上述。
DHCP协议 无效的IP:169.254.X.X (win) 0.0.0.0 (linux)
URL格式 协议://主机名.域名.域名后缀或者IP地址:端口/目录/文件名
敏捷开发方法scrum
1)我们⾸先需要确定⼀个Product Backlog(产品代办事项清单)(按优先顺序排列的⼀个产品需求列表),这个是由Product Owner 负责的;
Scrum Team根据Product Backlog列表,做⼯作量的预估和安排;
2)有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出⼀个Story作为本次迭代完
成的⽬标,这个⽬标的时间周期是1~4个星期,然后把这个Story进⾏细化,形成⼀个Sprint Backlog;3)Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更⼩的任务;
4)在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进⾏ Daily Scrum Meeting(每⽇站⽴会议),每次会议控制
在15分钟左右,今天⼲了什么、明天要⼲什么、有什么困难 ,更新⾃⼰的 Sprint burn down(燃尽图);5)当⼀次Sprint(冲刺迭代)完成,这时,我们要进⾏ Srpint Review Meeting(演⽰会议),每个成员⽤Demo演⽰⾃⼰负责的任务,让产品负责
⼈评估是否完成;6)最后就是 Sprint Retrospective Meeting(回顾会议),整个团队沟通上个Sprint执⾏中的问题和改进点,总结并讨论改进的地⽅,
放⼊下⼀轮Sprint的产品需求
McCabe
在程序控制流程图中,节点是程序中代码的最小单元,边代表节点间的程序流。一个有e条边(不包含自己回到自己的)和n个节点的流程图F,其环路复杂度为
V(G) =e-n+2。
(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。环路复杂度越高,程序中的控制路径越复杂。mccabe指出,典型的程序模块的圈复杂度为10。
E-R图
设计模式
将抽象部分与其实现部分分离,使它们都可以独立的变化,为桥接模式,桥接模式是结构型对象模式。
关系代数表达式 笛卡尔积 投影 选择 自然连接
邻接矩阵 行列数都为结点个数 邻接节点
排序算法
贪心算法 分数背包
霍夫曼编码 霍夫曼树