# 中国传媒大学 2009 年攻读硕士学位研究生入学考试 软件工程试题

答题说明:答案一律写在答题纸上,不需抄题,标明题号即可,答在试题上无效。

# 一、单项选择题(每小题 1 分,共 20 分)

  1. 瀑布模型的关键不足在于(D)。
    A. 过于简单
    B. 各个阶段需要进行评审
    C. 过于灵活
    D. 不能适应需求的动态变更

  2. 与确认测试阶段有关的文档是(A)。
    A. 需求规格说明书
    B. 概要设计说明书
    c. 详细设计说明书
    D. 源程序

  3. 软件维护产生的副作用,是指(C)。
    A. 开发时的错误
    B. 隐含的错误
    C. 因修改软件而造成的错误
    D. 运行时误操作

  4. 软件结构图的形态特征能反映程序重用率的是(C)。
    A. 深度
    B. 宽度
    C. 扇入
    D. 扇出

  5. 需求分析最终结果是产生(B)。
    A. 项目开发计划
    B. 需求规格说明书
    c. 设计说明书
    D. 可行性分析报告

  6. 经过严密的软件测试后所提交给用户的软件产品中(B)。
    A. 软件不再包含任何错误
    B. 还可能包含少量软件错误
    c. 所提交给用户的可执行文件不会含有错误
    D. 文档中不会含有错误

  7. 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(B)。
    A. 可用性
    B. 可靠性
    c. 正确性
    D. 完整性

  8. (D)是比较理想的可重用软构件。
    A. 子程序库
    B. 源代码包含文件
    c. 对象
    D. 类

  9. 许多产品的质量问题源于新产品的开发设计阶段,因此在产品(C)阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患。
    A. 软件评审
    B. 软件测试
    C. 开发设计
    D. 软件度量

  10. 统因错误而发生故障时,仍然能在一定程度上完成预期的功能,则把该软件称为(A)。
    A. 软件容错
    B. 系统软件
    c. 测试软件
    D. 恢复测试

  11. 软件维护的副作用主要有以下哪几种(C)。
    A. 编码副作用、数据副作用、测试副作用
    B. 编码副作用、数据副作用、调试副作用
    C. 编码副作用、数据副作用、文档副作用
    D. 编码副作用、文档副作用、测试副作用

  12. 可维护性的特性中,相互矛盾的是(B)。
    A. 可理解性与可测试性
    B. 效率与可修改性
    C. 可修改性和可理解性
    D. 可理解性与可读性

    牛客网 (opens new window)

  13. 快速原型是利用原型辅助软件开发的一种新思想,它是在研究(A)的方法和技术中产生的。
    A. 需求阶段
    B. 设计阶段
    c. 测试阶段
    D. 软件开发的各个阶段

  14. 表示对象相互行为的模型是(A)模型。
    A. 动态模型
    B. 功能模型
    C. 对象模型
    D. 静态模型

  15. 为了提高软件的可维护性或可靠性而对软件进行的修改称为(D)。
    A. 纠错性维护
    B. 适应性维护
    C. 完善性维护
    D. 预防性维护

  16. 在快速原型模型的开发过程中,用原型过程来代替全部开发阶段所用模型是(B)。
    A. 探索型原型
    B. 演化型原型
    C. 实验型原型
    D. 增量型原型

  17. 软件设计的方法有多种,(A)方法不属于面向数据流的设计方法。
    A. 基于 Jackson 图的设计
    B. 基于 IDEF 0 图的设计
    C. 交换分析设计
    D. 事务分析设计

    Jackson设计方法是一种面向数据结构的软件设计方法,Jackson分析方法是面向数据流的分析方法。
    Jackson方法 | 百度百科 (opens new window)

  18. 需求规格说明书的作用不包括(C)。
    A. 软件验收的依据
    B. 用户与开发人员对软件要做什么的共同理解
    C. 软件可行性研究的依据
    D. 软件设计的依据

  19. 在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A)。
    A. 软件危机
    B. 软件工程
    c. 程序设计革命
    D. 结构化程序设计

  20. 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因此必须给出(B)的回答。
    A. 确定
    B. 行或不行
    C. 正确
    D. 无二义

# 二、判断题(每题 1 分,共 10 分)

  1. 概念模型常用 ER 图来表示,它由实体和联系两种成分组成。(❌)

    E-R 图模型的组成是由实体,属性和联系。

  2. 概要设计也称为模块设计,一项主要的任务就是确定程序由那些模块组成及模块之间的关系。(❌)

    详细设计也称为模块设计。后面的描述是概要设计的描述。

  3. 通过软件测试结果的分析可以预测软件的可靠性。(✔️)
  4. 增量模型是一种风险驱动的模型,适用于大规模的内部开发项目。(❌)

    这是螺旋模型。

  5. 衡量软件模块独立性通常有内聚和耦合两个指标。(✔️)
  6. 等价划分是一种以较小代价暴露较多错误的白盒测试技术。(❌)

    黑盒测试

  7. 集成测试的主要目标是发现与接口有关的问题。(✔️)
  8. 功能模型描述了系统的控制结构。(❌)

    动态模型描述了系统的控制结构。功能模型描述了系统的功能。

  9. 软件测试不但是对编码的最后复审,也是对软件规格说明、设计的最后复审。(✔️)
  10. 软件工程的基本目标是消除软件固有的复杂性。(❌)

    软件工程的基本目标是开发高质量的软件。

# 三、名词解释题(每小题 3 分,共 24 分)

  1. 数据流图
  2. 完善性维护
  3. 软件再工程
  4. 详细设计
  5. 软件生存周期模型
  6. 可移植性
  7. 螺旋模型
  8. 状态转换图

# 四、简答题(每小题 5 分,共 20 分)

  1. 软件生命周期组成、阶段划分及各阶段基本任务。
  2. 软件测试的一般过程及各步骤目的是什么? 软件测试和软件调试在目标上有何区别?
  3. 简述提高面向对象设计质量的启发性规则。
  4. 简述耦合和内聚的概念并说明为何要建立弱耦合高内聚的软件系统。

# 五、应用题(第 1 小题 8 分,第 2、3 小题各 9 分,共 26 分)

  1. 什么是条件组合覆盖?为以下程序流程图设计最少的测试用例实现条件组合覆盖,要求写明测试用例对应的程序执行路径。

    工资计算系统-数据流程图

    条件组合覆盖是白盒测试技术中的一种逻辑覆盖。
    选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。

    习题 P51 5.3.1.4.

    条件组合覆盖测试方案如下:

    • 覆盖第一个条件为真的路径。输入:X=2。预期经过 S1。
    • 覆盖第一个条件为假的路径。输入:X=1。预期经过 S2。

    感觉题目好像有点问题,图或者题目漏了些什么,自己瞎写的 = =。

  2. 给出如下 N-S 盒图,请画出对应的程序流程图和 PAD 图。 N-S盒图

    程序流程图:

    程序流程图

    PAD 图:

    PAD 图

  3. 工资计算系统中的一个子系统有如下功能:

    1. 计算基本工资——根据人事数据计算出基本工资;
    2. 计算缺勤扣除部分——由缺勤信息算出应扣除的部分;
    3. 计算奖金部分——根据职工的出勤情况计算出奖励金;
    4. 计算应发工资——根据输入的基本工资、扣除、奖金计算出应发工资总额;
    5. 计算税金部分——由应发工资总额计算出应扣除税金;
    6. 计算实发工资——由应发工资总额扣除税金部分;
    7. 生成工资表——根据计算应发工资、基本工资、扣除额和税金等生成工资表。

    试根据要求画出该问题的数据流程图。

    工资计算系统-数据流程图