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

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

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

  1. 软件是一种(C)。
    A. 程序
    B. 数据
    C. 逻辑产品
    D. 物理产品

    计算机软件是计算机系统中与硬件互相依存的另一部分,是程序、数据及相关文档的完整集合。软件是一种逻辑实体,而不是物理实体,具有抽象性。

  2. 在软件危机产生的原因中,(A)是我们无法控制的。
    A. 用户对需求描述不精确
    B. 软件本质的复杂性
    C. 开发人员对用户需求的理解有误
    D. 观念

  3. 下面哪一种软件过程模型是文档驱动的(A)。
    A. 瀑布模型
    B. 快速原型法
    C. 螺旋模型
    D. 喷泉模型

  4. 下面哪一种软件过程模型是风险驱动的(C)。
    A. 瀑布模型
    B. 快速原型
    C. 螺旋模型
    D. 喷泉模型

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

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

  7. 哪个模型明确规定了面向对象系统应在何时去做。(B)
    A. 对象模型
    B. 动态模型
    C. 功能模型
    D. 抽象模型

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

  9. 从面向对象的角度观察,房子与窗户的关系是(C)。
    A. 链
    B. 依赖
    C. 聚合
    D. 泛化

  10. (A)是软件最高层次的设计。
    A. 体系结构设计
    B. 子系统设计
    C. 对象设计
    D. 责任分解

  11. “飞船控制系统”是典型的(C)体系结构风格。
    A. 黑板系统
    B. 客户机/服务器
    C. 实时与连续计算
    D. 管道和过滤器

  12. “web应用”往往是典型的(B)体系结构风格。
    A. 黑板系统
    B. 客户机/服务器
    C. 实时与连续计算
    D. 管道和过滤器

  13. 将软件组件的接口与实现分离,主要体现(D)原则。
    A. 强内聚
    B. 依赖倒转
    C. 弱耦合
    D. 信息隐藏

  14. 现今有(B)种数据存储管理方式。
    A. 2
    B. 3
    C. 4
    D. 很多

    数据存储 (opens new window) DAS/NAS/SAN

  15. Windows 程序的窗口函数是一个(B)。
    A. 回调函数
    B. API 函数
    C. 主函数
    D. 绘图函数

    Windows 程序的窗口函数是一个(B)。 | 单项选择题

  16. 在(A)完成后,可以着手制定测试计划。
    A. 需求分析
    B. 系统设计
    C. 详细设计
    D. 软件编码

  17. 一个软件项目的规模(代码行数)被估算出乐观值、可能值、悲观值分别为 4000、7000、9000,则按“代码行估算”技术,此项目的规模估算为(D)。
    A. 7000
    B. 7333
    C. 7250
    D. 其它

    L = (a + 4*m + b) / 6
    (4000 + 7000 * 4 + 9000)/4 ≈ 6833.33

  18. 下面那种项目组的组织方式对成员的平均水平要求最高(A)。
    A. 民主程序员组
    B. 主程序员组
    C. 现代程序员组
    D. 其它

  19. 正在开发一个没有人真正需要的软件产品,这是遭遇了(C)风险。
    A. 项目
    B. 技术
    C. 商业
    D. 其它

    商业中的市场风险

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

# 二、填空题(每小题 1 分,共 10 分)

  1. 人们曾采用的软件工程方法学有:结构化技术、(面向对象技术)、面向组件技术。
  2. 快速原型法最根本的任务就是为获取用户真实的(需求)。
  3. 面向对象软件是由一系列对象组成,对象之间通过(消息)互相协作。
  4. 面向对象需求分析可以再细分为两个步骤:(需求陈述)和分析建模。
  5. 面向对象需求分析的任务是:抽取和整理用户的需求,建立(问题域)的精确模型。
  6. 子系统之间的关系有两种:“客户机/服务器”关系和(对等关系)。
  7. 主要存在三种软件的控制范式:过程驱动型、(对象型)和并发型。
  8. 动态模型的(事件跟踪)和功能模型的“数据处理”常对应着类中的服务。
  9. 软件调试就是把症状和(原因)联系起来的智力过程。
  10. 为了估计软件项目的工作量和完成期限,首先要度量软件的(规模)。

# 三、判断对错题(每小题 1 分,共 10 分)

  1. 在程序真正运行之前,没有办法评估其质量。(❌)
  2. 瀑布开发模型是由文档驱动的。(✔️)
  3. 动态模型指明了面向对象系统应该“做什么”。(❌)

    功能模型指明了系统应该“做什么”,动态模型明确规定“什么时候做”。

  4. 在面向对象的问题域模型中,动态模型是最基本和最重要的。(❌)

    对象模型是最基本和最重要的。

  5. 面向对象开发方法就是把程序分解成一组互相协作的对象。(✔️)
  6. 一个软件的子系统可以通过它所提供的服务来标识。(✔️)
  7. 在客户机/服务器关系中,服务器需要知道客户机的接口。(❌)

    应该反过来。

  8. 详细设计主要是一个优化和加入实现对象的过程。(❌)

    详细设计:把解法具体化,详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。

  9. 软件测试的目标是为了使程序没有错误。(❌)

    测试的目的就是在软件投入生产性运行之前, 尽可能多地发现软件中的错误。

  10. 动态多变量模型是以软件规模和开发时间为自变量的函数。(✔️)

# 四、名词解释(每小题 4 分,共 20 分)

  1. 软件生命周期
  2. 耦合
  3. 面向对象分析
  4. 软件调试
  5. 软件质量

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

  1. 简述软件工程的目标。
  2. 简述三种面向对象模型的主要功能。
  3. 简述软件开发中文档的重要性。
  4. 简述软件设计的“信息隐藏原则”。

# 六、论述与应用题(每小题 10 分,共 20 分)

  1. 论述面向对象方法学的优点。

    论述面向对象方法学的优点。 | 论述题

  2. 有一个影片租赁店,想要开发一个计算机软件来管理它的日常业务。它每天的主要工作 是:接待顾客借出或还回影片。店里有两种影片:喜剧片和恐怖片。当一个顾客要租借影碟时, 店员将查找顾客名单,如果找到了,该顾客的姓名以及以往的租赁纪录将显示出来。然后店员 查找影碟存货纪录,如果店内还有此影碟,则将生成一个租赁纪录,其中包含影碟号、日期、 日租金等信息。然后店员将此租赁纪录记录到此顾客的名下。当顾客归还影碟时,店员找到顾 客纪录后,再输人影碟号,如果找到该影碟的一个租赁纪录,则根据借出及归还日期、日租金 等信息计算租金。
    请根据上述软件需求的自然语言描述,试建立它的对象模型。

影片租赁店