软件设计师考试中的一些知识点(持续更新)


字节,字,位之间的关系

  • 位 (bit/b):一个0或1
  • 字节(Byte/B):1B=8b,一个字节能表示一个ASCⅡ值,两个字节能表示一个汉字国标码
  • 字:由一个或多个字节构成,字长决定CPU一次操作处理的实际位数;32位或64位系统的位数表示的就是字长
  • 拓展:
    • 地址总线的位数决定了CPU的寻址能力(假设地址总线有n位,CPU的最大寻址范围为 2n 个字节);
    • 数据总线传输的数据或指令的位数要与字长一致(如果数据总线宽度大于字长则一条数据或指令要分多次传输,则分开传输的几组数据也就没有意义了;如果数据总线宽度小于字长,则CPU的利用率要降低,对资源是种浪费)

PC IR AR 累加寄存器的用处

  • PC程序计数器:存放执行指令的地方,计算之前就要用到
  • 累加寄存器:存放算术逻辑运算不见ALU运算的结果信息
  • IR指令寄存器:保存当前正在执行的一条指令
  • AR地址寄存器:保存当前CPU所要访问的内存单元的地址

主存与cache的地址映射方式

  • 由硬件控制

  • 全相联(适用于小容量cache):主存中的一块可以拷贝到cache中的任意一行

    • 主存地址格式:主存块号+块内偏移地址
    • cache地址格式: cache行号+行内偏移地址
    • cache标记tag:主存块号
    • 过程:CPU提供一内存地址给cache,cache中的“控制逻辑”将“主存地址格式”中的“主存块号”与cache中所有行的标记tag进行同时比较:如果存在相同的,即表示“命中”,根据“块内偏移地址”找到相应的字,如果不存在相同的,即表示“未命中”,那么将会到主存中寻找。
    • 优点:优点:该映射方式下,块冲突的概率低,cache利用率高。
    • 缺点:硬件控制复杂,尤其是用于比较“主存块号”与tag时的比较器电路难于设计与实现。
  • 直接相连(大容量的cache):相当于将主存空间按cache的大小(行数)进行分区(说“分组”也可以),主存分区(组)后,每区(组)中的数据块数目与cache的行数一致

    • 优点:硬件简单,容易实现,成本低。
    • 缺点:发生块冲突的概率较大,导致cache的命中率、效率下降。更多的行数可以减小冲突发生的机会
  • 组相联:是直接映射方式与全相联映射方式的折衷方案,适度地兼顾了二者的优点又避免二者的缺点。
    将cache的空间分为若干组,主存块与cache组之间直接映射,而组内各块之间全相联映射,cache的分组数 = 主存每一组的块数

    • 该映射方式实现较为容易,块冲突概率比直接映射方式低,命中率介于直接映射方式与全相联映射方式之间。被普遍采用。

算数移位和逻辑移位

  • 逻辑移位是指逻辑左移和逻辑右移,移出的空位都用0来补
  • 算术移位 就需要分有符号型值和无符号型值:
    • 对于无符号型值,算术移位等同于逻辑移位
    • 对于有符号型值 ,算术左移等同于逻辑左移,算术右移补的是符号位,正数补0,负数补1
  • 左移相当于 ×2,右移相当于 ÷2

常见的2的次方数

  • 1024 = 210
  • 1GB = 1024MB = 1024×210B

网络拓扑结构的优缺点

分类:

  • 总线结构
  • 星形结构
  • 环形结构
  • 树形结构
  • 网状形结构

优点:

  1. 总线型:费用低、数据端用户入网灵活、站点或某个端用户失效不影响其它站点或端用户通信,布线要求简单,扩充容易,端用户失效、增删不影响全网工作

  2. 环形:信息流在网中是沿着固定方向流动的,两个节点仅有一条道路,简化了路径选择的控制;环路上各节点都是自举控制,控制软件简单

  3. 星型:便于集中控制,因为端用户之间的通信必须经过中心站。由于这一特点,也带来了易于维护和安全等优点。端用户设备因为故障而停机时也不会影响其它端用户间的通信网络延迟时间较小,系统的可靠性较高

缺点:

  1. 总线型:一次仅能一个端用户发送数据,其它端用户必须等待到获得发送权;媒体访问获取机制较复杂;维护难,分支结点故障查找难。

  2. 环形:信息源在环路中是串行地穿过各个节点,当环中节点过多时,势必影响信息传输速率,使网络的响应时间延长;环路是封闭的,不便于扩充可靠性低,一个节点故障,将会造成全网瘫痪;维护难,对分支节点故障定位较难。

  3. 星型:需要耗费大量的电缆,安装、维护的工作量也骤增;中央节点负担重,形成“瓶颈”,一旦发生故障,则全网受影响;各站点的分布处理能力较低


DPI像素计算

  • DPI 即 像素每英寸 例:100dpi表示每英寸100像素
  • 1个 150dpi 的 3×4英寸的 24 位真彩色图像占的空间 :3×150×4×150×24÷8 =810000
  • 公式:字节数=图像水平分辨率×图像垂直分辨率×颜色深度(位数)÷8 ; 分辨率 = 英寸×dpi

PV操作

  • 使用PV操作和信号量可以实现进程间的同步和互斥
  • 由P操作原语和V操作原语组成(原语是不可能中断的过程)
  • P(S):① 将信号量S的值减1,即S=S-1;② 如果S>=0,则该进程继续执行;否则进程进入等待队列,置为等待状态
  • V(S):① 将信号量S的值加1,即S=S+1;② 如果S>0,则该进程继续执行;否则释放等待队列中第一个等待信号量的进程。(因为将信号量加1后仍然不大于0,则表示等待队列中有阻塞的进程)
  • 做题技巧:引出末尾V,引入开始P

几种耦合关系

  1. 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
    • 一个模块直接访问另一个模块的内部数据;
    • 一个模块不通过正常入口转到另一模块内部;
    • 两个模块有一部分程序代码重迭(只可能出现在汇编语言中)
    • 一个模块有多个入口
  2. 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
  3. 外部耦合: 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
  4. 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
  5. 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。
  6. 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
  7. 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

软件设计模式

总的来说分为三类

  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
  • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
    详情请看23种设计模式全解析

软件设计模型分类及优缺点

在这里插入图片描述
7种软件开发模型的主要特点

  • 统一过程:描述了软件开发中各个环节应该做什么,怎么做,什么时候做以及为什么做,描述了一组以某种顺序完成的活动
  • 敏捷过程:一种以人为核心,以迭代方式循序渐进开发的方法。
  • 极限编程XP:轻量级的,敏捷的软件开发方法,任何一个软件项目都可以从4个方面入手进行改善(加强交流,从简单做起,寻求反馈,勇于实事求是),主要解决代码质量低的问题,编码速度不能改变

软件体系结构风格

  • 软件体系结构风格:是在构建和连接子的层次所描述可重复使用的软件设计问题解决方案,体系结构风格是广义上的设计模式
  • 常见的软件体系架构有如下五种:
    1. 数据流风格:包括:管道过滤器风格,批处理风格。
    2. 仓库风格:包括数据库,黑板系统和超文本。
    3. 调用返回风格:分层风格,主程序子程序和面向对象风格。
    4. 虚拟机风格:包括解释器,和基于规则的系统。
    5. 独立构件风格:包括进程通讯和基于事件的系统。

UML图相关概念

  • 两个类之间可以由不同角色表示存在多个关联

环形复杂度定量度量程序的逻辑复杂度(McCabe度量法)

程序图基本结构

  • 程序图:一种简化了的流程图。如下图:左为流程图,右为程序图
    流程图(左)与程序图(右)
  • 路径覆盖:指使程序中每条路径至少执行一次,一个判断需要两个用例;
  • 常见的定量度量软件复杂性的方法:代码行度量法,McCabe度量法,Halstead的软件科学
  • 环路复杂度的 3 种计算方法:
    • 流图中的区域数等于环形复杂度,其中,边和结点圈定的封闭范围叫做区域(如上图)
    • 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数
    • 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
  • 环形复杂度反映程序分支数或循环个数,环形复杂度高的程序往往是最困难,最容易出问题的程序,一般环形复杂度小于等于10为宜

成本估算

  • 专家估算:根据专家的行业经验和历史数据对软件开发过程的成本进行估算
  • Wolverton(loc方法):根据执行的源代码行数进行成本估算
  • COCOMO:构造性成本模型,是一种参数化的成本估算方法,例如将软件的难度规模等作为参数进行估算
  • COCOMO2:是COCOMO的改进版,把最新的软件开发方法考虑在内,由一下三个不同的计算模型组成
    • 应用组合模型:适用于使用现代GUI工具开发的项目
    • 早起开发模型:适用于再软件架构确定之前对软件进行粗略的成本和时间估算,包含了一系列新的成本和进度估算方法。基于功能点或代码行
    • 结构化后期模型:用在整体软件架构以确定之后,包含最新的成本估算、代码行计算方法

数据库设计中的关系规范化

  • 逻辑设计阶段,负责把关系模式规范化,以减少冗余,以及一定程度上修改异常,插入异常及删除异常
  • 当一个关系中的所有分量都是不可分的数据项时,该关系是规范化的
  • 关系按其规范化程度从低到高可分为5级范式,分别称为1NF、2NF、3NF(BCNF)、4NF、5NF
  • 规范化程度较高者必是较低者的子集

范式规范需求及相关例子

  • 范式是 符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度,数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF
  • 1NF:符合1NF的关系中的每个属性都不可再分,是所有关系型数据库的最基本要求
  • 2NF:2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖
    • 部分函数依赖:假如 Y 函数依赖于 X,但同时 Y 并不完全函数依赖于 X,那么我们就称 Y 部分函数依赖于 X
    • 码:假设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K,那么我们称 K 为候选码,简称为码
  • 3NF:仅仅符合2NF的要求,很多情况下还是不够的,而出现问题的原因,在于仍然存在非主属性对于码的传递函数依赖,因此3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖,符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题
  • BCNF:在某些特殊情况下,即使关系模式符合 3NF 的要求,仍然存在着插入异常,修改异常与删除异常的问题,原因是存在着主属性对于码的部分函数依赖与传递函数依赖BCNF在 3NF 的基础上消除主属性对于码的部分与传递函数依赖
  • 4NF:在BCNF基础上,消除**非平凡且非函数依赖的多值依赖**(即把同一表内的多对多关系删除)
    • 多值依赖即属性之间的一对多关系,记为K→→A。函数依赖事实上是单值依赖,所以不能表达属性值之间的一对多关系。
    • 平凡的多值依赖:全集U=K+A,一个K可以对应于多个A,即K→→A。此时整个表就是一组一对多关系。
    • 非平凡的多值依赖:全集U=K+A+B,一个K可以对应于多个A,也可以对应于多个B,A与B互相独立,即K→→A,K→→B。整个表有多组一对多关系,且有:“一”部分是相同的属性集合,“多”部分是互相独立的属性集合
    • 例子:同一个用户可以拥有一个座机号两个手机号,由于手机和座机是互相独立的,而有些用户又有两个和多个值。这时此表就违反第四范式
用户座机手机
long8124-5673136-0000-0001
long8124-5673136-0000-0002
  • 5NF:在4NF的基础上,消除不是由候选码所蕴含的连接依赖(关系模式R中的每一个连接依赖均由R的候选码所隐含

  • 例题1 :已知有关系模式R(A, B, C, D),已知有函数依赖集:{A→B, A→C, A→ D, B→D, (B, C)→A }。问关系模式 R 最高支持第几范式?范式例题

  • 例题 2:已知有关系模式 R(A, B, C, D),已知有函数依赖集:{(A, B)→C, C→D D→A},问关系模式 R 最高支持第几范式?
    在这里插入图片描述

图片为另一篇文章的引用,忘记是哪一篇文章了,图片及内容非原创


数据库的三级模式二级映像

  • 三级模式:
    • 外模式:
      也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
      • ① 一个数据库可以有多个外模式;
      • ② 外模式就是用户视图
      • ③ 外模式是保证数据安全性的一个有力措施。
    • 逻辑模式:
      是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
      • ① 一个数据库只有一个模式;
      • ② 是数据库数据在逻辑级上的视图
      • ③ 数据库模式以某一种数据模型为基础;
      • ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系
    • 内模式:
      也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
  • 二级映像:
    • 外模式/模式映象 :
      定义在外模式描述中,把描述局部逻辑结构的外模式与描述全局逻辑结构的模式联系起来,保证逻辑独立性
    • 模式/内模式映象 :
      定义在模式描述中,把描述全局逻辑结构的模式与描述物理结构的内模式联系起来,保证物理独立性
      • ① 一个数据库只有一个内模式;
      • ② 一个表可能由多个文件组成,如:数据文件、索引文件。 它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法
    • 优点
      • ① 为了减少数据冗余,实现数据共享;
      • ② 为了提高存取效率,改善性能。
  • 重点:一个数据库只能有一个内模式和一个模式,但是可以有多个外模式

数据库的物理独立性和逻辑独立性

  • 物理独立性 – 隔离内模式
    内模式与概念模式之间的映射实现,指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变
  • 逻辑独立性 – 隔离逻辑模式
    概念模式与外模式之间的映射实现,指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变

入度和出度


FTP服务器

  • 数据端口:20(服务器主动向客户端发起连接);1025-65535(客户端向服务器发起连接)
  • 控制端口:21

各种算法时间复杂度及空间复杂度


二叉树


各种码的表示范围


霍夫曼编码


文法

  • 类型:0型,1型,2型,3型

专利权、商标权、著作权、商业秘密权

  • 专利权申请:同为共同申请人,一方放弃并获得补偿,若协商不成都不发放
  • 专利权保护期限(期满终止且不可延长):发明专利(20年)、新型实用设计专利(10年)、外观设计专利(10年
  • 商标权申请:同一天申请的,初步审定公告使用在先的并驳回其他人,均未使用或无法证明的再各自协商,不然抽签决定,不抽则视为放弃
  • 必须使用注册商标的是烟草类商品
  • 商标权保护期限(可以无限制续期):有效期10年,期满未续约则注销商标
  • 著作权保护期限:作者的署名权,修改权和保护作品完整权的保护期限没有限制;作品的发表权保护期限是作者的终身;作品的财产权的保护权是作者死后50年,且不可延长
  • 著作权归属由委托人和受托人通过合同约定,未作明确约定的,属受托人
  • 商业秘密权:法律上没规定,只要商业秘密未泄露出去则一直受到法律保护

模块的7种内聚类型

  • 偶然内聚或巧合内聚:指一个模块内的各处理元素之间没有任何联系。
  • 逻辑内聚:指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
  • 时间内聚:把需要同时执行的动作组合在一起形成的模块。
  • 过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
  • 通信内聚:指模块内的所有处理元素都在同一数据结构上操作,或者各处理使用相同的输入数据或产生相同的输出数据。
  • 顺序内聚:指一个模块中的各个处理元素都密切相关于同一各功能且必须顺序执行,前一个功能元素的输出就是下一个功能的输入。
  • 功能内聚:指模块内的所有元素共同作用完成一个功能,缺一不可。

其他小的知识点累积

  • 队列 – 广度优先遍历;堆栈 – 深度优先遍历
  • 模块设计原则 – 高内聚,低耦合
  • 常用的中间代码:语法树后缀式三地址代码
  • 通常最先获得键盘或鼠标输入信息的是命令解释程序
  • 三明治模式:集成测试时既用到了自顶向下模式,又用到了自底向上模式
  • 分析词即此法分析,分析词的组合即语法分析,移进-递归是自下而上的语法分析方法
  • 音调:频率 音色:声音的特色 音高:频率高低和响度大小
  • 位示图:一位表示一个物理快的状态
  • 数字签名 — 对信息的发送者发送信息真实性的一个有效证明,不能验证接受者的合法性
  • 对称加密算法(IDEA,RC4)只能用来数据加密;MD5,SHA-1是信息摘要算法,只能用来生成信息摘要;非对称算法(RSA)主要具有数字签名和验签的功能且由于效率问题一般不直接用于大量的明文加密
  • 两个证书发放机构互换公钥是A、B互信的必要条件
  • 海明码:2k≥k+n+1 (n是数据位数,k是校验位位数)
  • 软件质量特性(6类):功能性(适合性、准确性、互操作性、保密安全性)、可靠性(成熟性、容错性、易恢复性、依从性)、易用性(易理解性、易学性、易操作性、吸引性,依从性)、效率(时间特性、资源利用性、效率依从性)、维护性(易分析性、易改变性、稳定性、易测试性、依从性)、可移植性(适应性、已安装性、共存性、易替换性、依从性)【依从性:国际/国家/行业/企业 标准规范一致性】
  • MTBF平均故障间隔时间:用于衡量产品可靠性的一个指标;【可靠性:在规定时间内产品保持正常功能的一种能力】
  • 错误分为静态错误(语法错误,静态语义错误)和动态错误(动态语义错误–逻辑错误,发生在程序运行时,如死循环或变量取值为0等)
  • DMA(Direct Memory Access,直接内存存取):在DMA控制器硬件的控制下实现数据的传送,不需要CPU执行程序,传送速度最快
  • 串联系统可靠性公式为 R=R1×R2×R3×R4×····×Rn并联系统可靠性公式为 R=1-(1-R1)×(1-R2)×····×(1-Rn)
  • 根据尼奎斯特取样定理:如果取样速率大于模拟信号最高频率的两倍,则可以用得到的样本恢复原来的模拟信号
  • 沟通渠道 = N(N-1)/2,N是指参加沟通的人数
  • a

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值