本文主要是介绍软设上午题错题知识点3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
软设上午题错题知识点3
- 原子性(Atomicity):事务是原子的,要么做,要么都不做。
- 一致性(Consistency):事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。
- 隔离性隔离性(lsolation):事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事物都是不可见的。
- 持久性(Durability):一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。题干描述的是持久性。
5、MIME是一个互联网标准,扩展了电子邮件标准,使其能够支持,与安全无关。与安全电子邮件相关的是S/MIME安全多用途互联网邮件扩展协议。 SSL和HTTPS涉及到邮件传输过程的安全。PGP(全称:Pretty Good Privacy,优良保密协议),是一套用于信息加密、验证的应用程序,可用于加密电子邮件内容。
6、由于中间代码实际上也起着编译器前端和后端分水岭的作用,所以使用中间代码也有助于提高编译程序的可移植性。常用的中间代码有后缀式、三元式、四元式和树等形式。
7、栈是一种后进先出的数据结构。将一个元素序列逆置时,可以使用栈也可以不用。
链表结点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。
可执行程序的装入与卸载,也不存在“后进先出”的操作要求。
对于函数的递归调用与返回,一定是后被调用执行的先返回。
8、通用程序设计语言的大多数语法可用上下文无关文法表示。
9、实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速响应。
因此,实时操作系统与分时操作系统的第一点区别是交互性强弱不同,分时系统交互型强,实时系统交互性弱但可靠性要求高;
第二点区别是对响应时间的敏感牲强,对随机发生的外部事件必须在被控制对象规定的时间做出及时响应并对其进行处理;
第三点区别是系统的设计目标不同,分时系统是设计成一个多用方的通用系统,交互能力强;而实时系统大都是专用系统。
10、生成器(Builder)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式适用于以下几种情况: ①当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时; ②当构造过程必须允许被构造的对象有不同的表示时。
工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。工厂方法适用于以下几种情况: ①当一个类不知道它所必须创建的对象的类的时候; ②当一个类希望由它的子类来指定它所创建的对象的时候; ③当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
原型(Prototype)模式用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。原型模式适用于以下几种情况: ①当一个系统应该独立于它的产品创建、构成和表示时; ②当要实例化的类是在运行时刻指定时,例如,通过动态装载; ③为了避免创建一个与产品类层次平行的工厂类层次时; ④当一个类的实例只能有几个不同状态组合中的一种时,建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
单例(Singleton)设计模式是一种创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问这个唯一实例的全局访问点。单例模式适用于以下情况: ①当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时; ②当这个唯一实例应该是通过子类化可扩展的,并且客户应该无须更改代码就能使用一个扩展的实例时。
11、数据流图主要由实体、数据存储、处理过程和数据流四部分组成。在顶层数据流图中,将系统描述成一个处理过程,而其它的是与该处理过程相关的输入输出流,因此顶层数据流图描述了系统的输入与输出。
12、 状态图(state diagram)展现了一个状态机,用于描述一个对象在其生存期间的动态行为,表现为4个对象所经历的状态序列,它由状态、转换、事件和活动组成。
状态图关注系统的动态视图,它对于接口、类和协作的行为建模尤为重要强调对象行为的事件顺序。状态图通常包括简单状态和组合状态、转换(事件和动作)。
可以用状态图对系统的动态方面建模。这些动态方面可以包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为,这些对象包括类(各主动类)、接口、构件和节点。 当对象处于某个状态时,这个状态被称为激活状态(active state)。
任何从激活状态出发的转换所标识的事件被检测到发生时,进行转换,而从当前状态出发的事件如果没有标注所检测到的事件名称,就忽略该事件,不激发任何转换,当前状态仍然是激活状态。
13、对C源程序进行编译时,需建立符号表,其作用是记录源程序中各个符号(变量等) 的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作。
符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。
14、 数字签名(Digital Signature)技术是不对称加密算法的典型应用:数据源发送方使用自己的私钥对数据校验和(或)其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名“,并将解读结果用于对数据完整性的检验,以确认签名的合法性。
数字签名主要的功能是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
15、单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。单元测试侧重于模块中的内部处理逻辑和数据结构。单元测试主要检查模块的以下5个特征:模块接口、局部数据结构、重要的执行路径、出错处理和边界条件。
①模块接口。模块的接口保证了测试模块的数据流可以正确地流入、流出。在测试中应检査以下要点:
•测试模块的输入参数和形式参数在个数、属性、单位上是否一致。
•调用其他模块时所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致。
•调用标准函数时所用的参数在属性、数目和顺序上是否正确。
•全局变量在各模块中的定义和用法是否一致。
•输入是否仅改变了形式参数。 •开/关的语句是否正确。
•规定的I/O格式是否与输入输出语句一致。
•在使用文件之前是否已经打开文件或是用文件之后是否己经关闭文件。
②局部数据结构。在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素:
•变量的说明是否合适。
•是否使用了尚未赋值或尚未初始化的变量。
•变量的初始值或默认值是否正确。
•变量名是否有错(例如:拼写错误)。
③重要的执行路径。在单元测试中,对路径的测试是最基本的任务。
由于不能进行穷举测试,需要精心设计测试例子来发现是否有计算、比较或控制流等方面的错误。
•计算方面的错误:算术运算的优先次序不正确或理解错误;精度不够;运算对象的类型彼此不相容;算法错误;表达式的符号表示不正确等。
•比较和控制流的错误:本应相等的量由于精度造成不相等;不同类型进行比较; 逻辑运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一 次)、死循环;不恰当地修改循环变量;当遇到分支循环时,出口错误等。
④出错处理。好的设计应该能预测到出错的条件并且有对出错处理的路径。
虽然计算机可以显示出错信息的内容,但仍需要程序员对出错进行处理,保证其逻辑的正确性,以便于用户维护。
⑤边界条件。边界条件的测试是单元测试的最后工作,也是非常重要的工作。软件容易在边界出现错误。
16、继承是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行。
17、极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术;
水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论;
并列争球法(Scrum)使用迭代的方法,其中把每30天一次的迭代成为一个冲刺,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品,并通过简短的日常情况会议进行协调。
18、对于观察者模式是一个被观察者和多个观察者对象;
桥接模式是结构型模式,存在部分与整体的联系;
策略模式是对于不同算法的封装和切换,但是调用策略的对象只有一个。
一个对象结构包含很多类对象(Item),而系统要求这些对象实施一些依赖于某具体类(Checkout)的操作时,可以使用访问者模式。
19、在平衡二叉树中,任意一个结点的左、右子树的髙度之差的绝对值不超过1。 虽然在结构上都符合二叉树的定义,但完全二叉树、线索二叉树、二叉排序树与最优二叉树的应用场合和概念都不同。 线索二叉树与二叉树的遍历运算相关,是一种存储结构。 二叉排序树的结构与给定的初始关键码序列相关。 最优二叉树(即哈夫曼树)是一类带权路径长度最短的二叉树,由给定的一个权值序列构造。 线索二叉树、二叉排序树和最优二叉树在结构上都不要求是平衡二叉树。 在完全二叉树中,去掉最后一层后就是满二叉树,而且最后一层上的叶子结点必须从该层的最左边开始排列,满足任意一个结点的左、右子树的高度之差的绝对值不超过1的条件,因此在形态上是一个平衡的二叉树。
20、采用面向对象技术进行软件开发时,需要进行面向对象分析(OOA)、面向对象设计(OOD)、面向对象实现和面向对象测试几个阶段。
分析阶段的目的是为了获得对应用问题的理解,确定系统的功能、性能要求,在此阶段主要关注系统的行为,明确系统需要提供什么服务。
在设计阶段,采用面向对象技术将OOA所创建的分析模型转化为设计模型,其目标是定义系统构造蓝图。
在实现阶段(面向对象程序设计),系统实现人员选用一种面向对象程序设计语言,采用对象、类及其相关概念进行程序设计,即实现系统。
这篇关于软设上午题错题知识点3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!