您的当前位置:首页正文

软件工程在线考核

来源:意榕旅游网
2019软件工程期末试卷A

一、选择题(48分)

1. (5分)从供选择的答案中选出正确的答案填入下列叙述中的( ) 内。 模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。

(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个

模块中,该模块的内聚性是( A⑤ )的。

(2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个

判断决定执行哪一个功能。该模块的内聚性是( B⑦ )的。 (3)模块中所有成分引用共同的数据,该模块的内聚性是( C③ )的。 (4) 模块内的某成份的输出是另一些成分的输入,该模块的内聚性是( D

② )的。

(5)模块中所有成份结合起来完全一项任务,该模块的内聚性是( E① )

的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。

供选择的答案:

A~E: ①功能内聚

⑤巧合内聚

②信息内聚 ⑥时间内聚

③通信内聚 ⑦逻辑内聚

④过程内聚

1 A⑤ B⑦ C③ D② E①

2. (5分)从供选择的答案中选出应该填入下列关于软件设计的叙述的( )内

的正确答案。

在众多的设计方法中,SD方法是最受人注意的,也是最广泛应用的一种,这种方法可以同分析阶段的( A2 )方法及编程阶段的( B5 )方法前后衔接,SD方法是考虑如何建立一个结构良好的程序结构,它提出了评价模块结构质量的两个具体标准——块间联系和块内联系。SD方法的最终目标是( C3 ),用于表示模块间调用关系的图叫( D3 )。

另一种比较著名的设计方法是以信息隐蔽为原则划分模块,这种方法叫( E2 )方法。 供选择的答案:

A~B:①Jackson ②SA ③SC ④Parnas ⑤SP C:

①块间联系大,块内联系大 ②块间联系大,块内联系小 ③块间联系小,块内联系大 ④块间联系小,块内联系小

D:

①PAD ②HCP ③SC

④SADT

⑤HIPO

⑥NS

1 / 8

E: ①Jackson ②Parnas ③Turing ④Wirth ⑤Dijkstra

2 A② B⑤ C③ D③ E②

3. (5分)从供选择的答案中选出应该填入下列关于软件设计的叙述的( )内

的正确答案。

在完成软件概要设计,并编写出相关文档之后,应当组织对概要设计工作的评审。评审的内容包括:

分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可( A③ )到某一项需求。分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足( B② )和( C③ )的要求。模块( D① )是否在其( E⑤ )之内。 供选择的答案 A: B: C:

①覆盖 ①多功能 ①多入口

② 演化

③ 追溯

④等同 ④高效率

⑤连接 ⑤可读性

②高内聚 ③高耦合 ②低内聚 ③低耦合

④低复杂度 ⑤低强度 ④取值范围 ⑤控制范围

D~E:①作用范围 ②高内聚 ③低内聚 3 A③ B② C③ D① E⑤

4. (2分)类库是一种预先定义的程序库,它以程序模块的形式,按照( ①B )

把一组类的定义和实现组织在一起:( ②C )对类库的建设提供了强有力的支持。

① A.类的功能 B.类层次结构

C.实例之间的调用关系 D.类的类型

② A.引用 B.重置 C.类属类 D.封装 4 ①B ②C

5. (4分)在UML中,对象行为是通过交互来实现的,是对象间为完成某一

目的而进行的一系列消息交换。消息序列可用两种图来表示,强调消息时间次序的图称之为( ①C ),该图的特点是( ②A ),强调参加交互的对象的组织图称之为( ③D ),这两种图是( ④A )。 ① A.活动图(activity diagram)

B.状态图(statechart diagram)

C.序列图(sequence diagram) D.协作图(collaboration diagram)

② A.有生命线及控制焦点,重点在消息的时间顺序上

2 / 8

B.有路径有顺序号,为了一个消息的时间顺序给消息加数字前缀 C.是对系统、子系统或类的行为建模

D.本质上是一个流程图,显示从活动到活动的信息流

③ A.活动图(activity diagram)

C.序列图(sequence diagram)

B.状态图(statechart diagram)

D.协作图(collaboration diagram)

④ A.同构的,所以可以互相转换

B.异构的,所以不可以互相转换

C.强调对象行为的事件顺序,常用于对反应式系统建模

D.专注于系统的动态视图,状态无法确定,所以不可以互相转换

5 ①C ②A ③D ④A

6. (6分)从供选择的答案中选出应该填入下面 (② ) 中的正确答案。 A. 允许用户建立、修改、存储正文的计算机程序是 ( )。 ① BOOtstrap ② Editor ③ Loader ④ Textformatter

B. 程序语言的编译系统和解释系统相比,从用户程序的运行效率来看 (① )。 ① 前者运行效率高 ② 两者大致相同

③ 后者运行效率高 ④ 不能确定

C. FORTRAN语言的源程序是 (4 ) 结构。 ① 块状 ② 分程序嵌套

③ 既是块状,又是嵌套 ④ 既不是块状,又不是嵌套的

D. 国际上最广泛使用的商用及行政管理语言是 (①)。

① COBOL ② BASIC ③ FORTRAN ④ PL/1

E. 国际上最流行的数值计算的程序设计语言是 (③ )。 ① BASIC ② ALGOL ③ FORTRAN ④ C

F. 美国国防部主持开发了高级程序设计语言Ada,在它研制开始时,经反复比较,确定以高级语言 ( ) 作为Ada研究的出发点。 ① LISP ② ALGOL ③ ALGOL68 ④ PL/1

3 / 8

6 A② B① C④ D① E③ F③

7. (6分)测试过程需要三类输入.( A )、( B )和( C )。请选择正确的

答案填入下图中以完成测试信息处理的全过程。

供选择的答案:

A~C. ① 接口选择 ② 软件配置 ③ 硬件配置 ④ 测试配置 ⑤ 测试环境 ⑥ 测试工具

D~F. ① 排错 ② 可靠性分析 ③ 结果分析 ④ 数据分类 7 A② B④ C⑥ D③ E① F②

8. (5分)请从供选择的答案中选出应填入下列( )中的字句。

程序的三种基本控制结构是( A2 )。它们的共同点是( B4 )。结构化程序设计的一种基本方法是( C4 )。软件测试的目的是( D2 )。软件调试的目的是( E1 )。

供选择的答案:

A.① 过程,子程序,分程序 ② 顺序,条件,循环 ③ 递归,堆栈,队列 ④ 调用,返回,转移 B.① 不能嵌套使用 ② 只能用来写简单的程序 ③ 已经用硬件实现 ④ 只有一个入口和一个出口 C.① 筛选法 ② 递归法 ③ 归纳法 ④ 逐步求精法 D.① 证明程序中没有错误 ② 发现程序中的错误 ③ 测量程序的动态特性 ④ 检查程序中的语法错误 E.① 找出错误所在并改正之 ② 排除存在错误的可能性 ③ 对错误性质进行分类 ④ 统计出错的次数

4 / 8

8 A② B④ C④ D② E①

9. (5分)从供选择的答案中选出应该填入下列关于软件测试的叙述的( )内

的正确答案。

软件测试中常用的静态分析方法是( A1 )和( B5 )。( B5 )用于检查模块或子程序间的调用是否正确。分析方法(白盒方法)中常用的方法是( C1 )方法。非分析方法(黑盒方法)中常用的方法是( D2 )方法和( E3 )方法。( E3 )方法根据输出对输入的依赖关系设计测试用例。 供选择的答案:

A~B. ① 引用分析 ② 算法分析 ③ 可靠性分析 ④ 效率分析 ⑤ 接口分析 ⑥ 操作分析 C~E. ① 路径测试 ② 等价类 ③ 因果图 ④ 归纳测试 ⑤ 综合测试 ⑥ 追踪 ⑦ 深度优先 ⑧ 调试 ⑨ 相对图

9 A① B⑤ C① D② E③

10. (5分)软件可移植性是用来衡量软件的( A3 )的重要尺度之一。为了提

高软件的可移植性,应注意提高软件的( B4 )。采用( C3 )有助于提高( B4 )。为了提高可移植性,还应( D1 )。使用( E3 )语言开发的系统软件具有较好的可移植性。 供选择的答案:

A. ① 通用性 ② 效率 ③ 质量 ④ 人机界面 B. ① 使用的方便性 ② 简洁性 ③ 可靠性 ④ 设备独立性 C. ① 优化算法 ② 专用设备 ③ 表格驱动方式 ④ 树型文件目录 D. ① 有完备的文件资料 ② 选择好的宿主计算机 ③ 减少输入输出次数 ④ 选择好的操作系统

E. ① COBOL ② APL ③ C ④ SQL

10 A③ B④ C③ D① E③

5 / 8

二、解答题(52分)

1. (10分)写出“家庭保安系统”中“门窗监测”的场景。

答:答:场景名称:门窗监测。

参与执行者实例:警报器、报警电话、显示器和门窗监视器。 前置条件:系统已开机。 事件流:

(1)门窗监视器发现门或窗户发生异动,向软件系统报告异常事件。 (2)软件系统启动警报器并拨报警电话号码。

(3)报警电话接通后,软件系统播出语音,报告异常事件发生的时间、 地点和事件的性质(门窗异动)。

(4)系统在控制面板的显示器上显示报警时间及当前状态(报警:门窗异动)。

后置条件:系统处于“报警”状态。

2. (13分)什么是变换流和事务流?

答:交换流:信息沿输入通路进入系统,同时由外部形势变换为内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。

事务流:沿传入路径进入系统,由外部形式变换位内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条执行。有这样形状的成为事务流。

3. (20分)面向数据流的体系结构设计时,如何运用变换映射进行转换? 答:变换映射是体系结构设计的一种策略。运用变换映射方法建立初始的变换型系统结构图,然后对它做进一步的改进,最后得到系统的最终结构图。设计的步骤如下:

步骤1:复审基本系统模型(0层数据流图和支持信息)。评估系统规格说明和软件需求规格说明。

步骤2:复审和细化软件的数据流图。重画数据流图时,可以从物理输入到物理输出,或者相反。还可以从顶层加工框开始,逐层向下。

步骤3:确定数据流图中含有变换流特征还是含有事务流特征。通常,系统的信息流总能表示为变换型,但其中也可能遇到明显的事务流特征,这时可采用变换型为主,在局部范围采用事务型的设计方法。

6 / 8

步骤4:区分输入流、输出流和中心变换部分,即标明流的边界。不同的设计人员可能选择不同的流边界,这将导致不同的系统结构图。 步骤5:进行一级“因子化”分解,设计顶层和第一层模块。

首先设计主模块,用程序名字为它命名,将它画在与中心变换相对应的位路上。作为系统的顶层,它调用下层模块,完成系统所要做的各项工作。系统结构第一层的设计方针:为每一个逻辑输入设计一个输入模块,它为主模块提供数据;为每一个逻辑输出设计一个输出模块,它将主模块提供的数据输出;为中心变换设计一个变换模块,它将逻辑输入转换成逻辑输出。

步骤6:进行二级“因子化”分解,设计中、下层模块。这一步工作是自顶向下,逐层细化。为每一个输入模块、输出模块、变换模块设计他们的从属模块。

输入模块要向调用它的上级模块提供数据,因而它必须有两个下属模块:一个是接收数据;另一个是把这些数据变换成它的上级模块所需的数据。输出模块是从调用它的上级模块接收数据,用以输出,因而也应当有两个下属模块:一个是将上级模块提供的数据变换成输出的形式;另一个是将它们输出。中心变换模块的下层模块没有通用的设计方法,一般应参照数据流图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。

步骤7:利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。

4. (9分)面向数据流设计中的启发式设计策略是什么? 答:启发式策略:改造软件结构,降低耦合度,提高内聚度

- 如果在几个模块中发现共有的子功能,一般应该将该子功能独立出来作为一个模块,以提高模块的独立性

- 合并那些具有较多的控制信息传递的模块以降低模块之间的耦合度 减少扇出,追求高扇入

一个好的软件结构通常顶层扇出较高,中间层扇出较低,底层又高扇入到公共模块中去

使任一模块的作用域在其控制域内

作用域是指受模块内部判定影响的所有模块 控制域是指其所有的下属模块 其他启发式设计策略

降低模块接口复杂度和冗余度,提高协调性 - 模块接口应尽可能简单并与模块功能相一致,如: - Sort(Data; Number)----→Sort(Data)

7 / 8

模块功能可预测,避免对模块施加过多限制 - 模块的功能可预测是指输入恒定,则输出恒定 追求单入口。单出口的模块

为满足设计和可移植性要求,把某些软件用包封装起来

[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]

8 / 8

因篇幅问题不能全部显示,请点此查看更多更全内容