考过了,以下是结合课本和刷软考通的题留下的笔记,有需要的自取
同志们加油!!!
如何保持数据流图平衡:父图与子图要在数据流的数量与流向上保持一致
流水线执行时间 = 一条指令流水线所需要耗费的时间 + (指令条数 - 1)* 一条流水线中最耗时的步骤时间
吞吐率 = 指令条数/流水线时间
编译程序产生目标程序不参与用户程序的运行控制;解释程序不产生目标程序,参与控制
常用的中间代码表达式有语法树、后缀式、三地址码
计算机系统的层次结构: 最终用户->应用软件->系统软件->操作系统->计算机硬件
主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余(海明码、crc校验)、时间冗余和冗余附加
冗余附加技术包括:冗余备份程序的存储及调用,实现错误检测和错误恢复的程序,实现容错软件所需的固化程序。
C编写程序 经过预处理->编译->汇编->链接 后形成可执行程序
通过在出口防火墙配置 ACL(访问控制列表)功能可以阻止外部未授权用户访问内部网络
Theo Mandel界面设计的黄金原则:用户操纵控制;减少用户记忆负担;保持界面一致
无效IP地址(169.254.X.X Windows和0.0.0.0 Linux)
GRANT INSERT ON TABLE Students TO USER WITH GRANT OPTION (将Students表的插入权限赋予USER,指定WITH GRANT OPTION获得权限的用户可以将该权限赋予其他用户)
数据库中,视图是一个虚拟表,是从一个或多个表或视图中导出的表
数据库容灾属于系统安全和应用安全
总线复用可以减少总线中信号线的数量
计算机在一个指令周期中,为从内存读取指令操作码,首先将程序计数器的内容送到地址总线上。
中断向量表用来保存各中断源的中断服务程序入口地址
相连存储器按内容访问
软件可靠性指的是一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。
全相联地址映射:主存的任意一块可以映射到Cache中的任意一块;直接相连:主存中的块只能映射到cache特定的块
面向对象建模时业务用例和参与者一起描述组织支持的业务过程
COCOMO II是一种成本估算模型,估算选择有对象点、功能点和代码行
嵌入式操作系统特点:1.微型化2.可定制3.实时性4.可靠性5.易移植性
语法分析根据参数语法树的方向可分为
自底向上分析法(如算符优先和LR分析法、移进-归约)
自顶向下分析法(如递归下降和预测分析法)
图的遍历指从图中某一顶点出发(任意一个顶点都可以作为访问的起始顶点),按照某种遍历方法,对图中所有的顶点访问一次且只访问一次。
图的深度优先遍历(DFS)需要借助栈来遍历(递归)
图的广度优先搜索(BFS)需要借助到队列来遍历
数据库数据物理独立性是指内模式发生变化,只需要调整模式与内模式之间的映像,而不用修改应用程序;
逻辑独立性是指模式发生变化,只需要调整外模式与模式之间的映像,而不用修改应用程序。
需求分析确定软件要完成的功能及非功能性要求;
概要设计将需求转化为软件的模块划分,确定模块之间的调用关系;
详细设计将模块进行细化,得到详细的数据结构和算法;
编码根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。
程序的三种基本控制结构是顺序、选择和重复
面向对象的开发方法有Booch、Coad、OMT方法;Jackson方法是面向数据结构的开发方法
Lisp 人工智能第一个函数式程序设计语言
对稀疏矩阵的压缩方法有三种:1.三元组顺序表 2.行逻辑连接的顺序表 3.十字链表
软件许可使用一般有独占许可使用(软件著作权本人也不能使用该软件);独家许可使用(本人可用);普通许可使用(可授予第三方,可本人使用)
事物具有原子性、一致性、隔离性、持久性
1.原子性(Atomicity) :事务是原子的,要么做,要么都不做。
2.一致性(Consistency) : 事务执行的结果必须保证数据库从一个一致性状态变到另-个一致性状态。
3.隔离性(Isolation) :事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事物都是不可见的。
4.持久性(Durability) :一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。
通常下述三种方式使用类图
1.对系统的词汇建模
2.对简单的协作建模
3.对逻辑数据库模式建模
UML类图中类与类之间的关系有五种:依赖、关联、聚合、组合与继承。
依赖是几种关系中最弱的一种关系,如使用类库。
聚合与组合都表示了整体和部分的关系。组合的程度比聚合高,当整体对象消失时,部分对象也随之消失,则属于组合关系;
当整体对象消失而部分对象依然可以存在并继续被使用时,则属于聚合关系。
UML的静态图:用例图、类图、对象图、构建图、部署图
动态图:状态图、序列图、活动图、协作图
UML的词汇表包含三种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。
UML中关系包括4种:依赖、关联、泛化和实现。
1.依赖(Dependency) :一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义
2.关联(Association) 是一种结构关系,它描述了一组链,链是对象之间的连接。一组链两个类之间可以有多个有不同角色标识的关联
3.泛化(Generalization) 是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象,用这种方法,子元素共享了父元素的结构和行为。
4.实现(Realization) 是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。
著作权中的署名权、修改权、保护作品完整权的保护期不受限制
采用面向对象的软件开发,通常有面向对象分析、面向对象设计、面向对象实现。
面向对象分析是为了获得对应用问题的理解,其主要任务是抽取和整理用户需求并建立问题域精确模型。(包括5个活动:认定对象、组织对象、描述对象的相互作用、定义对象的操作和定义对象的内部信息)
面向对象设计是采用协作的对象、对象的属性和方法解决软件方案的一种方式,强调的是定义软件对象和这些软件对象如何协作来满足需求。
面向对象实现主要强调采用面向对象程序设计语言实现系统。
其中面向对象分析主要强调理解问题是什么,面向对象设计侧重于问题的解决方案,并且需要考虑实现中的细节问题
一个类是一组对象的抽象定义
设计模式(按目的分为创建型、结构型、行为型三大类)
创建型模式,创建对象
抽象工厂模式(Abstract Factory)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
建造者模式(Builder)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
工厂方法模式(Factory Method)定义一个用于创建对象的接口,让子类决定实例化哪个类。Factory Method使一个类的实例化延迟到其子类
原型模式(Prototype)它使用原型实例来指定创建对象的种类,并且通过复制这些原型来创建新的对象。Cloneable
单例模式(Singleton)
结构型模式,处理类或对象的组合
适配器模式(Adapter)让原本由于接口不兼容而不能一起工作的类可以一起工作。适配器充当了两个不同接口之间的桥梁。
桥接模式(Bridge) 将抽象部分与其实现部分分离,使它们可以独立变化
组合模式(Composite) 想表示对象的部分-整体层次结构
装饰模式(Decorator)它允许在不改变对象结构的情况下动态地给对象添加新的职责。
外观模式(Facade)定义一个高层接口,让子系统更容易使用。这种模式通过提供一个简单的接口来隐藏一个子系统的复杂性
享元模式(Flyweight)它通过共享技术来尽可能地复用已存在的相似对象,以此来减少创建新对象所需的资源消耗。
代理模式(Proxy)它给某一个对象提供一个代理,并由代理对象控制对原对象的访问。
行为型模式,描述对类或对象怎样交互和怎样分配职责
职责链模式(Chain of Responsibility) ,直到其中一个处理者处理它为止。这种模式通过将请求的发送者和接收者解耦,使得请求的处理过程可以动态决定。
命令模式(Command)它把请求封装为一个对象,从而使你可用不同的请求来参数化客户端。
解释器模式(Interpreter)它定义了一个语言的文法,并建立一个解释器来解释该语言中的句子。
迭代器模式(Iterator)它提供了一种方法来访问一个聚合对象(如列表、集合等)中的各个元素,而无需暴露该对象的内部表示。
中介者模式(Mediator) 通过一个中介对象实现对象间的通信,简化了对象之间的交互,使得各个对象之间不需要直接相互通信,而是通过中介者进行通信,从而减少了对象间的耦合
备忘录模式(Memento)它允许在不破坏封装性的前提下捕获一个对象的内部状态,并在以后恢复这个对象之前的状态
观察者模式(Observer) 一对多,一个状态改变通知所有订阅的对象
状态模式(State) 允许一个对象在内部状态改变时改变它的行为(如红绿灯每种状态有不同的行为)
策略模式(Strategy) 这种模式定义了一系列算法,并将每一个算法封装起来,使它们可以互相替换。策略模式让算法的变化不会影响到使用算法的客户端。
模板方法模式(Template Method) 定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
访问者模式(Visitor)它允许你在不改变类的情况下向一组已经存在的类方法中增加新的行为
瀑布模型 的优点是,容易理解,管理成本低; 需求明确支持大型项目。不足:对于项目风险的控制能力较弱,可能导致延期超预算
增量模型 作为瀑布模型的一个变体,具有瀑布模型的所有优点。此外,它还有以下优点:第一个可交付版本所需要的成本和时间很少;
需求不清晰且规模不太大时采用原型方法最合适,对数据处理领域的问题,若系统规模不大且不太复杂,需求变化也不大用结构化开发方法
典型的演化模型有原型模型和螺旋模型
1.原型模型比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。
2.螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,从而做出应有的反应。因此,该模型特别适用于庞大、复杂并且具有高风险的系统。支持用户需求的动态变化
对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,每个螺旋周期分为如下4个工作步骤。
(1)制订计划。确定软件的目标,选定实施方案,明确项目开发的限制条件。
(2)风险分析。分析所选的方案,识别风险,消除风险。
(3)实施工程。实施软件开发,验证阶段性产品。
(4)用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。
喷泉模型 以用户的需求为动力,以对象作为驱动的模型,适用于面向对象的开发方法
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。
迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统。
无间隙是指在开发活动(如分析、设计、编码)之间不存在明显的边界,也就是说,它不像瀑布模型那样,在需求分
析活动结束后才开始设计活动,在设计活动结束后才开始编码活动,而是允许各开发活动交叉、迭代地进行。
喷泉模型的各个阶段没有明显的界线,开发人员可以同步进行其优点是可以提高软件项目的开发效率,节省开发时间。
由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员不利于项目的管理。此外,这种模型要求严格管理文档,使得审核的难度加大。
基于构件的开发模型 是指利用预先包装的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品软件构件。
基于构件的开发模型具有许多螺旋模型的特点,它本质上是演化模型,需要以迭代方式构建软件。其不同之处在于,基于构件的开发模型采用预先打包的软件构件开发应用系统。
形式化方法模型 是建立在严格数学基础上的一种软件开发方法,其主要活动是生成计算机软件形式化的数学规格说明。
统一过程模型是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开发过程,由UML方法和工具支持。
4个技术阶段的主要里程碑:
初始阶段:生命周期目标
精化阶段:生命周期架构
构建阶段:初始运作功能
移交阶段:产品发布
敏捷方法:敏捷开发的总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。
1.极限编程(XP) 是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。
4 大价值观:沟通、简单性、反馈和勇气。
5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布
(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计
(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序)、
重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队
编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、
每周工作 40个小时、现场客户和编码标准。
2.水晶法(Crystal)
水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论,认为人对软件质量
有重要的影响,因此随着项目质量和开发人员素质的提高,项目和过程的质量也随之提高。通
过更好地交流和经常性的交付,软件生产力得到提高,
3.并列争求法(Scrum)
并列争求法使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的
优先级别来实现产品。多个自组织和自治的小组并行地递增实现产品。协调是通过简短的日常
情况会议来进行,就像橄榄球中的“并列争球”
4.自适应软件开发(ASD)
ASD有6个基本的原则:有一个使命作为指导;特征被视为客户价值的关键点;过程中的
等待是很重要的,因此“重做”与“做”同样关键;变化不被视为改正,而是被视为对软件开
发实际情况的调整;确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求:风
险也包含其中。
5.敏捷统一过程(AUP)
敏捷统一过程(Agile Unifed Process,AUP)采用“在大型上连续”以及在“在小型上迭
代”的原理来构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了
一系列活动,能够使团队为软件项目构想出一个全面的过程流。在每个活动里,一个团队迭代
使用敏捷,并将有意义的软件增量尽可能快地交付给最终用户。每个AUP选代执行以下活动:
建模。建立对商业和问题域的模型表述,这些模型“足够好”即可,以便团队继续前进。
实现。将模型翻译成源代码。
测试。像 XP一样,团队设计和执行一系列的测试来发现错误以保证源代码满足需求。
部署。对软件增量的交付以及获取最终用户的反馈。
配置及项目管理。着眼于变更管理、风险管理以及对团队的任一制品的控制。项目管理追踪和控制开发团队的工作进展并协调团队活动。
环境管理。协调标准、工具以及适用于开发团队的支持技术等过程基础设施。
表示媒体:为研究构造出来的,有各种编码方式,如文本编码图像编码声音编码等
表现媒体:指进行信息输入和输出的媒体,如键盘、扫描仪、话筒、摄像机、显示器等
感觉媒体:直接作用于人的感觉器官;如引起听觉反应的声音、引起视觉反应的图像、文本
计算机数字音乐合成技术主要有FM(频率调制,最有效的合成技术)和Wave Table(波形表合成,真实的合成技术,音质更好)
FM方式的音乐合成器中,改变频率可以改变音乐的音调,改变幅度可以改变音高
语音信号频率范围300Hz-3.4kHz,要保持话音抽样后再恢复时不失真,需使用2倍的最高频率,即数字语音采样频率8kHz
软件维护工具
1.版本控制工具;
2.文档分析工具;
3.开发信息库工具
4.逆向工程工具;
5.再工程工具;
6.配置管理支持工具。注:配置管理和配置管理支持工具不是一个概念
E-R图冲突(①属性冲突②命名冲突③结构冲突)
属性冲突,即属性值的类型、取值范围或取值集合不同。
命名冲突,同名异义,即不同意义的对象在不同的局部应用中具有相同的名字;异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
结构冲突:
同一对象在不同应用中具有不同的抽象。(如职工在A中是实体,在B中是属性)
同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。
实体间的联系在不同的E-R图中为不同的类型。(E1与E2在A中一对一,在B中一对多)
排序方法 | 时间复杂度 | 辅助空间 | 稳定性 |
---|---|---|---|
直接插入 | O(n²) | O(1) | 稳定 |
简单选择 | O(n²) | O(1) | 不稳定 |
冒泡排序 | O(n²) | O(1) | 稳定 |
希尔排序 | O(n^1.3) | O(1) | 不稳定 |
快速排序 | O(nlogn) | O(logn) | 不稳定 |
堆排序 | O(nlogn) | O(1) | 不稳定 |
归并排序 | O(nlogn) | O(n) | 稳定 |
基数排序 | O(d(n+rd)) | O(rd) | 稳定 |
归并排序(Merge Sort)是一种高效的、基于比较的排序算法,它采用分治法(Divide and Conquer)的思想。归并排序将数组分成两半,递归地对每一半进行排序,然后将两个有序的部分合并成一个整体。
最差的情况下时间复杂度nlogn,快排冒泡n^2
二分查找(Binary Search),也称为折半查找或对数查找,是一种在有序数组中查找某一特定元素的搜索算法。二分查找的时间复杂度为 O(logn).
深度优先遍历图的过程实质上是对某个顶点查找其邻接点的过程,其耗费的时间取决于所采用的存储结构。
当图用邻接矩阵表示时,查找所有顶点的邻接点所需时间为 O(n^2)。若以邻接表作为图的存储结构,则需要O(e)的时间复杂度查找所有顶点的邻接点。
因此,当以邻接表作为存储结构时,深度优先搜索遍历图的时间复杂度为O(n+e)。
软件维护的内容
1.正确性维护,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护
2.适应性维护,外部环境变化被动修改,在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
3.完善性维护,主动优化,在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性
4.预防性维护,这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。
黑盒测试:也称为功能测试,在完全不考虑软件的内部结构和特性的情况下来测试软件的外部特性。
常用的黑盒测试技术包括等价类划分、边界值分析、错误猜测和因果图的报告。
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的执行路径和过程进行测试,检查是否满足设计的需要。
常用的白盒测试技术包括逻辑覆盖和基本路径测试
单元测试:又称为模块测试,是针对软件设计的最小单元(程序模块)进行正确性检验的测试。
全局数据结构不是单元测试主要检查的内容。
单元测试主要测试以下几个方面:模块接口、局部数据结构、执行路径、错误处理和边界。
系统的可维护性的评价指标包括:可理解性、可测试性、可修改性。
可理解性:指别人能理解系统的结构、界面、功能和内部过程的难易程度。模块化、详细设计文档、结构化设计和良好的高级程序设计语言等,都有助于提高可理解性。
可测试性:诊断和测试的容易程度取决于易理解的程度。
可修改性:诊断和测试的容易程度与系统设计所制定的设计原则有直接关系。模块的耦合、内聚、作用范围与控制范围的关系等,都对可修改性有影响。
自顶向下集成优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产品控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
软件功能模块:
1.传入模块:取得数据,处理后传给其它模块
2.传出模块:输出数据,可输出到其它模块或系统的外部
3.变换模块:处理数据转化成其它形式,再将加工后的数据返回给调用模块
4.协调模块:一般不对数据进行加工,主要通过调用、协调和管理其它模块来完成功能
模块间耦合的高低取决于:模块间接口的复杂性,模块调用的方式以及传递的信息
无直接耦合:两个模块之间没有直接的关系。耦合最弱,模块独立性最高
数据耦合:通过基本数据类型的参数传递数据
标记耦合:一组模块通过参数表传递信息(数据结构、数组等)
控制耦合:一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择的执行模块内的某一功能。
外部耦合:一组模块都访问同一全局简单变量
公共耦合:一组模块访问同一数据环境,包括全局数据结构、共享通信区、内存的公共覆盖区
内容耦合:耦合最高,一个模块直接使用另一个模块的内部数据
模块内聚是指模块内部各组成部分之间的关联程度,它是衡量模块内部元素彼此间关联紧密度的一个指标。内聚性越高,通常意味着模块的设计越好,其功能越集中,独立性越强。
下面是模块内聚的不同类型,按照从低到高的顺序排列:
1.偶然内聚 模块内的各处理元素之间没有任何联系,仅仅是物理上放在一起。
2.逻辑内聚 模块执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3.时间内聚或称瞬时内聚 模块内的任务或动作必须在同一时间段内执行。
4.过程内聚 模块内的处理元素是相关的,并且必须按照特定的顺序执行。
5.通信内聚或称信息内聚 模块内的所有处理元素都作用于同一个输入数据集,或者产生同一个输出数据集。
6.顺序内聚 模块内的处理元素与同一功能密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。
7.功能内聚或称原子内聚 模块内的所有处理元素共同完成一个功能,缺一不可,这是最高级别的内聚。
进度安排
1.Gantt甘特图是一种简单的水平条形图。Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是
它不能清晰的反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
2.PERT图是一个有向图,PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才
能开始另外一些任务,以及如期完成整个工程的关键路径。图中的松弛时间则反映了完成某些任务时可以推迟其开始时间或延长其所需完成的时间,但是
PERT图不能反映任务之间的并行关系。
PERT即计划评审技术,PERT图可以清晰的表示各任务的开始时间和结束时间以及各任务之间的依赖关系,但无法很好的表示各任务之间的并行情况。
1.事件(Events)表示主要活动结束的那一点;
2.活动(Activities)表示从一个事件到另一个事件之间的过程;
3.松弛时间(slack time)不影响完工前提下可能被推迟完成的最大时间;
4.关键路线(Critical Path)是PERT网络中花费时间最长的事件和活动的序列。
寻址方式
1.立即寻址,操作数就包含在指令中
2.直接寻址,操作数在内存单元中,指令中直接给出操作数所在存储单元的地址
3.寄存器寻址,操作数存放在寄存器中,指令中给出存放操作数的寄存器名
4.寄存器间接寻址,操作数存放在内存中,其地址存放在某个寄存器中
5.间接寻址,指令中给出操作数地址的地址
6.相对寻址,指令地址码给出的是一个偏移量,操作数地址等于本条指令的地址加上该偏移量
7.变址寻址,操作数地址等于变址寄存器的内容加偏移量
DMA是一种硬件特性,允许某些硬件子系统在不经过CPU的直接干预下,直接访问系统内存。
DMA传送数据时,每传送一个数据需要占用一个存储周期
TCP、UDP传输层;IP、ICMP、IGMP、ARP、RARP网络层
IGMP进行组播组成员信息交互;RFB远程帧缓冲,远程访问图形用户界面
ICMP网络层协议,传送有关通信问题的消息,如数据报不能到达目标站,路由器缓存空间不足,路由器最短通路信息;ICMP报文封装在IP数据报中传送,不保证可靠的提交
PPP扩展认证协议,认证可选PAP(口令验证协议,提供简单的两次握手);CHAP(质询握手认证协议,使用三次握手的加密会话,更安全)
FTP文件传输服务基于TCP,应用层,控制端口为21,上传文件的数据端口20
ARP是网络层协议,实现IP地址和MAC地址之间的变换
TCP/IP中建立可靠的连接在传输层完成
POP3 端口110,协议采用C/S模式通信,基于TCP连接,接收邮件
SMTP 简单的邮件传输,TCP,25,MIME邮件扩展协议,PEM增强私密邮件保护协议
MIME扩展了电子邮件的标准,使其支持非文本格式附件(二进制、声音、图像等);S/MIME 安全的多用途互联网邮件扩展协议
PGP 优良保密协议,可用于邮件内容加密
Telnet 远程登录,应用层,SSH可有效防止远程管理过程中信息泄露问题的安全协议
物理层设备,中继器和集线器 (集线器,将局域网电缆收拢在一个盒子里,可收发数据,可检测发送冲突;中继器信号放大)
数据链路层设备,网桥、交换机、网卡,多端口网桥等同于交换机
网络层设备 三层交换机和路由器,识别ip地址,进行数据包发送
应用层设备 网关,协议转换
主动攻击与被动攻击
主动攻击:主动攻击包括拒绝服务攻击(如SYN Flooding)、分布式拒绝服务( DDos )、信息篡改、资源使用、欺骗、伪装、重放等攻击方法。注意:如果题目提到IP地址欺骗、会话拦截也属于主动攻击
被动攻击(截获):流量分析、系统干涉、窃听、嗅探、端口扫描 会话拦截?
入侵检测技术包括专家系统、模型检测、简单匹配
病毒(具有隐蔽性、传染性、潜伏性、触发性和破坏性)
蠕虫病毒:红色代码,爱虫病毒,熊猫烧香,欢乐时光、Nimda病毒,爱丽兹病毒,震网
木马程序,通过特定的程序来控制另外一台计算机,黑客通过控制端(客户端)控制服务端设备 如冰河、X卧底
Dos拒绝服务攻击,通过占用内存cpu处理时间或占用网络连接导致正常服务无响应。如SYN Flooding
宏(Macro)病毒与系统平台无关,主要针对文档,如office相关软件
加密方式对称加密
1.对称加密:共享密钥加密
RC5的设计旨在提供良好的安全性同时保持计算效率,现在更推荐使用如AES这样的现代加密算法。
AES (Advanced Encryption Standard):一种广泛应用的标准对称加密算法,加密和解密使用同一密钥,速度快,适合大量数据加密。
DES (Data Encryption Standard) 和 3DES (Triple DES):早期的对称加密标准,现在逐渐被AES取代,安全性相对较低。
对称加密的特点在于加密和解密速度快,但是密钥的管理和分发成为关键问题,因为双方都需要知道同一密钥才能进行有效通信。
2.非对称加密:公开密钥加密,私钥解密和签名,公钥加密和认证
RSA:最著名的非对称加密算法,有两个密钥——公钥和私钥,公钥用于加密,私钥用于解密;反之亦然,但私钥加密的内容只有公钥能解密。RSA常用于身份验证、数字签名和密钥交换等领域。
ECC (Elliptic Curve Cryptography):椭圆曲线加密算法,也是一种非对称加密算法,相比RSA在相同的安全级别下所需密钥长度更短,效率更高。
非对称加密的优势在于解决了密钥分发的问题,公钥可以随意分发,私钥则严格保密。缺点是计算复杂度较高,不适合处理大数据量加密。
3.哈希函数:MD5是一种摘要算法,结果长度128位,MD5不可逆性-不支持解密;确定性-对于相同的输入,MD5总是产生相同的散列值。主要用于数据完整性校验、密码存储
数字签名,通过CA的公钥验证CA的签名确定证书的有效性
1.身份验证
2.数据完整性
3.不可抵赖性
数据字典的条目:数据流,数据项,数据存储,基本加工
结构化方法的分析结果:一套分层的数据流图、一本数据字典、一组小说明(也称加工逻辑说明)、补充材料
模块结构图包括:模块、调用、数据、控制信息和转接符。
软件系统的可维护性指标:可理解性、可修改性、可测试性、稳定性
结构化涉及主要包括:
1.体系结构设计:定义软件的主要结构元素及其关系
2.数据设计:基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构
3.接口设计:描述用户界面,软件和其它硬件设备、其它软件系统及使用人员的外部接口,以及各种构件之间的内部接口
4.过程设计:确定软件各个组成部分内的算法及内部数据结构,并选定某种过程表达形式来描述各种算法
实体关系图(ERD)是展示实体间关系的图表,用于数据库设计和需求分析,由实体、关系、属性等组成
数据流图(DFD)建模采用自顶向下逐层分解,从抽象到具体
设计阶段接口设计组要依据需求分析阶段的数据流图,接口设计是描述软件与外部环境之间的交互关系,软件内模块间的调用关系
数据流图是结构化分析的一个重要模型,描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模。
数据流图中有四个要素:
外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的部分,通常为组织、部门、人、相关的软件系统或者硬件设备;
数据流表示数据沿箭头方向的流动;
加工是对数据对象的处理或变换;
数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。
根据上述定义和题干说明,读者是外部实体,图书和借书证是数据流,借阅是加工。
数据流图(DFD)对基本加工的说明有三种描述方式:结构化语言、判断表(决策表)、判断树(决策树)。
决策树决策表适用于设计多个逻辑条件,能清楚的表示复杂条件组合与应做的动作之间的对应关系
加工逻辑描述的基本原则
1.对数据流图的每一个基本加工,必须有一个基本加工逻辑说明
2.基本加工逻辑说明必须描述基本加工如何把输入数据流转换为输出数据流的加工规则
3.加工逻辑说明必须描述实现加工的策略而不是实现加工的细节
4.加工逻辑说明中包含的信息应该是充足的、完备的、有用的、无冗余的
模块的作用范围是指受该模块内一个判定影响的所有模块的集合。控制范围是指模块本身及其所有下属模块(直接或间接从属于它的模块)的集合
一个模块的作用范围应在其控制范围之内,判定所在的模块应和其影响的模块在层次上尽量靠近
若不在控制范围内,可以用 上移判点 或 下移受判断影响的模块,将它下移到判断所在模块的控制范围内 的方法改进
仓库风格是一种软件体系结构,其中包含一个数据仓库和若干个其他构件。
数据库系统、超文本系统和黑板系统都属于仓库风格。
n个顶点的无向图,如果它是连通图,则最少有n-1条边。n个顶点的有向图,如果它是强连通图,则最少有n条边
CMM 将组织的过程成熟度分为五个等级
初始级(Initial, Level 1):在这个级别,组织的过程特征是无序的,有时甚至是混乱的,偶尔会有好的过程特性,但这些特性在项目之间往往是不可重复的。
可重复级(Repeatable, Level 2):建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性
已定义级(Defined, Level 3):所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
已管理级(Managed, Level 4):收集软件过程和产品质量的详细度量。对软件过程和产品都有定量的理解与控制。
优化级(Optimizing, Level 5):过程的量化反馈和先进的新思想、新技术促使过程不断改进。
能力成熟度集成模型CMMI是CMM模型的最新版本,基于连续式表述的CMMI共有6个(0~5)能力等级,
0未完成级,目标没有被满足
1已执行级,产生可识别的输入工作产品,关注特定目标的完成
2.已管理级,过程制度化,针对单个过程实例的能力
3.已定义级,关注过程的标准化和部署
4.量化管理级,定量管理的过程制度化
5.优化级,优化过程制度化,过程很好的执行且持续得到改进
数据结构模型:(非关系模型)层次模型、网状模型;关系模型、面向对象模型
关系模型采用二维表格结构表达实体类型及实体间的联系
分布式数据库系统
1.分片透明性:用户只对全局关系进行操作而不必考虑数据的分片(无需知道逻辑上的表怎么分块存储)
2.位置透明性:用户应当了解分片情况,但不必了解片段的存储场地(无需知道数据存放的物理位置)
3.逻辑透明,即局部数据模型透明性:用户应了解分片和其存储位置,不必了解局部场地上使用的是何种数据模型
4.复制透明,无需知道数据复制到哪是怎么复制的
分布式数据库可用性当某一场地故障,系统可以使用其他副本而不至于使整个系统瘫痪
共享性,不同节点存储的数据共享;自治性,每个节点对本地数据独立管理;分布性,指在不同场地存储。
数据库,模式(实体如基本表,属性,关系,约束),是数据库中数据逻辑结构的描述;
外模式(逻辑视图即实体表的一部分或多个表的组合,访问权限,简化接口),是数据库用户视角下的数据视图
内模式(也称存储模式,物理存储结构:如文件系统、分区、索引等。存取方法:如B树、哈希索引等。存储优化:如缓冲池管理、事务日志等)
ipconfig 显示ip、mac、网关地址等
tracert(Linux:traceroute) 是一个常用的网络诊断工具,用于确定IP数据包访问目标所采取的路径,若网络不通,能定位到具体哪个节点不通
netstat 用于显示网络连接、路由表和网络接口信息
nslookup 查询dns记录
数据库
1NF属性值都是不可分的原子值
2NF 1NF+消除非主属性对候选键的部分依赖
3NF 2NF+消除非主属性对候选键的传递依赖
BCNF 3NF+消除主属性对候选键的部分依赖(数据表只能有一个候选键或每个候选键都是单属性,进一步降低数据冗余性)
函数依赖
- Armstrong公理
(1)自反律(Reflexivity)
如果 Y⊆X⊆U,则X→Y在R上成立。即一组属性函数决定它的所有子集。
(2)增广律(Augmentation)
若X→Y在R上成立,且Z属于U,则XZ→YZ在R上也成立。
(3)传递律(Transitivity)
若X→Y和Y→Z在R上成立,则X→Z在R上也成立。- Armstrong公理推论
(1)合并律(Union rule)
若X→Y和X→Z在R上成立,则X→YZ在R上也成立。
例如,在关系SCD中,SNo→(SN, Age),SNo→(Dept, MN), 则有SNo→(SN, Age, Dept, MN)。
(2)伪传递律(Pseudotransitivity rule)
若X→Y和YW→Z和在R上成立,则XW→Z在R上也成立。
(3)分解律(Decomposition rule)
若X→Y和Z⊆Y在R上成立,则X→Z在R上也成立。
(4)复合律
若X→Y和W→Z在R上成立, 则XW→YZ在R上也成立。
大数据的5V特点 大量、高速、多样、价值、真实性
大数据的五个环节1.数据准备2.存储管理3.计算处理4.数据分析5.知识展现
大数据的关键技术:HDFS(提供高吞吐量的数据访问);HBase(非结构化数据存储的数据库);MapReduce(一种编程模型);Chukwa(数据收集系统)
云计算服务类型包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)。
云计算技术架构有四层,分别为设施层、资源层、资源控制层、服务层。
物联网架构(1)感知层:负责信息采集和物物之间的信息传输。(2)网络层:是物联网三层中标准化程度最高、产业化能力最强、最成熟的部分。(3)应用层:实现应用。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
信息化的层次从小到大有五层,分别为产品信息化、企业信息化、产业信息化、国民经济信息化、社会生活信息化。
智能的特点:一是具有感知能力,即具有能够感知外部世界、获取外部信息的能力,这是产生智能活动的前提条件和必要条件;
二是具有记忆和思维能力,即能够存储感知到的外部信息及由思维产生的知识,同时能够利用已有的知识对信息进行分析、计算、比较、判断、联想、决策;
三是具有学习能力和自适应能力,即通过与环境的相互作用不断学习和积累知识,使自己能够适应环境的变化;
四是具有行为决策能力,即对外界的刺激作出反应,形成决策并传达相应的信息。
电子政务主要包括四个方面:G2G、G2B、G2C、G2E;电子商务的类型主要包括:B2B、B2C、C2C、O2O
两化融合的含义有以下四条:
(1)信息化与工业化发展战略的融合。
(2)信息资源与材料、能源等工业资源的融合。
(3)虚拟经济与工业实体经济的融合。
(4)信息技术与工业技术、IT设备与工业装备的融合。