软件设计师备考笔记

软件设计师

特别感谢 zst_2001 老师整理的资料和视频!
在这里插入图片描述

计算机系统

计算机中,系统总线用于(主存及外设部件)连接

在DMA控制方式下主存与高速I/O设备之间会有一条直接数据通路(DMA总线)。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。

冯诺依曼结构

  • 程序指令和数据都采用二进制表示

  • 程序的功能都由中央处理器(CPU)执行指令来实现

  • 程序的执行过程由指令进行自动控制

  • 程序指令和数据存在同一个存储器中

输入输出 (I/0)控制方式

  1. 程序查询方式

    CPU和I/O(外设)只能串行工作,CPU需要一直轮询检查长期处于忙等状态。CPU利用率低

    ②一次只能读/写一个字

    ③由CPU将数放入内存

  2. 中断驱动方式

    ①I/0设备通过中断信号主动向CPU报告I/O操作已完成

    CPU和I/O(外设)可并行工作

    ③CPU利用率得到提升

    ④一次只能读/写一个字

    ⑤由CPU将数据放入内存

  3. 直接存储器存取方式(DMA)

    CPU和I/O(外设)可并行工作

    仅在传送数据块的开始和结束时才需要CPU的干预

    由外设直接将数据放入内存

    ④一次读写的单位为“块”而不是字

PCI总线是PC机常用总线,SCSI是软硬磁盘、光盘、扫描仪常用总线。他们都是并行总线

PCI总线是并行内总线,SCSI 总线是并行外总线

DRAM(动态随机存取存储器)集成率相对较高,功耗相对较小,需要动态刷新。

SRAM(静态随机存取存储器)集成率相对较低,功耗相对较大,不需要动态刷新。

RISC(精简指令集)的主要特点如下:

  1. 指令数量少。
  2. 指令的寻址方式少。
  3. 指令长度固定,指令格式种类少。
  4. 以硬布线逻辑控制为主。
  5. 单周期指令执行,采用流水线技术。除了需要访问内存的LOAD/STORE 指令以外绝大多数指令都在单周期内完成。
  6. 优化的编译器。
  7. CPU中的通用寄存器数量多。

CISC(complex)的主要特点如下:

  1. 指令系统复杂庞大,指令数目一般为200条以上。
  2. 指令的长度不固定,指令格式多,寻址方式多。
  3. 可以访存的指令不受限制。
  4. 各种指令使用频度相差很大。
  5. 各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
  6. 控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连线控制。
  7. 难以用优化编译生成高效的目标代码程序。

RISC(Reduced)的主要特点如下:

  1. 选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现。
  2. 指令长度固定,指令格式种类少,寻址方式种类少。
  3. 只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。
  4. CPU中通用寄存器的数量相当多。
  5. RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。
  6. 以硬布线控制为主,不用或少用微程序控制。
  7. 特别重视编译优化工作,以减少程序执行时间。

对于有n位的整数补码,其取值范围是-(2(n-1))~(2(n-1))-1

以8位的整数补码举例,其有效取值范围是-(27)~(27)-1,也就是-128~127。

在这里插入图片描述

非对称加密(公钥、公开密钥加密)算法:

  1. RSA
  2. DSA
  3. ECC

对称加密(私钥、私有密钥加密)算法:

适合大量明文进行加密传输

  1. DES
  2. 3DES
  3. RC-5
  4. IDEA
  5. AES分组加密算法
  6. RC4

加密阻止被动攻击,认证阻止主动攻击

访问控制有三个任务:

  1. 授权:确定哪些主体有权访问哪些客体。
  2. 确定访问权限(读、写、执行、删除、追加等存取方式的组合)。
  3. 实施访问权限。

用 C/C++语言为某个应用编写的程序,经过(预处理、编译、汇编、链接)后形成可执行程序。

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

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

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

  • 词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。
  • 语法分析:根据语法规则将单词符号分解成洛类语法单位,并分析源程序是否存在语法上的错误。包括:语言结构出错、f…endf不匹配,缺少分号、括号不匹配、表达式缺少操作数等。
  • 语义分析:进行类型分析和检查,主要检测源程序是否存在静态语义错误。包括:运算符和运算类型不符合,如取余时用浮点数。

类的设计原则有七个,包括:开闭原则、里氏代换原则、迪米特原则(最少知道原则)、 单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则。除以上原则外,还有 其他原则,

  • 共同重用原则是指一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。

  • 开放封闭原则,即软件实体(类、模块、函数等)应该是可以扩展的,即开放的。但是不可修改的,即封闭的。

  • 接口分离原则,是指不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。即依赖于抽象,不依赖于具体,同时,在抽象级别,不应该有对于细节的依赖。

  • 共同封闭原则,是指包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。

共享密钥加密又称对称加密算法,既用同一个密钥去加密和解密数据。常用的算法包括DES、3DES、IDEA、AES等。

X.509是国际密码学里公钥证书的格式标准,推荐使用的密码算法是RSA。而国密SM2数字证书采用的公钥密码算法是ECC基于椭圆曲线的公钥密码算法。ECC算法与RSA算法相比具有加密强度高、计算速度快的优点。

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

结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据字典、一组小说明(也称加工逻辑说明)、补充材料。

模块化设计的原则应该是尽量考虑高内聚、低耦合

  1. 模块独立

模块的独立性原则表现在模块完成独立的功能,与其他模块的联系应该尽可能得简单,各个模块具有相对的独立性。

  1. 模块的规模要适当

模块的规模不能太大,也不能太小。如果模块的功能太强,可读性就会较差,若模块的功能太弱,就会有很多的接口。读者需要通过较多的程序设计来进行经验的积累。

  1. 分解模块时要注意层次

在进行多层次任务分解时,要注意对问题进行抽象化。在分解初期,可以只考虑大的模块,在中期,再逐步进行细化,分解成较小的模块进行设计。

多态

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

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

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

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

模块的耦合类型

数据耦合是指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递

标记耦合是指两个模块之间传递的是数据结构

控制耦合是指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能

公共耦合是指通过一个公共数据环境相互作用的那些模块间的耦合

面向对象分析包含5个活动,即认定对象、组织对象、描述对象间的相互作用、定义对象的操作和定义对象的内部信息。

面向对象设计时包含的主要活动是识别类及对象、定义属性、定义服务、识别关系、识别包

面向对象测试

  1. 算法层:测试类中定义的每个方法,相当于传统软件测试中的单元测试。
  2. 类层:测试封装在同一个类中的所有方法与属性之间的相互作用。可以认为是面向对象测试中所特有的模块(单元)测试。
  3. 模板层:也称为主题层,测试协同工作的类或对象之间的相互作用。相当于传统软件测试中的子系统测试。
  4. 系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程同时进行测试。
  • 需求分析确定软件要完成的功能及非功能性要求

  • 概要设计将需求转化为软件的模块划分,确定模块之间的调用关系

  • 详细设计将模块进行细化,得到详细的数据结构和算法

  • 编码根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试

单一职责原则:设计目的单一的类。

无环依赖原则:在包的依赖关系图中不允许存在环,即包之间的结构必须是一个直接的无环图形。

依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。

里氏替换原则:子类可以替换父类。

Python语法

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)。

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Python属于解释型而非编译型程序设计语言

Matplotlib是Python的绘图库,可以绘制直方图、条形图、散点图等图形

列表乘以某一个数,如list2 = list1 * 2 得到一个新的列表是list1的元素重复n次,且list1不改变。

知识产权

《中华人民共和国著作权法》规定:作者的署名权、修改权、保护作品完整权的保护期不受限制。

该自然人死亡以后,在软件著作权的保护期内,软件著作权的继承人可以继承计算机软件保护条例有关条款规定的除了署名权以外的其他权利,即财产权利。

有可能无限期拥有的知识产权是商标权

《中华人民共和国著作权法》《计算机软件保护条例》 是构成我国保护计算机软件著作权的两个基本法律文件

软件许可使用一般有独占许可使用,独家许可使用和普通许可使用三种形式。

  • 独占许可使用,许可的是专有使用权。实施独占许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人不能使用该软件;
  • 独家许可使用,许可的是专有使用权,实施独家许可使用后,软件著作权人不得将软件使用授予第三方,软件著作权人自己可以使用该软件;
  • 普通许可使用,许可的是非专有使用权,实施普通许可使用后,软件著作权人可以将软件使用权授予第三方,软件著作权人自己可以使用该软件。

UML

类图:一组对象、接口、协作和它们之间的关系

对象图:展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。

用例图:一组用例、参与者以及它们之间的关系,可以使用用例图展示系统具有的功能,可以理解为系统提供的服务

对象图:某一时刻一组对象以及它们之间的关系,展示某一时刻一组对象以及它们之间的关系

序列图:以时间顺序组织的对象之间的交互活动,描述了以时间顺序组织的对象之间的交互活动

UML序列图 构成元素|极客笔记

活动图:展示了系统内从一个活动到另一个活动的流程

构件图:展现了一组构件之间的组织和依赖。构件图专注于系统的静态实现视图。

通信图,也叫协作图,描述了对象与对象之间的协作/合作关系,侧重说明对象的消息传递,强调发送和接收消息的对象之间的组织结构。通信图的建模结果用于获取对象的职责和接口。

~ package # protected - private + public

在这里插入图片描述
在这里插入图片描述

数据库

在实体联系图中,属性冲突,是指属性值的类型,取值范围或取值集合不同。比如:“零件号”有的定义为字符型,有的为数值型。

命名冲突,就是不同的意义对象名称相同。或者,相同的意义不同的名称。

结构冲突,是指同一对象在不同应用中具有不同的抽象。比如,“课程”在某一局部应用中被当做实体,而在另一局部应用中被当做属性。

三层模式

  • 视图-外模式
  • 存储文件-内模式
  • 基本表-模式

分布式数据库

  • 分片透明:指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块在的
  • 复制透明:指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。
  • 位置透明:指用户无须知道数据有放的物理位置
  • 逻辑透明:指用户或应用程序无需知道局部场地使用的是哪种数据模型

范式

在这里插入图片描述
在这里插入图片描述

  • 视图层(view level)是最高层次的抽象,描述整个数据库的某个部分。因为数据库系统的很多用户并不关心数据库中的所有信息,而只关心所需要的那部分数据。某些问题可以通过构建视图层实现,这样做除了使用户与系统交互简化,而且还可以保证数据的保密性和安全性。

  • 逻辑层(logical level)是比物理层更高一层的抽象,描述数据库中存储什么数据以及这些数据间存在什么关系。逻辑层通过相对简单的结构描述了整个数据库。尽管逻辑层的简单结构的实现涉及了复杂的物理层结构,但逻辑层的用户不必知道这些复杂性。因为,逻辑层抽象是数据库管理员的职责,由管理员确定数据库应保存哪些信息。

  • 物理层(physical level)是最低层次的抽象,描述数据在存储器是如何存储的。物理层详细地描述复杂的底层结构。

存储过程是SQL语句和控制语句的预编译集合,保存在数据库里,可由应用程序调用执行。

触发器是在对表进行插入、更新或删除操作时自动执行的存储过程。

  • 视图对应外模式
  • 基本表对应模式
  • 存储文件对应内模式

在这里插入图片描述

数据库中的4类故障是事务内部故障、系统故障、介质故障及计算机病毒。

  1. 事务内部故障。事务内部的故障有的可以通过事务程序本身发现。但有些是非预期的,不能由事务程序处理,例如运算溢出、并发事务发生死锁等。
  2. 系统故障。通常称为软故障,是指造成系统停止运行的任何事件,使得系统要重新启动。
  3. 介质故障。通常称为硬故障,如磁盘损坏、磁头碰撞和瞬时强磁干扰。此类故障发生的几率小,但破坏性最大。
  4. 计算机病毒。

软件工程

流水线方式执行指令:单条指令的执行速度是不变的,但是可以同时执行多条指令提高速度。

软件设计采用模块化的思想,模块化是指将一个待开发的软件分解成若干个小的简单部分,即模块,每个模块可独立地开发、测试,最后组装成完整的程序。

生产高质量的软件,强调以下3个要点:

(1)软件必须满足用户规定的需求;

(2)软件应遵循规定标准所定义的一系列开发准则;

(3)软件还应满足某些隐含的需求,例如希望有好的可理解性、可维护性等。

语句覆盖是指选择足够的测试数据,使被测试程序中的每条语句至少执行 一次。语句覆盖对程序执行逻辑的覆盖很低,因此一般认为它是很弱的逻辑覆盖。

判定覆盖是指设计足够的测试用例,使得程序中的每一个取“真”分支和取“假”分支至少都通过一次,因此判定覆盖也称为分支覆盖。判定覆盖要比语句覆盖更强一些。

条件覆盖是指构造一组测试用例,使得每一判定语句中每个逻辑条件的各种可能的值至少满足一次。条件覆盖也比语句覆盖更强一些。

路径覆盖是指覆盖被测试程序中所有可能的路径。如果程序图中有环,则要求每个环至少经过一次。

四个逻辑覆盖标准中,语句覆盖是最弱的。

嵌入式操作系统的主要特点包括微型化、可定制、实时性、可靠性和易移植性。

其中,可定制是指从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。

COCOMOⅡ模型

在模型层次结构中有 3 种不同的规模估算选择:对象点、功能点和代码行。

  1. 应用组装模型 使用 对象点
  2. 早期设计阶段模型 使用 功能点
  3. 体系结构阶段模型 使用 代码行

可靠性、可用性和可维护性是软件的质量属性,软件工程中,用0-1之间的数来度量。

可靠性是指一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。可以用 MTTF/(1+MTTF)来度量,其中MTTF为平均无故障时间、平均失效前时间(Mean Time To Failure)。

可用性是在给定的时间点上,一个系统能够按照规格说明正确运作的概率。可以用 MTBF/(1+MTBF)来度量,其中MTBF为平均失效间隔时间(Mean Time Between Failures)。

可维护性是在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。可以用

1/(1+MTTR)来度量,其中MTTR为平均修复时间(Mean Time To Repair)。

瀑布模型

适合于软件需求很明确的软件项目模型

瀑布模型将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。

增量模型
第1个增量往往是核心的产品

第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更

增量模型是一种能够快速构造可运行产品的好方法

缺点:管理发生的成本、进度和配置的复杂性可能会超出组织的能力

原型模型

原型方法比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。

为了有效地捕获系统需求,应采用原型模型

螺旋模型

螺旋模型是一个风险驱动的过程模型,强调风险分析,支持用户需求动态变化。该模型特别适用于庞大、复杂并且具有高风险的系统。

在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的选代次数会增加开发成本,延迟提交时间。

喷泉模型
在这里插入图片描述
在这里插入图片描述

极限编程 (XP) 是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。

  • 4大价值观:沟通、简单性、反馈和勇气。
  • 12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结队编程、集体代码所有制、持续集成、每周工作40个小时、现场客户和编码标准

水晶方法(Crystal) 认为每一个不同的项目都需要一套不同的策略、约定和方法论

并列争球法 (Scrum) 使用迭代的方法,把一段短的时间(如30天)的迭代称为一个冲刺,并按照需求优先级来实现产品。

自适应软件开发(ASD) 方法基于复杂自适用系统理论,旨在通过提高组织的自适用力以应对Internet时代下极度变化难于预测的快速软件开发要求,最近正与Crystal方法相借鉴和融合。

敏捷统一过程(AUP) 采用“在大型上连续”以及在“在小型上迭代”的原理来构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。

能力成熟度模型集成(CMMI)是若干过程模型的综合和改进。连续式模型和阶段式模型是CMMI提供的两种表示方法,而连续式模型包括6个过程域能力等级:

  • CL0(未完成的):过程域未执行或未达到CL1定义的所有目标
  • CL1(已执行的):共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
  • CL2(已管理的):共性目标集中于已管理的过程的制度化。
  • CL3(已定义级的):共性目标集中于已定义过程的制度化。
  • CL4(定量管理的):共性目标集中于可定量管理的过程的制度化
  • CL5(优化的):使用量化(统计学)手段改变和优化过程域,以对付客户要求的可持续改进计划中的过程域的功效

在这里插入图片描述

McCabe度量法

方法1:边的数量-节点数量+2 (边的两端必须有对应节点,否则不计算在内)

方法2:闭合区域数量+1

最好两个方法都使用,第二次验算

软件的维护

  1. 改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
  2. 适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。(来自第5版教材,但是系统分析师的概念更合适:适应运行环境的变化)
  3. 完善性维护是为扩充功能和改善性能而进行的的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
  4. 预防性维护是为了改进应用软件的可靠性和可维护性,为了适应未来的软/硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。

系统规划和系统分析阶段使用的文档:可行性研究报告、总体规划报告、项目开发计划

概要设计阶段产生的文档有:用户使用手册、概要设计说明书、数据库设计说明书、修订测试计划

计算机网络

OSI七层模型

  • 应用层:为应用程序或用户请求提供各种请求服务。
  • 表示层:数据编码、格式转换、数据加密
  • 会话层:创建、管理和维护会话。
  • 传输层:数据通信。
  • 网络层:IP选址及路由选择。
  • 数据链路层:提供介质访问和链路管理。
  • 物理层:管理通信设备和网络媒体之间的互联互通。
    在这里插入图片描述
    在这里插入图片描述

HTTP是超文本传输协议,SMTP是邮件传输协议,FTP是文件传输协议,TELNET是远程登录服务的标准协议和主要方式,POP收邮件,IMAP交互邮件访问协议,主机与本地路由器之间使用IGMP来进行组播组成员信息的交互

POP3 协议默认端口:110.默认传输协议:TCP

FTP协议的作用是文件传输,使用的传输协议为TCP

内部网关协议 IGP,是在自治网络系统内部主机和路由器间交换路由信息使用的协议,常用的有开放最短路径优先协议 OSPF、路由信息协议 RIP 等。

外部网关协议 EGP, 是可以在自治网络系统的相邻两个网关主机间交换路由信息的协议。边界网关协议 BGP 构建在 EGP 的经验之上,能和其他的 BGP 系统交换网络可达信息。用户数据报协议 UDP 属于 TCP/IP 传输层协议,可以使应用程序发送数据包时,无需事先建立连接。

RFB(Remote Frame Buffer 远程帧缓冲)协议是一个用于远程访问图形用户界面的简单协议。

当用户在浏览器地址栏输入域名时:

  1. 在浏览器地址栏输入域名

  2. DNS解析IP

  3. 在发送http请求前,先进行DNS域名解析,获取访问的IP地址

  4. 浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手

  5. 握手成功后,浏览器向服务器发送http请求

  6. 服务器接收请求,处理并返回响应

  7. 浏览器接收到服务器HTTP响应内容

  8. 浏览器进行渲染,解析HTML生成DOM树,解析CSS生成规则树,js引擎解析js

  9. 渲染完毕,四次挥手,关闭tcp连接

文件传输

  • FTP文件共享是可靠但不安全的方式
  • TFTP文件共享是不可靠且不安全的
  • SFTP指的是SSH文件传输协议,是一数据流连接,提供文件访问、传输和管理功能的网络传输协议。

ARP 报文分为ARP Request和ARP Response,其中ARP Request采用广播进行传送,ARP Response采用单播进行传送。

常见命令

  • ipconfig:是调试计算机网络常用的命令, 通常大家使用它显示计算机网络适配器 IP 地址, 子网掩码, 默认网关, DNS 服务, 比如, 更行适配器, 清楚 DNS 缓冲等。
  • traceroute:可以利用 ICMP 协议定位到一台计算机与另一台计算机之间的所有路径。
  • netstat:是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
  • nslookup:用于查询 DNS 的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。
  • ping:可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障
  • tracert:是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径。Tracert 命令使用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

数据库审计通常是监控并记录用户对数据库服务器的读、写、查询、添加、修改以及删除等操作,并可以对数据库操作命令进行回放。

包过滤防火墙是在 IP 层实现的防火墙技术,包过滤根据包的源 IP 地址、目的 IP 地址、源端口、目的端口及包传递方向等包头信息判断是否允许包通过。包过滤防火墙技术的优点是低负载、高通过率、对用户透明,但无法拦截应用层的攻击。

Web应用防火墙是一种用于保护Web服务器和Web应用的网络安全机制。其技术原理是根据预先定义的过滤规则和安全防护规则,对所有访问Web服务器的HTTP 请求和服务器响应,进行HTTP协议和内容过滤,进而对Web服务器和Web应用提供安全防护功能。主要用于防御针对网络应用层的攻击,像SQL注入、跨站脚本攻击、参数篡改、应用平台漏洞攻击、拒绝服务攻击等。

入侵检测通过收集操作系统、系统程序、应用程序、网络包等信息,发现系统中违背安全策略或危及系统安全的行为。具有入侵检测功能的系统称为入侵检测系统,简称为IDS。IDS能发现入侵行为并报警,但不能阻止恶意攻击

访问控制列表(ACL) 是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。

源地址转换(SNAT) 是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。

通信内聚:指模块内的所有处理元素都在同一数据结构上操作,或者各处理使用相 同的输入数据或产生相同的输出数据。根据概念该题属于通信内聚。

防火墙认为内部网络是安全和可信赖的,而外部网络是不安全和不可信赖的。因此受保护的程度外网是最低而内网是最高的。

受保护程度:外网 < DMZ < 内网

DHCP(动态主机配置协议)

DHCP协议的功能是:集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP客户端可以从DHCP服务器获得本机IP地址、DNS服务器地址、DHCP服务器地址和默认网关的地址等。

Windows无效地址:169.254.X.X Linux无效地址:0.0.0.0

169.254.X.X是Windows系统在DHCP信息租用失败时自动给客户机分配的IP地址。

ADSL Modem上网拨号方式有3种,即专线方式(静态IP)、PPPoA和PPPoE。普通用户多采用PPPoE(Point-to-Point Protocol over Ethernet)或PPPoA(Point-to-Point Protocol over ATM)虚拟拨号的方式上网

入侵防御系统是包含了入侵检查系统的功能,不需要联动入侵检查系统就能进行阻断操作。

操作系统

进程资源图 -> 先分配再申请

在这里插入图片描述

当有n个进程、m个资源、且每个进程所需要的资源数为k,并且系统采用的分配策略是轮流地为每个进程分配资源时,判断是否会发生死锁的公式如下:

m >= n*(k-1)+1

为真就不会发生死锁、为假就会发生死锁

全文件名 = 全路径文件名 = 绝对路径 = 完整的路径

相对路径,相对路径不以 “\” 开头,而是从当前目录开始。

结构化开发

在这里插入图片描述

算法

1、分治法:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。

2、动态规划法:在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解。本题情景没有列出所有的可能解进行筛选,因此,本题不属于动态规划法。

3、回溯法:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。这种走不通就退回再走的技术就是回溯法。本题情景没有探索和回退的过程,因此,本题不属于回溯法。

4、贪心法:总是做出在当前来说是最好的选择,而并不从整体上加以考虑,它所做的每步选择只是当前步骤的局部最优选择,但从整体来说不一定是最优的选择。由于它不必为了寻找最优解而穷尽所有可能解,因此其耗费时间少,一般可以快速得到满意的解,但得不到最优解。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值