软考查漏补缺自用

文章目录

  • 体系结构
  • 信息安全
  • 法律法规
  • 项目管理
  • 软件工程
  • 计算机网络
  • 面向对象
  • 设计模式
  • UML图
  • 数据库模式
  • 程序设计语言
  • 操作系统
  • 数据结构
  • 多媒体
  • 系统开发
  • 白盒测试六种方法

体系结构

VLIW:(Very Long Instructin Word,超长指令字)一种非常长的指令组合,他把许多条指令连在一起,增加了运算的速度。

进制转换:
90H(H表16进制) = 1001 0000(二进制)
若90H为补码,补码最高位为符号位,此为负数
且反码为补码-1:1000 1111
且原码为反码除符号位全取反:1111 0000(十进制为-112)

虚拟存储体系由 主存辅存两级构成

  • DRAM:动态随机存取存储器(主存)
  • SRAM:静态随机存取存储器
  • Cache:高速缓存
    – Cache与主存地址映射是由硬件完成,与操作系统、存储管理软件、程序员无关
  • EEPROM:电可擦可编程只读存储器

I/O:

  • 中断
    – 在CPU执行程序的过程中,由于某一个外部的或CPU内部事件的发生,使CPU暂时中止正在执行的程序,转去处理这一事件(即执行中断服务程序),当时间处理完毕后又回到原先被中止的程序,接着中止前的状态继续向下执行。这一过程叫 中断
    – 对于中断源的识别标志,是可用来形成响应的中断服务程序的入口地址或存放中断服务程序的首地址,也称为中断向量

  • 不可屏蔽中断
    – CPU立即无条件响应

  • 可屏蔽中断
    – CPU爱理不理(例:打印机

  • 直接主存存取 DMA(Direct Memory Access)
    – 数据在主存与I/O设备之间(主存与外设之间)直接成块传送
    BIOS
    – 在计算机中,实现计算机与外部设备之间数据交换经常使用的方式有无条件传送、程序查询、中断和直接存储器存取(DMA)。其中前三种都是通过CPU执行某一段程序,实现计算机内存与外设间的数据交换。只有DMA方式下,CPU交出计算机系统总线的控制权,不参与内存与外设间的数据交换。而DMA方式工作时,是在DMA控制硬件的控制下,实现内存与外设间数据的直接传送,并不需要CPU参与工作。由于DMA方式是在DMA控制器硬件的控制下实现数据的传送,不需要CPU执行程序,故这种方式传送的速度最快。

  • BIOS存储在主板的ROM(Read-Only Memory)里

  • 扩展:RAM(Random Access Memory)也叫主存,是与CPU直接交换数据的内部存储器
    软考查漏补缺自用_第1张图片
    软考查漏补缺自用_第2张图片

计算机结构:

  • 五大件:运算器、控制器、存储器(主存辅存)、输入、输出
    – 运算器:算术and逻辑单元、累加器AC、数据读写缓冲DR、状态条件寄存器(清零、溢出等状态的记录)
    – 控制器:程序计数器PC、地址(指令)寄存器DR、指令译码、时序部件(语句顺序)

    软考查漏补缺自用_第3张图片

CPU根据指令周期的不同阶段(取指令,分析和执行指令)区分内存中以二进制编码形式存放的指令和数据

CPU执行指令的过程,会根据时序部件发出的时钟信号进行操作。在取指令阶段读取的是指令;在分析和执行指令时,如果需要操作数,则读取操作数。

PC(程序计数器)是用于存放下一条指令所在单元的地址。当执行一条指令时,处理器首先需要从PC中取出指令在内存中的地址,通过地址总线寻址获取。

  • CPU执行指令 指令周期

  • 海明码

  • 浮点数

  • 对阶时,小数向大数看齐;对阶是通过阶码小的尾数右移实现的。在这里插入图片描述

  • 硬件自动完成Cache与主存的地址映射

计算机体系结构分类-Flynn
软考查漏补缺自用_第4张图片

指令

  • 操作码 + 地址码构成
  • 有三、二、一、零地址指令(a+b+c, a-b, a++, exit)

寻址方式
软考查漏补缺自用_第5张图片

CISC与RISC
软考查漏补缺自用_第6张图片
软考查漏补缺自用_第7张图片

流水线

  • 流水线周期为执行时间最长的一段
  • 流水线计算公式为:
    – 1条指令执行时间 + (指令条数 - 1)* 流水线周期
  • 超标量流水线(多条流水线同时干活)
  • 流水线吞吐率
    – TP(流水线吞吐率) = 指令条数 / 流水线执行时间
    – TPmax(流水线最大吞吐率) = 1 / 流水线周期
    软考查漏补缺自用_第8张图片

层次化存储结构:
软考查漏补缺自用_第9张图片
人话版本:
直接相连:1v1但哈希,冲突就死
全相连:任选一块进行1v1,但成本高
组相连:组与组之间1v1哈希,组内随便分配

程序的局限性表现在时间局部性和空间局部性:
(1)时间局部性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行;
(2)空间局部性是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。

总线:

  • 一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
    软考查漏补缺自用_第10张图片

串联系统与并联系统

  • 可靠性
    – 串联:可靠性R相乘
    – 并联:1 - (1-R1)✖️(1-Rn)【1减去失效率就是可靠性】

校验码:

  • 循环校验码CRC (是模2除法)

可靠性

  • MTTF(Mean Time to Failure,平均无故障时间)MTTF为平均无故障时间,则可靠性可用MTTF/(1+MTTF)表示。(可靠性是指系统在给定的时间间隔内、给定条件下无失效运作的概率)
  • MTTR(Mean Time to Restoration,平均修复时间)
  • MTBF(Mean Time Between Failures,平均故障间隔时间)MTBF为平均失效间隔时间,则可用性用MTBF/(1+MTBF)表示。(可用性是指在给定的时间点上,一个系统能够正确运作的概率)
  • 可靠性:MTTF/(1+MTTF)
  • 可用性:MTBF/(1+MTBF)
  • 可维护性:1/(1+MTTR)

信息安全

  • 病毒
    – 文件型,感染可执行文件(exe和com
    – 引导型,软硬盘引导扇区
    – 宏病毒,程序创建的文本文档、数据库、电子表格
    – 目录型,修改硬盘上存储的所有文件的地址
    – 蠕虫病毒

加密算法:

  • 非对称加密:公开密钥加密(RSA)
  • 对称加密:共享密钥加密(IDEA,RC4,RC5 适合对大量明文进行加密)
  • 对于非对称加密又称为公开密钥加密,而共享密钥加密指对称加密。
  • 常见的对称加密算法有:DES,三重DES、RC-5、IDEA、AES

摘要算法:

  • MD5,算法输出由四个32位分组组成,级联后生成一个128位散列码
  • SHA-1

防火墙技术:
软考查漏补缺自用_第11张图片
网络安全协议:

  • MIME:互联网标准,扩展了电子邮件标准,与安全无关(S/MIME与安全有关)
  • PGP(Pretty Good Privacy 优良保密协议)是一套用于信息加密、验证的应用程序,可用于加密电子邮件内容
  • HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer(SSL)

数字证书:

  • 用户身份认证:数字证书的发送方公钥
  • 消息不可否认:确保发送者身份不可抵赖,使用发送方的数字签名

其他网络安全控制技术

  • 安全审计 对主体访问和适用客体的情况进行记录和审查,以保证安全规则被正确执行,并帮助分析安全事故产生的原因
  • 安全访问控制 授权、确定存取权限、实施存取权限

其他
在这里插入图片描述

主动攻击:

  • 拒绝服务(DOS):对信息或其他资源的合法访问被无条件的阻止
  • 会话拦截:未授权使用一个已经建立的会话
  • 修改数据命令:截获并修改网络中传输的数据命令

被动攻击:

  • 系统干涉:攻击者获取系统的访问权,从而干涉系统的正常运行,属被动攻击

入侵检测技术:
专家系统、模型检测、简单匹配
漏洞扫描不是入侵检测技术,防火墙不提供漏洞扫描功能

法律法规

  • 买了工具软件A,用A开发了B,卖B的同时免费提供A,侵犯了A的著作权

  • 著作权是 自作品完成之时就开始了保护,即使没申请注册商标,被别人仿制出来,也是被侵犯著作权

  • 著作权中修改权、署名权、保护作品完成权都是永久保护的

  • 注册商标有效期满,需要继续使用的,应当在期满前六个月内申请续展注册。专利权和著作权到期后都无法延长,而商业秘密权无期限限制。

  • 乙企业委甲公司开发软件。根据《著作权法》第17条的规定,著作权归属由委托人和受托人通过合同约定。合同中未作明确约定的,著作权属于受托人。那么该案例中,软件著作权归属没有明确约定,所以著作权归受托人甲,而不是甲公司派出去的软件设计师。

  • 烟草必须有商标

项目管理

  • 成本管理
    – COCOMO || 体系结构模型把工作量表示为代码行数
    – COCOMO II 模型也需要使用规模估算信息,在模型层次结构中有3种不同规模估算选择,即:对象点、功能点和代码行。
    – 应用组装模型使用的是对象点
    – 早期设计阶段模型使用的是功能点,功能点可以转换为代码行;
    – 体系结构模型使用的是代码行数
  • 配置管理
    – 包括版本控制,变更管理,配置状态报告,配置审计

软件工程

  • 内聚性
通信内聚:一个模块的所有成分都操作【统一数据集】或生成【同一数据集】,例:两个方法分别负责读/写
逻辑聚合:模块内部的各个组成在【逻辑上】具有相似的处理动作
过程聚合:【模块内部】各个组成部分所要完成的动作无关但必须【特定次序】
内容耦合:一个模块需要涉及【另一个模块的内部信息】
功能内聚:完成一个单一功能,各个部分【协同工作】,缺一不可
顺序内聚:处理元素相关,而且必须顺序执行
瞬时内聚:所包含的任务必须在同一时间间隔内执行
偶然/巧合内聚:完成一组没有 关系或松散关系的任务,由于内容不相关,所以必然导致它与外界多个模块有关联,这也使得模块间的耦合度增加

软考查漏补缺自用_第12张图片

  • 架构设计
    – 管道过滤器风格
    – 仓库风格
  • 耦合性( 耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
    – 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。
    – 标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。本题描述的是标记耦合。
    – 控制耦合:两个模块彼此间传递的信息终有控制信息
    – 内容耦合:一个模块需要涉及到另一个模块的内部信息
    – 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
    – 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
    结构化方法:
  • 分析结果四部分:数据流图,数据词典,加工逻辑说明(小说明),补充材料
  • 数据流图:自向下,从抽象到具体

开发模型:

  • 原型模式:适用于需求不明确时用以获取需求

  • 演化/迭代:尽快投入使用,并可以在使用过程中不断完善

  • XP极限编程:
    – 简单设计(只处理当前请求)
    – 测试先行(先写测试代码,再写程序)
    – 持续集成(可以按日甚至小时为客户提供可运行版本)
    – 现场客户(系统最终用户代表应该全程配合XP团队)
    – 计划游戏(快速制定计划,随着细节的不断变化而完善)
    – 小型发布(系统的设计要能够尽可能早地交付)
    – 隐喻(真到合适的比喻传达信息)
    – 重构(重新审视需求和设计,重新明确地描述它们以符合新需求)
    – 结对编程;集体代码所有制;每周工作40小时;编码标准;
    — 极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其他一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。XP就提倡结对编程(Pair Programming),而且代码所有权是归于整个开发队伍。其中的结对编程就是一种对代码的审查过程,XP主要解决代码质量低的问题,编码速度不能改变。

  • 敏捷开发
    – Product Backlog(产品待办事项清单)
    – Sprint Backlog(待办事项清单)
    – Sprint(冲刺迭代)

  • 喷泉模型
    – 面向对象的开发模型。特点是:迭代无间隙,以用户需求为动力

  • 并列争球法使用了迭代的方法,其中,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

  • 螺旋模型
    – 螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

  • 增量模型
    – 又称为渐增模型,也称为有计划的产品改进模型,它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动。第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。增量模型是瀑布模型和原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。但增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。
    增量模型有以下不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需要不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。一开始需求不清晰,会影响开发的进度。

质量保证:

  • 可靠性质量属性:成熟性、容错性、易恢复性

人机界面设计:

  • 黄金三原则:用户操纵控制、减轻用户记忆负担、保持界面一致性

其他:

  • 模块结构图由:模块、调用、数据、控制信息、转接符号 组成。

软件设计原则

  • 高内聚,低耦合,模块大小适中

软件过程改进

  • CMM模型

计算机网络

  • UDP
    – SNMP(161):simple net manage protocol,简单网络管理协议
    – TFTP(69):Trivial File Transfer Protocol,简单文件传输协议
    – DHCP(67):Dynamic Host Configuration Protocol,动态主机配置协议
    – DNS(53):Domain Name Server,域名服务器

协议应用提升:

  • 使用web方式收发电子邮件时
    必须设账号密码
    – 无需设置简单邮件传输协议
    – 邮件可以插入多个附件
    – 未发送邮件可以保存到草稿箱
    软考查漏补缺自用_第13张图片
  • DHCP协议:无效的IP地址:169.254.X.X(widows)和0.0.0.0(linux)

上网:

  • ADSL Modem拨号
    – 专线方式(静态IP),PPPoA,PPPoE
    软考查漏补缺自用_第14张图片
    DNS:
    软考查漏补缺自用_第15张图片

路由配置
软考查漏补缺自用_第16张图片
对于多种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议。

常用命令
软考查漏补缺自用_第17张图片
软考查漏补缺自用_第18张图片
在这里插入图片描述
在这里插入图片描述

软考查漏补缺自用_第19张图片

面向对象

多态:

  • 参数多态:应用广泛,最纯的多态
  • 包含多态:同样的操作可用于一个类型及其子类型,一般要进行运行时的类型检查
  • 强制多态:编译程序通过语意操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
  • 过载多态:同一个名在不同的上下文中有不同的类型

特殊/一般关系(泛化)

  • 特殊元素(子对象)是一般元素(父类对象)的一种特殊表现

面向对象设计原则
软考查漏补缺自用_第20张图片

  • 面向对象分析的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型。
  • 采用面向对象方法进行软件开发时,在分析阶段,架构师主要关注系统的行为,即系统应该做什么。
  • 对象的状态包括这个对象的所有属性(通常是静态的)以及每个属性当前的值(通常是动态的);
  • 为了将一个对象与其他所有对象区分开来,我们通常会给它起一个“标识”;
  • 行为是对象根据它的状态改变和消息传递所采取的行动和所作出的反应;对象的行为代表了其外部可见的活动;操作代表了一个类提供给它的对象的一种服务。

设计模式

  • 命令模式: 将一个请求封装成一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
  • 策略模式:定义一系列的算法,把他们一个个封装起来,并且使他们之间可相互替换,从而让算法可以独立于使用它的用户而变化。
  • 抽象工厂模式:提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。
  • 享元模式:提供支持大量细粒度对象共享的有效方法。
  • 外观模式:定义一个高层接口,为子系统中的一组接口提供一个一致的外观,从而简化了该子系统的使用
  • 状态模式:允许一个对象在其内部状态改变时改变它的行为
  • 组合模式:将对象组合成树型结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
  • 迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。
  • 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存的状态。
  • 责任链模式:通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。
  • 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子。
  • 生成器模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
  • 桥接模式:是一种结构型软件设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化

UML图

实体联系图(可以框选出一个集合进行两端联系,17上年下午2题)
类图(实心菱形-组合,展现了一组对象、接口、协作和它们之间的关系)
组件图(展现了一组组件之间的组织和依赖)
部署图(用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件制品的配置)
通信图(强调收发消息的对象或参与者的结构组织)
顺序/序列图(1个用例和多个对象的行为,强调消息的时间次序的交互图)
状态图(迁移的概念,迁移的时间,每条线一定有事件)
活动图(每条线不一定有事件)
对象图(展示了某一时刻一组对象以及它们之间的关系)
用例图(展现了一组用例、参与者以及它们之间的关系)

Example:
类图里的类如果是abstract,它没有“直接对象”,因为它是抽象的

数据库模式

  • 模式分解(https://www.bilibili.com/video/BV1DR4y1G7FV)
  • 视图,存储文件,基本表 = 外模式,内模式,模式

创建聚簇索引意味着重新确定表中的数据的物理顺序,是内模式是数据物理结构和存储方式的描述,对应着物理层,所以对于物理顺序的操作改变的一定是内模式。
外模式也称用户模式,是用户与数据库系统的接口,对应着视图层,AB是同一个概念。
模式也称概念模式,是数据库中全部数据的逻辑结构和特征的描述,对应着逻辑层。

在这里插入图片描述
在这里插入图片描述
软考查漏补缺自用_第21张图片
在这里插入图片描述
软考查漏补缺自用_第22张图片
软考查漏补缺自用_第23张图片
分布式数据库:
软考查漏补缺自用_第24张图片
冲突:
软考查漏补缺自用_第25张图片

程序设计语言

编译器工作过程
软考查漏补缺自用_第26张图片

编译型语言:预处理-编译-汇编-链接

中间代码的表达形式有:语法树,后缀式,三地址代码

程序设计语言的基本成分包括数据、运算、控制和传输等。
程序设计语言的控制成分包括顺序、选择和循环3种结构。

操作系统

  • 线程共享:进程代码段、进程的公有数据、进程打开的文件描述符、信号的处理器、进程的当前目录、进程用户ID、进程组ID
  • 线程独有:线程ID、寄存器组的值、线程的堆栈(如栈指针)、错误返回码、线程的信号屏蔽码

软考查漏补缺自用_第27张图片

存取时间 = 寻道时间 + 等待时间
寻道时间是指磁头移动到磁道所需的时间;
等待时间为等待读写的扇区转到磁头下方所用的旋转延迟时间

实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。
软考查漏补缺自用_第28张图片

数据结构

-时空复杂度:渐进分析(1000n的渐进表示就是O(n))
在这里插入图片描述

多媒体

改变数字载波频率可以改变乐音的音调。 改变它的幅度就可以改变乐音的音高。

系统开发

软考查漏补缺自用_第29张图片

  • 数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素作出详细的说明,使用数据字典为简单的建模项目。其条目有数据流、数据项、数据存储、基本加工等。
  • 辅助软件维护过程中的活动的软件称为“软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:
    – 1、版本控制工具;
    – 2、文档分析工具;
    – 3、开发信息库工具;
    – 4、逆向工程工具;
    – 5、再工程工具;
    – 6、配置管理支持工具。
    软考查漏补缺自用_第30张图片
    模块化设计:
    软考查漏补缺自用_第31张图片软考查漏补缺自用_第32张图片

白盒测试六种方法

一、语句覆盖

使程序中的每个可执行语句都能执行一次的测试用例

二、判断覆盖(分支覆盖)

对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况

三、条件覆盖

设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果

四、判断条件覆盖(分支条件覆盖)

设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次

五、条件组合覆盖

设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次

六、路径覆盖

设计测试用例时,覆盖程序中所有可能的执行路径

你可能感兴趣的:(基础,学习)