# 第 1 章
# 一、填空题
- 软件是计算机系统中的程序 (指令)、数据及其 ** 文档 (+ 服务)** 的总称。
- 软件的类型按功能可以分为:系统软件、支撑软件、应用软件等三种类型。
- 国家标准 GB/T 11457—1995《软件工程术语》对软件工程定义是软件开发、运行、维护和引退的系统方法。
- 软件工程是指导计算机软件开发和维护的工程学科。
- 软件工程采用工程的概念、原理、技术和方法来开发与维护软件。
- 软件工程的目标是实现软件的优质高产。
- 软件工程学的主要内容是软件开发技术和软件工程管理。
# 二、选择题
- 下面( B.有形性与可控性 )不是软件的特征
A.系统性与复制性
B.有形性与可控性
C.抽象性与智能性
D.依附性与泛域性 - 下面( D.办公软件 )不属于系统软件
A.BIOS
B.Windows
C.设备驱动程序
D.办公软件 - 软件危机的主要原因是( A.软件本身特点及开发方法 )
A.软件本身特点及开发方法
B.对软件的认识不够
C.软件生产能力不足
D.软件工具落后 - 下面( C.软件工程材料 )不属于软件工程学科所要研究的基本内容
A.软件工程原理
B.软件工程目标
C.软件工程材料
D.软件工程过程 - 下面( B.20 世纪 60 年代提出了软件工程概念 )是正确的说法
A.20 世纪 50 年代提出了软件工程的概念
B.20 世纪 60 年代提出了软件工程的概念
C.20 世纪 70 年代出现了客户机 / 服务器技术
D.20 世纪 80 年代软件工程学科达到成熟
# 第 2 章
# 一、填空题
- 软件可行性分析的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
- 可行性分析的目的不是去开发一个软件项目,而是研究这个软件项目是否值得去开发、其中的问题能否解决。
- 可行性分析实质上是要进行一次简化、压缩了的需求分析和设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
- 可行性分析需要从技术可行性、经济可行性、社会可行性三个方面分析研究每种解决方法的可行性。
- 技术可行性是对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。
- 技术可行性一般要考虑的情况包括:开发的风险、资源的有效性和技术。
- 技术可行性的研究包括成本 - 效益分析、公司经营长期策略、开发所需的成本和资源和潜在的市场前景。
- 社会可行性所涉及的范围包括合同、责任、侵权、用户组织的管理模式、规范及其他一些技术人员常常不了解的陷阱等。
- 典型的可行性分析有下列步骤:确定项目规模和目标、研究正在运行的系统、建立新系统的高层逻辑模型、导出和评价各种方案、推荐可行的方案和编写可行性分析报告。
- 一个可行性分析报告的主要内容如下:引言、可行性分析的前提、对现有系统的分析、所建议系统的技术可行性分析、系统的经济可行性分析、社会因素可行性分析、其他可供选择方案、结论意见。
- 成本 - 效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。
- 效益分析有形效益和无形效益两种。有形效益可以用货币的时间价值、投资回收期、纯收入等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。
- 投资回收期就是使累计的经济效益等于最初的投资费用所需要的时间。项目的纯收入是指在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
- 项目开发计划的主要内容有:项目概述、实施计划、人员组织及分工和交付期限。
- 纯收入是软件生存周期内两项值之差,这两项是经济效益与投资。
- 软件工程有两种效益,它们是无形效益和有形效益。
- 可行性分析具体步骤的最后一步是编写可行性报告。
- 系统的经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。
- 成本 - 效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。
- 可行性分析中描述系统高层物理模型的工具是系统流程图。
- 可行性分析的第一个具体步骤是确定项目的规模和目标。
# 二、选择题
- 研究开发资源的有效性是进行(A)可行性分析的一方面
A.技术
B.经济
C.社会
D.操作 - 在软件的可行性分析中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是(B)
A.经济可行性
B.技术可行性
C.操作可行性
D.法律可行性 - 在遵循软件工程原则开发软件过程中,计划阶段应该依次完成(B)
A.软件计划、需求分析、系统定义
B.系统定义、软件计划、需求分析
C.需求分析、概要设计、软件计划
D.软件计划、需求分析、概要设计 - 技术可行性要解决(D)
A.是否存在侵权
B.成本 - 效益问题
C.运行方式可行
D.技术风险问题 - 在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是(D)
A.工作阶段间的等待时间
B.生产原型的复杂性
C.参与人员所需的工作站数
D.参与人员之间的通信困难 - 制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是(D)
A.组织与管理
B.分析与估算
C.设计与测试
D.规划与调度 - 研究软硬件资源的有效性是进行(A)研究的一方面
A.技术可行性
B.经济可行性
C.社会可行性
D.操作可行性 - 可行性分析要进行的需求分析和设计应是(C)
A.详细的
B.全面的
C.简化、压缩的
D.彻底的 - 系统流程图用于可行性分析中的(C)的描述
A.当前运行系统
B.当前逻辑模型
C.目标系统
D.新系统 - 系统流程图是描述(D)的工具
A.逻辑系统
B.程序系统
C.体系结构
D.物理系统
# 第 3 章
# 一、填空题
- 在面向对象分析和 OOD 中,通常将对象的操作称为方法或服务。
- 对象的抽象是类,类的实例化是对象。
- 面向对象的程序设计语言应具备面向对象方法所要求的 4 个成分,它们是类、对象、继承 和 消息通信。
- 可能的潜在对象有 7 类,它们是:外部实体、事物、事件、角色、场所或位置、组织机构和结构。
- 具有 相同特征和行为 的对象构成类。
# 二、选择题
- 汽车有一个发动机,汽车和发动机之间的关系是(B)关系
A. 一般具体
B. 整体部分
C. 分类
D. 组装 - 在面向对象方法中,信息隐蔽是通过对象的(C)来实现的
A. 分类性
B. 继承性
C. 封装性
D. 共享性 - 只有类的共有界面的成员才能成为使用类的操作,这是软件设计的(C)原则
A. 过程抽象
B. 功能抽象
C. 信息隐蔽
D. 共享性 - 当且仅当一个操作对类的实例的用户有用时,它才是类公共界面的一个成员,这是软件设计的(B)准则
A. 标准调用
B. 最小界面
C. 高耦合
D. 高效率 - 每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集,这是软件设计的(D)原则
A. 动态联编
B. 多态性
C. 信息隐蔽
D. 继承性
# 第 4 章
# 一、填空题
- 用于描述基本加工说明的三种描述工具是结构化语言,判定表,判定树。
- 数据字典中有四类条目,分别是数据流,数据项,数据存储,基本加工。
- 需求分析阶段产生的最重要的文档是需求规格说明书。
- DFD 利用图形符号表示系统中的各个元素,表达了系统中各种元素之间的信息流动。
- DFD 是描绘物理系统的传统工具,它用图形符号来表示系统中的各个元素。
- 在需求分析阶段,需要确定问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的功能。
- 需求分析阶段所要编写的文档包括需求规格说明书,初步用户使用手册,确认测试计划。
- 数据流图的 4 种基本成分是数据流,加工,数据存储,数据源点或终点。
- 在绘制分层的 DFD 时,父图与子图的输入输出数据流要平衡。
- 需求分析的困难主要体现在 4 方面:问题的复杂性、交流障碍、不完备性不一致性、需求易变性。
# 二、选择题
- 软件质量必须从需求分析开始,在(D)加以保证
A.开发之前
B.开发之后
C.可行性研究过程中
D.整个开发过程 - SA 方法的基本思想是(C)
A.自底向上逐步抽象
B.自底向上逐步分解
C.自顶向下逐步分解
D.自顶向下逐步抽象 - DFD 是常用的进行软件需求分析的图形工具,其基本符号是(C)
A.输入、输出、外部实体和加工
B.变换、加工、数据流和存储
C.加工、数据流、数据存储和外部实体
D.变换、数据存储、加工和数据流 - 判定表和判定树是 DFD 中用以描述加工的工具,它通常描述的对象是(D)
A.逻辑判断
B.层次分解
C.操作条目
D.组合组件 - 系统流程图用于可行性分析中的(D)的描述
A.当前运行系统
B.当前逻辑模型
C.目标系统
D.新系统 - 在程序的描述和分析中,用于指明数据来源、流向和处理的辅助图形是(B)
A.数据结构图
B.DFD
C.业务结构图
D.其他图 - U/C 矩阵是用来进行(C)的方法
A.系统开发
B.系统分析
C.子系统划分
D.系统规划 - 需求规格说明书的作用不应该包括(D)
A.软件设计的依据
B.用户与开发人员对软件要做什么的共同理解
C.软件验收的依据
D.软件可行性研究的依据 - 软件需求分析阶段的工作,主要包括对问题的识别、分析与综合、编写需求分析文档以及(C)
A.总结
B.阶段性报告
C.需求分析评审
D.以上答案都不正确 - 进行需求分析可使用多种工具,但不包括以下(C)选项
A.数据流图
B.判定表
C.PAD 图
D.数据字典
# 第 5 章
# 一、填空题
- 软件工程中的总体设计又叫概要设计。
- 在软件工程中的设计阶段,要充分体现软件工程的 “模块化”、“抽象”、“信息隐蔽” 等基本原则。
- 系统详细设计阶段最后产生的文档是详细设计说明书。
- 软件运行中的浮动位置菜单又叫弹出式菜单。
- 数据的显示形式主要包括字符显示和图形显示。
- 一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块是高内聚。
- SD 方法的原则是使每个模块执行一个功能。
- 软件详细设计工具可分为图示工具、设计语言和表格工具。
# 二、选择题
- 以下(D)不属于系统设计
A. 总体设计
B. 详细设计
C. 过程设计
D. 需求设计 - 为了提高模块的独立性,模块之间最好是(D)
A. 公共耦合
B. 控制耦合
C. 数据耦合
D. 内容耦合 - 详细设计的任务是确定每个模块的(B)
A. 外部特性
B. 算法和数据结构
C. 内部特性
D. 功能 - 数据库设计时的概念数据模型一般用(B)图表示
A. PAD
B. E-R
C. E-P
D. HIPO - 以下(C)不属于报告的布局
A. 块结构报表
B. 列表报表
C. 栈结构报表
D. 组结构报表 - 下面(B)不属于常用的软件设计方法
A. Jackson 方法
B. LCP (Wanier) 方法
C. SA 方法
D. SD 方法
# 第 6 章
# 一、填空题
- 编程语言是人与 计算机 交流的 工具 。
- 从语言层次上,编程语言可以分为 面向机器的语言 和 面向问题的语言 两种类型。
- 20 世纪 50 年代 年代出现了模块化编程方法, 20 世纪 60 年代末 年代出现了结构化程序设计。
- 编程风格是指一个人编制程序时所表现出来的 特点 、习惯和 逻辑思路等 。
- 代码实现可以分为数据库、业务对象和用例实现,以及 自顶向下策略 、 自底向上策略 和 基于业务对象的用例实现开发策略 3 种策略。
# 二、选择题
- 下面(A)属于专用语言
A. LISP
B. C
C. Pascal
D. Java - 下面不属于一般程序设计方法的是(B)
A. 模块化编程方法
B. 体系化编程方法
C. 结构化编程方法
D. OOP 设计方法 - 下面不符合命名规范的标识符是(D)
A. sUm Number
B. SumNumber
C. Sum_ Of Number
D. SumOfNumber - 下面(C)不属于选择 OOL 应该考虑的因素
A. 开发环境
B. 发展前景
C. 类库的可扩展性
D. 支持多继承 - 下面(C)是错误的说法
A. 中间版本是软件未完成前的版本
B. 版本是可以提交严格测试的软件版本
C. 版本是提交给测试人员进行全面测试的软件版本
D. 发布版本是正式向社会发布,或向用户提交使用的软件版本
# 第 7 章
# 一、填空题
- 软件测试的目的是 发现软件的错误。
- 单元测试一般以 白盒法 为主,测试的依据是 系统的模块功能规格说明。
- 黑盒测试法是通过分析程序的 功能 来设计测试用例的方法。
- 软件测试用例主要由输入数据和 预期输出结果 两部分组成。
- 为适应软硬件环境变化而修改软件的过程是 适应性维护。
# 二、选择题
- 成功的测试是指运行测试用例后(B)
A. 未发现程序错误
B. 发现了程序错误
C. 证明程序正确
D. 改正了程序错误 - 白盒测试法是根据程序的(B)来设计测试用例的方法
A. 应用范围
B. 内部逻辑
C. 功能
D. 输入数据 - 检查软件产品是否符合需求定义的过程称为(C)
A. 组装测试
B. 单元测试
C. 系统测试
D. 有效性测试 - 软件的集成测试工作最好由(D)承担,以提高集成测试的效果
A. 该软件的设计人员
B. 该软件开发组的负责人
C. 该软件的编程人员
D. 不属于该软件开发组的软件设计人员 - (C)是决定软件维护成败和质量好坏的关键
A. 修改程序
B. 建立目标程序
C. 分析和理解程序
D. 重新验证程序
# 第 8 章
# 一、填空题
- 项目是为了创造一个唯一的 产品 或提供一个唯一的 服务 而进行的 临时性 的努力。
- 软件项目启动过程的主要任务是确定项目的目标、约束 和 自由度,并进行 投资 / 效益 分析和可行性研究,如果符合企业的 商业目标,则确定立项。
- 软件项目估算的内容主要有软件 规模 估算、工作量 估算、成本 估算和 进度 估算。
- 风险就是损失的可能性。风险具有两大属性:可能性 和 损失。可能性是风险发生的 概率,损失是指预期与后果之间的 差异。
- 项目监控就是为了保证项目能够按照预先设定的目标发展。监控是一个 反馈 过程,项目跟踪是项目控制的 前提和条件,项目控制是项目跟踪的 目的和服务对象。
# 二、选择题
- 项目管理通过一个① 的、② 的柔性组织,运用相关的知识、技术、③ 和手段,对项目进行高效率的计划、组织、指导和 ④,以优化项目目标的实现
正确答案:(B)
A. ①标准 ②长期 ③方法 ④管理
B. ①临时性 ②专门 ③工具 ④控制
C. ①长期 ②专门 ③方法 ④管理
D. ①标准 ②兼职 ③数据 ④设计 - 从管理过程角度看,软件项目管理可分为项目启动、项目 ①、项目 ②、项目 ③ 和项目 ④ 5 个阶段
正确答案:(B)
A. ①需求分析 ②组织实施 ③监控 ④交付
B. ①计划 ②组织实施 ③监控 ④验收
C. ①运行 ②组织 ③监控 ④接受
D. ①设计 ②实施 ③监控 ④运行 - 软件项目启动过程的主要任务是确定项目的 ①、约束和自由度,并进行 ② 分析和可行性研究,如果符合企业的 ③,则确定立项。立项的 ④ 是正式下达项目任务书
正确答案:(B)
A. ①范围 ②可行性 ③利益 ④决策
B. ①目标 ②投资 / 效益 ③商业目标 ④标志
C. ①目标 ②设计 ③利益 ④原则
D. ①需求 ②需求 ③目标 ④标志 - 关键路径上的活动称为 ① 活动,如果能够缩短关键活动所需的时间,就可以 ② 项目的完工时间。而缩短 ③ 路径上的各个活动所需要的时间,不能使项目完工 ④ 提前
正确答案:(D)
A. ①规范 ②交付 ③标准 ④签入
B. ①规范 ②交付 ③非关键 ④时间
C. ①关键 ②缩短 ③标准 ④日期
D. ①关键 ②缩短 ③非标准 ④时间 - 在软件项目的开发过程中必须及时跟踪项目的质量计划完成情况,测定 ① 是否达到要求的 ②。通过质量跟踪的 ③ 来判断项目执行过程的质量情况,决定产品是否可以 ④,还是需要返工或者放弃
正确答案:(C)
A. ①文档 ②需求 ③标准 ④签入
B. ①质量手册 ②原理 ③规范 ④交付
C. ①产品 ②质量标准 ③结果 ④接受
D. ①软件 ②质量 ③数据 ④运行
# 第 9 章
# 一、填空题
- 应用 CMMI,评估机构可以 评估 软件组织的软件能力成熟度等级,软件采购方法能够用于 考察 软件承包方软件项目开发能力,软件组织也可以用它持续 改进 自身软件开发能力水平。
- 在 RUP 4+1 视图中:逻辑 视图是面向对象设计时的对象模型、开发 视图描述软件在开发环境下的静态组织、处理 视图描述系统的并发和同步方面的设计、物理 视图描述软件映射到硬件方面的设计。
- MSF 过程模型将 瀑布 模型中基于里程碑的规划优势与 螺旋 模型增量迭代的长处结合在一起,形成 构思、计划、开发、稳定 和 发布 5 个阶段,迭代改进、螺旋上升的流程。
- 形式化方法的本质是用 数学 方法来描述软件系统,不同的 形式化 方法其数学基础不同。在净室软件工程中,单元测试和调试被正确性 验证 和基于 统计 的测试所替代,这些活动使得净室方法与众不同。
- 敏捷宣言宣称:个体和交互胜过过程和 工具,可以工作的软件胜过面面俱到的 文档,客户合作胜过 合同谈判,响应变化胜过 遵循计划。
# 二、选择题
- 如要达到 CMMI 某个 ① 的要求,就要达到该级别及其以下所有 ② 要求。如果要达到某个过程域的要求,就要达到该过程域每个 ③ 的要求。如果要达到某个目标的要求,就需要证明该目标所有的 ④ 都做到位了
正确答案:(B)
A. ①目标 ②过程域 ③实践 ④级别
B. ①级别 ②过程域 ③目标 ④实践
C. ①过程域 ②实践 ③目标 ④原则
D. ①需求 ②级别 ③目标 ④标志 - IBM Rational 软件工程体系以 ① 和 ② 而闻名,同时具有较为完善的软件工具集,支持 ③ 设计与构造、软件质量、软件配置管理、过程与项目管理、④ 等软件工程各个阶段
正确答案:(A)
A. ①统一建模语言 ②统一过程 ③需求分析 ④部署管理
B. ①统一过程 ②统一建模语言 ③规范 ④需求分析
C. ①产品 ②需求分析 ③统一过程 ④统一建模语言
D. ①需求分析 ②统一过程 ③统一建模语言 ④运行 - 微软公司的软件开发团队实行 ① 交叉管理,纵向垂直管理与汇报关系为:产品总经理 → 部门经理 → 小组长 → 组员;横向管理为产品特性 ②,产品特性项目组成员职能划分为 6 种 ③,各角色地位 ④
正确答案:(B)
A. ①对等 ②过程 ③组员 ④平凡
B. ①矩阵式 ②项目组 ③角色 ④对等
C. ①产品 ②对等 ③项目组 ④崇高
D. ①项目组 ②角色 ③语言 ④非凡 - 敏捷过程模型是一个 ① 开发过程,消除了开发中不必要的 ② 和提交物。它将开发活动:分析、设计、编码和测试 ③ 在一起,全过程采用 ④ 开发、反馈修正和反复测试的策略
正确答案:(D)
A. ①迭代增量 ②过程 ③组织 ④平凡
B. ①矩阵式 ②项目组 ③迭代 ④对等
C. ①产品 ②增量 ③增量 ④项目
D. ①渐进型 ②步骤 ③结合 ④迭代增量 - 在形式化方法中,规范描述采用数学的形式和 ① 记法;分析推理采用数学方法对软件形式化 ② 进行分析和推理;代码实现运用数学方法从 ③ 逐步推导出 ④ 的程序
正确答案:(C)
A. ①对等 ②规约 ③规约 ④一般
B. ①符号 ②描述 ③文档 ④源代码
C. ①语义 ②规范 ③高层描述 ④可正确运行
D. ①数学 ②文档 ③符号 ④汇编