软考总结(1)

1106

1.机器字长为n位的二进制数可以用补码来表示2^n个不同的有符号定点小数。
补码表示定点小数,范围是:[-1,(1-2(-n+1))],这个范围一共有2n个数。
8位原码和反码能够表示数的范围是-127~127
8位补码能够表示数的范围是-128~127
补码就是二进制表示负数的一种方法,引入了补码概念,负数的补码就是反码加一,而正数不变,正数的原码反码补码是一样的。在补码中,用(-128)代替(-0),所以补码的表示范围为(-1280127)共256个。

2.Cache的地址映像方式中,发生块冲突次数最小的是全相联映像。
块冲突:cache在映射内存块时映射到相同内存块。全相联映像块冲突最小,因为他全局都可以映射,其次为组相联映像,直接映像块冲突最大。

3.总线宽度为32bit,时钟频率为200MHz,若总线上每5个时钟周期传送一个32bit的字,则总线的带宽为160MB/S.
200M/5*32bit/8=160MB/S.

4.在概要设计阶段选择适当的解决方案,将系统分解为若干个子系统,建立整个系统的体系结构。
软件设计可以分为概要设计和详细设计两个阶段。

实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序和程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据、也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。
概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。

5.风险的优先级通常是根据风险暴露设定。
风险暴露又称风险曝光度,测量的是资产的整个安全性风险,它将表示实际损失的可能性与表示大量可能损失的资讯结合到单一数字评估中。在形式最简单的定量性风险分析中,风险曝光度可透过将风险可能性及影响相乘算出。
风险曝光度(RisjExposure)=错误出现率(风险出现率)*错误造成损失(风险损失)

6.C程序中全局变量的存储空间在静态数据区分配。
全局变量、静态局部变量、静态全局变量都存放在静态数据存储区。

7.某进程有4个页面,页号为0~3,页面变换表及状态位、访问位和修改位的含义如下图所示。若系统给该进程分配了3个存储块,当访问的页面1不在内存时,应该淘汰表中页号为( )的页面的系统代价最小。
在这里插入图片描述
内存在的三个页面,都是刚刚被访问过的。所以在此不能已访问位座位判断标准。只能看修改位,在修改位中,只有3号页未被修改,如果淘汰三号页可以直接淘汰即可。就不会有额外的开销。

8.在敏捷过程的方法中水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论。
水晶法Crystal,其目的是发展一种提倡“机动性的”方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。Crystal家族实际上是一组经过证明、对不同类型项目非常有效的敏捷过程,他的发明使得敏捷团队可以根据其项目和环境选择最合适的Crystal家族成员。
极限编程XP是一门针对业务和软件开发的规则,他的作用在于将两者的力量集中在共同的、可以达到的目标上。他是以符合客户需要的软件为目标而产生的一种方法论,XP使开发者能够更有效的响应客户的需求变化,哪怕是在软件生命周期的后期。它强调,软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出人在软件开发过程中的作用。极限编程属于轻量级的方法,认为文档、架构不如直接编程来的直接。

9.七种内聚
1)功能内聚(Functional Cohesion)
如果一个模块内所有处理元素完成一个,而且仅完成一个功能,则称为功能内聚。
功能内聚是最高程度的内聚。但在软件结构中,并不是每个模块都能设计成一个功能内聚模块。
2)顺序内聚(Sequential Cohesion)
如果一个模块内处理元素和同一个功能密切相关,而且这些处理元素必须顺序执行,则称为顺序内聚。
3)通信内聚(Communicational Cohesion)
如果一个模块中所有处理元素都使用同一个输入数据和(或)产生同一个输出数据,称为通信内聚。
4)过程内聚(Procedural Cohesion)
如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,称为过程内聚。
过程内聚与顺序内聚的区别是: 顺序内聚中是数据流从一个处理单元流到另一个处理单元,而过程内聚是控制流从一个动作流向另一个动作。
5)时间内聚(Temporal Cohesion)
如果一个模块包含的任务必须在同一段时间内执行,称为时间内聚。也称为瞬时内聚。
6)逻辑内聚(Logical Cohesion)
如果模块完成的任务在逻辑上属于相同或相似的一类,称为逻辑内聚。
7)偶然内聚(Coincidental Cohesion)
如果一个模块由完成若干毫无关系的功能处理元素偶然组合在一起的,就叫偶然内聚。

9.集成测试
自顶向下集成:
优点: 较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点: 桩的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

自底向上集成:
优点: 对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点: 驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

桩程序: 他是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。

10.简单选择排序
  简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序
  在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小,交换是个比较耗时的操作。其实我们很容易发现,在还未完全确定当前最小元素之前,这些交换都是无意义的。我们可以通过设置一个变量min,每一次比较仅存储较小元素的数组下标,当轮循环结束之后,那这个变量存储的就是当前最小元素的下标,此时再执行交换操作即可。代码实现很简单,一起来看下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章