软设上午题-错题知识点2
1、模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。
内聚是指模块内部各元素之间联系的紧密程度,内聚度越高,则模块的独立性越好。
内聚性一般有以下几种:
①巧合内聚,指一个模块内的各处理元素之间没有任何联系。
②逻辑内聚,指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
③时间内聚,把需要同时执行的动作组合在一起形成的模块。
④通信内聚,指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。
⑤顺序内聚,指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。
⑥功能内聚是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
2、在计算机中使用了类似于十进制科学计数法的方法来表示二进制实数,因其表示不同的数时小数点位置的浮动不固定而取名浮点数表示法。
浮点数编码由两部分组成:阶码(即指数,为带符号定点整数,常用移码表示,也有用补码的)和尾数(是定点纯小数,常用补码表示,或原码表示)。
因此可以知道,浮点数的精度由尾数的位数决定,表示范围的大小则主要由阶码的位数决定。
3、组合(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组件Component为组合的对象声明接口,通常定义父组件引用,用户引用此组件,Leaf和Composite类可以继承这个引用以及管理这个应用的那些操作。适用于:想表示对象的“部分-整体”层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。 迭代器(Iterator)提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。适用于:访问一个聚合对象的内容而无须暴露它的内部表示;支持对聚合对象的多种遍历;为遍历不同的聚合结构提供一个统一的接口。
备忘(Memento)在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。适用于:必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态;如果一个用接口来让其他对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。
4、RISC(Reduced Instruction Set Computer,精简指令集计算机)的主要特点是重叠寄存器窗口技术;优化编译技术。RISC使用了大量的寄存器,如何合理分配寄存器、提高寄存器的使用效率及减少访存次数等,都应通过编译技术的优化来实现;超流水及超标量技术。为了进一步提高流水线速度而采用的技术;硬布线逻辑与微程序相结合在微程序技术中。
5、活动图是描述一个项目中各个工作任务相互依赖关系的一种模型,项目的很多重要特性可以通过分析活动图得到,如估算项目完成时间,计算关键路径和关键活动等。
6、策略(Strategy)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。
抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状恶发生改变时,所有依赖于它的对象都得到通知并被自动更新。
状态(State)模式是使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改了它的类。
7、插入排序在输入数据基本有序的情况下,是其计算时间的最好情况,复杂度为O(n),其他情况下时间复杂度为O(n2)。快速排序在输入数据有序或者逆序的情况下,是其计算时间的最坏情况,复杂度为O(n2),其他情况下时间复杂度为O(nlgn)。而归并排序和堆 排序算法在所有情况下的时间复杂度均为O(nlgn)。
8、this可以区分同名的对象属性和局部变量名。
9、软件产品在交付给用户之后,就进入了维护阶段。在该阶段针对系统改变所做的任何工作,都属于维护活动。软件维护期通常比开发期要长得多,根据统计数据一般项目花费1到2年的开发时间,但是需要额外的5到6年的维护时间。维护的成本也比开发成本高得多,另外一些企业数据表明,平均39%的工作量花在开发上,其余的在维护上。软件可维护性是指在给定的条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。通过多个方面来提高软件产品的可维护性,其中进行质量保证审查是一个重要的手段。在软件开发的各个阶段都需要考虑提高软件产品的可维护性,而不仅仅是在软件维护阶段。
10、 为了提高运算的精度,需要充分地利用尾数的有效数位,通常采取浮点数规格化形式,即规定尾数的最高数位必须是一个有效值,即1/2<|F|<1。
在尾数用补码表示时,规格化浮点数应满足尾数最高数位与符号位不同,即当1/2≤∣F∣<1时,应有0.1xx…x形式;当-1≤M<-1/2 时,应有1.0xx…x 形式。
需要注意的是,当M=-1/2时,对于原码来说是规格化数,而对于补码来说不是规格化数。 两个浮点数进行相加运算时,首先需要对阶(使它们的阶码一致),然后再进行尾数的相加处理。
11、如果是满二叉树,那么其第n层的结点数应该是第n-1层结点数的两倍,从根(第一层)开始,各层的结点数应分别是2n-1个,其中n为当前的层次,因此一颗x层的满二叉树,其总的结点数位2x-1个。而如果知道结点编号m,我们可以用log2m+1来求取该结点属于那一层,同样,对于编号为n的结点,所属层次为log2n+1,两者属于同一层次则应该满足log2m+1=log2n+1
12、DPI为像素/英寸
13、分治法的设计思想是将一个难以直接解决的大问题分解成一些规模较少的相同问题以便各个击破,分而治之。
动态规划法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是独立的。
若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。
贪心法经常用于解决最优化问题,但他的最优往往是从局部最优来考虑的,每一步都选最优的方案,但这种方案不一定能得到整体上的最优解。
回溯法是一种既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根节点出发搜索解空间树。题目描述中提到,需要解决的问题具有最优子结构性质,且求解过程中子问题被重复求解,这种情况下如果采用分治法,效率会很低,所以应采用动态规划法。而“以深度优先的方式搜索解空间”则明显是在采用回溯法。
14、二叉树具有以下性质:度为2的结点(双分支结点)数比度为0 (叶子结点)数正好少1。而根据最优二叉树(哈夫曼树)的构造过程可知,最优二叉树中只有度为2和0的结点,因此,其结点总数为2n-1。
15、 当序列基本有序时,直接插入排序过程中元素比较的次数较少,当序列为逆序时, 元素的比较次数最多。
16、 在单元测试开始时,应该对通过所有被测模块的数据流进行测试。
①输入参数是否与形式参数是否一致。
②调用模块的实参与被调用模块形参是否一致。
③全局变量在各模块中的定义和用法是否一致。
④外部输入、输出等等。
17、PV操作利用信号量机制,是一种有效的进程同步与互斥工具,可以实现资源的互斥使用,所以“实现资源的互斥使用”正确。
18、对高级语言源程序进行编译(或解释)方式的翻译过程中,语法分析的任务是根据语言的语法规则,分析单词串是否构成短语和句子,即表达式、语句和程序等基本语言结构,同时检查和处理程序中的语法错误。
程序设计语言的绝大多数语法规则可以采用上下文无关文法进行描述。语法分析方法有多种,根据产生语法树的方向,可分为自底向上和自顶向下两类。
递归下降分析法和预测分析法是常用的自上而下的语法分析法。
算符优先分析法和LR分析法属于自底向上的语法分析方法。
19、由ISO制定的MPEG系列标准中,MPEG-7称为“多媒体内容描述接口”(multimedia content description interface)。该标准是建立对多媒体内容的描述标准,满足包括静止图像、图形、3D模型、音频、话音、视频以及以上元素组合在一起的合成多媒体信息的应用领域的要求,并兼顾标准的通用性和扩展性的要求。
20、査询条件Where与Having的区別:Where是针对单条记录的判断条件,而Having是针对分组之后的判断条件。同时,由于考虑到项目号可能重复,所以要加Distinct去掉重复的项目。
21、编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。
反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。
22、数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。
其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。 用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。
23、
第一问关于平均CPI,即对列出的CPI求平均数。435%+245%+6*20%=3.5。第二问求MIPS,即每秒执行的百万条指令数。根据第一问CPI,每条指令需要的时钟周期为4,每个时钟周期为主频的倒数,即1/2.8G秒,则每条指令需要时间3.5/2.8G秒。每秒执行指令数为1/(3.5/2.8G)=2.8G/3.5=0.8G=800M。(1M=106,1G=109)
24、DNS域名查询的次序是:本地的hosts文件一>本地DNS缓存一>本地DNS服务器一>根域名服务器。
25、UML2.0中提供了多种图形,序列图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。其中消息定义了交互中生命线之间的特定交互,有同步消息、 异步消息和返回消息三类。
同步消息指进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息;
而异步消息的调用者发出消息后继续执行,不引起调用者阻塞,也不等待返回消息。
消息由名称进行标识,还描述出消息的发出者和接收者。
异步消息由空心箭头表示,如上图中3所示,同步消息用实心三角箭头表示,如上图中1所示,返回消息。
26、瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一阶段。
瀑布模型的优点是:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。
但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。该模型比较适合于需求明确,对交付时间有严格要求的开发。
原型模型基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。
它适用于需求不明确的开发环境。
螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。螺旋模型包含了四个方面的活动:制订计划、风险分析、实施工程、客户评估。
采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。
螺旋模型比较适合大规模的开发,它对风险控制有很高的要求。综上所述,要满足题目描述的要求,应该采用瀑布模型开发最适宜。
27、根据我国《著作权法》的规定,有三种类型的作品不受法律保护。
第一种是依法禁止出版、传播的作品。
第二种是不适用于《著作权法》的作品。
它们包括下列作品:1.法律、法规,国家的决议、决定、命令和其他具有立法、行政、司法性质的文件,极其官方正式译文;2.时事新闻;3.历法、通用数表、通用表格和公式。
国务院颁布的《计算机软件保护条例》属于法律法规,所以不受著作权法保护。
28、桥接模式是一种结构型设计模式。
Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。
将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化。
29、在面向对象技术中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。一个对象把属性和行为封装为一个整体,与其他对象之间有清晰的边界,有良好定义的行为和可扩展性。对象位置和数量,由使用其的对象或系统确定。
30、插入排序算法的基本思想是将待排序数组分为两个部分,已排好序部分和未排序部分。
其主要步骤为:开始时,第一个元素在已排好序部分中,其余元素在未排序部分。 然后依次从未排序部分中取出第一个元素,从后向前与排好序部分的元素进行比较并将其插入到已排好序部分的正确位置。直到所有元素排好序。
归并排序的基本思想是将待排序数组划分为子问题,对子问题求解,然后合并解。
其主要步骤为:将数组分为两个相同规模的子数组,分别包含前n/2个元素和后n/2个 元素;递归地排序这两个子数组;合并排好序的两个子数组,依次比较两个排好序的子数组的元素,得到整个数组的排好序的序列。
31、设计模式根据目的进行分类,可以分为创建型、结构型和行为型三种。
其中创建型模式与对象的创建有关;结构型模式用于处理类和对象的组合;
行为型模式描述类或对象怎样交互和怎样分配职责。
适配器(Adapter)模式是一种结构型模式;命令(Command)模式和状态(State) 模式是行为型模式;生成器(Builder)模式是一种创建型模式。
32、 TCP是互联网中的传输层协议,使用3次握手协议建立连接。这种建立连接的方法可以防止产生错误的连接,这种错误往往是由网络中存储的过期的分组引起的。TCP使用的流量控制协议是可变大小的滑动窗口协议。
33、单元测试侧重于模块中的内部处理逻辑和数据结构,所有模块都通过了测试之后,把模块集成起来仍可能会出现穿越模块的数据丢失、模块之间的相互影响等问题,
因此,需要模块按系统设计说明书的要求组合起来进行测试,即集成测试,以发现模块之间协作的问题。
34、在词法分析阶段,其任务是从左到右逐个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。
35、记号流,词法分析的输出是记号流,也就是语法分析的输入。
字符流,在Java中,根据处理的数据单位不同,分为字节流和字符流。
字符流是由字符组成的。
源程序,词法分析的任务是把源程序的字符串转换成单词符号序列。
分析树,如果没有语法错误,语法分析后就能正确的构造出其语法树。
括号不匹配是典型的语法错误,会在语法分析阶段检测出来。
36、计算机中的CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
其中,控制器的作用是控制整个计算机的各个部件有条不紊地工作,它的基本功能就是从内存取指令和执行指令。
37、在分时系统中是将把CPU的时间分成很短的时间片轮流地分配给各个终端用户,当系统中的用户数为n、时间片为q时,那么系统对每个用户的响应时间等于n*q。