软考复习-2017上半年上午真题2

软考复习

计算机组成原理部分:

数字语音的采样频率定义为8KHz,这是因为(语音信号定义的频率最高值是4kHz)

采样频率大于等于工作频率的2倍,才能在以后恢复出实际波形,防止信息的丢失

 

高级编程语言:

在仅有字符ab构成的所有字符串中,其中以b结尾的字符串合集可以表示为:()

a|b*b

 

编译原理:

在一阶段划分的编译过程中,判断语句的形式是否正确属于(语法分析)阶段的工作

词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词,删掉无用信息,报告分析时的错误

语法分析阶段:语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式,赋值循环等,按语法规则分析检查每条语句是否有正确的逻辑解构

语义分析阶段 主要是检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零

操作系统:

某系统中有3个并发进程竞争资源R。每个进程需要5R,那么至少需要(B)个R 。才能保证不会发生死锁。

A.12    B. 13     C.14    D.15

系统保证不发生死锁的资源数为:并发进程*(进程需要的资源数-1+1.这样不管哪个进程得到最后这个资源都可以顺利执行完,释放它所占有的资源后,其他进程可以就行顺利执行

 

某计算机系统页面大小为4k,进程的页面变换表如下所示。若进程的逻辑地址为2D16H。该地址经过变换后,其物理地址应为()

页号     物理块号

0          1

1          3

2          4

3          6

A 2048H     B 4096H   C4D16H     D.6D16H

分析:页面大小为4k,说明需要12位(4k=4096=2^12)来表示页内地址。2D16H表示十六进制数2016,转成二进制为0010 1101 0001 0110 从右向左划出12位表示页内地址,即0010 1101 0001 0110 红色部分表示页内地址,剩余的部分表示页号,页号为0010, 转成十进制为2,通过页表查询对应的物理块号为44的二进制为0100,再连上页内地址,所以物理地址为: 0100 1101 0001 0110 转成十六进制为:4D16H

 

26-28 进程P1,P2,P3P4P5的前趋图如下所示:

 

若用PV操作控制进程P1,P2,P3,P4,P5并发执行的过程,需要设置5个信号量S1,S2,S3S4,S5,且信号量S1~S5的初值都等于零。如下的进程执行图中ab处应分别写Bc处和d处应分别写为Cef处应分别写为A

 

 

软件工程:

例题:在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等,而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组合主程序员组的沟通路径分别是D

A.328    B .327    C 288   D 287

沟通渠道=NN-1/2,  N是指参与沟通者的人数。所以8*7/2=28

成员之间没有沟通,只与主程序员沟通,所以沟通路径为7


软件开发是一门技术,也是一门艺术。

          瀑布模型、极限编程、敏捷开发是有代表性的开发模式,在对开发者、客户、最终的产品的关注上的变化,体现了软件开发管理者在管理模式上的变化

瀑布模型:

 是一种理想化的开发模型,要求有明确的需求分析,无法解决软件需求不明确或不准确的问题。瀑布模型像工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。更符合分层的设计思想,比较适合于大型软件的开发。也因此瀑布模型是使用最多的开发模型。

特点:

1、强调文档,前一个阶段的输出就是下一个阶段的输入。文档是各个阶段衔接的重要信息,所以文档

为重中之重。但是各个阶段之间产生大量的文档,极大地增加了工作量。

2、没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,意味着使用

了瀑布模型,最好不要走回头路,否则付出的代价会很大的。

3、管理人员较开发人员更喜欢瀑布。文档很适合向领导汇报用,即使不了解项目的人也能看懂项目的

进度情况;同时它也束缚了开发人员的创造性。

由于瀑布模型不适合客户需求不断变化的软件开发,并且把开发者编程流水线上的机器,大量重复性工作让编程人员提不起兴趣,编程成了一种没有创意的机械劳动,于是极限编程带来了新鲜的空气。


极限编程

注重用户反馈。有了反馈,开发时间变短,迭代就出现了,快速迭代。是一种开发管理模式.

1、角色定位:明确的把客户加入到开发团队中。用户在软件开发过程中的责任被提到与开发者同样的

重要程度。

2、敏捷开发:追求合作与响应变化。迭代就是缩短版本的发布周期,缩短到周、日,完成一个小的功

能模块,可以快速测试、并及时展现给客户,以便及时反馈。小版本加快了客户沟通反馈的频率,功

能简单,在设计、文挡环节大大简化。极限编程中文挡不再重要的原因就是因为每个版本功能简单,

不需要复杂的设计过程。极限编程追求设计简单,实现客户要求即可,无需为扩展考虑太多,因为客

户的新需求随时可以添加。

3、追求价值:极限编程把软件开发变成自我与管理的挑战,追求沟通、简单、反馈、勇气,体现开发

团队的人员价值,激发参与者的情绪,最大限度地调动开发者的积极性,情绪高涨,认真投入,开发

的软件质量就大大提高。

敏捷开发

    核心是迭代。最终目标是让客户满意,所以能主动接受需求变更,这样就使设计出来的软件有灵活性,可

注意:

1、客户最关心的功能最先完成

2、小版本。快速功能的展现。

3、敏捷开发不等于不写文档,而是减轻了繁重的文档,不以文档为驱动。

瀑布模型由于其过程的不可回溯性,自 然决定了它无法应对需求的变化,对软件开发过程无法及时反馈与

修改,或者说对于应对变化的成本较大。因此瀑布模型是面向过程的;

而敏捷开发是面向人的,在开发过程中,人是第一位。使软件利用人的特点,充分发挥人的创造能力。

三种软件开发模型的特点:

螺旋模型:软件开发是一系列的增量发布,逐步产生更完善的版本,强调风险分析

瀑布模型:分阶段进行,一个阶段的工作得到确认后,继续进行下一个阶段,否则返回前一个阶段

迭代模型:分阶段进行,每个阶段都执行一个传统的,完整的串行过程,起哄都包括不同比例的需求分析,设计,编码,测试等活动

以下关于极限编程中对编程的叙述中,不正确的是D

A 支持共同代码拥有和共同对系统负责   B 承担了非正式 的代码审查过程

C 代码质量更高                       D 编码速度更快


模块A、B和C有相同的程序块,块内的语句之间没有任何联系,现把该程序块取出,形成新的模块D,则模块D的内聚类型为()内聚,以下关于该内聚类型的叙述中,不正确的是()。

A.巧合

B.逻辑

C.时间

D.过程

*******************

A.具有最低的内聚性

B.不易修改和维护

C.不易理解

D.不影响模块间的耦合关系

解析:

内聚有如下的种类,它们之间的内聚度由弱到强排列如下:
(1) 偶然内聚:一个模块内的各处理元素之间没有任何联系,只是偶然地被凑到一起。这种模块也称为巧合内聚,内聚程度最低。
(2) 逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能 。
(3) 时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。 
  (4) 过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。简单的说就是如果一个模块内的处理元素是相关的,而且必须以特定次序执行则称为过程内聚。
  (5) 通信内聚:指模块内所有处理元素都在同一个数据结构上操作或所有处理功能都通过公用数据而发生关联(有时称之为信息内聚)。即指模块内各个组成部分都使用相同的数据数据或产生相同的数据结构。
  (6) 顺序内聚:一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常前一个处理元素的输出时后一个处理元素的输入。
例如某模块完成工业产值求值的功能,前一个功能元素求总产值,后一个功能元素求平均产值,显然该模块内两部分紧密关联。
顺序内聚的内聚度比较高,但缺点是不如功能内聚易于维护。
(7) 功能内聚:模块内所有元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,模块已不可再分。即模块仅包括为完成某个功能所必须的所有成分,这些成分紧密联系、缺一不可。
功能内聚是最强的内聚,其优点是它的功能明确。判断一个模块是否功能内聚,一般从模块名称就能看出。如果模块名称只有一个动词和一个特定的目标(单数名词),一般来说就是功能内聚,如:“计算水费”、“计算产值”等模块。功能内聚一般出现在软件结构图的较低层次上。
功能内聚模块的一个重要特点是:他是一个“暗盒”,对于该模块的调用者来说,只需要知道这个模块能做什么,而不需要知道这个模块是如何做的。


猜你喜欢

转载自blog.csdn.net/hyo555/article/details/80293155