《软件工程》期末试卷A
姓名: 专业:
学号: 学习中心:
成绩:
一、选择题(51分)
1. (8分)从供选择的答案中选出正确的答案填入下面的( )中。
块间联系和块内联系是评价程序模块结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和接口的( A )等因素决定了块间联系的大小。在块内联系中,( B )的块内联系最强。
SD方法的总的原则是使每个模块执行( C )功能,模块间传送( D )参数,模块通过( E )语句调用其他模块,而且模块间传送的参数应尽量( F )。
此外,SD方法还提出了判定的作用范围和模块的控制范围等概念。SD方法认为,( G )应该是( H )的子集。
供选择的答案:" ^: d* }1 R0 u
A: ① 友好性 ② 健壮性 ③ 简单性 ④ 安全性2 B: m& }1 t+ @ [
B: ① 巧合内聚 ② 功能内聚 ③ 通信内聚 ④ 信息内聚
C: ① 一个 ② 多个* Z0 P" D4 ~# d) D$ d. `9 g; R
D: ① 数据型 ② 控制型 ③ 混合型
E: ① 直接引用 ② 标准调用 ③ 中断 ④ 宏调用
F: ① 少 ② 多5 O- O( C! ]* b1 @/ h
G~H:① 作用范围 ② 控制范围
. P2 j. o0 x' i' _- G' F! ]
2. (5分)软件需求分析的任务不应包括( A )。进行需求分析可使用多种工具,但( B )是不适用的。在需求分析中,分析员要从用户那里解决的最重要的问题是( C )。需求规格说明书的内容不应当包括( D )。该文档在软件开发中具有重要的作用,但其作用不应当包括( E )。2 R$ p- i# \) Y5 h" u
供选择的答案:
A:①问题分析 ②信息域分析 ③结构化程序设计 ④确定逻辑模型
B:①数据流图 ②判定表 ③PAD图 ④数据词典: f M+ N. a6 a: t) l. A. M
C:①要让软件做什么 ②要给该软件提供哪些信息/ o+ \8 w! v9 F0 ~& O' a
③要求软件工作效率如何 ④要让软件具有什么样的结构. T, ~/ L. m6 E& Q4 E* l
D:①对重要功能的描述 ②对算法的详细过程性描述# E1 W: C$ B4 w( U
③软件确认准则 ④软件的性能& }; s) `# W0 z( N6 O
E:①软件设计的依据
②用户和开发人员对软件要“做什么”的共同理解8 `1 F7 T9 p' w$ b4 o
③软件验收的依据 ! F- Y% X0 u4 R/ s
④软件可行性分析的依据
3. (5分)UML是一种面向对象的统一建模语言。它包含10种图,其中,用例图展示了外部actor与系统所提供的用例之间的连接,UML中的外部 actor指( ① ),用例可以用( ② )图来描述。状态图指明了对象所有可能的状态以及状态间的迁移 (transition)。如果一个并发的状态由 n 个并发的子状态图组成,那么,该并发状态在某时刻的状态由( ③ )个子状态图中各取一个状态组合而成。协作图描述了协作的( ④ )之间的交互和链接(1ink),它画成( ⑤ )图的形式。
① A.人员 B.单位 C.人员或单位 D.人员或外部系统 . r( f: [! n, p1 H% [
② A.类 B.状态 C.活动 D.协作 # G5 M! V4 ^! I$ f, E U
③ A.每一 B.任意一 C.任意二 D.任意 m (m ≤ n)
④ A.对象 B.类 C.用例 D.状态 * i ?0 V1 R2 @; u, J: W( q# q
⑤ A.对象 B.类 C.用例 D.状态 % S( _; c3 C: h. H0 H
4. (5分)软件详细设计工具可分为三类,即:图示工具、设计语言和表格工具。图示工具中,( A )简单而应用广泛、( B )表示法中,每一个处理过程用一个盒子表示,盒子可以嵌套。( C )可以纵横延伸,图形的空间效果好。
( D ) 是一种设计和描述程序的语言,它是一种面向( E )的语言。1 u P* ^& U4 t# j. a8 }
供选择的答案:
A~C: ① NS图 ② 流程图 ③ HIPO图 ④ PAD图
D: ① C ② PDL ③ RPOLOG ④ PASCAL
E: ① 人 ② 机器 ③ 数据结构 ④ 对象
5. (4分)在使用UML建模时,若需要描述跨越多个用例的单个对象的行为,使用( ① )是最为合适的。UML结构包括了基本构造块.公共机制和( ② )。UML 中提供了扩展机制,其中,构造型(Stereotype)扩展了UML的( ③ ),约束(Constraint)扩展了UML( ④ )。
① A.协作图(Collaboration Diagram) B.序列图(Sequence Diagram) . \2 f5 K3 _/ f& p
C.活动图(Activity Diagram) D.状态图(Statechart Diagram) - o& m: m. F' K
② A.把这些构造块放在一起的规则 : N: s; O# ?0 T& P) M3 @- g- S
B.图形或文字修饰 5 h0 [8 M" y" j8 ^& Y
C.类与对象的划分以及接口与实现的分离
D.描述系统细节的规格说明
③ A.构造块的特性,允许创建详述元素的新信息 0 G; y0 b4 f( x, |& B F! {9 d
B.构造块的语义,允许增加新的规则或修改现有的规则 4 T- Q# e9 X6 {. h e' \$ v
C.语义,允许创建新的构造块
D.词汇,允许创建新的构造块
④ A.构造块的特性,允许创建详述元素的新信息 . _4 V- Z0 `0 B$ M4 P& P
B.构造块的语义,允许增加新的规则或修改现有的规则
C.语义,允许创建新的构造块
D.词汇,允许创建新的构造块 $ z+ v* @" Y5 a6 m: H
! H# Z9 Y: W! _+ B4 I
6. (5分)下面有关软件维护的叙述有些是不准确的,请列举5个正确的叙述。$ R- k) n& d, j; T" R& ?9 ~# M
供选择的答案:5 F: l) A \+ @# z7 b9 { g
① 要维护一个软件,必须先理解这个软件。
② 阅读别人写的程序并不困难。4 J9 s6 p! |' o$ z8 v6 i! s
③ 如果文档不齐全也可以维护一个软件。
④ 谁写的软件就得由谁来维护这个软件。$ [9 F3 D* S# B9 \
⑤ 设计软件时就应考虑到将来的可修改性。6 ?. d! B4 t9 t) O* Y
⑥ 维护软件时一件很吸引人的创造性工作。
⑦ 维护软件就是改正软件中的错误。
⑦ 维护好一个软件是一件很难的事情。
% y# s' n- r; `. ?5 R: B
7. (4分)从供选择的答案中选出应填入下列( )中的字句。
软件测试的目的是( A )。为了提高测试的效率,应该( B )。使用白盒测试方法时,确定测试数据应根据( C )和指定的覆盖标准。与设计测试数据无关的文档是( D )。; S0 K- Z* b, p" g0 R2 j& T5 C x
供选择的答案:; w4 o" L" q. q+ ~
A.① 评价软件的质量 ② 发现软件的错误
③ 找出软件中的所有错误 ④ 证明软件是正确的+ {6 J, o* ~5 l' }0 Q
B.① 随机地选取测试数据 . \! B; w5 O7 S' v
② 取一切可能的输入数据作为测试数据$ R7 @$ L4 f8 b H% S
③ 在完成编码以后制定软件的测试计划
④ 选择发现错误的可能性大的数据作为测试数据* J$ T4 O' C: N- d9 K+ R
C.① 程序的内部逻辑 ② 程序的复杂程度2 u3 F# ~2 A+ m: o
③ 使用说明书 ④ 程序的功能7 ~2 b) P' \" G
D.① 该软件的设计人员 ② 程序的复杂程度
③ 源程序 ④ 项目开发计划
7 e- R7 I) D9 y2 {2 n
8. (5分)从供选择的答案中选出应该填入下面( )中的正确答案。1 `* g1 }, P8 }; N/ ^3 G2 F
A. 汇编程序是指 ( )。6 _- Y. k0 H. q8 }
① 用汇编语言写的程序+ ~# k+ Y. {# l6 J# ?
② 符号程序
③ 汇编语言的处理程序, U+ T6 g# C7 I. e
' Q5 h1 c8 V* ? e9 c: B5 ?
B. 为了实现递归子程序的正确调用,人们必须用( )来保存( )及有关信息。
① 堆栈 ② 线性表 ③ 队列 ④ 树
⑤ 入口点 ⑥ 返回地址 ⑦ 断点
# p( c& g8 P) r4 |& C# Z5 m4 I$ v; E+ k
C. UNIX操作系统是( )研制的,它是用程序语言( )书写实现的。5 W* U) E+ z$ x$ C4 `) ?7 z! X9 b8 Y4 w
① Bell实验室 ② DEC公司 ③ IBM公司 ④ PASCAL. H* |, m! p* z$ e$ j$ [
⑤ 并发PASCAL ⑥ MODULA ⑦ C/ S; h! q* e0 I- X
9. (5分)在软件维护的实施过程中,为了正确、有效地修改,需要经历以下3个步骤:( A )、( B )、( C )。( A )是决定维护成败和质量好坏的关键。( C )包括( D )确认、计算机确认和维护后的( E )。0 X9 O0 Z/ g9 s- i+ z
供选择的答案:5 ]; u& v; V0 `& m3 L
A~C. ① 修改程序 ② 建立目标程序 ③ 分析和理解程序% e* e) I: d' @8 i: l0 d
④ 重新验证程序 ⑤ 验收程序 5 Y$ [# l0 [7 Q! C* h
D. ① 动态 ② 静态 ③ 人工 ④ 自动" Q: l) n! ]6 r4 i3 S, V
E. ① 验证 ② 验收 ③ 检验 ④ 存档
$ J' T2 p/ \7 y# P5 f8 D4 m& B
10. (5分)从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。' k0 a4 [0 d/ T+ e3 l. `
A. 对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。
B. 已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。
C. 在意识到被测试模块的内部结构或算法的情况下进行测试。
D. 为了确认用户的需求,先做出系统的主要部分,提交给用户试用。' q3 k1 }1 }' L
E. 在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。
供选择的答案:# `+ F3 f- e, g8 J1 k- h
A~E.① 仿真器 ② 代码审查 ③ 模拟器 ④ 桩
⑤ 驱动器 ⑥ 域测试 ⑦ 黑盒测试 ⑧ 原型 - E; |4 ~; C: a6 F" ]& H# L& G
⑨ 白盒测试 ⑩ 退化测试
二、解答题(49分). ^: n! ^) O8 L
1. (12分)画出“传感器监测”的用例的活动图。
2. (15分)使用面向对象设计方法 进行高层设计 ,以建立系统的体系结构。这样的结构有哪几种主要的组成部分?每一部分所承担的职责是什么?0 E z5 r9 Q H i) H" w
3. (22分)如何理解模块独立性?用什么指标来衡量模块独立性?