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

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

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

  1. 在结构化分析方法中,(C)表达系统内部数据运动的图形化技术。
    A. 数据字典
    B. 实体关系图
    C. 数据流图
    D. 状态转换图

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

  3. 在面向对象软件开发方法中,类与类之间主要有以下结构关系(A)。
    A. 继承和聚集
    B. 继承和一般
    C. 聚集和消息传递
    D. 继承和方法调用

  4. 以下哪一项不是软件危机的表现形式(C)。
    A. 成本高
    B. 生产率低
    C. 技术发展快
    D. 质量得不到保证

  5. 以下哪一项不是面向对象的特征(D)。
    A. 多态性
    B. 继承性
    C. 封装性
    D. 过程调用

  6. 用面向对象开发软件,通常要建立以下哪些模型?(A)
    A. 对象模型、动态模型、功能模型
    B. 对象模型、数据模型、功能模型
    C. 数据模型、动态模型、对象模型
    D. 对象模型、动态模型、数据模型

  7. 软件可行性研究一般不考虑(D)。
    A. 是否有足够的人员和相关的技术来支持系统开发
    B. 是否有足够的工具和相关的技术来支持系统
    C. 待开发软件是否有市场、经济上是否合算
    D. 待开发的软件是否会有质量问题

  8. 软件项目计划一般不包括以下哪项内容(A)。
    A. 培训计划
    B. 人员安排
    C. 进度安排
    D. 软件开发标准的选择和制定

  9. 以下哪一项不属于面向对象的软件开发方法(C)。
    A. coad 方法
    B. booch 方法
    C. jackson 方法
    D. omt 方法

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

  10. 希望一个软件很容易读懂,这是要求它的(A)好。
    A. 可理解性
    B. 可用性
    C. 灵活性
    D. 可再用性

  11. 开发软件中高成本、低质量、低效率的现象称做(C)。
    A. 软件工程
    B. 软件周期
    C. 软件危机
    D. 软件产生

  12. 软件生命周期中所花费用最多的阶段是(D)。
    A. 详细设计
    B. 软件编码
    C. 软件测试
    D. 软件维护

  13. 黑盒测试在设计测试用例时,主要需要研究(A)。
    A. 需求规格说明与概要设计说明
    B. 详细设计说明
    C. 项目开发计划
    D. 概要设计说明与详细设计说明

    黑盒法(又称功能测试或数据驱动测试)是一种通过运行程序发现错误的动态测试方法。其思想是把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书和概要设计说明,检查程序是否满足功能要求。

  14. 可行性研究要进行一次(D)需求分析。
    A. 深入的
    B. 详尽的
    C. 彻底的
    D. 简化的

  15. 对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
    A. 结合
    B. 隐藏
    C. 封装
    D. 抽象

  16. 对象模型描述了面向对象系统的(A)结构。
    A. 静态
    B. 动态
    C. 总体
    D. 控制

  17. 在面向对象技术中,在类等级的不同层次中可以公用一个方法的名字,然而不同层次的类却按自己的需要来实现这个行为,这种现象叫做(C)。
    A. 继承
    B. 重载
    C. 多态
    D. 封装

  18. 在面向对象需求分析的活动中,建立对象模型最重要的工作是(A)。
    A. 识别对象
    B. 识别关联
    C. 识别责任
    D. 识别属性

  19. 从面向对象的角度观察,电脑与显示器的关系是(C)。
    A. 链
    B. 依赖
    C. 聚合
    D. 泛化

  20. 面向对象设计是(D)的过程。
    A. 软件实现
    B. 需求确立
    C. 建立问题域模型
    D. 建立求解域模型

二、判断对错题(每小题 1 分,共 13 分)

  1. 在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。(❌)
  2. 软件错误可能出现在开发过程的早期,越早修改越好。(✔️)
  3. 不完善的系统定义往往是导致软件项目失败的主要原因。(✔️)
  4. 一个成功的项目唯一提交的就是运行程序。(❌)
  5. 只有质量差的软件产品才需要维护。(❌)
  6. 软件工作的考虑范围主要是程序设计和实现。(❌)

    软件工作中,设计与实现只是其中很小的一部分,还有管理、产品的规划、产品测试等。

  7. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(✔️)
  8. 数据字典是对数据加工、数据存储、数据的源和终点进行详细定义。(✔️)
  9. 软件是指用程序设计语言(如 PASCAL,C, VISUAL BASIC 等)编写的程序,软件开发实际上就是编码。(❌)
  10. 软件模块之间的耦合性越弱越好。(✔️)
  11. 如果通过软件测试没有发现错误,则说明软件是正确的。(❌)
  12. 快速原型模型可以有效地适应用户需求的动态变化。(✔️)
  13. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(✔️)

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

  1. 白盒法
  2. 黑盒法
  3. 经济可行性
  4. 结构化设计
  5. 信息隐蔽
  6. 系统流程图
  7. 集成测试
  8. 喷泉模型
  9. 功能模型

四、简述或问答题(每小题 4 分,共 20 分)

  1. 说明软件测试和调试的目的有何区别?
  2. 简述消除软件危机的途径?
  3. 简述软件生命周期各阶段的基本任务。
  4. 简述对象之间的关系。
  5. 简述软件设计的“强内聚原则”。

五、应用题(其中 1 题、2 题各 5 分,3 题 10 分,共20分)

  1. 根据下列条件使用边界值分析法设计测试用例。
    某一输入框(整数型输入),输入值的范围是 -177 至 177。如,-5,127,5 等。从数据类型、测试数据、期望结果和选取理由三个方面说明。

    输入等价类:十进制整数

    测试用例说明 测试数据 期望结果 选取理由
    4 个数字字符 1234 显示出错 比有效长度多 1 位
    有一个非数字字符 1C2 显示出错 有一个非法字符
    没有数字字符 - 显示出错 只有符号
    一个数字字符 0 显示有效 非十进制
    - 后有数字 -1247 显示出错 比有效长度多 1 位
    - 后有字符 -a 显示出错 有非法字符

    输入等价类:十进制范围

    测试用例说明 测试数据 期望结果 选取理由
    在边界上选取数据 -177 显示有效 最小数
    在边界上选取数据 -178 显示出错 刚好小于最小数
    在边界上选取数据 177 显示有效 最大数
    在边界上选取数据 178 显示出错 刚好大于最大数
  2. 一本书的组成有一个封面,一个目录,一个前言,若干章,每章有若干节,每节有若干段,每段有若干句子,每节有 0 个或多个插图,还有 0 个或多个表格,最后有一个附录。试建立该书的对象模型。

    书的对象模型

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

    1. 计算扣除部分——由基本工资计算出应扣除(比如水电费,缺勤)的部分;
    2. 计算奖金部分——根据职工的出勤情况计算出奖励金;
    3. 计算工资总额部分——根据输入的扣除额及奖金计算出总额;
    4. 计算税金部分——由工资总额中计算出应扣除各种税金;
    5. 生成工资表——根据计算总额部分和计算税金部分传递来的有关职工工资的详细信息生成工资表。

    试根据要求画出该问题的数据流程图,并把其转换为软件结构图。

    工资计算系统-数据流程图 工资计算系统-软件结构图