美文网首页
2018软考复习笔记

2018软考复习笔记

作者: jianshuqwerty | 来源:发表于2019-04-01 09:54 被阅读0次

软考复习笔记

<h2 id='1'>
计组基础、数据表示、校验码
</h2>

存储

  • 主存储器:DRAM

流水线技术

  • 流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率
  • 流水线中的瓶颈——最慢的那一段
  • 多个任务同时执行,但使用不同的资源
  • 其潜在的加速比=流水线的级数
  • 流水段所需时间不均衡将降低加速比
  • 流水线存在装入时间和排空时间,使得加速比降低
  • 由于存在相关问题,会导致流水线停顿


    流水线.png

主存 Cache 映射方式

  • 全相联映射:停车场
  • 直接映射:多个主存块(0,8,16/1,9,17)共享一个cache块
  • 组相联映射:

校验码

  • 海明校验码可以找到错误的位置

输入输出技术

  • 内存地址与接口地址的编址方式:独立编址方式、统一编址方式
  • 信息交换方式:
    • 直接程序控制:外设数据的输入输出实在CPU执行程序的控制下完成的,缺点是CPU要频繁查询外设状态
      • 无条件传送:
      • 程序查询方式:CPU程序查询外设是否准备好
    • 中断方式:外设准备好后向CPU发送请求中断信号
      • 中断处理方法:菊花链法,总线仲裁法,多中断信号线法
    • 直接存储器存取方式(DMA):
      • 数据在内存和外设之间直接成块传送
      • 实际操作由DMA硬件直接完成,CPU可以在传送过程中做别的事情

位示图

  • 某文件管理系统在磁盘上建立了位示图(bitmap) , 记录磁盘的使用情况。 若计算机 系统的字长为 32 位, 磁盘的容量为 300GB ,物理块的大小为 4MB , 那么位示图的大小需要()个字。
    A.1200 B.2400 C.6400 D.9600
  • 由于磁盘容量为300G,物理块大小4MB,所以共有300*1024/4=75*1024块物理块,位示图用每1位表示1个磁盘块的使用情况,1个字是32位,所以1个字可以表示32块物理块使用情况,那么需要75*1024/32=2400个字表示使用情况

<h2 id='2'>
计算机网络
</h2>
与HTTP相比,HTTPS(超文本传输安全协议)协议对传输的内容进行加密,更加安全。HTTPS基于(SSL)安全协议,其默认端口是(443)。
HTTP基于(TCP/IP)协议,默认端口(80)

IP地址,子网掩码,默认网关,DNS服务器

  • DNS服务器
    • 域名服务器(Domain Name Server)。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器
    • 班主任由全班同学的通讯录(姓名-电话),班主任就是DNS服务器
  • IP地址
    • 电脑之间要实现网络通信,就必须要有一个合法的ip地址。
    • IP地址=网络地址+主机地址,(又称:网络号和主机号组成,理解为:院子号+门牌号
    • ip地址的结构使我们可以在Internet上很方便的寻址。ip地址通常用更直观的,以圆点分隔号的四个十进制数字表示,每个数字从0到255,如某一台主机的ip地址为:128.20.4.1
    • 在局域网里,同样也需要ip地址,一般内网的ip地址是以192.168开头的,这样很容易区分公网和内网的ip地址。
    • 广播:在院子里喊一声“我住六号”,院子里其他住户也能听到
      • 网络地址(相当于街道地址): 192.168.100.0
      • 主机地址(相当于各户的门号): 0.0.0.1
      • IP地址(相当于住户地址): 网络地址+主机地址=192.168.100.1
      • 广播地址: 192.168.100.255
  • 子网掩码
    • 子网掩码是用来判断任意两台计算机的ip地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的ip地址与子网掩码进行and运算后,得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。
  • 为什么要计算网络地址?
    • 用网线直接连接的计算机或是通过HUB(集线器)或普通交换机间接的计算机之间要能够相互通,计算机必须要在同一网络,也就是说它们的网络地址必须相同,而且主机地址必须不一样
    • 两台计算机:网络地址相同,IP地址不同就是可通的
  • 计算网络地址
    • 将IP地址和子网掩码都换算成二进制,然后进行与运算,在转为十进制,结果就是网络地址
  • 默认网关
    • 网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络A向网络B转发数据包的过程。
    • 网络A的主机-》网关A-〉网关B-》网络B的主机
    • 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

练习一


计算机网络练习1.png

解:题中 ServerA 的IP 参数中的“/27”表示此 ServerA 所处网络的子网掩码为 27 位,即 IP 地址 131.1.123.24 中前 3 个 8 位组和第 4 个 8 位组中的前 3 位为网络标志位(8+8+8+3=27),第 4 个 8 位组中的后 5 位为主机位。将 IP 地址 131.1.123.24 展开点分二进制为: 10000011.00000001.01111011.000 11000(前 27 位为网络标志位, 后 5 位为主机位) 。 网络标志位不变,而网络主机位从全 0 变化到全 1 得 ServerA 所处网络的 IP 地址范围: 10000011.00000001.01111011.000 00000~10000011.00000001.01111011.000 11111, 即 131.1.123.0~131.1.123.31。给一个网络设备配置的网关地址应该与当前设备的 IP 地址在同一个网络中,此设备才能正常连网,而 ServerA 的网关地址为 131.1.123.33,不在 ServerA 所属的网络中, 所以 ServerA 通往外部网络的数据包压根就传送不出当前网络, ServerB 也即不能与 ServerA 通信。


URL(统一资源定位器(URL, Uniform Resource Locator))

  • 如果要使 www.abc.comabc.com 打开同一页面,需要在 Web 服务器端进行具体的配置才行,也可配置为打开不同的页眉,

网关

  • 网关是默认的数据出口。如果你的数据不知道往哪里走的话,那么他会去默认网关那里报道。
  • 路由器包含许多这样的网关,其中之一是默认网关。也就是说数据到了路由器以后,如果不知道自己下一步该怎么走了,那么他会去默认网关那里去报道。
  • 仅有192.168.2.254 与当前主机(192.168.。。。)在同一个网段,所以仅有该地址能充当网关角色

分类:

  • 局域网(LAN):房间、楼、校园
  • 城域网(MAN):城市
  • 广域网(WAN):国家/全球

网络的拓扑结构:

  • 总线型
  • 星型
  • 树型
  • 环型
  • 分布式

ISO/OSI网络体系结构

  • 七层,修改本层的功能不影响其他层
  • (物理介质):与物理层之间有物理连接,其余层之间没有连线
  • 物理层 二进制传输 中继器、集线器
  • 数据链路层 传送以帧为单位的数据 网桥、交换机、网卡
  • 网络层:网络协议 三层交换机、路由器 分组传输和路由选择
  • 传输层:传输协议 端到端的连接(端口) TCP UDP
  • 会话层:会话协议 建立、管理和终止会话
  • 表示层:表示协议
  • 应用层:应用协议
  • A系统的用户向B系统的用户传送数据:数据依次从顶向下经过应用层-···->物理层
网络协议.png

被动攻击:被动攻击主要是收集信息而不是进行访问
9.下列攻击行为中,属于典型被动攻击的是(B)。A.拒绝服务攻击 B.会话拦截 C.系统干涉 D.修改数据命令 10.(D)不属于入侵检测技术。A.专家系统 B.模型检测 C.简单匹配 D.漏洞扫描 11.以下关于防火墙功能特性的叙述中,不正确的是(D)。A.控制进出网络的数据包和数据流向B.提供流量信息的日志和审计C.隐藏内部IP以及网络结构细节D.提供漏洞扫描功能 12.某软件公司项目组的程序员在程序编写完成后均按公司规定撰写文档,并上交公司存档。此情形下,该软件文档著作权应由(C)享有。A.程序员 B.公司与项目组共同 C.公司 D.项目组全体人员

UDP

  • UDP 与TCP 的主要区别在于UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效,在数据传输过程中延迟小、数据传输效率高(快消较小)。当某个程序的目标是尽快地传输尽可能多的信息时,可使用UDP。

127.0.0.0

  • 127.0.0.0 是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP 堆栈内部的IP 地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。

网络安全

网络安全协议

  • 物理安全:物理安全中“物理” 即身体的、物质的、自然的意思,物理安全是整个网络信息安全的前提, 包括物理安全基础、 物理安全技术控制错误、 物理设置要求、 环境(机房安全)和人身安全等方面。
  • 网络安全:网络安全包含网络体系结构安全、 通信和网络技术安全、 互联网技术和服务安全。 网络安全中常用的安全设备有:防火墙、入侵检测、入侵防御设备等(入侵检测)
  • 系统安全:系统安全指的是从整体电子商务系统或网络支付系统的角度进行安全防护,它与网络系统硬件平台、操作系统、各种应用软件等互相关联。系统安全主要面临的威胁有:系统实现存在漏洞、系统安全体系缺陷、使用人员的安全意识薄弱、管理制度的薄弱等(漏洞补丁管理)
  • 应用安全:应用安全指的是针对特定应用所建立的安全防护措施。如 Web 应用安全、电子邮件安全、电子商务安全、数据库应用安全等

加密

加密.png
数字签名
  • 以下加密算法中适合对大量的明文消息进行加密传输的是:RC5
  • 假定用户A、B 分别在I1 和I2 两个CA 处取得了各自的证书,下面 (9) 是 A、B 互信的必要条件。
    A.A、B 互换私钥 B.A、B 互换公钥 C.I1、I2 互换私钥 D.I1、I2 互换公钥
  • 试题分析:D. 两个证书发放机构I1 和I2 互换公钥是A、B 互信的必要条件。选项A 和C 的私钥是不能互换的。选项B 中要AB 互信,其信任基础是建立在CA 之上的,如果仅交换AB 的公钥并不能解决信任的问题。
  • RSA 非对称加密算法,用来数字签名
  • IDEA RC4 对称加密算法,用来数据加密
  • MD5 消息摘要算法第五版, 为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

DNS

  • DNS系统的功能就是自动把域名地址翻译为IP地址
  • 在浏览器地址栏输入一个正确的网址后, 本地主机将首先在(B)查询该网址对应的 IP 地址。A.本地 DNS 缓存 B.本机 hosts 文件 C.本地 DNS 服务器 D.根域名服务器

<h2 id='3'>数据库</h2>

数据流图(DataFlowDiagram/DFD)

  • 数据流图描述数据在系统中如何被传送、变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模
  • 数据流:
  • 加工:输入数据流经过什么加工变成了输出数据流
  • 数据存储:
  • 外部实体(源点/终点):存在于软件系统外的人员或组织
DFD0.png
某公司拟开发一个共享单车系统,采用北斗定位系统进行单车定位,提供针对用户的APP以及微信小程序,基于Web的管理与监控系统。该共享单车系统的主要功能如下。
1)用户注册登录。用户在APP段端输入手机号并获取验证码后进行注册,将用户信息进行存储。用户登录后显示用户所在位置周围的单车。
2)使用单车。
①扫码/手动开锁。通过扫描二维码或手动输入编码获取开锁密码,系统发送开锁指令进行开锁,系统修改单车状态,新建单车行程。
②骑行单车。单车定时上传位置,更新行程。
③锁车结账。用户停止使用或手动锁车并结束行程后,系统根据已设置好的计费规则及使用时间自动结算,更新本次骑行的费用并显示给用户,用户确认支付后,记录行程的支付状态,系统还将重置单车的开锁密码和单车状态。
3)辅助管理。
①查询。用户可以查看行程列表和行程详细信息。
②保修。用户上报所在位置或单车位置以及单车故障信息并进行记录。
4)管理与监控
①单车管理及计费规则设置。商家对单车基础信息,状态等进行管理,对计费规则进行设置并存储。
②单车监控。对单车,故障,行程等进行查询统计。
③用户管理。管理用户信用与状态信息,对用户进行查询统计

E1:用户;E2:商家;E3:单车
D1:用户信息文件;D2:单车信息文件;D3:行程信息文件;
D4:计费规则信息文件:D5:单车故障信息文件
【问题3】(5分)
根据说明和图中术语及符号,补充图1-2中缺失的数据流及其起点和终点。
P3-E1 开锁密码
P3-E3 开锁指令
P3-D2 单车状态
D3-P3 使用时间
D4-P3 计费规则
P3-E1 费用
P3-D3 费用???
D3-P7 
  • 用 200 字以内文字,说明上下文数据流图和0层数据流图如何保持数据流图:
  • 父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和内容上保持一致,即数据不会凭空产生,也不能凭空消失。父图的一个输入(或输出)数据流应对应子图中几个输入(或输出)数据流,而子图中组成的这些数据流的数据项全体正好是父图中的这个数据流。

E-R图

  • 强实体:有属性;弱实体:没有属性

聚簇索引

把在某个或某些属性上具有相同值的元组集存放在连续的物理块中成为聚簇,如信息系的500个学生的信息存在一个物理块上

<h3>关系数据库的规范化</h3>

函数依赖

  • X->Y,X决定Y,Y依赖于X
  • 完全函数依赖:X-->Y, X的真子集X`-/->Y
  • 部分函数依赖
  • 传递依赖:X->Y, Y不是X的子集,Y->Z

规范化

  • 1NF:每一个属性不可再分
  • 2NF:消除非主属性对码的部分函数依赖
  • 3NF:消除非主属性对码的传递依赖
  • BCNF:每一个非平凡的函数依赖中都有码

<h2 id='4'>软件工程</h2>

基本要素

软件工程的基本要素包括方法、工具和过程

  • 方法:方法是为软件开发提供了“如何做” 的技术, 如面向结构化方法(面向结构化的设计阶段先后分为概要设计和详细设计。概要设计阶段在需求定义的基础上,把各功能需求转换成需要的体系结构,即划分模块、模块的层次、模块之间的调用关系以及各模块的功能,同时设计应用系统的总体数据结构和数据库结构;详细设计阶段对概要设计阶段得出的各功能模块进行详细描述成精确的、结构化的过程描述,即各个功能模块具体怎么实现,用相应的工具把模块的控制结构表示出来,但还未进行编码。)、 面向对象开发方法等;
  • 工具:指为软件工程方法提供的自动的或半自动的软件支撑环境,包括需求分析工具、设计工具、实现工具,维护工具,配置工具等, 软件开发环境又称 CASE 工具;
  • 过程:主要指管理过程,是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤,如软件工程管理中的进度管理、成本管理、质量度量模型等属于软件开发管理过程

风险管理

  • 风险暴露:又称风险曝光度,测量的是资产的整个安全性风险,它将表示实际损失的可能性与表示大量可能损失的资讯结合到单一数字评估中。在形式最简单的定量性风险分析中,风险曝光度(Risk Exposure)=风险损失*风险概率, 风险曝光度越大,风险优先级别就越高

软件开发模型

  1. 瀑布模型。瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一阶段,整个模型就像一个飞流直下的瀑布。优点:以文档作为驱动,强迫开发人员采用规范的方法,严格规定了各阶段必须提交的文档;要求每一阶段结束后,都要进行严格的评审。与它最相适应的开发方法是结构化方法。缺点:不适应软件开发工作中用户需求的改动。
  2. 原型模型。原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型。原型模型适应于软件开发过程中用户需求还会变更的场合。原型模型又细分为快速原型、演化原型和增量模型三种。
  3. 快速原型。获知用户的真正需求,一旦需求确定了,原型即被抛弃。主要用于需求分析阶段。不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法,所以不能定义完善的文档。
  4. 演化原型。应用于整个软件开发过程,是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种“抛弃式”的原型化方法,而演化模型则是一种“渐进式”的原型化方法。
  5. 增量模型。主要用于设计阶段,把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。新的增量构件不得破坏已经开发出来的产品。增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
  6. 螺旋模型。综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。
  7. V 模型。 V 模型一种典型的测试模型,该模型强调开发过程中测试贯穿始终。 V 模型在瀑布模型的基础上,强调测试过程与开发过程的对应性和并行性,同样要求需求明确,而且很少有需求变更的情况发生。
  8. 喷泉模型。一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目丌发效率,节省开发时间,适应于面向对象的软件开发过程。在以上模型中, 只有螺旋模型考虑风险因素。

软件开发方法

  1. 结构化开发方法
    面向数据流的开发方法,总的指导思想是:自顶向下,逐层分解。其基本原则是功能的分解与抽象。特别适合于数据处理领域的问题,但是不适合解决大规模的,特别复杂的项目,且难以适应需求的变化。
  2. Jackson
    面向数据结构的开发方法,
    JSP以数据结构为驱动,适合于小规模的项目。但输入数据结构与输出数据结构没有对应关系时,这种方法难以胜任。
    JSD以事实为驱动,是一种基于进程的开发方法,所以适应于时序特点较强的系统,包括数据处理系统和一些实时控制系统。
  3. 原型方法
    比较适合于用户需求不清,需求经常变化的情况。当系统规模不是很大也不是很复杂时,采用此方法比较合适。
  4. 面向对象方法
    基本出发点事尽可能地按照人类认识世界的方法和思维方式来分析和解决问题。以对象作为基本元素,这也是分析问题,解决问题的核心。

敏捷开发方法

  • 极限编程(XP):敏捷开发的典型方法之一,是一种轻量级(敏捷)、高效,低风险、柔性、可预测的、科学的软件开发方法,它由价值观、原则、实践和行为4个部分组成。其中4大价值观为沟通、简单性、反馈和勇气。
  • 水晶法(Crystal):水晶方法体系与XP一样,都有以人为中心的理念,但在实践上有所不同。水晶方法体系考虑到人们一般很难严格遵循一个纪律约束很强的过程,认为每一种不同的项目都需要一套不同的策略、约定和方法论。因此,与XP的高度纪律性不同,水晶方法体系探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。
  • 并列争球法(Scrum):用迭代的方法,其中把每30天一次的迭代称为一个“冲刺”,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品。协调是通过简短的日常会议来进行的。
  • 自适应软件开发(ASD):ASD的核心是三个非线性的、重迭的开发阶段:猜测,合作与学习。本题选择B选项。

软件测试

  • 集成测试(integration testing)也称为组装测试,在单元测试的基础之上,把所有的模块组装成一个系统进行测试。主要测试设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。
  1. 非渐增式集成测试
    首先将每个模块分别进行单元测试,再把所有的模块组装成一个完整的系统进行测试。目前在进行集成测试时已普遍采用渐增式集成。
  2. 渐增式集成测试
    又可以分为自顶向下集成和自底向上集成。软件的集成测试最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。
  3. 三明治测试
    从系统的三个角往中间包围测试的方法。
    自底向上的集成测试不需要编写桩模块, 但需要编写驱动模块,而自顶向下的集成测试需要编写桩模块,不需要编写驱动模块。

软件技术评审

⑴发现功能、逻辑或实现的错误;
⑵证实经过评审的软件的确满足需求;
⑶保证软件的表示符合预定义的标准;
⑷得到一种一致的方式开发的软件;
⑸使项目更易管理。

<h3 id='41'>配置管理</h3>

  • 配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。
  • 配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置。
  • 配置管理的活动包括:制定配置管理计划、配置库管理、配置控制、配置状态报告、配置审计、发布管理和交付。
  • 风险管理是与配置管理并列的项目管理过程。
  • 软件配置管理的内容包括版本控制、变更控制及过程支持

<h3 id='42'>软件需求</h3>

  1. 某企业财务系统的需求中,属于功能需求的是(A)。 A. 每个月特定的时间发放员工工资 B. 系统的响应时间不超过3秒 C. 系统的计算精度符合财务规则的要求 D. 系统可以允许100个用户同事查询自己的工资
    解析:功能需求:系统要做什么,在何时做,在何时以及如何修改升级。

<h3 id='44'>管道/过滤器体系结构</h3>

  • 它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。

(1)使得软件构件具有良好的隐蔽性和高内聚、低耦合的特点;
(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
(3)支持软件重用。提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
(4)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;
(5)允许对一些属性如吞吐量、死锁等的分析;
(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其他任务并行执行。
(7)不能提高性能。

<h3 id='45'>耦合与内聚</h3>

耦合

以下耦合度由高变低:

  • 内容耦合:内容耦合是最紧的耦合程度,一个模块直接访问另一模块的内容
  • 公共耦合:一组模块都访问同一个全局数据结构(全局数据结构、共享的通信区、内存的公共覆盖区)
  • 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息
  • 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合
  • 标记耦合:调用模块和被调用模块之间传递数据结构
  • 数据耦合:调用模块和被调用模块之间只传递简单的数据项参数
  • 非直接耦合

内聚 高内聚低耦合

内聚是一个模块内部各成分之间相关联程度的度量。

内聚按强度从低到高有以下几种类型:

(1)偶然内聚

如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。

(2)逻辑内聚

几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。

(3)时间内聚

如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。

(4)通信内聚

如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
某模块中有两个处理 A 和 B,分别对数据结构 X 写数据和读数据,则该模块的内聚类型为通信内聚

(5)顺序内聚

如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分
的输入,则称为顺序内聚。

(6)过程内聚

过程内聚是指构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。

(7)信息内聚

模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。

(8)功能内聚

模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。

UML类图

UML0.png
  • 实现关系:小汽车实现车这个接口/抽象类

  • 泛化关系:泛化关系表现为继承非抽象类

  • 聚合关系:即使整体不存在了,部分仍然存在;聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成;

  • 组合关系:如果整体不存在了,则部分也不存在了

  • 关联关系:have-a 它描述不同类的对象之间的结构关系;它是一种静态关系, 通常与运行状态无关,一般由常识等因素决定的 两个类之间可以有由多个不同角色标识的关联

  • 依赖关系:与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化

  • UML图可以对系统的词汇、简单的协作、逻辑数据库模式建模,不能对对象快照()建模

  • 如果一个框中的名称带有“:”号,说明这表示的是一个对象,“:”号前的部分实对象名,后面的部分实类名。

  • 用例图:带小人,从用户的角度来描述对信息系统的需求,分析产品的功能和行为。

  • 类图

  • 对象图:方框带冒号(表示对象)

  • 协作图:对象图+对象间通信

  • UML用例图的参与者:人、硬件或其他系统可以扮演的角色

  • UML活动图

    • 动作状态:表示原子动作,用带圆端的方框表示。
    • 分支:菱形+监护条件表达式
    • 分叉与汇合:分叉也用于将动作流分为多个并发运行的分支,汇合用于同步这些运行分支,以达到共同完成一项事务的目的。两者都使用同步条来表示,即一条粗的水平线。
    • 对象流:用活动图描述某个对象时,可以将涉及到的对象放到活动图中,并用一个依赖将其连接到活动或状态上,对象的这种使用方法就构成对象流。用虚线表示。
  • UML状态图:节点是状态,箭头是事件

UML建模语言

  1. 用例图:用例图以图形化的方式描述系统与外部系统及用户的交互,其以图形化的方式描述了谁将使用系统,以及用户期望以什么方式与系统交互,主要用在面向对象需求分析阶段。
  2. 类图:类图是显示一组类、接口、协作以及它们之间关系的图。类图用于对系统的静态设计视图建模。当对系统的静态视图建模时,通常以下述三种方式之一使用类图:
    • 对系统的词汇建模
    • 对简单协作建模
    • 对逻辑数据库模式建模。
    • (注意:物理数据库模式建模采用构件图实现)
    • 总之,类图描述系统的对象类结构,他们显示构成系统的对象类以及这些对象类之间的关系。
  • 对象图:对象图类似于类图,但并不描述对象类,它们对实际的对象实例建模---显示实例属性的当前值。
  • 序列图(顺序图):序列图以图形化方式描述了在一个用例或操作执行过程中对象如何通过消息互相交互,说明了消息如何在对象之间被发送和接收以及发送的时间顺序。总之,序列图用于按时间顺序描述对象间的交互。
  • 协作图:协作图类似于序列图,但重点不是消息的时间顺序。它以一种网络格式表现对象之间的交互。
  • 状态图:显示一个由状态、转换、事件和活动组成的状态机。用状态图说明系统的动态视图。状态图对接口、类或协作的行为建模是非常重要的。状态图强调一个对象按事件次序发生的行为。状态图用于对一个特定的对象的动态行为建模,说明了一个对象的生命周期---对象可以经历的各种状态,以及引起对象从一个状态向另一个状态转换的事件。
  • 活动图:显示从活动到活动的流。活动图显示了一组活动,从活动到活动的顺序流或分支流,以及发生动作的对象或动作所施加的对象。用活动图说明系统的动态视图。活动图对系统的功能建模是非常重要的,它强调对象之间的控制流。对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
  • 构件图:构件图用来以图形化的方式描述系统的物理结构,它可以用来显示程序代码如何分解成模块。
  • 部署图:部署图描述系统中硬件和软件的物理架构,它描述构成系统架构的软件结构、处理器和设备。

<h3 id='47'>设计模式</h3>

  • 行为型模式
    • 命令模式
      • 命令模式可以对发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。
      • 将一个请求封装为一个对象
    • 观察者模式
      • 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。
      • 定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象(观察者)皆得到通知并被自动更新。(又称:发布-订阅(Publish/Subscribe)模式)
    • 策略模式
      • 完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。
      • 定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。
  • 创建型模式
    • 建造者模式(Builder)
      • 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。
      • 建造汽车:用户只需要把方向盘、轮胎、发动机这样的模块拼凑起来,不需要知道发动机的细节
    • 工厂方法模式(Factory Method Pattern)
      • 我们先定义一个抽象的按钮工厂类,再定义具体的工厂类来生成圆形按钮、矩形按钮、菱形按钮等
      • 又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
    • 单例模式(Singleton Pattern)
      • 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。
    • 原型模式
    • 抽象工厂模式:
      • 提供一个创建一系列相关或相互依赖对象的接口
  • 结构型模式
    • 享元模式:
      • 当对象数量太多时,将导致运行代价过高,带来性能下降等问题。
      • 运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。
    • 外观模式:
      • 为子系统的一组接口提供一个一致的界面,这个接口使得这一子系统更加容易使用
      • 外观模式.png
    • 装饰器模式
      • 动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。
设计模式.jpg
设计模式1.png
  • 装饰器模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责。就增加对象功能来说,装饰模式比生成子类实现更为灵活。通过装饰器模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能时,可使用装饰模式;当不能采用生成子类的方法进行扩充时也可使用装饰模式。
  • 外观模式是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
查询引用了某篇出版物的所有出版物。
在学术出版物中引用他人或早期的文献作为相关工作或背景资料是很常见的现象。
用户也可以在系统中为某篇出版物注册引用通知,若有新的出版物引用该出版物,系统将发送电子邮件通知该用户。
问:上图3.1中使用了哪种设计模式?实现了系统的哪个功能?
解:
使用了观察者设计模式(又称“发布-订阅”模式),定义了一种一对多的依赖关系,
在题中,某出版物是观察者,当被观察者(引用某出版物的其他出版物)出现时,
则出版物会收到其被引用的通知,从而系统发送邮件给相应的作者。
  1. 抽象工厂(Abstract Factory)。提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
  2. 工厂方法(Factory Method)。定义一个用于创建对象的接口,让子类决定将哪一个类实例化,工厂方法使一个类的实例化延迟到其子类。
  3. 适配器(Adapter)。将一个类的接口转换成客户希望的另外一个接口。 adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
  4. 桥接(Bridge)。将抽象部分与它的实现部分分离,使它们都可以独立地变化。对实现部分的修改不会影响到使用它们的程序。
  5. 建造者(Builder)。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
  6. 责任链(Chain of Responsibility)。为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
  7. 命令(Command)。将一个请求封装为一个对象,从而使我们可用不同的请求对象进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作;命令模式将调用操作的请求对象与知道如何实现该操作的接收对象解耦
  8. 组合(Composite)。将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。
  9. 装饰(Decorator)。动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。
  10. 外观模式(Facade)。为子系统中的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
  11. 享元(Flyweight)。运用共享技术有效地支持大量细粒度的对象。
  12. 解释器(Interpreter)。给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
  13. 迭代(Iterator)。提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
  14. 中介者(Mediator)。用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
  15. 备忘录(Memento)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。
  16. 观察者(Observer)。定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
  17. 原型(Prototype)。用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
  18. 代理(Proxy)。为其他对象提供一个代理以控制对这个对象的访问。
  19. 单例(Singleton)。保证一个类仅有一个实例,并提供一个访问它的全局访问点。
  20. 状态(State)。允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
  21. 策略(Strategy)。定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
  22. 模板方法(Template Method)。定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
  23. 访问者(Visitor)。表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

软件质量特性

  • 功能性、可靠性、易用性(易理解性)、效率、维护下、可移植性(适应性、易安装性、共存性、易替换性、可移植性、依存性)

系统的维护

  • 正确性维护:改正没有发现的错误
  • 适应性维护:技术,需求发生了变化而引起的维护
  • 完善性维护:扩展功能和完善性能
  • 预防性维护:提高可靠性和可维护性

结构化开发方法

  • 体系结构设计:主要是指要开发的系统中包含哪些部件,这些部件与部件之间的关系就是体系结构的设计。
  • 数据设计:也称为数据库设计,主要包含数据库的设计和这个数据所包含的核心表的设计。
  • 接口设计:用于子系统和模块之间或者内部系统和外部系统之间的各种交互,如功能描述,输入输出的定义,错误处理的设计。
  • 过程设计:也称为模块详细设计,主要是详细模块的实现算法,以及模块所使用的数据结构。

敏捷开发方法

  • 极限编程
    • XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
    • 极限编程是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。
    • 价值观:沟通、简单、反馈、勇气和谦逊
    • 5 个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
    • 12 个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40 个小时、现场客户和编码标准

开发成本估算方法

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

程序设计

脚本语言

  • 一个脚本通常是解释运行而非编译,如python,bash.lua等
  • 标记语言:HTML,XML,TEX(标记语言常用于描述格式化和链接✅)
  • 编译型语言的执行效率更高

错误

  • 错误可分为静态错误和动态错误两类。
  • 动态错误,也被称作动态语义错误,是指源程序中的逻辑错误,它们发生在程序运行的时候,如死循环,变量取值为零
  • 静态错误又可分为语法错误和静态语义错误。
  • 语法错误是指有关语言结构上的错误,如单词拼写错、表达式中缺少操作数、begin和end不匹配等。
  • 静态语义错误是指语言意义上的错误,如加法的两个操作数中一个是整型变量名,而另一个是数组名等。

内存分配

  1. 栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
  2. 堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由 OS 回收。注意它与数据结构中的堆是两回事,链表的数据空间必须采用堆存储分配策略。
  3. 全局区(静态区)(static):全局变量和静态变量的存储是放在这一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。
  4. 文字常量区:常量字符串就是放在这里的,程序结束后由系统释放。
  5. 程序代码区:存放函数体的二进制代码。

  • 完全二叉树的特点是若一个结点没有左子结点,则它必定没有右子结点,所以一定是叶子结点。完全二叉树中度为 1 的结点数只能为 0 个或 1 个。
  • 带权路径长度最小(即代价最小)的二叉树称为最优二叉树或赫夫曼树。
  • 平衡二叉树或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过 1。

优先队列通常采用 (堆) 数据结构实现,向优先队列中插入一个元素的时间复杂度为 (O(logn))

编译原理

工作阶段

  • 词法分析--语法分析--语义分析--中间代码生成--代码优化--目标代码生成
  • 词法分析:输出(单词种别,单词值)的二元组
  • 语法分析:输入串是否语法上正确
  • 语义分析:类型分析,如只有整数能取余
  • 中间代码生成:是一种简单并且含义明确的记号系统,与具体的机器无关,一种中间代码是三地址码,采用四元式,(运算符,运算对象1,运算对象2,运算结果)
  • 代码优化:与机器无关
  • 程序设计语言的大多数语法现象可用其中的上下文无关文法描述。

C++

纯虚函数&&抽象类

class Implement{
Public:
  virtual void doPaint(Matrix m);//显示像素矩阵m
};

继承

class WinImp:public Implementor{
    public:
        void doPaint(Matrix m){/*调用Windows系统的绘制函数绘制像素矩阵*/}
};
class LinuxImp: public Implementor{
    public:
        void doPaint(Matrix m){/*调用Linux系统的绘制函数绘制像素矩阵*/}
};
class Imag{
    public:
        void setImp(Implementor *imp){this.imp=imp;}
        virtual void parseFile(String fileName)=0;
    protected: 
        Implenentor *imp;
};
class BMPImage:public Image{
//此处代码省略
};
class GIFImage:public Image{
    public:
        void parseFile(String fileName){
        //此处解析GIF文件并获取一个像素矩阵对象m
        imp->doPaint(m);//显示像素矩阵m
}
};
class JPEGImage:public Image{
//此处代码省略
};
int main(){
    public static void main(String[] args){
        //在Linux操作系统上查看demo.gif图像文件
        Imag imag = new Imag();
        Implementor imageImp = new LinuxImp();
        image.setImp(imageImp);
        image.parseFile(“demo.gif”);
    } 
}

Java

抽象类

public abstract class Animal {
    public abstract void cry();
}

多媒体技术

媒体分类

  • 媒体分为感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体。
  1. 感觉媒体: 感觉媒体指的是能直接作用于人们的感觉器官,从而能使人产生直接感觉的媒体。如文字、数据、声音、图形、图像等。在多媒体计算机技术中,我们所说的媒体一般指的是感觉媒体。
  2. 表示媒体: 表示媒体指的是为了传输感觉媒体而人为研究出来的媒体,借助于此种媒体,能有效地存储感觉媒体或将感觉媒体从一个地方传送到另一个地方。如语言编码、电报码、条形码等。
  3. 表现媒体: 表现媒体指的是用于通信中使电信号和感觉媒体之间产生转换用的媒体。如输入、输出设备,包括键盘、鼠标器、显示器、打印机、 音响、 喇叭等。
  4. 存储媒体: 存储媒体指的是用于存放表示媒体的媒体。如纸张、磁盘、光盘等。
  5. 传输媒体: 传输媒体指的用于传输某种媒体的物理媒体。如双绞线、电缆、光纤等。
  • 使用图像扫描仪以 300DPI 的分辨率扫描一幅 3×4 英寸的图片,可以得到()像素的数字图像。
  • A.300×300 B.300×400 C.900×4 D.900×1200
  • 解:DPI的含义:像素/英寸,300*3*300*4=900*1200

Some Points

  • 螺旋模型。综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。
  • 增量开发模型:增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
  • 瀑布模型:要求软件开发严格按照需求→分析→设计→编码→测试的阶段进行,每一个阶段都可以定义明确的产出物和验证准则。瀑布模型在每一个阶段完成后都可以组织相关的评审和验证,只有在评审通过后才能够进入到下一个阶段。 对于前期需求不明确,而又很难短时间明确清楚的项目则很难很好的利用瀑布模型。
  • 快速原型模型:是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。
  • 极限编程XP:提倡结对编程,代码所有权归于整个开发队伍,其中的结对编程就是一种对代码的审査过程。XP 主要解决代码质暈低的问题,编码速度不能改变
  • McCabe环路复杂度计算方法:流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
  • 架构师主要关注系统的行为
  • URL 由 三 部 分 组 成 : 协 议 类 型 , 域 名 , 路 径 及 文 件 名 。 http 为协议类型,edu.abc.com 为域名,其中 edu 为主机名(服务器名称),/lecturer/index/user_id-8371666.html 为文件路径及文件名
  • 如果路由器收到了多个路由协议转发的关于某个目标的多条路由,那么决定采用哪条路由的策略是(比较各个路由的管理距离)。管理距离是各种路由协议的优先权, 当多个路由协议转发的关于某个目标的多条路由,使用管理距离选择权限最高的路由,管理距离小的优先级最高。路由费用是一种路由协议对于到达目标网络的各种可能路径的成本衡量。
  • 复杂指令系统计算机(CISC)、精简指令系统计算机(RISC)、超大规模集成电路(very-large-scale integration,缩写:VLSI)、超长指令字(VeryLongInstructionWord)、单指令流多数据流概述 单指令流多数据流(英语:Single Instruction Multiple Data,缩写:SIMD)
  • 解释程序并不产生目标程序,这是它和编译程序的主要区别
  • 在Windows 操作系统中,当用户双击“IMG_20160122_103.jpg”文件名时,系统会自动通过建立的文件关联来决定使用什么程序打开该图像文件
  • 常用的中间代码的表达形式有语法树、后缀式、三地址代码
  • 编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6 个阶段
  • 覆盖:子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充
  • 二叉排序树关键码序列:能够建立出这颗二叉排序树
  • FTP占用两个标准端口:20数据口,21控制口
  • 使用ping 命令可以进行网络检测,在进行一系列检测时,按照由近及远原则,先要确认本机协议栈有没有问题,所以可以用ping127.0.0.1 来检查本机TCP/IP 协议。
  • 防火墙没有查毒功能
  • 我国著作权法规定,作品的署名权,修改权和保护作品完整权不受时间限制。公民的作品发表权的保护期为作者终生及其死亡后的50年,截止于作者死亡后第50年的12月31日。
  • 人耳能听到的音频信号的频率范围是20Hz~20KHz
  • 与编译器相比,解释器参与运行控制,程序执行的速度慢
  • 分片透明是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。复制透明是指采用复制技术的分布方法。用户不需要知道数据是复制到哪些节点,如何复制的。
    位置透明是指用户无需知道数据存放的物理位置。逻辑透明局部数据模型透明,是指用户或应用程序无需知道局部场地使用的是哪种数据模型
  • 主机路由的子网掩码是 255.255.255.255
  • 集线器是物理层设备,而网桥是数据链路层设备

相关文章

网友评论

      本文标题:2018软考复习笔记

      本文链接:https://www.haomeiwen.com/subject/tcsmbqtx.html