软考复习-软件设计师

上午试题 75道选择题

单科满分75分,45分合格。上、下午考试的成绩必须都过合格线,才能获得合格证。
如果有单科没及格,其他及格单项成绩不予保留,第二次考试时必须全部重考。
考试两个月后 成绩查询
考试六个月后 领取证书

上午考点

补码,进制转换

16进制 → 10进制:从右往左,16的0,1,2…次方*原有的数然后相加
将十六进制的(2B)H转换为十进制的步骤如下:

  1. 第0位 B x 16^0 = 11;
  2. 第1位 2 x 16^1 = 32;
  3. 读数,把结果值相加,11+32=43,即(2B)H=(43)D。

二进制转10进制算法同上,就是换成2的0,1,2…次方
例:将二进制的(101011)B转换为十进制的步骤如下:

  1. 第0位 1 x 2^0 = 1;
  2. 第1位 1 x 2^1 = 2;
  3. 第2位 0 x 2^2 = 0;
  4. 第3位 1 x 2^3 = 8;
  5. 第4位 0 x 2^4 = 0;
  6. 第5位 1 x 2^5 = 32;
  7. 读数,把结果值相加,1+2+0+8+0+32=43,即(101011)B=(43)D。

反过来10进制转16进制,二进制就是除,取余
十进制 → 十六进制
除16取余法
例:将十进制的(796)D转换为十六进制的步骤如下:

  1. 将商796除以16,商49余数为12,对应十六进制的C;
  2. 将商49除以16,商3余数为1;
  3. 将商3除以16,商0余数为3;
  4. 读数,因为最后一位是经过多次除以16才得到的,因此它是最高位,读数字从最后的余数向前读,31C,即(796)D=(31C)H。 6503668e.png

除2取余法
例:将十进制的(43)D转换为二进制的步骤如下:

  1. 将商43除以2,商21余数为1;
  2. 将商21除以2,商10余数为1;
  3. 将商10除以2,商5余数为0;
  4. 将商5除以2,商2余数为1;
  5. 将商2除以2,商1余数为0;
  6. 将商1除以2,商0余数为1;
  7. 读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,101011,即(43)D=(101011)B。 0ad02b2d.png

原码:
如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示概数的绝对值。
例如: X=+101011 , [X]原= 00101011 X=-101011 , [X]原= 10101011
位数不够的用0补全。
PS:正数的原、反、补码都一样。
a1e5af80.png

反码:在原码的基础上,符号位不变其他位按位取反(就是0变1,1变0)就可以了
d4d11b33.png
补码:在反码的基础上按照正常的加法运算加1
a9c13d59.png
移码:不管正负数,只要将其补码的符号位取反即可
05263f1e.png

位移

专利

项目的活动图

数据流图

磁盘读文件时间

解析:磁盘读写时间=寻道时间+延迟时间+传输时间

PV操作

进程通常分为就绪、运行和阻塞三个工作状态。
941b5df2.png
P和V是来源于两个荷兰语词汇,P:passeren,中文译为”通过”;V:vrijgeven,中文译为”释放”。
PV操作主要就是P操作、V操作和信号量。其中信号量起到了至关重要的作用。
信号量是最早出现的用来解决进程同步与互斥问题的机制。 
信号量(semaphore)由一个值和一个指针组成,指针指向等待该信号量的进程。信号量的值表示相应资源的使用情况。信号量S>=0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个资源,因此S的值减1;当S<0时,表示已经没有可用资源,S的绝对值表示当前等待该资源的进程数。请求者必须等待其他进程释放该类资源,才能继续运行。而执行一个V操作意味着释放一个资源,因此S的值加1;若S<0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。
0b0e519a.png
注意,信号量的值只能由PV操作来改变。

增量开发

内存存储容量

算法是:(高位值-低位值+1)/1024
这里要注意除以1024,不是1000,计算结果会不同。

关于总线的叙述

网络层次与主要设备

64a30add.png #### 著作权法 作品的署名权,修改权和保护作品完整权不受时间限制,发表权的保护期为作者终生及其死亡后50年,截止于作者死亡后第50年的12月31日。 自然人在单位任职期间针对本职工作中明确指定的开发目标所开发的软件,或者开发的软件是从事本职工作活动所预见的结果或者自然的结果,或者主要使用了法人或者其他组织的资金、专用设备、未公开的专门信息等物质技术条件所开发并由法人或者其他组织承担责任的软件,自然人的开发行为属于职务开发,软件为职务开发软件,职务开发软件的著作权由单位享有 自然人利用业余时间及个人的物质技术条件开发完成的,并且与本人的本职工作内容无直接联系的软件为非职务开发软件,在申请软件著作权时,需要提交一份由申请人所在单位盖章的《非职务开发保证书》和《非职务软件开发证明》,著作权人归属为自然申请人。 #### 总时差,关键路径的计算,最早开始时间,最迟开始时间

关键路径:只有项目网络中最长的或耗时最多的活动完成之后,项目才能结束,这条最长的活动路线就叫关键路径(Critical Path)
关键路径可以超过一条吗?可以,可以有两条甚至以上
关键路径是网络图计划方法的一种
计划评审方法(program evaluation and review technique, PERT)和关键路线法CriticalPath Method,CPM)是网络分析的重要组成部分
这两种方法已合并为一种方法,在国外称为PERT/CPM,在国内称为统筹方法(scheduling method)。
根据绘制方法的不同,关键路径法可以分为两种:即箭线图(ADM)和前导图(PDM)

高级语言的编译和解释的相关描述

软件体系结构的各种风格

采用McCabe度量法计算环路复杂性

环形复杂度反映程序分支或循环个数。实践表明:模块规模以V(G) <= 10为宜。
d18f53c4.png
039cf092.png
0dcae055.png
bf7ddfea.png
8feaaf9c.png

下述3种方法中的任何一种来计算环形复杂度。
(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
(最好使用第二种方法进行计算)

0cdd285d.png 使用第2种方法 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。 上图:8-7+2=3 使用第3种方法计算: 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。 上图:C,E,2个点,复杂度2+1=3 0cdd285d.png 使用第2种方法 下图:9-7+2=4(此处E为9非10,因为环路度量法,它是考虑控制的复杂程度,即条件选择的分支繁杂程度,而G节点并没有涉及到程序控制分支,G节点的自环弧线要忽略掉) 使用第3种方法计算: 下图:CED,3个点,复杂度3+1=4

UML中关联

UML中有九种建模的图标:

  • 用例图
    Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。强调这个系统是什么而不是这个系统怎么工作。 a129fae1.png b181101f.png

用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。

用例之间的关系

包含关系:基本用例的行为包含了另一个用例的行为。
泛化关系:代表一般与特殊的关系。
扩展关系的基本含义和泛化关系类似,但在扩展关系中,对于扩展用例有更多的规则限制,基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。与包含关系一样,扩展关系也是依赖关系的版型。在扩展关系中,箭头的方向是从扩展用例到基本用例,这与包含关系是不同的。

  • 类图
    Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响。 85615dc9.png UML类的符号是一个被划分成三块的方框:类名,属性,和操作。抽象类的名字,像Payment是斜体的。类之间的关系是连接线。 类图有三种关系。 关联association-表示两种类的实例间的关系。如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联。在图中,关联用两个类之间的连线表示。 聚合aggregation-当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具有整体性质的类。在我们的图里,Order是OrderDetails的容器。 泛化generalization-一个指向以其他类作为超类的继承连线。泛化关系用一个三角形指向超类。Payment是Cash,Check和Credit的超类。
a2164b5d.png
  • Generalization:泛化、一般化
    Generalization表示的是类与类之间的继承关系、接口与接口之间的继承关系、类与接口之间的实现关系。如果体现到Java语言中,那就是反应extends和implements关键字。其典型类图如下所示:

    683febdd.png
  • Association:关联关系
    关联关系描述的是类与类之间的连接,他表示一个类知道另一个类的属性和方法。关联关系可以是单向的或者双向的。在Java语言中,单向的关联关系是通过以实例变量的方式持有被关联对象的引用来实现的。一般来说是不建议使用双向的关联关系的。下面举例介绍单向的关联关系。

    83b4329d.png
  • Aggregation:聚合关系
    聚合关系是关联关系的一部分,是非常强的关联关系。聚合关系表现的更多的是整体与部分的关系。例如汽车和车门、发动机之间的关系。如图所示:

    6c9b9a54.png
  • Composition:组合关系
    组合关系同样也是关联关系中的一种,这种关系是比聚合关系更加强的关系。我们前面提到,聚合关系表现的是整体与部分之间的关系,组合关系是在聚合关系的基础上,表示不可分割的整体与部分之间的关系。也就是说表示整体的对象需要负责表示部分的对象的生命周期。
    我们以人和手臂的关系举例,组合关系的类图如下:

    d985408b.png
  • Dependency:依赖关系
    依赖关系表示一个类依赖于另一个类的定义。依赖关系是单方向的。人吃苹果,那么人依赖苹果。类图如下:

    b91d6b8a.png 一般来说,被依赖的对象往往是以局部变量、方法参数的形式存在于来对象中,与关联关系不同,它不会以成员变量的形式存在于以来对象中。这一点值得注意。另外,每一个依赖都有一个名称。上面这个依赖关系的名称就是eats。
  • 对象图

  • 顺序图
    顺序图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

    85e4382b.png
  • 协作图
    协作图也是互动的图表。他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色。在序列图中,对象的角色放在上面而消息则是连接线。

    65d0dc20.png
  • 状态图
    对象拥有行为和状态。对象的状态是由对象当前的行动和条件决定的。状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移。
    我们的模型例图建立了一个银行的在线登录系统。登录过程包括输入合法的密码和个人账号,再提交给系统验证信息。
    登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting。每个状态都有一套完整的转移transitions来决定状态的顺序。

    d78c34fb.png
  • 活动图
    activity diagram是一个很特别的流程图。活动图和状态图之间是有关系的。状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。活动图告诉了我们活动之间的依赖关系。
    活动图用于描述系统的工作流程和并发行为。活动图被设计用于简化描述一个过程或操作的工作步骤。
    例如:“通过ATM来取钱。” 这个活动有三个类Customer, ATM和 Bank。整个过程从黑色圆圈开始到黑白的同心圆结束。活动用圆角矩形表示。

    5ae43186.png 泳道(swimlane):是活动图中的区域划分,每一个泳道代表一个责任区域。一个泳道中包括一组相关活动。 3138d9e2.png

组件图
配置图

设计模式

设计模式,基本上考的是,每个模式的适用场景。
根据它们的用途,设计模式可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种,其中创建型模式主要用于描述如何创建对象,结构型模式主要用于描述如何实现类或对象的组合,行为型模式主要用于描述类或对象怎样交互以及怎样分配职责

创建型模式Creational Pattern
  1. 单例模式Singleton Pattern
  2. 简单工厂模式Simple Factory Pattern
  3. 工厂方法模式Factory Method Pattern
  4. 抽象工厂模式Abstract Factory Pattern
  5. 原型模式Prototype Pattern
  6. 建造者模式Builder Pattern
结构型模式Structural Pattern
外观模式

外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
外观模式包含如下角色:
Facade: 外观角色
SubSystem:子系统角色
925ace8b.png

适配器模式
命令模式
观察者模式
享元模式
装饰器模式
原型模式Prototype

Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone)
Prototype模式和Builder模式、AbstractFactory模式都是通过一个类(对象实例)来专门负责对象的创建工作(工厂对象),它们之间的区别是:Builder模式重在复杂对象的一步步创建(并不直接返回对象),AbstractFactory模式重在产生多个相互依赖类的对象,而Prototype模式重在从自身复制自己创建新类。
0627722c.png


/*1、用原型实例p1指定创建对象的种类ConcretePrototype1 */
Prototype* p1 = new ConcretePrototype1();
/*2、通过拷贝这些原型创建新的对象 */
Prototype* p2 = p1->Clone();

确定的有限自动机(DFA)

数据库的模式结构

三级模式,两级影响

  1. 概念模式(模式)
    是数据库中全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成,只涉及类型的描述,记录间的联系,操作以及数据的完整性和安全性等。不涉及存储结构,访问技术等细节,这样才能做到,具有“物理数据独立性”。

  2. 外模式(用户模式,子模式)
    使用户与数据库系统的接口,是用户用到的那部分数据的描述。

  3. 内模式(存储模式)
    是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型,索引和文件的组织方式,以及数据控制方面的细节。

两级映像:保证了数据库中的数据具有较高的逻辑独立性和物理独立性
模式/内模式映像:
外模式/模式映像
数据独立性是指:数据与程序独立。包括物理独立性和逻辑独立性
物理独立性:数据库的内模式发生改变时,数据的逻辑结构不变。但是为了保证程序正确执行,需要修改概念模式/内模式映像
逻辑独立性:用户的程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是为了保证程序正确执行,需要修改外模式/概念模式映像

数据库的关系模式

二叉树

二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树:

  1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  3. 它的左、右子树也分别为二叉排序树。 63b171eb.png 二叉树的遍历-先序,中序,后序 755598ce.png 先序遍历:访问根节点,先序遍历左子树,先序遍历右子树 中序遍历:中序遍历左子树,访问根节点,中序遍历右子树 后序遍历:后序遍历左子树,后序遍历右子树,访问根节点

二叉树性质:

  • 第i层有2^(1-i)个节点
  • 高度为k的二叉树,最多有2^k-1个节点

算法

二分查找
效率:log2(n+1)-1

关于图的遍历:使用队列对图进行广度优先遍历
从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历

动态规划

软件开发模型

瀑布模型

1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型

传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。
特别是前期阶段,设计的越完美,提交后的成本损失就越少。

特点:
1、 简单、直观、易用
2、 开发进程比较严格,一个阶段接着一个阶段顺序进行
3、 模型中没有反馈,上一阶段任务完成,进入下一个阶段以后,下一个阶段不会对上一个阶段的工作作出反馈
4、 模型执行过程中需要严格控制
5、 允许基线和配置早期接受控制
6、 一个新的项目不适合瀑布模型,除非处于项目的后期
7、 用户直到项目结束才能看到产品的质量;用户不是渐渐地熟悉系统
8、 不允许变更或者限制变更早期的需求
9、 瀑布模型整体上比较理想化

瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。

瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。

原型模型

特点:
1、 需求定义时,需要快速构建一个原型系统
2、 用户根据快速构建的原型系统的优缺点,给开发人员提出反馈意见
3、 根据反馈意见修改软件需求规格说明,以便系统可以更正确地反应用户的需求
4、 可以减少项目的各种假设以及风险等。

原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。

原型模型的缺点:(1)客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新。

原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。

迭代式开发

迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,
最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。

螺旋开发

螺旋模型是针对风险比较大的项目而设计的一种模型。设计这个模型的主要目的是克服瀑布模型的缺点。它通过一系列瀑布模型的不断循环来逐步规避风险。
很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
每个循环步骤包括如下四个阶段:
制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件;
风险分析──分析所选方案,考虑如何识别和消除风险;
实施工程──实施软件开发、编码、测试等;
客户评估──评价开发工作,提出修正建议。

螺旋模型的使用范围:
1、 螺旋模型只适合于大规模的软件项目。
2、 采用了新技术的项目
3、 风险是主要的制约因素的项目
4、 不确定因素和风险限制了项目进度的项目
5、 用户对自己的需求不是很明确的项目
6、 需要对一些基本的概念进行验证的项目
7、 可能发生一些重大变更的项目

敏捷开发

敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。
敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。

喷泉开发过程模型

以用户需求为动力,以对象为驱动,适合于面向对象的开发方法,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。

在ISO/IEC软件质量模型中,易使用性的子特性:易理解,易学习,易操作,吸引性,依从性。
中断方式的数据传送方向是由设备到CPU再到内存,或者相反
DMA方式的数据传送则是将所传输的数据由设备直接送入内存,或者相反
中断方式是程序切换,每次操作需要保护和恢复现场,中断次数多,CPU需要花较多的时间处理中断,中断次数多也会导致数据丢失。但是DMA是必须利用中断的,否则CPU无法得到数据已经传输结束,当数据传输开始结束的时候,需要给CPU一个中断信号,CPU进行处理.这个就大大的节约了CPU的资源。
CPU在每一个指令周期的最后一个总线周期的最后一个时钟周期的开始采样中断请求输入线,若有请求,则进入中断响应周期,不进入取指令周期。

数据流图中某个加工的一组动作依赖于多个逻辑条件的取值,则用(N-S盒图)能够清楚地表示复杂的条件组合与应做的动作之间的对应关系
N-S图也被称为盒图或CHAPIN图。1973年,美国学者I.Nassi 和 B.Shneiderman提出了一种在流程图中完全去掉流程线,全部算法写在一个矩形阵内,在框内还可以包含其他框的流程图形式。即由一些基本的框组成一个大的框,这种流程图又称为N-S结构流程图(以两个人的名字的头一个字母组成)。N-S图包括顺序、选择和循环三种基本结构。

测试

白盒测试
  1. 语句覆盖
    主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。
  2. 判定覆盖
    主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。
  3. 条件覆盖
    主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
  4. 判定/条件覆盖
    主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
  5. 组合覆盖
    主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
  6. 路径覆盖
    主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。
  • 浮点数能够表示的数的范围是由其(B)的位数决定的。
    A.尾数 B.阶码 C.数符 D.阶符
    解析:浮点数用类似科学计数法来表达,N=M*R^e M称为尾数 R称为基数 e为阶码(指数),e如果有正负号的话,正负号叫阶符,数符指的是N整个数的符号

  • 在机器指令的地址字段中,直接指出操作数本身的寻址方式称为(C)
    A.隐含寻址 B.寄存器寻址 C.立即寻址 D.直接寻址
    解析:
    隐含寻址:不是明显的给出操作数地址,而是在指令中隐含着操作数的地址。
    寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。
    立即寻址:将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,直接调用该操作数。
    直接寻址:是一种基本的寻址方法,在指令格式的地址段中给出操作数所在的内存地址,不需要转换所以称为直接寻址。

  • RISC(reduced instruction set computing)是精简指令集计算机系统
    CISC(Complex Instruction Set Computing)是复杂指令集计算机系统

  • 被动攻击的特点是对数据传输进行窃听和检测,比如:流量分析

  • 主动攻击包括对数据流进行篡改或伪造数据流,可分为伪装,重放,消息篡改和分布式拒绝服务等

  • HTTPS端口443, http端口80 FTP控制端口21,数据端口服务端主动20或服务端被动1025-65535

  • 视觉上的颜色可用亮度、色调和饱和度三个特征来措述.
    色调:人眼看到的一种或多种波长的光时所产生的彩色感觉,通常所说的颜色就是指色调。
    明度:表示色所具有的亮度和暗度
    饱和度:指颜色的纯度,或者说颜色的深浅程度。

  • 对于数据处理领域的问题,若系统规模不太大且不本复杂,需求变化也不大,则 最适宜采用(Jackson)开发方法

  • Jackson设计方法是一种面向数据结构的软件设计方法,Jackson分析方法是面向数据流的分析方法。

  • 关于软件项目管理中人员管理(项目组成员的工作风格也应该作为组织团队时要考虑的一个要素),错误的是(鼓励团队的每个成员充分地参与开发过程的所有阶段,仅根据开发人员的能力来组织开发团队)

ICMP是TCP/IP协议族的一个子协议,属于网络层协议。使用IP数据报传送数据。
表达式采用逆波兰式(后缀表达式)表示时,利用(栈)进行求值

  1. VLIW 是(D)的简称
    A.复杂指令系统计算机 B.超大规模集成电路 C.单指令流多数据流 D.超长指令字
  2. 主存与 Cache 的地址映射方式中,(A)方式可以实现主存任意一块装入 Cache 中任意位置,只有装满才需要替换。
    A. 全相联
    B. 直接映射:主存一块只能映像到Cache的一个特定块中
    C.组相联:各区中的某一块只能存入缓存的同组号的空间内,但组内可以任意存放。即主存的组到cache的组是直接映像方式,两个对应的组内部采用全相联映像方式
    D.串并联
  3. 如果“2X”的补码是“90H”,那么 X 的真值是(A)
    A.72 B.-56 C.56 D.1 1 1
  4. 移位指令中(A)指令的操作结果相当于对操作数进行乘 2 操作。
    A.算术左移 B:逻辑右移 C.算术右移 D.带进位循环左移
    解析:
    算术左移SAL把目的操作数的低位向高位移,空出的低位补0
    算术右移SRL把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补
    算术位移指令常用于带符号数2或/2,左移相当于2,右移相当于/2。
    逻辑位移,空出的位都补0.逻辑位移常用于无符号数*2或/2
    循环位移,移出的位不仅要进入CF,还要填补空出的位。e49a008a.png 上图ROL 7d9aae95.png 上图ROR ;ROL(Rotate Left): 循环左移 ;ROR(Rotate Right): 循环右移 ;RCL(Rotate through Carry Left): 带进位循环左移 ;RCR(Rotate through Carry Right): 带进位循环右移

;ROL: 循环左移, 高位到低位并送 CF
;ROR: 循环右移, 低位到高位并送 CF
;RCL: 循环左移, 进位值(原CF)到低位, 高位进 CF
;RCR: 循环右移, 进位值(原CF)到高位, 低位进 CF
进位位CF(Carry Flag)与溢出位OF(Overflow Flag)是两个性质不同的标志位。
控制寄存器的一般规则,如果寄存器名所描述的行为发生了,则对应寄存器置“1”,否则置“0”。
对应到CF,不区分有符号数和无符号数,只要最高位产生进位或借位,即置“1”。
不带进位位的循环左移指令 ROL
d05cf503.png
不带进位位的循环右移指令 ROR
3045a31c.png
带进位位的循环左移指令 RCL
5a868447.png
带进位位的循环右移指令 RCR
5fc9ef7b.png

  1. 内存按字节编址,从 A1000H 到 B13FFH 的区域的存储容量为(C)KB。
    A.32 B.34 C.65 D.67
    分析:
    B13FF-A1000+1 = 10400H 换算成10进制66560/1024 = 65K

  2. 以下关于总线的叙述中,不正确的是 (C)
    A.并行总线适合近距离高速数据传输. B.串行总线适合长距离数据传输 C.单总线结构在一个总线上适应不同种类的设备,设计简单且性能很高 D. 专用总线在设计上可以与连接设备实现最佳匹配
    解析:
    使用一条单一的系统总线来连接CPU、主存和I/O设备,称为单总线结构。单总线结构的优点在于容易扩展成多CPU系统,只要在系统总线上挂接多个CPU即可。但是,在单总线结构中,由于所有逻辑部件都挂在同一个总线上,因此总线只能分时工作,即某一个时间只能允许一对部件之间传送数据,这就使信息传送的吞吐量受到限制。

  3. 以下关于网络层次与主要设备对应关系的描述中,配对正确的是(B)
    A.网络层–集线器
    B.数据链路层–桥
    C.传输层–路由器视频解析
    D.会话层–防火墙

  4. 某软件公司参与开发软件的张某,辞职到另一公司,于是该项目负责人将该软件的开发者署名改为李某(接张某工作)。该项目负责人的行为(A)
    A. 侵犯了张某开发者身份权(署名权) B. 不构成侵权,因为张某不是软件著作权人 C. 只是行使管理者的权利,不构成侵权 D.不构成侵权,因为张某已不是项目组成员

  5. 某国某公司与中国某企业谈技术合作,合同约定使用1项美国专利(获得批准并在有效期内),该项技术未在中国和其他国家申请专利。依照该专利生产的产品(D)需要向美国公司支付许可使用费
    A. 在中国销售,中国企业 B.返销美国,中国企业不 C.在其他国家销售,中国企业 D.在中国销售,中国企业不

  6. 使用150dpi的扫描分辨率,扫描一幅3*4英寸的彩色照片,得到原始的24位真彩色图像的数据量是(D)byte.
    A. 1800 B.90000 C.270000 D.810000
    分析:
    DPI表示单位“像素/英村”,即指每英寸长度内所含有的像素是多少。24位真彩色图像每个像素使用三个字节表示RGB的分量值。
    一幅不经压缩的图像数据量计算公式为:
    字节数=图像水平分辨率x图像垂直分辨率x颜色深度(位数)/8。
    (3*150)*(4*150)*24/8 = 810000

  7. 某软件项目的活动图如下所示,其中顶点表示里程碑,连接顶点的边表示包含的活动,边上的数字表示持续时间(天),则完成该项目的最少时间为(C)天。活动BD最多可以晚开始(A)天而不影响进度。

    9708a25c.png A. 15 B.21 C.22 D.24 A. 0 B.2 C.3 D.5 解析: 关键路径是ABDGIKL,总工期为22天,因为BD处于关键路径中,所以总时差为0 最少天数就是边上数字相加最多的数。
  8. 需求分析阶段的输出不包括(D)
    A.数据流图 B.实体联系图 C.数据字典 D.软件体系结构图
    解析:软件体系结构图是设计阶段的输出

  9. 以下高级程序设计语言实现的编译和解释方式的描述,正确的是(A)
    A.编译程序不参与用户程序的运行控制,而解释程序参与。
    B.编译程序可以用高级语言,解释程序只能用汇编。
    C.编译方式不优化,解释方式优化
    D.编译方式不生成目标程序,解释方式生成

  10. 将高级语言源程序转化为一种中间代码是现代编译器的常见处理方式,常用的中间代码有后缀式(逆波兰式),(B),语法树等。
    A. 前缀码 B.三地址码 C.符号表 D.补码和移码
    解析:常见的有后缀式,三元式,四元式和树等形式

  11. 当用户通过键盘或鼠标进入某应用系统时,通常最先获得输入信息的是(D)程序
    A.命令解释 B.中断处理 C.用户登录 D.系统调用

  12. 某磁盘有100个磁道,磁头从一个磁道移到另一个需要6ms。文件非连续存放,逻辑上相邻数据块平均距离10个磁道,每块延迟及传输时间100ms和20ms,则读取一个100块的文件需要(C)ms。
    A.12060 B.12600 C.18000 D.186000
    解析:磁盘读写时间=寻道时间+延迟时间+传输时间
    (6*10 + 120)*100 = 18000

  13. 进程P1,P2,P3,P4,P5的前驱图如下:

    ae70547d.png 若用PV操作控制进程P1-P5并发执行的过程,则需要设置5个信号量S1-S5,且初值为0.下图中a,b,c,d,e,f分别应填写(C,B,B) 01936735.png A.V(S1)P(S2)和V(S3) B.P(S1)V(S2)和V(S3) C.V(S1)V(S2)和V(S3) D.P(S1)P(S2)和V(S3) A.P(S2)和P(S4) B.P(S2)和V(S4) C.V(S2)和P(S4) D.V(S2)和V(S4) A.P(S4)和V(S4)V(S5) B.V(S5)和P(S4)P(S5) C.V(S3)和P(S4)P(S5) D.P(S3)和P(S4)P(S5)
  14. 如下图所示,模块A,B都访问相同的全局变量和数据结构,则他们的耦合是(A)

    f487d2d8.png A.公共 B.控制 C.标记 D.数据 解析:公共耦合是指通过一个公共数据环境相互作用的那些模块间的耦合。公共数据环境可以是全局变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件。
  15. 在设计软件的模块结构时,(D)不能改进设计质量
    A.模块的作用范围应在其控制范围之内
    B.模块的大小适中
    C.避免或减少使用病态连接(从中部进入或访问一个模块)
    D.模块的功能越单纯越好
    解析:
    模块的设计原则:

    1. 提高功能模块独立性,有时也可以通过分解或合并功能模块以减少控制信息的传递及对全局数据的引用,并且降低接口的复杂度。
    2. 功能模块规模适度
    3. 深度,宽度,扇出和扇入要适当
    4. 要使模块的作用范围保持在该模块的控制范围内
    5. 应减少功能模块的接口复杂性和冗余度,并改善一致性
    6. 设计成单入口,单出口的功能模块,避免病态连接
    7. 模块的功能可预测
  16. 软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行操作。以下关于该风格的描述不正确的是(B)(D)不属于仓库风格
    A.支持可更改行和可维护性 B.具有可复用的知识源
    C.支持容错性和健壮性 D.测试简单
    解析:
    知识源中包含独立的,与应用程序相关的知识,知识源之间不直接进行通讯,他们之间的交互只通过黑板来完成。

  17. 下图a所示,一个模块层次结构,图b所示为对其进行集成测试的顺序,则此测试采用了(C)测试策略,该测试策略的优点不包括(B)

    77c9617b.png A.自底向上 B.自顶向下 C.三明治 D.一次性 A.较早第验证了主要的控制和判断点 B.较早的验证了底层模块 C.测试的并行程度较高 D.较少的驱动模块和桩模块的编写工作量 解析: 概念:三明治集成(Sandwich Integration)有时也被称为混合式集成,三明治集成就是把系统划分为三层,中间一层为目标层,测试的时候,对目标层上面的一层使用自顶向下的集成策略,对目标层下面的一层使用自底向上的集成策略,最后测试在目标层会合。 优点:集合了自顶向下和自底向上的两种集成策略的优点。 http://www.cnblogs.com/shijiayi/p/4528931.html
  18. 采用McCabe度量法计算下图的环路复杂性为(C)。

    6ed4eab2.png A.1 B.2 C.3 D.4
  19. UML中关联是一个结构关系,描述了一组链,两个类之间(B)关联
    A.不能有多个 B.可以有多个由不同角色标识的 C.可以有任意多个 D.多个关联必须聚合成一个

  20. 下图的UML图是(D),图中I表示(A),II表示(B)。

    f9bbe9c9.png A. 序列图 B.状态图 C.通信图 D.活动图 A.合并分叉 B.分支 C.合并会合 D.流 A.分支条件 B.监护表达式 C.动作名 D.流名称
  21. 为GUI组件定义不同平台的并行类层次结构,适合采用(C)模式
    A.享元(Flyweight) B.抽象工厂(abstract factory) C.外观(Facade) D.装饰器(Decorator)

  22. 移进-归约分析法是编译程序(或解释程序)对高级语言源程序进行语法分析的一种方法,属于(B)的语法分析方法。
    A.自顶向下 B.自底向上 C.自左向右 D.自右向左

  23. 某确定的有限自动机(DFA)的状态转换图如下(A是初态,C是终态),则改DFA能识别(B)

    efb6638b.png A.aabb B.abab C.baba D.abba
  24. 数据的物理独立性和逻辑独立性分别是通过修改(D)来完成的
    A. 外模式与内模式之间的映像,模式与内模式之间的映像。
    B. 外模式与内模式之间的映像,外模式与模式之间的映像。
    C. 外模式与模式之间的映像,模式与内模式之间的映像。
    D. 模式与内模式之间的映像,外模式与模式之间的映像。

  25. 关系规范化是在数据库设计的(C)阶段进行
    A.需求分析 B.概念设计 C.逻辑设计 D.物理设计

    f9a93fc8.png
  26. 若给定的关系模式R<U,F>,U=[A,B,C),F=[AB->C,C->B),则关系R(B)
    A.有2个候选关键字AC和BC,并且有3个主属性
    B.有2个候选关键字AC和AB,并且有3个主属性
    C.只有1个候选关键字AC,并且有1个非主属性和2个主属性
    D.只有1个候选关键字AB,并且有1个非主属性和2个主属性

  27. 某公司数据库中的元件关系模式为P(元件号,元件名称,供应商,供应商所在地,库存量),函数依赖集F如下:
    F={元件号->元件名称,(元件号,供应商)->库存量,供应商,供应商所在地)元件关系的主键为(B),该关系存在冗余等问题。为解决这问题需要将元件关系分解为(C),分解后的关系模式最高可以达到(C)。
    A.(元件号,元件名称)B.(元件号,供应商)C.(元件号,供应商所在地)D.(供应商,供应商所在地)
    A.元件1(元件号,元件名称,供应商,供应商所在地,库存量)
    B.元件1(元件号,元件名称),元件2(供应商,供应商所在地,库存量)
    C.元件1(元件号,元件名称), 元件2(元件号,供应商,库存量)元件3(供应商,供应商所在地)
    D.元件1(元件号,元件名称),元件2(元件号,库存量),元件3(供应商,供应商所在地),元件4(供应商所在地,库存量)
    A.1NF B.2NF C.3NF D.BCNF

  28. 二叉排序树,关键码序列不可能是(C)

    3e4eaaef.png 3a98ee58.png
  29. 给的答案是B,但是不明白,没看出来B有什么问题

    4729c5e5.png
  30. 关于图的遍历,叙述正确的是(C)
    A.图的遍历是从给定的源点出发对每一个顶点仅访问一次的过程。
    B.图的深度优先遍历不适用于无向图
    C.使用队列对图进行广度优先遍历
    D.图中有回路时则无法进行遍历

  31. 背包问题CAAB

    3dba5d25.png
  32. 默认情况下,FTP服务器的控制端口为(D),上传文件时的端口为(A)。
    A. 大于1024的端口,B.20 C.80 D.21
    A. 大于1024的端口,B.20 C.80 D.21
    解析:
    FTP使用2个端口,数据端口(20),命令端口也叫控制端口(21),因为FTP工作方式的不同,数据端口并不总是20,与模式有关:主动模式(PORT),被动模式(PASV),主动模式是从服务端向客户端发起连接;被动模式是客户端向服务端发起连接。两者差别在于数据端口不同,主动模式固定在20,被动模式则在1025-65535之间随机。

  33. 使用ping命令可以检测网络,按照由近及远原则,首先执行的是(C)
    A.ping默认网关 B.ping本地IP C.ping 127.0.0.1 D.ping远程主机
    解析:
    按照由近及远原则:

  34. ping 127.0.0.1先检查TCP/IP协议栈是否正常

  35. ping本地IP检查网卡是否工作正常

  36. ping默认网关 检查和网关连接性

  37. ping远程主机 检查远程连接