软件设计师 - 错题笔记

2023-05-16

2018 年 5 月 上午题

1. 浮点数

浮点数对接时,先对阶,将小阶向大阶对齐,同时尾数右移 n 位(n 为阶差的绝对值)。

2. 流水线吞吐率 1/△t

单位时间流水线处理的任务数。流水线吞吐率是指令执行周期的倒数。指令执行周期是最长流水段的操作时间。

3. SSH

SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

4. 软件著作权

  • 《计算机软件保护条例》由国务院颁布的。
  • 非法进行拷贝、发布或更改软件的人被称为软件盗版者。
  • 作者的署名权、修改权、保护作品完整权的保护期不受限制。

5. 数据字典

数据字典有 4 类条目:数据流、数据项、数据存储和基本加工

6. COCOMO 工作量/成本估算模型

  • COCOMOⅠ: 源代码行数(LOC)
  • COCOMOⅡ:(对象点、功能点和代码行) ; 在 COCOMOⅠ 模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。
  • COCOMOⅢ:包括 COCOMOⅡ 模型的所有特性,但更进一步考虑了软件工程中每一步骤 (如分析、设计) 的影响。

7. 解释器|编译器

  • 解释器:直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行。
  • 编译器:将源程序翻译成目标语言程序,然后在计算机上运行目标程序。

解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序

8. 互斥 PV 操作

  • 互斥操作的信号量初值一般为 1 或者资源的数量

  • P 申请 ; V 释放

9. 全文件名|相对路径|绝对路径

文件的全文件名 应包括盘符及从根目录开始的路径名;   /swtools/flash/rwd11

文件的相对路径 是从当前工作目录下的路径名;     flash/

文件的绝对路径名 是指目录下的绝对位置,直接到达目标位置。   /swtools/flash/

10. 软件过程模型

七大软件过程模型

a. 瀑布模型

小型,需求明确,二次开发。

  • 优点: 容易理解,管理成本低,以文档作为驱动,强迫开发人员采用规范的方法,严格规定了各阶段必须提交的文档;要求每一阶段结束后,都要进行严格的评审。与它最相适应的开发方法是结构化方法。
  • 缺点: 不适应软件开发工作中用户需求的改动,对风险的控制能力较弱。

b. V 模型

该模型强调开发过程中测试贯穿始终。

V 模型在瀑布模型的基础上,强调测试过程与开发过程的对应性和并行性,同样要求需求明确,而且很少有需求变更的情况发生。

c. 增量模型

迭代,强调每一个增量都要发布一个可操作的产品。

d. 演化模型

包括:原型模型,螺旋模型

  • 原型模型。
    迭代,需求不明确,目的是快速,低成本。

    原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型。原型模型适应于软件开发过程中用户需求还会变更的场合。原型模型又细分为探索型原型、实验型原型和演化型模型三种。

  • 螺旋模型。风险分析

    综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。

e. 喷泉模型

面向对象的开发方法。

一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

11. 软件开发方法

a. 结构化开发方法

面向数据流的开发方法。

  • 适用于数据处理领域问题。
  • 不适用于大规模的、特别复杂的项目,并且难以适应需求的变化。

自顶向下,逐层分解。

基本原则:功能的分解与抽象。

b. Jackson

面向数据结构的开发方法。

  • JSP
    • 数据结构为驱动,适合于小规模的项目。但输入数据结构与输出数据结构没有对应关系时,这种方法难以胜任。
  • JSD
    • 事实为驱动,是一种基于进程的开发方法,所以适应于时序特点较强的系统,包括数据处理系统和一些实时控制系统。

c. 原型方法

适合于用户需求不清,需求经常变化的情况和系统规模不是很大也不是很复杂的情况。

d. 面向对象方法

基本出发点事尽可能地按照人类认识世界的方法和思维方式来分析和解决问题以对象作为基本元素,这也是分析问题,解决问题的核心。

e. 敏捷方法

通过“尽可能早地,持续地对有价值的软件的交付”使客户满意。

  • 极限编程
    • 4 大价值观:沟通、简单性、简单、反馈与勇气。
    • 5 个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
    • 12 个最佳实践:
      • 计划游戏(快速制定计划、随着细节的不断变化而完善)、
      • 小型发布(系统的设计要能够尽可能早地交付)、
      • 隐喻(找到合适的比喻传达信息)、
      • 简单设计(只处理当前的需求,使设计保持简单)、
      • 测试现行(先写测试代码,然后再编写程序)、
      • 重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、
      • 结队编程、
      • 集体代码所有制、
      • 持续集成(可以按日甚至按小时为客户提供可运行的版本)、
      • 每周工作 40 个小时、
      • 现场客户和编码标准。
  • 水晶法

    认为每一个不同的项目都需要一套不同的策略、约定和方法论。

  • 并列争球法

    使用迭代的方法。

  • 自适应软件开发
    • 6 个基本原则
      • 有一个使命作为指导;
      • 特征被视为客户价值的关键点;
      • 过程中的等待是很重要的,因为“重做”与“做”同样关键;
      • 变化不被视为更改,而是被视为对软件开发实际情况的调整;
      • 确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求;
      • 风险也包含其中。

12. CMMI

CMMI过程成熟度模型

13. 软件维护工具

主要有:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

14. 概要设计

概要设计的内容可以包含 系统架构、模块划分、系统接口、数据设计 4 个方面的主要内容。

15. 模块耦合

耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合取决于各个模块之间 接口的复杂程度、调用模块的方式以及通过接口的信息类型

16. 归纳法

归纳法是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。

17. 对象

  • 状态 : 表示了该对象的所有属性(通常是静态的)以及每个属性的当前值(通常是动态的);
  • 行为 :对象根据它的状态和消息传递所采取的行动和所作出的反应;
  • 操作 :代表了一个类提供给它的对象的一种服务。

18. 模式

类型描述模式
创建型用于创建对象工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
结构型处理类或对象的组合适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
行为型类与对象交互、分配职责策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

1. 创建型模式 与对象的创建有关

  • 抽象工厂(Abstract Factory)

    提供创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

  • 生成器(Builder)

    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  • 工厂方法(Factory Method)

    定义一个用于创建对象的接口,让子类决定将哪一个类实例化,工厂方法使一个类的实例化延迟到其子类。

  • 原型(Prototype)

    用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。

  • 单例(Singleton)

    保证一个类仅有一个实例,并提供一个访问它的全局访问点。

2. 结构型模式 处理类或对象的组合

  • 桥接(Bridge)

    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。

  • 适配器(Adapter)

    将一个类的接口转换成客户希望的另外一个接口。adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

  • 装饰器(Decorator)

    动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类更为灵活。

  • 组合(Composite)

    将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。

  • 外观模式(Facade)

    为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

  • 享元(Flyweight)

    运用共享技术有效地支持大量细粒度的对象。

  • 代理(Proxy)

    为其他对象提供一个代理以控制对这个对象的访问。

3. 行为型模式 对类或对象怎样交互和怎样分配职责进行描述

  • 观察者(Observer)

    定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

  • 访问者(Visitor)

    表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

  • 策略(Strategy)

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。

  • 状态(State)

    允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。

  • 责任链(Chain of Responsibility)

    为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。。

  • 命令(Command)

    将一个请求封装为一个对象,从而使我们可用不同的请求对象进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作;命令模式将调用操作的请求对象与知道如何实现该操作的接收对象解耦

  • 解释器(Interpreter)

    给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

  • 迭代(Iterator)

    提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

  • 中介者(Mediator)

    用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

  • 备忘录(Memento)

    在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。

  • 模板方法(Template Method)

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

19. OLAP 工具是针对特定问题的联机数据访问与分析。

它通过多维的方式对数据进行分析、查询和报表。
比如,从时间、地区和商品种类三个维度来分析某家电商品的销售数据。

20. 单链表只能向后遍历,无法逆序遍历。入队列和出队列操作都不需要遍历链表。

21.UML

(1) 类图:

  • 类图是显示一组类、接口、协作以及它们之间关系的图。
  • 类图用于对系统的静态设计视图建模。
  • 当对系统的静态视图建模时,通常以下述三种方式之一使用类图:

     对系统的词汇建模  对简单协作建模  对逻辑数据库模式建模。

    (注意:物理数据库模式建模采用构件图实现)
    总之,类图描述系统的对象类结构,他们显示构成系统的对象类以及这些对象类之间的关系。
    o_%e7%b1%bb%e5%9b%be.png

(2) 对象图:

对象图类似于类图,但并不描述对象类,它们对实际的对象实例建模,显示实例属性的当前值。

描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
o_%e5%af%b9%e8%b1%a1%e5%9b%be.jpg

(3) 序列图(顺序图):

序列图以图形化方式描述了在一个用例或操作执行过程中对象如何通过消息互相交互,说明了消息如何在对象之间被发送和接收以及发送的时间顺序。总之,序列图用于按时间顺序描述对象间的交互。 > o_%e5%ba%8f%e5%88%97%e5%9b%be(%e9%a1%ba%e5%ba%8f%e5%9b%be).jpg

(4) 交互图:

对系统的动态进行建模,又分为以下四类:

1° 用例图: 场景的图形化表示,描述了以时间顺序组织的对象之间的交互。提供了控制流随时间推移的清晰的可视化痕迹。(生命线,控制焦点)

a. 是谁用软件。

b.软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

用例图

2° 通信图: 强调收发消息的对象的结构组织,提供了在协作对象的结构组织的语境中观察控制流的一个清晰的可视化痕迹。(路径,顺序号)

3° 协作图: 描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而协作图按照空间结构布图

o_%e5%8d%8f%e4%bd%9c%e5%9b%be.png

(5) 状态图:

显示一个由状态、转换、事件和活动组成的状态机。

用状态图说明系统的动态视图。状态图对接口、类或协作的行为建模是非常重要的。状态图强调一个对象按事件次序发生的行为。状态图用于对一个特定的对象的动态行为建模,说明了一个对象的生命周期。

对象可以经历的各种状态,以及引起对象从一个状态向另一个状态转换的事件。
o_%e7%8a%b6%e6%80%81%e5%9b%be.gif

(6) 活动图:显示从活动到活动的流

活动图显示了一组活动,从活动到活动的顺序流或分支流,以及发生动作的对象或动作所施加的对象。用活动图说明系统的动态视图。活动图对系统的功能建模是非常重要的,它强调对象之间的控制流

系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
o_%e6%b4%bb%e5%8a%a8%e5%9b%be.jpg

(7) 构件图:

构件图用来以图形化的方式描述系统的物理结构,它可以用来显示程序代码如何分解成模块
o_%e6%9e%84%e4%bb%b6%e5%9b%be.jpg

(8)组合结构图:

(9) 部署图:

部署图描述系统中硬件和软件的物理架构,它描述构成系统架构的软件结构、处理器和设备
o_%e9%83%a8%e7%bd%b2%e5%9b%be.jpg

22. 算法

  • 分治法:

    将一个难以直接解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之。

    • 该问题的规模缩小到一定的程度就可以容易地解决。
    • 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。
    • 利用该问题分解出的子问题的解可以合并为该问题的解。
    • 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。
  • 动态规划法:

    将带求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

    • 可以划分成若干个阶段,问题的求解过程就是对若干个阶段的一系列决策过程。
    • 每个阶段有若干个可能状态。
    • 一个决策将你从一个阶段的一种状态带到下一个阶段的某种状态。
    • 在任一个阶段,最佳的决策序列和该阶段以前的决策无关。
    • 各阶段状态之间的转换有明确定义的费用,而且在选择最佳决策时有递推关系(即动态转移方程)
  • 贪心法:

    当前每一步都是最优的,是当前最好的选择,但不一定是最优解。

    • 贪婪法不追求最优解,只求可行解,通俗点讲就是不求最好,只求可好。
  • 回溯法:

    • 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。这种走不通就退回再走的技术就是回溯法,而满足回溯条件的某个状态的点称为"回溯点".

A. 排序算法

B. 查找算法

23. 网络设备工作层次

网络设备工作层次

物理层:中继器、集线器
数据链路层:网桥、二层交换机、网卡
网络层:路由器、三层交换机

24.在 Linux 中,要更改一个文件的权限设置可使用chmod命令。

25. Armstroog 公理

设 U 是关系模式 R 的属性集,F 是 R 上成立的只涉及 U 中属性的函数依赖集。函数依赖的推理规则有以下三条:

自反律:若属性集 Y 包含于属性集 X,属性集 X 包含于 U,则 X→Y 在 R 上成立。(此处 X→Y 是平凡函数依赖)

增广律:若 X→Y 在 R 上成立,且属性集 Z 包含于属性集 U,则 XZ→YZ 在 R 上成立。

传递律:若 X→Y 和 Y→Z 在 R 上成立,则 X →Z 在 R 上成立。

其他的所有函数依赖的推理规则可以使用这三条规则推导出。

26. 当采用深度优先进行遍历的时候,查找所有邻接点所需要的时间是O(n^2)

27. 在网络安全管理中

加强内防内控可采取的策略有

  • 控制终端接入数量
  • 终端访问授权,防止合法终端越权访问
  • 加强终端的安全检查与策略管理
  • 加强员工上网行为管理与违规审计

28.运算器

运算器
算术逻辑单元(ALU)实现对数据的算术运算和逻辑运算
累加寄存器(AC)当运算器的【算术逻辑单元(ALU)】执行算术或逻辑运算时,为 ALU 提供一个工作区
数据缓冲寄存器(DR)作为 CPU 和内存,外设之间数据传送的中转站
状态条件寄存器(PSW)保存有算术指令和逻辑指令运行或测试的结果建立的各种条码内容

29.控制器

控制器用途
指令寄存器(IR)用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至 IR 对于用户来说是透明的
程序计数器(PC)
1.存放下一条机器指令的地址
2.用于跟踪指令地址的寄存器
3.程序员可访问
4.为了内存读取指令操作码,首先要将【程序计数器】的内容送到地址总线上
地址寄存器(AR)用来保存当前 CPU 所访问的内存单元的地址
指令译码器(ID)指令译码
寄存器组专用寄存器:运算器和控制器中的寄存器都是专用寄存器
通用寄存器:CPU 对它的访问速度最快

2018 年 11 月 上午题

28. 共享密钥加密又称对称加密算法,既用同一个密钥去加密和解密数据。

常用的算法包括 DES、3DES、IDEA、AES 等。

29. 计算机病毒具有 隐蔽性、传染性、潜伏性、触发性和破坏性 等特性。

30. 常见的摘要算法有:MD5、SHA 等

MD5:信息摘要算法第五版,输入以 512 位为分组,进行处理,产生一个 128 位的输出。

31. 根据我国《著作权法》第二十条之规定,作者的署名权、修改权、保护作品完整权的保护期不受限制。但是商标权可以每 10 年,无限续期。

32. 结构化方法的分析结果由以下几部分组成:

一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。

33. 位示图是从 0 号开始。

34. 位示图

物理块个数=磁盘容量/物理块大小

位示图大小=物理块个数/字长

35. ISO/IEC 9126 软件质量模型

软件质量模型

36. 多态

参数多态:应用广泛、最纯的多态。

包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。

过载多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型

强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。

37. 词法分析、语法分析、语义分析

1、词法分析阶段:识别出一个个的单词,删掉无用的信息,报告分析时的错误。

2、语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的逻辑结构。语法分析构造一棵语法树。

3、语义分析阶段:主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零等。

38. 分布式数据库

逻辑透明性:(局部映像透明性)它是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部 DBMS 支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的

位置透明性:用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的

分片透明性:用户不必关心数据是如何分片,他们对数据的操作在全局关系上进行的,即关心如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。

复制透明性:用户不用关心数据库在网络中的各个节点的复制情况,被复制的数据的更新都由系统自动完成。

39. 邻接矩阵

40. 稀疏矩阵

上三角矩阵:(2n-i-1)*i/2+j

下三角矩阵:(i+1)*i/2+j

41. 使用 ADSL 接入 Internet,用户端需要安装(PPPoE)协议。

42. 命令

Netstat 是控制台命令,是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

nslookup 可以指定查询的类型,可以查到 DNS 记录的生存时间还可以指定使用哪个 DNS 服务器进行解释

ping 可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由

命令

命令

43. TCP/IP 协议和层次对应关系

TCP/IP协议和层次对应关系

2017 年 11 月 上午题

44. 二叉树

父节点的左孩子是他父亲的二倍,右孩子是他父亲的二倍加一

二叉树遍历

前序遍历:根节点->左子树->右子树

中序遍历:左子树->根节点->右子树

后续遍历:左子树->右子树->根节点

45、数据库的关系范式

  • 第一范式(1NF):无重复的列,是对关系模式的基本要求;(一人一岗)
  • 第二范式(2NF):要求数据库表中的每个实例或行必须被唯一地区分。要求实体的属性==完全依赖于主键==。(普通员工和单个领导之间不存在从属关系)
  • 第三范式(3NF):要求数据库表中不包含已在其他表中已包含的非主键信息。属性不依赖于其他非主属性。(普通员工之间不存在从属关系)
  • BCNF 范式(BCBF):不允许主键的一部分被另一部分或其它部分决定。(单个领导与单个领导之间不存在从属关系)

46、主动攻击和被动攻击

  • 主动攻击:更改信息和拒绝用户使用资源的攻击,如:拒绝服务攻击、会话拦截、修改数据命令
  • 被动攻击:截获信息的攻击,如:系统干涉

47. 计算机运行过程中,CPU 需要与外设进行数据交换。采用(中断方式和 DMA 方式)控制技术时, CPU 与外设可并行工作。

48. 中间代码的作用是可使程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码有多种形式,常见的有逆波兰记号(后缀式)、四元式和三元式,它们的共同特点是与具体的机器无关,不依赖于具体的计算机。

49. 管道/过滤器体系结构的优点:

(1) 使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;

(2) 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;

(3) 支持软件重用。提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;

(4) 系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;

(5) 允许对一些如吞吐量、死锁等属性的分析;

(6) 支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。

50. 耦合

  • 数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。

  • 印记耦合:如果一组模块通过参数表传递记录信息,就是标记耦合。

  • 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

  • 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合。

    • 一个模块直接访问另一个模块的内部数据;

    • 一个模块不通过正常入口转到另一模块内部;

    • 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);

    • 一个模块有多个入口。

51. 内聚

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

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

(1)偶然内聚

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

(2)逻辑内聚

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

(3)时间内聚

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

(4)通信内聚

如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。

(5)顺序内聚

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

(6)过程内聚

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

模块完成多个需要按一定的步骤一次完成的功能。(过程相关---控制耦合)。例如:在用程序流程图设计模块时,若将程序流程图中的一部分划出各自组成模块,便形成过程内聚。

(7)信息内聚

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

(8)功能内聚

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

52. 编译程序的工作过程

词法分析、语法分析、语义分析、优化、目标代码生成

(1)词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。

(2)语法分析:在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。

(3)语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。

(5)代码优化:这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。

(6)目标代码生成:也就是把优化后的中间代码变换成指令代码或汇编代码。

词法分析和语法分析本质上都是对源程序的结构进行分析。

53. 非平凡子串:(n+2)(n-1)/2

54. 二叉链表

二叉链表中每个结点有 2 个指针,一共有 2K 个指针。

二叉链表

55. UML 类图

UML类图

2016 年 11 月 上午

56. 逻辑表达式

在进行逻辑与“&&”运算时,只有当两个操作数的值为真,最后的结果才会为真。因此一旦 x 的值为假,整个运算表达式的值则为假。

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

58. 算法

非对称加密

  1. RSA:典型的非对称加密算法,主要具有数字签名和验签的功能。512或1024位密钥计算量极大、难破解。不直接用于大量的明文加密。
  2. ECC:又称椭圆曲线密码体制,该算法是由 Sun 公司提出的。

对称加密

使用简单、加密解密快捷高效;加密强度不高、密钥分发困难

  1. DES:替换和移位的方式,密钥长度是56 位,每次运算对64 位数据块进行加
    ,该算法运行速度快、密钥易产生。用同一个秘钥去加密和解密。
  2. 3DES:三重 DES。
  3. RC-5:属于对称加密算法,适合大量的明文消息进行加密。
  4. IDEA 和 RC4 都是对称加密算法,只能用来数据加密。

摘要算法

  1. MD5 是信息摘要算法,只能用来生成消息摘要无法进行数字签名。
  2. SHA-1 信息摘要算法,不能用于数据加密

59.实时操作系统主要用于有实时要求的过程控制等领域。实时系统对于来自外部的事件必须在( 被控对象规定的时间内做出及时响应并对其进行处理 )。

60. 软件质量

可移植性:适应性、易安装性、共存性和易替换性。

61. 动态绑定是实现多态的基础。

62. 面向对象分析的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型不包括面向对象程序设计

63.顺序表存储 | 链表存储

顺序表存储,则最好情况是删除最后一个元素,此时不用移动任何元素,直接删除,最差的情况是删除第一个元素,此时需要移动 n-1 个元素,所以平均状态是移动 (n-1)/2

若用链表存储,直接将需要删除元素的前趋 next 指针指向后继元素即可,不需要移动元素,所以移动元素个数为 0

64.HTTPS

HTTPS 基于 SSL 安全协议,其默认端⼝ 443.
HTTP 信息是明⽂传输,默认端⼝是 80

65.防⽕墙的功能

  1. 过滤进出⽹络的数据
  2. 管理进出访问⽹络的⾏为
  3. 封堵某些禁⽌业务
  4. 记录通过防⽕墙的信息内容和活动
  5. 对⽹络攻击检测和告警

    功能包括:
    访问控制,提供基础状态检测技术的 IP 地址,端⼝,⽤户和时间管理控制,双 nat,提供 IP 地址转换和 IP 及 TCP/UDP 端⼝映射,实现 IP 复⽤和隐藏⽹络结构,代理等。

66. 信息安全中的加密算法:

  1. RSA:⾮对称加密算法,效率低,⼀般不直接⽤于⼤量的明⽂加密。
  2. SHA-1 属于信息摘要算法,不能⽤来加密数据。
  3. RC-5 属于⾮对称加密算法,适合明⽂加密。
  4. IDEA 与 RC4 属于对称加密算法,只能⽤来数据加密。
  5. MD5 算法是信息摘要算法,只能⽤来⽣成摘要信息,⽆法进⾏数字签名与数据加密。
  6. RSA 算法是典型的⾮对称加密算法,主要具有数字签名和验证的功能。
  7. DES 算法对称密码体制,不属于公开秘钥算法。

67. 数字签名的作⽤:

  1. 信息的发送者才能产⽣的。
  2. 别⼈⽆法伪造的⼀段字符串。
  3. 字符串同时也是对信息的发送者信息发送信息真实性的⼀个有效证明。
  4. 不能验证接收者的合法性。

68. 端⼝扫描器:

通过选⽤远程 TCP/IP 不同端⼝的服务,并记录⽬标给予的回答,可以搜集到⽬标主机的各种信息。

69. 主动攻击:

包括拒绝服务攻击,分布式拒绝服务(DDOS 攻击),信息篡改,资源使⽤,欺骗,伪装,重放等。

70. 安全认证的介绍:

  1. PPP 的 NCP 可以承载多重协议的三层数据包。
  2. PPP 使⽤ LCP 控制多种链路的参数(建⽴,认证,压缩,回拨)

    PPP 的认证类型:

  • PPP 的 pap 认证是通过⼆次握⼿建⽴认证(明⽂不加密)
  • PPP 的 chap 挑战握⼿认证协议,通过三次握⼿建⽴认证(密⽂采⽤ MD5 加密)
  • PPP 的双向认证采⽤ chap
  • PPP 的加固认证采⽤的是两种(pap,chap)同时使⽤。

71. DOS 攻击

⽬的:使计算机或⽹络⽆法提供正常的服务。

常⻅的攻击:计算机⽹络宽带攻击和联通性的攻击。

典型代表:SYN Flooding 攻击。

72. DMZ

DMZ 是为了解决安装防⽕墙后外部⽹络不能访问内部⽹络服务器的问题,⽽设⽴的缓冲区,这个缓冲区位于内部⽹络和外部⽹络之间的⼩⽹络区域内。

73. 安全协议:

TLS:安全传输层协议,⽤于在两个通信应⽤程序之间提供保密性和数据完整性。

SSL:安全套接层协议,位⽹络通信提供安全和数据完整性的协议,与 TSL 接近,都在传输层对⽹络连接进⾏加密。

PGP:基于 RSA 公钥加密体系的邮件加密软件,对邮件保密防⽌⾮授权着阅读。

HTTPS:安全版的 HTTP,在 HTTP 下加⼊ SSL 层。

IPSec:⽹络层的协议,使⽤加密的安全服务来确保再⽹络上进⾏保密安全的通讯。

74. 数字证书

  1. 数字证书由 CA 发⾏

  2. 数字证书包含公开密钥,名称及证书授权中⼼的数字签名。

  3. 证书授权中⼼的数字签名是⽤它⾃⼰的私钥完成,公钥公开,公钥可验证数字证书的真实性。

75. 宏病毒:

  1. 是⼀种脚本病毒。
  2. 寄存在⽂档或模板的宏中。
  3. 主要感染的⽂件有 Word,Excel,并驻留在 normal ⾯板上。
  4. 宏病毒的前缀是:Macro,第⼆前缀是:Word,Excel 其中之⼀。

76. 公钥体系:

公钥⽤于加密和认证。

私钥⽤于解密和签名。

英文题

structure 结构

specification 说明

standard 标准

objective 目标

memoranda 备忘录

workbook 工作手册

quality 质量

product 产品

manual 手册

tree-structure 树形结构

constructing : 构造, 建设, 建造

designing :设计, 计划, 酝酿

implementing :实施

outlining :概述

defines:定义

calculates:计算

estimates: 估计, 预计, 估算

specification:规格, 规范, 格式

structure: 结构, 构造, 构成

requirement: 需求, 需要, 条件

implementation: 履行

correctness:正确性

modifiability:可修改

feasibility:可行性, 可能性, 或然性

traceability:可追溯性

navigators:导航仪

guidance:指导

goals:目标

subroutine:子程序

expressions:表达式

nonlinear:非线性

parallel:平行

linear:线性

complexities:复杂性

essential:必要

surface:表面

exterior:外观

profoundly:深入

ignored:忽视

转载于:https://www.cnblogs.com/Shanehann/p/10928918.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件设计师 - 错题笔记 的相关文章

  • DE1-SOC开发板使用学习

    1 Yocto build utility 工具是什么 xff1f Linux Console with framebuffer是什么 xff1f 2 文档里面有几个Linux发布版本的 xff0c 分别是ubuntu和LXDE版本 LXD
  • 在shell脚本的第一行中,必须写#!/bin/bash吗?

    可以不写 执行时手工执行 bin sh xxxx sh 效果是一样的 bin sh 表示本脚本由 bin 路径的sh程序来解释 跟命令行下 xff03 通常用作注释 xff0c 但是 xff03 xff01 放在一起就标志着这是一个shel
  • android架构中最底层是什么层,Android体系架构

    Android开发入门教程一丶了解手机通讯技术发展史1 第一代通讯技术 第一代通讯技术 简单来说就是大哥大 其原理是通过 模拟信号进行传输 1 说话的时候产生声波震动 2 声波震动会让大哥大中的铜片产生震动 3 铜片震动会让其电容产生变化
  • linux桌面lxde 安装_Archlinux LXDE 桌面环境安装配置

    安装 LXDE LXDE 是模块化的 你可以从下面的列表中挑选你需要的包 xff0c 所有的包都可以通过pacman下载安装得到 他们大多数都在extra和community仓库中 如果你要安装像 LXAppearance 和 LXNM 这
  • PX4 FMU启动流程 2. 二、 nsh_initscript

    PX4 FMU启动流程 2 二 nsh initscript PX4 FMU启动流程 2 二 nsh initscript 转载请注明出处 2014 11 27 冷月追风
  • Eigen库

    MatrixXd表示任意size的矩阵 xff0c 元素类型为double VectorXd表示任意size的向量 xff0c 元素类型为double 创建3 1的向量v xff0c 并赋值为1 2 3 VectorXd v 3 v lt
  • 亲爱的热爱的百度云全集资源

    网盘链接 转载于 https www cnblogs com awesome share p 11234341 html

随机推荐

  • 解决Docker容器 iptables问题---docker: Error response from daemon: driver failed programming external conne...

    一 问题现象 最近在研究Docker容器日志管理时 xff0c 启动容器出现iptables相关报错 xff0c 具体问题如下 运行容器 root 64 node 11 docker run d p 24224 24224 p 24224
  • 内网穿透远程查看内网监控摄像头

    在现代社会中 xff0c 大家总是奔波于家和公司之间 大部分时间用于工作中 xff0c 也就很难及时知晓家中的动态情况 xff0c 对于家中有老人 小孩或宠物的 xff08 甚至对居住环境安全不放心的 xff09 xff0c 这已然是个棘手
  • 2022/6/15 docker安装与项目部署(入门教程)

    目录 一丶docker简介 二丶Docker私库简介 xff08 Dockerhub xff09 三丶Docker优势 四丶docker安装 4 1 使用官方安装脚本自动安装 xff08 仅适用于公网环境 xff09 4 2 手动安装 4
  • vim实现批量注释和批量删除注释

    批量注释 1 进入文档 xff0c vim test txt 后 xff0c 按住ctrl 43 v进入VISUAL BLOCK模式 xff0c 上下选择需要注释的行 2 按大写键 xff0c 再按i xff0c 或者直接按shift 43
  • 20191003

    A 把字典树建出来 xff0c 问题就转化成要选择m个节点 xff0c 使得它们能覆盖所有叶子节点 xff0c 且不存在两个节点使得一个是另一个的祖先 于是可以在字典树上跑树形dp xff0c 复杂度 O n 2m 或 O nm 2 xff
  • 20191004

    A 解 1 我们发现只需要关心处于结果字符串前 k 位的字符 因此考虑从后往前处理 对于一个询问区间 xff0c 我们暴力连边 xff0c 用并查集维护 xff0c x 的父亲等于 y 相当于位于 x 的字符是从位于 y 的字符处复制过来的
  • git 如何解决 (master|MERGING)

    git 如何解决 master MERGING git reset hard head 回退版本信息 git pull origin master 转载于 https www cnblogs com 651434092qq p 110188
  • linux ping 指定次数

    ping 192 168 0 1 c4 转载于 https www cnblogs com sea stream p 10345600 html
  • java 解决 java.lang.Integer cannot be cast to java.lang.String

    1 在执行代码打印map的value时 xff0c 提示错误java lang Integer cannot be cast to java lang String xff0c 这个错误很明显是类型转换错误 查看表字段的数据 解决方案 1
  • DBoW2应用

    图像对应的bag of words向量 v t 假设词典总共有 W 个单词 xff0c 那么每一幅图像能够用一个 W 维的向量表示 xff08 t 1 t 2 t 3 t W xff09 其中 t i 61 frac n id n nd l
  • 平衡车终于成功了

    说来惭愧2017 12 0118 13 27 并非原创 xff0c 代码资料也是从论坛搜刮的 自己做了适配性的调整 这个小车断断续续造了将近1个月 xff01 1 include 34 Wire h 34 96 2 include lt U
  • 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令

    最新配置新增一台iMac当作持续集成构建的Slaver节点 xff0c 添加节点很顺利 xff0c 但是拉取代码的时候发现无法正常 出现以下提示 xff1a hudson plugins git GitException Command 3
  • FreeRTOS

    在嵌入式领域中 xff0c 嵌入式实时操作系统正得到越来越广泛的应用 采用嵌入式实时操作系统 RTOS 可以更合理 更有效地利用CPU的资源 xff0c 简化应用软件的设计 xff0c 缩短系统开发时间 xff0c 更好地保证系统的实时性和
  • 使用固定的公网TCP端口地址远程桌面【内网穿透】

    文章目录 1 为远程桌面保留一个TCP地址2 配置远程桌面隧道2 1 登录cpolar web ui2 2 修改远程桌面隧道信息2 3 查看公网地址 3 使用固定TCP地址远程桌面总结 在上一篇文章中 xff0c 我们通过cpolar映射远
  • [Openwrt 项目开发笔记]:Openwrt平台搭建(一)补遗

    Openwrt项目开发笔记 系列文章传送门 xff1a http www cnblogs com double win p 3888399 html 正文 xff1a 昨晚上熬夜写了 Openwrt项目开发笔记 Openwrt平台搭建 xf
  • Mac下IDEA启动Springboot项目慢

    经过百度以及google查询发现 xff0c 启动时调用了java net InetAddress getLocalHost 方法 以此排查调用此方法慢的问题 网上的解决方法都是修改hosts xff0c 后来有人提出 xff0c 慢的原因
  • 关于varnish缓存

    目录 引言 xff1a 缓存的概念一 varnish缓存 1 简介2 总体结构 2 1 两个主进程2 2 Varnish的日志2 3 VCL varnish配置缓存策略的工具二 Varnish的工作模式 more 1 状态引擎的处理流程2
  • varnish6.X安装

    目录 1 rpm方式2 编译安装 2 1 依赖包2 2 编译Varnish 本文提供了两种安装方式 xff0c 但建议使用编译安装 官方链接 xff1a https varnish cache org 部署文档 xff1a https va
  • 安装ANSYS19.0的正确方法(附下载)

    安装ANSYS19 0的正确方法 卸载干净旧版本ANSYS 安装或重新安装之前必须先卸载干净 xff0c 安装过旧版本ANSYS的也要确保卸载干净 电脑环境准备参考以下内容 ANSYS 卸载后重装需要注意的问题 百度经验 https jin
  • 软件设计师 - 错题笔记

    2018 年 5 月 上午题 1 浮点数 浮点数对接时 xff0c 先对阶 xff0c 将小阶向大阶对齐 xff0c 同时尾数右移 n 位 xff08 n 为阶差的绝对值 xff09 2 流水线吞吐率 1 t 单位时间流水线处理的任务数 流